Error compiling Pacman on LFS 6.1.1
Hi,
I needed a good package manager for LFS. I found problems in quite alot, .deb packages are complicated to create - as are RPMs. The easiest (in my opinion) - Pacman. However it won't compile. I am trying to compile it on a recently compiled LFS 6.1.1 (Kernel 2.6.17.7). The only other thing I have done is strip all binaries using --strip-all. And all libraries (including kernel modules) with --strip-debug. I have compiled libtar including the patch on Pacman's website. It gets up to here before the error (which seems I have not copied - oops. Will do that soon, though it is something about TLS...) Code:
(cd libftp; make libftp.a) Code:
# Begin /etc/ld.so.conf I need help - I can't get much further without pacman. Thanks Vampirite P.S. Funny if it was something just as little as a missing package ;) |
And off the zero reply list we go... ;)
Try posting the missing package and your error message. A proper follow up never killed anyone... :p |
Funny, it compiles perfectly on Slackware 10.2...
I'm going to try recompiling gcc - need to do it anyway, and it might work... I haven't been on LFS in a while, different computer to this one, will try and get the error message soon. If it is a missing package I have no idea what it is... I was wondering if this would ever get a reply ;) Oh yeah and just may I ask - in which way can I get the error message without manually typing it by hand...? "make > ./error.txt" seems to just output the good bit as seen in the first post... |
Code:
make > ./make.log 2>&1 |
So now your saying you haven't figured it out? I'm confused.. I guess I misunderstood.. ;) pacman is alright I guess. Have you thought about pkgtools? Can't beat it...
Might I suggest you check DIY out if you haven't already. http://www.diy-linux.org/ The maintainer uses pacman personally, I believe, so perhaps there is something in his patch there.. Besides, not only is DIY a boon for anyone using a package manager on "LFS", it's also a hell of alot more correct in bootstrapping methods, the number one point being that we don't statically link anything during the toolchain phase. I've had a couple bad builds over the years from doing it the "LFS way"... Anyhoo... I don't think the patch offered on DIY is compilation related but ya' never know. Worth a look see IMO... |
I'll try the patch. Don't think it'll make much difference, come to think of it I don't know why I turned down pkgtools...I use it quite alot in Slackware.
I'll have to look into pkgtools and dpkg. Where can I get pkgtools? Just exract it from Slackware? |
Yep. tar-1.13 and mktemp are runtime dependencies for pkgtool. Whether you want to make those into seperate packages or throw them in with pkgtools is up to you.
tar-1.5 will bugger up your packages so manually "tar-1.13 czf pkgtools-$VERSION-$ARCH-1.tgz".. You can build tar-1.13 and install to /tools/bin/tar-1.13 or just let "tar" build the first package and then build pkgtools again using makepkg. I'm being a little hurried. I'll post my .SlackBuild for LFS and let you decipher it on your own time. I modify the pkgtool scripts to use "desc" and not "slack-desc" AND I have CWD set up a certain way. Alot different than Pat's source directory but it's still pkgtools-11.0 Code:
#!/bin/sh http://jaguarlinux.com/pub/DIY/source/ |
I'll look through it, I was working on a (very) basic package manager in bash shell script, similar to pkgtool and pacman. But I am lost as how to write a package remover.
Anywho, the error compiling pacman was: Code:
(cd libftp; make libftp.a) I'll have to look at pkgtool in my own time, thanks though! But I still prefer pacman. What's wrong with tar-1.15.1? I'm using it for my package manager. If I need to I'll install tar-1.13 to a different prefix, move the original tar binary to tar-1.15.1 and symlink tar-1.13 to tar. I know what I mean ;) |
looks like pacman doesn't like something about your glibc.... That's a tough one and I don't really know how to help you there... Some sort of TLS error with /usr/lib/libc.a :confused:
Are you using LFS stable? I would have built gcc-3.4.6/glibc-2.3.6/binutils-2.16.1 if I were you... Wonderfull, wonderfull combination of core packages. Rock solid. Perhaps you would have better luck with pacman using those versions.... And where does gcc-3.4.3 come into it? lfs-6.1.1 is using 4.0.3/2.3.6/2.16.1... I would scrap your toolchain and start again by following the book, but that's just me... If you prefer to use gcc-3.4.x then use 3.4.6.. It's a great compiler and the last in the 3.4 series. Personally, I'd suggest staying away from glibc-2.4 and gcc-4.1.x for the time being. You can try it if you want, but I'd expect problems in the BLFS stage of your build. I would suggest posting on the ARCH forums, but historically speaking, you'd probably get some flak for doing so seeing as how this isn't a specific ARCH problem. Never much cared for some of the archers over there from a couple years back but that might have changed by now. Up to you. For the tar question: ftp://ftp.slackware.com/pub/slackwar...tar.SlackBuild I also get some screwy happenings with the package manifest in /var/log/packages using tar > 1.13.... Besides, the pkgtool scripts are hard-coded to look for the binary tar-1.13 anyway... I suppose you could change those refrences but I say you won't like the results... Doing as you suggested with the tar binaries won't have an impact on pkgtools since it looks for "tar-1.13" anyway and then you would always have to call on "tar-1.15.1" if you wanted to use the new version. I wonder if it's possible to compile pacman without the "-Llibftp -lftp" linker flags... Why would you want to use that aspect of the package manager on LFS anyways? It would probably take alot of work besides just removing those refrences.... |
Do I have to just destroy my LFS and start again, or can I recompile gcc, binutils, then finally glibc (the versions you specified) ON lfs, to just create a new toolchain?
The stable LFS you were looking at is 6.2, I was unlucky enough to finish 6.1.1, and have 6.2 be released the next day. I'll see what happens in the Arch forums. And see how much I can edit the Makefile... ;) |
Are you already done with LFS? A little late for a package manager if so... You'd want to employ your PM imediately after the toolchain. Upgrading Glibc and Binutils on a running system is like playing with fire IMO. It can be done but not simpily by doing a make install directly over the old version. I think you'll see alot of breakage if you do that.
If all you have done is the toolchain, then your effectively still using a "running system". As soon as you chroot, you become dependent upon your toolchain's glibc and binutils. Still safer to start over IMO and all you've done is the toolchain anyway up to this point so it's really not a big deal to start over. That's what? About a day straight of compiling (on an old machine anyway). If I were you, I'd bite the bullet and start over at the beginning.. But that's just me. If your already using binutils-2.16.1 and glibc-2.3.6 then upgrading gcc is a trivial matter and, who knows, this may fix your pacman problem. Atleast for me, it's a pain in the butt to compile all the packages you want, even with build scripts. I have about 280 packages that I build in LFS/BLFS... Your not going to want to do this often, so that's another reason I'd probably start over while your still towards the beginning. It would be nice to have ALL your packages compiled with whatever versions of glibc/gcc/binutils you decide to go with. After a year or so, when new stable versions of the "core 3" packages come out, just start over, unless you devise some safe way of upgrading glibc and binutils. Look at Slackware's glibc build script. That's one way of safely upgrading a glibc on a running system. I still prefer not to do that tho. Well, good luck.. You might want to compare notes with DIY if you end up starting over. It's a much, much better way to bootstrap a system IMO. Following greg's ref build will result in a "less prone to problems" build in the long run. At the very least, it's a good refrence to see what your make install variable will be. Not everything honors DESTDIR.... |
Well, it's alright if I start again, I've only just finished it, so it's only about two days or so compiling, for the temporary system, and the proper system.
And I can also use LFS 6.2 (but using the toolchain you specified - I don't like GCC 4.x). I was originally intending to just use the base system, and use the package manager for applications from BLFS. But now I realise I can compile a package manager, and except from the toolchain, use it to package all applications for the system. As for pacman, I edited the Makefile and removed the flags, however pacsync required libftp. Remove libftp and pacsync and pacman.c requires pacsync. And pacman.c has pacsync integrated, it's impossible to remove it. |
Got a new computer so I need to start from scratch (no pun intended) anyway.
|
Oooh turns out gcc 3.4.3 (the one for LFS 6.1.1) doesnt compile pacman for some reason...
I compiled LFS 6.2 on my newer computer and 4.0.3 (the one for LFS 6.2) compiles it fine... |
All times are GMT -5. The time now is 01:22 PM. |