Log in

No account? Create an account
my frustrating afternoon - LogJam [entries|archive|friends|userinfo]

[ website | LogJam ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

my frustrating afternoon [May. 3rd, 2005|07:07 pm]


I feel like such a doofus. I spent most of this afternoon trying to install Logjam on my SuSE 9.2 / KDE 3.4 system without any success.

I don't know if I should provide a detailed outline of each package I tried and subsequent dependance issues, or just focus on the latest package.. perhaps that is best.

First logjam-4.4.1-2.i386.rpm

ams@linux:~/Storage> rpm -ivh logjam-4.4.1-2.i386.rpm
error: Failed dependencies:
        libcrypto.so.4 is needed by logjam-4.4.1-2
        libgssapi_krb5.so.2 is needed by logjam-4.4.1-2
        libk5crypto.so.3 is needed by logjam-4.4.1-2
        libkrb5.so.3 is needed by logjam-4.4.1-2
        libssl.so.4 is needed by logjam-4.4.1-2

I spent a full hour chasing links on Google for libcrypto.so.4, found it was in openssl 0.9.7g which I tried to install - but there were literally hundreds of conflicts.. Yast basically wanted me to downgrade most of my OS in order to continue, which I did not do. I currently have openssl 0.9.7d, but libcrypto.so.4 does not exist on my system. (openssl-devel of the same version is also installed).

I felt it was best to stop than go on and hose my entire OS by trying to upgrade openssl.

Ok... so. maybe build a new rpm from the source...

ams@linux:~/Storage> rpmbuild --rebuild logjam-4.4.1-2.src.rpm
Installing logjam-4.4.1-2.src.rpm
warning: user kir does not exist - using root
warning: group kir does not exist - using root
warning: user kir does not exist - using root
warning: group kir does not exist - using root
warning: user kir does not exist - using root
warning: group kir does not exist - using root
warning: user kir does not exist - using root
warning: group kir does not exist - using root
warning: user kir does not exist - using root
warning: group kir does not exist - using root
error: Failed build dependencies:
        gtkhtml3-devel is needed by logjam-4.4.1-2
        librsvg2-devel >= 2.3.0 is needed by logjam-4.4.1-2

First of all, what are those warnings for?

Secondly, I ran into dependancy hell with gtkhtml3-devel. I don't have gtkhtml installed, and every version I tried to install had dependancy after depency issues. I gave up after two hours of trying to install gtkhtml3.

after ./configure :::
configure: creating ./config.status
config.status: creating livejournal/Makefile
config.status: creating tests/Makefile
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands

 logjam 4.4.1 build configuration:

    - Using GTK: yes
      - Using GtkSpell: yes
      - Using GtkHTML: no
      - Using librsvg: no
      - Use docklet ("tray icon"): yes
    - Using networking backend: curl
    - Build XMMS helper: yes


ok.. looks okay

ams@linux:~/Storage/logjam/logjam-4.4.1> make
make  all-recursive
make[1]: Entering directory `/home/ams/Storage/logjam/logjam-4.4.1'
Making all in data
make[2]: Entering directory `/home/ams/Storage/logjam/logjam-4.4.1/data'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/ams/Storage/logjam/logjam-4.4.1/data'
Making all in doc
make[2]: Entering directory `/home/ams/Storage/logjam/logjam-4.4.1/doc'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/ams/Storage/logjam/logjam-4.4.1/doc'
Making all in po
make[2]: Entering directory `/home/ams/Storage/logjam/logjam-4.4.1/po'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/ams/Storage/logjam/logjam-4.4.1/po'
Making all in util
make[2]: Entering directory `/home/ams/Storage/logjam/logjam-4.4.1/util'
Making all in xmmsclient
make[3]: Entering directory `/home/ams/Storage/logjam/logjam-4.4.1/util/xmmsclie
if gcc -DHAVE_CONFIG_H -I. -I. -I../..    -DLOCALEDIR=\"/usr/local/share/locale\
" -DPIXMAPDIR=\"/usr/local/share/pixmaps\" -I/usr/include/xmms -I/opt/gnome/incl
ude -I/opt/gnome/include/gtk-1.2 -I/opt/gnome/include/glib-1.2 -I/opt/gnome/lib/
glib/include -D_REENTRANT -I/usr/X11R6/include -g -O2 -MT logjam-xmms-client.o -
MD -MP -MF ".deps/logjam-xmms-client.Tpo" \
  -c -o logjam-xmms-client.o `test -f 'logjam-xmms-client.c' || echo './'`logjam
-xmms-client.c; \
then mv -f ".deps/logjam-xmms-client.Tpo" ".deps/logjam-xmms-client.Po"; \
else rm -f ".deps/logjam-xmms-client.Tpo"; exit 1; \
In file included from logjam-xmms-client.c:16:
/usr/include/xmms/xmmsctrl.h:23:18: glib.h: No such file or directory
In file included from logjam-xmms-client.c:16:
/usr/include/xmms/xmmsctrl.h:29: error: parse error before "xmms_connect_to_sess
/usr/include/xmms/xmmsctrl.h:29: error: parse error before "session"
/usr/include/xmms/xmmsctrl.h:29: warning: data definition has no type or storage

and so on.. there are another hundred or so lines of errors and warnings.

Will someone please help me?

[User Picture]From: discordian
2005-05-04 12:34 am (UTC)
I just went through the same compiling something from source on a new box I built. I'm pretty sure I forgot to install some component of C(gcc), but I haven't quite figured out which one yet.
(Reply) (Thread)
[User Picture]From: terpsichoros
2005-05-04 12:39 am (UTC)
Building Logjam in SuSE has always been difficult - the bits that gcc isn't finding are there, somewhere, but not where they are under RedHat. I'm slowly moving away from using my Linux machine as a desktop machine, partly because of crap like this, so I can't say much except to suggest looking through the archives of this community and seeing if someone solved a similar problem earlier. I think I remember something having to do with glib.h as a problem, earlier.
(Reply) (Thread)
From: evan
2005-05-04 01:13 am (UTC)
the compile is failing because you have xmms devel libs installed but not the gtk devel libs they depend on. you can fix your compile by adding the configure flag to disable xmms support (i forget what it is, check configure --help... probably something like --disable-xmms).

all of these sorts of problems are caused by poorly designed packaging systems. if you're not comfortable with solving these sorts of problems, i suggest trying out ubuntu.
(Reply) (Parent) (Thread)
From: evan
2005-05-04 01:14 am (UTC)
(oh, and to install logjam on ubuntu, you need to run "sudo apt-get install logjam" and it'll figure the rest out.)
(Reply) (Parent) (Thread)
[User Picture]From: pkbarbiedoll
2005-05-04 01:53 am (UTC)
well I'm a little further along now.. I installed gtk-devel and then ran ./configure, and make - no problems.

> make install returned this however:

ams@linux:~/Storage/logjam/logjam-4.4.1> make install
Making install in data
make[1]: Entering directory `/home/ams/Storage/logjam/logjam-4.4.1/data'
make[2]: Entering directory `/home/ams/Storage/logjam/logjam-4.4.1/data'
make[2]: Nothing to be done for `install-exec-am'.
/bin/sh ../mkinstalldirs /usr/local/share/applications
 /usr/bin/install -c -m 644 logjam.desktop /usr/local/share/applications/logjam.desktop
/usr/bin/install: cannot remove `/usr/local/share/applications/logjam.desktop': Permission denied
make[2]: *** [install-desktopDATA] Error 1
make[2]: Leaving directory `/home/ams/Storage/logjam/logjam-4.4.1/data'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/home/ams/Storage/logjam/logjam-4.4.1/data'
make: *** [install-recursive] Error 1

I see a logjam shortcut under Start -> Internet -> More Programs, but it does not launch logjam. If I right-click the desktop and run command logjam kde says it cannot find the executable.

(Reply) (Parent) (Thread)
From: evan
2005-05-04 03:03 am (UTC)
you need to run "make install" as root. you're close! :)
(Reply) (Parent) (Thread)
[User Picture]From: pkbarbiedoll
2005-05-04 10:30 am (UTC)
yay! it works!
thank you soooo much!
i have a few questions now, about logjam.. i'll ask in another entry.

thanks again :o)
(Reply) (Parent) (Thread)
[User Picture]From: pkbarbiedoll
2005-05-04 10:48 am (UTC)
hey, is it hard to make an RPM from a package installed from source like I just did? I'd love to do this and make it available somewhere if it will save someone else a little trouble.
(Reply) (Parent) (Thread)
From: evan
2005-05-04 04:40 pm (UTC)
i don't know anything about it, so you'll have to ask k001. :)
(Reply) (Parent) (Thread)
[User Picture]From: k001
2005-05-04 06:48 am (UTC)
Warnings ('user kir not found') are all mine - it's just because I don't like the idea of building RPMS being root. They can all safely be ignored.

Speaking of problem of missing dependencies, in all RPM-based system there is always a problem of installing packages that require packages that require packages...and all that should be tracked by mere mortal, which is really complex and frustrating task. In your particular case this problem is worsened by the fact that xmms-devel package does not require gtk-devel package, but it should (or, probably, xmms-devel was installed with --nodeps).

The good thing is there is a solution to the above problem. The solution is to use a tool like yum or smartpm. These tools are specifically desinged to work with package repositories, find and solve all dependencies, download and install all the missing pieces.

In case of yum, before rebuilding logjam from src.rpm, you'd have to say (as root):
yum install gtkhtml3-devel librsvg2-devel

The bad thing is it might not work, since this is SuSE and the names of the packages are sometimes differ from those provided by RedHat and RedHat-derivatives. Say, gtkhtml3 can be libgtkhtml3, etc. That divercity requires an additional work from package maintainer (me, in this case, since you have used mine src.rpm), and I'm afraid I haven't tried rebuilding my package on SuSE box, since I really don't have any SuSE installed nearby.
(Reply) (Thread)
[User Picture]From: pkbarbiedoll
2005-05-04 12:47 pm (UTC)
How involved is creating RPM packages? If its not too complex I'd like to make an RPM from my SuSE system so others won't have to go through what I did.
(Reply) (Parent) (Thread)
[User Picture]From: k001
2005-05-04 12:52 pm (UTC)
Well, I think modifying my RPM to support SuSE is basically checking in .spec file what distro we are on and %define'ing various things from that (like required package name, etc.)

I'd probably do that at some point, if there will be enough demand and I'll have an access to SuSE-based systems.
(Reply) (Parent) (Thread)
[User Picture]From: synestine
2005-05-04 09:24 pm (UTC)
Building RPMs is easy... once you have the development environment completely built. That can be complex. Generally that involves a lot of -devel packages being installed (Which was most of your problem above). My Linux systems are old enough now and I've monkeyed with them enough that I have all the -devel packages (that I need anyway) installed and I can (and routinely do) roll my own RPMs from the source tarball and an included .spec file, from a .src.rpm file, or from a tarball with a .spec file from a src.rpm file that I edit by hand.

A rule I've come to live by is that if you know you have a package installed and an RPM says it requires that package or (especially) if a source package says it requires that package, it means you're missing the -devel version of the package (gtk2 has gtk2-devel, glib2 has glib2-devel, xmms has xmms-devel, and so on).
(Reply) (Parent) (Thread)