LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Installing GTK using makepkg on dependencies. (https://www.linuxquestions.org/questions/slackware-14/installing-gtk-using-makepkg-on-dependencies-521692/)

Crobat 01-22-2007 08:40 AM

Installing GTK using makepkg on dependencies.
 
As the title indicates, I want to install gtk+-2.12.9, but I made all the dependencies into packages, and installed everything so far with installpkg. When I try to install gtk, first it complains that it can't find the right stuff in /usr/local/lib, which I saw a solution for, but not a solution that also uses Slack packages.

Has anyone successfully installed gtk using makepkg/installpkg?

jong357 01-22-2007 09:52 AM

Your being a little vauge which makes it hard for anyone to know what your problem is. What was the error? What was the solution? What's wrong with the official GTK+2 SlackBuild?

Crobat 01-22-2007 11:18 AM

I'm sorry for being vague. I'm trying to remember this from work. I would rather try the SlackBuild, but couldn't find it anywhere. Any suggestions on where to look? I'll have to bookmark it. :)

piete 01-22-2007 11:43 AM

FYI: /source is on disks 5 & 6 for slack 11, and disks 3 & 4 for slack 10.1.

You'll find original slackbuild scripts for a lot of the gnome stuff in 10.1 source (my local mirror below):

ftp://ftp.heanet.ie/mirrors/ftp.slac...1/source/gnome

Also, take a peek at:

http://gsb.freerock.org/download/

They have a slackbuild project for gnome.

Finally, you can find the current GTK+2 slackbuild in /source/l/gtk+2 (again my local mirror below ... )

ftp://ftp.heanet.ie/mirrors/ftp.slac...source/l/gtk+2

You WILL want to find a more appropriate mirror if you don't already have the source disks.

- Piete.

Crobat 01-22-2007 12:18 PM

Thanks! I'll check those out! :)

Crobat 01-22-2007 05:15 PM

That's not quite the latest version of gtk+. The version I found on the web is version 2.10.

Crobat 01-22-2007 06:07 PM

ok..at home now. These are the errors I'm getting trying to build gtk+:

Code:

./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_get_title'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_get_is_private'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_set_description'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_get_size'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_free'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_type_register_static_simple'
./.libs/libgtk-x11-2.0.so: undefined reference to `cairo_pdf_surface_create'
./.libs/libgtk-x11-2.0.so: undefined reference to `cairo_surface_set_fallback_resolution'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_load_from_file'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_get_visited'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_get_modified'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_key_file_set_double'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_set_mime_type'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_set_is_private'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_has_item'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_key_file_get_double'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_get_applications'
./.libs/libgtk-x11-2.0.so: undefined reference to `cairo_ps_surface_set_size'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_get_uris'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_new'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_get_description'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_set_title'
./.libs/libgtk-x11-2.0.so: undefined reference to `cairo_surface_get_type'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_to_file'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_add_group'
./.libs/libgtk-x11-2.0.so: undefined reference to `cairo_pdf_surface_create_for_stream'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_add_application'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_remove_item'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_get_mime_type'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_move_item'
./.libs/libgtk-x11-2.0.so: undefined reference to `cairo_pdf_surface_set_size'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_get_groups'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_get_app_info'
./.libs/libgtk-x11-2.0.so: undefined reference to `g_bookmark_file_get_added'
collect2: ld returned 1 exit status
make[4]: *** [gtk-query-immodules-2.0] Error 1
make[4]: Leaving directory `/home/mike/gtk+-2.10.8/gtk'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/mike/gtk+-2.10.8/gtk'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/mike/gtk+-2.10.8/gtk'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/mike/gtk+-2.10.8'
make: *** [all] Error 2


piete 01-22-2007 08:16 PM

Quote:

That's not quite the latest version of gtk+. The version I found on the web is version 2.10.
Erm, no, it's not the latest ... the point is the scripts should be (largely) the same, regardless of the version.

One thing that does strike me as odd: in the OP you said you wanted 2.12 ... so, how is 2.10 suddenly the latest? You need to tell us the whole story, I think.

Anyway. I would suggest that you've not installed cairo, based on that output ... but why it should successfully configure but fail to build is beyond me. My suspicion is you've got inconsistent version numbers with your deps and instead of building 2.12 from scratch, you're trying actually to just rebuild gtk+2 on top of a stock system without it's 2.12 deps. [Edit - sorry, I'm thinking of the gnome deps, gtk+ is a bit different: http://svn.exactcode.de/t2/trunk/pac...tk+/gtk+.cache ]

Some information that might be helpful:
* What ./configure did you use?
* What deps + versions are installed?

Finally, may I ask *why* you want to update gtk+2? Some app requires it, or just for the hell of it?

Ok, so I've just had a look at gtk.org and I think I see what's happened .. for those still reading the thread, here's some info:

latest stable gtk+2: 2.10
latest stable glib: 2.12.9

gtk+ depends on glib, and the install process for gtk+ is failing (see above).

For your reading pleasure, the similar threads box below hefted these two - worth a look, really:
http://www.linuxquestions.org/questi...d.php?t=251920
http://www.linuxquestions.org/questi...d.php?t=174049

From the top; once more, with feeling!
- Piete.

jong357 01-22-2007 09:59 PM

Crobat, incase you didn't know, these packages are all related and should be built in the order listed if your looking to install the latest GTK+2

glib2
popt
atk
cairo
pango
gtk+2

They are all backwards compatable with earlier versions to the best of my knowledge and nothing on Slack will break by using the latest versions of the above packages. Atleast I haven't encountered any software that broke by updating those.

I'm still not sure what your problem is. Looks like you managed to snip the top part of your error off so posting the above doesn't do too much good IMO... Still don't know what "dependencies" you are talking about that you built and what options you passed to ./configure. The only suggestion I would give at this point is to remove ALL of the packages above, but leave versions 1 of gtk/glib, and use scripts that work, building in the order listed above. Your still being vauge... And piete is probably right. I'm wildly guessing that your trying to build the latest GTK2 against one or more of the stock slackware packages listed above. Aint' gonna' work... Update one, update all.

The official Slackware scripts should work just fine. All you need to do is change the version variable. That should be the case anyway. Haven't tested recently. If it helps you, I have scripts of my own that I use for slackware. They can be found here: http://jaguarlinux.com/pub/slackware.../gnome-2.16.2/ There is nothing special about them tho. They should do the same exact thing as the Slackware scripts.

Sorry if I sound frustrated but I KNEW this would happen often if Slackware 11 wasn't updated before it was shipped. You can't even build much of anything against cairo-1.0.4 so I'm not even sure why it's on slackware to begin with... :mad: There is 1.2.4 in 'testing' but I would hardly consider that a 'testing' package.. I think Slack is turning pure QT... ;) It's bad enough gnome users were left out in the cold but newer GTK app users are going to face the same situation sooner or later...

So, the resolution is to build the above packages in the exact order listed. Make sure you clean your system first and use --prefix=/usr...

Crobat 01-23-2007 07:23 AM

Yea maybe I should've started with my overall goal. I'm trying to run the latest Cedega package, and when I try, it tells me that I need gtk+2 installed, so then I tried installing gtk+2, and apparently I don't have the dependencies for ./configure to work.

So, moving across the web, I pick up the ones that I do need, which are (again, this is from memory) glib, cairo, pango. Cedega also needs python gtk2, but I haven't got that far yet.

Anywho, this is why I'm looking to install the newest gtk. I would normally just use the old one, but cedega is barking at me. :)

Oh, and I didn't use the prefix=/usr, so that may have something to do with it.

piete 01-23-2007 07:45 AM

Ahhhhhh now we get it =D

So, next question: are you trying to *run* Cedega, or *compile* Cedega?

`./configure --prefix=/usr` fixes a lot of problems when it comes to pkgconfig, the alternative is to use:

`PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" ./configure` # you will want to check that directory path.

Crobat 01-23-2007 08:58 AM

I'm just trying to run Cedega. I installed the Slack package to make my life a little easier. ;)

Crobat 01-23-2007 09:12 AM

The first goal was to use something like this:

./configure -prefix=/Package/WhateverImInstalling && make && make install

cd /Package/WhateverImInstalling

makepkg WhateverImInstalling.tgz
installpkg WhateverImInstalling.tgz


However, I scratched that idea, because I couldn't see anyone recommending doing things this way. I think I'll aim for the `PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" ./configure` way. I think that path is correct, but I'll check it later. :)

All this to play Warcraft 3 with Cedega. :D

jong357 01-23-2007 09:36 AM

Cedega runs just fine on a stock Slackware 11. All you need is pygtk-2.8.x

Next time, state your problem as far upstream as you can. Saves alot of time. ;)

http://jaguarlinux.com/pub/slackware...s/pygtk-2.8.6/

Of course, now you need to get your system back to it's original state..

jong357 01-23-2007 09:39 AM

Quote:

Originally Posted by Crobat
The first goal was to use something like this:

./configure -prefix=/Package/WhateverImInstalling && make && make install

cd /Package/WhateverImInstalling

makepkg WhateverImInstalling.tgz
installpkg WhateverImInstalling.tgz

Also, that's completely wrong.. Sounds like you need to brush up on compiling/making packages.

It's:

./configure --prefix=/usr
make
make install DESTDIR=/Package/WhateverImInstalling
cd /Package/WhateverImInstalling
makepkg WhateverImInstalling.tgz
installpkg WhateverImInstalling.tgz

Also, letting configure default to /usr/local is subject to debate. I don't like it and think everything should go in /usr but that is what /usr/local is for I guess. Why install to an obscure directory and start appending PATH's when you can just fire and forget to /usr?


All times are GMT -5. The time now is 04:27 PM.