m/p/logtree: add kmsg pipe

This allows ingesting Linux kernel (kmsg) logs into logtree with
the original metadata (timestamp, severity) preserved.

Change-Id: Ibb6e3a7a0ae4a008b8e9c98beccb3a95c067cb75
Reviewed-on: https://review.monogon.dev/c/monogon/+/2044
Reviewed-by: Leopold Schabel <leo@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/pkg/logtree/BUILD.bazel b/metropolis/pkg/logtree/BUILD.bazel
index a520e8f..595e8cf 100644
--- a/metropolis/pkg/logtree/BUILD.bazel
+++ b/metropolis/pkg/logtree/BUILD.bazel
@@ -9,6 +9,7 @@
         "journal_entry.go",
         "journal_subscriber.go",
         "klog.go",
+        "kmsg.go",
         "leveled.go",
         "leveled_payload.go",
         "logtree.go",
@@ -29,7 +30,15 @@
         "@org_golang_google_protobuf//types/known/timestamppb",
         "@org_uber_go_zap//:zap",
         "@org_uber_go_zap//zapcore",
-    ],
+    ] + select({
+        "@io_bazel_rules_go//go/platform:android": [
+            "@org_golang_x_sys//unix",
+        ],
+        "@io_bazel_rules_go//go/platform:linux": [
+            "@org_golang_x_sys//unix",
+        ],
+        "//conditions:default": [],
+    }),
 )
 
 go_test(
@@ -37,6 +46,7 @@
     srcs = [
         "journal_test.go",
         "klog_test.go",
+        "kmsg_test.go",
         "logtree_test.go",
         "zap_test.go",
     ],