Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
193 changes: 193 additions & 0 deletions signal-desktop-8.27.0-0.build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
#! /bin/bash -x
{
umask 022

set -u
set -x
set -e

export PS4="+ $0:\${LINENO} "

umask 022

PKG=signal-desktop
# STEP 1/5 update version
VERSION=8.27.0
BUILD=0

declare -A NODEVMAP
NODEVMAP["7.37.0"]="20.18.1" # good
NODEVMAP["7.49.0"]="22.14.0" # laut .nvmrc
NODEVMAP["7.59.0"]="22.15.0" # laut .nvmrc
NODEVMAP["7.70.0"]="22.18.0" # laut .nvmrc
# STEP 2/5 check .nvmrc node version
NODEVMAP["7.80.0"]="22.21.1" # laut .nvmrc
NODEVMAP["7.89.0"]="24.11.1" # laut .nvmrc
NODEVMAP["8.10.0"]="24.15.0" # laut .nvmrc
NODEVMAP["8.16.0"]="24.15.0" # laut .nvmrc
NODEVMAP["8.27.0"]="24.19.0" # laut .nvmrc

NODEVERSION=${NODEVMAP[${VERSION}]}

PATH=/bin:/usr/bin:/usr/sbin:/usr/local/bin
export PATH

PREFIX=/pkg/${PKG}-${VERSION}-${BUILD}

mkdir -vp ${PREFIX}
cat >${PREFIX}/profile <<EOF
PATH=$PREFIX/bin:\$PATH
EOF

BUILDDIR=/scratch/local2/${USER}/signal-build/${VERSION}
mkdir -p ${BUILDDIR}

TMPDIR=${BUILDDIR}/tmp
mkdir -p ${TMPDIR}
export TMPDIR

HOME=${BUILDDIR}/home
mkdir -p ${HOME}
export HOME

_CLEANUP=(
${HOME}/.cache/node-gyp
${HOME}/.cache/pip
${HOME}/.npm
${HOME}/.config/configstore
)

for i in "${_CLEANUP[@]}"; do
test -d $i && chmod -c -R u+rwx $i && rm -rf $i && echo "removed $i"
done

cat >${HOME}/.wgetrc <<'_EOW_'
#http_proxy = beehive:3128
#https_proxy = beehive:3128
#ftp_proxy = beehive:3128
check-certificate = quiet
_EOW_

git config --global advice.detachedHead false
git config --global http.sslVerify false
git config --global pack.threads 24

exec </dev/null

NODEPREFIX=/scratch/local2/${USER}/signal-build/node-${NODEVERSION}

pushd ${BUILDDIR}

if [ ! -d ${NODEPREFIX} ]; then

BUILD_PKG=node-v${NODEVERSION}

# STEP 3/5 modify to reflect node version from .nvrmc
# md5repo.sh "https://nodejs.org/download/release/v24.19.0/node-v24.19.0.tar.gz"
SRCURL="https://beehive.molgen.mpg.de/c3398511ef7dd5c8269d79d485a8d044/${BUILD_PKG}.tar.gz"

mkdir -p ${NODEPREFIX}

cat >${NODEPREFIX}/profile <<-EOF
PATH=${NODEPREFIX}/bin:\$PATH
npm_config_cache=${NODEPREFIX}/cache
EOF


test -e "${BUILD_PKG}.tar.gz" || wget -nv "${SRCURL}" -O "${BUILD_PKG}.tar.gz"
test -d "${BUILD_PKG}" || mkdir -pv "${BUILD_PKG}" && tar -xf "${BUILD_PKG}.tar.gz" --strip-components=1 -C "${BUILD_PKG}"

. "${PREFIX}/profile"

pushd "${BUILD_PKG}"

CFLAGS='-O2 -fPIC' \
./configure --prefix=${NODEPREFIX}

make -j $(nproc)

make install
popd

fi

PATH=${NODEPREFIX}/bin:$PATH

pushd ${PREFIX}

npm install corepack

type corepack

corepack enable pnpm

popd

if [ ! -e bin/git-lfs ]; then
mkdir -p bin
pushd bin
wget "https://beehive.molgen.mpg.de/f07153c9add38691457af31d5ef60d89/git-lfs"
chmod -v 755 git-lfs
popd
fi

PATH=${BUILDDIR}/bin:$PATH
export PATH

############ git-lfs installed ############

# STEP 4/5 git clone Signal-Desktop and check out to be installed version

# now go for signal
# git clone https://github.com/signalapp/Signal-Desktop.git
# ( cd Signal-Desktop; git describe )
# tar cf
# md5repo.sh

SRCURL="https://beehive.molgen.mpg.de/51baa36f157172ce5b2829c242e1c96b/Signal-Desktop-v6.31.0-beta.1-3943-g6aea489bd"
PKGARC=${SRCURL##*/}

test -e ${PKGARC} || wget -nv ${SRCURL}
test -d Signal-Desktop || mkdir Signal-Desktop && tar -x --directory=Signal-Desktop --strip-components=1 -f ${PKGARC}

pushd Signal-Desktop

git-lfs install

git clean -d --force
git checkout tags/v${VERSION}

## aus reproducable-build/docker-entrypoint.sh
pnpm install --frozen-lockfile
pnpm run clean-transpile
pushd sticker-creator
pnpm install --frozen-lockfile
pnpm run build
popd
pnpm run generate

pnpm run prepare-linux-build deb # $BUILD_TARGETS == '' ? deb

pnpm install
pnpm run build-linux

##

popd

find ${BUILDDIR} -perm -700 ! -perm -005 -exec chmod o+rx '{}' ';'

cp -ax ${BUILDDIR}/Signal-Desktop/release/linux-unpacked/. ${PREFIX}/

mkdir -p ${PREFIX}/bin

cat >${PREFIX}/bin/signal-desktop <<__EOS__
#!/bin/sh
exec ${PREFIX}/signal-desktop "\$@"
__EOS__

chmod 755 ${PREFIX}/bin/signal-desktop

}

# STEP 5/5 run