Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2008-10

0.9.26 (FPC 2.2.2) on Slackware and Debian

12 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Mark Morgan Lloyd

I've set up a rather elderly Compaq here specifically for a number of jobs where I expect to have to wipe it and re-install if necessary. On it I have Slackware 12.1 and Debian "Lenny", largely so that I've got gtk2 etc.

If I install the binary of FPC 2.2.2 on Slackware I can compile Lazarus (both all and bigide) from source without problems.

If I do exactly the same on Debian I have to add libgdk-pixbuf-dev (no big deal) but then to get Lazarus to compile have to add a handful of symlinks:

libatk-1.0.so -> libatk-1.0.so.0
libpango-1.0.so -> libpango-1.0.so.0
libgmodule-2.0.so -> libgmodule-2.0.so.0
libgthread-2.0.so -> libgthread-2.0.so.0
libglib-2.0.so -> libglib-2.0.so.0
libgobject-2.0.so -> libgobject-2.0.so.0
libgdk-x11-2.0.so -> libgdk-x11-2.0.so.0
libgtk-x11-2.0.so -> libgtk-x11-2.0.so.0
libgdk_pixbuf-2.0.so -> libgdk_pixbuf-2.0.so.0

where

libgdk_pixbuf-2.0.so.0 -> libgdk_pixbuf-2.0.so.0.1200.11

etc.

I presume that this works on Slackware because the symlinks already exist, and can confirm:

libgdk_pixbuf-2.0.so -> libgdk_pixbuf-2.0.so.0.1200.9

and so on.

In both cases Lazarus runs, although not fast.

Now this is a completely virgin Debian system, it's never had Debian-served FPC or Lazarus packages installed and I've got a fairly good record of what's been put onto it and what changes there were in /usr/lib.

So would somebody please tell me what I'm doing stupid.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Andrew Haines
to Mark Morgan Lloyd
Mark Morgan Lloyd wrote 17 lines
I presume that this works on Slackware because the symlinks already exist, and can confirm: libgdk_pixbuf-2.0.so -> libgdk_pixbuf-2.0.so.0.1200.9 and so on. In both cases Lazarus runs, although not fast. Now this is a completely virgin Debian system, it's never had Debian-served FPC or Lazarus packages installed and I've got a fairly good record of what's been put onto it and what changes there were in /usr/lib. So would somebody please tell me what I'm doing stupid.

You have to install the -dev packages like gtk2-dev etc. the dev packages make the symlinks for you.

regards,

Andrew

Reply by email

Mark Morgan Lloyd
to Andrew Haines
Andrew Haines wrote 9 lines
> Now this is a completely virgin Debian system, it's never had > Debian-served FPC or Lazarus packages installed and I've got a fairly > good record of what's been put onto it and what changes there were in > /usr/lib. > > So would somebody please tell me what I'm doing stupid. You have to install the -dev packages like gtk2-dev etc. the dev packages make the symlinks for you.

Thanks Andrew, I'll work on it. Is there a way of deducing what packages need to be installed rather than trying anything that looks relevant? So far I'm working through package dependencies of the Debian Lazarus and FPC packages.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Andrew Haines
to Mark Morgan Lloyd
Mark Morgan Lloyd wrote 20 lines
Andrew Haines wrote: >> Now this is a completely virgin Debian system, it's never had >> Debian-served FPC or Lazarus packages installed and I've got a fairly >> good record of what's been put onto it and what changes there were in >> /usr/lib. >> >> So would somebody please tell me what I'm doing stupid. >> > You have to install the -dev packages like gtk2-dev etc. the dev > packages make the symlinks for you. > Thanks Andrew, I'll work on it. Is there a way of deducing what packages need to be installed rather than trying anything that looks relevant? So far I'm working through package dependencies of the Debian Lazarus and FPC packages.

There are lazarus deb's around, I would at least temporarily install one so that it pulls in all the needed dev packages.

Regards,

Andrew

Reply by email

Henry Vermaak
to Mark Morgan Lloyd: Thanks Andrew, I'll work on it. Is there a way of deducing what packages need to be…
Mark Morgan Lloyd wrote 5 lines
Thanks Andrew, I'll work on it. Is there a way of deducing what packages need to be installed rather than trying anything that looks relevant? So far I'm working through package dependencies of the Debian Lazarus and FPC packages.

these are the basic dependencies for gtk1:

http://packages.debian.org/sid/lazarus-ide

gtk2 dev packages should be easy to guess. this deb package will have to change though, since gtk2 is now the default widgetset on linux.

henry

Reply by email

Mark Morgan Lloyd
to Andrew Haines: There are lazarus deb's around, I would at least temporarily install one so that it pulls…
Andrew Haines wrote 7 lines
> Thanks Andrew, I'll work on it. Is there a way of deducing what packages > need to be installed rather than trying anything that looks relevant? So > far I'm working through package dependencies of the Debian Lazarus and > FPC packages. > There are lazarus deb's around, I would at least temporarily install one so that it pulls in all the needed dev packages.

Working on it carefully, as I said this is a sacrificial system largely for this reason. I'll report back once I've sorted things out.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Luca Olivetti
to Mark Morgan Lloyd: Thanks Andrew, I'll work on it. Is there a way of deducing what packages need to be…

En/na Mark Morgan Lloyd ha escrit:

Thanks Andrew, I'll work on it. Is there a way of deducing what packages need to be installed rather than trying anything that looks relevant?

You can install the apt-file utility, then do a "apt-file file search <missing so file>", it should list all the packages containing the file.

Bye

Luca Olivetti Wetron Automatizaci?n S.A. http://www.wetron.es/ Tel. +34 93 5883004 Fax +34 93 5883007

Reply by email

Mark Morgan Lloyd
to Henry Vermaak: these are the basic dependencies for gtk1: http://packages.debian.org/sid/lazarus-ide…
Henry Vermaak wrote 12 lines
On 30/10/2008, Mark Morgan Lloyd wrote: > Thanks Andrew, I'll work on it. Is there a way of deducing what packages > need to be installed rather than trying anything that looks relevant? So > far I'm working through package dependencies of the Debian Lazarus and > FPC packages. these are the basic dependencies for gtk1: http://packages.debian.org/sid/lazarus-ide gtk2 dev packages should be easy to guess. this deb package will have to change though, since gtk2 is now the default widgetset on linux.

Thanks Henry. I sorted out the gtk1 dependencies some while ago but in this case I'm specifically interested in gtk2, which is why I'm hesitant to simply splurge Debian's lazarus package onto the system.

In part this goes back to the menu problem I mentioned a few days ago, the fact that this doesn't occur on gtk2 is a big incentive to migrate to it where possible.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Henry Vermaak
to Mark Morgan Lloyd
Mark Morgan Lloyd wrote 8 lines
Thanks Henry. I sorted out the gtk1 dependencies some while ago but in this case I'm specifically interested in gtk2, which is why I'm hesitant to simply splurge Debian's lazarus package onto the system. In part this goes back to the menu problem I mentioned a few days ago, the fact that this doesn't occur on gtk2 is a big incentive to migrate to it where possible.

i see. i personally just tend to build a package and wait for ld to spit out something like '-lsomelib not found', then i go and install libsomelib-dev and try and build again. it doesn't really take long, since you don't have to make clean every time, so it will just link. and lazarus doesn't depend on many packages anyway.

good luck

henry

Reply by email

Mark Morgan Lloyd
to Luca Olivetti: En/na Mark Morgan Lloyd ha escrit: You can install the apt-file utility, then do a…
Luca Olivetti wrote 7 lines
En/na Mark Morgan Lloyd ha escrit: > Thanks Andrew, I'll work on it. Is there a way of deducing what packages > need to be installed rather than trying anything that looks relevant? You can install the apt-file utility, then do a "apt-file file search <missing so file>", it should list all the packages containing the file.

Exquisite :-)

So on a virgin Debian system building Lazarus with gtk2 will complain that these .so files (actually symlinks) are missing:

libgdk_pixbuf-2.0.so
libgtk-x11-2.0.so
libgdk-x11-2.0.so
libgobject-2.0.so
libglib-2.0.so
libgthread-2.0.so
libgmodule-2.0.so
libpango-1.0.so
libatk-1.0.so

Using apt-file ties them to these packages:

libgtk2.0-dev: /usr/lib/libgdk_pixbuf-2.0.so
libgtk2.0-dev: /usr/lib/libgtk-x11-2.0.so
libgtk2.0-dev: /usr/lib/libgdk-x11-2.0.so
libglib2.0-dev: /usr/lib/libgobject-2.0.so
libglib2.0-dev: /usr/lib/libglib-2.0.so
libglib2.0-dev: /usr/lib/libgthread-2.0.so
libglib2.0-dev: /usr/lib/libgmodule-2.0.so
libpango1.0-dev: /usr/lib/libpango-1.0.so
libatk1.0-dev: /usr/lib/libatk-1.0.so

For completeness, it also appears to show that installing the lsb-build-desktop3 package would create all of the symlinks in the /usr/lib/lsb3 directory. I don't know whether this is at all relevant but feel it's worth remarking upon.

In actual fact it is sufficient to install libgtk2.0-dev, which pulls in the others.

So for gtk 1 and 2 respectively:

gtk1:
-----
libgdk-pixbuf-dev
libgtk1.2-dev

gtk2:
-----
libgtk2.0-dev

This allows both "make all" and "make bigide" to complete.

Needless to say the first couple of times I tried this failed. Eventually I realised I was running on the wrong computer :-)

Does anybody think there's anything related I can usefully check while I've got nothing else significant on the system?

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Mark Morgan Lloyd
to Henry Vermaak: i see. i personally just tend to build a package and wait for ld to spit out something…
Henry Vermaak wrote 5 lines
i see. i personally just tend to build a package and wait for ld to spit out something like '-lsomelib not found', then i go and install libsomelib-dev and try and build again. it doesn't really take long, since you don't have to make clean every time, so it will just link. and lazarus doesn't depend on many packages anyway.

I agree, that's the way I've typically worked as well. However now that both Debian and Lazarus are in a transitional state between gtk1 and 2 and since I was in a position where I could dedicate a machine to the problem for at least a few days I thought it was worth sorting things out in a controlled fashion.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Mark Morgan Lloyd
Marco Ciampa wrote 11 lines
Please do create the ubuntu ppc packages too. I'm trying to use the Debian packages on ubuntu with this result: ./fpc: working ./fp: working ./lazarus-ide: [FORMS.PP] ExceptionOccurred Sender=EAccessViolation Exception=Access violation Stack trace: $BFF78C08

The whole point is that I wasn't using the Debian package, for the simple reason that I want up-to-date FPC and Lazarus rather than one which is two or three years old.

Now I don't /do/ Ubuntu, for the simple reason that I'm running several different architectures here while Ubuntu is x86-specific, so possibly somebody with experience of that distro would like to comment.

If nobody with experience does comment, I'd suggest doing this:

* De-install the Debian Lazarus and FPC packages in reverse order to how you installed them.

* Install the x86 Linux 2.2.2 FPC binary.

* Test fpc and fp with a trivial program.

* Install Lazarus 0.9.26 source into e.g. /usr/local/share/lazarus.

* Use chown to assign them to yourself rather than root.

* Depending on the version of gtk that whatever version of Ubuntu you're running uses install the gtk/pixbuf package I mentioned yesterday evening.

* Build Lazarus, add a symlink /usr/local/bin/lazarus -> /usr/local/share/lazarus/lazarus.

That should work. There's no great rocket science in there and while it is an hour or two's work it certainly beats the insecurity of having an uncertain mix of libraries on your system.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email