Skip to content

Commit

Permalink
lowdown: add flag to disable the Darwin sandbox (#346945)
Browse files Browse the repository at this point in the history
  • Loading branch information
reckenrode authored Oct 8, 2024
2 parents 4fc3efa + b370a68 commit 56b9fe7
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 9 deletions.
4 changes: 2 additions & 2 deletions pkgs/applications/blockchains/clightning/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
, automake
, gettext
, libtool
, lowdown
, lowdown-unsandboxed
, protobuf
, unzip
, which
Expand All @@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
# when building on darwin we need cctools to provide the correct libtool
# as libwally-core detects the host as darwin and tries to add the -static
# option to libtool, also we have to add the modified gsed package.
nativeBuildInputs = [ autoconf autogen automake gettext libtool lowdown protobuf py3 unzip which ]
nativeBuildInputs = [ autoconf autogen automake gettext libtool lowdown-unsandboxed protobuf py3 unzip which ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ cctools darwin.autoSignDarwinBinariesHook ];

buildInputs = [ gmp libsodium sqlite zlib jq ];
Expand Down
4 changes: 2 additions & 2 deletions pkgs/by-name/ce/certspotter/package.nix
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{ lib
, fetchFromGitHub
, buildGoModule
, lowdown
, lowdown-unsandboxed
}:

buildGoModule rec {
Expand All @@ -19,7 +19,7 @@ buildGoModule rec {

ldflags = [ "-s" "-w" ];

nativeBuildInputs = [ lowdown ];
nativeBuildInputs = [ lowdown-unsandboxed ];

postInstall = ''
cd man
Expand Down
3 changes: 2 additions & 1 deletion pkgs/tools/package-management/lix/common.nix
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ assert (hash == null) -> (src != null);
libcpuid,
libsodium,
lowdown,
lowdown-unsandboxed,
lsof,
mercurial,
mdbook,
Expand Down Expand Up @@ -119,7 +120,7 @@ stdenv.mkDerivation {
]
++ lib.optionals isLegacyParser [ bison ]
++ lib.optionals enableDocumentation [
(lib.getBin lowdown)
(lib.getBin lowdown-unsandboxed)
mdbook
mdbook-linkcheck
doxygen
Expand Down
3 changes: 2 additions & 1 deletion pkgs/tools/package-management/nix/common.nix
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ in
, libxml2
, libxslt
, lowdown
, lowdown-unsandboxed
, toml11
, man
, mdbook
Expand Down Expand Up @@ -122,7 +123,7 @@ self = stdenv.mkDerivation {
docbook_xsl_ns
docbook5
] ++ lib.optionals (enableDocumentation && atLeast24) [
(lib.getBin lowdown)
(lib.getBin lowdown-unsandboxed)
mdbook
] ++ lib.optionals (atLeast213 && enableDocumentation) [
mdbook-linkcheck
Expand Down
10 changes: 7 additions & 3 deletions pkgs/tools/typesetting/lowdown/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
, fetchpatch
, enableShared ? !stdenv.hostPlatform.isStatic
, enableStatic ? stdenv.hostPlatform.isStatic
, enableDarwinSandbox ? true
# for passthru.tests
, nix
}:

stdenv.mkDerivation rec {
pname = "lowdown";
pname = "lowdown${lib.optionalString (stdenv.hostPlatform.isDarwin && !enableDarwinSandbox) "-unsandboxed"}";
version = "1.1.0";

outputs = [ "out" "lib" "dev" "man" ];
Expand Down Expand Up @@ -54,7 +55,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ which dieHook ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ fixDarwinDylibNames ];

preConfigure = lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) ''
# The Darwin sandbox calls fail inside Nix builds, presumably due to
# being nested inside another sandbox.
preConfigure = lib.optionalString (stdenv.hostPlatform.isDarwin && !enableDarwinSandbox) ''
echo 'HAVE_SANDBOX_INIT=0' > configure.local
'';

Expand Down Expand Up @@ -103,7 +106,8 @@ stdenv.mkDerivation rec {
'';

doInstallCheck = true;
installCheckPhase = ''

installCheckPhase = lib.optionalString (!stdenv.hostPlatform.isDarwin || !enableDarwinSandbox) ''
runHook preInstallCheck
echo '# TEST' > test.md
$out/bin/lowdown test.md
Expand Down
5 changes: 5 additions & 0 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -5426,6 +5426,11 @@ with pkgs;

lowdown = callPackage ../tools/typesetting/lowdown { };

# Less secure variant of lowdown for use inside Nix builds.
lowdown-unsandboxed = lowdown.override {
enableDarwinSandbox = false;
};

numatop = callPackage ../os-specific/linux/numatop { };

numworks-udev-rules = callPackage ../os-specific/linux/numworks-udev-rules { };
Expand Down

0 comments on commit 56b9fe7

Please sign in to comment.