mirror of
https://gitee.com/spark-store-project/additional-base-lib
synced 2025-09-19 10:32:20 +08:00
update notes and complete build script
This commit is contained in:
parent
b7e9e34833
commit
c242e3949a
112
make-deb.sh
112
make-deb.sh
@ -17,57 +17,95 @@ check(){
|
|||||||
|
|
||||||
echo "download packages:"
|
echo "download packages:"
|
||||||
mkdir ./downloads
|
mkdir ./downloads
|
||||||
echo "download libc6"
|
echo "download libc6..."
|
||||||
wget "$LIBC6_DOWNLOAD_URL" -c -O ./downloads/libc6.deb
|
wget "$LIBC6_DOWNLOAD_URL" -c -O ./downloads/libc6.deb
|
||||||
check $?
|
check $?
|
||||||
echo "download libc_bin"
|
echo "download libc_bin..."
|
||||||
wget "$LIBC_BIN_DOWNLOAD_URL" -c -O ./downloads/libc-bin.deb
|
wget "$LIBC_BIN_DOWNLOAD_URL" -c -O ./downloads/libc-bin.deb
|
||||||
check $?
|
check $?
|
||||||
echo "download libstdc++6"
|
echo "download libstdc++6..."
|
||||||
wget "$LIBSTDCxx6_DOWNLOAD_URL" -c -O ./downloads/libstdc++6.deb
|
wget "$LIBSTDCxx6_DOWNLOAD_URL" -c -O ./downloads/libstdc++6.deb
|
||||||
check $?
|
check $?
|
||||||
|
|
||||||
|
echo
|
||||||
echo "extract packages:"
|
echo "extract packages:"
|
||||||
|
echo "extract libc6..."
|
||||||
dpkg -x ./downloads/libc6.deb ./downloads/libc6
|
dpkg -x ./downloads/libc6.deb ./downloads/libc6
|
||||||
|
check $?
|
||||||
dpkg -e ./downloads/libc6.deb ./downloads/libc6/DEBIAN
|
dpkg -e ./downloads/libc6.deb ./downloads/libc6/DEBIAN
|
||||||
|
check $?
|
||||||
|
echo "extract libc-bin..."
|
||||||
dpkg -x ./downloads/libc-bin.deb ./downloads/libc-bin
|
dpkg -x ./downloads/libc-bin.deb ./downloads/libc-bin
|
||||||
|
check $?
|
||||||
dpkg -e ./downloads/libc-bin.deb ./downloads/libc-bin/DEBIAN
|
dpkg -e ./downloads/libc-bin.deb ./downloads/libc-bin/DEBIAN
|
||||||
|
check $?
|
||||||
|
echo "extract libstdc++6..."
|
||||||
dpkg -x ./downloads/libstdc++6.deb ./downloads/libstdc++6
|
dpkg -x ./downloads/libstdc++6.deb ./downloads/libstdc++6
|
||||||
|
check $?
|
||||||
dpkg -e ./downloads/libstdc++6.deb ./downloads/libstdc++6/DEBIAN
|
dpkg -e ./downloads/libstdc++6.deb ./downloads/libstdc++6/DEBIAN
|
||||||
|
check $?
|
||||||
|
|
||||||
|
echo
|
||||||
echo "check packages:"
|
echo "check packages:"
|
||||||
|
echo "check version libc6==lib_bin"
|
||||||
LIBC6_VERSION=`cat ./downloads/libc6/DEBIAN/control | grep "^Version: .*"`
|
LIBC6_VERSION=`cat ./downloads/libc6/DEBIAN/control | grep "^Version: .*"`
|
||||||
|
check $?
|
||||||
LIBC6_VERSION=${LIBC6_VERSION:9}
|
LIBC6_VERSION=${LIBC6_VERSION:9}
|
||||||
LIBC_BIN_VERSION=`cat ./downloads/libc-bin/DEBIAN/control | grep "^Version: .*"`
|
LIBC_BIN_VERSION=`cat ./downloads/libc-bin/DEBIAN/control | grep "^Version: .*"`
|
||||||
|
check $?
|
||||||
LIBC_BIN_VERSION=${LIBC_BIN_VERSION:9}
|
LIBC_BIN_VERSION=${LIBC_BIN_VERSION:9}
|
||||||
LIBSTDCxx6_VERSION=`cat ./downloads/libstdc++6/DEBIAN/control | grep "^Version: .*"`
|
LIBSTDCxx6_VERSION=`cat ./downloads/libstdc++6/DEBIAN/control | grep "^Version: .*"`
|
||||||
|
check $?
|
||||||
LIBSTDCxx6_VERSION=${LIBSTDCxx6_VERSION:9}
|
LIBSTDCxx6_VERSION=${LIBSTDCxx6_VERSION:9}
|
||||||
|
|
||||||
|
echo "$LIBC6_VERSION==$LIBC_BIN_VERSION"
|
||||||
|
[ "$LIBC6_VERSION" = "$LIBC_BIN_VERSION" ]
|
||||||
|
check $?
|
||||||
|
|
||||||
|
echo "check arch libc6==libc_bin"
|
||||||
LIBC6_ARCH=`cat ./downloads/libc6/DEBIAN/control | grep "^Architecture: .*"`
|
LIBC6_ARCH=`cat ./downloads/libc6/DEBIAN/control | grep "^Architecture: .*"`
|
||||||
|
check $?
|
||||||
LIBC6_ARCH=${LIBC6_ARCH:14}
|
LIBC6_ARCH=${LIBC6_ARCH:14}
|
||||||
LIBC_BIN_ARCH=`cat ./downloads/libc-bin/DEBIAN/control | grep "^Architecture: .*"`
|
LIBC_BIN_ARCH=`cat ./downloads/libc-bin/DEBIAN/control | grep "^Architecture: .*"`
|
||||||
|
check $?
|
||||||
LIBC_BIN_ARCH=${LIBC_BIN_ARCH:14}
|
LIBC_BIN_ARCH=${LIBC_BIN_ARCH:14}
|
||||||
LIBSTDCxx6_ARCH=`cat ./downloads/libstdc++6/DEBIAN/control | grep "^Architecture: .*"`
|
|
||||||
LIBSTDCxx6_ARCH=${LIBSTDCxx6_ARCH:14}
|
|
||||||
|
|
||||||
echo "check arch libc6==libc_bin $LIBC6_ARCH==$LIBC_BIN_ARCH"
|
echo "$LIBC6_ARCH==$LIBC_BIN_ARCH"
|
||||||
[ "$LIBC6_ARCH" = "$LIBC_BIN_ARCH" ]
|
[ "$LIBC6_ARCH" = "$LIBC_BIN_ARCH" ]
|
||||||
check $?
|
check $?
|
||||||
echo "check arch libc6==libstdc++6 $LIBC6_ARCH==$LIBSTDCxx6_ARCH"
|
|
||||||
|
echo "check arch libc6==libstdc++6"
|
||||||
|
LIBSTDCxx6_ARCH=`cat ./downloads/libstdc++6/DEBIAN/control | grep "^Architecture: .*"`
|
||||||
|
check $?
|
||||||
|
LIBSTDCxx6_ARCH=${LIBSTDCxx6_ARCH:14}
|
||||||
|
|
||||||
|
echo "$LIBC6_ARCH==$LIBSTDCxx6_ARCH"
|
||||||
[ "$LIBC6_ARCH" = "$LIBSTDCxx6_ARCH" ]
|
[ "$LIBC6_ARCH" = "$LIBSTDCxx6_ARCH" ]
|
||||||
check $?
|
check $?
|
||||||
echo "check version libc6==lib_bin $LIBC6_VERSION==$LIBC_BIN_VERSION"
|
|
||||||
check $?
|
|
||||||
|
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "collect information:"
|
||||||
|
echo "glibc version:"
|
||||||
GLIBC_VERSION=$LIBC6_VERSION
|
GLIBC_VERSION=$LIBC6_VERSION
|
||||||
DEBIAN_DEB_ARCH=$LIBC6_ARCH
|
echo "$GLIBC_VERSION"
|
||||||
DEBIAN_MULTIARCH=`dpkg-architecture -A "$DEBIAN_DEB_ARCH" | grep "^DEB_TARGET_MULTIARCH=.*"`
|
|
||||||
DEBIAN_MULTIARCH=${DEBIAN_MULTIARCH:21}
|
|
||||||
LD_SO_LOCATION=`patchelf --print-interpreter "./downloads/libc6/lib/${DEBIAN_MULTIARCH}/libc.so.6"`
|
|
||||||
LIBC_SO_LOCATION="/lib/$DEBIAN_MULTIARCH/libc.so.6"
|
|
||||||
echo "$GLIBC_VERSION,$DEBIAN_DEB_ARCH,$DEBIAN_MULTIARCH,$LD_SO_LOCATION,$LIBC_SO_LOCATION"
|
|
||||||
|
|
||||||
|
echo "deb package architecture:"
|
||||||
|
DEBIAN_DEB_ARCH=$LIBC6_ARCH
|
||||||
|
echo "$DEBIAN_DEB_ARCH"
|
||||||
|
|
||||||
|
echo "debian multiarch directory name:"
|
||||||
|
DEBIAN_MULTIARCH=`dpkg-architecture -A "$DEBIAN_DEB_ARCH" | grep "^DEB_TARGET_MULTIARCH=.*"`
|
||||||
|
check $?
|
||||||
|
DEBIAN_MULTIARCH=${DEBIAN_MULTIARCH:21}
|
||||||
|
echo "$DEBIAN_MULTIARCH"
|
||||||
|
|
||||||
|
echo "ld.so location:"
|
||||||
|
LD_SO_LOCATION=`patchelf --print-interpreter "./downloads/libc6/lib/${DEBIAN_MULTIARCH}/libc.so.6"`
|
||||||
|
check $?
|
||||||
|
echo "$LD_SO_LOCATION"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "build package directories..."
|
||||||
mkdir ./deb-contents
|
mkdir ./deb-contents
|
||||||
mkdir ./deb-contents/DEBIAN
|
mkdir ./deb-contents/DEBIAN
|
||||||
mkdir ./deb-contents/usr
|
mkdir ./deb-contents/usr
|
||||||
@ -75,6 +113,8 @@ mkdir ./deb-contents/usr/bin
|
|||||||
mkdir ./deb-contents/usr/lib
|
mkdir ./deb-contents/usr/lib
|
||||||
mkdir "./deb-contents/usr/lib/$DEBIAN_MULTIARCH"
|
mkdir "./deb-contents/usr/lib/$DEBIAN_MULTIARCH"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "create control file..."
|
||||||
echo "Package: additional-base-lib" >> ./deb-contents/DEBIAN/control
|
echo "Package: additional-base-lib" >> ./deb-contents/DEBIAN/control
|
||||||
echo "Version: $GLIBC_VERSION-$ABL_VERSION" >> ./deb-contents/DEBIAN/control
|
echo "Version: $GLIBC_VERSION-$ABL_VERSION" >> ./deb-contents/DEBIAN/control
|
||||||
echo "Section: utils" >> ./deb-contents/DEBIAN/control
|
echo "Section: utils" >> ./deb-contents/DEBIAN/control
|
||||||
@ -83,17 +123,34 @@ echo "Architecture: $DEBIAN_DEB_ARCH" >> ./deb-contents/DEBIAN/control
|
|||||||
echo "Maintainer: CongTianKong (gitee.com/CongTianKong)" >> ./deb-contents/DEBIAN/control
|
echo "Maintainer: CongTianKong (gitee.com/CongTianKong)" >> ./deb-contents/DEBIAN/control
|
||||||
echo "Depends: bubblewrap, bash, coreutils, shared-mime-info, xdg-utils" >> ./deb-contents/DEBIAN/control
|
echo "Depends: bubblewrap, bash, coreutils, shared-mime-info, xdg-utils" >> ./deb-contents/DEBIAN/control
|
||||||
echo "Description: A script to run programs with newer libc." >> ./deb-contents/DEBIAN/control
|
echo "Description: A script to run programs with newer libc." >> ./deb-contents/DEBIAN/control
|
||||||
echo " package built with make-deb.sh." >> ./deb-contents/DEBIAN/control
|
echo " package built with make-deb.sh from additional-base-lib project." >> ./deb-contents/DEBIAN/control
|
||||||
|
echo " libc6 download URL: $LIBC6_DOWNLOAD_URL" >> ./deb-contents/DEBIAN/control
|
||||||
|
echo " libc-bin download URL: $LIBC_BIN_DOWNLOAD_URL" >> ./deb-contents/DEBIAN/control
|
||||||
|
echo " libstdc++6 download URL: $LIBSTDCxx6_DOWNLOAD_URL" >> ./deb-contents/DEBIAN/control
|
||||||
|
|
||||||
echo >> ./deb-contents/DEBIAN/control
|
echo >> ./deb-contents/DEBIAN/control
|
||||||
|
check $?
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "gather files:"
|
||||||
|
echo "copy ablrun script..."
|
||||||
cp ./scripts/ablrun ./deb-contents/usr/bin/ablrun
|
cp ./scripts/ablrun ./deb-contents/usr/bin/ablrun
|
||||||
|
check $?
|
||||||
|
|
||||||
|
echo "copy ablrun-appimage script..."
|
||||||
cp ./scripts/ablrun-appimage ./deb-contents/usr/bin/ablrun-appimage
|
cp ./scripts/ablrun-appimage ./deb-contents/usr/bin/ablrun-appimage
|
||||||
|
check $?
|
||||||
|
|
||||||
|
echo "generate ablrun-normal script..."
|
||||||
echo "#!/bin/bash" > ./deb-contents/usr/bin/ablrun-normal
|
echo "#!/bin/bash" > ./deb-contents/usr/bin/ablrun-normal
|
||||||
echo "ABL_TARGET_LD_SO_PATH=$LD_SO_LOCATION" >> ./deb-contents/usr/bin/ablrun-normal
|
echo "ABL_TARGET_LD_SO_PATH=$LD_SO_LOCATION" >> ./deb-contents/usr/bin/ablrun-normal
|
||||||
echo "ABL_ARCH_DIR=$DEBIAN_MULTIARCH" >> ./deb-contents/usr/bin/ablrun-normal
|
echo "ABL_ARCH_DIR=$DEBIAN_MULTIARCH" >> ./deb-contents/usr/bin/ablrun-normal
|
||||||
cat ./scripts/ablrun-normal.1 >> ./deb-contents/usr/bin/ablrun-normal
|
cat ./scripts/ablrun-normal.1 >> ./deb-contents/usr/bin/ablrun-normal
|
||||||
|
check $?
|
||||||
|
|
||||||
|
echo "chmod..."
|
||||||
chmod a+x ./deb-contents/usr/bin/*
|
chmod a+x ./deb-contents/usr/bin/*
|
||||||
|
check $?
|
||||||
|
|
||||||
rooted_readlink(){
|
rooted_readlink(){
|
||||||
rrl_result=$1
|
rrl_result=$1
|
||||||
@ -111,11 +168,28 @@ rooted_readlink(){
|
|||||||
echo -n "$rrl_result"
|
echo -n "$rrl_result"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
echo "copy many libc6 components..."
|
||||||
cp -r "./downloads/libc6/lib/${DEBIAN_MULTIARCH}/" "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib"
|
cp -r "./downloads/libc6/lib/${DEBIAN_MULTIARCH}/" "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib"
|
||||||
|
check $?
|
||||||
|
|
||||||
|
echo "copy ld.so..."
|
||||||
mkdir --parents "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/$LD_SO_LOCATION"
|
mkdir --parents "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/$LD_SO_LOCATION"
|
||||||
rm -d "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/$LD_SO_LOCATION"
|
rm -d "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/$LD_SO_LOCATION"
|
||||||
cp `rooted_readlink "./downloads/libc6/$LD_SO_LOCATION" "./downloads/libc6"` "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/$LD_SO_LOCATION"
|
cp `rooted_readlink "./downloads/libc6/$LD_SO_LOCATION" "./downloads/libc6"` "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/$LD_SO_LOCATION"
|
||||||
cp "./downloads/libc-bin/usr/bin/ldd" "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/ldd"
|
check $?
|
||||||
cp `rooted_readlink ./downloads/libstdc++6/usr/lib/${DEBIAN_MULTIARCH}/libstdc++.so.6 ./downloads/libstdc++6/` "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/libstdc++.so.6"
|
|
||||||
|
|
||||||
|
echo "copy ldd script..."
|
||||||
|
cp "./downloads/libc-bin/usr/bin/ldd" "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/ldd"
|
||||||
|
check $?
|
||||||
|
|
||||||
|
echo "copy libstdc++..."
|
||||||
|
cp `rooted_readlink ./downloads/libstdc++6/usr/lib/${DEBIAN_MULTIARCH}/libstdc++.so.6 ./downloads/libstdc++6/` "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/libstdc++.so.6"
|
||||||
|
check $?
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "build deb package:"
|
||||||
dpkg -b ./deb-contents "./additional-base-lib_${GLIBC_VERSION}-${ABL_VERSION}_${DEBIAN_DEB_ARCH}.deb"
|
dpkg -b ./deb-contents "./additional-base-lib_${GLIBC_VERSION}-${ABL_VERSION}_${DEBIAN_DEB_ARCH}.deb"
|
||||||
|
check $?
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "complete with no error!"
|
@ -6,9 +6,11 @@ then
|
|||||||
echo " The script is part of additional-base-lib. The package provides a"
|
echo " The script is part of additional-base-lib. The package provides a"
|
||||||
echo " simple way to solve the compatible problem between application and"
|
echo " simple way to solve the compatible problem between application and"
|
||||||
echo " glibc, powered by bubblewrap."
|
echo " glibc, powered by bubblewrap."
|
||||||
echo " All the library files, which distributed with additional-base-lib,"
|
echo
|
||||||
echo " are taken from debian bookworm. The script itself create by enforcee"
|
echo " All the library files, which packed with additional-base-lib,"
|
||||||
echo " from deepin forum <https://bbs.deepin.org/>. There's no lisence"
|
echo " are taken from one GNU/Linux distribution. You may found information"
|
||||||
|
echo " in package control files. The scripts theirselves were created by"
|
||||||
|
echo " CongTianKong <https://gitee.com/CongTianKong>. There's no lisence"
|
||||||
echo " nor copyright restriction with The script. Feel free to deal with."
|
echo " nor copyright restriction with The script. Feel free to deal with."
|
||||||
echo
|
echo
|
||||||
echo " This script auto-detects normal executable and appimage, and then"
|
echo " This script auto-detects normal executable and appimage, and then"
|
||||||
|
@ -8,6 +8,10 @@ then
|
|||||||
echo " You have to ensure input file IS an appimage, for this script"
|
echo " You have to ensure input file IS an appimage, for this script"
|
||||||
echo " does not check. If you input other files, It will become"
|
echo " does not check. If you input other files, It will become"
|
||||||
echo " unpredictable."
|
echo " unpredictable."
|
||||||
|
echo
|
||||||
|
echo " There is a more convenient script to handle both normal executable"
|
||||||
|
echo " and appimage, called ablrun."
|
||||||
|
echo " usage: ablrun [command [arguments ...]]"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -6,15 +6,19 @@ then
|
|||||||
echo " The script is part of additional-base-lib. The package provides a"
|
echo " The script is part of additional-base-lib. The package provides a"
|
||||||
echo " simple way to solve the compatible problem between application and"
|
echo " simple way to solve the compatible problem between application and"
|
||||||
echo " glibc, powered by bubblewrap."
|
echo " glibc, powered by bubblewrap."
|
||||||
echo " All the library files, which distributed with additional-base-lib,"
|
echo
|
||||||
echo " are taken from debian bookworm. The script itself create by enforcee"
|
echo " All the library files, which packed with additional-base-lib,"
|
||||||
echo " from deepin forum <https://bbs.deepin.org/>. There's no lisence"
|
echo " are taken from one GNU/Linux distribution. You may found information"
|
||||||
|
echo " in package control files. The scripts theirselves were created by"
|
||||||
|
echo " CongTianKong <https://gitee.com/CongTianKong>. There's no lisence"
|
||||||
echo " nor copyright restriction with The script. Feel free to deal with."
|
echo " nor copyright restriction with The script. Feel free to deal with."
|
||||||
echo
|
echo
|
||||||
echo " If you're going to run appimage with additional-base-lib, you may"
|
echo " If you're going to run appimage with additional-base-lib, you may"
|
||||||
echo " need ablrun-appimage."
|
echo " need ablrun-appimage."
|
||||||
echo " There is a simpler script to handle both normal executable and"
|
echo
|
||||||
echo " appimage, called ablrun. usage: ablrun [command [arguments ...]]"
|
echo " There is a more convenient script to handle both normal executable"
|
||||||
|
echo " and appimage, called ablrun."
|
||||||
|
echo " usage: ablrun [command [arguments ...]]"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user