Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
problem emerging libtool....[SOLVED]
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
mikefot
l33t
l33t


Joined: 19 Nov 2014
Posts: 709

PostPosted: Fri Apr 27, 2018 10:07 am    Post subject: problem emerging libtool....[SOLVED] Reply with quote

Dear All,

In a recent world update (I am running amd64 testing on an amd kaveri box)

libtool has failed to emerge:

See here:

Code:
>>> Verifying ebuild manifests

>>> Emerging (1 of 1) sys-devel/libtool-2.4.6-r5::gentoo
 * libtool-2.4.6.tar.xz BLAKE2B SHA512 size ;-) ...                                                                                                                                                                        [ ok ]
>>> Unpacking source...
>>> Unpacking libtool-2.4.6.tar.xz to /var/tmp/portage/sys-devel/libtool-2.4.6-r5/work
>>> Source unpacked in /var/tmp/portage/sys-devel/libtool-2.4.6-r5/work
>>> Preparing source in /var/tmp/portage/sys-devel/libtool-2.4.6-r5/work/libtool-2.4.6 ...
 * ERROR: sys-devel/libtool-2.4.6-r5::gentoo failed (prepare phase):
 *   eapply_user (or default) must be called in src_prepare()!
 *
 * Call stack:
 *            ebuild.sh, line  789:  Called __ebuild_main 'prepare'
 *   phase-functions.sh, line 1058:  Called __dyn_prepare
 *   phase-functions.sh, line  385:  Called die
 * The specific snippet of code:
 *         die "eapply_user (or default) must be called in src_prepare()!"
 *
 * If you need support, post the output of `emerge --info '=sys-devel/libtool-2.4.6-r5::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sys-devel/libtool-2.4.6-r5::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/sys-devel/libtool-2.4.6-r5/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-devel/libtool-2.4.6-r5/temp/environment'.
 * Working directory: '/var/tmp/portage/sys-devel/libtool-2.4.6-r5/work/libtool-2.4.6'
 * S: '/var/tmp/portage/sys-devel/libtool-2.4.6-r5/work/libtool-2.4.6'

>>> Failed to emerge sys-devel/libtool-2.4.6-r5, Log file:

>>>  '/var/tmp/portage/sys-devel/libtool-2.4.6-r5/temp/build.log'


The log file is posted here:

Code:
djt /etc/portage # wgetpaste /var/tmp/portage/sys-devel/libtool-2.4.6-r5/temp/build.log
Your paste can be seen here:
https://paste.pound-python.org/show/rW6oLnjYgpCrkxtajnrY/

The output of

emerge --info '=sys-devel/libtool-2.4.6-r5::gentoo'

is posted here:

https://pastebin.com/G8bB0sdE

I also ran emerge pretend on the package:

Code:
djt /etc/portage # emerge -pqv '=sys-devel/libtool-2.4.6-r5::gentoo'
[ebuild     U ] sys-devel/libtool-2.4.6-r5 [2.4.6-r4] USE="vanilla"

!!! The following installed packages are masked:
- xfce-extra/xfce-theme-manager-0.3.6::gentoo (masked by: package.mask)
/usr/portage/profiles/package.mask:
# Jason Zaman <perfinion@gentoo.org> (08 Apr 2018)
# Dead upstream, for an old version of Xfce
# Masked for removal in 30 days.

For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.

djt /etc/portage #


Perhaps I need an extra use flag here.

Comments appreciated.


Regards

MF


Last edited by mikefot on Sat Apr 28, 2018 12:04 pm; edited 1 time in total
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Fri Apr 27, 2018 10:54 am    Post subject: Reply with quote

It's an ebuild bug.
What you can do?
1/ report the bug
2/ fix the ebuild yourself
* remove "default" in src_install() in the ebuild
* run ebuild libtool-2.4.6-r5.ebuild manifest
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31021
Location: here

PostPosted: Fri Apr 27, 2018 11:16 am    Post subject: Reply with quote

krinn wrote:
* remove "default" in src_install() in the ebuild

You are sure? I think that he should add default in src_prepare
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Fri Apr 27, 2018 11:22 am    Post subject: Reply with quote

fedeliallalinea wrote:
krinn wrote:
* remove "default" in src_install() in the ebuild

You are sure? I think that he should add default in src_prepare

From packages gentoo, you can see it "default" appears in src_prepare and src_install

and the error message is complaining that "default" should only appears in src_prepare.

hence my: remove the one from src_install
check line 71 and 118 -> https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/libtool/libtool-2.4.6-r5.ebuild
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31021
Location: here

PostPosted: Fri Apr 27, 2018 11:39 am    Post subject: Reply with quote

Code:
die "eapply_user (or default) must be called in src_prepare()!"

No message tell that in src_prepare should be called eapply_user (from EAPI 6 is mandatory calling it) and you do it or calling eapply_user function or calling default that has eapply_user included.
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Fri Apr 27, 2018 11:44 am    Post subject: Reply with quote

fedeliallalinea
Code:
emerge coffee

;)
Back to top
View user's profile Send private message
mikefot
l33t
l33t


Joined: 19 Nov 2014
Posts: 709

PostPosted: Fri Apr 27, 2018 12:20 pm    Post subject: Reply with quote

Many thanks for the comments and suggestions here.

I have a couple of dumb questions.

The first one is this:

In what local directory on my install here is the ebuild file that I am trying to compile likely to reside?

The second one is:

I looked at the Bugzilla page for inspiration on filing an ebuild bug correctly here:

https://wiki.gentoo.org/wiki/Bugzilla/Bug_report_guide

It says that the Bugzilla guide is for Mozilla browser bugs as far as I can see not gentoo bugs.

Where exactly do you file the gentoo ebuild bug report itself?

Do you upload it to a website?

Comments appreciated.

Regards

MF

PS Wait a minute I think I have found the gentoo bug website :

https://bugs.gentoo.org/

PPS I have found the two lines with "default" written in the code in the web link to the ebuild that krinn helpfully specified.

But surely in reality I would have to edit a copy of the file locally on my PC here and comment out these lines and then run the
ebuild test command you specify to look for the bug and fix it here?

I have posted the bug as best I can here:

https://bugs.gentoo.org/654198

Regards

MF


Last edited by mikefot on Fri Apr 27, 2018 1:07 pm; edited 1 time in total
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Fri Apr 27, 2018 12:58 pm    Post subject: Reply with quote

Code:
sed -i '118d' /usr/portage/sys-devel/libtool/libtool-2.4.6-r5.ebuild
ebuild /usr/portage/sys-devel/libtool/libtool-2.4.6-r5.ebuild manifest

the "sed" is just delete line 118 (something you can also have done just with nano)
the "ebuild" is to tell portage to rebuild manifest for the ebuild (because the sed edit change its content).

that's not really the "good" way of doing things, because the changes will be lost on next --sync, but i think this "tiny" bug will be catch fast (specially if you report it :D) and will be fix, and on next --sync the fixed ebuild will replace your fixed version ; all good.

the proper way should be copy the ebuild in your local overlay, but you either need to emerge it from your local overlay (emerge =...-r5::localoverlayname) or revbump it to -r6, hinting portage to use that version instead.
so for such "tiny" issue, local overlay will bore you more than just editing the one from the tree with hope next --sync will get fixed version.

yep it's in bugs.gentoo.org, i don't think any dev will need more hint than just pointing him the error to fix it. it could be even already fix if the dev has tried emerge it himself.
Back to top
View user's profile Send private message
mikefot
l33t
l33t


Joined: 19 Nov 2014
Posts: 709

PostPosted: Fri Apr 27, 2018 1:11 pm    Post subject: Reply with quote

Many thanks again for the comments and quick fix suggestion.

This sed command thing is quite clever.

I have posted the bug and as you suggest this could result in a quick fix and updated version of the libtool ebuild.

Then I can fetch it and emerge it and the problem should be fixed.

Cheers

MF

PS

I think this could be a fix for the ebuild:

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=17f734acf0c58267fce1a8fc89cdfab876c33068

Regards

MF

PPS

ie the use flag vanilla fixes it somehow.
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Fri Apr 27, 2018 2:14 pm    Post subject: Reply with quote

this fix a different issue.
this fix is to make sure user with vanilla useflag will still get patches apply for them too, while previous ebuild version was just exiting if user use vanilla, making the "default" never run, and patches never use.
i must say i'm a bit surprise a dev as seen this error while not seen the other more obvious one.

for me the ebuild is still buggy:
* your issue remains
* ebuild also exhibit a bug for prefix users using "vanilla" (because prefix user using "vanilla" will exit because of vanilla useflag before the ebuild reach the special part for prefix users) ; i doubt prefix users couldn't use vanilla useflag.
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31021
Location: here

PostPosted: Fri Apr 27, 2018 2:31 pm    Post subject: Reply with quote

krinn wrote:
this fix a different issue.
this fix is to make sure user with vanilla useflag will still get patches apply for them too, while previous ebuild version was just exiting if user use vanilla, making the "default" never run, and patches never use.
i must say i'm a bit surprise a dev as seen this error while not seen the other more obvious one.

But it's the only error. Indeed mikefot enables vanilla use flag and for this he has catch the error.
I don't undestand because you say
krinn wrote:
and the error message is complaining that "default" should only appears in src_prepare.

this is wrong, default can be called in src_install
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
mikefot
l33t
l33t


Joined: 19 Nov 2014
Posts: 709

PostPosted: Fri Apr 27, 2018 2:36 pm    Post subject: Reply with quote

Many thanks for the comments and suggestions.

When I ran emerge pretend (see above) for libtool

it does suggest running
Code:
USE=vanilla
........

I will try this and see what happens.

Regds

MF

PS I did
Code:
USE = "vanilla"
; it did add it to the make.conf file.

I then ran
Code:
emerge libtool
but it still crashed.

Cheers

MF

PPS

If you apply it as a patch you would make a file.patch with this code in it:

Code:
index 710968a..0146056 100644
--- a/sys-devel/libtool/libtool-2.4.6-r5.ebuild
+++ b/sys-devel/libtool/libtool-2.4.6-r5.ebuild
@@ -66,9 +66,12 @@ src_prepare() {
       )
    fi
 
-   use vanilla && return 0
-
-   default
+   if use vanilla ; then
+      eapply_user
+      return 0
+   else
+      default
+   fi
 
    if use prefix ; then
       # seems that libtool has to know about EPREFIX a little bit


You then do what it says on this web page https://wiki.gentoo.org/wiki//etc/portage/patches
I assume:

Quote:
For testing, step into the package's ebuild directory and run the ebuild pcmanfm-1.2.5.ebuild clean prepare:


except it will be the ebuild for libtool of course and it will go into the patch directory and add the patch in automatically.

But it may still not work.

Cheers

MF


Last edited by mikefot on Fri Apr 27, 2018 3:04 pm; edited 1 time in total
Back to top
View user's profile Send private message
Polynomial-C
Retired Dev
Retired Dev


Joined: 01 Jun 2003
Posts: 1432
Location: Germany

PostPosted: Fri Apr 27, 2018 2:54 pm    Post subject: Reply with quote

This has been fixed meanwhile...
_________________
The manual said "Requires Windows10 or better" so I installed GNU/Linux...

my portage overlay

Need a stage1 tarball? (Unofficial builds)
Back to top
View user's profile Send private message
mikefot
l33t
l33t


Joined: 19 Nov 2014
Posts: 709

PostPosted: Fri Apr 27, 2018 3:08 pm    Post subject: Reply with quote

OK, maybe it will work....

Thanks for creating the patch.

Regards

MF
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Fri Apr 27, 2018 3:21 pm    Post subject: Reply with quote

fedeliallalinea wrote:
I don't undestand because you say
krinn wrote:
and the error message is complaining that "default" should only appears in src_prepare.

this is wrong, default can be called in src_install


Because i made a shortcut myself, that could be wrong, Polynomial-C will be able to tell us ;)

The message clearly state eapply_user (or default) must be called in src_prepare()! because of vanilla "default" that appears in src_prepare wasn't call, boom
But "default" also appears in src_install, which i shortcut to "use default in src_prepare only".
It's actually possible that it might be valid to call "default" in src_prepare and once this has been made, call again "default" from elsewhere.
If this is the case, the error message is a bit misleading itself, it would had been better made with a "eapply_user (or default) must be called in src_prepare() before calling it again"

So for me, i don't see why "default" is called in src_install

Polynomial will tell us too about the case for prefix users using +vanilla, because if prefix users could use +vanilla, and prefix users need the hack seen in the ebuild, chance the hack for +vanilla for prefix users is also need ; but the ebuild will not apply it, as with vanilla, it will return 0 pior reaching the hack (the added eapply "${FILESDIR}"/${PN}-2.2.10-eprefix.patch and eprefixify m4/libtool.m4)
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31021
Location: here

PostPosted: Fri Apr 27, 2018 3:39 pm    Post subject: Reply with quote

krinn wrote:
So for me, i don't see why "default" is called in src_install

Because with default you call default src_install, for EAPI 6 is
Code:
src_install() {
   if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]] ; then
      emake DESTDIR="${D}" install
   fi
   einstalldocs
}

_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
mikefot
l33t
l33t


Joined: 19 Nov 2014
Posts: 709

PostPosted: Fri Apr 27, 2018 3:43 pm    Post subject: Reply with quote

Dear All,

I tried running the ebuild having made a patch file for the libtool ebuild using the recipe provided by polynomial:

Code:
djt /etc/portage/patches/libtool # pwd
/etc/portage/patches/libtool
djt /etc/portage/patches/libtool # ebuild sys-devel/libtool/libtool-2.4.6-r5.ebuild clean prepare
Appending /etc/portage/patches/libtool to PORTDIR_OVERLAY...
!!! Repository 'x-libtool' is missing masters attribute in '/etc/portage/patches/libtool/metadata/layout.conf'
!!! Set 'masters = gentoo' in this file for future compatibility
ebuild: /etc/portage/patches/libtool/sys-devel/libtool/libtool-2.4.6-r5.ebuild: does not exist
djt /etc/portage/patches/libtool #


I am not sure exactly what didn't work here.....

I thought my gentoo install would sniff out and fetch a copy of the libtool ebuild file and then compile it and
add the patch in.

But it has not worked.

Comments appreciated.

Regards

MF
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Fri Apr 27, 2018 4:00 pm    Post subject: Reply with quote

fedeliallalinea wrote:
Because with default you call default src_install, for EAPI 6 is

Ah i could still be wrong, but i think we're not speaking about the same thing :)
you are speaking about "default functions set in src_install", while i'm speaking about the function name "default" (as it appears in original ebuild at line 71 and 118)
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Fri Apr 27, 2018 4:11 pm    Post subject: Reply with quote

mikefot: patches couldn't be apply to any ebuild ; it's a chicken/egg problem.
ebuild can patch source file for the program (libtool), and do that if they are told to do so inside them.

i think you are trying to add a patch to an ebuild that will patch the ebuild itself.
if you want use the patch provide by polymonial-C, you must use "patch" (the program from /usr/bin/patch) to apply that patch to your ebuild ; you can also just download the "patched ebuild" directly (https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-devel/libtool/libtool-2.4.6-r5.ebuild?id=17f734acf0c58267fce1a8fc89cdfab876c33068), which would be easier, or as Polynomial-C has commit it already, just emerge --sync and you will get updated version.
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Fri Apr 27, 2018 4:13 pm    Post subject: Reply with quote

I'll report anyone that will push this "tiny" issue into page 2!!! :D
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31021
Location: here

PostPosted: Fri Apr 27, 2018 4:33 pm    Post subject: Reply with quote

krinn wrote:
Ah i could still be wrong, but i think we're not speaking about the same thing :)
you are speaking about "default functions set in src_install", while i'm speaking about the function name "default" (as it appears in original ebuild at line 71 and 118)

If you call default in any phase portage call the default function. Sorry but I don't understand your problem :D (blame of my lack of knowledge of English)
https://devmanual.gentoo.org/ebuild-writing/eapi/index.html wrote:

Default Phase Functions

The default pkg_nofetch and src_* phase functions are now accessible via a function having a name that begins with default_ and ends with the respective phase function name. For example, a call to a function with the name default_src_compile is equivalent to a call to the default src_compile implementation.

The default phase functions are:

default_pkg_nofetch
default_src_unpack
default_src_prepare
default_src_configure
default_src_compile
default_src_test

Default Phase Function Alias

A function named "default" is redefined for each phase so that it will call the default_* function corresponding to the current phase. For example, a call to the function named "default" during the src_compile phase is equivalent to a call to the function named default_src_compile.

_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
mikefot
l33t
l33t


Joined: 19 Nov 2014
Posts: 709

PostPosted: Fri Apr 27, 2018 4:36 pm    Post subject: Reply with quote

Many thanks for the advice here.

I will run eix-sync again to get the updated ebuild and install it.......

As you say there is no need to make a mountain out of a mole hill here.

Regards

MF
Back to top
View user's profile Send private message
P.Kosunen
Guru
Guru


Joined: 21 Nov 2005
Posts: 309
Location: Finland

PostPosted: Fri Apr 27, 2018 4:39 pm    Post subject: Reply with quote

fedeliallalinea wrote:
If you call default in any phase portage call the default function.


OT: Is this documented somewhere, when i have to and when not to call it?
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Fri Apr 27, 2018 4:47 pm    Post subject: Reply with quote

fedeliallalinea wrote:
If you call default in any phase portage call the default function. Sorry but I don't understand your problem :D (blame of my lack of knowledge of English)
Default Phase Function Alias

I see the light now knowing default is an alias :)
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 31021
Location: here

PostPosted: Fri Apr 27, 2018 5:05 pm    Post subject: Reply with quote

P.Kosunen wrote:
OT: Is this documented somewhere, when i have to and when not to call it?

You call if you want run the default installation, let us take the example src_install
Code:
src_install() {
   if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
      emake DESTDIR="${D}" install
   fi
   einstalldocs
}

if your package have a makefile you can run default and then manage things, example
Code:
src_install() {
   default
   .... other things ...
}

if you don't need make other manipulations you can also not add src_install in your ebuild because portage tell for you default_src_install.
In binary package default isn't called because in src_install you should only move compiled file in correct path.
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum