aMule Forum

English => aMule Help => Topic started by: OldFrog on March 16, 2005, 07:31:42 PM

Title: Trouble building CVS for Mandrake
Post by: OldFrog on March 16, 2005, 07:31:42 PM
I use aMule on Mandrake 10.1 and I get the followingg error when using the current specfile :
Failed build dependencies: krb5-devel >= 1.3.1 is needed by aMule-CVS-20050316


Actually, I have the following installed :

libkrb51-devel-1.3-6.4.100mdk
libkrb51-1.3-6.4.100mdk


Running rpmbuild -ta aMule-CVS-2005mmdd.tar.bz2 --nodeps did the trick. ;)
Title: Re: Trouble building CVS for Mandrake
Post by: GonoszTopi on March 16, 2005, 11:26:21 PM
AFAIK the spec file was originally created for RH (FC) systems. It seems that they have different pacakage names than Mdk.
Title: Re: Trouble building CVS for Mandrake
Post by: phoenix on March 17, 2005, 02:44:42 AM
OldFrog,

Please, just for my curiosity, post the result of
$ $ rpm -q --provides libkrb5-devel

Cheers!
Title: Re: Trouble building CVS for Mandrake
Post by: OldFrog on March 17, 2005, 07:30:12 PM
Here you are :


Quote

$  rpm -q --provides libkrb51-devel
krb-devel = 1.3-6.4.100mdk
krb5-devel = 1.3-6.4.100mdk
devel(libdes425)
devel(libgssapi_krb5)
devel(libgssrpc)
devel(libk5crypto)
devel(libkadm5clnt)
devel(libkadm5srv)
devel(libkdb5)
devel(libkrb4)
devel(libkrb5)
libkrb51-devel = 1.3-6.4.100mdk

Title: Re: Trouble building CVS for Mandrake
Post by: phoenix on March 17, 2005, 10:01:52 PM
The different names should not be a problem as long as the rpms provided the same thing. But in my opinion, the problem is that Mandrake is using a different numbering system. aMule requires krb5-devel >= 1.3.1, Mandrake rpm provides krb5-devel = 1.3-6.4.100mdk. Now how do you compare those two? Probably rpm is ignoring what is after the dash and considering it a release string. So what Mandrake is actually providing is probably krb5-devel = 1.3, while aMule is requiring krb5-devel >= 1.3.1.

OldFrog, if you are a curious person :) you could change that line in aMule spec:

From:
BuildPreReq: wxGTK-devel >= 2.4.2, krb5-devel >= 1.3.1, grep, curl-devel >= 7.10.6, automake >= 1.7

To:
BuildPreReq: wxGTK-devel >= 2.4.2, krb5-devel >= 1.3, grep, curl-devel >= 7.10.6, automake >= 1.7

And see if it works. Do it like this:
$ tar zxvf aMule-CVS-20050317.tar.bz2
$ vi amule-cvs/aMule-CVS.spec
... edit the line...
$ tar zcvf aMule-CVS-20050317.tar.bz2 amule-cvs
$ rpmbuild -ta aMule-CVS-20050317.tar.bz2

Just scientific curiosity :) I don't know who has put this requirement in aMule, but maybe it could be lowered to krb5-devel >= 1.3. Anyone knows something about this? Why aMule requires kerberos?

Cheers!
Title: Re: Trouble building CVS for Mandrake
Post by: reeky on March 18, 2005, 04:19:29 PM
same error on suse 9.2 ->
Failed build dependencies: krb5-devel >= 1.3.1 is needed by aMule-CVS-20050318

(using the --nodeps flag the process ends like this http://forum.amule.org/thread.php?threadid=5487 so i'll wait till tomorrow).

the problem is: suse (and packager) doesn't provide a package called krb5-devel (nor krb5) so what are the files in that package needed by amule? maybe are in another rpm?

thanx
Title: Re: Trouble building CVS for Mandrake
Post by: phoenix on March 19, 2005, 12:25:57 AM
reeky,

Provides need not to be a package name. In Mandrake's case, it does provide krb5-devel indeed, look at this:
Quote
Originally posted by OldFrog
$ rpm -q --provides libkrb51-devel
krb-devel = 1.3-6.4.100mdk
krb5-devel = 1.3-6.4.100mdk
devel(libdes425)
devel(libgssapi_krb5)
devel(libgssrpc)
devel(libk5crypto)
devel(libkadm5clnt)
devel(libkadm5srv)
devel(libkdb5)
devel(libkrb4)
devel(libkrb5)
libkrb51-devel = 1.3-6.4.100mdk

My guess is that rpm is interpreting krb5-devel = 1.3-6.4.100mdk as krb5-devel = 1.3, so it will not be satisfied because this is less than 1.3.1. If anyone can confirm this, I can change it to a lower value so that it works for Mandrake.

Cheers!
Title: Re: Trouble building CVS for Mandrake
Post by: reeky on March 19, 2005, 11:13:38 AM
suse doesn't use kerberos but heimdal (free implementation of kerberos), so i have to install heimdal-devel and keep using --nodeps flag? if right, this is not a solution coz i won't be warned about other broken dependencies (if any) :(

bye
Title: Re: Trouble building CVS for Mandrake
Post by: snac on March 19, 2005, 11:54:20 AM
Quote
Originally posted by reeky
suse doesn't use kerberos but heimdal (free implementation of kerberos), so i have to install heimdal-devel and keep using --nodeps flag? if right, this is not a solution coz i won't be warned about other broken dependencies (if any) :(
bye

Right partially.
[list=1]
Title: Re: Trouble building CVS for Mandrake
Post by: phoenix on March 19, 2005, 03:07:58 PM
Quote
Originally posted by reeky
suse doesn't use kerberos but heimdal (free implementation of kerberos), so i have to install heimdal-devel and keep using --nodeps flag? if right, this is not a solution coz i won't be warned about other broken dependencies (if any) :(

bye
reeky,
Please post:
$ rpm -q --provides heimdal-tools-devel

You can repeat this command for all heimdal rpms and see if any provides krb5-devel.
Title: Re: Trouble building CVS for Mandrake
Post by: reeky on March 19, 2005, 11:42:31 PM
Quote
Originally posted by phoenix
reeky,
Please post:
$ rpm -q --provides heimdal-tools-devel

You can repeat this command for all heimdal rpms and see if any provides krb5-devel.

here it is ->

reek@linux:~> rpm -q --provides heimdal
heimdal = 0.6.2-8

reek@linux:~> rpm -q --provides heimdal-devel
heimdal-devel = 0.6.2-8.1

reek@linux:~> rpm -q --provides heimdal-lib
libasn1.so.6
libgssapi.so.1
libkafs.so.0
libkrb5.so.17
libotp.so.0
libroken.so.16
libsl.so.0
heimdal-lib = 0.6.2-8

reek@linux:~> rpm -q --provides heimdal-tools
libhdb.so.7
libkadm5clnt.so.4
libkadm5srv.so.7
heimdal-tools = 0.6.2-8

reek@linux:~> rpm -q --provides heimdal-tools-devel
heimdal-tools-devel = 0.6.2-8.1

reek@linux:~> rpm -q --provides heimdal-x11
heimdal-x11 = 0.6.2-8


and just to quote myself... :)

Quote
Originally posted by reeky
suse (and packager) doesn't provide a package called krb5-devel (nor krb5) so what are the files in that package needed by amule? maybe are in another rpm?

so the kerberos related files needed by amule are in one of the heimdal rpms?

bye

ps: let me quote you phoenix... :D

Quote
Originally posted by phoenix
Why aMule requires kerberos?
Title: Re: Trouble building CVS for Mandrake
Post by: phoenix on March 20, 2005, 12:54:32 AM
reeky,

You certainly does not expect me to answer the question I made at first, do you? :P

You see, I am not the original packager, I was hoping someone else could answer that for me. I am not willing to go after the actual prerequisites for that, I'm sorry, I'm too lazy at the moment :)

This heimdal stuff you posted is not very encouraging... The correct solutions seems to be to have separate spec files for each distro, but then, how do we tell rpmbuild to use the correct spec?
Title: Re: Trouble building CVS for Mandrake
Post by: reeky on March 20, 2005, 12:12:52 PM
maybe this is not the right way and it's a bit stupid too but...

well... someone said amule requires krb5-devel and this someone used fedora.
being this a -devel package some part of it should be included in amule code so i took this page as example http://rpm.pbone.net/index.php3/stat/6/idpl/1203124 , i extracted the amule archive and made a quick search using the "file search -> find text in files". seems that the only result is "des.h" but because it finds "ECcodes.h".

in any case... i removed krb5 from the spec file and built the rpm (yeah! today cvs is not broken!!! :P ;) ) ; now amule is running and seems to work fine

bye
Title: Re: Trouble building CVS for Mandrake
Post by: phoenix on March 22, 2005, 02:58:48 AM
reeky,

In fact, I think I can remove that dependency. I have stopped beeing lazy and went to find what was the real dependency and it is on curl-devel. That way, curl-devel will set its own dependency, be it on heimdal or kerberos. Look:

$ apt-get remove krb5-devel
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  cups-devel curl-devel krb5-devel openssl-devel

So, if we set curl-devel dependency only, this should no longer be an issue.

EDIT: Done, krb5-libs and krb5-devel are no longer on the spec file. curl-lib and curl-devel are enough.
Title: Re: Trouble building CVS for Mandrake
Post by: reeky on March 22, 2005, 10:42:38 AM
Quote
Originally posted by phoenix
...cut...
That way, curl-devel will set its own dependency, be it on heimdal or kerberos.
...cut...

?(
curl-devel desn't need heimdal or kerberos (nor their -devel) but it's krb5-devel that needs curl-devel
 ?(
Title: Re: Trouble building CVS for Mandrake
Post by: phoenix on March 22, 2005, 01:22:48 PM
Strange.

$ curl-config --libs
-L/usr/lib -lcurl -L/usr/kerberos/lib -lssl -lcrypto -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -lresolv -ldl -lz -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lresolv -L/usr/lib -lidn -lssl -lcrypto -lz
Title: Re: Trouble building CVS for Mandrake
Post by: RaVen on March 22, 2005, 01:26:43 PM
well - I built on my suse machine a rpm without this krb thing - and it runs 5 days now - anyway - why do we need krb?
Title: Re: Trouble building CVS for Mandrake
Post by: phoenix on March 22, 2005, 01:51:14 PM
RaVen,

From my previous posts, you can see that if you remove krb5 from FC3 systems, you also remove curl. So, even though there is no explicit dependency on the spec file, there is a dependency of curl on krb5, at least on my system.

Anyway, the build prerequisit has been removed now, if someone could test and report a rpm build without --nodeps, I would be gratefull.

reeky,

I checked FC3 curl.src.rpm, and there is no mention of krb5 there. Really strange, did you see it in Suse rpm?
Title: Re: Trouble building CVS for Mandrake
Post by: RaVen on March 22, 2005, 03:59:59 PM
This explains some things - but I didn't want anybody to remove krb5 - I just wanted to know why krb5 is one of the dependecies - that's all. Ok you need krb5 for curl - and you need curl for amule - but you don't need krb5 for it!
So all i want to say is - if krb5 is not needed (i'm not talking about curl) please remove it from the dependencies - and leave curl there.

Sorry for my bad english - think I have to upgrade my english to Version 3.2 to make people understand me :-D
Title: Re: Trouble building CVS for Mandrake
Post by: RaVen on March 22, 2005, 04:05:18 PM
and - afaik in Suse curl and Kerberos have nothing to do with each oder.
Or lets say there's no "krb5" in suse - it's called heimdal (free implementation of Krb5) - and afaik there isn't curl mentioned.... (but I may be wrong)
Title: Re: Trouble building CVS for Mandrake
Post by: stefanero on March 22, 2005, 04:06:15 PM
RaVen: that is excatly what phoenix did, and said about 3post ealier :)
Title: Re: Trouble building CVS for Mandrake
Post by: RaVen on March 22, 2005, 04:07:07 PM
well - uhm - then - sorry for that
Title: Re: Trouble building CVS for Mandrake
Post by: RaVen on March 22, 2005, 04:10:22 PM
ah - you removed it already from the spec, as i experienced now :-)..... okay - sometimes i'm a little slow - thx anyway
Title: Re: Trouble building CVS for Mandrake
Post by: reeky on March 22, 2005, 04:41:22 PM
Quote
Originally posted by phoenix
Strange.

$ curl-config --libs
-L/usr/lib -lcurl -L/usr/kerberos/lib -lssl -lcrypto -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -lresolv -ldl -lz -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lresolv -L/usr/lib -lidn -lssl -lcrypto -lz

here is mine

reek@linux:~> curl-config --libs
-L/usr/lib -lcurl -L/usr/ssl/lib -lssl -lcrypto -ldl -lz

as i said, my rpm has not been built using the --nodeps flag but simpy modifying the spec file and repackaging all the stuff :)

bye
Title: Re: Trouble building CVS for Mandrake
Post by: phoenix on March 23, 2005, 03:43:39 AM
lol :D

Ok folks, let me try to explain it in other words:

1- I have already removed the krb5 dependency from the spec file. I believe you all already got that one :D
2- Can someone on Mandrake and someone else on Suse do rpmbuild -ta aMule-CVS-20050323.tar.bz2 and report the result? Just plain that, no repackaging.

Quote
Originally posted by reeky
reek@linux:~> curl-config --libs
-L/usr/lib -lcurl -L/usr/ssl/lib -lssl -lcrypto -ldl -lz
So, that is the difference. On FC3 curl depends on krb5. On Suse, it doesn't. Anyway, I believe it is correct now, there is only a dependency on curl. If someone can do that command for Mandrake, it would be nice too. ;)

Cheers!
Title: Re: Trouble building CVS for Mandrake
Post by: OldFrog on March 23, 2005, 07:03:22 AM
Quote
Originally posted by phoenix
lol :D

2- Can someone on Mandrake and someone else on Suse do rpmbuild -ta aMule-CVS-20050323.tar.bz2 and report the result? Just plain that, no repackaging.


Been there, done that on Mandrake 10.0 yesterday. It woorked flawlessly.

(Gtk2, wx 2.4.5)
Title: Re: Trouble building CVS for Mandrake
Post by: OldFrog on March 23, 2005, 07:04:57 AM
And for the 2d question, still on Mandrake 10.0 :

Quote

curl-config --libs
-L/usr/lib -lcurl -lz -lssl -lcrypto -ldl -lssl -lcrypto -ldl

Title: Re: Trouble building CVS for Mandrake
Post by: phoenix on March 23, 2005, 11:26:02 AM
Quote
Originally posted by OldFrog
(Gtk2, wx 2.4.5)
Guess you mean wx 2.5.4, right?

Quote
Originally posted by OldFrog
curl-config --libs
-L/usr/lib -lcurl -lz -lssl -lcrypto -ldl -lssl -lcrypto -ldl
Ok, that is fine. Anyone else with a braindamaged distro like mine (FC3), please raise hands! :D

OldFrog, thank you very much for your help!

Enjoy aMule! :D
Title: Re: Trouble building CVS for Mandrake
Post by: RaVen on March 23, 2005, 04:26:21 PM
hmm - dunno what i did wrong -but I believe it's my fault... :P:

with wx 2.4 i get this:

Code: [Select]
SysTray.cpp: In function `gboolean on_delete(GtkWidget*, GdkEvent*, void*)':
SysTray.cpp:163: warning: unused parameter `GtkWidget*widget'
SysTray.cpp:163: warning: unused parameter `GdkEvent*event'
SysTray.cpp:163: warning: unused parameter `void*user_data'
SysTray.cpp: In constructor `CSysTray::CSysTray(wxWindow*, DesktopMode, const wxString&)':
SysTray.cpp:593: error: `g_signal_connect' undeclared (first use this function)
SysTray.cpp:593: error: (Each undeclared identifier is reported only once for each function it appears in.)
make[4]: *** [amule-SysTray.o] Fehler 1
make[4]: Leaving directory `/usr/src/packages/BUILD/amule-cvs/src'
make[3]: *** [all-recursive] Fehler 1
make[3]: Leaving directory `/usr/src/packages/BUILD/amule-cvs/src'
make[2]: *** [all] Fehler 2
make[2]: Leaving directory `/usr/src/packages/BUILD/amule-cvs/src'
make[1]: *** [all-recursive] Fehler 1
make[1]: Leaving directory `/usr/src/packages/BUILD/amule-cvs'
make: *** [all] Fehler 2
error: Bad exit status from /var/tmp/rpm-tmp.44902 (%build)

as i said - don't know what i did - just same procedure as every day  :P


With wxgtk 2.5 it compiles and runs - but as soon as i hit the traffic dialog amule ends with a Qpainter error.


Ah - got suse 9.2
Title: Re: Trouble building CVS for Mandrake
Post by: stefanero on March 23, 2005, 04:38:20 PM
nah not your fault, good old kry forgot "tk" in this line where it fails...
Title: Re: Trouble building CVS for Mandrake
Post by: RaVen on March 23, 2005, 04:41:29 PM
well - shit happens - great work anyway Kry