LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 01-10-2008, 12:57 PM   #16
Lufbery
Senior Member
 
Registered: Aug 2006
Location: Harrisburg, PA
Distribution: Slackware 64 14.2
Posts: 1,180
Blog Entries: 29

Rep: Reputation: 135Reputation: 135

Quote:
Originally Posted by gnashley View Post
Quick what does this mean:
Kindertagesstaettenbenutzungsgebuehren
Going on my sketchy German:

School field trip?
 
Old 01-10-2008, 01:02 PM   #17
dive
Senior Member
 
Registered: Aug 2003
Location: UK
Distribution: Slackware
Posts: 3,467

Rep: Reputation: Disabled
SIGNIATURE should be SIGNATURE

I will make some packages when I get time

Last edited by dive; 01-10-2008 at 01:04 PM.
 
Old 01-10-2008, 01:53 PM   #18
gnashley
Amigo developer
 
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,928

Original Poster
Rep: Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612
Quick what does this mean:
Kindertagesstaettenbenutzungsgebuehren

Going on my sketchy German:

School field trip?

German is a kind of funny language. Luckily most words like this have just one meaning, and you wouldn't have to use it often unless you're the one who collects these "kinder garden usage fees". On the other hand, if you look up the 'zu' you'll find over 300 separate ways to use it!

"SIGNIATURE should be SIGNATURE" I still thought you were joking. I had to go look it up before disputing you and now see I'll have to eat crow! I guess I got too used to seeing signi??? from Spanish, although it's still 'signatura' in Spanish whatever it 'signifies'.
So, you win dive, I'll have to correct that. Unfortunately that means you'll have to update your src2pkg.conf file again next time. (Ahh well, Gilbert, perhaps you should take more afternoon naps...)
 
Old 01-11-2008, 07:13 AM   #19
Lufbery
Senior Member
 
Registered: Aug 2006
Location: Harrisburg, PA
Distribution: Slackware 64 14.2
Posts: 1,180
Blog Entries: 29

Rep: Reputation: 135Reputation: 135
Ah. I confused benutzen with besuchen.
 
Old 01-13-2008, 04:57 PM   #20
Lufbery
Senior Member
 
Registered: Aug 2006
Location: Harrisburg, PA
Distribution: Slackware 64 14.2
Posts: 1,180
Blog Entries: 29

Rep: Reputation: 135Reputation: 135
Gilbert,

Scribus 1.3.3.11 built perfectly with src2pkg 1.9.2. It looks like I don't need to build Opera, the download page for the latest version does not offer source files that I could see, but they do have a Slackware package.

EDIT: I'm wrong. The Slackware download for Opera still needs to be made into a package. I'll let you know how it goes.

I'll probably soon be tackling Bluefish and Inkscape.

Regards,

-Drew

Last edited by Lufbery; 01-13-2008 at 06:39 PM.
 
Old 01-13-2008, 05:23 PM   #21
General Failure
Member
 
Registered: Jan 2007
Location: Germany
Distribution: Slackware 13.37
Posts: 387

Rep: Reputation: 37
Quote:
Originally Posted by gnashley View Post
Kindertagesstaettenbenutzungsgebuehren
How about this one:

Kindertagesstaettenbenutzungsgebuehrenueberweisungstraeger

Sorry, could not resist. Hehe. This one could be extended even further. It's a completely correct German word btw. Hell, I love German
 
Old 01-13-2008, 06:49 PM   #22
Lufbery
Senior Member
 
Registered: Aug 2006
Location: Harrisburg, PA
Distribution: Slackware 64 14.2
Posts: 1,180
Blog Entries: 29

Rep: Reputation: 135Reputation: 135
Hi Gilbert,

I've got problems making a Opera.

I typed:
Code:
src2pkg -VV -C -W -S -i='make install' opera-9.25-20071214.6-shared-qt.i386-en.tar.gz
Here's the output:
Code:
Found source archive: opera-9.25-20071214.6-shared-qt.i386-en.tar.gz
Creating working directories:
   PKG_DIR=/tmp/opera-9.25-20071214.6-pkg-1
   SRC_DIR=/tmp/opera-9.25-20071214.6-src-1
Unpacking source archive -
opera-9.25-20071214.6-shared-qt.i386-en-687/
opera-9.25-20071214.6-shared-qt.i386-en-687/locale/
opera-9.25-20071214.6-shared-qt.i386-en-687/locale/en/
opera-9.25-20071214.6-shared-qt.i386-en-687/locale/en/license.txt
opera-9.25-20071214.6-shared-qt.i386-en-687/locale/en/search.ini
opera-9.25-20071214.6-shared-qt.i386-en-687/locale/en/default.adr
opera-9.25-20071214.6-shared-qt.i386-en-687/locale/english.lng
opera-9.25-20071214.6-shared-qt.i386-en-687/LICENSE
opera-9.25-20071214.6-shared-qt.i386-en-687/opera6.adr
opera-9.25-20071214.6-shared-qt.i386-en-687/lngcode.txt
opera-9.25-20071214.6-shared-qt.i386-en-687/search.ini
opera-9.25-20071214.6-shared-qt.i386-en-687/config/
opera-9.25-20071214.6-shared-qt.i386-en-687/config/opera6rc
opera-9.25-20071214.6-shared-qt.i386-en-687/config/opera6rc.fixed
opera-9.25-20071214.6-shared-qt.i386-en-687/bin/
opera-9.25-20071214.6-shared-qt.i386-en-687/bin/opera
opera-9.25-20071214.6-shared-qt.i386-en-687/bin/works
opera-9.25-20071214.6-shared-qt.i386-en-687/lib/
opera-9.25-20071214.6-shared-qt.i386-en-687/lib/spellcheck.so
opera-9.25-20071214.6-shared-qt.i386-en-687/lib/missingsyms.so
opera-9.25-20071214.6-shared-qt.i386-en-687/ini/
opera-9.25-20071214.6-shared-qt.i386-en-687/ini/dialog.ini
opera-9.25-20071214.6-shared-qt.i386-en-687/ini/fastforward.ini
opera-9.25-20071214.6-shared-qt.i386-en-687/ini/standard_keyboard.ini
opera-9.25-20071214.6-shared-qt.i386-en-687/ini/standard_menu.ini
opera-9.25-20071214.6-shared-qt.i386-en-687/ini/standard_mouse.ini
opera-9.25-20071214.6-shared-qt.i386-en-687/ini/standard_toolbar.ini
opera-9.25-20071214.6-shared-qt.i386-en-687/ini/unix_keyboard.ini
opera-9.25-20071214.6-shared-qt.i386-en-687/ini/filehandler.ini
opera-9.25-20071214.6-shared-qt.i386-en-687/ini/pluginpath.ini
opera-9.25-20071214.6-shared-qt.i386-en-687/ini/xmlentities.ini
opera-9.25-20071214.6-shared-qt.i386-en-687/html40_entities.dtd
opera-9.25-20071214.6-shared-qt.i386-en-687/java/
opera-9.25-20071214.6-shared-qt.i386-en-687/java/opera.jar
opera-9.25-20071214.6-shared-qt.i386-en-687/man/
opera-9.25-20071214.6-shared-qt.i386-en-687/man/opera.1
opera-9.25-20071214.6-shared-qt.i386-en-687/images/
opera-9.25-20071214.6-shared-qt.i386-en-687/images/opera.xpm
opera-9.25-20071214.6-shared-qt.i386-en-687/images/opera_16x16.png
opera-9.25-20071214.6-shared-qt.i386-en-687/images/opera_22x22.png
opera-9.25-20071214.6-shared-qt.i386-en-687/images/opera_32x32.png
opera-9.25-20071214.6-shared-qt.i386-en-687/images/opera_48x48.png
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/about.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/cache.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/certinfo.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/config.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/contentblock.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/dir.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/drives.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/error.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/history.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/im.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/image.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/info.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/mime.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/plugins.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/warning.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/accessibility.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/altdebugger.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/classid.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/contrastbw.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/contrastwb.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/disablebreaks.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/disablefloats.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/disableforms.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/disablepositioning.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/disabletables.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/outline.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/structureblock.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/structureinline.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/structuretables.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/tablelayout.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/user/toc.css
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/images/
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/images/bar.png
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/images/center.png
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/images/opera.png
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/images/root.png
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/images/top.png
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/images/red_center.png
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/images/red_left.png
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/images/red_right.png
opera-9.25-20071214.6-shared-qt.i386-en-687/styles/wml.css
opera-9.25-20071214.6-shared-qt.i386-en-687/skin/
opera-9.25-20071214.6-shared-qt.i386-en-687/skin/standard_skin.zip
opera-9.25-20071214.6-shared-qt.i386-en-687/skin/windows_skin.zip
opera-9.25-20071214.6-shared-qt.i386-en-687/chartables.bin
opera-9.25-20071214.6-shared-qt.i386-en-687/svg-mo.dat
opera-9.25-20071214.6-shared-qt.i386-en-687/svg-mobd.dat
opera-9.25-20071214.6-shared-qt.i386-en-687/svg-sa.dat
opera-9.25-20071214.6-shared-qt.i386-en-687/svg-sabd.dat
opera-9.25-20071214.6-shared-qt.i386-en-687/svg-se.dat
opera-9.25-20071214.6-shared-qt.i386-en-687/svg-sebd.dat
opera-9.25-20071214.6-shared-qt.i386-en-687/plugins/
opera-9.25-20071214.6-shared-qt.i386-en-687/plugins/operapluginwrapper
opera-9.25-20071214.6-shared-qt.i386-en-687/plugins/operaplugincleaner
opera-9.25-20071214.6-shared-qt.i386-en-687/plugins/libnpp.so
opera-9.25-20071214.6-shared-qt.i386-en-687/opera
opera-9.25-20071214.6-shared-qt.i386-en-687/install.sh

Correcting source permissions - Done
Checking for patches - None found
Skipping configure_source -
Skipping compile_source -
Installing using DESTDIR - Using:
   make DESTDIR=/tmp/opera-9.25-20071214.6-pkg-1 install
cat install.sh >install
chmod a+x install
Installation in DESTDIR - Successful
Processing package content:
Correcting package permissions - Done
No unstripped ELF binaries were found. Skipping...
No unstripped static archives found. Skipping...
No unstripped shared libraries found. Skipping...
ERROR!  The package tree has no content!
For now, we bail out from the top of create_docs.
src2pkg FAILURE in EMPTY PKG_DIR
I hope this helps debug the problem; assuming, of course that the bug isn't between my ears. If that's the case, just let me know.

Regards,

-Drew
 
Old 01-13-2008, 08:03 PM   #23
gilead
Senior Member
 
Registered: Dec 2005
Location: Brisbane, Australia
Distribution: Slackware64 14.0
Posts: 4,141

Rep: Reputation: 168Reputation: 168
Some feedback from a Slackware 12 user. I installed the new version and ran the following to test my PHP 5 build:
Code:
src2pkg -A -C -VV -W -a='i686' -e='--with-apxs2=/usr/local/apache2/bin/apxs --with-openssl --with-mysql' php-5.2.5.tar.bz2
I've run it multiple times and each time it hangs on the PHP header files. After the successful build, the output is:
Code:
Build complete.
Don't forget to run 'make test'.

Compiling has been - Successful!
NOTICE -  DESTDIR not supported. Falling back to JAIL install
Installing in jail root - Using: 'make install'
Installing PHP SAPI module:       apache2handler
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' libphp5.la /usr/local/apache2/modules
/usr/local/apache2/build/libtool --mode=install cp libphp5.la /usr/local/apache2/modules/
cp .libs/libphp5.so /usr/local/apache2/modules/libphp5.so
cp .libs/libphp5.lai /usr/local/apache2/modules/libphp5.la
libtool: install: warning: remember to run `libtool --finish /tmp/php-5.2.5-src-1/libs'
chmod 755 /usr/local/apache2/modules/libphp5.so
[activating module `php5' in /usr/local/apache2/conf/httpd.conf]
rm: cannot remove `/usr/local/apache2/conf/httpd.conf.new': No such file or directory
Installing PHP CLI binary:        /usr/bin/
Installing PHP CLI man page:      /usr/man/man1/
Installing build environment:     /usr/lib/php/build/
Installing header files:          /usr/include/php/
I uninstalled src2pkg-1.9.2-noarch-2.tgz and went back to the old version (src2pkg-1.8-i486-1_K26.tgz) so it's no big deal at this stage.

Maybe the problem is that it's using the jail since it says that DESTDIR is not supported? If anyone has any suggestions (or can point out errors I've made) I'll go back and re-do my packages and post the results.

EDIT: I get the same error with that version of src2pkg as well. It looks like I built the original PHP package with an earlier src2pkg release.

Last edited by gilead; 01-13-2008 at 08:09 PM.
 
Old 01-13-2008, 09:43 PM   #24
tuxdev
Senior Member
 
Registered: Jul 2005
Distribution: Slackware
Posts: 2,012

Rep: Reputation: 115Reputation: 115
Lufbery: I think you want "./install.sh", not "make install". I don't get how "make install" could even work because I see no Makefile.

gilead: Are you talking about the error rm is spitting out? That error does not look like critical. Please post the rest of the output. BTW, is apache2 a package? If so, it should be in /usr, not /usr/local.

Last edited by tuxdev; 01-13-2008 at 09:51 PM.
 
Old 01-13-2008, 11:02 PM   #25
gilead
Senior Member
 
Registered: Dec 2005
Location: Brisbane, Australia
Distribution: Slackware64 14.0
Posts: 4,141

Rep: Reputation: 168Reputation: 168
Quote:
Originally Posted by tuxdev View Post
gilead: Are you talking about the error rm is spitting out? That error does not look like critical. Please post the rest of the output. BTW, is apache2 a package? If so, it should be in /usr, not /usr/local.
Sorry, no I didn't mean the rm error. The "Installing header files" line is where it hangs. I've let it sit for over half an hour on one occasion.

Apache 2.0 on my system is compiled and installed from sources manually. It's one of the applications I haven't gotten around to packaging up yet.
 
Old 01-14-2008, 03:54 AM   #26
gnashley
Amigo developer
 
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,928

Original Poster
Rep: Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612
First of all, forgive the inconvenience, but you should all update to the latest version (src2pkg-1.9.3-noarch-2) from the usual place.
http://distro.ibiblio.org/pub/linux/...nload/src2pkg/

As I've already mentioned, quite a few small bugs got introduced in the last two versions with so much code being changed and moved around. I'm going to be away from home for two weeks starting on Wednesday so I've been trying to get rid of whatever problems have come up before I leave.

About building opera, you'll have to do that using -REAL (the old deafult) since the installer tries to install to the real path. Otherwise you'll probably get a package with just docs. And tuxedv is correct that you need 'sh ./install.sh' as the install rule.
src2pkg -VV -C -W -S -i='sh ./install.sh' -n=opera -v=9.25 -REAL opera-9.25-20071214.6-shared-qt.i386-en.tar.gz

Now about php, it seems like it may be installing some files and then carrying out further operations on them or using them to process other files in the sources. Try building using the -REAL option (as root).

Having more than one method to install makes it a little confusing, perhaps. For most of its' life, src2pkg only used what is now called the 'REAL' method and it is still the most dependable. But you must be 'root' to use it and of course it makes it possible to damage your system. But, it still uses the same code as before to backup, and then restore, any files which get overwritten on your system. the other methods using DESTDIR and JAIL root have been introduced to make it possible for normal users to create packages and to reduce the risks from writing directly to your '/' directory. Unfortunately, neither DESTDIR nor JAIL will work every time -there was a very good reason that src2pkg used to 'spam' your '/' directory -running 'make install' directly provides the most dependable way to carry out the installation and provides the best chance of being able to accurately track the creation of files and directories. So, if you are unable to build a correct package using the DESTDIR or JAIL methods, you can always fall back to the old 'REAL' way of doing things.
 
Old 01-14-2008, 04:51 AM   #27
andrew.46
Senior Member
 
Registered: Oct 2007
Distribution: Slackware
Posts: 1,365

Rep: Reputation: 493Reputation: 493Reputation: 493Reputation: 493Reputation: 493
Not to turn you away from the great src2pkg program:

Quote:
Originally Posted by Lufbery View Post

I'll probably soon be tackling Bluefish and Inkscape.
but I have used bluefish for a long time and installed it from a great script at Slackbuilds.org. Good to have so many choices isn't it?

Andrew
 
Old 01-14-2008, 05:07 AM   #28
gnashley
Amigo developer
 
Registered: Dec 2003
Location: Germany
Distribution: Slackware
Posts: 4,928

Original Poster
Rep: Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612Reputation: 612
I also recommend using SlackBuilds when they are available. I also find it quite easy to 'port' them to the src2pkg format(much easier than vice-versa!). I'll mention that I'm considering adding a feature to src2pkg which will search for SlackBuilds and use them when available. I've already gotten a start on some of the code, but this a pretty low-priority item for the moment. Many users get the idea that src2pkg will create a perfect package the first time, or that it tries to. This is not the case, though. There is no substitute for the human element when building packages and many, many packages need special steps or added options to be supplied in order to build correctly. This is especially true for complex programs which provide 'services' or otherwise need to be integrated into the init scripts. And since most of these programs don't come out-of-the-box with support for Slackware-style init script modifications, the package creators must take care of these things. Most of the SlackBuilds on SlackBuilds.org address just this sort of software, and though src2pkg may be able to successfully compile and package the program, the program may not work as expected. Still, src2pkg makes it extermely easy to repeat the build as many times as needed until everything is just right. Sometimes this means *dozens* of rebuilds.
 
Old 01-14-2008, 07:50 AM   #29
Lufbery
Senior Member
 
Registered: Aug 2006
Location: Harrisburg, PA
Distribution: Slackware 64 14.2
Posts: 1,180
Blog Entries: 29

Rep: Reputation: 135Reputation: 135
Quote:
Originally Posted by gnashley View Post
About building opera, you'll have to do that using -REAL (the old deafult) since the installer tries to install to the real path. Otherwise you'll probably get a package with just docs. And tuxedv is correct that you need 'sh ./install.sh' as the install rule.
src2pkg -VV -C -W -S -i='sh ./install.sh' -n=opera -v=9.25 -REAL opera-9.25-20071214.6-shared-qt.i386-en.tar.gz
Ah, I see the mistake I made with "install.sh." So the bug was between my ears.

Still, I built Opera before with src2pkg 1.6 using this command:

Code:
src2pkg -C -VV -W -S opera-9.24-20071015.6-shared-qt.i386-en.tar.gz
The "-S" switch automatically caught the install.sh script. Why are these additional switches needed?

Code:
-i='sh ./install.sh' -n=opera -v=9.25 -REAL
Thanks, Gilbert.

Regards,

-Drew
 
Old 01-14-2008, 07:56 AM   #30
Lufbery
Senior Member
 
Registered: Aug 2006
Location: Harrisburg, PA
Distribution: Slackware 64 14.2
Posts: 1,180
Blog Entries: 29

Rep: Reputation: 135Reputation: 135
Yup, Slackbuilds from Slackbuilds.org are great!

Quote:
Originally Posted by gnashley View Post
There is no substitute for the human element when building packages and many, many packages need special steps or added options to be supplied in order to build correctly. This is especially true for complex programs which provide 'services' or otherwise need to be integrated into the init scripts. And since most of these programs don't come out-of-the-box with support for Slackware-style init script modifications, the package creators must take care of these things.
Before I started diving into this topic, I had no idea how complex it could be to build a good package. Src2pgk is, for me, a great way to learn more about the packages while creating functional software. If I had to script my builds from scratch, I wouldn't be as enthusiastic about the process.

Quote:
Most of the SlackBuilds on SlackBuilds.org address just this sort of software, and though src2pkg may be able to successfully compile and package the program, the program may not work as expected. Still, src2pkg makes it extremely easy to repeat the build as many times as needed until everything is just right. Sometimes this means *dozens* of rebuilds.
Gilbert, your support also greatly aids the process. Thank you.

Regards,

-Drew
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Next release? polarbear20000 Slackware 24 06-05-2007 03:19 PM
FC5 development release and FC5 official release- where is the DVD iso? smiley_lauf Fedora 11 03-13-2006 01:38 PM
SUSE Release 10 RC1 Release Candidate 1 available 1kyle SUSE / openSUSE 8 09-11-2005 06:26 PM
Release IP gordongraham Linux - Networking 4 06-23-2005 02:57 PM
Next release? vi0lat0r Slackware 14 04-06-2004 05:28 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 04:34 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration