Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] revdep-rebuild keeps rebuilding
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
cfgauss
l33t
l33t


Joined: 18 May 2005
Posts: 607
Location: USA

PostPosted: Sat Jun 30, 2018 4:39 pm    Post subject: [SOLVED] revdep-rebuild keeps rebuilding Reply with quote

When I revdep-rebuild I get
Code:
* This is the new python coded version
 * Please report any bugs found using it.
 * The original revdep-rebuild script is installed as revdep-rebuild.sh
 * Please file bugs at: https://bugs.gentoo.org/
 * Collecting system binaries and libraries
 * Checking dynamic linking consistency
 * Assign files to packages

emerge  --oneshot --complete-graph=y media-tv/plex-media-server:0
Calculating dependencies... done!
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) media-tv/plex-media-server-1.13.2::gentoo
>>> Installing (1 of 1) media-tv/plex-media-server-1.13.2::gentoo
>>> Jobs: 1 of 1 complete                           Load avg: 1.50, 1.18, 0.87

When I run it a second time, it rebuilds plex-media-server again.
Any hints toward preventing rebuilds would be gratefully received.

[SOLVED] Hu, below, describes the bug in the plex-media-server ebuild which makes the package incompatible with profile 17.1. I filed a bug report. [/SOLVED]
[EDIT] The new ebuild, plex-media-server-1.13.2-r1, fixes this problem. See the bug report. [/EDIT]


Last edited by cfgauss on Sat Jul 07, 2018 5:19 pm; edited 5 times in total
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 16648

PostPosted: Sat Jun 30, 2018 5:12 pm    Post subject: Reply with quote

This is a common source of confusion. You are not rebuilding plex-media-server. You are re-emerging it. In the case of plex-media-server, the ebuild simply installs a pre-compiled Debian package every time, so re-emerging it does not rebuild anything. You must rebuild it to fix the linking issue. The ebuild cannot do that for you in this case.

I see in the ebuild that it tries to mask the plex libraries from being discovered by revdep-rebuild. You should try to determine why that mask does not work. Full debug output from revdep-rebuild may help.
Back to top
View user's profile Send private message
cfgauss
l33t
l33t


Joined: 18 May 2005
Posts: 607
Location: USA

PostPosted: Sat Jun 30, 2018 5:28 pm    Post subject: Reply with quote

Hu wrote:
...Full debug output from revdep-rebuild may help.

Here's the portion of revdep-rebuild -d that applies to plex-media-server:
Code:
 LibCheck.search(); FOUND: 64bit, libdb-4.8.so, /usr/lib/plexmediaserver/Resources/Python/lib/python2.7/lib-dynload/dbm.so
        Library libjawt.so ignored as it is masked
        LibCheck.search(); FOUND: 64bit, libdb-4.8.so, /usr/lib/plexmediaserver/Resources/Python/lib/python2.7/lib-dynload/_bsddb.so
        LibCheck.search(); Total found: 1 libs, 2 files in 3723 milliseconds
 * Broken files that require: libdb-4.8.so (64 bits)
        * /usr/lib/plexmediaserver/Resources/Python/lib/python2.7/lib-dynload/_bsddb.so
        * /usr/lib/plexmediaserver/Resources/Python/lib/python2.7/lib-dynload/dbm.so
        LibCheck.process_results(); total filepaths found: 2 in 0 milliseconds
 * Assign files to packages
        * /usr/lib/plexmediaserver/Resources/Python/lib/python2.7/lib-dynload/dbm.so -> media-tv/plex-media-server-1.13.2
        * /usr/lib/plexmediaserver/Resources/Python/lib/python2.7/lib-dynload/_bsddb.so -> media-tv/plex-media-server-1.13.2
        assign_packages(); assigned 1 packages, 0 orphans in 8297 milliseconds

emerge  --verbose --oneshot --complete-graph=y media-tv/plex-media-server:0

Does this suggest a course of action?
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 16648

PostPosted: Sat Jun 30, 2018 6:32 pm    Post subject: Reply with quote

I have never needed to debug something like this, but I will try. I see in the ebuild that it creates /etc/revdep-rebuild/80plexmediaserver with a value that looks reasonable. Verify that you have that file and that its contents match what the ebuild should generate:
Code:
_mask_plex_libraries_revdep() {
    dodir /etc/revdep-rebuild/
    echo "SEARCH_DIRS_MASK=\"${EPREFIX}/usr/$(get_libdir)/plexmediaserver\"" >"${ED}"/etc/revdep-rebuild/80plexmediaserver
}
If it does, perhaps the problem is related to the libdir symlink. If revdep-rebuild is literal about this, the ebuild masked lib64, but revdep-rebuild is looking in lib (which is a symlink to lib64).
Back to top
View user's profile Send private message
cfgauss
l33t
l33t


Joined: 18 May 2005
Posts: 607
Location: USA

PostPosted: Sat Jun 30, 2018 6:42 pm    Post subject: Reply with quote

Hu wrote:
I have never needed to debug something like this, but I will try. I see in the ebuild that it creates /etc/revdep-rebuild/80plexmediaserver with a value that looks reasonable. Verify that you have that file and that its contents match what the ebuild should generate:
Code:
_mask_plex_libraries_revdep() {
    dodir /etc/revdep-rebuild/
    echo "SEARCH_DIRS_MASK=\"${EPREFIX}/usr/$(get_libdir)/plexmediaserver\"" >"${ED}"/etc/revdep-rebuild/80plexmediaserver
}
If it does, perhaps the problem is related to the libdir symlink. If revdep-rebuild is literal about this, the ebuild masked lib64, but revdep-rebuild is looking in lib (which is a symlink to lib64).

Code:
# cat /etc/revdep-rebuild/80plexmediaserver
SEARCH_DIRS_MASK="/usr/lib64/plexmediaserver"
# ls -ld /usr/lib
drwxr-xr-x 107 root root 90112 Jun 30 09:11 /usr/lib
# ls -ld /usr/lib64
drwxr-xr-x 262 root root 217088 Jun 30 09:14 /usr/lib64
# eselect profile show
Current /etc/portage/make.profile symlink:
  default/linux/amd64/17.1/desktop/plasma

Is the problem profile-related?
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 16648

PostPosted: Sat Jun 30, 2018 7:34 pm    Post subject: Reply with quote

This is a bug in the Plex package. If you were on 17.0 and had the symlink, this might have been a revdep-rebuild bug. Now, it is clearly a package bug. The ebuild installs the library to /usr/lib (which is wrong, as I understand how 17.1 lays out files), then blacklists /usr/lib64. The two directories need to agree, or you will get this problem. In my opinion, the blacklist is pointed at the correct directory and the installed file is in the wrong directory. Historically, the symlink would have concealed this mistake.

This general problem was reported in media-tv/plex-media-server keeps old libraries waiting in @preserved-rebuild forever and media-tv/plex-media-server-1.10.1 - revdep-rebuild keeps wanting to rebuild. The latter added the SEARCH_DIRS_MASK discussed in this thread. Unfortunately, since the file is installed in the wrong directory, the mask is useless on 17.1.

Incidentally, if plex is a prebuilt, I think it should not be under /usr/ at all. It should be in /opt.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum