Fully self-contained on ALL platforms — zero external dependencies

Linux Qt .deb: bundles all .so files + LD_LIBRARY_PATH wrapper
Linux daemon .deb: same + systemd Environment= for LD_LIBRARY_PATH
Windows: already handled (ldd scan for DLLs)
macOS: already handled (install_name_tool into Frameworks)

Removed all Depends: from .deb control files. Every package
runs on a clean machine with nothing pre-installed.
This commit is contained in:
Krystie
2026-04-02 22:48:31 -07:00
parent a031795aea
commit 7120df3989
+46 -11
View File
@@ -256,7 +256,7 @@ jobs:
- name: Strip binary - name: Strip binary
run: strip --strip-all triangles-qt run: strip --strip-all triangles-qt
- name: Build .deb package - name: Build .deb package (fully self-contained)
run: | run: |
TOR_VERSION="15.0.8" TOR_VERSION="15.0.8"
curl -sL "https://dist.torproject.org/torbrowser/${TOR_VERSION}/tor-expert-bundle-linux-x86_64-${TOR_VERSION}.tar.gz" -o tor-bundle.tar.gz curl -sL "https://dist.torproject.org/torbrowser/${TOR_VERSION}/tor-expert-bundle-linux-x86_64-${TOR_VERSION}.tar.gz" -o tor-bundle.tar.gz
@@ -264,6 +264,7 @@ jobs:
PKG="cryptographic-triangles_${VERSION}_amd64" PKG="cryptographic-triangles_${VERSION}_amd64"
mkdir -p ${PKG}/DEBIAN mkdir -p ${PKG}/DEBIAN
mkdir -p ${PKG}/usr/lib/cryptographic-triangles/lib
mkdir -p ${PKG}/usr/lib/cryptographic-triangles/tor mkdir -p ${PKG}/usr/lib/cryptographic-triangles/tor
mkdir -p ${PKG}/usr/bin mkdir -p ${PKG}/usr/bin
mkdir -p ${PKG}/usr/share/applications mkdir -p ${PKG}/usr/share/applications
@@ -274,9 +275,26 @@ jobs:
chmod +x ${PKG}/usr/lib/cryptographic-triangles/tor/tor chmod +x ${PKG}/usr/lib/cryptographic-triangles/tor/tor
[ -d tor-extract/data ] && cp -r tor-extract/data ${PKG}/usr/lib/cryptographic-triangles/tor/data [ -d tor-extract/data ] && cp -r tor-extract/data ${PKG}/usr/lib/cryptographic-triangles/tor/data
# Bundle ALL shared library dependencies (except glibc/kernel)
ldd triangles-qt | grep '=> /' | awk '{print $3}' | while read lib; do
case "$lib" in
/lib/x86_64-linux-gnu/libc.so*|/lib/x86_64-linux-gnu/libm.so*|/lib/x86_64-linux-gnu/libpthread.so*|/lib/x86_64-linux-gnu/libdl.so*|/lib/x86_64-linux-gnu/librt.so*|/lib/x86_64-linux-gnu/ld-linux*|/lib64/ld-linux*)
;; # Skip glibc core — always present
*)
cp -L "$lib" ${PKG}/usr/lib/cryptographic-triangles/lib/ 2>/dev/null || true
;;
esac
done
echo "=== Bundled libs ==="
ls ${PKG}/usr/lib/cryptographic-triangles/lib/ | wc -l
ls ${PKG}/usr/lib/cryptographic-triangles/lib/
# Launcher with LD_LIBRARY_PATH
cat > ${PKG}/usr/bin/cryptographic-triangles << 'LAUNCHER' cat > ${PKG}/usr/bin/cryptographic-triangles << 'LAUNCHER'
#!/bin/bash #!/bin/bash
exec /usr/lib/cryptographic-triangles/triangles-qt "$@" INSTALL_DIR=/usr/lib/cryptographic-triangles
export LD_LIBRARY_PATH="${INSTALL_DIR}/lib:${LD_LIBRARY_PATH}"
exec "${INSTALL_DIR}/triangles-qt" "$@"
LAUNCHER LAUNCHER
sed -i 's/^ //' ${PKG}/usr/bin/cryptographic-triangles sed -i 's/^ //' ${PKG}/usr/bin/cryptographic-triangles
chmod +x ${PKG}/usr/bin/cryptographic-triangles chmod +x ${PKG}/usr/bin/cryptographic-triangles
@@ -301,9 +319,8 @@ jobs:
Architecture: amd64 Architecture: amd64
Maintainer: Cryptographic Triangles <dev@cryptographic-triangles.org> Maintainer: Cryptographic Triangles <dev@cryptographic-triangles.org>
Description: Cryptographic Triangles wallet with integrated Tor Description: Cryptographic Triangles wallet with integrated Tor
Privacy-focused cryptocurrency wallet with built-in Tor support. Fully self-contained wallet with all libraries and Tor bundled.
Tor is bundled — no additional configuration needed. No external dependencies required — runs on any x86_64 Linux.
Depends: libqt5widgets5, libqt5gui5, libqt5network5, libqt5core5a, libboost-system1.74.0 | libboost-system1.83.0, libboost-filesystem1.74.0 | libboost-filesystem1.83.0, libboost-thread1.74.0 | libboost-thread1.83.0, libboost-program-options1.74.0 | libboost-program-options1.83.0, libssl3, libdb5.3++, libevent-2.1-7, libminiupnpc17
Section: finance Section: finance
Priority: optional Priority: optional
CTRL CTRL
@@ -351,7 +368,7 @@ jobs:
- name: Strip binary - name: Strip binary
run: strip --strip-all src/trianglesd run: strip --strip-all src/trianglesd
- name: Build .deb package - name: Build .deb package (fully self-contained)
run: | run: |
TOR_VERSION="15.0.8" TOR_VERSION="15.0.8"
curl -sL "https://dist.torproject.org/torbrowser/${TOR_VERSION}/tor-expert-bundle-linux-x86_64-${TOR_VERSION}.tar.gz" -o tor-bundle.tar.gz curl -sL "https://dist.torproject.org/torbrowser/${TOR_VERSION}/tor-expert-bundle-linux-x86_64-${TOR_VERSION}.tar.gz" -o tor-bundle.tar.gz
@@ -359,6 +376,7 @@ jobs:
PKG="cryptographic-triangles-daemon_${VERSION}_amd64" PKG="cryptographic-triangles-daemon_${VERSION}_amd64"
mkdir -p ${PKG}/DEBIAN mkdir -p ${PKG}/DEBIAN
mkdir -p ${PKG}/usr/lib/cryptographic-triangles/lib
mkdir -p ${PKG}/usr/lib/cryptographic-triangles/tor mkdir -p ${PKG}/usr/lib/cryptographic-triangles/tor
mkdir -p ${PKG}/usr/bin mkdir -p ${PKG}/usr/bin
mkdir -p ${PKG}/etc/systemd/system mkdir -p ${PKG}/etc/systemd/system
@@ -368,9 +386,26 @@ jobs:
chmod +x ${PKG}/usr/lib/cryptographic-triangles/tor/tor chmod +x ${PKG}/usr/lib/cryptographic-triangles/tor/tor
[ -d tor-extract/data ] && cp -r tor-extract/data ${PKG}/usr/lib/cryptographic-triangles/tor/data [ -d tor-extract/data ] && cp -r tor-extract/data ${PKG}/usr/lib/cryptographic-triangles/tor/data
# Bundle ALL shared library dependencies (except glibc/kernel)
ldd src/trianglesd | grep '=> /' | awk '{print $3}' | while read lib; do
case "$lib" in
/lib/x86_64-linux-gnu/libc.so*|/lib/x86_64-linux-gnu/libm.so*|/lib/x86_64-linux-gnu/libpthread.so*|/lib/x86_64-linux-gnu/libdl.so*|/lib/x86_64-linux-gnu/librt.so*|/lib/x86_64-linux-gnu/ld-linux*|/lib64/ld-linux*)
;; # Skip glibc core — always present
*)
cp -L "$lib" ${PKG}/usr/lib/cryptographic-triangles/lib/ 2>/dev/null || true
;;
esac
done
echo "=== Bundled libs ==="
ls ${PKG}/usr/lib/cryptographic-triangles/lib/ | wc -l
ls ${PKG}/usr/lib/cryptographic-triangles/lib/
# Launcher with LD_LIBRARY_PATH
cat > ${PKG}/usr/bin/trianglesd << 'LAUNCHER' cat > ${PKG}/usr/bin/trianglesd << 'LAUNCHER'
#!/bin/bash #!/bin/bash
exec /usr/lib/cryptographic-triangles/trianglesd "$@" INSTALL_DIR=/usr/lib/cryptographic-triangles
export LD_LIBRARY_PATH="${INSTALL_DIR}/lib:${LD_LIBRARY_PATH}"
exec "${INSTALL_DIR}/trianglesd" "$@"
LAUNCHER LAUNCHER
sed -i 's/^ //' ${PKG}/usr/bin/trianglesd sed -i 's/^ //' ${PKG}/usr/bin/trianglesd
chmod +x ${PKG}/usr/bin/trianglesd chmod +x ${PKG}/usr/bin/trianglesd
@@ -383,7 +418,8 @@ jobs:
[Service] [Service]
Type=simple Type=simple
ExecStart=/usr/bin/trianglesd Environment=LD_LIBRARY_PATH=/usr/lib/cryptographic-triangles/lib
ExecStart=/usr/lib/cryptographic-triangles/trianglesd
Restart=on-failure Restart=on-failure
RestartSec=10 RestartSec=10
@@ -398,9 +434,8 @@ jobs:
Architecture: amd64 Architecture: amd64
Maintainer: Cryptographic Triangles <dev@cryptographic-triangles.org> Maintainer: Cryptographic Triangles <dev@cryptographic-triangles.org>
Description: Cryptographic Triangles daemon with integrated Tor Description: Cryptographic Triangles daemon with integrated Tor
Headless node daemon with built-in Tor support and systemd service. Fully self-contained headless node with all libraries, Tor, and systemd service.
Tor is bundled — no additional configuration needed. No external dependencies required — runs on any x86_64 Linux.
Depends: libboost-system1.74.0 | libboost-system1.83.0, libboost-filesystem1.74.0 | libboost-filesystem1.83.0, libboost-thread1.74.0 | libboost-thread1.83.0, libboost-program-options1.74.0 | libboost-program-options1.83.0, libssl3, libdb5.3++, libevent-2.1-7, libminiupnpc17
Section: finance Section: finance
Priority: optional Priority: optional
CTRL CTRL