Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 628512

Summary: app-portage/eix-0.33.0: Please bump; changes to the ebuild required
Product: Gentoo Linux Reporter: Martin Väth <martin>
Component: Current packagesAssignee: Michael Weber (RETIRED) <xmw>
Status: RESOLVED OBSOLETE    
Severity: normal CC: althorion, arthur, cloos, dan, edes, fhellmuth, fturco, gentoo3, gentoo, grozin, hydrapolic, jj, johannes.hirte, josef64, jstein, kingjon3377, krinpaus, martin, merlin, mgorny, mlen, pageexec, panter.dsd, qa, rdalek1967, rzubaly, steven, stylinae, tuupic, voron1
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Martin Väth 2017-08-21 16:23:50 UTC
I just released eix-0.33.0.

The new release installs a wrapper for eix-functions.sh, thus fixing the problem discussed in bug 609440.

Note that analogous changes (fixing bug 609440 and related bugs) have been done for the new releases

>=app-shells/push-3.0
>=app-shells/quoter-4.0

so that I suggest to depend on these versions (once they are bumped:
bug 628388 and bug 628390) and to remove the patches to the build system
(in particular, the dependency on the autotools eclass is no longer required).

A second big change in eix is that the meson build system is now supported.
Although there is currently no plan to drop support for autotools (beacuse meson will presumably never work on quite a number of prefix architectures), building with meson on "standard" architectures is considerably faster.

Although the change to meson would be quite straightforward, the maintainers of the meson.eclass refuse to make it possible to build on some architectures with meson and on others with autotools, see bug 626054.
Due to this refusal, I cannot suggest a new ebuild which does not copy the functionality of large portions of the meson.eclass

In the mv overlay, I added a meson_optional.eclass which behaves like meson.eclass, just with the three lines necessary to fix bug 626054. The corresponding ebuild (which currently decides based on a USE flag whether meson or autotools is used) can be found here:

https://github.com/vaeth/mv-overlay/raw/master/app-portage/eix/eix-0.33.0.ebuild
Comment 1 rx80 2017-10-03 00:45:05 UTC
(In reply to Martin Väth from comment #0)
> I just released eix-0.33.0.
> 
> The new release installs a wrapper for eix-functions.sh, thus fixing the
> problem discussed in bug 609440.
> 

After updating to eix-0.33.0 eix-sync is broken:
# eix-sync
/usr/bin/eix-sync: line 22: ReadFunctions: command not found
/usr/bin/eix-sync: line 24: ReadVar: command not found
/usr/bin/eix-sync: line 25: ReadVar: command not found
/usr/bin/eix-sync: line 26: ReadVar: command not found
/usr/bin/eix-sync: line 27: ReadVar: command not found
/usr/bin/eix-sync: line 28: local_portage_configroot: unbound variable
Comment 2 14122002 2017-10-03 08:23:06 UTC
I have same problem.
Comment 3 Althorion 2017-10-03 08:35:24 UTC
Same one here. Had to downgrade.
Comment 4 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2017-10-04 21:01:07 UTC
Martin: I'm taking this since xmw hasn't yet.

All the dependent bugs are implemented now, including the optional meson dependency. There are some other changes you have in the eix build that are not acceptable. I'll review them here:

Major:
Suggesting users to modify binutils pieces is a big concern, this should probably be raised as a toolchain bug, to make binutils create the symlinks.
+	if use meson && use strong-optimization
+	then	for i in /usr/*/binutils-bin/lib/bfd-plugins/liblto_plugin.*
+			do	test -h "$i" && return
+			done
+		ewarn "app-portage/eix[meson strong-optimization]' might fail to"
+		ewarn "emerge (link) without the linker lto plugin."
+		ewarn "To establish this plugin, execute as root something like"
+		ewarn "	mkdir -p /usr/*/binutils-bin/lib/bfd-plugins"
+		ewarn "	cd /usr/*/binutils-bin/lib/bfd-plugins"
+		ewarn "	ln -sfn /usr/libexec/gcc/*/*/liblto_plugin.so.*.*.* ."
+		ewarn "The * might have to be replaced by your architecture or gcc version"
+ 	fi

Minor:
1. Some of the rm calls need to have die added.
2. Dropped inherit autotools

Cosmetic:
Newer ebuild styling uses a bash array of autoconf args, to reduce accidental errors with trailing line continuation; can you stick to it please?

Inquiries:
1. Are --disable-separate-binaries and --disable-separate-tools obsolete in 0.33.x?
2. Why did you have RESTRICT=mirror?
3.
Comment 5 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-10-05 03:16:20 UTC
We've already established that flags to control optimization are not acceptable in Gentoo, and they were removed.

I will consider reintroducing them as purposeful reintroduction of QA violation and pursue it. That said, Martin should probably be removed from his position of proxied maintainer.
Comment 6 Frank Hellmuth 2017-10-05 03:48:03 UTC
I masked the buggy 0.33.0 version and downgraded to the previously working version 0.32.10. Now I get the error

 * push.sh from https://github.com/vaeth/push/ is needed

when starting an eix-* tool.
Comment 7 Michael Cook 2017-10-05 03:56:14 UTC
(In reply to Frank Hellmuth from comment #6)
> I masked the buggy 0.33.0 version and downgraded to the previously working
> version 0.32.10. Now I get the error
> 
>  * push.sh from https://github.com/vaeth/push/ is needed
> 
> when starting an eix-* tool.

Downgrade push and quoter too.
Comment 8 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-10-05 04:06:47 UTC
And yes, please either revert or mask the new versions of push and quoter, pending QA action when I get home.
Comment 9 Martin Väth 2017-10-05 08:19:27 UTC
(In reply to Robin Johnson from comment #4)
> There are some other changes you have in the eix build that are
> not acceptable.

There is a misunderstanding: The ebuild in the overlay was not meant to
be copied to the gentoo repository; this is based on the former eix ebuild.
I had cited it only as an example how to include meson eclass.
I could provide an ebuild which is meant for the tree, but I did not do this so far, because I didn't know how to deal with the meson.eclass and with the push/quoter dependencies. Apparently, it is not clear, still.

> Suggesting users to modify binutils pieces is a big concern, this should
> probably be raised as a toolchain bug, to make binutils create the symlinks.

This is a temporary hack in the overlay and not necessary for the ebuild in the main tree, because that ebuild should not have e.g. the strong-optimization options which just mangle *FLAGS.
A corresponding toolchain bug 630066 was raised.

(In reply to Michał Górny from comment #5)
> I will consider reintroducing them as purposeful reintroduction of QA
> violation and pursue it.

This happened due to the above misunderstanding: The ebuild was not meant for the tree.

> either revert or mask the new versions of push and quoter

Why? They install the main data now in a non-binary directory and have only a true wrapper binary outputting data meant for scripts, similar to e.g. pkg-config. If this is a QA violation then pkg-config is as well.
Comment 10 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-10-05 15:52:23 UTC
New versions p.masked to propagate fixing app-portage/eix, and the relevant commits reverted. Please do not commit anything coming from Martin without prior review from QA.
Comment 11 Andrey Grozin gentoo-dev 2017-10-10 09:04:49 UTC
(In reply to Michał Górny from comment #10)
> New versions p.masked to propagate fixing app-portage/eix, and the relevant
> commits reverted. Please do not commit anything coming from Martin without
> prior review from QA.
I see that =app-portage/eix-0.33.0 is not masked. Only =app-shells/push-3.0 and =app-shells/quoter-4.0 are masked in portage/profiles/package.mask, but these versions are absent in the tree anyway. I have push-2.0-r1 and quoter-3.0_p2-r1 installed (the latest version present in the tree). Today I emerged eix-0.33.0, and eix-sync again produces

dns ~ # eix-sync 
/usr/bin/eix-sync: line 22: ReadFunctions: command not found
/usr/bin/eix-sync: line 24: ReadVar: command not found
/usr/bin/eix-sync: line 25: ReadVar: command not found
/usr/bin/eix-sync: line 26: ReadVar: command not found
/usr/bin/eix-sync: line 27: ReadVar: command not found
/usr/bin/eix-sync: line 28: local_portage_configroot: unbound variable

Why isn't =app-portage/eix-0.33.0 masked??
Comment 12 Tomáš Mózes 2018-09-27 07:56:43 UTC
I've tried to bump app-emulations/xen-tools, which sets SLOT="0/$(ver_cut 1-2)". In a local overlay it works fine, but when moved to github overlay, eix-update fails with "External commands disallowed while sourcing ebuild: ver_cut 1-2".

Ebuild from https://github.com/vaeth/mv-overlay/blob/master/app-portage/eix/eix-0.33.4.ebuild fixes it.
Comment 13 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2018-10-03 08:46:12 UTC
It seems that this bug doesn't really match the reality right now, with new versions of eix in and so on.