Skip to content

Commit

Permalink
bacula: fix build on Darwin
Browse files Browse the repository at this point in the history
After the CoreFoundation hook was dropped, bacula requires the following
changes to build on Darwin:

* Ensure bacula links CoreFoundation. Override incorrectly failing
  `configure` tests and add gettext as a build input. Even if those
  tests pass, bacula only links CoreFoundation when it finds libintl.
* Add Kerberos framework. Required to build on x86_64-darwin.
  • Loading branch information
reckenrode committed Jan 28, 2024
1 parent 9c4aa56 commit d25d772
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
12 changes: 10 additions & 2 deletions pkgs/tools/backup/bacula/default.nix
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, sqlite, postgresql, zlib, acl, ncurses, openssl, readline
, CoreFoundation, IOKit
, gettext, CoreFoundation, IOKit, Kerberos
}:

stdenv.mkDerivation rec {
Expand All @@ -19,8 +19,10 @@ stdenv.mkDerivation rec {

buildInputs = [ postgresql sqlite zlib ncurses openssl readline ]
++ lib.optionals stdenv.hostPlatform.isDarwin [
gettext # bacula requires CoreFoundation, but its `configure` script will only link it when it detects libintl.
CoreFoundation
IOKit
Kerberos
]
# acl relies on attr, which I can't get to build on darwin
++ lib.optional (!stdenv.isDarwin) acl;
Expand All @@ -31,7 +33,13 @@ stdenv.mkDerivation rec {
"--with-logdir=/var/log/bacula"
"--with-working-dir=/var/lib/bacula"
"--mandir=\${out}/share/man"
] ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "ac_cv_func_setpgrp_void=yes";
] ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "ac_cv_func_setpgrp_void=yes"
++ lib.optionals stdenv.isDarwin [
# bacula’s `configure` script fails to detect CoreFoundation correctly,
# but these symbols are available in the nixpkgs CoreFoundation framework.
"gt_cv_func_CFLocaleCopyCurrent=yes"
"gt_cv_func_CFPreferencesCopyAppValue=yes"
];

installFlags = [
"logdir=\${out}/logdir"
Expand Down
2 changes: 1 addition & 1 deletion pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -6611,7 +6611,7 @@ with pkgs;
};

bacula = callPackage ../tools/backup/bacula {
inherit (darwin.apple_sdk.frameworks) CoreFoundation IOKit;
inherit (darwin.apple_sdk.frameworks) CoreFoundation IOKit Kerberos;
};

bacon = callPackage ../development/tools/bacon {
Expand Down

0 comments on commit d25d772

Please sign in to comment.