it works with version 1.10-r1 with USE=doc enabled. -r2/html/libudev’: No such file or directory /usr/bin/install -c -m 644 ./html/right.png /usr/bin/install: cannot create regular file ‘/var/tmp/portage/sys-fs/eudev-1.10-r2/image//usr/share/doc/eudev-1.10-r2/html/libudev’: No such file or directory /usr/bin/install -c -m 644 ./html/style.css /usr/bin/install: cannot create regular file ‘/var/tmp/portage/sys-fs/eudev-1.10-r2/image//usr/share/doc/eudev-1.10-r2/html/libudev’: No such file or directory /usr/bin/install -c -m 644 ./html/up-insensitive.png /usr/bin/install: cannot create regular file ‘/var/tmp/portage/sys-fs/eudev-1.10-r2/image//usr/share/doc/eudev-1.10-r2/html/libudev’: No such file or directory /usr/bin/install -c -m 644 ./html/up.png /usr/bin/install: cannot create regular file ‘/var/tmp/portage/sys-fs/eudev-1.10-r2/image//usr/share/doc/eudev-1.10-r2/html/libudev’: No such file or directory Use of uninitialized value $self in substitution (s///) at /usr/bin/gtkdoc-rebase line 214. Use of uninitialized value $self in substitution (s///) at /usr/bin/gtkdoc-rebase line 214. Can't open HTML directory /var/tmp/portage/sys-fs/eudev-1.10-r2/image//usr/share/doc/eudev-1.10-r2/html/libudev/: No such file or directory at /usr/bin/gtkdoc-rebase line 230. Makefile:767: recipe for target 'install-data-local' failed make[3]: *** [install-data-local] Error 2 make[3]: Leaving directory '/var/tmp/portage/sys-fs/eudev-1.10-r2/work/eudev-1.10-abi_x86_64.amd64/docs/libudev' Makefile:512: recipe for target 'install-am' failed make[2]: *** [install-am] Error 2 make[2]: Leaving directory '/var/tmp/portage/sys-fs/eudev-1.10-r2/work/eudev-1.10-abi_x86_64.amd64/docs/libudev' Makefile:397: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory '/var/tmp/portage/sys-fs/eudev-1.10-r2/work/eudev-1.10-abi_x86_64.amd64/docs' Makefile:448: recipe for target 'install-recursive' failed make: *** [install-recursive] Error 1 * ERROR: sys-fs/eudev-1.10-r2::gentoo failed (install phase): * emake failed * Reproducible: Always
Created attachment 384602 [details] full build log
checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes /bin/sh: /var/tmp/portage/sys-fs/eudev-1.10-r2/homedir/missing: No such file or directory configure: WARNING: 'missing' script is too old or missing checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk So somehow "homedir" leaks in, and then install-sh is set to a wrong value: Makefile:install_sh = ${SHELL} /var/tmp/portage/sys-fs/eudev-1.10-r2/homedir/install-sh And that, of course, breaks doc installation.
(In reply to Patrick Lauer from comment #2) > checking for a BSD-compatible install... /usr/bin/install -c > checking whether build environment is sane... yes > /bin/sh: /var/tmp/portage/sys-fs/eudev-1.10-r2/homedir/missing: No such file > or directory > configure: WARNING: 'missing' script is too old or missing > checking for a thread-safe mkdir -p... /bin/mkdir -p > checking for gawk... gawk > > > So somehow "homedir" leaks in, and then install-sh is set to a wrong value: > > Makefile:install_sh = ${SHELL} > /var/tmp/portage/sys-fs/eudev-1.10-r2/homedir/install-sh > > And that, of course, breaks doc installation. I can't seem to hit this, but it seems to be a result of unconditionally running eautoreconf. Can you test the follow patch which I'll just inline for convenience: --- eudev-1.10-r2.ebuild.orig 2014-09-13 16:34:55.378024344 +0000 +++ eudev-1.10-r2.ebuild 2014-09-13 16:35:18.519025638 +0000 @@ -110,12 +110,10 @@ epatch_user - if [[ ! -e configure ]]; then - if use doc; then - gtkdocize --docdir docs || die "gtkdocize failed" - else - echo 'EXTRA_DIST =' > docs/gtk-doc.make - fi + if use doc; then + gtkdocize --docdir docs || die "gtkdocize failed" + else + echo 'EXTRA_DIST =' > docs/gtk-doc.make fi eautoreconf }
Created attachment 384706 [details] build log with ebuild patched still have problem with the ebuild patched. eudev # diff -Nur eudev-1.10-r2.ebuild eudev-1.10-r3.ebuild --- eudev-1.10-r2.ebuild 2014-09-04 16:33:33.000000000 +0800 +++ eudev-1.10-r3.ebuild 2014-09-14 14:26:33.050690298 +0800 @@ -110,12 +110,10 @@ epatch_user - if [[ ! -e configure ]]; then - if use doc; then - gtkdocize --docdir docs || die "gtkdocize failed" - else - echo 'EXTRA_DIST =' > docs/gtk-doc.make - fi + if use doc; then + gtkdocize --docdir docs || die "gtkdocize failed" + else + echo 'EXTRA_DIST =' > docs/gtk-doc.make fi eautoreconf } /usr/bin/install: cannot create regular file ‘/var/tmp/portage/sys-fs/eudev-1.10-r3/image//usr/share/doc/eudev-1.10-r3/html/libudev’: No suc h file or directory /usr/bin/install -c -m 644 ./html/right.png /usr/bin/install: cannot create regular file ‘/var/tmp/portage/sys-fs/eudev-1.10-r3/image//usr/share/doc/eudev-1.10-r3/html/libudev’: No suc h file or directory /usr/bin/install -c -m 644 ./html/style.css /usr/bin/install: cannot create regular file ‘/var/tmp/portage/sys-fs/eudev-1.10-r3/image//usr/share/doc/eudev-1.10-r3/html/libudev’: No suc h file or directory /usr/bin/install -c -m 644 ./html/up-insensitive.png /usr/bin/install: cannot create regular file ‘/var/tmp/portage/sys-fs/eudev-1.10-r3/image//usr/share/doc/eudev-1.10-r3/html/libudev’: No suc h file or directory /usr/bin/install -c -m 644 ./html/up.png /usr/bin/install: cannot create regular file ‘/var/tmp/portage/sys-fs/eudev-1.10-r3/image//usr/share/doc/eudev-1.10-r3/html/libudev’: No suc h file or directory Use of uninitialized value $self in substitution (s///) at /usr/bin/gtkdoc-rebase line 214. Use of uninitialized value $self in substitution (s///) at /usr/bin/gtkdoc-rebase line 214. Can't open HTML directory /var/tmp/portage/sys-fs/eudev-1.10-r3/image//usr/share/doc/eudev-1.10-r3/html/libudev/: No such file or directory at /usr/bin/gtkdoc-rebase line 230. Makefile:793: recipe for target 'install-data-local' failed make[3]: *** [install-data-local] Error 2 make[3]: Leaving directory '/var/tmp/portage/sys-fs/eudev-1.10-r3/work/eudev-1.10-abi_x86_64.amd64/docs/libudev' Makefile:544: recipe for target 'install-am' failed make[2]: *** [install-am] Error 2 make[2]: Leaving directory '/var/tmp/portage/sys-fs/eudev-1.10-r3/work/eudev-1.10-abi_x86_64.amd64/docs/libudev' Makefile:397: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1
(In reply to Yixun Lan from comment #4) > Created attachment 384706 [details] > build log with ebuild patched > > still have problem with the ebuild patched. > > eudev # diff -Nur eudev-1.10-r2.ebuild eudev-1.10-r3.ebuild > --- eudev-1.10-r2.ebuild 2014-09-04 16:33:33.000000000 +0800 > +++ eudev-1.10-r3.ebuild 2014-09-14 14:26:33.050690298 +0800 > @@ -110,12 +110,10 @@ > > epatch_user > > - if [[ ! -e configure ]]; then > - if use doc; then > - gtkdocize --docdir docs || die "gtkdocize failed" > - else > - echo 'EXTRA_DIST =' > docs/gtk-doc.make > - fi > + if use doc; then > + gtkdocize --docdir docs || die "gtkdocize failed" > + else > + echo 'EXTRA_DIST =' > docs/gtk-doc.make > fi > eautoreconf > } > Irrespective of this problem, this is a correct patch to apply because if we're going to run autoreconf, we want to clobber docs/gtk-doc.make unless USE=doc otherwise we'll get docs built. I can't hit this no matter what I do so here's what's coming to mind: 1) Its the version of autoconf/automake that you're using. So can I get your `emerge --info =sys-fs/eudev-1.10-r1`. Here's what I have for autoconf/automake for comparison. sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.10.3, 1.11.6, 1.12.6, 1.13.4 Also, upload your configure file as generated after doing an `ebuild eudev-1.10-r2 prepare" That's what's throwing the error. 2) The uninitalized $self in gtkdoc-rebase is probably due to the above error. In case its not, what version of dev-util/gtk-doc-am are you using? gtk-doc-am is written in perl and depends on perl-core/Getopt-Long. (The ebuild for gtk-doc-am should probably have that in there. I'll open up a separate bug after we clear this one.) You may be missing this or it may be you need to run `perl-cleaner --all` 3) If worst comes to worst, I'll change stuff upstream so we never need to autoreconf. Thanks for your patience in hleping debug this!
(In reply to Anthony Basile from comment #5) > > Irrespective of this problem, this is a correct patch to apply because if > we're going to run autoreconf, we want to clobber docs/gtk-doc.make unless > USE=doc otherwise we'll get docs built. > > I can't hit this no matter what I do so here's what's coming to mind: > > 1) Its the version of autoconf/automake that you're using. So can I get > your `emerge --info =sys-fs/eudev-1.10-r1`. Here's what I have for > autoconf/automake for comparison. > > sys-devel/autoconf: 2.13, 2.69 > sys-devel/automake: 1.10.3, 1.11.6, 1.12.6, 1.13.4 > seems the problem relates to automake-1.14.1 (haven't investigate too deeply..) and force it use automake-1.13 solve my problem[1] ~ # qlist -ICv autoconf sys-devel/autoconf-2.13 sys-devel/autoconf-2.69 sys-devel/autoconf-wrapper-13 ~ # qlist -ICv automake sys-devel/automake-1.11.6 sys-devel/automake-1.12.6 sys-devel/automake-1.13.4 sys-devel/automake-1.14.1 sys-devel/automake-wrapper-9 [1] ebuild patch, plus previous patch from comment 3 --- eudev-1.10-r2.ebuild 2014-09-04 16:33:33.000000000 +0800 +++ eudev-1.10-r3.ebuild 2014-09-15 09:42:56.153699745 +0800 @@ -5,6 +5,7 @@ EAPI="5" KV_min=2.6.39 +WANT_AUTOMAKE=1.13 inherit autotools eutils linux-info multilib multilib-minimal user > Also, upload your configure file as generated after doing an `ebuild > eudev-1.10-r2 prepare" That's what's throwing the error. > > > 2) The uninitalized $self in gtkdoc-rebase is probably due to the above > error. In case its not, what version of dev-util/gtk-doc-am are you using? > > gtk-doc-am is written in perl and depends on perl-core/Getopt-Long. (The > ebuild for gtk-doc-am should probably have that in there. I'll open up a > separate bug after we clear this one.) You may be missing this or it may be > you need to run `perl-cleaner --all` > I can re-produce this with automake-1.14.1 installed on my two system (one with gtk-doc-am-1.21, another with 1.20) > > 3) If worst comes to worst, I'll change stuff upstream so we never need to > autoreconf. > > Thanks for your patience in hleping debug this! thanks for investigating this.
Created attachment 384760 [details] emerge info (with the patched 1.10-r3)
Created attachment 384762 [details] generated configure file with ebuild patched from comment 3
(In reply to Yixun Lan from comment #6) > (In reply to Anthony Basile from comment #5) > > > > Irrespective of this problem, this is a correct patch to apply because if > > we're going to run autoreconf, we want to clobber docs/gtk-doc.make unless > > USE=doc otherwise we'll get docs built. > > > > I can't hit this no matter what I do so here's what's coming to mind: > > > > 1) Its the version of autoconf/automake that you're using. So can I get > > your `emerge --info =sys-fs/eudev-1.10-r1`. Here's what I have for > > autoconf/automake for comparison. > > > > sys-devel/autoconf: 2.13, 2.69 > > sys-devel/automake: 1.10.3, 1.11.6, 1.12.6, 1.13.4 > > > > seems the problem relates to automake-1.14.1 (haven't investigate too > deeply..) > and force it use automake-1.13 solve my problem[1] > > ~ # qlist -ICv autoconf > sys-devel/autoconf-2.13 > sys-devel/autoconf-2.69 > sys-devel/autoconf-wrapper-13 > ~ # qlist -ICv automake > sys-devel/automake-1.11.6 > sys-devel/automake-1.12.6 > sys-devel/automake-1.13.4 > sys-devel/automake-1.14.1 > sys-devel/automake-wrapper-9 > > > [1] ebuild patch, plus previous patch from comment 3 > --- eudev-1.10-r2.ebuild 2014-09-04 16:33:33.000000000 +0800 > +++ eudev-1.10-r3.ebuild 2014-09-15 09:42:56.153699745 +0800 > @@ -5,6 +5,7 @@ > EAPI="5" > > KV_min=2.6.39 > +WANT_AUTOMAKE=1.13 > > inherit autotools eutils linux-info multilib multilib-minimal user > > You got it. So, I've gone this route for the fix because its safest and I want to stabilize eudev-1.10-r2 soon. However the better approach might be to not force automake 1.13 but rather do AM_OPTS=--force-missing to for replace the missing files. Since the 'missing' script is already there, it doesn't get replaced on eautoreconf and we get the mixed 1.13/1.14 problem. I'm going to install 1.14 myself, and hack the eclass so that it adds --force-missing by default and see if that works, then I'll email gentoo-dev@ and see if everyone's okay with the change to autotools.eclass. So don't close this bug just yet.
(In reply to Anthony Basile from comment #9) > (In reply to Yixun Lan from comment #6) > > (In reply to Anthony Basile from comment #5) > > > > > > Irrespective of this problem, this is a correct patch to apply because if > > > we're going to run autoreconf, we want to clobber docs/gtk-doc.make unless > > > USE=doc otherwise we'll get docs built. > > > > > > I can't hit this no matter what I do so here's what's coming to mind: > > > > > > 1) Its the version of autoconf/automake that you're using. So can I get > > > your `emerge --info =sys-fs/eudev-1.10-r1`. Here's what I have for > > > autoconf/automake for comparison. > > > > > > sys-devel/autoconf: 2.13, 2.69 > > > sys-devel/automake: 1.10.3, 1.11.6, 1.12.6, 1.13.4 > > > > > > > seems the problem relates to automake-1.14.1 (haven't investigate too > > deeply..) > > and force it use automake-1.13 solve my problem[1] > > > > ~ # qlist -ICv autoconf > > sys-devel/autoconf-2.13 > > sys-devel/autoconf-2.69 > > sys-devel/autoconf-wrapper-13 > > ~ # qlist -ICv automake > > sys-devel/automake-1.11.6 > > sys-devel/automake-1.12.6 > > sys-devel/automake-1.13.4 > > sys-devel/automake-1.14.1 > > sys-devel/automake-wrapper-9 > > > > > > [1] ebuild patch, plus previous patch from comment 3 > > --- eudev-1.10-r2.ebuild 2014-09-04 16:33:33.000000000 +0800 > > +++ eudev-1.10-r3.ebuild 2014-09-15 09:42:56.153699745 +0800 > > @@ -5,6 +5,7 @@ > > EAPI="5" > > > > KV_min=2.6.39 > > +WANT_AUTOMAKE=1.13 > > > > inherit autotools eutils linux-info multilib multilib-minimal user > > > > > > You got it. So, I've gone this route for the fix because its safest and I > want to stabilize eudev-1.10-r2 soon. However the better approach might be > to not force automake 1.13 but rather do AM_OPTS=--force-missing to for > replace the missing files. Since the 'missing' script is already there, it > doesn't get replaced on eautoreconf and we get the mixed 1.13/1.14 problem. > > I'm going to install 1.14 myself, and hack the eclass so that it adds > --force-missing by default and see if that works, then I'll email > gentoo-dev@ and see if everyone's okay with the change to autotools.eclass. > So don't close this bug just yet. Nope, this isn't going to work. There are too many other differences. We'll just have to wait till automake 1.14 is stable and then deal.