maximbaz / rebuild-detector

Detects which Arch Linux packages need to be rebuilt
ISC License
215 stars 11 forks source link

Hook bug? #12

Closed GFdevelop closed 4 years ago

GFdevelop commented 4 years ago

With the release 4.1.0 I have a message when hook is running:

(3/5) Checking which packages need to be rebuilt
stat: cannot stat '/proc/95805/mounts': No such file or directory
foreign android-studio
extra   brltty
...
maximbaz commented 4 years ago

Hmm thanks, it doesn't happen for me, could you see if you can reproduce it reliably?

Try to run plain checkrebuild and then separately try to pass packages on stdin (packages that were updated during the time when hook ran), e.g. printf 'pkg1\npkg2' | checkrebuild

cc @bartoszek

GFdevelop commented 4 years ago

I can reproduce it, just run:

% printf 'emacs' | checkrebuild
stat: cannot stat '/proc/193287/mounts': No such file or directory
foreign android-studio
extra   brltty
...

(I was trying to rebuild emacs with asp)

maximbaz commented 4 years ago

Cool I installed emacs and confirm that I can repro, thanks :)

maximbaz commented 4 years ago

Please try 4.1.1, I've just pushed it to AUR.

GFdevelop commented 4 years ago

Work very fast but I have only one package on output:

% printf 'emacs' | checkrebuild
foreign vdeplug4-git

This package is not related to emacs.

maximbaz commented 4 years ago

Indeed ๐Ÿค”

This package doesn't compile for me (something you can take separately, try to compile it using extra-x86_64-build from devtools), so could you run a few more diagnostics for me? To start with:

$ pactree -rud1 emacs
$ printf 'emacs' | checkrebuild -v
GFdevelop commented 4 years ago

I am maintainer of that package and now I see that needs to be update...you can ask me all that you want :smile:

maximbaz commented 4 years ago

To start with, please share the output of these commands ๐Ÿ™‚

$ pactree -rud1 emacs
$ printf 'emacs' | checkrebuild -v
GFdevelop commented 4 years ago
$ pactree -rud1 emacs
emacs
$ printf 'emacs' | checkrebuild -v
foreign vdeplug4-git
maximbaz commented 4 years ago

I think I know what's going on: vdeplug4-git is flagged because it was built against an older python version, so this package has some files in /usr/lib/python3x (where x is not 8).

The hook only uses packages passed on stdin for ldd detection (because it is slow), but checks for python/ruby/perl/haskell are performed differently, they are fast, and so they don't read stuff from stdin.

In other words, it's not the intention to make checkrebuild use stdin to filter out all unrelated packages, it's only used to speed things up where it makes sense.

But I think we could be a little more verbose for non-ldd packages with -v flag, to at least tell a very generic reason why you get this output, to help you understand where to start investigations - I'll think what I can do about it ๐Ÿ‘

GFdevelop commented 4 years ago

I think I know what's going on: vdeplug4-git is flagged because it was built against an older python version, so this package has some files in /usr/lib/python3x (where x is not 8).

Bingo

$ pacman -Qlq vdeplug4-git | grep site-packages
/usr/lib/python3.7/site-packages/
/usr/lib/python3.7/site-packages/VdePlug.py
/usr/lib/python3.7/site-packages/vdeplug_python.so

I have to update this package, then rebuild-detector is doing it's job...

maximbaz commented 4 years ago

I pushed a commit on master, could you please try checkrebuild -v and see if it gives you better output in regards to hinting that vdeplug4-git is flagged because of python?

GFdevelop commented 4 years ago
$ ./checkrebuild -v
foreign android-studio
foreign vdeplug4-git
foreign webkitgtk-bin

ldd /usr/bin/jsc-3

    libicui18n.so.64 => not found
    libicuuc.so.64 => not found

ldd /usr/lib/libwebkitgtk-3.0.so.0.22.17

    libicui18n.so.64 => not found
    libicuuc.so.64 => not found
    libicui18n.so.64 => not found
    libicuuc.so.64 => not found

ldd /usr/lib/python3.7/site-packages/vdeplug_python.so

    libpython3.7m.so.1.0 => not found

ldd /opt/android-studio/plugins/android/resources/simpleperf/linux-x86_64/simpleperf

    libncurses.so.5 => not found
    libtinfo.so.5 => not found

ldd /opt/android-studio/plugins/android/resources/simpleperf/linux-x86/simpleperf

    libncurses.so.5 => not found
    libtinfo.so.5 => not found

ldd /usr/lib/libjavascriptcoregtk-3.0.so.0.16.19

    libicui18n.so.64 => not found
    libicuuc.so.64 => not found
maximbaz commented 4 years ago

Oops, in a rush I managed to miss one place, could you please retry from latest master?

What I'm looking for is not only message foreign vdeplug4-git, but with -v also something like

/usr/lib/python3.7/ is owned by vdeplug4-git

This will be an indicator that vdeplug4-git has something in python3.7 folder even though the latest python version is 3.8.

GFdevelop commented 4 years ago

I don't see the new commit...have you pushed the changes?

maximbaz commented 4 years ago

I push-forced, it's this one: https://github.com/maximbaz/rebuild-detector/commit/1582c81028ea4c5c5e82391366cc3f0191bdb6ab

GFdevelop commented 4 years ago

What I'm looking for is not only message foreign vdeplug4-git, but with -v also something like

/usr/lib/python3.7/ is owned by vdeplug4-git

yeah

 ./checkrebuild -v
foreign android-studio
foreign vdeplug4-git
foreign webkitgtk-bin
/usr/lib/python3.7/ รจ contenuto in vdeplug4-git r44.7ebdc73-2