Closed askorbinovaya-kislota closed 1 year ago
when building any package i get this error if proot-distro is installed
It looks like this is a problem with proot-distro, try restarting Termux.
CC @sylirre as the creator of proot-distro
built packages include data/data/com.termux/files/usr/var/log/pacman.log which already exists in filesystem, so they cannot be installed
In fact, this file should not be in the package since this file is a process log from pacman.
when building every package the build script installs files directly to $PREFIX/glibc and breaks pacman non-glibc packages do support on-device building, so maybe it should also be possible for glibc packages?
Compiling glibc packages with build-packages.sh
supports compilation on the Termux device. How did you run build-packages.sh
to compile pkg? Apparently you are doing something wrong.
Compiling glibc packages with
build-packages.sh
supports compilation on the Termux device. How did you runbuild-packages.sh
to compile pkg? Apparently you are doing something wrong.
i used ./build-package.sh --library glibc gpkg/vulkan-headers
(vulkan-headers do not exist in gpkg, i simply copied it from termux-packages with 0 changes)
i used ./build-package.sh --library glibc gpkg/vulkan-headers (vulkan-headers do not exist in gpkg, i simply copied it from termux-packages with 0 changes)
I ran ./build-package.sh --library glibc packages/vulkan-headers
and everything compiled correctly. I forgot to ask you a question about what error you get when compiling the package? Also, when compiling packages from the termux-packages repo, add the -L
flag for correct compilation (more info).
It looks like this is a problem with proot-distro, try restarting Termux.
Technically this is a problem of proot
, not of proot-distro
. Because proot
when using --bind
option creates mount point directories with no permissions (effect as chmod 000 ./path/to/file
).
Ask about this in https://github.com/termux/proot/issues as I really can't explain such behavior of proot
.
Same error can be caused by literally by any file that lacks read access mode.
I forgot to ask you a question about what error you get when compiling the package?
compiling goes fine if i remove any proot distro, but i can't install the resulting package:
if i return the proot distro (debian in my case) mv ~/debian $PREFIX/var/lib/proot-distro/installed-rootfs/
then building fails with that tar
error
compiling goes fine if i remove any proot distro, but i can't install the resulting package
Now it has become clear. This is due to the fact that the compiler immediately installs the package files into the Termux system and then creates the package. To install the compiled package, you need to run pacman with the --overwrite "*"
flag.
if i return the proot distro (debian in my case) mv ~/debian $PREFIX/var/lib/proot-distro/installed-rootfs/ then building fails with that tar error
👉 https://github.com/termux-pacman/glibc-packages/issues/128#issuecomment-1765282848
but what about the included pacman.log file? the installation would fail even on clean prefix...
but what about the included pacman.log file? the installation would fail even on clean prefix...
Has been fixed - https://github.com/termux/termux-packages/commit/da44a1456622ae273433f1712bda62318751bb58
data/data/com.termux/files/usr/var/log/pacman.log
which already exists in filesystem, so they cannot be installed$PREFIX/glibc
and breaks pacmannon-glibc packages do support on-device building, so maybe it should also be possible for glibc packages?