Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 540580 - dev-perl/MooX-Types-MooseLike-0.270.0 bump request (or will fail tests w (future) dev-perl/Moo-1.6.0)
Summary: dev-perl/MooX-Types-MooseLike-0.270.0 bump request (or will fail tests w (fut...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Perl team
URL: https://metacpan.org/diff/file?target...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-18 22:32 UTC by Alex Efros
Modified: 2015-02-24 00:16 UTC (History)
0 users

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


Attachments
build.log (build.log,6.26 KB, text/plain)
2015-02-18 23:02 UTC, Alex Efros
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Efros 2015-02-18 22:32:41 UTC
Update to 0.270.0 will fix this issue.
Comment 1 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2015-02-18 22:45:34 UTC
Please attach context from test failure. You're probably right, but no context makes for a very poor bug report.
Comment 2 Alex Efros 2015-02-18 23:02:12 UTC
Created attachment 396886 [details]
build.log
Comment 3 Alex Efros 2015-02-18 23:02:29 UTC
Portage 2.2.14 (python 3.3.5-final-0, hardened/linux/amd64, gcc-4.8.3, glibc-2.19-r1, 3.17.7-hardened-r1 x86_64)
=================================================================
System uname: Linux-3.17.7-hardened-r1-x86_64-Intel-R-_Core-TM-_i7-2600K_CPU_@_3.40GHz-with-gentoo-2.2
KiB Mem:     8133844 total,    345676 free
KiB Swap:    8388604 total,   8034480 free
Timestamp of tree: Wed, 18 Feb 2015 18:15: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.20.2
dev-lang/python:          2.7.9-r1, 3.3.5-r1
dev-util/cmake:           2.8.12.2-r1
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.13.9
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6-r1, 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.4
sys-devel/make:           4.0-r1
sys-kernel/linux-headers: 3.16 (virtual/os-headers)
sys-libs/glibc:           2.19-r1
Repositories: gentoo perl-experimental-snapshots gamerlay powerman local
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /opt/upsmon-usb/EXT/DownOS /opt/upsmon-usb/EXT/JSystem /service /usr/inferno/keydb /usr/inferno/lib /usr/inferno/services /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/easy-rsa /usr/share/gnupg/qualified.txt /var/log /var/qmail/alias /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/usr/portage-distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps=y --autounmask-write"
FCFLAGS="-march=native -O2 -pipe"
FEATURES="assume-digests binpkg-logs clean-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 xattr"
FFLAGS="-march=native -O2 -pipe"
GENTOO_MIRRORS="http://tux.rainside.sk/gentoo/ http://trumpetti.atm.tut.fi/gentoo/ http://gentoo.inode.at/"
LANG="ru_RU.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j8"
PKGDIR="/usr/portage-packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--exclude ChangeLog --delete-excluded"
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/perl-experimental-snapshots /var/lib/layman/gamerlay /var/lib/layman/powerman /usr/local/portage"
SYNC="rsync://rsync.ua.gentoo.org/gentoo-portage"
USE="X a52 aac adns aes alac alsa amd64 avx bash-completion berkdb bzip2 caps cdda cddb cli cracklib crypt cups cxx dbus dri drm dts dvb dvd flac fontconfig gallium gdbm gif gnutls gpg hardened iconv icu id3tag idn ipv6 jpeg jpeg2k justify libav libnotify mac mad matroska mbox mmx mmxext mng modules mp3 mpeg multilib musepack ncurses network-cron nls nptl nsplugin ogg opengl openmp openvg pam pax_kernel pcre perl png popcnt qt3support readline session spell sse sse2 sse3 sse4_1 sse4_2 ssl ssse3 svg tcpd theora tiff truetype udev unicode urandom vdpau vim-syntax vorbis wavpack x264 xattr xosd xtpax xv xvid xvmc zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="log_config vhost_alias autoindex alias rewrite dir deflate filter mime negotiation auth_basic authn_file authz_host authz_user authz_groupfile cgi actions headers env setenvif" 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" CPU_FLAGS_X86="aes avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" 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="efi-64 pc" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en ru ru_RU" NGINX_MODULES_HTTP="access auth_basic autoindex browser charset empty_gif fastcgi geo gzip limit_conn limit_req map memcached proxy referer rewrite scgi split_clients ssi upstream_ip_hash userid uwsgi fancyindex" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" QEMU_SOFTMMU_TARGETS="x86_64 i386" QEMU_USER_TARGETS="x86_64 i386" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="nvidia nouveau" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON
Comment 4 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2015-02-18 23:40:41 UTC
Hm, this bug seems to be triggered by some kind of Moo/Test-Fatal/Try-Tiny interaction.

But I don't seem to be able to reproduce it reliably.

Best data I have says Moo 1.005 started this bug. ( But I can't even reproduce it with Moo 1.005, and I can't reproduce it locally without having Moo 1.006 )

equery l Moo ? 

Of course, this means we should fix it before we add Moo >=1.006 to tree, but that's presently only archaic 1.4.2 http://packages.gentoo.org/package/dev-perl/Moo
Comment 5 Alex Efros 2015-02-19 00:21:08 UTC
(In reply to Kent Fredric from comment #4)
> Hm, this bug seems to be triggered by some kind of Moo/Test-Fatal/Try-Tiny
> interaction.
> 
> But I don't seem to be able to reproduce it reliably.

I'm using Moo-1.7.0, which isn't in portage.

I had to update Moo because Pod-Readme-1.1.2 depend on >=dev-perl/Moo-1.4.5.
And I had to update Pod-Readme because of dev-perl/Dist-Zilla-Plugin-ReadmeFromPod-0.320.0.
Which in turn was one of updates needed to install dev-perl/Dist-Milla.


BTW, it was a huge headache to get Dist::Milla installed with portage. It (or it dependencies) require nearly latest Dist::Zilla, so I've to add about 40-50 packages on top of perl-experimental overlay. I was nearly ready to give up and install all of them in a couple of minutes with single cpanm command in ~/perl5/.

Probably this isn't a right place to discuss this issue, but what is officially recommended "right way" to prepare environment for development in Perl?
Use only available in portage perl modules isn't an option - too many important modules are missing, use only versions (even ~arch) of perl modules in portage also isn't an option - most modules are too outdated and usually latest version from CPAN works better (at least it pass tests!). Install CPAN modules system-wide manually using cpan/cpanm as root - also isn't an option, because portage version of same modules have higher priority in @INC and thus cpan/cpanm fall into endless loop when trying to upgrade some module which is already installed by portage. Remove all modules installed by portage and use only manually installed modules - result in big headache with manuall support of packages.provided, and it's too easy to overlook missing dependency on world update which result in installing some perl modules from portage, effectively hiding usually newer version installed by cpan/cpanm.

Why not use g-cpan to automatically update all CPAN modules to latest versions every few hours in some overlay? Even if it will keep only ebuilds for modules which successfully pass tests it may be a huge advantage over current situation. And if we add a couple of small fixed to make g-cpan handle modules based on Module::Build::Tiny this way we'll probably will cover 99% of CPAN modules.
Comment 6 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2015-02-19 04:41:46 UTC
The "right" option with regards to a development environment is not to use portage at all for your perl modules, and to isolate your development environment from Gentoo.

This is why I've been so hell-bent on getting dev-perl/App-cpanminus, dev-perl/local-lib and dev-perl/App-perlbrew into tree.

These three modules make it straight forward to begin working independently of Gentoo. 

local-lib is the "lazy" option which allows you to install your own dependencies locally in ~/ and while still inheriting gentoo modules and gentoo perl.

perlbrew is the "serious" option which builds a perl in ~/ 

Both give code to inject into ~/.bashrc so that the rest of perl toolchain use the above as install targets.

gcpan itself has historically caused more problems than it fixes.

( Additionally, if you need some more stringent dependency management, Carton might be something we could look into providing as well )

But fully automated tree generation is simply not viable presently. I've worked on it a bit, but its a giant mindblow. 

So yes: 

>  I was nearly ready to give up and install all of them in a couple of minutes with single cpanm command in ~/perl5/.

That is IMO the "preferred" option for development tasks ( And it is how I myself do it, and it is the way upstream recommend it for every flavour of linux )

The contents of /usr/ are more tailored to supporting other things in /usr/ as dependencies of top level applications that users may want to use. ( That is, you should consider augmenting "/usr/" perl to be "for gentoo' , not "for gentoo users" )
Comment 7 Alex Efros 2015-02-19 06:14:48 UTC
Hmm. Isn't this way we will get different behaviour/bugs for all apps in /usr/bin/ which use perl - when they run by root they'll use gentoo's perl modules, when they run by me they'll use perl modules from my ~/perl5/, when they run by some other user they will work in 3rd different way because his ~/perl5/ differs from mine...?
Comment 8 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2015-02-19 07:44:58 UTC
(In reply to Alex Efros from comment #7)
> Hmm. Isn't this way we will get different behaviour/bugs for all apps in
> /usr/bin/ which use perl - when they run by root they'll use gentoo's perl
> modules, when they run by me they'll use perl modules from my ~/perl5/, when
> they run by some other user they will work in 3rd different way because his
> ~/perl5/ differs from mine...?

Yeah. That is occasionally a problem. And thats a problem that is somewhat exacerbated by this: 

grep 'usr/bin/env perl' -l /usr/bin/* 2>/dev/null


If you're using local::lib, you need to unset PERL5LIB prior to running system perl apps, and if you're using perlbrew, you'll need to unset PATH to avoid them running on the wrong perl.

But "which perl it should run on" is a generic debate that has been waged for aeons :/

Ultimately there's things that will be sub-optimal whatever direction you travel, its just a matter of working out which ones matter most to you.

Yes, Ideally, we'd be able to have everything roll out automatedly as soon as it hits cpan. But realistically, the plumbing required for that is way more than it looks.
Comment 9 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2015-02-19 07:46:41 UTC
But I should add, all of the above are far better than having a hosed system because you updated something blindly which breaks installation of other gentoo packages ;)
Comment 10 Alex Efros 2015-02-19 08:29:22 UTC
(In reply to Kent Fredric from comment #9)
> But I should add, all of the above are far better than having a hosed system
> because you updated something blindly which breaks installation of other
> gentoo packages ;)

You mean this is the main reason why vendor_perl have higher priority than site_perl in @INC in Gentoo (which is actually the real root of discussed issue)?
Comment 11 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2015-02-20 01:49:29 UTC
(In reply to Alex Efros from comment #10)
> (In reply to Kent Fredric from comment #9)
> > But I should add, all of the above are far better than having a hosed system
> > because you updated something blindly which breaks installation of other
> > gentoo packages ;)
> 
> You mean this is the main reason why vendor_perl have higher priority than
> site_perl in @INC in Gentoo (which is actually the real root of discussed
> issue)?


No.

perl -V:sitelibexp
sitelibexp='/usr/local/lib64/perl5/5.20.2';

perl -V:vendorlibexp                                                   
vendorlibexp='/usr/lib64/perl5/vendor_perl/5.20.2';

perl -V:privlibexp                                                     
privlibexp='/usr/lib64/perl5/5.20.2';


  @INC:
    /etc/perl    # extra 
    /usr/local/lib64/perl5/5.20.2/x86_64-linux  # site arch 
    /usr/local/lib64/perl5/5.20.2               # site
    /usr/lib64/perl5/vendor_perl/5.20.2/x86_64-linux # vendor arch
    /usr/lib64/perl5/vendor_perl/5.20.2              # vendor
    /usr/local/lib64/perl5                      # extra
    /usr/lib64/perl5/vendor_perl/5.20.1/x86_64-linux # legacy vendor arch
    /usr/lib64/perl5/vendor_perl/5.20.1              # legacy vendor
    /usr/lib64/perl5/vendor_perl                     # probably a bug
    /usr/lib64/perl5/5.20.2/x86_64-linux       # private arch ( perl itself )
    /usr/lib64/perl5/5.20.2                    # private

site > vendor > core
Comment 12 Alex Efros 2015-02-20 02:31:09 UTC
(In reply to Kent Fredric from comment #11)
> site > vendor > core

Wow. Last time I've checked this was many years ago, site was in /usr/lib/perl5/site_perl/5.*/, not in /usr/local/lib/perl5/5.*/, and vendor_perl had higher priority than site_perl in Gentoo (and lower by default in perl and most other distro).

Thanks, looks like now we can use cpanm as root to avoid all issues mentioned above!
Comment 13 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2015-02-20 06:42:42 UTC
Converting this bug into a bump request because its a low-importance feature-enhancement that won't be a bug until something else happens in tree.

At least this way if somebody files a bump req for Moo they can just make it depend on this :)
Comment 14 Andreas K. Hüttel archtester gentoo-dev 2015-02-24 00:16:54 UTC
Bumped.