Add libplist runtime dep via wrapper (fixes silent provisioning failure)
CI / Build Packages (default) (pull_request) Successful in 1m12s
CI / Nix Flake Check (pull_request) Successful in 1m13s
CI / Build Packages (example-a) (pull_request) Successful in 59s
CI / Build Packages (example-b) (pull_request) Successful in 1m0s
CI / Build Packages (pyzotero) (pull_request) Successful in 1m25s
CI / Build Packages (pyzotero-cli) (pull_request) Successful in 1m25s

This commit is contained in:
Hermes
2026-08-08 12:01:40 +00:00
parent 463817d00c
commit 81de36baa2
2 changed files with 13 additions and 16 deletions
+13 -5
View File
@@ -2,8 +2,10 @@
lib,
buildDubPackage,
fetchFromGitHub,
makeWrapper,
zlib,
openssl_1_1,
libplist,
}:
buildDubPackage rec {
@@ -19,14 +21,20 @@ buildDubPackage rec {
dubLock = ./dub-lock.json;
# TEMP diagnostic: log the swallowed provisioning exception to find the real
# cause of the silent provisioning failure.
postPatch = ''
patch -p1 < ${./log-provisioning-error.patch}
'';
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ zlib openssl_1_1 ];
# libplist is dlopen'd at runtime by the plist-d C binding via dynamic-loader
# (libplist-2.0.so.3). It is NOT linked, so it does not land in the closure
# via buildInputs. Without it the ADI provisioning step throws
# LibraryLoadingException and the server serves unprovisioned data, so Apple
# rejects the login. Wrap the binary with LD_LIBRARY_PATH so dlopen finds it.
postFixup = ''
wrapProgram $out/bin/anisette-v3-server \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libplist ]}
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
@@ -1,11 +0,0 @@
--- a/source/app.d
+++ b/source/app.d
@@ -156,7 +156,9 @@
ProvisioningSession provisioningSession = new ProvisioningSession(v1Adi, v1Device);
provisioningSession.provision(dsId);
log.info("Provisioning done!");
- } catch (Exception) {}
+ } catch (Exception e) {
+ log.error(e);
+ }
}