My goal for Release 0.3 in the beginning was to deploy Fedora Package Database and make it work with fedpkg. However, pkgdb was getting outdated so I worked on installing pkgdb2. I managed to deploy a development instance of it for my 0.1, 0.2 I could not do much as it was getting hard to communicate with Pierre.
Now, I have successfully deployed pkgdb2 on
ireland.proximity.on.ca:8080/pkgdb2
It is completely functional and nothing is broken. It has a database that it is communicating with but there is no data in it as of yet, as i did not understand all the table relationships and did not have time to look into it. Nonetheless, there is no reason why it would not work when data is put into it, because the website is connecting to the right database.
I was told to deploy the pkgdb2 on ireland on a virtual host so i set it up on port 8080. I have properly configured the firewall to allow port8080.
I requested the packages list that needed to be put into the database and I haven't got it yet, however, we have the data scheme now so that getting the packages information in there should not be a big issue. Also, if we click login on the website it is going through FAS authentication, in the future we may set up our own authentication system but for now this is working. Ideally, Anybody who is in sytem-admin or package-maintaner group in FAS should be able to modify the packages through th GUI(it is not tested yet).
The database scheme can be checked here: http://ireland.proximity.on.ca:8080/tables.txt
The database dump is also there on ireland. As of yet, the website is communicating with an empty database based on mysql.
Enjoy the holidays.
Sunday, 15 December 2013
Pkgdb2- Troubleshooting the installation and Improvement suggestions
Suggestions to the Package author:
- Please include a list of required packages in the instructions
- Sqllite database works in development version but does not work with the deployment on Fedora19. I have checked it several times on different machines. So we can either convert the data to other databases or fix the sqllite version.
- The package "Python Fedora" does not work properly when installed through yum. It has to be installed through github. We can include that in the instructions as well.
- There is this line in pkgdb2.wsgi which suggests to give a path to "pkgdb2" which is actually asking the path to the clone "packagedb2". I was really confused here :). Then I got to know how python import works to figure it out.
- Also, after installing python-flask from yum, it had to be uninstalled through pip for the FAS login to work, threebean told me that. I have no idea why.
Troubleshooting installation issues:
the most annoying errors were python import errors. If you we don't know how python is working, we will be confused."Error importing so and so module" is just python's way of saying you have not met the dependencies and some modules are missing. Whatever module python fails to load, please check if you have installed all the required packages.
Might get some errors with mysql installations. Fedora 19 comes with Mariadb, if you are familiar with it go ahead, otherwise you will have to remove mariadb and install mysql. After installing mysql, sometimes it asks for a password and the default "mysql" password does not work. The issue has been discussed here:
http://www.webhostingtalk.com/showthread.php?t=875255
Also, when converting database, if it fails to convert. Then its probably missing the change that had to be made on the dumpfile. Regardless, if it fails, the database has to be drop and created again for the converter to work.
That's all folks :)
How to install pkgdb2 (Fedora Package Database) from scratch
This cookbook assumes that Fedora 19 is freshly installed, with some design and development tools that the Fedora setup offers.
python-flask-wtf python-wtforms \
python-kitchen python-sqlalchemy \
postgresql-server postgresql-plpython \
python-psycopg2 mod_wsgi memcached \
community-mysql-libs community-mysql-devel \
community-mysqlcommunity-mysql-server \
python-dogpile-cache python-openid-teams \
python-openid-cla python-bugzilla python-memcached \
python-docutils python-dateutil \
python-urllib3 MySQL-python \
python-pip
$ git clone https://github.com/fedora-infra/python-fedora.git
$ cd python-fedora
$ python ./setup.py install
$ cd ~
$ git clone https://github.com/fedora-infra/packagedb2.git
$ cd packagedb2
$ python ./setup.py build
if it works properly then say:
$ python ./setup.py install
you may remove the build if you want.
$ python createdb.py
$ cd /var/tmp
$ service mysqld start
$ check: tail /var/log/messages
see if it started successfully "It should say 'Started MYSQL database Server'"
$ mysqladmin -u root password yourpassword
Download this awsome sqllit to mysql script:
www.redmine.org/attachments/download/8273/sqlite3-to-mysql.py
and place it under /var/tmp
go to /var/tmp : $ cd /var/tmp
$ sqlite3 pkgdb2_dev.sqlite .dump > mydump
unfortunately, we will have to modify the dump a little bit before we can start converting:
$ vi mydump
Change this line, and two more lines
$ mysql -u root -p
mysql> create database pkgdb2;
mysql> exit
$ cat mydump | python sqlite3-to-mysql.py | mysql -u root -p pkgdb2 --default-character-set=utf8
if it executes without saying anything, that means it was successful.
Now lets get back to configuring our pkgdb2.
$ cd ~/packagedb2/
$ mv ./utility/pkgdb2.cfg.sample ./utility/pkgdb2.cfg
$ vi ./utility/pkgdb2.cfg
comment the postgres line and un-comment the mysql line. Change the admin groups to Fedora Groups you are part of, or whatever groups you want to be included in the package admin groups. Also change the FAS username and Password line to reflect your FAS credentials, it can be set to none if you do not want FAS integration. Refer to the screen-shot:
Single quotes around the values are important.
Once that is done, we will have to modify our wsgi script.
$ vi pkgdb2.wsgi
Un-comment and adjust the values as shown:
Then we will have to edit the default-config.py script to reflect our new database:
$ vi /lib/python2.7/site-packages/pkgdb2-0.1.0-py2.7.egg/pkgdb2/default_config.py
DB_URL = 'mysql://root:mypassword@localhost/pkgdb2'
then copy the pkgdb2.conf file to http configuration directory.
$ cp pkgdb2.conf /etc/httpd/conf.d
$ vi /etc/httpd/conf.d/pkgdb2.conf
make the following changes:
Restart Apache and Mysql.
$ service httpd restart
$ service mysqld restart
Open the http port:
$ iptables -I INPUT -p tcp --dport 80 -j ACCEPT
You may try to access the server, but it will give you a 403 forbidden most probably because of SELINUX or permissions missing on some of the folders. You may chose to disable SELINUX(not recommended) or make exceptions. You can make exceptions like this:
Try to access the website, get the 403 error and then come back to terminal and type
Do a tail /var/log/messages
look for this command, copy it and run on your terminal:
sealert -l a66201ea-062a-4a4b-8d2f-eaf29d3cd855
it will give you some things that are being blocked by SELINUX, and it will give you the boolean, just take the boolean and make exceptions:
setsebool -P httpd_read_user_content 1
make sure you have execute(x) permission for everybody in the whole path to pkgdb2.cfg and pkgdb2.wsgi
also do: pip uninstall flask
and install/check if flask is installed with yum: yum install python-flask.
Now restart the services again
$ service httpd restart
$ service mysqld restart
Go to your favourite browser and type: localhost/pkgdb2
and you will see the deployement.
Any issues regarding this installation you can either ask me on the comments or directly talk to the package authors on github
they are really helpful people.
Install the Required Packages:
$ yum install vim git python-flask \python-flask-wtf python-wtforms \
python-kitchen python-sqlalchemy \
postgresql-server postgresql-plpython \
python-psycopg2 mod_wsgi memcached \
community-mysql-libs community-mysql-devel \
community-mysqlcommunity-mysql-server \
python-dogpile-cache python-openid-teams \
python-openid-cla python-bugzilla python-memcached \
python-docutils python-dateutil \
python-urllib3 MySQL-python \
python-pip
$ git clone https://github.com/fedora-infra/python-fedora.git
$ cd python-fedora
$ python ./setup.py install
$ cd ~
Getting the Data from the sqllite database and installing pkgdb2 libraries:
$ git clone https://github.com/fedora-infra/packagedb2.git
$ cd packagedb2
$ python ./setup.py build
if it works properly then say:
$ python ./setup.py install
you may remove the build if you want.
$ python createdb.py
$ cd /var/tmp
Converting the data dump to and inserting it into MySQL:
$ service mysqld start
$ check: tail /var/log/messages
see if it started successfully "It should say 'Started MYSQL database Server'"
$ mysqladmin -u root password yourpassword
Download this awsome sqllit to mysql script:
www.redmine.org/attachments/download/8273/sqlite3-to-mysql.py
and place it under /var/tmp
go to /var/tmp : $ cd /var/tmp
$ sqlite3 pkgdb2_dev.sqlite .dump > mydump
unfortunately, we will have to modify the dump a little bit before we can start converting:
$ vi mydump
Change this line, and two more lines
$ mysql -u root -p
mysql> create database pkgdb2;
mysql> exit
$ cat mydump | python sqlite3-to-mysql.py | mysql -u root -p pkgdb2 --default-character-set=utf8
if it executes without saying anything, that means it was successful.
Configuring pkgdb2:
Now lets get back to configuring our pkgdb2.
$ cd ~/packagedb2/
$ mv ./utility/pkgdb2.cfg.sample ./utility/pkgdb2.cfg
$ vi ./utility/pkgdb2.cfg
comment the postgres line and un-comment the mysql line. Change the admin groups to Fedora Groups you are part of, or whatever groups you want to be included in the package admin groups. Also change the FAS username and Password line to reflect your FAS credentials, it can be set to none if you do not want FAS integration. Refer to the screen-shot:
Once that is done, we will have to modify our wsgi script.
$ vi pkgdb2.wsgi
Un-comment and adjust the values as shown:
Then we will have to edit the default-config.py script to reflect our new database:
$ vi /lib/python2.7/site-packages/pkgdb2-0.1.0-py2.7.egg/pkgdb2/default_config.py
DB_URL = 'mysql://root:mypassword@localhost/pkgdb2'
then copy the pkgdb2.conf file to http configuration directory.
$ cp pkgdb2.conf /etc/httpd/conf.d
$ vi /etc/httpd/conf.d/pkgdb2.conf
make the following changes:
Restart Apache and Mysql.
$ service httpd restart
$ service mysqld restart
Security Issues:
Open the http port:
$ iptables -I INPUT -p tcp --dport 80 -j ACCEPT
You may try to access the server, but it will give you a 403 forbidden most probably because of SELINUX or permissions missing on some of the folders. You may chose to disable SELINUX(not recommended) or make exceptions. You can make exceptions like this:
Try to access the website, get the 403 error and then come back to terminal and type
Do a tail /var/log/messages
look for this command, copy it and run on your terminal:
sealert -l a66201ea-062a-4a4b-8d2f-eaf29d3cd855
it will give you some things that are being blocked by SELINUX, and it will give you the boolean, just take the boolean and make exceptions:
setsebool -P httpd_read_user_content 1
Finishing Touch:
make sure you have execute(x) permission for everybody in the whole path to pkgdb2.cfg and pkgdb2.wsgi
also do: pip uninstall flask
and install/check if flask is installed with yum: yum install python-flask.
Now restart the services again
$ service httpd restart
$ service mysqld restart
Go to your favourite browser and type: localhost/pkgdb2
and you will see the deployement.
Any issues regarding this installation you can either ask me on the comments or directly talk to the package authors on github
they are really helpful people.
Got the database to work with pkdgb2 - \o/ -
Remember the database that I converted to mysql? yes, an innovation that I did :) I got mysql database to work with pkgdb2 so the link is not broken anymore. pkdgdb2 was not officially tested with mysql, therefore, I became the first person to do it. Although the pkgdb2 was tested with sqllite database, it was not working with it. I will update my blog with more details later on. Meanwhile, you can check the working version of pkgdb2 here: http://ireland.proximity.on.ca:8080/pkgdb2
Every Tab should work except the "login" button. That goes to FAS login, so I dont think we need to get it working.
Every Tab should work except the "login" button. That goes to FAS login, so I dont think we need to get it working.
Saturday, 14 December 2013
Successfull Deployment of Fedora Package Database(pkgdb2) on ireland(could be my release 0.3 if I cannot get help to test it with a database)
As I said in my last blog post that I would try it on a new VM. I installed Fedora 19 from scratch and this time I did not install pkgdb2 under python/site-scripts, however, I ran it directly from clone to see if that makes a difference. Unfortunately, it did not make any difference. We know for sure that it is hitting the right database but somehow the connection is not opening up properly. I have left a message for Pierre on github and I am online since about 36 hours with very little sleep, waiting to catch him on IRC.
I got access to ireland on Friday, and was told by Chris to deploy the the instance on there. Therefore, however much installation was completed, I successfully set it up Fedora Package Database on ireland.proximity.on.ca. Also, I set it up on virtual-host running on port 8080. If anybody wants to check out the deployment they can do so on this url: http://ireland.proximity.on.ca:8080/pkgdb2
Keep in mind, as there is no database to test with, if you click on any link you will get a 500 internal server error as the config files are not properly communicating with the sample sqlite database. Here is a screen-shot of the instance:
In my desperation of testing my achievement with a database, I even converted the sample database to mysql and tried to test it with it. I thought I had to change only a couple of "dbi_url" lines, however, there was much to change in the core python scripts that I do not possess knowledge of.
If I could not test it with a database by tomorrow 6pm then I will just document the process of pkgdb2 deployment(as far as I could deploy it).
I got access to ireland on Friday, and was told by Chris to deploy the the instance on there. Therefore, however much installation was completed, I successfully set it up Fedora Package Database on ireland.proximity.on.ca. Also, I set it up on virtual-host running on port 8080. If anybody wants to check out the deployment they can do so on this url: http://ireland.proximity.on.ca:8080/pkgdb2
Keep in mind, as there is no database to test with, if you click on any link you will get a 500 internal server error as the config files are not properly communicating with the sample sqlite database. Here is a screen-shot of the instance:
In my desperation of testing my achievement with a database, I even converted the sample database to mysql and tried to test it with it. I thought I had to change only a couple of "dbi_url" lines, however, there was much to change in the core python scripts that I do not possess knowledge of.
If I could not test it with a database by tomorrow 6pm then I will just document the process of pkgdb2 deployment(as far as I could deploy it).
Pkgdb2 - 5 hours of head scratching till 6 in the morning
Thursday night after I finished my exams and sat down to install pkgdb2, I made some progress but got stuck in getting a database together to test the pkgdb2 with. Luckily, I found Pierre- the package author, online 1 in the morning.
I started asking him questions and we were trying to resolve why the template database that comes with the clone, not working with this installation. We checked all the important python scripts in a spree of "fpaste" then figured out that my mod_wsgi file is pointing towards the clone and not the installed pkgdb2 directory. So we fixed that and I installed Sqlite manager to see if the database is good and it was. Then we were checking the httpd logs and it still says "table Package" not found. We know from the trouble shooting "print" statements in the script that it is pointing towards the right database but still it gave the same error. Even Pierre said "Now even I don't know what is wrong" :)
Anyhow, I installed A new VM to conduct a fresh installation from scratch and see if it works this time.
I started asking him questions and we were trying to resolve why the template database that comes with the clone, not working with this installation. We checked all the important python scripts in a spree of "fpaste" then figured out that my mod_wsgi file is pointing towards the clone and not the installed pkgdb2 directory. So we fixed that and I installed Sqlite manager to see if the database is good and it was. Then we were checking the httpd logs and it still says "table Package" not found. We know from the trouble shooting "print" statements in the script that it is pointing towards the right database but still it gave the same error. Even Pierre said "Now even I don't know what is wrong" :)
Anyhow, I installed A new VM to conduct a fresh installation from scratch and see if it works this time.
Thursday, 12 December 2013
Some Progress FINALLY! Fedora Package Database - should have been my release 0.2
For so long I had been stuck in getting the Fedora Package Database running. I deployed the test instance for my first release but could not do much after that as I was unable to install the Fedora Package Database. I tried to get in contact with Pierre the author of pkgdb2, he was replying on github but could not get a hold of him on IRC.
Anyhow, I sat determined today to do it myself. Started to analyze the output that I was getting when I was trying to run the setup.py scritpt. It was giving me an import error flask.ext.fas_openid module not found. I researched and found some reference to it in github on python-fedora and saw the same guys who manage pkgdb1 and 2 discussing something about that module there.
I uninstalled python-fedora and rebuilt it, but this time I got the source from github because I thought they have the most update version and I was right. I installed python-fedora from there and I stopped getting that error and my beloved pkgdb2 built successfully. Here is a screenshot of the new deployment. Notice that it is running on the IP address with the proper alias this time and not a random port number. Actually I configured the alias to be pkgdb, I can change it to pkgdb2 or anything else according to our requirements.
Now, the only thing I am missing is a database to test this deployment with. I am currently working on trying to get Pierre's script working to convert the previous packagedb database to match the new schema, I will try to use that and blog if it works.
Anyhow, I sat determined today to do it myself. Started to analyze the output that I was getting when I was trying to run the setup.py scritpt. It was giving me an import error flask.ext.fas_openid module not found. I researched and found some reference to it in github on python-fedora and saw the same guys who manage pkgdb1 and 2 discussing something about that module there.
I uninstalled python-fedora and rebuilt it, but this time I got the source from github because I thought they have the most update version and I was right. I installed python-fedora from there and I stopped getting that error and my beloved pkgdb2 built successfully. Here is a screenshot of the new deployment. Notice that it is running on the IP address with the proper alias this time and not a random port number. Actually I configured the alias to be pkgdb, I can change it to pkgdb2 or anything else according to our requirements.
Now, the only thing I am missing is a database to test this deployment with. I am currently working on trying to get Pierre's script working to convert the previous packagedb database to match the new schema, I will try to use that and blog if it works.
Sunday, 8 December 2013
0.2 - Pending release - waiting to communicate with Package mantainers
I did not get a chance to update my blog, however, I made some progress after 0.1. I tried to install Fedora Package database but kept running into errors that I have no clue about. It has something to do with importing the existing database to be used with pkgdb2. I am waiting to catch any of the package mantainer on IRC channel so I can install pkgdb2 while I am communicating with them. This way I don't have to report all the bugs/issues on Github or bugtrackker. This is a one time shot. I just have to catch them once and the installation can be done at that time.
Saturday, 23 November 2013
Release 0.1.1 - Pkgdb2 succesfful deployment of temporary instance
1. Install needed packages:
sudo yum install python-virtualenv libpq*
2. Get pkgdb2
git clone https://github.com/fedora-infra/packagedb2.git
3. Go inside packagedb2 folder
cd packagedb2
4. run virtual env
$ virtualenv my-pkgdb2-env
5. run this command
$ source my-pkgdb2-env/bin/activate
your prompt will change to my-pkgdb2-env now
6. Run these commands to install dependencies:
(my-pkgdb2-env)$ pip install kitchen paver urllib3 (my-pkgdb2-env)$ pip install git+https://github.com/fedora-infra/python-fedora.git (my-pkgdb2-env)$ pip install -r requirements.txt (my-pkgdb2-env)$ pip install -r test_requirements.txt
7. if everything went without errors then run this command to download a temporary
database for your instance
(my-pkgdb2-env)$ ./runtests.sh
this will take some time
8. If the result came out as "OK" then start the server:
(my-pkgdb2-env)$ python runserver.py
9. Once started, open your favourite browser and type the following URL:
http:127.0.0.0:5000
I was able to get the instance up and running. Here is a screen-shot of the new pkgdb2
Wednesday, 20 November 2013
Release 0.1 - service sbrproject restart
The Main Goal
My main project was to port fedpkg to pidora so fedpkg would work with Pidora packages. For that I needed to install Fedora Package Database as fedpkg communicates with it and then modify it for Pidora packages.Release 0.1
What Now?
After a group meeting with Chris Tyler and package maintainers, we decided that I should proceed with the installation of pkgdb2, which, although is not ready yet, will be ready soon and maintained. It would not make sense to deploy a package which will go out of date very soon. Moreover, it would also not make sense to deploy pkgdb1 for Pidora as Fedora Package Database has several uses.
Fedora Package Database Installation - From Beginning to as far as I got
1. Get
the package database:
2. Install
the needed packages:
· yum -y install python-genshi TurboGears python-turbojson
postgresql-server \
postgresql-contrib python-TurboMail python-bugzilla python-fedora \
python-psycopg2
python-sqlalchemy python-feedparser koji mod_wsgi \
python-paver
httpd mod_ssl babel python-cpio xz python-argparse \
python-mako
python-memcached py
NOTE: if you are running on fedora
install python-fedora-turbogears by issuing command “yum install python-fedora-turbogears”
3. go
to packaged “cd packagedb”
·
python setup.py egg_info (you will
get a few warnings ignore them)
NOTE:please do a yum update before doing this.
4. Copy
paver to your current directory and renaming it to paver.local
·
cp /usr/bin/paver paver.local
5. Run
this complicated command (copy/paste it carefully so only the code gets copied)
· sed 's/__requires__ = .*/__requires__ = ["Paver",
"CherryPy < 3.0"]/' < paver.local > paver
6.
Build the package:
·
paver build --install-conf=`pwd`
--install-data=`pwd` --install-sbin=`pwd`
7. start
the postgresql service if it is not already started by issuing
·
service postgresql initdb
·
start the service using
"service postgresql start"
8. Create
postgresql users:
sudo
-u postgres createuser -SDRPE pkgdbadmin
Enter password
for new role: <password>
Enter it again:
<password>
sudo -u
postgres createuser -SDRPE pkgdbreadonly
Enter password for
new role: <password>
Enter it again:
<password>
Get the most recent dump from the
same website you grabbed fedora package from. so go to
https://fedorahosted.org/releases/p/a/packagedb and download the most recent
".dump.xz" file
then run this command to import it
all to the database:
xzcat pkgdb-20100318.dump.xz | sudo
-u postgres psql
NOTE: this can take a while, no, rather this will
take a while - give it about 3-4 hours if you are
running it on a virtual machine.
9.
Run this command
· sudo -u postgres psql pkgdb <
update-schema/03_add_gitbranchname.sql
10.
Memcached is an optional daemon that can be run to speed up the server.
It functions by caching certain data that is read many times so that we don't
have to access the database as frequently. To use it you need to install
and start it
· su -c yum install memcached
· su -c /etc/init.d/memcached start
11.
Move pkgdb.cfg.sample to pkgdb.cfg
· mv pkgdb.cfg.sample pkgdb.cfg
12. Modify
the pkgdb.cfg file
·
sqlalchemy.dburi="postgres://pkgdbadmin:(password)@localhost/pkgdb"
·
server.static_media_dir="(the path to packagedb directory e.g
/home/hitman/packaged)"
13.
Modify /etc/httpd/conf/httpd.conf
· vi
/etc/httpd/conf/httpd.conf
<Directory "/home/hitman/packagedb">
AllowOverride None
Options None
Order allow,deny
Allow from all
14. Turn SELINUX
in permissive mode (just to check)
· setenforce 0
15.
Copy the httpd-pkgdb.conf file to your apache
conf.d directory
· sudo cp httpd-pkgdb.conf /etc/httpd/conf.d/
16. Restart httpd
server
· service httpd restart
17. ATTEMPT
to access the Fedora Package Database Webpage
18. Get the errors
from the error log and try to resolve them.
·
tail /etc/httpd/logs/ssl_error_log
[Tue Nov 19
23:09:07.816671 2013] [:error] [pid 2494] [remote ::1:6073] mod_wsgi
(pid=2494): Target WSGI script '/home/hitman/Public/packagedb/pkgdb.wsgi'
cannot be loaded as Python module.
[Tue Nov 19 23:09:07.816714 2013] [:error] [pid 2494] [remote ::1:6073] mod_wsgi (pid=2494): Exception occurred processing WSGI script '/home/hitman/Public/packagedb/pkgdb.wsgi'.
[Tue Nov 19 23:09:07.816733 2013] [:error] [pid 2494] [remote ::1:6073] Traceback (most recent call last):
[Tue Nov 19 23:09:07.816757 2013] [:error] [pid 2494] [remote ::1:6073] File "/home/hitman/Public/packagedb/pkgdb.wsgi", line 24, in
[Tue Nov 19 23:09:07.816809 2013] [:error] [pid 2494] [remote ::1:6073] modulename="pkgdb.config")
[Tue Nov 19 23:09:07.816821 2013] [:error] [pid 2494] [remote ::1:6073] File "/usr/lib/python2.7/site-packages/turbogears/config.py", line 219, in update_config
[Tue Nov 19 23:09:07.816892 2013] [:error] [pid 2494] [remote ::1:6073] configdict = config_obj(configfile, modulename).dict()
[Tue Nov 19 23:09:07.816904 2013] [:error] [pid 2494] [remote ::1:6073] File "/usr/lib/python2.7/site-packages/turbogears/config.py", line 174, in config_obj
[Tue Nov 19 23:09:07.816923 2013] [:error] [pid 2494] [remote ::1:6073] modname + '.cfg')
[Tue Nov 19 23:09:07.816933 2013] [:error] [pid 2494] [remote ::1:6073] File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 862, in resource_filename
[Tue Nov 19 23:09:07.817317 2013] [:error] [pid 2494] [remote ::1:6073] return get_provider(package_or_requirement).get_resource_filename(
[Tue Nov 19 23:09:07.817329 2013] [:error] [pid 2494] [remote ::1:6073] File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 180, in get_provider
[Tue Nov 19 23:09:07.817345 2013] [:error] [pid 2494] [remote ::1:6073] import(moduleOrReq)
[Tue Nov 19 23:09:07.817360 2013] [:error] [pid 2494] [remote ::1:6073] ImportError: No module named pkgdb
[Tue Nov 19 23:09:07.816714 2013] [:error] [pid 2494] [remote ::1:6073] mod_wsgi (pid=2494): Exception occurred processing WSGI script '/home/hitman/Public/packagedb/pkgdb.wsgi'.
[Tue Nov 19 23:09:07.816733 2013] [:error] [pid 2494] [remote ::1:6073] Traceback (most recent call last):
[Tue Nov 19 23:09:07.816757 2013] [:error] [pid 2494] [remote ::1:6073] File "/home/hitman/Public/packagedb/pkgdb.wsgi", line 24, in
[Tue Nov 19 23:09:07.816809 2013] [:error] [pid 2494] [remote ::1:6073] modulename="pkgdb.config")
[Tue Nov 19 23:09:07.816821 2013] [:error] [pid 2494] [remote ::1:6073] File "/usr/lib/python2.7/site-packages/turbogears/config.py", line 219, in update_config
[Tue Nov 19 23:09:07.816892 2013] [:error] [pid 2494] [remote ::1:6073] configdict = config_obj(configfile, modulename).dict()
[Tue Nov 19 23:09:07.816904 2013] [:error] [pid 2494] [remote ::1:6073] File "/usr/lib/python2.7/site-packages/turbogears/config.py", line 174, in config_obj
[Tue Nov 19 23:09:07.816923 2013] [:error] [pid 2494] [remote ::1:6073] modname + '.cfg')
[Tue Nov 19 23:09:07.816933 2013] [:error] [pid 2494] [remote ::1:6073] File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 862, in resource_filename
[Tue Nov 19 23:09:07.817317 2013] [:error] [pid 2494] [remote ::1:6073] return get_provider(package_or_requirement).get_resource_filename(
[Tue Nov 19 23:09:07.817329 2013] [:error] [pid 2494] [remote ::1:6073] File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 180, in get_provider
[Tue Nov 19 23:09:07.817345 2013] [:error] [pid 2494] [remote ::1:6073] import(moduleOrReq)
[Tue Nov 19 23:09:07.817360 2013] [:error] [pid 2494] [remote ::1:6073] ImportError: No module named pkgdb
This is how far I got
when installing Fedora Package Datbase.
Tuesday, 19 November 2013
Fedora Package Installation - Latest update November 19th
I had issue with the paver command when I was installing so I asked it on github.
https://github.com/fedora-infra/packagedb/issues/13
This was the problem:
paver build --install-conf=`pwd` --install-data=`pwd` --install-sbin=`pwd`
Traceback (most recent call last):
File "/usr/bin/paver", line 9, in <module>
load_entry_point('Paver==1.1.1', 'console_scripts', 'paver')()
File "/usr/lib/python2.7/site-packages/paver/tasks.py", line 816, in main
_launch_pavement(args)
File "/usr/lib/python2.7/site-packages/paver/tasks.py", line 785, in _launch_pavement
execfile(environment.pavement_file, mod.__dict__)
File "pavement.py", line 16, in <module>
from turbogears.finddata import find_package_data
File "/usr/lib/python2.7/site-packages/turbogears/__init__.py", line 9, in <module>
from turbogears.config import update_config
File "/usr/lib/python2.7/site-packages/turbogears/config.py", line 4, in <module>
pkg_resources.require("CherryPy<3.0")
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 690, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 592, in resolve
raise VersionConflict(dist,req) # XXX put more info here
pkg_resources.VersionConflict: (CherryPy 3.2.2 (/usr/lib/python2.7/site-packages), Requirement.parse('CherryPy<3.0')
Toshio Replied today giving me a fix, so I was able to move on further. the fix was to copy paver script on the local folder and replace the version and run the paver script locally.
$ cp /usr/bin/paver paver.local $ sed 's/__requires__ = .*/__requires__ = ["Paver", "CherryPy < 3.0"]/' < paver.local > paver $ ./paver build --install-conf=`pwd` --install-data=`pwd` --install-sbin=`pwd`
However, now, the pkgdb-sync-yum command is broken. I have asked him again on github and waiting for his reply.
[root@localhost server-scripts]# chmod 755 pkgdb-sync-yum
[root@localhost server-scripts]# ./pkgdb-sync-yum update -h
Traceback (most recent call last):
File "./pkgdb-sync-yum", line 51, in
import pkg_resources
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2655, in
working_set.require(requires)
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 648, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 546, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: fedora-packagedb
I moved on with the steps ignoring that step and found myself having 500 error when trying to access the website. I am hoping that it is connected to the update.
Sunday, 17 November 2013
RPM SIgning lab - SBR600
Followed the tutorial on the website: http://zenit.senecac.on.ca/wiki/index.php/Signing_and_Creating_a_Repository_for_RPM_Packages
executed the command gpg --key-gen,
it asked me a bunch of questions and at the end it created the RSA public key.
pub 2048R/FA60C533 2013-11-17 [expires: 2014-01-16]
after this, i just navigated to where I had my RPMS and signed it using this command
#rpm --addsign less-451-1.fc18.i686.rpm
Enter pass phrase:
Pass phrase is good.
less-451-1.fc18.i686.rpm:
here is a link to my signed RPM
[hitman@localhost i686]$ rpm --addsign grep-2.9-1.fc18.i686.rpm
Enter pass phrase:
Pass phrase is good.
grep-2.9-1.fc18.i686.rpm:
[hitman@localhost i686]$
Here is a link to my signed RPMs:
grep-2.9-1.fc18.i686.rpm
less-451-1.fc18.i686.rpm
Created the gpg key by issuing the command
gpg --export --armour msmahmood@myseneca.ca > gpgkey.txt
gpgkey.txt can be viewed here
GPG is a very handy tool, probably the only tool i know that can encrypt files, maybe there are others, however, this was pretty easy to use.
executed the command gpg --key-gen,
it asked me a bunch of questions and at the end it created the RSA public key.
pub 2048R/FA60C533 2013-11-17 [expires: 2014-01-16]
after this, i just navigated to where I had my RPMS and signed it using this command
#rpm --addsign less-451-1.fc18.i686.rpm
Enter pass phrase:
Pass phrase is good.
less-451-1.fc18.i686.rpm:
here is a link to my signed RPM
[hitman@localhost i686]$ rpm --addsign grep-2.9-1.fc18.i686.rpm
Enter pass phrase:
Pass phrase is good.
grep-2.9-1.fc18.i686.rpm:
[hitman@localhost i686]$
Here is a link to my signed RPMs:
grep-2.9-1.fc18.i686.rpm
less-451-1.fc18.i686.rpm
Created the gpg key by issuing the command
gpg --export --armour msmahmood@myseneca.ca > gpgkey.txt
gpgkey.txt can be viewed here
GPG is a very handy tool, probably the only tool i know that can encrypt files, maybe there are others, however, this was pretty easy to use.
Thursday, 14 November 2013
Koji Lab SBR600
I already had
fedora-packager installed so I did not need to do that.
Ran the command:
Everything was properly set up to use koji.
[hitman@localhost SRPMS]$ time koji build f18 --scratch grep-2.9-1.fc18.src.rpm
Uploading srpm: grep-2.9-1.fc18.src.rpm
[====================================] 100% 00:00:05 1019.85 KiB 177.57 KiB/sec
Created task: 6182383
Task info: http://koji.fedoraproject.org/koji/taskinfo?taskID=6182383
Watching tasks (this may be safely interrupted)...
6182383 build (f18, grep-2.9-1.fc18.src.rpm): free
6182383 build (f18, grep-2.9-1.fc18.src.rpm): free -> open (arm02-builder10.arm.fedoraproject.org)
6182385 buildArch (grep-2.9-1.fc18.src.rpm, i686): open (buildvm-15.phx2.fedoraproject.org)
6182384 buildArch (grep-2.9-1.fc18.src.rpm, x86_64): open (buildvm-21.phx2.fedoraproject.org)
6182385 buildArch (grep-2.9-1.fc18.src.rpm, i686): open (buildvm-15.phx2.fedoraproject.org) -> closed
0 free 2 open 1 done 0 failed
6182384 buildArch (grep-2.9-1.fc18.src.rpm, x86_64): open (buildvm-21.phx2.fedoraproject.org) -> closed
0 free 1 open 2 done 0 failed
6182383 build (f18, grep-2.9-1.fc18.src.rpm): open (arm02-builder10.arm.fedoraproject.org) -> closed
0 free 0 open 3 done 0 failed
6182383 build (f18, grep-2.9-1.fc18.src.rpm) completed successfully
real 3m4.840s
user 0m2.116s
sys 0m0.200s
[hitman@localhost SRPMS]$ time ppc-koji build f18 --scratch grep-2.9-1.fc18.src.rpm
Uploading srpm: grep-2.9-1.fc18.src.rpm
[====================================] 100% 00:00:05 1019.85 KiB 170.42 KiB/sec
Created task: 1530737
Task info: http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=1530737
Watching tasks (this may be safely interrupted)...
1530737 build (f18, grep-2.9-1.fc18.src.rpm): free
1530737 build (f18, grep-2.9-1.fc18.src.rpm): free -> open (ppc-builder2)
1530738 buildArch (grep-2.9-1.fc18.src.rpm, ppc): open (ppc-builder6)
1530739 buildArch (grep-2.9-1.fc18.src.rpm, ppc64): free
1530739 buildArch (grep-2.9-1.fc18.src.rpm, ppc64): free -> open (ppc-builder2)
1530738 buildArch (grep-2.9-1.fc18.src.rpm, ppc): open (ppc-builder6) -> closed
0 free 2 open 1 done 0 failed
1530739 buildArch (grep-2.9-1.fc18.src.rpm, ppc64): open (ppc-builder2) -> closed
0 free 1 open 2 done 0 failed
1530737 build (f18, grep-2.9-1.fc18.src.rpm): open (ppc-builder2) -> closed
0 free 0 open 3 done 0 failed
1530737 build (f18, grep-2.9-1.fc18.src.rpm) completed successfully
real 6m32.512s
user 0m5.032s
sys 0m0.338s
I am trying to build it for s390 architecture, but it gave me some error that i did not know about, now i am waiting for it to build again.
------------------------UPDATE-------------------------------------------------------------------------------
Made some changes to the spec file of grep and update the "Requires:" field
When i was building from the spec file I was noticing these "Requires:" field that I was not including but my package was still building without issues
Requires(interp): /bin/sh /bin/sh
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(post): /bin/sh info
Requires(preun): /bin/sh info
Requires: libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.1.3) libc.so.6(GLIBC_2.2) libc.so.6(GLIBC_2.2.3) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.3.4) libc.so.6(GLIBC_2.4) libpcre.so.1 rtld(GNU_HASH)
Processing files: grep-debuginfo-2.9-1.fc18.i686
Provides: grep-debuginfo = 2.9-1.fc18 grep-debuginfo(x86-32) = 2.9-1.fc18
Requires(rpmlib): rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
I searched the libraries for these packages and found out that I was not including rpm-devel and glibc. I changed my spec file and I was able to build it on s390 archs
here is a link to my new spec.file
grep.spec
[hitman@localhost SRPMS]$ time s390-koji build f18 --scratch grep-2.9-1.fc18.src.rpm
Uploading srpm: grep-2.9-1.fc18.src.rpm
[====================================] 100% 00:00:05 1019.81 KiB 174.00 KiB/sec
Created task: 1260172
Task info: http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1260172
Watching tasks (this may be safely interrupted)...
1260172 build (f18, grep-2.9-1.fc18.src.rpm): free
1260172 build (f18, grep-2.9-1.fc18.src.rpm): free -> open (fedora3.s390.bos.redhat.com)
1260173 buildArch (grep-2.9-1.fc18.src.rpm, s390): free
1260174 buildArch (grep-2.9-1.fc18.src.rpm, s390x): free
1260173 buildArch (grep-2.9-1.fc18.src.rpm, s390): free -> open (fedora1.s390.bos.redhat.com)
1260173 buildArch (grep-2.9-1.fc18.src.rpm, s390): open (fedora1.s390.bos.redhat.com) -> closed
1 free 1 open 1 done 0 failed
1260174 buildArch (grep-2.9-1.fc18.src.rpm, s390x): free -> open (fedora1.s390.bos.redhat.com)
1260174 buildArch (grep-2.9-1.fc18.src.rpm, s390x): open (fedora1.s390.bos.redhat.com) -> closed
0 free 1 open 2 done 0 failed
1260172 build (f18, grep-2.9-1.fc18.src.rpm): open (fedora3.s390.bos.redhat.com) -> closed
0 free 0 open 3 done 0 failed
1260172 build (f18, grep-2.9-1.fc18.src.rpm) completed successfully
real 9m16.539s
user 0m5.653s
sys 0m0.369s
Ok this took me about an hour to figure out and about 10 minutes to build.
[hitman@localhost SRPMS]$ time koji build f18 --scratch less-451-1.fc18.src.rpm
Uploading srpm: less-451-1.fc18.src.rpm
[====================================] 100% 00:00:02 305.66 KiB 145.18 KiB/sec
Created task: 6182535
Task info: http://koji.fedoraproject.org/koji/taskinfo?taskID=6182535
Watching tasks (this may be safely interrupted)...
6182535 build (f18, less-451-1.fc18.src.rpm): open (arm02-builder06.arm.fedoraproject.org)
6182537 buildArch (less-451-1.fc18.src.rpm, i686): open (buildvm-21.phx2.fedoraproject.org)
6182536 buildArch (less-451-1.fc18.src.rpm, x86_64): open (buildvm-26.phx2.fedoraproject.org)
6182536 buildArch (less-451-1.fc18.src.rpm, x86_64): open (buildvm-26.phx2.fedoraproject.org) -> closed
0 free 2 open 1 done 0 failed
6182537 buildArch (less-451-1.fc18.src.rpm, i686): open (buildvm-21.phx2.fedoraproject.org) -> closed
0 free 1 open 2 done 0 failed
6182535 build (f18, less-451-1.fc18.src.rpm): open (arm02-builder06.arm.fedoraproject.org) -> closed
0 free 0 open 3 done 0 failed
6182535 build (f18, less-451-1.fc18.src.rpm) completed successfully
real 2m14.817s
user 0m1.682s
sys 0m0.121s
No issues yet and pretty fast as well. lets try it for other archs..
[hitman@localhost SRPMS]$ time ppc-koji build f18 --scratch less-451-1.fc18.src.rpm
Uploading srpm: less-451-1.fc18.src.rpm
[====================================] 100% 00:00:02 305.66 KiB 149.45 KiB/sec
Created task: 1530907
Task info: http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=1530907
Watching tasks (this may be safely interrupted)...
1530907 build (f18, less-451-1.fc18.src.rpm): free
1530907 build (f18, less-451-1.fc18.src.rpm): free -> open (ppc-builder6)
1530908 buildArch (less-451-1.fc18.src.rpm, ppc): open (ppc-builder6)
1530909 buildArch (less-451-1.fc18.src.rpm, ppc64): open (ppc-builder1)
1530908 buildArch (less-451-1.fc18.src.rpm, ppc): open (ppc-builder6) -> closed
0 free 2 open 1 done 0 failed
1530909 buildArch (less-451-1.fc18.src.rpm, ppc64): open (ppc-builder1) -> closed
0 free 1 open 2 done 0 failed
1530907 build (f18, less-451-1.fc18.src.rpm): open (ppc-builder6) -> closed
0 free 0 open 3 done 0 failed
1530907 build (f18, less-451-1.fc18.src.rpm) completed successfully
real 7m26.703s
user 0m5.605s
sys 0m0.338s
2 down, 1 to go
[hitman@localhost SRPMS]$ time s390-koji build f18 --scratch less-451-1.fc18.src.rpm
Uploading srpm: less-451-1.fc18.src.rpm
[====================================] 100% 00:00:02 305.66 KiB 140.13 KiB/sec
Created task: 1260196
Task info: http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1260196
Watching tasks (this may be safely interrupted)...
1260196 build (f18, less-451-1.fc18.src.rpm): free
1260196 build (f18, less-451-1.fc18.src.rpm): free -> open (fedora1.s390.bos.redhat.com)
1260197 buildArch (less-451-1.fc18.src.rpm, s390): free
1260198 buildArch (less-451-1.fc18.src.rpm, s390x): free
1260197 buildArch (less-451-1.fc18.src.rpm, s390): free -> open (fedora3.s390.bos.redhat.com)
1260198 buildArch (less-451-1.fc18.src.rpm, s390x): free -> open (fedora1.s390.bos.redhat.com)
1260197 buildArch (less-451-1.fc18.src.rpm, s390): open (fedora3.s390.bos.redhat.com) -> closed
0 free 2 open 1 done 0 failed
1260198 buildArch (less-451-1.fc18.src.rpm, s390x): open (fedora1.s390.bos.redhat.com) -> closed
0 free 1 open 2 done 0 failed
1260196 build (f18, less-451-1.fc18.src.rpm): open (fedora1.s390.bos.redhat.com) -> closed
0 free 0 open 3 done 0 failed
1260196 build (f18, less-451-1.fc18.src.rpm) completed successfully
real 4m10.215s
user 0m3.400s
sys 0m0.218s
Nice, built without issues.
I am beginning to like this stuff!
I think Koji is a good tool, it makes it a lot easier to build on other architectures without actually having one, it would probably also save time for bigger packages.
Ran the command:
/usr/bin/fedora-packager-setup
Everything was properly set up to use koji.
GREP
[hitman@localhost SRPMS]$ time koji build f18 --scratch grep-2.9-1.fc18.src.rpm
Uploading srpm: grep-2.9-1.fc18.src.rpm
[====================================] 100% 00:00:05 1019.85 KiB 177.57 KiB/sec
Created task: 6182383
Task info: http://koji.fedoraproject.org/koji/taskinfo?taskID=6182383
Watching tasks (this may be safely interrupted)...
6182383 build (f18, grep-2.9-1.fc18.src.rpm): free
6182383 build (f18, grep-2.9-1.fc18.src.rpm): free -> open (arm02-builder10.arm.fedoraproject.org)
6182385 buildArch (grep-2.9-1.fc18.src.rpm, i686): open (buildvm-15.phx2.fedoraproject.org)
6182384 buildArch (grep-2.9-1.fc18.src.rpm, x86_64): open (buildvm-21.phx2.fedoraproject.org)
6182385 buildArch (grep-2.9-1.fc18.src.rpm, i686): open (buildvm-15.phx2.fedoraproject.org) -> closed
0 free 2 open 1 done 0 failed
6182384 buildArch (grep-2.9-1.fc18.src.rpm, x86_64): open (buildvm-21.phx2.fedoraproject.org) -> closed
0 free 1 open 2 done 0 failed
6182383 build (f18, grep-2.9-1.fc18.src.rpm): open (arm02-builder10.arm.fedoraproject.org) -> closed
0 free 0 open 3 done 0 failed
6182383 build (f18, grep-2.9-1.fc18.src.rpm) completed successfully
real 3m4.840s
user 0m2.116s
sys 0m0.200s
It
took me about 1 minute less than then it took me to build it locally
using mock. Which is a big difference considering the package is
small, if it was a huge package, it probably would have taken me a
bit longer.
building grep for Powerpc arch, it built it for both 32 and 64 as can be seen.
[hitman@localhost SRPMS]$ time ppc-koji build f18 --scratch grep-2.9-1.fc18.src.rpm
Uploading srpm: grep-2.9-1.fc18.src.rpm
[====================================] 100% 00:00:05 1019.85 KiB 170.42 KiB/sec
Created task: 1530737
Task info: http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=1530737
Watching tasks (this may be safely interrupted)...
1530737 build (f18, grep-2.9-1.fc18.src.rpm): free
1530737 build (f18, grep-2.9-1.fc18.src.rpm): free -> open (ppc-builder2)
1530738 buildArch (grep-2.9-1.fc18.src.rpm, ppc): open (ppc-builder6)
1530739 buildArch (grep-2.9-1.fc18.src.rpm, ppc64): free
1530739 buildArch (grep-2.9-1.fc18.src.rpm, ppc64): free -> open (ppc-builder2)
1530738 buildArch (grep-2.9-1.fc18.src.rpm, ppc): open (ppc-builder6) -> closed
0 free 2 open 1 done 0 failed
1530739 buildArch (grep-2.9-1.fc18.src.rpm, ppc64): open (ppc-builder2) -> closed
0 free 1 open 2 done 0 failed
1530737 build (f18, grep-2.9-1.fc18.src.rpm): open (ppc-builder2) -> closed
0 free 0 open 3 done 0 failed
1530737 build (f18, grep-2.9-1.fc18.src.rpm) completed successfully
real 6m32.512s
user 0m5.032s
sys 0m0.338s
I did not get any errors but it did take me 6 minutes to build it.
------------------------UPDATE-------------------------------------------------------------------------------
Made some changes to the spec file of grep and update the "Requires:" field
When i was building from the spec file I was noticing these "Requires:" field that I was not including but my package was still building without issues
Requires(interp): /bin/sh /bin/sh
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires(post): /bin/sh info
Requires(preun): /bin/sh info
Requires: libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.1.3) libc.so.6(GLIBC_2.2) libc.so.6(GLIBC_2.2.3) libc.so.6(GLIBC_2.3) libc.so.6(GLIBC_2.3.4) libc.so.6(GLIBC_2.4) libpcre.so.1 rtld(GNU_HASH)
Processing files: grep-debuginfo-2.9-1.fc18.i686
Provides: grep-debuginfo = 2.9-1.fc18 grep-debuginfo(x86-32) = 2.9-1.fc18
Requires(rpmlib): rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
I searched the libraries for these packages and found out that I was not including rpm-devel and glibc. I changed my spec file and I was able to build it on s390 archs
here is a link to my new spec.file
grep.spec
[hitman@localhost SRPMS]$ time s390-koji build f18 --scratch grep-2.9-1.fc18.src.rpm
Uploading srpm: grep-2.9-1.fc18.src.rpm
[====================================] 100% 00:00:05 1019.81 KiB 174.00 KiB/sec
Created task: 1260172
Task info: http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1260172
Watching tasks (this may be safely interrupted)...
1260172 build (f18, grep-2.9-1.fc18.src.rpm): free
1260172 build (f18, grep-2.9-1.fc18.src.rpm): free -> open (fedora3.s390.bos.redhat.com)
1260173 buildArch (grep-2.9-1.fc18.src.rpm, s390): free
1260174 buildArch (grep-2.9-1.fc18.src.rpm, s390x): free
1260173 buildArch (grep-2.9-1.fc18.src.rpm, s390): free -> open (fedora1.s390.bos.redhat.com)
1260173 buildArch (grep-2.9-1.fc18.src.rpm, s390): open (fedora1.s390.bos.redhat.com) -> closed
1 free 1 open 1 done 0 failed
1260174 buildArch (grep-2.9-1.fc18.src.rpm, s390x): free -> open (fedora1.s390.bos.redhat.com)
1260174 buildArch (grep-2.9-1.fc18.src.rpm, s390x): open (fedora1.s390.bos.redhat.com) -> closed
0 free 1 open 2 done 0 failed
1260172 build (f18, grep-2.9-1.fc18.src.rpm): open (fedora3.s390.bos.redhat.com) -> closed
0 free 0 open 3 done 0 failed
1260172 build (f18, grep-2.9-1.fc18.src.rpm) completed successfully
real 9m16.539s
user 0m5.653s
sys 0m0.369s
Ok this took me about an hour to figure out and about 10 minutes to build.
LESS
Time for less![hitman@localhost SRPMS]$ time koji build f18 --scratch less-451-1.fc18.src.rpm
Uploading srpm: less-451-1.fc18.src.rpm
[====================================] 100% 00:00:02 305.66 KiB 145.18 KiB/sec
Created task: 6182535
Task info: http://koji.fedoraproject.org/koji/taskinfo?taskID=6182535
Watching tasks (this may be safely interrupted)...
6182535 build (f18, less-451-1.fc18.src.rpm): open (arm02-builder06.arm.fedoraproject.org)
6182537 buildArch (less-451-1.fc18.src.rpm, i686): open (buildvm-21.phx2.fedoraproject.org)
6182536 buildArch (less-451-1.fc18.src.rpm, x86_64): open (buildvm-26.phx2.fedoraproject.org)
6182536 buildArch (less-451-1.fc18.src.rpm, x86_64): open (buildvm-26.phx2.fedoraproject.org) -> closed
0 free 2 open 1 done 0 failed
6182537 buildArch (less-451-1.fc18.src.rpm, i686): open (buildvm-21.phx2.fedoraproject.org) -> closed
0 free 1 open 2 done 0 failed
6182535 build (f18, less-451-1.fc18.src.rpm): open (arm02-builder06.arm.fedoraproject.org) -> closed
0 free 0 open 3 done 0 failed
6182535 build (f18, less-451-1.fc18.src.rpm) completed successfully
real 2m14.817s
user 0m1.682s
sys 0m0.121s
No issues yet and pretty fast as well. lets try it for other archs..
[hitman@localhost SRPMS]$ time ppc-koji build f18 --scratch less-451-1.fc18.src.rpm
Uploading srpm: less-451-1.fc18.src.rpm
[====================================] 100% 00:00:02 305.66 KiB 149.45 KiB/sec
Created task: 1530907
Task info: http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=1530907
Watching tasks (this may be safely interrupted)...
1530907 build (f18, less-451-1.fc18.src.rpm): free
1530907 build (f18, less-451-1.fc18.src.rpm): free -> open (ppc-builder6)
1530908 buildArch (less-451-1.fc18.src.rpm, ppc): open (ppc-builder6)
1530909 buildArch (less-451-1.fc18.src.rpm, ppc64): open (ppc-builder1)
1530908 buildArch (less-451-1.fc18.src.rpm, ppc): open (ppc-builder6) -> closed
0 free 2 open 1 done 0 failed
1530909 buildArch (less-451-1.fc18.src.rpm, ppc64): open (ppc-builder1) -> closed
0 free 1 open 2 done 0 failed
1530907 build (f18, less-451-1.fc18.src.rpm): open (ppc-builder6) -> closed
0 free 0 open 3 done 0 failed
1530907 build (f18, less-451-1.fc18.src.rpm) completed successfully
real 7m26.703s
user 0m5.605s
sys 0m0.338s
2 down, 1 to go
[hitman@localhost SRPMS]$ time s390-koji build f18 --scratch less-451-1.fc18.src.rpm
Uploading srpm: less-451-1.fc18.src.rpm
[====================================] 100% 00:00:02 305.66 KiB 140.13 KiB/sec
Created task: 1260196
Task info: http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=1260196
Watching tasks (this may be safely interrupted)...
1260196 build (f18, less-451-1.fc18.src.rpm): free
1260196 build (f18, less-451-1.fc18.src.rpm): free -> open (fedora1.s390.bos.redhat.com)
1260197 buildArch (less-451-1.fc18.src.rpm, s390): free
1260198 buildArch (less-451-1.fc18.src.rpm, s390x): free
1260197 buildArch (less-451-1.fc18.src.rpm, s390): free -> open (fedora3.s390.bos.redhat.com)
1260198 buildArch (less-451-1.fc18.src.rpm, s390x): free -> open (fedora1.s390.bos.redhat.com)
1260197 buildArch (less-451-1.fc18.src.rpm, s390): open (fedora3.s390.bos.redhat.com) -> closed
0 free 2 open 1 done 0 failed
1260198 buildArch (less-451-1.fc18.src.rpm, s390x): open (fedora1.s390.bos.redhat.com) -> closed
0 free 1 open 2 done 0 failed
1260196 build (f18, less-451-1.fc18.src.rpm): open (fedora1.s390.bos.redhat.com) -> closed
0 free 0 open 3 done 0 failed
1260196 build (f18, less-451-1.fc18.src.rpm) completed successfully
real 4m10.215s
user 0m3.400s
sys 0m0.218s
Nice, built without issues.
I am beginning to like this stuff!
I think Koji is a good tool, it makes it a lot easier to build on other architectures without actually having one, it would probably also save time for bigger packages.
Mock Lab SBR600
Mock creates chroots and builds packages in them. Its only task is to
reliably populate a chroot and attempt to build a package in that
chroot.
So I began by installing mock
INFO: mock.py version 1.1.32 starting...
Start: init plugins
INFO: selinux enabled
Finish: init plugins
Start: run
INFO: Start(grep-2.9-1.fc18.src.rpm) Config(fedora-18-i386)
Start: lock buildroot
Start: clean chroot
Finish: clean chroot
Finish: lock buildroot
Start: chroot init
Start: lock buildroot
Mock Version: 1.1.32
INFO: Mock Version: 1.1.32
INFO: calling preinit hooks
INFO: enabled root cache
INFO: enabled yum cache
Start: cleaning yum metadata
Finish: cleaning yum metadata
INFO: enabled ccache
Start: device setup
Finish: device setup
Start: yum update
Start: Outputting list of available packages
Finish: Outputting list of available packages
Finish: yum update
Start: creating cache
Finish: creating cache
Finish: lock buildroot
Finish: chroot init
INFO: Installed packages:
Start: build phase for grep-2.9-1.fc18.src.rpm
Start: device setup
Finish: device setup
Start: build setup for grep-2.9-1.fc18.src.rpm
Finish: build setup for grep-2.9-1.fc18.src.rpm
Start: rpmbuild -bb grep-2.9-1.fc18.src.rpm
Start: Outputting list of installed packages
Finish: Outputting list of installed packages
Finish: rpmbuild -bb grep-2.9-1.fc18.src.rpm
Finish: build phase for grep-2.9-1.fc18.src.rpm
INFO: Done(grep-2.9-1.fc18.src.rpm) Config(fedora-18-i386) 4 minutes 3 seconds
INFO: Results and/or logs in: /var/lib/mock/fedora-18-i386/result
Finish: run
Took me about 4 minutes 3 seconds as can be seen from the output above.
Then I ran mock to build the other package less
Start: init plugins
INFO: selinux enabled
Finish: init plugins
Start: run
INFO: Start(less-451-1.fc18.src.rpm) Config(fedora-18-i386)
Start: lock buildroot
Start: clean chroot
INFO: chroot (/var/lib/mock/fedora-18-i386) unlocked and deleted
Finish: clean chroot
Finish: lock buildroot
Start: chroot init
Start: lock buildroot
Mock Version: 1.1.32
INFO: Mock Version: 1.1.32
INFO: calling preinit hooks
INFO: enabled root cache
Start: unpacking root cache
Finish: unpacking root cache
INFO: enabled yum cache
Start: cleaning yum metadata
Finish: cleaning yum metadata
INFO: enabled ccache
Start: device setup
Finish: device setup
Start: yum update
Start: Outputting list of available packages
Finish: Outputting list of available packages
Finish: yum update
Finish: lock buildroot
Finish: chroot init
INFO: Installed packages:
Start: build phase for less-451-1.fc18.src.rpm
Start: device setup
Finish: device setup
Start: build setup for less-451-1.fc18.src.rpm
Finish: build setup for less-451-1.fc18.src.rpm
Start: rpmbuild -bb less-451-1.fc18.src.rpm
Start: Outputting list of installed packages
Finish: Outputting list of installed packages
ERROR: Exception(less-451-1.fc18.src.rpm) Config(fedora-18-i386) 0 minutes 25 seconds
INFO: Results and/or logs in: /var/lib/mock/fedora-18-i386/result
ERROR: Command failed. See logs for output.
# ['bash', '--login', '-c', 'rpmbuild -bb --target i686 --nodeps builddir/build/SPECS/less.spec']
About time something had to go wrong. Let me check the result and modify my specs.
Did some research and found this article, they were talking about re-installing ncurses? so I figured, maybe it needs ncurses-devel. I added "BuildRequires: ncurses-devel" and ran mock again. It build without any issues.
[hitman@localhost SRPMS]$ mock -r fedora-18-i386 less-451-1.fc18.src.rpm
INFO: mock.py version 1.1.32 starting...
Start: init plugins
INFO: selinux enabled
Finish: init plugins
Start: run
INFO: Start(less-451-1.fc18.src.rpm) Config(fedora-18-i386)
Start: lock buildroot
Start: clean chroot
INFO: chroot (/var/lib/mock/fedora-18-i386) unlocked and deleted
Finish: clean chroot
Finish: lock buildroot
Start: chroot init
Start: lock buildroot
Mock Version: 1.1.32
INFO: Mock Version: 1.1.32
INFO: calling preinit hooks
INFO: enabled root cache
Start: unpacking root cache
Finish: unpacking root cache
INFO: enabled yum cache
Start: cleaning yum metadata
Finish: cleaning yum metadata
INFO: enabled ccache
Start: device setup
Finish: device setup
Start: yum update
Start: Outputting list of available packages
Finish: Outputting list of available packages
Finish: yum update
Finish: lock buildroot
Finish: chroot init
INFO: Installed packages:
Start: build phase for less-451-1.fc18.src.rpm
Start: device setup
Finish: device setup
Start: build setup for less-451-1.fc18.src.rpm
Finish: build setup for less-451-1.fc18.src.rpm
Start: rpmbuild -bb less-451-1.fc18.src.rpm
Start: Outputting list of installed packages
Finish: Outputting list of installed packages
Finish: rpmbuild -bb less-451-1.fc18.src.rpm
Finish: build phase for less-451-1.fc18.src.rpm
INFO: Done(less-451-1.fc18.src.rpm) Config(fedora-18-i386) 0 minutes 30 seconds
INFO: Results and/or logs in: /var/lib/mock/fedora-18-i386/result
Finish: run
Just took about 30 seconds. That is pretty neat!
Here is a link to my changed spec file.
less.spec
I think Mock tool is amazing, one thing I liked about it is, you can build packages on different architectures using mock which is nice.
The whole lab took be about 45 minutes to complete.
So I began by installing mock
- yum install mock
- usermod -aG mock hitman
- mock -r fedora-18-i386 grep-2.9-1.fc18.src.rpm
INFO: mock.py version 1.1.32 starting...
Start: init plugins
INFO: selinux enabled
Finish: init plugins
Start: run
INFO: Start(grep-2.9-1.fc18.src.rpm) Config(fedora-18-i386)
Start: lock buildroot
Start: clean chroot
Finish: clean chroot
Finish: lock buildroot
Start: chroot init
Start: lock buildroot
Mock Version: 1.1.32
INFO: Mock Version: 1.1.32
INFO: calling preinit hooks
INFO: enabled root cache
INFO: enabled yum cache
Start: cleaning yum metadata
Finish: cleaning yum metadata
INFO: enabled ccache
Start: device setup
Finish: device setup
Start: yum update
Start: Outputting list of available packages
Finish: Outputting list of available packages
Finish: yum update
Start: creating cache
Finish: creating cache
Finish: lock buildroot
Finish: chroot init
INFO: Installed packages:
Start: build phase for grep-2.9-1.fc18.src.rpm
Start: device setup
Finish: device setup
Start: build setup for grep-2.9-1.fc18.src.rpm
Finish: build setup for grep-2.9-1.fc18.src.rpm
Start: rpmbuild -bb grep-2.9-1.fc18.src.rpm
Start: Outputting list of installed packages
Finish: Outputting list of installed packages
Finish: rpmbuild -bb grep-2.9-1.fc18.src.rpm
Finish: build phase for grep-2.9-1.fc18.src.rpm
INFO: Done(grep-2.9-1.fc18.src.rpm) Config(fedora-18-i386) 4 minutes 3 seconds
INFO: Results and/or logs in: /var/lib/mock/fedora-18-i386/result
Finish: run
Took me about 4 minutes 3 seconds as can be seen from the output above.
Then I ran mock to build the other package less
- mock -r fedora-18-i386 less-451-1.fc18.src.rpm
Start: init plugins
INFO: selinux enabled
Finish: init plugins
Start: run
INFO: Start(less-451-1.fc18.src.rpm) Config(fedora-18-i386)
Start: lock buildroot
Start: clean chroot
INFO: chroot (/var/lib/mock/fedora-18-i386) unlocked and deleted
Finish: clean chroot
Finish: lock buildroot
Start: chroot init
Start: lock buildroot
Mock Version: 1.1.32
INFO: Mock Version: 1.1.32
INFO: calling preinit hooks
INFO: enabled root cache
Start: unpacking root cache
Finish: unpacking root cache
INFO: enabled yum cache
Start: cleaning yum metadata
Finish: cleaning yum metadata
INFO: enabled ccache
Start: device setup
Finish: device setup
Start: yum update
Start: Outputting list of available packages
Finish: Outputting list of available packages
Finish: yum update
Finish: lock buildroot
Finish: chroot init
INFO: Installed packages:
Start: build phase for less-451-1.fc18.src.rpm
Start: device setup
Finish: device setup
Start: build setup for less-451-1.fc18.src.rpm
Finish: build setup for less-451-1.fc18.src.rpm
Start: rpmbuild -bb less-451-1.fc18.src.rpm
Start: Outputting list of installed packages
Finish: Outputting list of installed packages
ERROR: Exception(less-451-1.fc18.src.rpm) Config(fedora-18-i386) 0 minutes 25 seconds
INFO: Results and/or logs in: /var/lib/mock/fedora-18-i386/result
ERROR: Command failed. See logs for output.
# ['bash', '--login', '-c', 'rpmbuild -bb --target i686 --nodeps builddir/build/SPECS/less.spec']
About time something had to go wrong. Let me check the result and modify my specs.
Did some research and found this article, they were talking about re-installing ncurses? so I figured, maybe it needs ncurses-devel. I added "BuildRequires: ncurses-devel" and ran mock again. It build without any issues.
[hitman@localhost SRPMS]$ mock -r fedora-18-i386 less-451-1.fc18.src.rpm
INFO: mock.py version 1.1.32 starting...
Start: init plugins
INFO: selinux enabled
Finish: init plugins
Start: run
INFO: Start(less-451-1.fc18.src.rpm) Config(fedora-18-i386)
Start: lock buildroot
Start: clean chroot
INFO: chroot (/var/lib/mock/fedora-18-i386) unlocked and deleted
Finish: clean chroot
Finish: lock buildroot
Start: chroot init
Start: lock buildroot
Mock Version: 1.1.32
INFO: Mock Version: 1.1.32
INFO: calling preinit hooks
INFO: enabled root cache
Start: unpacking root cache
Finish: unpacking root cache
INFO: enabled yum cache
Start: cleaning yum metadata
Finish: cleaning yum metadata
INFO: enabled ccache
Start: device setup
Finish: device setup
Start: yum update
Start: Outputting list of available packages
Finish: Outputting list of available packages
Finish: yum update
Finish: lock buildroot
Finish: chroot init
INFO: Installed packages:
Start: build phase for less-451-1.fc18.src.rpm
Start: device setup
Finish: device setup
Start: build setup for less-451-1.fc18.src.rpm
Finish: build setup for less-451-1.fc18.src.rpm
Start: rpmbuild -bb less-451-1.fc18.src.rpm
Start: Outputting list of installed packages
Finish: Outputting list of installed packages
Finish: rpmbuild -bb less-451-1.fc18.src.rpm
Finish: build phase for less-451-1.fc18.src.rpm
INFO: Done(less-451-1.fc18.src.rpm) Config(fedora-18-i386) 0 minutes 30 seconds
INFO: Results and/or logs in: /var/lib/mock/fedora-18-i386/result
Finish: run
Just took about 30 seconds. That is pretty neat!
Here is a link to my changed spec file.
less.spec
I think Mock tool is amazing, one thing I liked about it is, you can build packages on different architectures using mock which is nice.
The whole lab took be about 45 minutes to complete.
Monday, 11 November 2013
Installing Fedora Package Database
1.
Get the package database from
·
https://fedorahosted.org/releases/p/a/packagedb
2.
you will get a tarball, extract it using
·
tar -xvf fedora-packagedb-0.6.0
3.
Install the needed packages:
·
yum -y install python-genshi TurboGears
python-turbojson postgresql-server \
postgresql-contrib
python-TurboMail python-bugzilla python-fedora \python-psycopg2 python-sqlalchemy python-feedparser koji mod_wsgi \
python-paver httpd mod_ssl babel python-cpio xz python-argparse \
python-mako python-memcached (you can probably copy paste this)
4.
go to fedora-packagedb-0.6.0
·
run: python setup.py egg_info (you will get a
few warnings ignore them) NOTE:please do a yum update before doing this.
·
paver build --install-conf=`pwd`
--install-data=`pwd` --install-sbin=`pwd`
5.
start the postgresql service if it is not already
started by issuing
·
service postgresql initdb
·
start the service using "service postgresql
start"
6.
Create postgresql users:
sudo -u postgres createuser -SDRPE pkgdbadminEnter password for new role: <password>
Enter it again: <password>
sudo -u postgres createuser -SDRPE pkgdbreadonly
Enter password for new role: <password>
Enter it again: <password>
Get the most recent dump from the same website you grabbed fedora package from. so go to https://fedorahosted.org/releases/p/a/packagedb and download the most recent ".dump.xz" file
then run this command to import it all to the database:
xzcat pkgdb-20100318.dump.xz | sudo -u postgres psql
NOTE: this can take a while, no, rather this will take a while - give it about 3-4 hours if you are running it on a virtual machine.
After this the instructions said to modify the HTTP server
to run the python script, this is what I am having trouble with, it gives me a
403 error. and I am trying to get a hold of Raymond Chan as he is the guru when
it comes to Linux System Administration. Once It is resolved I will update the
blog, if anybody else have any solution please comment
I created an Account in Fedora and was going to ask my question, however, they suggested to ask package related questions in buzilla. I started answering questions there to the best of my ability
https://ask.fedoraproject.org/question/35812/fedora-19-etcresovconf-auto-renewed/?answer=35894#post-id-35894
I asked my question in the bugzilla but there is no package called "packagedb" there, they redirected me to ask either on git hub or email the persons responsible for the package.
https://bugzilla.redhat.com/show_bug.cgi?id=1030792
I asked on Github and I am going to send and email to a.badger@gmail.com
for the same question.
https://github.com/fedora-infra/packagedb/issues/13
#################UPDATE November 16th#################
abadger replied really quick. Check the updates on this page.
https://github.com/fedora-infra/packagedb/issues/13
###############################################################################################
#################UPDATE November 16th#################
I created an Account in Fedora and was going to ask my question, however, they suggested to ask package related questions in buzilla. I started answering questions there to the best of my ability
https://ask.fedoraproject.org/question/35812/fedora-19-etcresovconf-auto-renewed/?answer=35894#post-id-35894
I asked my question in the bugzilla but there is no package called "packagedb" there, they redirected me to ask either on git hub or email the persons responsible for the package.
https://bugzilla.redhat.com/show_bug.cgi?id=1030792
I asked on Github and I am going to send and email to a.badger@gmail.com
for the same question.
https://github.com/fedora-infra/packagedb/issues/13
#################UPDATE November 16th#################
abadger replied really quick. Check the updates on this page.
https://github.com/fedora-infra/packagedb/issues/13
paver build command gives me this. Not sure what to make of it, I will ask the package admin about this
paver build --install-conf=`pwd` --install-data=`pwd` --install-sbin=`pwd`
Traceback (most recent call last):
File "/usr/bin/paver", line 9, in <module>
load_entry_point('Paver==1.1.1', 'console_scripts', 'paver')()
File "/usr/lib/python2.7/site-packages/paver/tasks.py", line 816, in main
_launch_pavement(args)
File "/usr/lib/python2.7/site-packages/paver/tasks.py", line 785, in _launch_pavement
execfile(environment.pavement_file, mod.__dict__)
File "pavement.py", line 16, in <module>
from turbogears.finddata import find_package_data
File "/usr/lib/python2.7/site-packages/turbogears/__init__.py", line 9, in <module>
from turbogears.config import update_config
File "/usr/lib/python2.7/site-packages/turbogears/config.py", line 4, in <module>
pkg_resources.require("CherryPy<3.0")
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 690, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 592, in resolve
raise VersionConflict(dist,req) # XXX put more info here
pkg_resources.VersionConflict: (CherryPy 3.2.2 (/usr/lib/python2.7/site-packages), Requirement.parse('CherryPy<3.0')
Subscribe to:
Posts (Atom)
How to add "Discord" in Steam's Big Picture Mode
With the release of Steam deck a lot of people are turning into Steam Deck Big Picture Mode(BPM) to enjoy an exclusive gaming experience, t...
-
1. Make sure you are directly connected to the router through a cable · Take an ethernet cable from y...
-
Since most of the Linux administration practice is done in a virtual environment, I thought I should create a video about it, as I am aware ...
-
Suggestions to the Package author: Please include a list of required packages in the instructions Sqllite database works in development ...