[software development] 我的ABL项目希望有人接替
Tofloor
poster avatar
enforcee
deepin
2024-12-09 10:05
Author

过去我为了试验解决glibc兼容问题,设计了这个非常简单的程序,帮助到了一些坛友,所以随后又做了一些改善。如今我不能继续维护,但目前星火商店有大量应用采用ABL兼容旧版系统,如果没人改善的话将来可能会造成一些麻烦,所以希望之后能有其他人帮助。

项目基本是用bash脚本写的,还算比较简单,有兴趣的坛友可以试试。感谢大家。

项目主页:

https://gitee.com/spark-store-project/additional-base-lib

Reply Favorite View the author
All Replies
神末shenmo
deepin
Spark-App
Solutions Team Moderator
2024-12-09 10:24
#1

没事,最终归宿基本都是丢给我ok


https://gitee.com/spark-building-service/sbs-scripts/blob/master/amd64/additional-base-lib/build.sh

目前ABL已转去星火自动构建系统来进行自动维护续命,但不再会有新功能或问题修复,仅保持内容更新

若无后续志愿者接手,ABL将会长期维持自动维护状态,直到再次出现需要人工干预的情况

到那个时候,会推一个空包,透传所有的命令以避免在新机出现问题,ABL仓库也会Archive

Reply View the author
funny
deepin
2024-12-09 10:30
#2
神末shenmo

没事,最终归宿基本都是丢给我ok


https://gitee.com/spark-building-service/sbs-scripts/blob/master/amd64/additional-base-lib/build.sh

目前ABL已转去星火自动构建系统来进行自动维护续命,但不再会有新功能或问题修复,仅保持内容更新

若无后续志愿者接手,ABL将会长期维持自动维护状态,直到再次出现需要人工干预的情况

到那个时候,会推一个空包,透传所有的命令以避免在新机出现问题,ABL仓库也会Archive

6

Reply View the author
平津侯
deepin
2024-12-09 10:50
#3

这就是开源精神的传承

Reply View the author
enforcee
deepin
2024-12-09 10:54
#4

我之后会写一篇详解ABL原理的文章,这样就算一时半会找不到别人帮助,也能给其他研究glibc兼容问题的提供一些支援。

sweat

Reply View the author
coder潘
deepin
2024-12-09 11:11
#5
enforcee

我之后会写一篇详解ABL原理的文章,这样就算一时半会找不到别人帮助,也能给其他研究glibc兼容问题的提供一些支援。

sweat

支持

Reply View the author
把一切操作变成GUI
deepin
Backbone of ecological co-construction group
2024-12-09 11:23
#6
enforcee

我之后会写一篇详解ABL原理的文章,这样就算一时半会找不到别人帮助,也能给其他研究glibc兼容问题的提供一些支援。

sweat

希望能详细的讲讲,因为有些人连用都不知道怎么用😂

感觉结合玲珑用起来打包挺复杂的

Reply View the author
mozixun
Moderator
2024-12-09 11:36
#7
把一切操作变成GUI

希望能详细的讲讲,因为有些人连用都不知道怎么用😂

感觉结合玲珑用起来打包挺复杂的

玲珑应用难的不是使用,而是打包

论使用玲珑应用按一下安装就全部搞定了

Reply View the author
W2J
deepin
2024-12-09 12:03
#8

这是过去发行版的基础C支持库版本滞后引起的坛友自发出手绕过问题,

大神这是功成身退了丫。近来有何打算?

Reply View the author
enforcee
deepin
2024-12-09 12:26
#9
W2J

这是过去发行版的基础C支持库版本滞后引起的坛友自发出手绕过问题,

大神这是功成身退了丫。近来有何打算?

我也很难说,没准会休息一段时间去做点其他有意思的事

sad

Reply View the author
enforcee
deepin
2024-12-09 19:24
#10

文章已经写出来了。

https://bbs.deepin.org/post/282284

Reply View the author
小小怪冲啊!
deepin
2024-12-10 00:25
#11

真好

Reply View the author
Oli
deepin
2024-12-10 07:45
#12

来源之火

Reply View the author
聪明蛋
deepin
2024-12-10 07:49
#13
The user is banned, and the content is hidden.
kero990
deepin
2025-03-05 15:36
#14

实际上,我找到了一个看起来更加优雅~~暴力~~的解决方案。

https://github.com/corsix/polyfill-glibc
这个项目能够修改编译好的可执行文件,以移除GLIBC的版本依赖。尽管很多时候,移除了GLIBC依赖也无法在旧的GLIBC上运行,但很多时候,这就足够了。

即使这样不够,比如还有GLIBCXX的版本依赖,或者旧版glibc缺少函数改了也没办法的情况。

那么它还有另一个功能,通过 --set-interpreter参数,它可以修改可执行文件默认调用的 ld-linux-$ARCH.so.1链接器路径,从而避免使用容器或命名空间。

所以我只需要把additional-base-lib打包进去,修改程序的--set-interpreter,就可以简单的使用

LD_PRELOAD=./lib/additional-base-lib/libc.so.6 LD_LIBRARY_PATH=./lib/additional-base-lib executable

这样的命令来运行可执行文件。它也可以修改动态库,不过不建议这么做,改的多了总会出问题。


下面是我的一个改造成果,Aethersx2,著名的PS2模拟器,闭源,作者跑路,采用qt6编译。本体依赖GLIBC2.29和GLIBCXX_3.4.26,同时qt6本身也有同样的依赖。

通过集成作者的additional-base-lib(只需要库文件),修改--set-interpreter以调用相对路径的 ld-linux-aarch64.so.1,替换其他依赖库包括qt6到debian10能用的版本,然后通过上述命令优雅的本地运行。不需要容器,纯绿色打包,只需要一个启动脚本。而这玩意以前只有个appimage,而且并不能运行。

image.png

@神末shenmo @enforcee

Reply View the author
jmjoy
deepin
2025-03-05 17:39
#15

看到glibc这个毒瘤我就烦

Reply View the author
enforcee
deepin
2025-03-06 20:47
#16
jmjoy

看到glibc这个毒瘤我就烦

建议卸载

sweat

Reply View the author
enforcee
deepin
2025-03-06 20:49
#17
kero990

实际上,我找到了一个看起来更加优雅~~暴力~~的解决方案。

https://github.com/corsix/polyfill-glibc
这个项目能够修改编译好的可执行文件,以移除GLIBC的版本依赖。尽管很多时候,移除了GLIBC依赖也无法在旧的GLIBC上运行,但很多时候,这就足够了。

即使这样不够,比如还有GLIBCXX的版本依赖,或者旧版glibc缺少函数改了也没办法的情况。

那么它还有另一个功能,通过 --set-interpreter参数,它可以修改可执行文件默认调用的 ld-linux-$ARCH.so.1链接器路径,从而避免使用容器或命名空间。

所以我只需要把additional-base-lib打包进去,修改程序的--set-interpreter,就可以简单的使用

LD_PRELOAD=./lib/additional-base-lib/libc.so.6 LD_LIBRARY_PATH=./lib/additional-base-lib executable

这样的命令来运行可执行文件。它也可以修改动态库,不过不建议这么做,改的多了总会出问题。


下面是我的一个改造成果,Aethersx2,著名的PS2模拟器,闭源,作者跑路,采用qt6编译。本体依赖GLIBC2.29和GLIBCXX_3.4.26,同时qt6本身也有同样的依赖。

通过集成作者的additional-base-lib(只需要库文件),修改--set-interpreter以调用相对路径的 ld-linux-aarch64.so.1,替换其他依赖库包括qt6到debian10能用的版本,然后通过上述命令优雅的本地运行。不需要容器,纯绿色打包,只需要一个启动脚本。而这玩意以前只有个appimage,而且并不能运行。

image.png

@神末shenmo @enforcee

只要大家喜欢的应用都正常运行我就满足啦

blush

Reply View the author
New Thread

Popular Ranking

Change

Popular Events

More
国际排名
WHLUG