puppylinux-woof-CE / woof-CE

woof - the Puppy builder
GNU General Public License v2.0
398 stars 288 forks source link

Fix breakage of bash in noble #4245

Closed dimkr closed 9 months ago

dimkr commented 9 months ago

jammy:

/bin/bash
/usr/bin/bashbug

noble:

/usr/bin/bash
/usr/bin/bashbug

The package template breaks bash because it replaces /usr/bin/bash with a symlink to /bin/bash, so it's a broken symlink or a recursive symlink (depending on whether or not /bin is a symlink to /usr/bin).

dimkr commented 9 months ago

But that leaves no bash in usr/bin. Is that supposed to be OK?

This depends on USR_SYMLINKS - if yes, this doesn't matter because /bin and /usr/bin have the same contents.

Otherwise, line 17 takes care of this.

peabee commented 9 months ago

I will try a NoblePup32 usrmerge build with: if [ -f usr/bin/bash -a ! -e bin/bash -a ! -L bin/bash ] ; then

and report

peabee commented 9 months ago

Results from test build:

  1. busybox petbuild completes with #4247 but still puts busybox into /usr/bin whereas /support/busybox_symlinks.sh line 14 requires it to be in /bin
  2. bash package template works OK - this PR
  3. the rootfs-complete is not viable when first constructed - usrmerge rootfs-complete 1 must be run to allow the build to continue
dimkr commented 9 months ago

the rootfs-complete is not viable when first constructed - usrmerge rootfs-complete 1 must be run to allow the build to continue

Makes sense, it needs to run immediately after of copying of packages into rootfs-complete. Then, the busybox symlink issue doesn't matter because /bin and /usr/bin have the same contents.

peabee commented 9 months ago

3builddistro changes??:

insert before line 472: [ "$USR_SYMLINKS" = "yes" ] && usrmerge sandbox3/rootfs-complete 1

delete line 1096