[ Technical exchange] 微信ARM64玲珑还是缺依赖 正在奋力攻克中。。
Tofloor
poster avatar
玲珑沙
deepin
2024-11-06 20:48
Author

root@UOS1070:/home/james/wechat/com.tencent.wechat# ll-builder build -v
[Build Target]
com.tencent.wechat
[Project Info]
Package Name: WeChat
Version: 4.0.0.30
Package Type: app
Build Arch: arm64
[Current Repo]
Name: stable
Url: https://mirror-repo-linglong.deepin.com
[Processing Dependency]
Package Version Module Status
(21193) /build/linglong-1.6.3/apps/ll-builder/src/main.cpp:377 [code -1 ] message:
/build/linglong-1.6.3/libs/linglong/src/linglong/builder/linglong_builder.cpp:425 build project /home/james/wechat/com.tencent.wechat/linglong.yaml: pull runtime
/build/linglong-1.6.3/libs/linglong/src/linglong/builder/linglong_builder.cpp:131 pull unknown:org.deepin.Runtime/23.0.1/unknown
/build/linglong-1.6.3/libs/linglong/src/linglong/repo/ostree_repo.cpp:1294 clear fuzzy reference unknown:org.deepin.Runtime/23.0.1/unknown
/build/linglong-1.6.3/libs/linglong/src/linglong/repo/ostree_repo.cpp:689 clear reference remotely: not found
/build/linglong-1.6.3/libs/linglong/src/linglong/repo/ostree_repo.cpp:620 clear reference remotely: unknown error

Reply Favorite View the author
All Replies
2 / 2
To page
Ziggy
deepin
2024-11-13 09:47
#21
玲珑沙

大佬有时间再给看下,又进步了一点。

我又重新ll-builder build -v 下,没有错误。然后 export成uab

./*.uab 安装后,


james@UOS1070:~/linglong/wechat$ ./com.tencent.wechat_arm64_4.0.0.23_main.uab 
(6707) /build/linglong-1.6.3/libs/linglong/src/linglong/cli/cli.cpp:522 install from file "/home/james/linglong/wechat/com.tencent.wechat_arm64_4.0.0.23_main.uab"
0% prepare for installing uabError: CODE=-1
/build/linglong-1.6.3/libs/linglong/src/linglong/cli/cli.cpp:125 download status: 
/build/linglong-1.6.3/libs/linglong/src/linglong/package/uab_file.cpp:210 mount uab bundle
/build/linglong-1.6.3/libs/utils/src/linglong/utils/command/env.cpp:78 exec erofsfuse --offset=4955320 /proc/857/fd/14 /tmp/runtime-deepin-linglong/linglong/UAB/0ca4424e-94fe-4c64-b007-4e54ebfd9a94: disk: /proc/857/fd/14
offset: 4955320
mountpoint: /tmp/runtime-deepin-linglong/linglong/UAB/0ca4424e-94fe-4c64-b007-4e54ebfd9a94
dbglevel: 0
fuse: mountpoint is not empty
fuse: if you are sure this is safe, use the 'nonempty' mount option

import uab to linglong successfully, delegate running operation to linglong.
Error: CODE=-1
/build/linglong-1.6.3/libs/linglong/src/linglong/repo/ostree_repo.cpp:1281 clear fuzzy reference unknown:com.tencent.wechat/unknown/unknown
/build/linglong-1.6.3/libs/linglong/src/linglong/repo/ostree_repo.cpp:524 clear fuzzy reference locally: channel not found

然后貌似没装成功。版本是4.0.0.23 商店deb

然后又把官方的包,重新按照公众号的方法打包了一次。版本4.0.0.30 腾讯deb arm包

手动安装后,有以下输出,缺少依赖。

james@UOS1070:~/linglong/wechat-tencent$ ./com.tencent.wechat_arm64_4.0.0.30_main.uab 
(7956) /build/linglong-1.6.3/libs/linglong/src/linglong/cli/cli.cpp:522 install from file "/home/james/linglong/wechat-tencent/com.tencent.wechat_arm64_4.0.0.30_main.uab"
100% install uab successfully
import uab to linglong successfully, delegate running operation to linglong.
./wechat: error while loading shared libraries: libxkbcommon-x11.so.0: cannot open shared object file: No such file or directory
Error: CODE=-1
/build/linglong-1.6.3/libs/linglong/src/linglong/runtime/container.cpp:186 run container bWFpbjpjb20udGVuY2VudC53ZWNoYXQvNC4wLjAuMzAvYXJtNjQtezkwOTdhNWZkLWYzN2ItNDdmMy1iYjhjLTY5ODY2ZTc5NGVjNn0=: cli run: run command failed: /usr/bin/ll-box --cgroup-manager=disabled run -b /run/user/1000/linglong/bWFpbjpjb20udGVuY2VudC53ZWNoYXQvNC4wLjAuMzAvYXJtNjQtezkwOTdhNWZkLWYzN2ItNDdmMy1iYjhjLTY5ODY2ZTc5NGVjNn0= bWFpbjpjb20udGVuY2VudC53ZWNoYXQvNC4wLjAuMzAvYXJtNjQtezkwOTdhNWZkLWYzN2ItNDdmMy1iYjhjLTY5ODY2ZTc5NGVjNn0= retval=65280

ll-cli list 能看到,运行后,说缺少依赖。

james@UOS1070:~/linglong/wechat-tencent$ ll-cli list
id                               name                             version         arch        channel         module      description
com.baidu.baidunetdisk           com.baidu.baidunetdisk           4.17.7.0        arm64       main            runtime     com.baidu.baidunetdisk
com.tencent.wechat               WeChat                           4.0.0.30        arm64       main            binary      linglongsha
james@UOS1070:~/linglong/wechat-tencent$ ll-cli run com.tencent.wechat 
./wechat: error while loading shared libraries: libxkbcommon-x11.so.0: cannot open shared object file: No such file or directory
Error: CODE=-1
/build/linglong-1.6.3/libs/linglong/src/linglong/runtime/container.cpp:186 run container bWFpbjpjb20udGVuY2VudC53ZWNoYXQvNC4wLjAuMzAvYXJtNjQtezQ4M2QxMjhlLWFkNzUtNDJiOC05OGYyLTMwOTczZDU3YzIyZn0=: cli run: run command failed: /usr/bin/ll-box --cgroup-manager=disabled run -b /run/user/1000/linglong/bWFpbjpjb20udGVuY2VudC53ZWNoYXQvNC4wLjAuMzAvYXJtNjQtezQ4M2QxMjhlLWFkNzUtNDJiOC05OGYyLTMwOTczZDU3YzIyZn0= bWFpbjpjb20udGVuY2VudC53ZWNoYXQvNC4wLjAuMzAvYXJtNjQtezQ4M2QxMjhlLWFkNzUtNDJiOC05OGYyLTMwOTczZDU3YzIyZn0= retval=65280

可能是20的Runtime里还没有xcb这个库,我在x86_64下使用23 Runtime不存在此问题。

可以按照下面几个文档依次安装ll-pica和参考案例手动添加这个库对应的包

https://linglong.dev/guide/start/install.html

https://linglong.dev/guide/ll-pica/adep.html

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

Reply View the author
玲珑沙
deepin
2024-11-13 11:26
#22
Ziggy

可能是20的Runtime里还没有xcb这个库,我在x86_64下使用23 Runtime不存在此问题。

可以按照下面几个文档依次安装ll-pica和参考案例手动添加这个库对应的包

https://linglong.dev/guide/start/install.html

https://linglong.dev/guide/ll-pica/adep.html

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

好的 我有时间再试一下

Reply View the author
玲珑沙
deepin
2024-11-16 21:54
#23
Ziggy

可能是20的Runtime里还没有xcb这个库,我在x86_64下使用23 Runtime不存在此问题。

可以按照下面几个文档依次安装ll-pica和参考案例手动添加这个库对应的包

https://linglong.dev/guide/start/install.html

https://linglong.dev/guide/ll-pica/adep.html

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

添加依赖后,linglong.yaml




version: "30"

package:
  id: com.tencent.wechat
  name: WeChat
  version: 4.0.0.30
  kind: app
  description: |
    linglongsha

base: org.deepin.foundation/20.0.0
runtime: org.deepin.Runtime/20.0.0

command:
  - /opt/apps/com.tencent.wechat/files/bin/start.sh

sources:
  - kind: file
    url: https://community-packages.deepin.com/beige/pool/main/libx/libxkbcommon/libxkbcommon-x11-0_1.6.0-1_arm64.deb
    digest: baaa366b8142ee3eac7bb178b46096caf39bcfb7b4772857af8b795d2dc6cd29

build: |
  ##Extract res
  mkdir -p ${PREFIX}/bin/ ${PREFIX}/share/
  cp -rf binary/* ${PREFIX}/bin/
  cp -rf template_app/* ${PREFIX}/share/
  ##Generate files
  echo "#!/usr/bin/env bash" > start.sh
  echo "cd $PREFIX/bin/WeChat && ./wechat" >> $PREFIX/bin/start.sh
  chmod +x $PREFIX/bin/start.sh

ll-bulider build -v 没有报错。

ll-builder export --layer

ll-builder export 均没有报错

layer 分为一个 binary 和develop 然后,我安装后,发现 develop的无法卸载 默认只能卸载binary的。

运行还是报缺少依赖

我用安装uab 文件 就会报错

james@UOS1070:~/linglong/wechat-tencent$ ll-cli run *.uab
Error: CODE=-1
/build/linglong-1.6.3/libs/linglong/src/linglong/repo/ostree_repo.cpp:1281 clear fuzzy reference unknown:com.tencent.wechat_arm64_4.0.0.30_main.uab/unknown/unknown
/build/linglong-1.6.3/libs/linglong/src/linglong/repo/ostree_repo.cpp:524 clear fuzzy reference locally: channel not found

然后我安装binary和develop ,

develop 就安装不了,因为以前的还在😰

james@UOS1070:~/linglong/wechat-tencent$ ll-cli install ./com.tencent.wechat_4.0.0.30_arm64_develop.layer
(29728) /build/linglong-1.6.3/libs/linglong/src/linglong/cli/cli.cpp:522 install from file "/home/james/linglong/wechat-tencent/com.tencent.wechat_4.0.0.30_arm64_develop.layer"
Error: CODE=-1
/build/linglong-1.6.3/libs/linglong/src/linglong/cli/cli.cpp:567 install from file /home/james/linglong/wechat-tencent/com.tencent.wechat_4.0.0.30_arm64_develop.layer: main:com.tencent.wechat/4.0.0.30/arm64 is already installed

然后ll-cli list

james@UOS1070:~/linglong/wechat-tencent$ ll-cli install ./com.tencent.wechat_4.0.0.30_arm64_develop.layer
(29728) /build/linglong-1.6.3/libs/linglong/src/linglong/cli/cli.cpp:522 install from file "/home/james/linglong/wechat-tencent/com.tencent.wechat_4.0.0.30_arm64_develop.layer"
Error: CODE=-1
/build/linglong-1.6.3/libs/linglong/src/linglong/cli/cli.cpp:567 install from file /home/james/linglong/wechat-tencent/com.tencent.wechat_4.0.0.30_arm64_develop.layer: main:com.tencent.wechat/4.0.0.30/arm64 is already installed

ll-cli run com.tencet.wechat

先到这 又缺新依赖了 我再试试

Reply View the author
玲珑沙
deepin
2024-11-17 05:56
#24
Ziggy

可能是20的Runtime里还没有xcb这个库,我在x86_64下使用23 Runtime不存在此问题。

可以按照下面几个文档依次安装ll-pica和参考案例手动添加这个库对应的包

https://linglong.dev/guide/start/install.html

https://linglong.dev/guide/ll-pica/adep.html

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

依赖缺少 libxcb-util.so.1

没有包有这个库?sob

我在x86 uos 搜不到啊

Reply View the author
玲珑沙
deepin
2024-11-17 09:27
#25
Ziggy

aarch64 runtime现在只有20.0.0的版本,公众号的文章是based deepin 23 x86_64

改一下runtime版本看看

现在我的解决方案就是

问题1:我把依赖用ll-pica adep -d 加到linglong.yaml里了,然后我重新编译依然缺少,然后我就把解压缩,然后把lib都放./wechat 的同级目录了。你看这样处理合适吗?

问题2:部分不在20库里的,我在本地aptdownload 下载了,也解压放到里面了。但是有的文件版本不一致。像这个qt自带的bug

james@UOS1070:~/linglong/wechat-tencent$ ll-cli run com.tencent.wechat 
./wechat: error while loading shared libraries: libxcb-util.so.1: cannot open shared object file: No such file or directory
Error: CODE=-1
/build/linglong-1.6.3/libs/linglong/src/linglong/runtime/container.cpp:186 run container bWFpbjpjb20udGVuY2VudC53ZWNoYXQvNC4wLjAuMzAvYXJtNjQtezU4Y2E1MTg1LTJiYTctNDVlYi05MTJkLTAxMmRkNTZhNTliM30=: cli run: run command failed: /usr/bin/ll-box --cgroup-manager=disabled run -b /run/user/1000/linglong/bWFpbjpjb20udGVuY2VudC53ZWNoYXQvNC4wLjAuMzAvYXJtNjQtezU4Y2E1MTg1LTJiYTctNDVlYi05MTJkLTAxMmRkNTZhNTliM30= bWFpbjpjb20udGVuY2VudC53ZWNoYXQvNC4wLjAuMzAvYXJtNjQtezU4Y2E1MTg1LTJiYTctNDVlYi05MTJkLTAxMmRkNTZhNTliM30= retval=65280

libxcb-util.so.1 我搜了一下,貌似qt的bug 。然后我就建了个链接,然后把libxcb-util.so.1 和原文件libxcb-util.so.0.0.0 都放./wechat 同级目录。但是我运行,还是出现上面缺少的报错。不知道是怎么回事,或者我还是等23.0环境出来,再打包吗?您有时间看一下,我也不急。

Reply View the author
玲珑沙
deepin
2024-11-21 17:07
#26
root

arm64 当前只有 20版的 org.deepin.Runtime

当前还木有 23版的 org.deepin.Runtime

需要自行修改 org.deepin.Runtime的版本 或者 等待 官方出了org.deepin.Runtime 23版再构建

tail

等23出了 再搞 现在搞不定了

Reply View the author
2 / 2
To page