Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 531370 - net-p2p/deluge-1.3.11 fails to install plugins
Summary: net-p2p/deluge-1.3.11 fails to install plugins
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Paolo Pedroni
URL:
Whiteboard:
Keywords: NeedPatch
Depends on:
Blocks:
 
Reported: 2014-12-01 18:10 UTC by Kostas Kavourakis
Modified: 2016-06-10 07:36 UTC (History)
9 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
deluge ebuild from my overlay (deluge-1.3.11.ebuild,2.03 KB, text/plain)
2014-12-01 18:23 UTC, poncho
Details
build.log for deluge from gx86 (build.log.tar.gz,113.95 KB, application/octetstream)
2014-12-02 12:35 UTC, poncho
Details
build.log for deluge from my overlay with the _distutils-r1_create_setup_cfg() hack (build-overlay.log,365.53 KB, text/x-log)
2014-12-02 12:36 UTC, poncho
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kostas Kavourakis 2014-12-01 18:10:58 UTC
After upgrading to deluge 1.3.11 all the built-in plugins dissapeared. Renaming the 1.3.6 ebuild to 1.3.11 and re-installing results in those plugins appearring again, so it is definitely a defect of the new EAPI5 styled ebuild.

Reproducible: Always

Steps to Reproduce:
1. Upgrade to deluge-1.3.11
2. Run deluge
3. Open the GUI configuration, go to plugins.
Actual Results:  
No plugins show as installed.

Expected Results:  
All the built-in plugins should show in the list.

Same thing happened on another ~x86 system, arch is irrelevant for this.

# emerge --info
Portage 2.2.8-r2 (default/linux/amd64/13.0, gcc-4.8.3, glibc-2.19-r1, 3.16.5-gentoo x86_64)
=================================================================
System uname: Linux-3.16.5-gentoo-x86_64-AMD_Phenom-tm-_9850_Quad-Core_Processor-with-gentoo-2.2
KiB Mem:     8137344 total,    292620 free
KiB Swap:    1048572 total,   1018736 free
Timestamp of tree: Mon, 01 Dec 2014 10:00:01 +0000
ld GNU ld (Gentoo 2.24 p1.4) 2.24
app-shells/bash:          4.2_p53
dev-java/java-config:     2.2.0
dev-lang/perl:            5.18.2-r2
dev-lang/python:          2.7.7, 3.3.5-r1, 3.4.1
dev-util/cmake:           2.8.12.2-r1
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.69
sys-devel/automake:       1.12.6, 1.13.4
sys-devel/binutils:       2.24-r3
sys-devel/gcc:            4.8.3
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2-r1
sys-devel/make:           4.0-r1
sys-kernel/linux-headers: 3.16 (virtual/os-headers)
sys-libs/glibc:           2.19-r1
Repositories: gentoo betagarden overlay
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe -w"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo"
CXXFLAGS="-march=native -O2 -pipe -w"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps=y --keep-going --quiet-build=n --autounmask-write=y"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://gentoo.mneisen.org/ http://gentoo.tiscali.nl/ http://de-mirror.org/distro/gentoo/ http://gentoo.mirror.pw.edu.pl/"
LANG="POSIX"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/betagarden /usr/local/portage"
USE="64bit X aalib acl acpi aio amd64 apache2 apng authlib branding bzip2 cairo caps cli cracklib crypt ctype cups curl cxx dbus dedicated dri exif expat extensions fam fbcondecor ffmpeg foomaticdb fortran g3dvl gbm gd gdbm geoip gif glibc-omitfp glut gmp gnutls gtk gtkhtml guile iconv icu idn imagemagick imap imlib ipc iproute2 ipv6 java jpeg lcdfilter lcms less libass libcaca libkms libnotify libwww lm_sensors logrotate mad magic maildir matroska mhash mikmod mmap mmx mmxext mng mod modules motif mp3 mpeg msn multilib mysql ncurses networking new-login nls nptl nsplugin ogg opengl openmp pam passwordsave pcre pdf php pic png policykit ppds python quicktime rar readline regex rtc samba sasl sdl session setproctitle slang spell srt sse sse2 sse3 ssl startup-notification svg tcpd tiff tproxy transparency truetype ucd-compat udev unicode usb vda vorbis webinterface x264 xcomposite xinerama xml xv xvid xvmc zlib" ABI_X86="64" APACHE2_MODULES="authn_core authz_core socache_shmcb actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif so speling status unique_id userdir usertrack vhost_alias unixd" APACHE2_MPMS="prefork" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="keyboard evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en" OFFICE_IMPLEMENTATION="libreoffice" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="radeon vesa" XTABLES_ADDONS="account chaos checksum condition delude dhcpmac fuzzy geoip iface ipmark ipp2p ipset6 ipv4options length2 logmark lscan pknock psd quota2 rawnat steal sysrq tarpit tee"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC, USE_PYTHON
Comment 1 poncho 2014-12-01 18:23:26 UTC
Created attachment 390730 [details]
deluge ebuild from my overlay

I've upgraded the deluge ebuild to distutils-r1 some time ago in my overlay.

To make the plugins work, I had to add:

_distutils-r1_create_setup_cfg() {
# plugins fail to install otherwise...
einfo "skip distutils-r1_create_setup_cfg"
}
Comment 2 Jeroen Roovers (RETIRED) gentoo-dev 2014-12-02 08:32:06 UTC
Please attach the entire build log to this bug report.
Comment 3 poncho 2014-12-02 12:35:07 UTC
Created attachment 390764 [details]
build.log for deluge from gx86
Comment 4 poncho 2014-12-02 12:36:17 UTC
Created attachment 390766 [details]
build.log for deluge from my overlay with the _distutils-r1_create_setup_cfg() hack
Comment 5 Anthony Ryan 2014-12-03 00:54:05 UTC
I'm also able to reproduce this issue.
Comment 6 Paolo Pedroni 2014-12-05 09:42:16 UTC
I have the same problem. poncho's fix in comment #1 fixes the bug for me too.
Comment 7 Paolo Pedroni 2014-12-17 11:24:00 UTC
Ping! The problem has been confirmed by several people and a possible fix has been given.
Comment 8 Benda Xu gentoo-dev 2014-12-21 07:58:22 UTC
Thanks for the report.  I have reproduced the bug.  But I still could not understand why it fails.
Comment 9 Benda Xu gentoo-dev 2014-12-21 09:22:39 UTC
Hi python team,

Deluge has its own plugin system, which is a set of eggs in a predefined directory.  If the egg-info dir is overridden by .pydistutils.cfg and _create_setup_cfg, deluge could no longer find the plugins.

Besides, a separate build-dir and _copy_egg_info results in the plugins installed as standalone python modules.

Therefore the straight forward way is to disable _distutils-r1_create_setup_cfg().  But it does not feel correct.

What's your recommendation?

Cheers,
Benda


--- ./ChangeLog
+++ ./ChangeLog
@@ -4,0 +5,5 @@
+  21 Dec 2014; Benda Xu <heroxbd@gentoo.org> deluge-1.3.11.ebuild:
+  Override _distutils-r1_create_setup_cfg to disable out-of-tree builds; needed
+  for the deluge plugin system.  Bug 531370.  Credits Kostas Kavourakis, poncho,
+  Anthony Ryan and Paolo Pedroni.


RCS file: /var/cvsroot/gentoo-x86/net-p2p/deluge/deluge-1.3.11.ebuild,v
retrieving revision 1.1
diff -u -B -r1.1 deluge-1.3.11.ebuild
--- deluge-1.3.11.ebuild        1 Dec 2014 05:54:08 -0000       1.1
+++ deluge-1.3.11.ebuild        21 Dec 2014 09:11:26 -0000
@@ -53,6 +53,13 @@
        distutils-r1_python_prepare_all
 }
 
+_distutils-r1_create_setup_cfg() {
+       # bug 531370: deluge has its own plugin system. No need to relocate its egg info files.
+       # Override this call from the distutils-r1 eclass.
+       # This does not respect the distutils-r1 API. DONOT copy this example.
+       :
+}
+
 python_install_all() {
        distutils-r1_python_install_all
        newinitd "${FILESDIR}"/deluged.init deluged
Comment 10 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2014-12-21 10:12:46 UTC
Jeez, this isn't going to be easy. Not easy at all.

Of course, the whole thing -- like most of the 'smart' things -- is terribly fragile, stupid and error-prone. For example, the plugins don't get proper byte-compilation.
Comment 11 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2014-12-21 10:23:58 UTC
Ok, if we just leave the [install] section without all the remaining sections the plugins are even byte-compiled fine. However, we can't remove the build sections for eclass relies on those paths being set.
Comment 12 Paolo Pedroni 2016-02-08 10:34:54 UTC
The ebuild for 1.3.12 in tree "kind of" works, even though it's an ugly hack. I think this bug may be closed.
Comment 13 Paolo Pedroni 2016-02-11 13:54:20 UTC
Fixed in 1.3.12