You are not logged in.
Hi,
I just did tried to upgrade linux-lts and there are warnings. What could be the reason for that?
Thanks!
(3/5) upgrading linux-lts [#########################################] 100%
>>> Updating module dependencies. Please wait ...
>>> Generating initial ramdisk, using mkinitcpio. Please wait...
==> Building image from preset: /etc/mkinitcpio.d/linux-lts.preset: 'default'
-> -k /boot/vmlinuz-linux-lts -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-lts.img
==> Starting build: 3.14.15-1-lts
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [autodetect]
-> Running build hook: [modconf]
-> Running build hook: [block]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-lts.img
==> WARNING: errors were encountered during the build. The image may not be complete.
==> Building image from preset: /etc/mkinitcpio.d/linux-lts.preset: 'fallback'
-> -k /boot/vmlinuz-linux-lts -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-lts-fallback.img -S autodetect
==> Starting build: 3.14.15-1-lts
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [modconf]
-> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: smsmdtv
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-lts-fallback.img
==> WARNING: errors were encountered during the build. The image may not be complete.
Last edited by stri (2014-08-04 10:51:34)
Offline
Try regenerating your initrd and see if they are repeated.
Offline
It may be related to lzo: https://bbs.archlinux.org/viewtopic.php … 0#p1443220
Offline
Weird, I'm getting the same build warnings on linux now, hadn't noticed before.
Though everything still works. I have lzo 2.08-3.
# mkinitcpio -p linux
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 3.15.8-1-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [autodetect]
-> Running build hook: [modconf]
-> Running build hook: [block]
-> Running build hook: [resume]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img
==> WARNING: errors were encountered during the build. The image may not be complete.
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
-> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 3.15.8-1-ARCH
-> Running build hook: [base]
-> Running build hook: [udev]
-> Running build hook: [modconf]
-> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: smsmdtv
-> Running build hook: [resume]
-> Running build hook: [filesystems]
-> Running build hook: [keyboard]
-> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> WARNING: errors were encountered during the build. The image may not be complete.
Downgrading mkinitcpio to 17-1 solves this and the "faulty" commit here is: https://projects.archlinux.org/mkinitcp … cd099bee29
Hehe, I also had a file /etc/modprobe.d/radeof.conf_DONTUSE, moving it out solves the issue... so something is wrong with this globbing but I don't get what the [ $f = $filter ] in above commit
[[ $f = $filter ]] && add_symlink "$f" "$(readlink "$f")"
is really doing... tired...
Edit: @stri Any chance you have files in /etc/modprobe.d ? If yes, what's their names ?
Last edited by rebootl (2014-08-04 01:04:22)
Personal website: reboot.li
GitHub: github.com/rebootl
Offline
Tried regenerating, warnings identical.
Removing a file /etc/modprobe.d/modprobe.conf~ and regenerating again yielded no warnings!
So I think the problem is solved for me. Thanks for your help!
Offline
Hi, I reported the same issue here in Pacman & Package Upgrade Issues, and removing the hidden backup file I had in /etc/modprobe.d/ also solved the error messages. Thanks!
Offline
Aaah, I wasn't able to reproduce this on my desktop, above was on my laptop... but now I found something: The build warning is only triggered when the file not matching "*.conf" is the alphabetically last one!
And still I think it's because of the above
[[ $f = $filter ]] && add_symlink "$f" "$(readlink "$f")"
I believe the problem is because when testing something like this and the test is false the return code you get is false too, e.g.:
# [[ /etc/modprobe.d/nobeep.conf = *.conf ]] && true
# echo $?
0
# [[ /etc/modprobe.d/nobeep.conf = *.conf ]] && false
# echo $?
1
but:
# [[ /etc/modprobe.d/nobeep.conf_FOO = *.conf ]] && true
# echo $?
1
And if thats the last return code, this is what get's trapped by
# set functrace and trap to catch errors in add_* functions
declare -i _builderrors=0
set -o functrace
trap '(( $? )) && [[ $FUNCNAME = add_* ]] && (( ++_builderrors ))' RETURN
in mkinitcpio.
So, anyways, I think this is no good cause the return codes in the for loop should be collected and not only the last one should be triggered. But because of this "special" trapping I'm not sure how this could be done, I think I'll bugreport this, referencing back to this thread.
If someone has an idea, please tell, also just out of interest.
Though it would be nice if we could fix this, I think adding in a filter to (un)match files that then triggers a build warning doesn't really make sense...
Edit: Ok, I think I've got a fix for this but because trap doesn't seem to get the return code from an explicit return statement, it's a bit crappy:
diff --git a/functions b/functions
index 20bbffe..fc455c9 100644
--- a/functions
+++ b/functions
@@ -421,16 +421,31 @@ add_full_dir() {
if [[ -n $1 && -d $1 ]]; then
add_dir "$1"
+ local ret=0
for f in "$1"/*; do
if [[ -L $f ]]; then
- [[ $f = $filter ]] && add_symlink "$f" "$(readlink "$f")"
+ if [[ $f = $filter ]]; then
+ add_symlink "$f" "$(readlink "$f")"
+ let ret=$ret+$?
+ fi
elif [[ -d $f ]]; then
add_full_dir "$f"
elif [[ -f $f ]]; then
- [[ $f = $filter ]] && add_file "$f"
+ if [[ $f = $filter ]]; then
+ add_file "$f"
+ let ret=$ret+$?
+ fi
fi
done
fi
+
+ # since the trap doesn't get the return code from an explicit return statement,
+ # +simply setting a return code by this
+ if [ $ret -gt 0 ]; then
+ false
+ else
+ true
+ fi
}
Edit: Reported: https://bugs.archlinux.org/task/41468
Edit: Apparently it's enough to replace the [[ .. ]] commands by if/then blocks, see the report.
Last edited by rebootl (2014-08-04 21:35:15)
Personal website: reboot.li
GitHub: github.com/rebootl
Offline