Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 522606 - sys-fs/eudev-1.10-r2: fail to build with USE="doc" enabled
Summary: sys-fs/eudev-1.10-r2: fail to build with USE="doc" enabled
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: eudev team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-09-12 01:56 UTC by Yixun Lan
Modified: 2014-09-15 20:52 UTC (History)
0 users

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


Attachments
full build log (build.log.xz,10.37 KB, application/x-xz)
2014-09-12 02:02 UTC, Yixun Lan
Details
build log with ebuild patched (build.log.xz,11.21 KB, application/x-xz)
2014-09-14 06:41 UTC, Yixun Lan
Details
emerge info (with the patched 1.10-r3) (emerge_info.txt,5.01 KB, text/plain)
2014-09-15 01:57 UTC, Yixun Lan
Details
generated configure file with ebuild patched from comment 3 (configure,662.54 KB, application/x-shellscript)
2014-09-15 01:59 UTC, Yixun Lan
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Yixun Lan archtester gentoo-dev 2014-09-12 01:56:44 UTC
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
Comment 1 Yixun Lan archtester gentoo-dev 2014-09-12 02:02:55 UTC
Created attachment 384602 [details]
full build log
Comment 2 Patrick Lauer gentoo-dev 2014-09-12 02:59:29 UTC
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.
Comment 3 Anthony Basile gentoo-dev 2014-09-13 16:38:51 UTC
(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
 }
Comment 4 Yixun Lan archtester gentoo-dev 2014-09-14 06:41:02 UTC
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
Comment 5 Anthony Basile gentoo-dev 2014-09-14 15:05:35 UTC
(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!
Comment 6 Yixun Lan archtester gentoo-dev 2014-09-15 01:53:25 UTC
(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.
Comment 7 Yixun Lan archtester gentoo-dev 2014-09-15 01:57:37 UTC
Created attachment 384760 [details]
emerge info (with the patched 1.10-r3)
Comment 8 Yixun Lan archtester gentoo-dev 2014-09-15 01:59:27 UTC
Created attachment 384762 [details]
generated configure file with ebuild patched from comment 3
Comment 9 Anthony Basile gentoo-dev 2014-09-15 11:08:11 UTC
(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.
Comment 10 Anthony Basile gentoo-dev 2014-09-15 20:52:22 UTC
(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.