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
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" }
Please attach the entire build log to this bug report.
Created attachment 390764 [details] build.log for deluge from gx86
Created attachment 390766 [details] build.log for deluge from my overlay with the _distutils-r1_create_setup_cfg() hack
I'm also able to reproduce this issue.
I have the same problem. poncho's fix in comment #1 fixes the bug for me too.
Ping! The problem has been confirmed by several people and a possible fix has been given.
Thanks for the report. I have reproduced the bug. But I still could not understand why it fails.
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
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.
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.
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.
Fixed in 1.3.12