packaging: bump Docker + AUR to v5.9.20

Docker:
- Dockerfile now extracts from cryptographic-triangles-daemon_5.9.20_amd64.deb
  (release no longer ships raw linux-x64 binaries)
- Multi-stage build with .deb extraction
- Includes triangles-cli alongside trianglesd
- LD_LIBRARY_PATH wrapper for the bundled lib/ dir

AUR:
- Bump triangles-qt-bin to 5.9.20
- Switch from raw linux-x64 binary download (no longer published) to
  extracting the official .deb packages
- Bundle version-pinned libs in /opt/triangles/lib
- Add triangles-cli to provides
This commit is contained in:
Krystie (TRI packaging)
2026-06-21 01:19:09 -07:00
parent adbbad3121
commit 3ddf6536e5
3 changed files with 128 additions and 37 deletions
+30
View File
@@ -0,0 +1,30 @@
pkgbase = triangles-qt-bin
pkgdesc = Cryptographic Triangles (TRI) cryptocurrency wallet - Qt GUI
pkgver = 5.9.20
pkgrel = 1
url = https://cryptographic-triangles.org
arch = x86_64
license = MIT
depends = qt5-base
depends = openssl
depends = boost-libs
depends = db
depends = leveldb
depends = libevent
depends = miniupnpc
depends = tor
optdepend = tor: anonymous networking support
provides = triangles-qt
provides = trianglesd
provides = triangles-cli
conflicts = triangles-qt
conflicts = trianglesd
conflicts = triangles-cli
source = https://github.com/SamiAhmed7777/triangles_v5/releases/download/v5.9.20/cryptographic-triangles_5.9.20_amd64.deb
source = https://github.com/SamiAhmed7777/triangles_v5/releases/download/v5.9.20/cryptographic-triangles-daemon_5.9.20_amd64.deb
source = triangles-qt.desktop
sha256sums = b4afcf758f55c8fb256f4742917971414078ce37c0fe346383ccda5251917bde
sha256sums = 068d015cf73206f3f3604b0c8fbf60db307c20234cbe06e236996fb9a336df51
sha256sums = SKIP
pkgname = triangles-qt-bin
+57 -14
View File
@@ -1,6 +1,6 @@
# Maintainer: Cryptographic Triangles Team
# Maintainer: Sami Ahmed <https://github.com/SamiAhmed7777>
pkgname=triangles-qt-bin
pkgver=5.5.6
pkgver=5.9.20
pkgrel=1
pkgdesc="Cryptographic Triangles (TRI) cryptocurrency wallet - Qt GUI"
arch=('x86_64')
@@ -8,21 +8,64 @@ url="https://cryptographic-triangles.org"
license=('MIT')
depends=('qt5-base' 'openssl' 'boost-libs' 'db' 'leveldb' 'libevent' 'miniupnpc' 'tor')
optdepends=('tor: anonymous networking support')
provides=('triangles-qt' 'trianglesd')
conflicts=('triangles-qt' 'trianglesd')
provides=('triangles-qt' 'trianglesd' 'triangles-cli')
conflicts=('triangles-qt' 'trianglesd' 'triangles-cli')
source=(
"triangles-qt-${pkgver}::https://github.com/SamiAhmed7777/triangles_v5/releases/download/v${pkgver}/Cryptographic-Triangles-v${pkgver}-linux-x64-qt"
"trianglesd-${pkgver}::https://github.com/SamiAhmed7777/triangles_v5/releases/download/v${pkgver}/Cryptographic-Triangles-v${pkgver}-linux-x64-daemon"
"https://github.com/SamiAhmed7777/triangles_v5/releases/download/v${pkgver}/cryptographic-triangles_${pkgver}_amd64.deb"
"https://github.com/SamiAhmed7777/triangles_v5/releases/download/v${pkgver}/cryptographic-triangles-daemon_${pkgver}_amd64.deb"
"triangles-qt.desktop"
)
sha256sums=(
'ed220eb8d0b403f62cdac28988541fd1a27864491e233216f9c00a4c2537b4a3'
'4d2ab25d61127d6aff3e6f3069556d04f4b823f8849e97629c12871ad4779517'
'SKIP'
)
sha256sums=('b4afcf758f55c8fb256f4742917971414078ce37c0fe346383ccda5251917bde'
'068d015cf73206f3f3604b0c8fbf60db307c20234cbe06e236996fb9a336df51'
'SKIP')
prepare() {
cd "$srcdir"
# Qt GUI + bundled Qt/libs come from the full wallet .deb
ar x "cryptographic-triangles_${pkgver}_amd64.deb"
tar --use-compress-program=unzstd -xf data.tar.zst
rm -f control.tar.zst data.tar.zst debian-binary
# Headless daemon + JSON-RPC client come from the daemon .deb
ar x "cryptographic-triangles-daemon_${pkgver}_amd64.deb"
tar --use-compress-program=unzstd -xf data.tar.zst
rm -f control.tar.zst data.tar.zst debian-binary
}
package() {
install -Dm755 "triangles-qt-${pkgver}" "${pkgdir}/usr/bin/triangles-qt"
install -Dm755 "trianglesd-${pkgver}" "${pkgdir}/usr/bin/trianglesd"
install -Dm644 "triangles-qt.desktop" "${pkgdir}/usr/share/applications/triangles-qt.desktop"
cd "$srcdir"
# Install the actual binaries to /opt/triangles
install -dm755 "${pkgdir}/opt/triangles"
install -m755 usr/lib/cryptographic-triangles/triangles-qt \
"${pkgdir}/opt/triangles/triangles-qt"
install -m755 usr/lib/cryptographic-triangles/trianglesd \
"${pkgdir}/opt/triangles/trianglesd"
install -m755 usr/lib/cryptographic-triangles/triangles-cli \
"${pkgdir}/opt/triangles/triangles-cli"
# Install bundled shared libraries to /opt/triangles/lib.
# Many are version-pinned (librocksdb.so.6.11, libgflags.so.2.2,
# libdb_cxx-5.3.so, libboost_program_options.so.1.74.0) and are not
# available at the right version on Arch, so we ship them ourselves.
install -dm755 "${pkgdir}/opt/triangles/lib"
# Use GUI .deb libs (it has the full Qt set + everything daemon needs)
install -m644 usr/lib/cryptographic-triangles/lib/* \
"${pkgdir}/opt/triangles/lib/"
# Wrapper scripts in /usr/bin set LD_LIBRARY_PATH and exec the real binary.
# System Qt5/openssl/etc. are still on the default loader path and take
# precedence for libs NOT in our private directory.
install -dm755 "${pkgdir}/usr/bin"
for bin in triangles-qt trianglesd triangles-cli; do
install -m755 /dev/stdin "${pkgdir}/usr/bin/${bin}" <<EOF
#!/bin/bash
export LD_LIBRARY_PATH=/opt/triangles/lib\${LD_LIBRARY_PATH:+:\${LD_LIBRARY_PATH}}
exec /opt/triangles/${bin} "\$@"
EOF
done
# .desktop file
install -Dm644 triangles-qt.desktop \
"${pkgdir}/usr/share/applications/triangles-qt.desktop"
}
+41 -23
View File
@@ -1,39 +1,57 @@
FROM ubuntu:22.04 AS builder
ARG VERSION=5.9.20
ARG DEB_URL=https://github.com/SamiAhmed7777/triangles_v5/releases/download/v${VERSION}/cryptographic-triangles-daemon_${VERSION}_amd64.deb
RUN apt-get update && apt-get install -y --no-install-recommends \
curl ca-certificates binutils zstd && \
curl -fsSL -o /tmp/triangles.deb "${DEB_URL}" && \
cd /tmp && ar x /tmp/triangles.deb && \
tar --use-compress-program=unzstd -xf data.tar.zst && \
rm -f /tmp/triangles.deb /tmp/control.tar.zst /tmp/debian-binary /tmp/data.tar.zst
# ---------- Runtime ----------
FROM ubuntu:22.04
ARG VERSION=5.9.20
LABEL maintainer="Cryptographic Triangles Team"
LABEL description="Cryptographic Triangles (TRI) headless daemon"
LABEL version="5.7.6"
ARG VERSION=5.7.6
LABEL version="${VERSION}"
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
ca-certificates \
libssl3 \
libevent-2.1-7 \
libboost-system1.74.0 \
libboost-filesystem1.74.0 \
libboost-program-options1.74.0 \
libboost-thread1.74.0 \
libboost-chrono1.74.0 \
libdb5.3++ \
libminiupnpc17 \
tor \
ca-certificates \
libssl3 \
libevent-2.1-7 \
libboost-system1.74.0 \
libboost-filesystem1.74.0 \
libboost-program-options1.74.0 \
libboost-thread1.74.0 \
libboost-chrono1.74.0 \
libdb5.3++ \
libminiupnpc17 \
&& rm -rf /var/lib/apt/lists/*
RUN curl -L -o /usr/local/bin/trianglesd \
"https://github.com/SamiAhmed7777/triangles_v5/releases/download/v${VERSION}/Cryptographic-Triangles-v${VERSION}-linux-x64-daemon" \
&& chmod +x /usr/local/bin/trianglesd
COPY --from=builder /tmp/usr/lib/cryptographic-triangles/ /opt/triangles/
COPY --from=builder /tmp/usr/bin/trianglesd /usr/local/bin/trianglesd
COPY --from=builder /tmp/usr/bin/triangles-cli /usr/local/bin/triangles-cli
RUN useradd -m -s /bin/bash triangles
# Wrapper sets LD_LIBRARY_PATH so the dynamic libs resolve
RUN printf '#!/bin/bash\nexport LD_LIBRARY_PATH=/opt/triangles/lib:${LD_LIBRARY_PATH}\nexec /opt/triangles/%s "$@"\n' trianglesd \
> /usr/local/bin/trianglesd-wrap && \
printf '#!/bin/bash\nexport LD_LIBRARY_PATH=/opt/triangles/lib:${LD_LIBRARY_PATH}\nexec /opt/triangles/%s "$@"\n' triangles-cli \
> /usr/local/bin/triangles-cli-wrap && \
mv /usr/local/bin/trianglesd-wrap /usr/local/bin/trianglesd && \
mv /usr/local/bin/triangles-cli-wrap /usr/local/bin/triangles-cli && \
chmod +x /usr/local/bin/trianglesd /usr/local/bin/triangles-cli
RUN useradd -m -s /bin/bash triangles && \
mkdir -p /home/triangles/.triangles && \
chown -R triangles:triangles /home/triangles
USER triangles
WORKDIR /home/triangles
RUN mkdir -p /home/triangles/.triangles
VOLUME /home/triangles/.triangles
EXPOSE 24112 19112
ENTRYPOINT ["trianglesd"]