You are not logged in.

#1 2012-12-06 15:47:27

theoddsarebad
Member
Registered: 2012-12-06
Posts: 19

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

Solution:

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. : )

Here's basically what I've done so far;

I so very much wanted Toilet installed, and here it is in AUR! https://aur.archlinux.org/packages/toilet/

Simple enough, small program. It has a 'special' dependency, this library: https://www.archlinux.org/packages/extra/i686/libcaca/

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... no
configure: 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.

No problem! I'll grab that from the repo.

pacman -S automake, returns automake 1.12.5.

Crap.

OK, find, I'll grab this from AUR: https://aur.archlinux.org/packages/automake-1.9/

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?

I hope someone here has some ideas.

Last edited by theoddsarebad (2012-12-06 22:01:33)

Offline

#2 2012-12-06 15:54:37

WorMzy
Forum Moderator
From: Scotland
Registered: 2010-06-16
Posts: 5,532

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

Do you have base-devel installed?


Sakura:-
Mobo: ASUS P8Z77-V PRO // Processor: Intel Core i7-3770K 3.4GHz // GFX: nVidia GeForce GTX 970 Ti // RAM: 32GB (4x 8GB) Corsair DDR3 (@ 2133MHz) // Storage: 1x 3TB Seagate SATAII 5x 1TB Samsung SATAII, 2x 120GB Corsair SSD

Offline

#3 2012-12-06 15:58:51

drcouzelis
Member
From: Connecticut, USA
Registered: 2009-11-09
Posts: 3,522
Website

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

theoddsarebad wrote:

bootstrap requires automake > 1.5.

pacman -S automake, returns automake 1.12.5.

Version 1.12 is totally newer than version 1.5. smile

Offline

#4 2012-12-06 16:07:07

Trilby
Forum Moderator
From: Massachusetts, USA
Registered: 2011-11-29
Posts: 14,190
Website

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

Builds fine here.

Does the following command return the same for you?

$ pkg-config --cflags --libs caca
 -lcaca

Last edited by Trilby (2012-12-06 16:07:26)


InterrobangSlider
• How's my coding? See this page.
• How's my moderating? Feel free to email any concerns, complaints, or objections.

Offline

#5 2012-12-06 16:10:32

theoddsarebad
Member
Registered: 2012-12-06
Posts: 19

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

drcouzelis wrote:
theoddsarebad wrote:

bootstrap requires automake > 1.5.

pacman -S automake, returns automake 1.12.5.

Version 1.12 is totally newer than version 1.5. smile

Tell that to this bootstrap file, it doesn't seem to believe it. : (

WorMzy wrote:

Do you have base-devel installed?

Looks like I didn't, I'll give that a shot.


Trilby wrote:

Does the following command return the same for you?

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.

OK, I'll post back after I give this all a run with base-devel there.

Last edited by theoddsarebad (2012-12-06 16:13:20)

Offline

#6 2012-12-06 16:20:20

theoddsarebad
Member
Registered: 2012-12-06
Posts: 19

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

Something went horribly wrong when I pacman -S base-devel... no commands work, at all.

bash: /usr/bin/pacman: No such file or directory
bash: /bin/uname: No such file or directory
bash: /usr/bin/w: No such file or directory
bash: /bin/ls: No such file or directory

... lol uhm. : ( crap.

I can echo and exit however.

Recoverable?

Full account:

$ pacman -S base-devel
:: There are 12 members in group base-devel:
:: Repository core
   1) autoconf  2) automake  3) binutils  4) bison  5) fakeroot  6) flex  7) gcc  8) libtool  9) m4  10) make  11) patch
   12) pkg-config

Enter a selection (default=all):
warning: automake-1.12.5-1 is up to date -- reinstalling
resolving dependencies...
looking for inter-conflicts...

Targets (15): gcc-libs-4.7.2-2  glibc-2.16.0-5  linux-api-headers-3.6.3-1  autoconf-2.69-1  automake-1.12.5-1  binutils-2.23.1-1
              bison-2.6.5-1  fakeroot-1.18.4-1  flex-2.5.37-1  gcc-4.7.2-2  libtool-2.4.2-7  m4-1.4.16-2  make-3.82-5  patch-2.7.1-1
              pkg-config-0.27.1-1

Total Download Size:    32.91 MiB
Total Installed Size:   138.83 MiB
Net Upgrade Size:       16.48 MiB

Proceed with installation? [Y/n] y
:: Retrieving packages from core...
linux-api-headers-3.6.3-1-i686                          616.3 KiB  3.29M/s 00:00 [##############################################] 100%
glibc-2.16.0-5-i686                                       7.8 MiB  13.8M/s 00:01 [##############################################] 100%
m4-1.4.16-2-i686                                        158.5 KiB  1726K/s 00:00 [##############################################] 100%
autoconf-2.69-1-any                                     580.6 KiB  1292K/s 00:00 [##############################################] 100%
binutils-2.23.1-1-i686                                    3.5 MiB  8.58M/s 00:00 [##############################################] 100%
bison-2.6.5-1-i686                                      437.5 KiB  2.80M/s 00:00 [##############################################] 100%
fakeroot-1.18.4-1-i686                                   53.8 KiB  1225K/s 00:00 [##############################################] 100%
flex-2.5.37-1-i686                                      773.5 KiB  4.17M/s 00:00 [##############################################] 100%
gcc-libs-4.7.2-2-i686                                   812.5 KiB  1688K/s 00:00 [##############################################] 100%
gcc-4.7.2-2-i686                                         17.6 MiB  11.3M/s 00:02 [##############################################] 100%
libtool-2.4.2-7-i686                                    268.1 KiB  2.15M/s 00:00 [##############################################] 100%
make-3.82-5-i686                                        346.3 KiB  2.54M/s 00:00 [##############################################] 100%
patch-2.7.1-1-i686                                       78.3 KiB  1308K/s 00:00 [##############################################] 100%
pkg-config-0.27.1-1-i686                                 29.0 KiB   943K/s 00:00 [##############################################] 100%
(15/15) checking package integrity                                                [##############################################] 100%
(15/15) loading package files                                                     [##############################################] 100%
(15/15) checking for file conflicts                                               [##############################################] 100%
error: failed to commit transaction (conflicting files)
glibc: /lib exists in filesystem
glibc: /usr/bin/tzselect exists in filesystem
glibc: /usr/sbin/zdump exists in filesystem
glibc: /usr/sbin/zic exists in filesystem
Errors occurred, no packages were upgraded.

So in response I tried;

pacman -S base-devel --force
:: There are 12 members in group base-devel:
:: Repository core
   1) autoconf  2) automake  3) binutils  4) bison  5) fakeroot  6) flex  7) gcc  8) libtool  9) m4  10) make  11) patch
   12) pkg-config

Enter a selection (default=all):
warning: automake-1.12.5-1 is up to date -- reinstalling
resolving dependencies...
looking for inter-conflicts...

Targets (15): gcc-libs-4.7.2-2  glibc-2.16.0-5  linux-api-headers-3.6.3-1  autoconf-2.69-1  automake-1.12.5-1  binutils-2.23.1-1
              bison-2.6.5-1  fakeroot-1.18.4-1  flex-2.5.37-1  gcc-4.7.2-2  libtool-2.4.2-7  m4-1.4.16-2  make-3.82-5  patch-2.7.1-1
              pkg-config-0.27.1-1

Total Installed Size:   138.83 MiB
Net Upgrade Size:       16.48 MiB

Proceed with installation? [Y/n] y
(15/15) checking package integrity                                                [##############################################] 100%
(15/15) loading package files                                                     [##############################################] 100%
(15/15) checking available disk space                                             [##############################################] 100%
( 1/15) upgrading linux-api-headers                                               [##############################################] 100%
( 2/15) upgrading glibc                                                           [##############################################] 100%
warning: /etc/locale.gen installed as /etc/locale.gen.pacnew
error: extract: not overwriting dir with file lib
error: problem occurred while upgrading glibc
call to execv failed (No such file or directory)
error: command failed to execute correctly
error: could not commit transaction
error: failed to commit transaction (transaction aborted)
Errors occurred, no packages were upgraded.

Last edited by theoddsarebad (2012-12-06 16:23:28)

Offline

#7 2012-12-06 16:24:31

Trilby
Forum Moderator
From: Massachusetts, USA
Registered: 2011-11-29
Posts: 14,190
Website

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).

Last edited by Trilby (2012-12-06 16:28:23)


InterrobangSlider
• How's my coding? See this page.
• How's my moderating? Feel free to email any concerns, complaints, or objections.

Offline

#8 2012-12-06 16:24:54

WorMzy
Forum Moderator
From: Scotland
Registered: 2010-06-16
Posts: 5,532

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

Did you remove glibc or something?

Can you copy and paste the output of the pacman command here? In [ code ] tags preferably. Installing base-devel shouldn't cause this sort of problem.

EDIT: from your updated post, I agree with Trilby's summation. You have a very outdated system, and you need to sort that out before you do anything else.

Last edited by WorMzy (2012-12-06 16:27:23)


Sakura:-
Mobo: ASUS P8Z77-V PRO // Processor: Intel Core i7-3770K 3.4GHz // GFX: nVidia GeForce GTX 970 Ti // RAM: 32GB (4x 8GB) Corsair DDR3 (@ 2133MHz) // Storage: 1x 3TB Seagate SATAII 5x 1TB Samsung SATAII, 2x 120GB Corsair SSD

Offline

#9 2012-12-06 16:30:30

Trilby
Forum Moderator
From: Massachusetts, USA
Registered: 2011-11-29
Posts: 14,190
Website

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.


InterrobangSlider
• How's my coding? See this page.
• How's my moderating? Feel free to email any concerns, complaints, or objections.

Offline

#10 2012-12-06 16:31:08

theoddsarebad
Member
Registered: 2012-12-06
Posts: 19

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.

It's going to be a long day... sigh.

Thanks again,

Last edited by theoddsarebad (2012-12-06 16:32:11)

Offline

#11 2012-12-06 16:44:18

WorMzy
Forum Moderator
From: Scotland
Registered: 2010-06-16
Posts: 5,532

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

Partial upgrades aren't supported.

You might be able to salvage the situation somewhat using the "online fix if --force'd" method described here: https://wiki.archlinux.org/index.php/Ta … ib_symlink


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.


Sakura:-
Mobo: ASUS P8Z77-V PRO // Processor: Intel Core i7-3770K 3.4GHz // GFX: nVidia GeForce GTX 970 Ti // RAM: 32GB (4x 8GB) Corsair DDR3 (@ 2133MHz) // Storage: 1x 3TB Seagate SATAII 5x 1TB Samsung SATAII, 2x 120GB Corsair SSD

Offline

#12 2012-12-06 16:45:27

Trilby
Forum Moderator
From: Massachusetts, USA
Registered: 2011-11-29
Posts: 14,190
Website

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).

Last edited by Trilby (2012-12-06 16:46:04)


InterrobangSlider
• How's my coding? See this page.
• How's my moderating? Feel free to email any concerns, complaints, or objections.

Offline

#13 2012-12-06 16:48:58

drcouzelis
Member
From: Connecticut, USA
Registered: 2009-11-09
Posts: 3,522
Website

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

theoddsarebad wrote:
drcouzelis wrote:
theoddsarebad wrote:

bootstrap requires automake > 1.5.
pacman -S automake, returns automake 1.12.5.

Version 1.12 is totally newer than version 1.5.

Tell that to this bootstrap file, it doesn't seem to believe it.

According to the PKGBUILD file, the bootstrap file isn't necessary. It's just configure, make, and make install.

By the way, I think you win an award for "Interesting Thread Title". smile

Offline

#14 2012-12-06 17:16:45

theoddsarebad
Member
Registered: 2012-12-06
Posts: 19

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?

Last edited by theoddsarebad (2012-12-06 17:18:08)

Offline

#15 2012-12-06 17:19:48

jasonwryan
Forum & Wiki Admin
From: .nz
Registered: 2009-05-09
Posts: 19,327
Website

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

The title suggests this should be in AUR issues, but the content of the thread clearly put it in Newbie Corner,

theoddsarebad, please retitle your thread to reflect your glibc fubar so it accurately reflects your core issue.


Moving to NC...


Arch + dwm   •   Mercurial repos  •   Github

Registered Linux User #482438

Offline

#16 2012-12-06 17:28:18

WorMzy
Forum Moderator
From: Scotland
Registered: 2010-06-16
Posts: 5,532

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.


Sakura:-
Mobo: ASUS P8Z77-V PRO // Processor: Intel Core i7-3770K 3.4GHz // GFX: nVidia GeForce GTX 970 Ti // RAM: 32GB (4x 8GB) Corsair DDR3 (@ 2133MHz) // Storage: 1x 3TB Seagate SATAII 5x 1TB Samsung SATAII, 2x 120GB Corsair SSD

Offline

#17 2012-12-06 17:30:46

drcouzelis
Member
From: Connecticut, USA
Registered: 2009-11-09
Posts: 3,522
Website

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! wink

Offline

#18 2012-12-06 17:54:05

theoddsarebad
Member
Registered: 2012-12-06
Posts: 19

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

drcouzelis,

I went with Arch for a VPS which I use to host various services also for programming/scripting/etc.

Title updated as requested.

WorMzy, I'm curious to know when you'd think it's a good point to sync DB's? After each major update?

Last edited by theoddsarebad (2012-12-06 17:58:51)

Offline

#19 2012-12-06 18:13:39

chris_l
Member
Registered: 2010-12-01
Posts: 387

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.

Offline

#20 2012-12-06 18:24:57

WorMzy
Forum Moderator
From: Scotland
Registered: 2010-06-16
Posts: 5,532

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.


Sakura:-
Mobo: ASUS P8Z77-V PRO // Processor: Intel Core i7-3770K 3.4GHz // GFX: nVidia GeForce GTX 970 Ti // RAM: 32GB (4x 8GB) Corsair DDR3 (@ 2133MHz) // Storage: 1x 3TB Seagate SATAII 5x 1TB Samsung SATAII, 2x 120GB Corsair SSD

Offline

#21 2012-12-06 19:37:58

Trilby
Forum Moderator
From: Massachusetts, USA
Registered: 2011-11-29
Posts: 14,190
Website

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.


InterrobangSlider
• How's my coding? See this page.
• How's my moderating? Feel free to email any concerns, complaints, or objections.

Offline

#22 2012-12-06 21:53:21

theoddsarebad
Member
Registered: 2012-12-06
Posts: 19

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. : )

Thanks again,

Offline

#23 2012-12-06 22:19:02

doug piston
Member
From: Seattle
Registered: 2011-09-11
Posts: 387
Website

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

Please, more than once a month and your experience with Arch will be much better.

Offline

Board footer

Powered by FluxBB