Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 521724 - app-portage/layman-2.1.0-r2 - ImportError: cannot import name 'MakeConf'
Summary: app-portage/layman-2.1.0-r2 - ImportError: cannot import name 'MakeConf'
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Devan Franchini (RETIRED)
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks:
 
Reported: 2014-08-30 11:23 UTC by Conrad Kostecki
Modified: 2014-09-03 19:00 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Conrad Kostecki gentoo-dev 2014-08-30 11:23:28 UTC
Hi!
When installing layman, I am getting after the installation the following error:

>>> Regenerating /etc/ld.so.cache...
>>> Original instance of package unmerged safely.
 * Running layman-updater...
 *   Creating layman's make.conf file
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.4/layman-updater", line 30, in <module>
    main()
  File "/usr/lib64/python3.4/site-packages/layman/updater.py", line 83, in __call__
    elif not self.check_is_new():
  File "/usr/lib64/python3.4/site-packages/layman/updater.py", line 89, in check_is_new
    self.create_make_conf()
  File "/usr/lib64/python3.4/site-packages/layman/updater.py", line 158, in create_make_conf
    from layman.makeconf import MakeConf
ImportError: cannot import name 'MakeConf'
 *
>>> app-portage/layman-2.1.0-r2 merged.
>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

Switching to python2.7 does not help. It also shows the same error.
Comment 1 Conrad Kostecki gentoo-dev 2014-08-30 11:23:55 UTC
Portage 2.2.12 (python 3.4.1-final-0, default/linux/amd64/13.0, gcc-4.9.1, glibc-2.19-r1, 3.16.1-gentoo x86_64)
=================================================================
System uname: Linux-3.16.1-gentoo-x86_64-Genuine_Intel-R-_CPU_@_1.60GHz-with-gentoo-2.2
KiB Mem:     2053124 total,    163784 free
KiB Swap:    2621436 total,   2504748 free
Timestamp of tree: Fri, 29 Aug 2014 23:30:01 +0000
ld GNU ld (Gentoo 2.24 p1.4) 2.24
ccache version 3.1.9 [enabled]
app-shells/bash:          4.2_p47
dev-lang/python:          2.7.8, 3.4.1
dev-util/ccache:          3.1.9-r3
dev-util/cmake:           2.8.12.2-r2
dev-util/pkgconfig:       0.28-r2
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.13.1
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.9.6-r3, 1.14.1
sys-devel/binutils:       2.24-r3
sys-devel/gcc:            4.9.1
sys-devel/gcc-config:     1.8
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 galactica
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=atom -O3 -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -mmovbe -msahf -pipe -fomit-frame-pointer -mfpmath=sse"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.5/ext-active/ /etc/php/apache2-php5.6/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cgi-php5.6/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/php/cli-php5.6/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=atom -O3 -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -mmovbe -msahf -pipe -fomit-frame-pointer -mfpmath=sse -fvisibility-inlines-hidden"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--autounmask=n --quiet-build=n --with-bdeps=y"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://ftp.halifax.rwth-aachen.de/gentoo/"
INSTALL_MASK="/etc/systemd/network/* /etc/systemd/system/* /etc/xinetd.d/* /usr/lib64/systemd/system/* /usr/lib64/systemd/system-shutdown/*"
LANG="de_DE.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--sort-common -Wl,-z,now"
MAKEOPTS="-j3 -l2"
PKGDIR="/usr/portage/packages"
PORTAGE_BUNZIP2_COMMAND="pbunzip2"
PORTAGE_BZIP2_COMMAND="pbzip2"
PORTAGE_COMPRESS="xz"
PORTAGE_COMPRESS_FLAGS="-9e"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--delete-before --delete-excluded --exclude-from=/etc/portage/rsync_excludes --stats"
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="/usr/local/portage"
USE="amd64 bash-completion berkdb bzip2 cairo cgi cracklib crypt ctype curl cvs cxx exif fontconfig ftp gd git gmp gnutls graphviz hddtemp iconv icu idn ipv6 javascript jit jpeg jpeg2k lm_sensors lzma lzo mime mmxext mysql mysqli ncurses nls nntp nptl offensive openmp pam pcre perl png python readline samba session simplexml slang sockets spell sqlite sse2 ssl ssse3 subversion suid svg symlink tcpd threads tiff truetype udev unicode usb vhosts vim-syntax xml zlib" ABI_X86="64" COLLECTD_PLUGINS="apcups cgroups conntrack contextswitch cpu df disk dns entropy ethstat exec filecount hddtemp interface iptables irq load logfile md memory mysql netlink nfs nginx ntpd openvpn ping processes rrdcached sensors serial swap table tcpconns unixsock uptime users wireless" CURL_SSL="openssl" ELIBC="glibc" GRUB_PLATFORMS="pc" KERNEL="linux" LCD_DEVICES="lcd2usb glcd2usb" LINGUAS="de" NGINX_MODULES_HTTP="access auth_basic autoindex charset fancyindex fastcgi gzip rewrite spdy stub_status" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" USERLAND="GNU"
USE_PYTHON="2.7"
Unset:  CPPFLAGS, CTARGET, LC_ALL, SYNC
Comment 2 Devan Franchini (RETIRED) gentoo-dev 2014-08-31 05:31:01 UTC
Rebuild layman again and everything should be fine.

Fix was noticed and pushed to the main repo Aug 28th.

If the issue continues after re-building layman then we'll try and figure out the issue. :)
Comment 3 Devan Franchini (RETIRED) gentoo-dev 2014-08-31 05:35:25 UTC
Wait, you mean on layman-2.1.0-r2? I'll figure out what's causing that issue. In the meantime, if you install layman-9999 then that fix will be in the tree.
Comment 4 Conrad Kostecki gentoo-dev 2014-08-31 09:51:18 UTC
(In reply to Devan Franchini from comment #3)
> Wait, you mean on layman-2.1.0-r2? I'll figure out what's causing that
> issue. In the meantime, if you install layman-9999 then that fix will be in
> the tree.

Yes. I am installing "2.1.0-r2".
Comment 5 W. Trevor King 2014-09-02 19:15:00 UTC
(In reply to Devan Franchini from comment #3)
> Wait, you mean on layman-2.1.0-r2? I'll figure out what's causing that
> issue.

2.1.0 doesn't define a MakeConf class:

  $ git grep MakeConf 2.1.0
  2.1.0:ChangeLog:    Move MakeConf class to dedicated file
  2.1.0:ChangeLog:    * layman/db.py (DB.add, MakeConf.write):
  2.1.0:ChangeLog:    * layman/db.py (MakeConf.write.prio_sort): Sort overlays by
  2.1.0:ChangeLog:    (MakeConf.write): Add $PORTDIR_OVERLAY to include
  2.1.0:ChangeLog:    (MakeConf.read): Disregard PORTDIR_OVERLAY variable
  2.1.0:ChangeLog:    * layman/db.py (MakeConf.read): Allowed for a missing
  2.1.0:layman/db.py:        >>> m = MakeConf(config, b.overlays)
  2.1.0:layman/db.py:        # >>> m = MakeConf(config, b.overlays)
  2.1.0:layman/db.py:        >>> m = MakeConf(config, b.overlays)
  2.1.0:layman/db.py:        # >>> m = MakeConf(config, b.overlays)
  2.1.0:layman/makeconf.py:                msg = 'MakeConf: ConfigHandler.read(); Did not find a '\
  2.1.0:layman/makeconf.py:            self.output.error('MakeConf: ConfigHandler.write(); Oops, failed to set a '\
  2.1.0:layman/makeconf.py:            self.output.error('MakeConf: ConfigHandler.write(); Failed to write "'\
  2.1.0:layman/updater.py:        from layman.makeconf import MakeConf
  2.1.0:layman/updater.py:        maker = MakeConf(self.config, None)

It looks like this landed with a3049629 (makeconf.py: changes name to ConfigHandler, adds update() stub, 2014-05-22) which renamed MakeConf → ConfigHandler, which landed in 2.1.0:

  $ git name-rev --tags a3049629
  a3049629 tags/2.1.0~30

However, the associtated fix (5551efcf, updater.py: Adds proper import for make.conf module, 2014-08-28) was not backported.

  $ git name-rev --tags 5551efcf
  5551efcf undefined
Comment 6 Devan Franchini (RETIRED) gentoo-dev 2014-09-02 22:07:56 UTC
layman-2.1.0-r3 has been pushed to address this issue.

Expect it on the portage tree within a few hours.
Comment 7 Conrad Kostecki gentoo-dev 2014-09-03 18:48:45 UTC
Emerged 2.1.0-r3. It worked :)
Comment 8 Devan Franchini (RETIRED) gentoo-dev 2014-09-03 19:00:25 UTC
Good to hear.

Marking as closed as the fix has been in the portage tree for almost 24 hours now.