[SOLVED] Building Toilet, glibc b0rked sys with pacman --force

Installed base-devel, which initially b0rked the system as it was far out of date (ran pacman -S base-devel --force, careful!)

However after refreshing system and installing base-devel without the associated critical failure, Toilet did in fact build.

should be an expert plumber by now.

The end.

-------------------

OK, I've been on quite an adventure trying to get Toilet to build, and I'm practically at the giving up point which is pretty sad. So hopefully one of you can help me realize what I'm doing so horrible wrong. : )

No problem with CACA, pacman grabs and installs it. Pacman doesn't find Toilet, it's only in AUR, so naturally I grab the tar and build script and run makepkg. Well guess what? (note, the package script runs configure as; ./configure --prefix=/usr).

checking for CACA... noconfigure: error: you need libcaca version 0.99.beta18 or later

So obviously the first question is "what version of libcaca did I install again?", should be good, we clearly have;

libcaca 0.99.beta18

OK. So I maybe the script can't find the files, or they aren't there? Possibly the install went awry, so I check /usr/lib, /usr/include, /usr/local/lib, /usr/local/include, all the caca files are there, headers, libs, looks good.

I'm confused.

So I go to the Toilet website and they assure if you run their build process it'll work, which involved executing ./bootstrap then ./configure, but bootstrap requires automake > 1.5.

makepkg, package created successfuly! ... but wait, I don't have a xz file as a result in my working directory, so how exactly do I get pacman to install that?

Even if I got automake 1.9 installed there's no guarantee it'd install Toilet all of a sudden, that's just a last resort anyway.

I tried other ./configure options to try and force the script to see libcaca, no success.

So from this point forward you don't even want to know what I tried, I'll lightly mention that I tried moving the caca header files to the Toilet src/ directory, changed all the source files there to reference the header in the current dir, tried to modify the makefile's and configure scripts to force it to see the file by writing absolute paths where I thought necessary... to say the least that didn't work,mostly because the config/makefiles which are auto generated are a labyrinth of complexity that I couldn't understand after 3+ hours of crawling through.

The configure script is cryptic enough that I can't actually tell how it's determining the version of libcaca, I would have just echo'd out stuff around the condition statements to see what it's doing, so I've decided finally that apparently I'm an idiot, so I'm going to stop getting no where and ask for help. : )

Why would the Toilet ./configure not find libcaca in arch? What else could I do to try and get Toilet installed?

Nope... and you know what, as WorMzy mentioned, base-devel could be the issue, as I don't even have pkg-config installed. If the system returns 'command not found' that may very well be interpreted as the library not existing... this could be making sense now.

Re: [SOLVED] Building Toilet, glibc b0rked sys with pacman --force

I suspect you haven't done a full upgrade in a long time - and you've probably done partial upgrades and/or botched the glibc update.

Check the wiki about the glibc update, or see any one of the many threads on it. Make sure you can fully update, then worry about toilet.

EDIT: your edit with more information confirms my suspicion: you had not properly done the glibc update. Now by trying to "force" something without knowing what you were doing, you have probably made the issue much worse.

Now read the wiki and threads on this issue and never use "force" again.

EDIT2: also, never do `pacman -Sy` nor interupt an Syu then leave it uncompleted. You have, at some point, synced your database without doing the updates so pacman is now trying to install packages that are out of sync with the dependencies you currently have installed (ie partial upgrade).

Re: [SOLVED] Building Toilet, glibc b0rked sys with pacman --force

I suppose some good news is it looks like pacman ignored your "force" and failed anyways ... which is very good in this case.

So you should be able to follow the 'basic' instructions on the wiki page for the glibc update. I don't think you have broken anything in that attempted force - but you do still need to complete the update before you try to install anything new.

Re: [SOLVED] Building Toilet, glibc b0rked sys with pacman --force

Yea, I haven't done a full update in a while, and only do partial updated usually. There's no way I can do anything on the server right now, it's botched. No commands will run, no binaries can be found... I literally can only execute the binaries echo and exit so far.

This isn't a total loss at least, since it's a VPS I can download the image, extract all the files, and get the VPS back.

That'll probably take me a little while to get through, when I get the VPS back up I'll first do a full update then try the base-devel again and then finally have Toilet.

So I'll be gone a bit while I work on the restore, but I'll be back to post on if it did finally succeed or not.

Re: [SOLVED] Building Toilet, glibc b0rked sys with pacman --force

But honestly, if reinstalling is a viable option for you, it'll probably be a lot faster -- you have at least five months of changes and updates to catch up on, and you've fallen at the first hurdle as it were.

Re: [SOLVED] Building Toilet, glibc b0rked sys with pacman --force

theoddsarebad wrote:

and only do partial updated usually

I know it's been said, but to reiterate, this is a very bad idea, please break this habit.

Many may argue that it is important to upgrade regularly. While I agree, waiting between updates usually won't cause any real problems - at least not big ones. Partial upgrades, however, will almost always cause serious problems in arch.

You can, of course, add additional software at anytime without updating anything. If you fully update (pacman -Syu) in April, then in June you want a new package you can still add it (pacman -S package). Just don't sync your database in between (never pacman -Sy).

Re: [SOLVED] Building Toilet, glibc b0rked sys with pacman --force

Trilby wrote:

theoddsarebad wrote:

and only do partial updated usually

I know it's been said, but to reiterate, this is a very bad idea, please break this habit.

Many may argue that it is important to upgrade regularly. While I agree, waiting between updates usually won't cause any real problems - at least not big ones. Partial upgrades, however, will almost always cause serious problems in arch.

You can, of course, add additional software at anytime without updating anything. If you fully update (pacman -Syu) in April, then in June you want a new package you can still add it (pacman -S package). Just don't sync your database in between (never pacman -Sy).

Hmm, so when exactly should the db's be sync'd?

You probably don't want to hear this, but I've had this arch system for over a year now, and the only time I ever did a pacman -Syu was when I first set it up, hah. I had one incident before that to do with pcre after an update, and a couple times had to update pacman, but never ran into anything like this before.

So I should be updating everything every month? Would it make sense to just run pacman -Syu in a crontab once a month at 3am or something?

Re: [SOLVED] Building Toilet, glibc b0rked sys with pacman --force

If you want to get support from the community, then you should be updating regularly, Arch is a rolling release distro after all; if you have a problem with a package from 12 months ago, we can't help you.

If you don't update for ages, then want to install something new, you run into the sort of problem you're experiencing now. I disagree with Trilby's statement about not updating pacman's databases and installing packages, for a lot of packages that simply won't work. The repos don't retain outdated packages (though you can possibly use the ARM to obtain them), so 'pacman -S package' will get you a 404 error.

Updating via cron is a Very Bad Idea™ too. Arch is a very hands-on distro. I think you may find something like debian better suited to your needs.

Re: [SOLVED] Building Toilet, glibc b0rked sys with pacman --force

theoddsarebad wrote:

You probably don't want to hear this, but I've had this arch system for over a year now, and the only time I ever did a pacman -Syu was when I first set it up, hah. I had one incident before that to do with pcre after an update, and a couple times had to update pacman, but never ran into anything like this before.

Does that mean the Arch Linux server you're working on is not a computer you use very often? And out of curiousity, why are you installing a video game on a server?

So I should be updating everything every month? Would it make sense to just run pacman -Syu in a crontab once a month at 3am or something?

Oh, no! Don't update in a cron job! As the user of your Arch Linux computer, it's your job (and not the Arch Linux developers') to make sure an update goes correctly and that nothing breaks. I'd say updating once a month is a dangerous bare minimum. I update at least once a day, but mostly just because it's fun.

I hope you don't take offense at this but, I think you're the most experienced unexperienced Arch Linux user I've ever met. It's fascinating!

Re: [SOLVED] Building Toilet, glibc b0rked sys with pacman --force

Is a good idea to use pacman from cron IF and only if, you do it with the w flag.That would download the packages, but wont install them. That way the next day you can do the install process in a less time-consuming way

"open source is about choice"No.Open source is about opening the source code complying with this conditions, period. The ability to choose among several packages is just a nice side effect.

Re: [SOLVED] Building Toilet, glibc b0rked sys with pacman --force

I sync my pacman databases once an hour, with -Sy, using cron. I also use reflector to generate a new mirrorlist once a week, and follow that up with a -Syy refresh, to try and ensure that my pacman's databases are always fairly up-to-date.

Re: [SOLVED] Building Toilet, glibc b0rked sys with pacman --force

WorMzy wrote:

The repos don't retain outdated packages (though you can possibly use the ARM to obtain them), so 'pacman -S package' will get you a 404 error.

Very true, but a 404 error will not damage one's system in any way. That's just a sign that one should do an 'Syu'. If one gets a 404 error trying to install 'package' for this reason, then they proceed with `pacman -Sy package`, it is quite possible they will have damage to their system.

I'd rather have a command fail at installing a package than suceed at breaking my system.

When should you sync? You'll get lots of opinions on how often, but I'd stand firm on my answer of "only as often as you update". In otherwords, only use -Sy as part of an -Syu.

If you need to sync your database to install a package, there is a high likelihood that'd you'd also need to update your system to install that package without breaking something.

Re: [SOLVED] Building Toilet, glibc b0rked sys with pacman --force

Ok, I'm going to mark this thread as solved. I already got my system back online and refreshed (not all services installed yet, but most things back), was held back a little by the new systemd way of doing things, but I think I've got all my rc.conf stuff translated correctly over to that now.

Anyway, so I got base-devel installed and of course then Toilet built without issues, everything looks good.

Wow, if only configure scripts would say something like 'the tool im using to check if your files exist... doesnt exist!'. It's sort of an insane leap in logic to go from 'command not found' to saying 'library doesn't exist', haha.

Of course, some lessons learned; pacman -Sy and pacman -Syu once a month should keep the system in healthy standing, which should help to avoid issues like this. : )