9 Commits

Author SHA1 Message Date
9cca9d7e7b !1 Fix: truncate control file for repeated runs ~~feat: add Provide field in deb~~
Merge pull request !1 from ZhongYic/master
2025-05-18 08:02:06 +00:00
zhongyic00
aaedef8b83 fix: truncate on control file creation for repeated runs. 2025-05-17 19:08:56 +08:00
从天空
22a319014d update README.md.
Signed-off-by: 从天空 <tic2929014466@aliyun.com>
2024-12-13 00:08:58 +00:00
CongTianKong
1b4bfd36c1 add usr merge detect for debian trixie 2024-06-30 23:51:51 +08:00
kde
19297c6eef update rpm package to fedora 40 2024-04-26 19:03:18 +08:00
CongTianKong
e9a5e11b52 Merge branch 'master' of https://gitee.com/deepin-community-store/additional-base-lib 2023-11-10 12:49:51 +08:00
CongTianKong
f6087dacf6 fix base commands effected by LD_LIBRARY_PATH 2023-11-10 12:47:59 +08:00
CongTiankong
28803b11b6 remove outdated port guide 2023-08-17 11:44:42 +08:00
CongTiankong
179cf44241 fix comma in README 2023-08-17 11:12:21 +08:00
5 changed files with 31 additions and 22 deletions

View File

@@ -42,9 +42,6 @@ https://bbs.deepin.org/post/256555
Common solution for many library problem (in Chinese):
https://bbs.deepin.org/post/256081
A help for someone like to port this script to other GNU/Linux platform (in Chinese):
https://bbs.deepin.org/post/258721
#### Customize
If the released package cannot fit your needs (such as library version, architecture), for deb package, you may try `make-deb.sh` to create your own additional base lib. Download the project, and edit the script, change 3 package download URLs to which you want. You may found many version and architectures from debian page: https://www.debian.org/distrib/packages , and then run the script `make-deb.sh`. It will auto-detect architecture of packages, and take corresponding methods.
Install these packages first: bash, coreutils, dpkg, dpkg-dev, grep, wget, patchelf

View File

@@ -2,6 +2,9 @@
用轻量级容器工具bubblewrap解决GNU/Linux操作系统中常见的glibc不兼容问题。
|因为一些原因我不能继续更新这个程序。可以阅读[这篇文章了解ABL的原理和设计细节](https://bbs.deepin.org/zh/post/282284)。|
|-|
#### 概述
如果经常在GNU/Linux平台使用非系统软件源内的应用很容易遇到这样的问题
@@ -42,12 +45,9 @@ https://bbs.deepin.org/post/256555
解决动态库问题的通用解决方法:
https://bbs.deepin.org/post/256081
想要移植程序到其他系统或平台的,可以参考:
https://bbs.deepin.org/post/258721
#### 定制
如果这里发布的deb包不符合你的要求库版本、架构你可以使用`make-deb.sh`创造你自己的附加基础库。你需要将项目下载到本地然后编辑这个脚本把三个包的下载链接改成你想要的即可。你可以在debian的网站找到各种版本和架构的下载链接https://www.debian.org/distrib/packages ,然后在当前目录中执行`make-deb.sh`即可。他会自动识别软件包的架构并采取相应方案。
在这之前你需要安装以下软件包bash, coreutils, dpkg, dpkg-dev, grep, wget, patchelf
对于rpm包你可以使用`make-rpm.sh`你需要将项目下载到本地然后编辑这个脚本把三个包的下载链接改成你想要的即可。你可以在fedora的网站找到各种版本和架构的下载链接https://packages.fedoraproject.org/ ,然后在当前目录中执行`make-rpm.sh`即可。他会自动识别软件包的架构并采取相应方案。rpm包会存储在`~/rpmbuild/RPMS`中。
在这之前你需要安装以下软件包bashcoreutilsrpm-build, wget, patchelf
在这之前你需要安装以下软件包bash, coreutils, rpm-build, wget, patchelf

View File

@@ -1,10 +1,10 @@
#!/bin/bash
LIBC6_DOWNLOAD_URL=http://ftp.cn.debian.org/debian/pool/main/g/glibc/libc6_2.36-9+deb12u1_amd64.deb
LIBC_BIN_DOWNLOAD_URL=http://ftp.cn.debian.org/debian/pool/main/g/glibc/libc-bin_2.36-9+deb12u1_amd64.deb
LIBSTDCxx6_DOWNLOAD_URL=http://ftp.cn.debian.org/debian/pool/main/g/gcc-12/libstdc++6_12.2.0-14_amd64.deb
LIBC6_DOWNLOAD_URL=http://mirrors.ustc.edu.cn/debian/pool/main/g/glibc/libc6_2.38-13_amd64.deb
LIBC_BIN_DOWNLOAD_URL=http://mirrors.ustc.edu.cn/debian/pool/main/g/glibc/libc-bin_2.38-13_amd64.deb
LIBSTDCxx6_DOWNLOAD_URL=http://mirrors.ustc.edu.cn/debian/pool/main/g/gcc-14/libstdc++6_14-20240330-1_amd64.deb
ABL_VERSION=8
ABL_VERSION=9
check(){
if [ "$1" != 0 ]
@@ -99,8 +99,18 @@ check $?
DEBIAN_MULTIARCH=${DEBIAN_MULTIARCH:21}
echo "$DEBIAN_MULTIARCH"
echo "check usrmerge status:":
if [ -d "./downloads/libc6/lib" ]
then
LIBC_LIB_DIR=""
echo "not usrmerge"
else
LIBC_LIB_DIR="usr/"
echo "usrmerge"
fi
echo "ld.so location:"
LD_SO_LOCATION=`patchelf --print-interpreter "./downloads/libc6/lib/${DEBIAN_MULTIARCH}/libc.so.6"`
LD_SO_LOCATION=`patchelf --print-interpreter "./downloads/libc6/${LIBC_LIB_DIR}lib/${DEBIAN_MULTIARCH}/libc.so.6"`
check $?
echo "$LD_SO_LOCATION"
@@ -144,13 +154,13 @@ rooted_readlink(){
}
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/${LIBC_LIB_DIR}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"
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/${LIBC_LIB_DIR}${LD_SO_LOCATION}" "./downloads/libc6"` "./deb-contents/usr/lib/${DEBIAN_MULTIARCH}/additional-base-lib/$LD_SO_LOCATION"
check $?
echo "copy ldd script..."
@@ -166,7 +176,7 @@ DEB_INSTALL_SIZE=(`du -s ./deb-contents/`)
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 "Section: utils" >> ./deb-contents/DEBIAN/control
echo "Priority: optional" >> ./deb-contents/DEBIAN/control

View File

@@ -1,10 +1,10 @@
#!/bin/bash
GLIBC_DOWNLOAD_URL=https://kojipkgs.fedoraproject.org//packages/glibc/2.38/1.fc39/x86_64/glibc-2.38-1.fc39.x86_64.rpm
GLIBC_COMMON_DOWNLOAD_URL=https://kojipkgs.fedoraproject.org//packages/glibc/2.38/1.fc39/x86_64/glibc-common-2.38-1.fc39.x86_64.rpm
LIBSTDCxx_DOWNLOAD_URL=https://kojipkgs.fedoraproject.org//packages/gcc/13.2.1/1.fc39/x86_64/libstdc++-13.2.1-1.fc39.x86_64.rpm
GLIBC_DOWNLOAD_URL=https://kojipkgs.fedoraproject.org//packages/glibc/2.39/8.fc40/x86_64/glibc-2.39-8.fc40.x86_64.rpm
GLIBC_COMMON_DOWNLOAD_URL=https://kojipkgs.fedoraproject.org//packages/glibc/2.39/8.fc40/x86_64/glibc-common-2.39-8.fc40.x86_64.rpm
LIBSTDCxx_DOWNLOAD_URL=https://kojipkgs.fedoraproject.org//packages/gcc/14.0.1/0.15.fc40/x86_64/libstdc++-14.0.1-0.15.fc40.x86_64.rpm
ABL_VERSION=8
ABL_VERSION=9
ABL_RPM_RELEASE=1
check(){

View File

@@ -15,9 +15,6 @@ then
exit
fi
ABL_LD_SO_PATH=`readlink -e $ABL_TARGET_LD_SO_PATH`
ABL_LIBC_SO_PATH=`readlink -e /${ABL_DIR_PREFIX}/libc.so.6`
if [ "$LD_LIBRARY_PATH" = "" ]
then
ABL_LIBRARY_PATH="/usr/${ABL_DIR_PREFIX}/additional-base-lib/"
@@ -25,6 +22,11 @@ else
ABL_LIBRARY_PATH="$LD_LIBRARY_PATH;/usr/${ABL_DIR_PREFIX}/additional-base-lib"
fi
unset LD_LIBRARY_PATH
ABL_LD_SO_PATH=`readlink -e $ABL_TARGET_LD_SO_PATH`
ABL_LIBC_SO_PATH=`readlink -e /${ABL_DIR_PREFIX}/libc.so.6`
ABL_BWRAP_SETUID=`which bwrap`
ABL_BWRAP_SETUID=`readlink -e "$ABL_BWRAP_SETUID"`
ABL_BWRAP_SETUID=`ls -l "$ABL_BWRAP_SETUID"`