You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I created an exodus bundle for kmod program using the following command:
exodus --shell-launchers -o kmod-bundle.tgz -t -v -a /usr/lib/libkmod.la -a /usr/lib/libkmod.so -a /usr/lib/libkmod.so.2 -a /usr/lib/libkmod.so.2.4.0 /usr/bin/depmod /usr/bin/insmod /usr/bin/kmod /usr/bin/lsmod /usr/bin/modinfo /usr/bin/modprobe /usr/bin/rmmod
kmod and its symlinks failed to run, terminating with 254 status code. kmod verifies its argv[0] using program_invocation_short_name() to determine what it will run as, kind of like busybox. To fix this, I renamed launcher scripts in exodus/bundles/3d77fd2.../<launcher> to add a .sh suffix. Then I renamed exodus/bundles/3d77fd2.../<progname>-x to remove -x suffix, hence regaining their original names. I edited the launcher scripts to remove the -x suffix accordingly. This is why I used --shell-launchers instead of binary ones. I then re-symlinked launcher scripts from exodus/bundles/3d77fd2.../<launcher>.sh to exodus/bin/<progname> so they would point to they newly renamed launchers. kmod worked just fine after that.
My suggestion is that launcher files in exodus/bundles/<hash>/<launcher> have a .sh suffix if shell-based or .bin suffix if binary. This way the ported programs in exodus/bundles/<hash>/<progname> will have their original names, incase they use it to determine what to run as. The symlinks to launchers in exodus/bin/<progname> will also have the same original names as the programs ported, so user experience will not be impacted. Also, a --version option would be great in exodus.
The text was updated successfully, but these errors were encountered:
--version
option in exodus)/usr/bin/kmod
readelf -a /usr/bin/kmod
output = readelf-kmod.txtI created an exodus bundle for kmod program using the following command:
kmod and its symlinks failed to run, terminating with 254 status code. kmod verifies its
argv[0]
usingprogram_invocation_short_name()
to determine what it will run as, kind of like busybox. To fix this, I renamed launcher scripts inexodus/bundles/3d77fd2.../<launcher>
to add a.sh
suffix. Then I renamedexodus/bundles/3d77fd2.../<progname>-x
to remove-x
suffix, hence regaining their original names. I edited the launcher scripts to remove the-x
suffix accordingly. This is why I used--shell-launchers
instead of binary ones. I then re-symlinked launcher scripts fromexodus/bundles/3d77fd2.../<launcher>.sh
toexodus/bin/<progname>
so they would point to they newly renamed launchers. kmod worked just fine after that.My suggestion is that launcher files in
exodus/bundles/<hash>/<launcher>
have a.sh
suffix if shell-based or.bin
suffix if binary. This way the ported programs inexodus/bundles/<hash>/<progname>
will have their original names, incase they use it to determine what to run as. The symlinks to launchers inexodus/bin/<progname>
will also have the same original names as the programs ported, so user experience will not be impacted. Also, a--version
option would be great in exodus.The text was updated successfully, but these errors were encountered: