local: fix mac issues in bazel (#1893)

This commit is contained in:
Adrian Stobbe 2023-06-09 10:35:52 +02:00 committed by GitHub
parent 7c345f4503
commit e0fe8e6ca0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 84 additions and 16 deletions

View File

@ -231,6 +231,9 @@ cc_library(
":ms_tpm_20_ref_google_samples",
"@org_openssl//:openssl",
],
target_compatible_with = [
"@platforms//os:linux",
]
)
cc_library(

View File

@ -1,6 +1,6 @@
--- simulator/ms-tpm-20-ref/BUILD.bazel
+++ simulator/ms-tpm-20-ref/BUILD.bazel
@@ -0,0 +1,509 @@
@@ -0,0 +1,512 @@
+cc_library(
+ name = "ms_tpm_20_ref",
+ visibility = ["//visibility:public"],
@ -231,6 +231,9 @@
+ ":ms_tpm_20_ref_google_samples",
+ "@org_openssl//:openssl",
+ ],
+ target_compatible_with = [
+ "@platforms//os:linux",
+ ],
+)
+
+cc_library(

View File

@ -18,11 +18,19 @@ cc_test(
],
"//conditions:default": [],
}),
# TODO support OpenSSL on Mac
target_compatible_with = [
"@platforms//os:linux",
],
deps = ["@org_openssl//:openssl"],
)
build_test(
name = "build_test",
# TODO support OpenSSL on Mac
target_compatible_with = [
"@platforms//os:linux",
],
targets = [
"@org_openssl//:openssl",
],

View File

@ -9,7 +9,7 @@ def go_test(ld = None, count = 3, **kwargs):
It adds the following:
- Sets test count to 3.
- Sets race detector to on by default.
- Sets race detector to on by default (except Mac OS)
- Optionally sets the interpreter path to ld.
Args:
@ -23,7 +23,16 @@ def go_test(ld = None, count = 3, **kwargs):
kwargs["args"].append("--test.count={}".format(count))
# enable race detector by default
kwargs.setdefault("race", "on")
race_value = select({
"@platforms//os:macos": "off",
"//conditions:default": "on",
})
pure_value = select({
"@platforms//os:macos": "on",
"//conditions:default": "off",
})
kwargs.setdefault("race", race_value)
kwargs.setdefault("pure", pure_value)
# set gc_linkopts to set the interpreter path to ld.
kwargs.setdefault("gc_linkopts", [])

View File

@ -9,6 +9,9 @@ go_library(
"diskencryption_cross.go",
],
importpath = "github.com/edgelesssys/constellation/v2/bootstrapper/internal/diskencryption",
target_compatible_with = [
"@platforms//os:linux",
],
visibility = ["//bootstrapper:__subpackages__"],
deps = select({
"@io_bazel_rules_go//go/platform:android": [

View File

@ -9,6 +9,9 @@ go_library(
"cryptmapper_cross.go",
],
importpath = "github.com/edgelesssys/constellation/v2/csi/cryptmapper",
target_compatible_with = [
"@platforms//os:linux",
],
visibility = ["//visibility:public"],
deps = select({
"@io_bazel_rules_go//go/platform:android": [

View File

@ -5,6 +5,8 @@ go_library(
name = "setup",
srcs = [
"interface.go",
"mount_cross.go",
"mount_linux.go",
"setup.go",
],
importpath = "github.com/edgelesssys/constellation/v2/disk-mapper/internal/setup",

View File

@ -9,7 +9,6 @@ package setup
import (
"io/fs"
"os"
"syscall"
"github.com/edgelesssys/constellation/v2/internal/cloud/metadata"
)
@ -49,16 +48,6 @@ type RecoveryDoer interface {
// DiskMounter uses the syscall package to mount disks.
type DiskMounter struct{}
// Mount performs a mount syscall.
func (m DiskMounter) Mount(source string, target string, fstype string, flags uintptr, data string) error {
return syscall.Mount(source, target, fstype, flags, data)
}
// Unmount performs an unmount syscall.
func (m DiskMounter) Unmount(target string, flags int) error {
return syscall.Unmount(target, flags)
}
// MkdirAll uses os.MkdirAll to create the directory.
func (m DiskMounter) MkdirAll(path string, perm fs.FileMode) error {
return os.MkdirAll(path, perm)

View File

@ -0,0 +1,22 @@
//go:build !linux
/*
Copyright (c) Edgeless Systems GmbH
SPDX-License-Identifier: AGPL-3.0-only
*/
package setup
import (
"errors"
)
// Mount performs a mount syscall.
func (m DiskMounter) Mount(_ string, _ string, _ string, _ uintptr, _ string) error {
return errors.New("mount not implemented on this platform")
}
// Unmount performs an unmount syscall.
func (m DiskMounter) Unmount(_ string, _ int) error {
return errors.New("mount not implemented on this platform")
}

View File

@ -0,0 +1,22 @@
//go:build linux
/*
Copyright (c) Edgeless Systems GmbH
SPDX-License-Identifier: AGPL-3.0-only
*/
package setup
import (
"syscall"
)
// Mount performs a mount syscall.
func (m DiskMounter) Mount(source string, target string, fstype string, flags uintptr, data string) error {
return syscall.Mount(source, target, fstype, flags, data)
}
// Unmount performs an unmount syscall.
func (m DiskMounter) Unmount(target string, flags int) error {
return syscall.Unmount(target, flags)
}

View File

@ -44,6 +44,7 @@ const (
stateDiskMountPath = "/var/run/state"
cryptsetupOptions = "cipher=aes-xts-plain64,integrity=hmac-sha256"
stateInfoPath = stateDiskMountPath + "/constellation/node_state.json"
msrdonly = 0x1 // same as syscall.MS_RDONLY
)
// Manager handles formatting, mapping, mounting and unmounting of state disks.
@ -95,7 +96,7 @@ func (s *Manager) PrepareExistingDisk(recover RecoveryDoer) error {
}
// we do not care about cleaning up the mount point on error, since any errors returned here should cause a boot failure
if err := s.mounter.Mount(filepath.Join("/dev/mapper/", stateDiskMappedName), stateDiskMountPath, "ext4", syscall.MS_RDONLY, ""); err != nil {
if err := s.mounter.Mount(filepath.Join("/dev/mapper/", stateDiskMappedName), stateDiskMountPath, "ext4", msrdonly, ""); err != nil {
return err
}

View File

@ -1,4 +1,4 @@
//go:build integration && cgo
//go:build integration && cgo && linux
/*
Copyright (c) Edgeless Systems GmbH

View File

@ -5,6 +5,9 @@ go_library(
name = "server",
srcs = ["server.go"],
importpath = "github.com/edgelesssys/constellation/v2/hack/qemu-metadata-api/server",
target_compatible_with = [
"@platforms//os:linux",
],
visibility = ["//visibility:public"],
deps = [
"//hack/qemu-metadata-api/virtwrapper",