Hello,
I have a problem with opkg reporting built-in packages as upgradable
because of differences in /usr/lib/opkg/status file on /rom and
/overlay (USB pendrive block-extroot).
I just reflashed my router with a fresh build from trunk and now "opkg
list_upgradable" wrongly shows a bunch of packages that are built into
the image. Let's take libc as an example:
r...@marvin:~# opkg list_upgradable | grep libc
Multiple packages (libc and libc) providing same name marked HOLD or
PREFER. Using latest.
Multiple packages (libc and libc) providing same name marked HOLD or
PREFER. Using latest.
libc - 0.9.31-60 - 0.9.31-61
This is because there's 2 different versions of /usr/lib/opkg/status -
one in /rom and one /overlay - and the package is, for some reason, in
both of them:
r...@marvin:~# grep -A1 libc$ /rom/usr/lib/opkg/status
/overlay/usr/lib/opkg/status
/rom/usr/lib/opkg/status:Package: libc
/rom/usr/lib/opkg/status-Version: 0.9.31-61
--
/overlay/usr/lib/opkg/status:Package: libc
/overlay/usr/lib/opkg/status-Version: 0.9.31-60
Now, as far as I can tell, libc has never been installed in the
extroot /overlay:
r...@marvin:~# opkg files libc
Package libc (0.9.31-60) is installed on root and has the following files:
/lib/libdl-0.9.31.so
/lib/libnsl.so.0
/lib/libutil-0.9.31.so
/lib/libnsl-0.9.31.so
/lib/libresolv.so.0
/lib/ld-uClibc-0.9.31.so
/lib/libm.so.0
/lib/libm-0.9.31.so
/lib/libutil.so.0
/lib/libuClibc-0.9.31.so
/lib/libresolv-0.9.31.so
/lib/ld-uClibc.so.0
/lib/libdl.so.0
/lib/libcrypt-0.9.31.so
/lib/libc.so.0
/lib/libcrypt.so.0
r...@marvin:~# ls /overlay/lib/
firmware modules uci upgrade wifi
r...@marvin:~# ls /rom/lib/
ar71xx.sh libdl.so.0 libuClibc-0.9.31.so
config libgcc_s.so.1 libuci.so
firewall libm-0.9.31.so libuci.so.2010-09-28
firmware libm.so.0 libutil-0.9.31.so
firstboot libnsl-0.9.31.so libutil.so.0
functions libnsl.so.0 modules
ld-uClibc-0.9.31.so libpthread-0.9.31.so network
ld-uClibc.so.0 libpthread.so.0 preinit
libc.so.0 libresolv-0.9.31.so upgrade
libcrypt-0.9.31.so libresolv.so.0 wifi
libcrypt.so.0 librt-0.9.31.so
libdl-0.9.31.so librt.so.0
Setup details:
* I'm using my own build of trunk with block-extroot and relevant usb
and fs kmods built into the image.
* rootfs on the USB pendrive is mounted through /etc/config/fstab:
config mount
option device /dev/sda1
option fstype ext3
option options rw,async
option enabled 1
option enabled_fsck 0
option is_rootfs 1
* /etc/opkg.conf:
src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
src/gz local http://10.7.7.7:8000
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
Am I doing something wrong? How do I deal with this kind of situation,
how to avoid it, what is common practice for using external rootfs
when reflashing the /rom?
_______________________________________________
openwrt-users mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-users