View previous topic :: View next topic |
Author |
Message |
cfgauss l33t


Joined: 18 May 2005 Posts: 607 Location: USA
|
Posted: Sat Jun 30, 2018 4:39 pm Post subject: [SOLVED] revdep-rebuild keeps rebuilding |
|
|
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 |
|
 |
Hu Moderator

Joined: 06 Mar 2007 Posts: 16648
|
Posted: Sat Jun 30, 2018 5:12 pm Post subject: |
|
|
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 |
|
 |
cfgauss l33t


Joined: 18 May 2005 Posts: 607 Location: USA
|
Posted: Sat Jun 30, 2018 5:28 pm Post subject: |
|
|
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 |
|
 |
Hu Moderator

Joined: 06 Mar 2007 Posts: 16648
|
Posted: Sat Jun 30, 2018 6:32 pm Post subject: |
|
|
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 |
|
 |
cfgauss l33t


Joined: 18 May 2005 Posts: 607 Location: USA
|
Posted: Sat Jun 30, 2018 6:42 pm Post subject: |
|
|
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 |
|
 |
Hu Moderator

Joined: 06 Mar 2007 Posts: 16648
|
Posted: Sat Jun 30, 2018 7:34 pm Post subject: |
|
|
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 |
|
 |
|
|
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
|
|