mirror of
https://github.com/Kron4ek/Conty
synced 2024-12-27 09:58:25 +01:00
53e64b65bf
Update bubblewrap to 0.6.2 Update squashfs-tools to 4.5.1 Update dwarfs to the latest git revision of the wip branch (which should speed up mount times on HDDs) Update all other outdated libraries
148 lines
4.7 KiB
Bash
Executable file
148 lines
4.7 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# General build dependencies: gawk grep lz4 zstd wget gcc make autoconf
|
|
# libtool pkgconf libcap fuse2 (or fuse3) lzo xz zlib findutils
|
|
#
|
|
# Dwarfs build dependencies: fuse2 (or fuse3) openssl jemalloc
|
|
# xxhash boost lz4 xz zstd libarchive libunwind google-glod gtest fmt
|
|
# gflags double-conversion cmake ruby-ronn libevent libdwarf git
|
|
#
|
|
# Dwarfs compilation is optional and disabled by default.
|
|
|
|
script_dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"
|
|
|
|
# Set to true to compile dwarfs instead of squashfuse
|
|
build_dwarfs="false"
|
|
|
|
squashfuse_version="0.1.104"
|
|
bwrap_version="0.6.2"
|
|
lz4_version="1.9.3"
|
|
zstd_version="1.5.2"
|
|
squashfs_tools_version="4.5.1"
|
|
|
|
export CC=gcc
|
|
export CXX=g++
|
|
|
|
export CFLAGS="-O2"
|
|
export CXXFLAGS="${CFLAGS}"
|
|
export LDFLAGS="-Wl,-O1,--sort-common,--as-needed"
|
|
|
|
mkdir -p "${script_dir}"/build-utils
|
|
cd "${script_dir}"/build-utils || exit 1
|
|
|
|
wget -q --show-progress -O lz4.tar.gz https://github.com/lz4/lz4/archive/refs/tags/v${lz4_version}.tar.gz
|
|
wget -q --show-progress -O zstd.tar.gz https://github.com/facebook/zstd/archive/refs/tags/v${zstd_version}.tar.gz
|
|
wget -q --show-progress -O bwrap.tar.gz https://github.com/containers/bubblewrap/archive/refs/tags/v${bwrap_version}.tar.gz
|
|
|
|
tar xf lz4.tar.gz
|
|
tar xf zstd.tar.gz
|
|
tar xf bwrap.tar.gz
|
|
|
|
if [ "${build_dwarfs}" != "true" ]; then
|
|
wget -q --show-progress -O squashfuse.tar.gz https://github.com/vasi/squashfuse/archive/refs/tags/${squashfuse_version}.tar.gz
|
|
wget -q --show-progress -O sqfstools.tar.gz https://github.com/plougher/squashfs-tools/archive/refs/tags/${squashfs_tools_version}.tar.gz
|
|
|
|
tar xf squashfuse.tar.gz
|
|
tar xf sqfstools.tar.gz
|
|
fi
|
|
|
|
cd bubblewrap-${bwrap_version}
|
|
./autogen.sh
|
|
./configure --disable-selinux --disable-man
|
|
make -j$(nproc) DESTDIR="${script_dir}"/build-utils/bin install
|
|
|
|
cd ../lz4-${lz4_version}
|
|
make -j$(nproc) DESTDIR="${script_dir}"/build-utils/bin install
|
|
|
|
cd ../zstd-${zstd_version}
|
|
ZSTD_LEGACY_SUPPORT=0 HAVE_ZLIB=0 HAVE_LZMA=0 HAVE_LZ4=0 BACKTRACE=0 make -j$(nproc) DESTDIR="${script_dir}"/build-utils/bin install
|
|
|
|
if [ "${build_dwarfs}" != "true" ]; then
|
|
cd ../squashfuse-${squashfuse_version}
|
|
./autogen.sh
|
|
./configure
|
|
make -j$(nproc) DESTDIR="${script_dir}"/build-utils/bin install
|
|
|
|
cd ../squashfs-tools-${squashfs_tools_version}/squashfs-tools
|
|
make -j$(nproc) GZIP_SUPPORT=1 XZ_SUPPORT=1 LZO_SUPPORT=1 LZMA_XZ_SUPPORT=1 \
|
|
LZ4_SUPPORT=1 ZSTD_SUPPORT=1 XATTR_SUPPORT=1
|
|
make INSTALL_DIR="${script_dir}"/build-utils/bin/usr/local/bin install
|
|
fi
|
|
|
|
cd "${script_dir}"/build-utils
|
|
mkdir utils
|
|
mv bin/usr/local/bin/bwrap utils
|
|
mv bin/usr/local/bin/squashfuse utils
|
|
mv bin/usr/local/bin/squashfuse_ll utils
|
|
mv bin/usr/local/bin/mksquashfs utils
|
|
mv bin/usr/local/bin/unsquashfs utils
|
|
mv bin/usr/local/lib/liblz4.so.${lz4_version} utils/liblz4.so.1
|
|
mv bin/usr/local/lib/libzstd.so.${zstd_version} utils/libzstd.so.1
|
|
mv bin/usr/local/lib/libfuseprivate.so.0.0.0 utils/libfuseprivate.so.0
|
|
mv bin/usr/local/lib/libsquashfuse.so.0.0.0 utils/libsquashfuse.so.0
|
|
|
|
if [ ! "$(ldd utils/squashfuse | grep libfuse.so.2)" ]; then
|
|
mv utils/squashfuse utils/squashfuse3
|
|
mv utils/squashfuse_ll utils/squashfuse3_ll
|
|
fi
|
|
|
|
if [ "${build_dwarfs}" = "true" ]; then
|
|
git clone https://github.com/mhx/dwarfs.git -b wip --recursive
|
|
|
|
# Fix compilation with Boost 1.79
|
|
wget -q --show-progress -O boost.patch "https://github.com/facebook/fbthrift/commit/5bd55f11e1b6cc2cb08a0001f9c77f56fb8ac649.patch"
|
|
patch -d dwarfs/fbthrift -Np1 < boost.patch
|
|
|
|
mkdir dwarfs/build
|
|
cd dwarfs/build
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release \
|
|
-DPREFER_SYSTEM_ZSTD=ON -DPREFER_SYSTEM_XXHASH=ON \
|
|
-DPREFER_SYSTEM_GTEST=ON
|
|
|
|
make -j$(nproc)
|
|
make DESTDIR="${script_dir}"/build-utils/bin install
|
|
|
|
cd "${script_dir}"/build-utils
|
|
mv bin/usr/local/sbin/dwarfs2 utils/dwarfs
|
|
mv bin/usr/local/sbin/dwarfs utils/dwarfs3
|
|
mv bin/usr/local/bin/mkdwarfs utils
|
|
mv bin/usr/local/bin/dwarfsextract utils
|
|
fi
|
|
|
|
libs_list="$(ldd utils/* | grep "=> /" | awk '{print $3}' | xargs)"
|
|
|
|
for i in ${libs_list}; do
|
|
if [ ! -f utils/"$(basename "${i}")" ]; then
|
|
cp -L "${i}" utils
|
|
fi
|
|
done
|
|
|
|
if [ ! -f utils/ld-linux-x86-64.so.2 ]; then
|
|
cp -L /lib64/ld-linux-x86-64.so.2 utils
|
|
fi
|
|
|
|
find utils -type f -exec strip --strip-unneeded {} \; 2>/dev/null
|
|
|
|
cat <<EOF > utils/info
|
|
bubblewrap ${bwrap_version}
|
|
lz4 ${lz4_version}
|
|
zstd ${zstd_version}
|
|
EOF
|
|
|
|
if [ "${build_dwarfs}" = "true" ]; then
|
|
echo "dwarfs $(git -C dwarfs rev-parse --short HEAD)-git" >> utils/info
|
|
utils="utils_dwarfs.tar.gz"
|
|
else
|
|
echo "squashfuse ${squashfuse_version}" >> utils/info
|
|
echo "squashfs-tools ${squashfs_tools_version}" >> utils/info
|
|
utils="utils.tar.gz"
|
|
fi
|
|
|
|
tar -zcf "${utils}" utils
|
|
mv "${script_dir}"/"${utils}" "${script_dir}"/"${utils}".old
|
|
mv "${utils}" "${script_dir}"
|
|
cd "${script_dir}" || exit 1
|
|
rm -rf build-utils
|
|
|
|
clear
|
|
echo "Done!"
|