# HG changeset patch # User Aleksej Bobylev # Date 1483304512 -7200 # Node ID fd96c4f9a889f59a15298e3439e17896062728f7 # Parent 4fa1ea055f78e192136267ecb2a73b60ea6c14d7 modules/install and modules/remove: auto-update /ets/filesystems for the FS Kernel modules diff -r 4fa1ea055f78 -r fd96c4f9a889 modules/install --- a/modules/install Sun Nov 20 00:12:08 2016 +0200 +++ b/modules/install Sun Jan 01 23:01:52 2017 +0200 @@ -527,14 +527,19 @@ # Updating DBs is important process, so not to hide such errors (localized): # chroot: can't execute '/usr/bin/***': No such file or directory - local fl="$INSTALLED/$PACKAGE/files.list" upd=0 udesk umime uicon uschm ukrnl + local fl="$INSTALLED/$PACKAGE/files.list" upd=0 udesk umime uicon uschm ukrnl ukrnlfs - fgrep /usr/share/applications/ "$fl" | fgrep -q .desktop && udesk='yes' - fgrep -q /usr/share/mime "$fl" && umime='yes' - fgrep -q /usr/share/icon/hicolor "$fl" && uicon='yes' - fgrep -q /usr/share/glib-2.0/schemas "$fl" && uschm='yes' - fgrep /usr/lib/gdk-pixbuf "$fl" | fgrep -q .so && upixb='yes' - fgrep -q /lib/modules "$fl" && ukrnl='yes' + fgrep /usr/share/applications/ "$fl" | fgrep -q .desktop && udesk='yes' + fgrep -q /usr/share/mime "$fl" && umime='yes' + fgrep -q /usr/share/icon/hicolor "$fl" && uicon='yes' + fgrep /usr/share/glib-2.0/schemas "$fl" | fgrep -q .xml && uschm='yes' + fgrep /usr/lib/gdk-pixbuf "$fl" | fgrep -q .so && upixb='yes' + if fgrep -q /lib/modules "$fl"; then + ukrnl='yes' + if fgrep -q /kernel/fs/ "$fl"; then + ukrnlfs='yes' + fi + fi if [ -n "$udesk$umime$uicon$uschm$upixb$ukrnl" ]; then action 'Update system databases...' @@ -553,6 +558,13 @@ [ -n "$uschm" ] && chroot "$root/" /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas 2>&1 | fgrep -v '/apps/' # package 'gdk-pixbuf' [ -n "$upixb" ] && chroot "$root/" /usr/bin/gdk-pixbuf-query-loaders --update-cache + + if [ -n "$ukrnlfs" ]; then + for i in $(awk -F/ '{if($6=="fs" && $8~$7)print $7}' "$fl" | sort -u); do + touch "$root/etc/filesystems" + grep "^$i\$" "$root/etc/filesystems" || echo "$i" >> "$root/etc/filesystems" + done + fi # packages 'busybox', 'kmod', 'depmod' [ -n "$ukrnl" ] && grep '/lib/modules' "$fl" | cut -d'/' -f4 | uniq | xargs chroot "$root/" /sbin/depmod -a diff -r 4fa1ea055f78 -r fd96c4f9a889 modules/remove --- a/modules/remove Sun Nov 20 00:12:08 2016 +0200 +++ b/modules/remove Sun Jan 01 23:01:52 2017 +0200 @@ -213,12 +213,17 @@ # [4/5] Update system databases fl="$INSTALLED/$PACKAGE/files.list"; upd=0 -fgrep /usr/share/applications/ "$fl" | fgrep -q .desktop && udesk='yes' -fgrep -q /usr/share/mime "$fl" && umime='yes' -fgrep -q /usr/share/icon/hicolor "$fl" && uicon='yes' -fgrep -q /usr/share/glib-2.0/schemas "$fl" && uschm='yes' -fgrep /usr/lib/gdk-pixbuf "$fl" | fgrep -q .so && upixb='yes' -fgrep -q /lib/modules "$fl" && ukrnl='yes' +fgrep /usr/share/applications/ "$fl" | fgrep -q .desktop && udesk='yes' +fgrep -q /usr/share/mime "$fl" && umime='yes' +fgrep -q /usr/share/icon/hicolor "$fl" && uicon='yes' +fgrep /usr/share/glib-2.0/schemas "$fl" | fgrep -q .xml && uschm='yes' +fgrep /usr/lib/gdk-pixbuf "$fl" | fgrep -q .so && upixb='yes' +if fgrep -q /lib/modules "$fl"; then + ukrnl='yes' + if fgrep -q /kernel/fs/ "$fl"; then + ukrnlfs='yes' + fi +fi if [ -n "$udesk$umime$uicon$uschm$upixb$ukrnl" ]; then action 'Update system databases...' @@ -237,6 +242,12 @@ [ -n "$uschm" ] && chroot "$root/" /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas 2>&1 | fgrep -v '/apps/' # package 'gdk-pixbuf' [ -n "$upixb" ] && chroot "$root/" /usr/bin/gdk-pixbuf-query-loaders --update-cache + +if [ -n "$ukrnlfs" ]; then + for i in $(awk -F/ '{if($6=="fs" && $8~$7)print $7}' "$fl" | sort -u); do + grep -i "/^$i\$/d" "$root/etc/filesystems" + done +fi # packages 'busybox', 'kmod', 'depmod' [ -n "$ukrnl" ] && grep '/lib/modules' "$fl" | cut -d'/' -f4 | uniq | xargs chroot "$root/" /sbin/depmod -a