Skip to content

Commit ad50c02

Browse files
Static desktop-file-validate and zsyncmake (#47)
* Add install-static-desktop-file-validate.sh * Build latest desktop-file-utils statically with meson --------- Co-authored-by: TheAssassin <theassassin@assassinate-you.net>
1 parent d870d4f commit ad50c02

File tree

4 files changed

+84
-2
lines changed

4 files changed

+84
-2
lines changed

ci/build-in-docker.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,11 @@ docker run \
5959
6060
set -euxo pipefail
6161
62-
apk add bash git gcc g++ cmake make file desktop-file-utils wget \
62+
apk add bash git gcc g++ cmake make file wget \
6363
gpgme-dev libgcrypt-dev libgcrypt-static argp-standalone zstd-dev zstd-static util-linux-static \
6464
glib-static libassuan-static zlib-static libgpg-error-static \
65-
curl-dev curl-static nghttp2-static libidn2-static openssl-libs-static brotli-static c-ares-static libunistring-static
65+
curl-dev curl-static nghttp2-static libidn2-static openssl-libs-static brotli-static c-ares-static libunistring-static \
66+
glib-static glib-dev autoconf automake meson
6667
6768
# libcurl's pkg-config scripts are broken. everywhere, everytime.
6869
# these additional flags have been collected from all the .pc files whose libs are mentioned as -l<lib> in Libs.private
@@ -74,7 +75,9 @@ echo "Requires.private: libcares libnghttp2 libidn2 libssl openssl libcrypto lib
7475
# in a Docker container, we can safely disable this check
7576
git config --global --add safe.directory '*'
7677
78+
bash -euxo pipefail /source/ci/install-static-desktop-file-validate.sh 0.28
7779
bash -euxo pipefail /source/ci/install-static-mksquashfs.sh 4.6.1
80+
bash -euxo pipefail /source/ci/install-static-zsyncmake.sh 0.6.2
7881
7982
bash -euxo pipefail /source/ci/build.sh
8083

ci/build.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ make install DESTDIR=AppDir
3636

3737
find AppDir
3838

39+
cp "$(which desktop-file-validate)" AppDir/usr/bin
3940
cp "$(which mksquashfs)" AppDir/usr/bin
41+
cp "$(which zsyncmake)" AppDir/usr/bin
4042

4143
cp "$repo_root"/resources/AppRun.sh AppDir/AppRun
4244
chmod +x AppDir/AppRun
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#! /bin/bash
2+
3+
set -euxo pipefail
4+
5+
if [[ "${1:-}" == "" ]]; then
6+
echo "Usage: $0 <version>"
7+
exit 2
8+
fi
9+
10+
version="$1"
11+
12+
build_dir="$(mktemp -d -t desktop-file-utils-build-XXXXXX)"
13+
14+
cleanup () {
15+
if [ -d "$build_dir" ]; then
16+
rm -rf "$build_dir"
17+
fi
18+
}
19+
trap cleanup EXIT
20+
21+
pushd "$build_dir"
22+
23+
# apk add glib-static glib-dev autoconf automake # Moved to build-in-docker.sh
24+
25+
wget -c "https://gitlab.freedesktop.org/xdg/desktop-file-utils/-/archive/"$version"/desktop-file-utils-"$version".tar.gz"
26+
tar xf desktop-file-utils-*.tar.gz
27+
cd desktop-file-utils-*/
28+
29+
# setting LDFLAGS as suggested in https://mesonbuild.com/Creating-Linux-binaries.html#building-and-installing
30+
env LDFLAGS=-static meson setup build --prefer-static --default-library=static
31+
32+
if [[ "${GITHUB_ACTIONS:-}" != "" ]]; then
33+
jobs="$(nproc)"
34+
else
35+
jobs="$(nproc --ignore=1)"
36+
fi
37+
38+
ninja -C build -j "$jobs" -v
39+
ninja -C build -j 1 -v install

ci/install-static-zsyncmake.sh

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#! /bin/bash
2+
3+
set -euxo pipefail
4+
5+
if [[ "${1:-}" == "" ]]; then
6+
echo "Usage: $0 <version>"
7+
exit 2
8+
fi
9+
10+
version="$1"
11+
12+
build_dir="$(mktemp -d -t zsyncmake-build-XXXXXX)"
13+
14+
cleanup () {
15+
if [ -d "$build_dir" ]; then
16+
rm -rf "$build_dir"
17+
fi
18+
}
19+
trap cleanup EXIT
20+
21+
pushd "$build_dir"
22+
23+
wget http://zsync.moria.org.uk/download/zsync-"$version".tar.bz2 -q
24+
tar xf zsync-*.tar.bz2
25+
26+
cd zsync-*/
27+
28+
find . -type f -exec sed -i -e 's|off_t|size_t|g' {} \;
29+
30+
./configure CFLAGS=-no-pie LDFLAGS=-static --prefix=/usr --build=$(arch)-unknown-linux-gnu
31+
32+
if [[ "${GITHUB_ACTIONS:-}" != "" ]]; then
33+
jobs="$(nproc)"
34+
else
35+
jobs="$(nproc --ignore=1)"
36+
fi
37+
38+
make -j"$jobs" install

0 commit comments

Comments
 (0)