The time now is Thu 19 Apr 2018, 23:37
All times are UTC - 4 |
Author |
Message |
live
Joined: 10 Feb 2010 Posts: 220
|
Posted: Wed 16 Apr 2014, 04:48 Post subject:
|
|
Quote: | Are you using a '--prefix=??' on the command-line |
No, as you see in the preceedeing post my CLI is
Code: | src2pkg -CWD -PET --arch=i686 openssl-1.0.1g.tar.gz |
Quote: | or in the src2pkg.conf file? |
No, I installed your posted pet and unmodified.
Now, it's interesting to look at this conf file.
Does "my" command line generate compiled code working for i486, but when possible optimises it for i686?
Code: | # settings for generic puppy
[[ $ARCH ]] || ARCH="i486"
[[ $MARCH_FLAG ]] || MARCH_FLAG="i486"
[[ $PKG_FORMAT ]] || PKG_FORMAT=pet
PET2=1
[[ $INIT_DIR ]] || INIT_DIR=/etc/rc.d |
RE: page 229 of GCC manual http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/i386-and-x86_002d64-Options.html
|
Back to top
|
|
 |
amigo
Joined: 02 Apr 2007 Posts: 2641
|
Posted: Wed 16 Apr 2014, 15:09 Post subject:
|
|
Yes, it does. 'march' is the bottom limit and 'mtune' is the upper limit, which gets set to i686 for ARCH=i486. These are the standard settings long used by most mainstream distros. So, you should be fine using the standard ARCH=i486 settings.
Sorry about the prefix stuff, I should have looked here at my build script for openssl to see if there were any abnormalities to the build. Turns out it is rather involved, so I'll attach my materials.
The file openssl.src2pkg.gz is a fake gz file, simply rename to remove the '.gz' suffix. That is then the build recipe for openssl. It will use a couple of patches included in the (real) archive named openssl-patches.tar.bz2. Simply place those two files alongside the openssl sources and run 'src2pkg -X' to use that recipe.
Description |
|

Download |
Filename |
openssl.src2pkg.gz |
Filesize |
3.47 KB |
Downloaded |
205 Time(s) |
Description |
|

Download |
Filename |
openssl-patches.tar.bz2 |
Filesize |
4.82 KB |
Downloaded |
187 Time(s) |
|
Back to top
|
|
 |
live
Joined: 10 Feb 2010 Posts: 220
|
Posted: Thu 17 Apr 2014, 03:23 Post subject:
|
|
>Sorry about the prefix stuff
I'm very glad to learn and exchange. If at the same time it provides enhancement it's an additional benefit for everyone.
Quote: | Yes, it does. 'march' is the bottom limit and 'mtune' is the upper limit, which gets set to i686 for ARCH=i486. These are the standard settings long used by most mainstream distros. |
Unfortunately I do know and I do consider it has a performance and ecological absurdity has i686(=Pentium Pro max 200Mhz) ceased to be produced in 1998 (now 16 years ago) and i486 SX has no floating point unit so it must be emulated by the compiler into fewer integer registers, but that might be considered as personal philosophy and I modified your config file to march=i686.
FYI: Intel history list of CPU, http://www.intel.com/pressroom/kits/quickreffam.htm
For the rest of your last post, would you be so kind to explain in other words, as I think my lack of experience in this matter prevents me of fully seizing the importance of all the concentrate information you give.
It does perfectly work and install this time.
Now interestingly, terminal suggest to it had wishes for SSE2 optimisation http://en.wikipedia.org/wiki/SSE2
Code: | sh-4.1# src2pkg -X
Running build script: openssl.src2pkg
Found source archive: openssl-1.0.1g.tar.gz
Creating working directories:
PKG_DIR=/root/Downloads/openssl-1.0.1g-i686-1
SRC_DIR=/root/Downloads/openssl-1.0.1g-src-1
Unpacking source archive - Done
Decompressing openssl-patches.tar.bz2 - Done
Correcting source permissions - Done
Applying patches - from User-Supplied PATCHLIST
Applying: openssl.soname.diff
Applying: openssl.no-extssl.diff
Applying: i486-i686.diff
Notice - Running 'make clean' in SRC_DIR - Done
Running user-specified CONFIG_COMMAND: ./config --prefix=/usr --openssldir=/etc/ssl no-idea no-rc5 no-sse2 no-engine shared
Compiling sources - Using: 'make depend all'
Compiling has been - Successful!
Checking for Makefile rule: 'install' Okay
Checking support for DESTDIR (or similar) - Found INSTALL_PREFIX
Creating package content using:
make INSTALL_PREFIX=/root/Downloads/openssl-1.0.1g-i686-1 install
Installation in INSTALL_PREFIX - Successful
Processing package content:
Correcting package permissions - Done
Stripping ELF binaries - Using: strip -p --strip-unneeded Done
Stripping static archives - Using: strip -p --strip-debug Done
Stripping shared libraries - Using: strip -p --strip-unneeded Done
Checking for standard documents - Done
Verified slack-desc.openssl found - Inserting in package as PKG_DIR/install/slack-desc
Adding src2pkg script to package in: usr/doc/openssl-1.0.1g
Rechecking package correctness:
Rechecking package permissions - Done
Checking for dead links in PKG_DIR - Done
Copying content for: openssl-SOLIBS
*** buffer overflow detected ***: /usr/libexec/src2pkg/bin/tar-1.13 terminated
======= Backtrace: =========
/lib/libc.so.6(__fortify_fail+0x45)[0xb76a60e5]
/lib/libc.so.6(+0x102eba)[0xb76a4eba]
/lib/libc.so.6(+0x1021ed)[0xb76a41ed]
/usr/libexec/src2pkg/bin/tar-1.13[0x804ff86]
/usr/libexec/src2pkg/bin/tar-1.13[0x80505b9]
/usr/libexec/src2pkg/bin/tar-1.13[0x8051cd0]
/usr/libexec/src2pkg/bin/tar-1.13[0x804a9b7]
/lib/libc.so.6(__libc_start_main+0xf3)[0xb75bb4d3]
/usr/libexec/src2pkg/bin/tar-1.13[0x804ad01]
======= Memory map: ========
08048000-08067000 r-xp 00000000 00:0b 66774 /initrd/pup_rw/usr/libexec/src2pkg/bin/tar-1.13
08067000-08068000 r-xp 0001e000 00:0b 66774 /initrd/pup_rw/usr/libexec/src2pkg/bin/tar-1.13
08068000-08069000 rwxp 0001f000 00:0b 66774 /initrd/pup_rw/usr/libexec/src2pkg/bin/tar-1.13
08069000-0808a000 rwxp 00000000 00:00 0 [heap]
b7582000-b759e000 r-xp 00000000 07:00 35738 /initrd/pup_ro2/lib/libgcc_s.so.1
b759e000-b759f000 r-xp 0001b000 07:00 35738 /initrd/pup_ro2/lib/libgcc_s.so.1
b759f000-b75a0000 rwxp 0001c000 07:00 35738 /initrd/pup_ro2/lib/libgcc_s.so.1
b75a0000-b75a2000 rwxp 00000000 00:00 0
b75a2000-b7745000 r-xp 00000000 07:00 35707 /initrd/pup_ro2/lib/libc-2.15.so
b7745000-b7747000 r-xp 001a3000 07:00 35707 /initrd/pup_ro2/lib/libc-2.15.so
b7747000-b7748000 rwxp 001a5000 07:00 35707 /initrd/pup_ro2/lib/libc-2.15.so
b7748000-b774d000 rwxp 00000000 00:00 0
b774d000-b776d000 r-xp 00000000 07:00 35686 /initrd/pup_ro2/lib/ld-2.15.so
b776d000-b776e000 r-xp 0001f000 07:00 35686 /initrd/pup_ro2/lib/ld-2.15.so
b776e000-b776f000 rwxp 00020000 07:00 35686 /initrd/pup_ro2/lib/ld-2.15.so
bff2e000-bff4f000 rw-p 00000000 00:00 0 [stack]
ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso]
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
Creating: 'pkg-manifest' Done
Searching for links in: openssl-1.0.1g-i686-1 - Done
Adding links to doinst.sh - Adding links-creation to the doinst.sh
Found '.new' files in PKG_DIR - Adding '.new' file routine to doinst.sh
Deleting symbolic links - Removing links from the package directory
Creating package: 'openssl_SOLIBS-1.0.1g-i686-1.pet' - Done
Creating package: 'openssl-1.0.1g-i686-1.pet' - Done
Package Creation - Successful! Package location:
/root/Downloads/openssl-1.0.1g-i686-1.pet
sh-4.1# openssl version
OpenSSL 1.0.1g 7 Apr 2014 |
Finally, I do not know if it is a scripting issue, but if I compile geany-1.24.tar.gz
Under "root/Downloads" I have a successful build
However if I compile on my HDD, it fails to compile, as if they were some hard coded path.
Thanks
Code: | sh-4.1# src2pkg -CWD -PET geany-1.24.tar.gz
Found source archive: geany-1.24.tar.gz
Creating working directories:
PKG_DIR=/mnt/sda7/ITC/SharedWinXp/Linux/Puppy save/pet/dev/src/geany-1.24-i686-1
SRC_DIR=/mnt/sda7/ITC/SharedWinXp/Linux/Puppy save/pet/dev/src/geany-1.24-src-1
Unpacking source archive - Done
Correcting source permissions - Done
Checking for patches - None found
Found configure script - Done
Configuring sources using:
LDFLAGS="-Wl,-O1,-L/lib,-L/usr/lib,--relax,--sort-common,--no-keep-memory" CFLAGS="-O2 -m32 -pipe -fomit-frame-pointer -fno-strict-aliasing -Wno-shadow -Wno-unused -march=i686 -mtune=i686" ./configure --prefix=/usr --libdir=/usr/lib
Configuration has been - Successful!
Compiling sources - Using: 'make'
Compiling has been - Successful!
Checking for Makefile rule: 'install' Okay
Checking support for DESTDIR (or similar) - Found DESTDIR
Creating package content using:
make DESTDIR=/mnt/sda7/ITC/SharedWinXp/Linux/Puppy save/pet/dev/src/geany-1.24-i686-1 install
Notice - Possible error running 'make install'
FATAL! Running make install has failed with error: 1
Try using INSTALL_LINE 'make -i install' Exiting...
sh-4.1# |
|
Back to top
|
|
 |
amigo
Joined: 02 Apr 2007 Posts: 2641
|
Posted: Thu 17 Apr 2014, 12:33 Post subject:
|
|
No, there are no hard-coded paths. It may have something to do with the aufs layering. That's a strange tar-1.13 error that I've never seen either. Do you get that with the failed geany build?
About sse, you may want to leave out the no-sse2 and see if that works for you -this is directly related to the march choice. As for generally trying to adjust march/mtune when compiling, this makes no sense unless you build a whole system using 'better' settings -starting with glibc itself. src2pkg itself defaults to using the most conservative and universal settings for obvious reasons. You can adjust any settings you like, as far as compiler options goes. Have a look at and near lines 258-259 for some of them. Actually the defaults there are not completely conservative -the -fomit-frame-pointer option is not good on some arches. And the -pipe option could even be causing the tar-1.13 or build errors.
You can find lots of pre-made recipes here:
http://distro.ibiblio.org/amigolinux/distro/kiss-4.0/SOURCE/
Again about openssl, its build system is a home-grown thing which works pretty different than most builds -that's why the build script has so many lines. geany, OTOH, is pretty normal. The point is that some sources require extra work to get what you want, whereas something like geany can usually be compiled without any recipe at all.
|
Back to top
|
|
 |
live
Joined: 10 Feb 2010 Posts: 220
|
Posted: Sat 19 Apr 2014, 05:37 Post subject:
|
|
>That's a strange tar-1.13 error that I've never seen either. Do you get that with the failed geany build?
It's a reproducable path bug and here is the way:
If my path is:
mnt/sda7/ITC/SharedWinXp/Linux/Puppysave/pet/dev/src
build is OK (thought contrary to a build in /root/Downloads I have way more output lines in Terminal...).
My initial path contained a blank in the folder's name so was 'Puppy save' instead of now Puppysave and there it stops on error 1.
I tested with non US char (namley: ésrc) it's ok.
I have to investigate other things regarding last post, however some others:
1/ On line 32 & 33 of /etc/src2pkg/src2pkg.conf if I modify them as
Code: | [[ $ARCH ]] || ARCH="i686"
[[ $MARCH_FLAG ]] || MARCH_FLAG="i686"
|
And then execute:
Code: | src2pkg -PET -CWD --arch=pentium4 <tar source> |
Then I see
Code: | Configuring sources using:
LDFLAGS="-Wl,-O1,-L/lib,-L/usr/lib,--relax,--sort-common,--no-keep-memory" CFLAGS="-O2 -m32 -pipe -fomit-frame-pointer -fno-strict-aliasing -Wno-shadow -Wno-unused -march=i686 -mtune=i686" ./configure --prefix=/usr --libdir=/usr/lib
|
Notice -march=i686 -mtune=i686
If I now modify src2pkg.conf and sets both param as pentium4
and execute the command I see:
Code: | Configuring sources using:
LDFLAGS="-Wl,-O1,-L/lib,-L/usr/lib,--relax,--sort-common,--no-keep-memory" CFLAGS="-O2 -m32 -pipe -fomit-frame-pointer -fno-strict-aliasing -Wno-shadow -Wno-unused -march=pentium4 -mtune=i686" ./configure --prefix=/usr --libdir=/usr/lib
|
Notice -march=pentium4 -mtune=i686
2/ Are the files in /usr/include sometimes used for linking/dependicies during build process?
3/ Quote: | this makes no sense unless you build a whole system using 'better' settings -starting with glibc itself. |
OK, good to know, any other?
|
Back to top
|
|
 |
amigo
Joined: 02 Apr 2007 Posts: 2641
|
Posted: Sat 19 Apr 2014, 10:38 Post subject:
|
|
"Notice -march=pentium4 -mtune=i686" I'll work on making it possible to get what you want there. The '--arch=??' option to src2pkg only sets the ARCH portion of the package name and does not directly affect the gcc options.
"Are the files in /usr/include sometimes used for linking/dependicies during build process?" Yes, of course, this is where development headers(include files) are located. They are not used at run-time.
"tar-1.13" So, the error occurs only and always when there is a space in the name? That can be fixed -but seeing this reminds me that for pets a normal version of tar could be used instead.
"build a whole system using 'better' settings" Since nearly everything on the system links to glibc, a small performance improvement can be had by compiling glibc to match your hardware -**but** re-compiling glibc implies re-compiling everything that gets linked to it. Further, very few sources/programs actually use 'enhanced' CPU features -the big exception is audio/video editing software and high-performance number-crunching software.
So, optimizing libraries and applications for better CPU features will usually get you no noticeable improvement. There is some noticeable improvement to be had by re-compiling the kernel to match your hardware.
|
Back to top
|
|
 |
Puppus Dogfellow

Joined: 07 Jan 2013 Posts: 1519 Location: nyc
|
Posted: Wed 23 Apr 2014, 04:05 Post subject:
|
|
i've decided to try this even though i don't know what i'm doing....
gleaning/misreading that running
Code: | src2pkg -CWD -PET --arch=i686 mixxx-1.11.0-src.tar.gz | from a terminal in a folder containing mixxx-1.11.0-src.tar.gz would give me the pet i want, i get:
# src2pkg -CWD -PET --arch=i686 mixxx-1.11.0-src.tar.gz
Notice - Creating src2pkg-helpers:
src2pkg uses a shared library and a few programs
when creating packages. For best compatibility,
these binaries will be compiled on your system.
They are then installed in a private directory.
When done, src2pkg is ready for use.
Code: |
TEMP_DIR=/usr/src/src2pkg/builds/src2pkg-helpers
Starting build in 5 seconds
Unpacking sources - OK
Creating libsentry - OK
Creating tar-1.13 - OK
Creating coreutils - OK
Creating unionfs-fuse - OK
Creating pet package - Done
Finished pet package is:
/usr/src/src2pkg/src2pkg-helpers/src2pkg-helpers-1.6-i486-1.pet
Installing pet package - |
--it's just hanging, so i figured i'd take this opportunity to ask what i've done wrong...(about a half hour so far on a moderately fast machine running precise 5.5.. lxtask shows no change in memory use and 0% cpu use).
thanks in advance.
(just checked the location the above helper pet is supposed to be in--scripts are there, but no pet.)
will try again...got a little further (helper pet created and installed) on a slower machine running 571, "build failed, must be a poor..."
forgot to copy the actual error message. (it also said something about there was no file with dependency information or something to that effect...sorry.)
attempt 2 with the 5.5. yielded no output. i hit enter with # src2pkg -CWD -PET --arch=i686 mixxx-1.11.0-src.tar.gz
and just got a cursor. back to the 571...
which gives me:
Code: |
# src2pkg -CWD -PET --arch=i686 mixx-1.11.0-src.tar.gz
FAILED! File: mixx-1.11.0-src.tar.gz not found!
Check for errors in the NAME, VERSION or SRC_SUFFIX.
# src2pkg -CWD -PET --arch=i686 mixxx-1.11.0-src.tar.gz
Found source archive: mixxx-1.11.0-src.tar.gz
Creating working directories:
PKG_DIR=/initrd/mnt/dev_save/dwnldsfff/mix111/mixxx-1.11.0-i686-1
SRC_DIR=/initrd/mnt/dev_save/dwnldsfff/mix111/mixxx-1.11.0-src-1
Unpacking source archive - Done
Correcting source permissions - Done
Checking for patches - None found
Found SConstruct file - Configuring using: 'scons configure prefix=/usr' Done
Compiling sources - Using: 'scons'
ERROR! Compiling source code has failed.
This usually happens because of missing libraries, or
badly written Makefiles or configure scripts.
Sorry! No Dependency or Requirements information found.
#
|
|
Back to top
|
|
 |
live
Joined: 10 Feb 2010 Posts: 220
|
Posted: Wed 23 Apr 2014, 06:58 Post subject:
|
|
Quote: | i've decided to try this even though i don't know what i'm doing.... |
As a math teacher told me, people doing stats without understanding, is like playing with grenades
Now seriously,
Mixxx 1.10 is in PPM and needs about 94Mb of Qt4 dependicies.
Quote: | --it's just hanging, so i figured i'd take this opportunity to ask what i've done wrong... |
I experience the same, haven't try with mixxx but:
1/ run src2pkg cmd
2/ on prompting for installing the help pet: cancel.
3/ install the help pet.
4/ re-run src2pk cmd
src2pkg can not readily build everything, for example:
gedit-2.91.11.tar.gz
gcc 8.2
testdisk 7.0
SMPlayer 14
SeaMonkey
But can build others
|
Back to top
|
|
 |
Puppus Dogfellow

Joined: 07 Jan 2013 Posts: 1519 Location: nyc
|
Posted: Wed 23 Apr 2014, 12:07 Post subject:
|
|
live wrote: | Quote: | i've decided to try this even though i don't know what i'm doing.... |
As a math teacher told me, people doing stats without understanding, is like playing with grenades
Now seriously,
Mixxx 1.10 is in PPM and needs about 94Mb of Qt4 dependicies.
Quote: | --it's just hanging, so i figured i'd take this opportunity to ask what i've done wrong... |
I experience the same, haven't try with mixxx but:
1/ run src2pkg cmd
2/ on prompting for installing the help pet: cancel.
3/ install the help pet.
4/ re-run src2pk cmd
src2pkg can not readily build everything, for example:
gedit-2.91.11.tar.gz
gcc 8.2
testdisk 7.0
SMPlayer 14
SeaMonkey
But can build others  |
yeah, but on one machine i broke it and can't seem to repair it so i figured i'd try it this way...
will mess around some more later. thanks for the insight.
|
Back to top
|
|
 |
amigo
Joined: 02 Apr 2007 Posts: 2641
|
Posted: Thu 24 Apr 2014, 08:58 Post subject:
|
|
The build for mixx is most likely failing because of missing the 'scons' program.
src2pkg can't do magic -there is too much variation in the methods used to configure and build software- as the scons example shows. src2pkg can sometimes create a correct package without any special options being passed at all. But there will always be packages which need special config options or scripted steps to build them.
I've used src2pkg to build more than 10,000 distinct sources and it allows enough flexibility to handle any sort of build -but a recipe or package-specific options are usually needed about 60% of the time. So don't be surprised or discouraged if it fails to do it automatically the first time. Many times, builds fail because of missing prerequisites.
|
Back to top
|
|
 |
Puppus Dogfellow

Joined: 07 Jan 2013 Posts: 1519 Location: nyc
|
Posted: Thu 24 Apr 2014, 09:30 Post subject:
|
|
amigo wrote: | The build for mixx is most likely failing because of missing the 'scons' program.
src2pkg can't do magic -there is too much variation in the methods used to configure and build software- as the scons example shows. src2pkg can sometimes create a correct package without any special options being passed at all. But there will always be packages which need special config options or scripted steps to build them.
I've used src2pkg to build more than 10,000 distinct sources and it allows enough flexibility to handle any sort of build -but a recipe or package-specific options are usually needed about 60% of the time. So don't be surprised or discouraged if it fails to do it automatically the first time. Many times, builds fail because of missing prerequisites. |
it seems fairly amazing. i'm not discouraged at all.
|
Back to top
|
|
 |
live
Joined: 10 Feb 2010 Posts: 220
|
Posted: Fri 25 Apr 2014, 10:17 Post subject:
|
|
>amigo
All I meant, is what you said "src2pkg can't do magic" sometimes it works as is, some times not and gave some examples.
Sorry, if they were some misinterpretation.
|
Back to top
|
|
 |
amigo
Joined: 02 Apr 2007 Posts: 2641
|
Posted: Fri 25 Apr 2014, 11:51 Post subject:
|
|
You can find lots of build scripts with patches, etc, for a reference implementation here:
http://distro.ibiblio.org/amigolinux/distro/kiss-4.0/
There are also many, many older scripts here:
http://distro.ibiblio.org/amigolinux/download/
You can have src2pkg generate a build script for you with:
src2pkg -N -Q tarball-name
or:
src2pkg -A tarball-name
The build scripts are easily modifiable to do anything at all. And they provide a repeatable, upgradeable recipe for later use. Provided that all needed depends are already present, most sources can be successfully compiled, to your needs, by only adding whatever options the sources configure script needs -although src2pkg handles the routine options like --prefix, --libdir, etc, automatically.
|
Back to top
|
|
 |
scsijon
Joined: 23 May 2007 Posts: 1310 Location: the australian mallee
|
Posted: Fri 04 Jul 2014, 18:51 Post subject:
|
|
Very nice package amigo, that can save a lot of time for me with T290 building. There's about 5100 pets to create in all of the T2 V9.0 set and I was wondering how I was going to manage it all. I know I could just do those I need, but I would like to have all of them available.
Is there a simple way to :
-just point it at a directory and tell it to create pet's from all sources in that directory;
- output resultant pets to another named directory;
-error files to a third so I can just work on those with problems;
- creates a copy of the onscreen data into a single named file so that you can initially just leave it alone to run it's course, and later check back when working on a problem.
Oh yes, and could it maybe be told to deal with patch scripts if their in the same directory as the source package.
I know a tall order, but anything to make life easier....
regards
scsijon
|
Back to top
|
|
 |
amigo
Joined: 02 Apr 2007 Posts: 2641
|
Posted: Sat 05 Jul 2014, 03:55 Post subject:
|
|
src2pkg lends itself well to being driven by other scripts -see the example GroupBuild scripts in the documentation. For best results, each source should be in its own sub-directory so that files generated or used by each build are kept separately. It also makes it possible to run more than one build at a time.
Any patches placed alongside the sources will be automatically applied.
Location of final packages can be controlled by setting PKG_DEST_DIR=/path/to/destination
The '-LOG' option will log the output of all important commands run during the build.
src2pkg is meant to create great packages -but *one at a time*. While it would be possible to make it run through a list of sources as a single run, it would defeat more important purposes. Irt can't do magic, so building 5,000+ sources is gonna take some work no matter what system you use.
While src2pkg can build lots of sources without any help or special options, there will always be some which need patches, special options or that must be done in a certain order. This is the same for all build systems, so at some point human-knowledge must come into play -which means writing build recipes, etc. However, src2pkg can leverage previous knowledge, by using rpm *.spec files, SlackBuild scrips or debian build files. This makes the process of creating a repo of sources for src2pkg much easier.
Take a good look at the example *.src2pkg scripts in the docs as there are examples for building inter-dependent packages and other unusual builds.
|
Back to top
|
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|