Difference between revisions of "Rpm build example using cvs/mock"
Line 29: | Line 29: | ||
* Users and password | * Users and password | ||
Root = xxxxxx | Root = xxxxxx | ||
− | + | chris = xxxxxxxx | |
IP = 192.168.xx.12 | IP = 192.168.xx.12 | ||
Source Forge xxxxxxx | Source Forge xxxxxxx | ||
Line 39: | Line 39: | ||
*Logon as root | *Logon as root | ||
* Log to server over ssh from ubuntu workstation: | * Log to server over ssh from ubuntu workstation: | ||
− | + | chris@ubuntu-desktop:~$ slogin -p 22 root\@192.168.xx.12 | |
root@192.168.xx.12's password: xxxx | root@192.168.xx.12's password: xxxx | ||
Last login: Tue Feb 5 17:22:42 2013 from pc-00001.burnat.xxx | Last login: Tue Feb 5 17:22:42 2013 from pc-00001.burnat.xxx | ||
− | *Login as user | + | *Login as user chris |
− | + | chris@ubuntu-desktop:~$ slogin -p 22 chris\@192.168.xx.12 | |
− | + | chris@192.168.xxx.12's password: xxxx | |
Last login: Tue Mar 5 11:31:47 2013 | Last login: Tue Mar 5 11:31:47 2013 | ||
* Sudo | * Sudo | ||
− | [ | + | [chris@build-system ~]$ sudo yum update |
− | [sudo] password for | + | [sudo] password for chris: xxxx |
No Packages marked for Update | No Packages marked for Update | ||
* Changeroot Environments (cd /etc/mock/)<br /> | * Changeroot Environments (cd /etc/mock/)<br /> | ||
− | [ | + | [chris@build-system ~]$ cd /etc/mock/ |
-rw-r--r-- 1 root root 1751 Nov 2 07:59 logging.ini | -rw-r--r-- 1 root root 1751 Nov 2 07:59 logging.ini | ||
-rw-r--r-- 1 root mock 6730 Jan 25 06:57 site-defaults.cfgHost shell.contribs.org User xxxxx | -rw-r--r-- 1 root mock 6730 Jan 25 06:57 site-defaults.cfgHost shell.contribs.org User xxxxx | ||
Line 84: | Line 84: | ||
* To be able to work on your code in the SME Server CVS repository you need an account on SourceForge. If you do not have an account at CVS, retrieving is performed as an anonymous user and changes cannot be saved. | * To be able to work on your code in the SME Server CVS repository you need an account on SourceForge. If you do not have an account at CVS, retrieving is performed as an anonymous user and changes cannot be saved. | ||
− | slogin -p 22 | + | slogin -p 22 chris\@192.168.xx.12 |
Note: If at a later stage you obtain a valid account with CVS, you will need to edit ALL packages /CVS/Root in order to save your work in CVS. As an example, for package "e-smith-backup", CVS/Root will need to be edited to be exactly as shown below: | Note: If at a later stage you obtain a valid account with CVS, you will need to edit ALL packages /CVS/Root in order to save your work in CVS. As an example, for package "e-smith-backup", CVS/Root will need to be edited to be exactly as shown below: | ||
− | [ | + | [chris@build-system testsf]$ cat e-smith-backup/CVS/Root |
:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver | :ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver | ||
[ok - CVS/Root uses 'ext' which should be SSH access] | [ok - CVS/Root uses 'ext' which should be SSH access] | ||
Line 101: | Line 101: | ||
* Import cvs in your workspace | * Import cvs in your workspace | ||
− | You can use /home/ | + | You can use /home/chris/testsf or whatever suits. |
− | [ | + | [chris@build-system ~]$ mkdir work |
− | [ | + | [chris@build-system ~]$ cd work/ |
− | [ | + | [chris@build-system testsf]$ cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P e-smith-backup |
* To refresh run the following from the rpms directory, or any lower directory with a CVS dir | * To refresh run the following from the rpms directory, or any lower directory with a CVS dir | ||
− | [ | + | [chris@build-system ~] cd e-smith-backup/ |
− | [ | + | [chris@build-system e-smith-backup]$ cvs update -dPA |
* Change to work directory | * Change to work directory | ||
− | [ | + | [chris@build-system e-smith-backup] cd sme9 |
* To prepare a tree | * To prepare a tree | ||
− | [ | + | [chris@build-system sme9]$ cvs update -dPA |
− | [ | + | [chris@build-system sme9]$ make clean [ignore errors about tar.xz:file missing] |
− | [ | + | [chris@build-system sme9]$ make prep |
* Make a patch | * Make a patch | ||
Line 124: | Line 124: | ||
cp -R e-smith-backup-2.4.0 e-smith-backup-2.4.0.old | cp -R e-smith-backup-2.4.0 e-smith-backup-2.4.0.old | ||
− | [ | + | [chris@build-system sme9]$ ls -la |
− | drwxrwxr-x 2 | + | drwxrwxr-x 2 chris chris 4096 Apr 2 14:07 CVS |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 28 Feb 14 02:42 .cvsignore |
− | drwxr-xr-x 3 | + | drwxr-xr-x 3 chris chris 4096 Feb 14 02:24 e-smith-backup-2.4.0 |
− | drwxrwxr-x 2 | + | drwxrwxr-x 2 chris chris 4096 Apr 1 17:12 e-smith-backup-2_4_0-4_el6_sme |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 93816 Apr 1 17:23 e-smith-backup-2.4.0-4.el6.sme.src.rpm |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 902 Mar 21 15:30 e-smith-backup-2.4.0-CIFS_UNC_Path.patch |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 730 Mar 1 17:21 e-smith-backup-2.4.0-df_ext4.patch |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 663 Apr 1 16:38 e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 38424 Feb 14 02:35 e-smith-backup-2.4.0.tar.xz |
− | -rw-r--r-- 1 | + | -rw-r--r-- 1 chris chris 44999 Apr 2 14:07 e-smith-backup.spec |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 90 Feb 14 02:42 import.log |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 836 Feb 14 02:42 Makefile |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 62 Feb 14 02:42 sources |
* Switch to the tree and make required modification: | * Switch to the tree and make required modification: | ||
Create a patch using a sensible name, eg "e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch": | Create a patch using a sensible name, eg "e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch": | ||
− | [ | + | [chris@build-system sme9]$ diff -urN e-smith-backup-2.4.0.old e-smith-backup-2.4.0 > e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch |
* Update the spec file | * Update the spec file | ||
− | [ | + | [chris@build-system sme9]$ nano e-smith-backup.spec |
* increase the release version at the beginning of the spec file | * increase the release version at the beginning of the spec file | ||
Line 155: | Line 155: | ||
* update the changelog section, including the release version and bug number | * update the changelog section, including the release version and bug number | ||
%changelog | %changelog | ||
− | * Mon Apr 1 2013 | + | * Mon Apr 1 2013 chris burnat <devlist@burnat.com> 2.4.0-4.sme |
- NFS syntax is deprecated for CIFS mount [SME: 7525] | - NFS syntax is deprecated for CIFS mount [SME: 7525] | ||
Line 162: | Line 162: | ||
* Check changes against CVS | * Check changes against CVS | ||
− | [ | + | [chris@build-system sme9]$ cvs diff -u e-smith-backup.spec |
* Build the test RPM | * Build the test RPM | ||
− | [ | + | [chris@build-system sme9]$ pwd |
− | /home/ | + | /home/chris/work/e-smith-backup/sme9 |
− | [ | + | [chris@build-system sme9]$ make mockbuild |
* Check built packages: | * Check built packages: | ||
− | [ | + | [chris@build-system sme9]$ ls -la e-smith-backup-2_4_0-4_el6_sme |
* Send new package and patch to workstation for testing/processing: | * Send new package and patch to workstation for testing/processing: | ||
− | [ | + | [chris@build-system sme9]$ scp -P 22 e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch chris\@192.168.xx.1:/home/chris/WIP |
− | [ | + | [chris@build-system e-smith-qmail-2_4_0-3_el6_sme]$ scp -P 22 e-smith-qmail-2.4.0-3.el6.sme.noarch.rpm chris\@192.168.xx.1:/home/chris/WIP |
* Add the patch file to cvs: | * Add the patch file to cvs: | ||
− | [ | + | [chris@build-system sme9]$ cvs add e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch |
cvs add: scheduling file `e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch' for addition | cvs add: scheduling file `e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch' for addition | ||
cvs add: use 'cvs commit' to add this file permanently | cvs add: use 'cvs commit' to add this file permanently | ||
Line 187: | Line 187: | ||
* Finalise: | * Finalise: | ||
− | [ | + | [chris@build-system sme9]$ make commit tag build |
Note: this can also be done in stages: | Note: this can also be done in stages: | ||
Line 230: | Line 230: | ||
====Example==== | ====Example==== | ||
− | [ | + | [chris@build-system ~]$ cd work/ |
− | [ | + | [chris@build-system work]$ cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P e-smith-radiusd |
cvs checkout: Updating e-smith-radiusd | cvs checkout: Updating e-smith-radiusd | ||
Line 268: | Line 268: | ||
U common/tobuild | U common/tobuild | ||
− | [ | + | [chris@build-system sme9]$ cvs update -dPA |
cvs update: Updating . | cvs update: Updating . | ||
− | [ | + | [chris@build-system sme9]$ cat e-smith-radiusd.spec |
# $Id: e-smith-radiusd.spec,v 1.10 2013/04/14 16:31:14 charliebrady Exp $ | # $Id: e-smith-radiusd.spec,v 1.10 2013/04/14 16:31:14 charliebrady Exp $ | ||
Line 312: | Line 312: | ||
− | [ | + | [chris@build-system sme9]$ make tag |
cvs tag -c e-smith-radiusd-2_4_0-8_el6_sme | cvs tag -c e-smith-radiusd-2_4_0-8_el6_sme | ||
cvs tag: Tagging . | cvs tag: Tagging . | ||
Line 327: | Line 327: | ||
Tagged with: e-smith-radiusd-2_4_0-8_el6_sme | Tagged with: e-smith-radiusd-2_4_0-8_el6_sme | ||
− | [ | + | [chris@build-system sme9]$ make build |
/usr/bin/plague-client build e-smith-radiusd e-smith-radiusd-2_4_0-8_el6_sme sme9 | /usr/bin/plague-client build e-smith-radiusd e-smith-radiusd-2_4_0-8_el6_sme sme9 | ||
Package e-smith-radiusd enqueued. Job ID: 3026. | Package e-smith-radiusd enqueued. Job ID: 3026. | ||
Line 345: | Line 345: | ||
* Check package on BUILDSYS | * Check package on BUILDSYS | ||
− | + | chris@canxxx:~$ ssh -l xxxxxx shell.contribs.org | |
Last login: Wed Apr 10 16:10:50 2013 from mail.burnat.xxx | Last login: Wed Apr 10 16:10:50 2013 from mail.burnat.xxx | ||
Line 378: | Line 378: | ||
smeserver-qpsmtpd reads MaxMessageSize prop of spamassassin and adds it to the arguments of the plugin if defined. | smeserver-qpsmtpd reads MaxMessageSize prop of spamassassin and adds it to the arguments of the plugin if defined. | ||
− | [ | + | [chris@build-system work]$ pwd |
− | /home/ | + | /home/chris/work |
− | [ | + | [chris@build-system work]$ ls -la |
total 16 | total 16 | ||
− | drwxrwxr-x 4 | + | drwxrwxr-x 4 chris chris 4096 Apr 23 13:15 . |
− | drwx------ 8 | + | drwx------ 8 chris chris 4096 Apr 3 17:01 .. |
− | drwxrwxr-x 7 | + | drwxrwxr-x 7 chris chris 4096 Apr 23 13:15 qpsmtpd |
− | drwxrwxr-x 7 | + | drwxrwxr-x 7 chris chris 4096 Apr 23 13:15 smeserver-qpsmtpd |
*Get package from CVS | *Get package from CVS | ||
− | [ | + | [chris@build-system work]$ cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P qpsmtpd |
− | [ | + | [chris@build-system work]$ cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P smeserver-qpsmtpd |
− | [ | + | [chris@build-system work]$ ls |
qpsmtpd smeserver-qpsmtpd | qpsmtpd smeserver-qpsmtpd | ||
* SAVE PATCHES ON WORKSTATION AND COPY TO LOCAL BUILD SERVER | * SAVE PATCHES ON WORKSTATION AND COPY TO LOCAL BUILD SERVER | ||
− | + | chris@caxxxx:~/exchange$ ls -la | |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 610 2013-04-23 13:29 qpsmtpd-0.84-spamassassin_size_limit.patch |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 811 2013-04-23 13:30 smeserver-qpsmtpd-2.2.0-spamassassin_size_limit.patch |
− | + | chris@ubuntu-desktopx:~/exchange$ scp -P 22 qpsmtpd-0.84-spamassassin_size_limit.patch chris\@192.168.0.12:/home/chris/exchange | |
− | + | chris@canxxxx:~/exchange$ scp -P 22 smeserver-qpsmtpd-2.2.0-spamassassin_size_limit.patch chris\@192.168.0.12:/home/chris/exchange | |
* OR COPY PATCH FROM SOURCE (sme8) | * OR COPY PATCH FROM SOURCE (sme8) | ||
− | cp e-smith-proxy-5.2.0-squid_additionnal_SSLports.patch /home/ | + | cp e-smith-proxy-5.2.0-squid_additionnal_SSLports.patch /home/chris/work/e-smith-proxy/sme9/e-smith-proxy-5.4.0-squid_additionnal_SSLports.patch |
* Process qpsmtpd on local BUILD | * Process qpsmtpd on local BUILD | ||
− | [ | + | [chris@build-system work]$ cd qpsmtpd/ |
− | [ | + | [chris@build-system qpsmtpd]$ ls |
common CVS sme7 sme8 sme9 | common CVS sme7 sme8 sme9 | ||
− | [ | + | [chris@build-system qpsmtpd]$ cvs update -dPA |
last patch: | last patch: | ||
0038-Patch-FATAL-PLUGIN-ERROR-check_basicheaders.patch | 0038-Patch-FATAL-PLUGIN-ERROR-check_basicheaders.patch | ||
− | [ | + | [chris@build-system sme8]$ pwd |
− | /home/ | + | /home/chris/work/qpsmtpd/sme8 |
− | [ | + | [chris@build-system sme8]$ pushd ~/exchange/ |
~/exchange ~/work/qpsmtpd/sme8 | ~/exchange ~/work/qpsmtpd/sme8 | ||
− | [ | + | [chris@build-system exchange]$ ls |
qpsmtpd-0.84-spamassassin_size_limit.patch | qpsmtpd-0.84-spamassassin_size_limit.patch | ||
smeserver-qpsmtpd-2.2.0-spamassassin_size_limit.patch | smeserver-qpsmtpd-2.2.0-spamassassin_size_limit.patch | ||
− | [ | + | [chris@build-system exchange]$ cp qpsmtpd-0.84-spamassassin_size_limit.patch /home/chris/work/qpsmtpd/sme8/0039-qpsmtpd-0.84-spamassassin_size_limit.patch |
− | [ | + | [chris@build-system exchange]$ popd |
~/work/qpsmtpd/sme8 | ~/work/qpsmtpd/sme8 | ||
Line 431: | Line 431: | ||
* Modify the spec file: update the release number, add a PatchXX line, add a changelog entry, add a %patch line | * Modify the spec file: update the release number, add a PatchXX line, add a changelog entry, add a %patch line | ||
− | [ | + | [chris@build-system sme8]$ nano qpsmtpd.spec |
Version: 0.84 [same] | Version: 0.84 [same] | ||
Release: 4%{?dist} | Release: 4%{?dist} | ||
Line 439: | Line 439: | ||
[Fixed in qpsmtpd] | [Fixed in qpsmtpd] | ||
%changelog | %changelog | ||
− | * Tue Apr 23 2013 | + | * Tue Apr 23 2013 chris burnat <devlist@burnat.com> 0.84-4.sme |
- qpsmtpd allows the spamassassin plugin to read the size limit | - qpsmtpd allows the spamassassin plugin to read the size limit | ||
from its arguments, patch by Daniel [SME: 7541] | from its arguments, patch by Daniel [SME: 7541] | ||
Line 449: | Line 449: | ||
* Check changes against CVS | * Check changes against CVS | ||
− | [ | + | [chris@build-system sme8]$ cvs diff -u qpsmtpd.spec |
Index: qpsmtpd.spec | Index: qpsmtpd.spec | ||
RCS file: /cvsroot/smeserver/rpms/qpsmtpd/sme8/qpsmtpd.spec,v | RCS file: /cvsroot/smeserver/rpms/qpsmtpd/sme8/qpsmtpd.spec,v | ||
Line 463: | Line 463: | ||
> %patch39 -p1 | > %patch39 -p1 | ||
234a237,240 | 234a237,240 | ||
− | > * Tue Apr 23 2013 | + | > * Tue Apr 23 2013 chris burnat <devlist@burnat.com> 0.84-4.sme |
> - qpsmtpd allows the spamassassin plugin to read the size limit | > - qpsmtpd allows the spamassassin plugin to read the size limit | ||
> from its arguments, patch by Daniel [SME: 7541 | > from its arguments, patch by Daniel [SME: 7541 | ||
Line 469: | Line 469: | ||
* Build locally: | * Build locally: | ||
− | [ | + | [chris@build-system sme8]$ BUILDARCH=i386 make mockbuild |
− | INFO: Done(/home/ | + | INFO: Done(/home/chris/work/qpsmtpd/sme8/qpsmtpd-0.84-4.el5.sme.src.rpm) Config(smeserver-8-i386-base) 2 minutes 52 seconds |
− | INFO: Results and/or logs in: /home/ | + | INFO: Results and/or logs in: /home/chris/work/qpsmtpd/sme8/qpsmtpd-0_84-4_el5_sme |
INFO: Cleaning up build root ('clean_on_success=True') | INFO: Cleaning up build root ('clean_on_success=True') | ||
Start: lock buildroot | Start: lock buildroot | ||
Line 481: | Line 481: | ||
* Check packages | * Check packages | ||
− | [ | + | [chris@build-system qpsmtpd-0_84-4_el5_sme]$ ls -lah |
total 1.2M | total 1.2M | ||
− | drwxrwxr-x 2 | + | drwxrwxr-x 2 chris chris 4.0K Apr 23 14:44 . |
− | drwxrwxr-x 4 | + | drwxrwxr-x 4 chris chris 4.0K Apr 23 14:41 .. |
-rw-rw-r-- 1 root root 616K Apr 23 14:43 available_pkgs | -rw-rw-r-- 1 root root 616K Apr 23 14:43 available_pkgs | ||
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 27K Apr 23 14:44 build.log |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris mock 11K Apr 23 14:44 installed_pkgs |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris mock 187K Apr 23 14:44 qpsmtpd-0.84-4.el5.sme.noarch.rpm |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris mock 236K Apr 23 14:44 qpsmtpd-0.84-4.el5.sme.src.rpm |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris mock 16K Apr 23 14:44 qpsmtpd-apache-0.84-4.el5.sme.noarch.rpm |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris mock 33K Apr 23 14:44 qpsmtpd-async-0.84-4.el5.sme.noarch.rpm |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 67K Apr 23 14:44 root.log |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 2.1K Apr 23 14:44 state.log |
* Copy new packages to local folder: | * Copy new packages to local folder: | ||
Line 499: | Line 499: | ||
* Send new package and patch to workstation for testing/processing: | * Send new package and patch to workstation for testing/processing: | ||
− | [ | + | [chris@build-system exchange]$ scp -P 22 qpsmtpd-0.84-4.el5.sme.noarch.rpm chris\@192.168.0.1:/home/chris/WIP |
− | [ | + | [chris@build-system exchange]$ scp -P 22 qpsmtpd-apache-0.84-4.el5.sme.noarch.rpm chris\@192.168.0.1:/home/chris/WIP |
− | [ | + | [chris@build-system exchange]$ scp -P 22 qpsmtpd-async-0.84-4.el5.sme.noarch.rpm chris\@192.168.0.1:/home/chris/WIP |
* Move to workstation and copy packages to sme8 test-server (32 bits): | * Move to workstation and copy packages to sme8 test-server (32 bits): | ||
Line 525: | Line 525: | ||
Subject: Re: Fwd: Updates available for test80 | Subject: Re: Fwd: Updates available for test80 | ||
Date: Tue, 23 Apr 2013 15:21:57 +1000 | Date: Tue, 23 Apr 2013 15:21:57 +1000 | ||
− | From: | + | From: chris burnat <cbxxxx@bxxxx.com> |
Reply-To: cbxxxx@bxxxx.com | Reply-To: cbxxxx@bxxxx.com | ||
To: root <admin@schxxxxx.com> | To: root <admin@schxxxxx.com> | ||
Line 547: | Line 547: | ||
* OK, we can push this package. | * OK, we can push this package. | ||
− | [cvs add | + | [cvs add chris.patch and then make commit tag build] |
NOTE: Multiple patches: | NOTE: Multiple patches: | ||
− | Ian Wells: yes you will need to 'cvs add | + | Ian Wells: yes you will need to 'cvs add chris.patch' for all the patches, you can actually do cvs add *.patch and it will work it out |
− | [ | + | [chris@build-system sme8]$ cvs add 0039-qpsmtpd-0.84-spamassassin_size_limit.patch |
cvs add: scheduling file `0039-qpsmtpd-0.84-spamassassin_size_limit.patch' for addition | cvs add: scheduling file `0039-qpsmtpd-0.84-spamassassin_size_limit.patch' for addition | ||
cvs add: use 'cvs commit' to add this file permanently | cvs add: use 'cvs commit' to add this file permanently | ||
− | [ | + | [chris@build-system sme8]$ make commit tag build |
[snip] | [snip] | ||
/usr/bin/plague-client build qpsmtpd qpsmtpd-0_84-4_el5_sme sme8 | /usr/bin/plague-client build qpsmtpd qpsmtpd-0_84-4_el5_sme sme8 | ||
Line 600: | Line 600: | ||
[xxx@xxxx work]$ pwd | [xxx@xxxx work]$ pwd | ||
− | /home/ | + | /home/chris/work |
− | [ | + | [chris@bui work]$ cvs -z3 -d:pserver:anonymous@smeserver.cvs.sourceforge.net:/cvsroot/smeserver checkout -P e-smith-base |
− | [ | + | [chris@buildxxx work]$ cd e-smith-base/sme8/ |
− | [ | + | [chris@buildxxx sme8]$ cvs update -dPA |
− | [ | + | [chris@buildxxx sme8]$ make clean |
− | [ | + | [chris@buildxxx sme8]$ make prep |
− | [ | + | [chris@buildxxx sme8]$ cp -R e-smith-base-5.2.0 e-smith-base-5.2.0.old |
− | [ | + | [chris@buildxxx root]$ ll usr/lib/perl5/site_perl/esmith/console/ |
total 104 | total 104 | ||
− | -rw-r--r-- 1 | + | -rw-r--r-- 1 chris chris 1761 Jan 27 2007 backup_running.pm |
− | -rw-r--r-- 1 | + | -rw-r--r-- 1 chris chris 65997 Feb 6 08:08 configure.pm |
− | -rw-r--r-- 1 | + | -rw-r--r-- 1 chris chris |
#use esmith::console; | #use esmith::console; | ||
6682 Feb 6 08:08 perform_backup.pm | 6682 Feb 6 08:08 perform_backup.pm | ||
− | -rw-r--r-- 1 | + | -rw-r--r-- 1 chris chris 4133 Feb 6 08:08 perform_restore.pm |
− | -rw-r--r-- 1 | + | -rw-r--r-- 1 chris chris 1037 Mar 27 2008 quitConsole.pm |
− | -rw-r--r-- 1 | + | -rw-r--r-- 1 chris chris 862 Mar 27 2008 save_config.pm |
− | -rw-r--r-- 1 | + | -rw-r--r-- 1 chris chris 4867 Aug 21 2008 system_password.pm |
− | [ | + | [chris@buildxxx root]$ nano usr/lib/perl5/site_perl/esmith/console/perform_restore.pm |
* Original | * Original | ||
Line 646: | Line 646: | ||
#use esmith::console; | #use esmith::console; | ||
− | [ | + | [chris@buildxxx sme8]$ diff -urN e-smith-base-5.2.0.old e-smith-base-5.2.0 > e-smith-base-5.2.0-fire_post-upgrade_after_restore_process.patch |
− | [ | + | [chris@buildxxx sme8]$ cat e-smith-base-5.2.0-fire_post-upgrade_after_restore_process.patch |
diff -urN e-smith-base-5.2.0.old/root/usr/lib/perl5/site_perl/esmith/console/perform_restore.pm e-smith-base-5.2.0/root/usr/lib/perl5/site_perl/esmith/console/perform_restore.pm | diff -urN e-smith-base-5.2.0.old/root/usr/lib/perl5/site_perl/esmith/console/perform_restore.pm e-smith-base-5.2.0/root/usr/lib/perl5/site_perl/esmith/console/perform_restore.pm | ||
--- e-smith-base-5.2.0.old/root/usr/lib/perl5/site_perl/esmith/console/perform_restore.pm 2013-02-06 08:11:54.926469195 +1100 | --- e-smith-base-5.2.0.old/root/usr/lib/perl5/site_perl/esmith/console/perform_restore.pm 2013-02-06 08:11:54.926469195 +1100 | ||
Line 661: | Line 661: | ||
#use esmith::console; | #use esmith::console; | ||
− | [ | + | [chris@buildxxx sme8]$ nano e-smith-base.spec |
− | [ | + | [chris@buildxxx sme8]$ cvs diff e-smith-base.spec |
Index: e-smith-base.spec | Index: e-smith-base.spec | ||
=================================================================== | =================================================================== | ||
Line 682: | Line 682: | ||
> %patch55 -p1 | > %patch55 -p1 | ||
− | [ | + | [chris@buildxxx sme8]$ make mockbuild |
− | [ | + | [chris@buildxxx sme8]$ ll e-smith-base-5_2_0-71_el5_sme |
total 852 | total 852 | ||
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 124407 Feb 6 09:01 build.log |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris mock 287857 Feb 6 09:01 e-smith-base-5.2.0-71.el5.sme.src.rpm |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris mock 366908 Feb 6 09:01 e-smith-base-5.2.0-71.el5.sme.x86_64.rpm |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris mock 52836 Feb 6 09:01 e-smith-base-debuginfo-5.2.0-71.el5.sme.x86_64.rpm |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 25819 Feb 6 09:01 root.log |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris chris 1384 Feb 6 09:01 state.log |
Now we commit modifications | Now we commit modifications | ||
− | [ | + | [chris@buildxxx sme8]$ cvs update |
? e-smith-base-5.2.0 | ? e-smith-base-5.2.0 | ||
? e-smith-base-5.2.0-71.el5.sme.src.rpm | ? e-smith-base-5.2.0-71.el5.sme.src.rpm | ||
Line 703: | Line 703: | ||
M e-smith-base.spec | M e-smith-base.spec | ||
− | [ | + | [chris@buildxxx sme8]$ cvs commit -m 'Bug 7060 - Post-upgrades not fired after restore from console' |
cvs commit: Examining . | cvs commit: Examining . | ||
? e-smith-base-5_2_0-71_el5_sme | ? e-smith-base-5_2_0-71_el5_sme | ||
Line 727: | Line 727: | ||
EXAMPLE: | EXAMPLE: | ||
− | * Thu Apr 25 2013 | + | * Thu Apr 25 2013 chris burnat <devlist@burnat.com> 0.84.5.sme |
- Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7557] | - Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7557] | ||
Should be: | Should be: | ||
− | * Thu Apr 25 2013 | + | * Thu Apr 25 2013 chris burnat <devlist@burnat.com> 0.84.5.sme |
- Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7194] | - Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7194] | ||
− | [ | + | [chris@build-system work]$ pwd |
− | /home/ | + | /home/chris/work |
− | [ | + | [chris@build-system work]$ cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P qpsmtpd |
* Update | * Update | ||
− | [ | + | [chris@build-system work]$ cd qpsmtpd/ |
− | [ | + | [chris@build-system qpsmtpd]$ ls |
common CVS sme7 sme8 sme9 | common CVS sme7 sme8 sme9 | ||
− | [ | + | [chris@build-system qpsmtpd]$ cvs update -dPA |
cvs update: Updating . | cvs update: Updating . | ||
cvs update: Updating common | cvs update: Updating common | ||
Line 751: | Line 751: | ||
* Update spec file | * Update spec file | ||
− | [ | + | [chris@build-system sme8]$ nano qpsmtpd.spec |
%changelog | %changelog | ||
− | * Thu Apr 25 2013 | + | * Thu Apr 25 2013 chris burnat <devlist@burnat.com> 0.84.5.sme |
- Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7194] | - Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7194] | ||
* Check changes against CVS | * Check changes against CVS | ||
− | [ | + | [chris@build-system sme8]$ cvs diff -u qpsmtpd.spec |
Index: qpsmtpd.spec | Index: qpsmtpd.spec | ||
Line 769: | Line 769: | ||
* Commit | * Commit | ||
− | [ | + | [chris@build-system sme8]$ cvs commit -m 'correct Bug Reference' |
cvs commit: Examining . | cvs commit: Examining . | ||
Checking in qpsmtpd.spec; | Checking in qpsmtpd.spec; | ||
Line 806: | Line 806: | ||
%changelog | %changelog | ||
− | * Thu Apr 25 2013 | + | * Thu Apr 25 2013 chris burnat <devlist@burnat.com> 0.84.5.sme |
-- Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7557] | -- Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7557] | ||
+- Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7194] | +- Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7194] | ||
− | * Tue Apr 23 2013 | + | * Tue Apr 23 2013 chris burnat <devlist@burnat.com> 0.84-4.sme |
- qpsmtpd allows the spamassassin plugin to read the size limit | - qpsmtpd allows the spamassassin plugin to read the size limit | ||
Line 924: | Line 924: | ||
* SEND TO UBUNTU W/S: | * SEND TO UBUNTU W/S: | ||
− | [ | + | [chris@build-system sme8]$ scp -P 22 smeserver-yum-2.2.0-21.el5.sme.src.rpm chris\@192.168.xxx.1:/home/chris/WIP |
The authenticity of host '192.168.xxx.1 (192.168.xxx.1)' can't be established. | The authenticity of host '192.168.xxx.1 (192.168.xxx.1)' can't be established. | ||
RSA key fingerprint is 63:41:79:2b:1f:1f:37:db:80:0d:6e:4d:9b:4a:86:96. | RSA key fingerprint is 63:41:79:2b:1f:1f:37:db:80:0d:6e:4d:9b:4a:86:96. | ||
Are you sure you want to continue connecting (yes/no)? yes | Are you sure you want to continue connecting (yes/no)? yes | ||
Warning: Permanently added '192.168.xxx.1' (RSA) to the list of known hosts. | Warning: Permanently added '192.168.xxx.1' (RSA) to the list of known hosts. | ||
− | + | chris@192.168.xxx.1's password: | |
smeserver-yum-2.2.0-21.el5.sme.src.rpm 100% 85KB 84.7KB/s 00:00 | smeserver-yum-2.2.0-21.el5.sme.src.rpm 100% 85KB 84.7KB/s 00:00 | ||
* GET FROM UBUNTU W/S | * GET FROM UBUNTU W/S | ||
− | + | chris@canxxxx:~/exchange$ scp -P 22 smeserver-yum-2.2.0-21.el5.sme.src.rpm chris\@192.168.xxx.12:/home/chris/exchange | |
− | + | chris@192.168.xxx.12's password: | |
smeserver-yum-2.2.0-21.el5.sme.src.rpm 100% 85KB 84.7KB/s 00:00 | smeserver-yum-2.2.0-21.el5.sme.src.rpm 100% 85KB 84.7KB/s 00:00 | ||
Line 960: | Line 960: | ||
=====Perform a Build for sme9 64 bits from an SRPM===== | =====Perform a Build for sme9 64 bits from an SRPM===== | ||
* Retrieve SRPM from repos: | * Retrieve SRPM from repos: | ||
− | [ | + | [chris@build-system SRPMS]$ wget http://mirror.canada.pialasse.com/releases/testing/9.0alpha3/smetest/SRPMS/perl-CGI-FormMagick-0.93-2.el6.sme.src.rpm |
* Select chroot environment: | * Select chroot environment: | ||
− | [ | + | [chris@build-system SRPMS]$ CONFIG=smeserver-9-x86_64-base |
* Build package: | * Build package: | ||
− | [ | + | [chris@build-system SRPMS]$ mock -r $CONFIG --rebuild ~/rpmbuild/SRPMS/perl-CGI-FormMagick-0.93-2.el6.sme.src.rpm |
* Check output: | * Check output: | ||
− | [ | + | [chris@build-system SRPMS]$ ll /var/lib/mock/smeserver-9-x86_64/result |
total 248 | total 248 | ||
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris mock 14924 Apr 1 08:50 build.log |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris mock 113480 Apr 1 08:50 perl-CGI-FormMagick-0.93-2.el6.sme.noarch.rpm |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris mock 90524 Apr 1 08:50 perl-CGI-FormMagick-0.93-2.el6.sme.src.rpm |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris mock 23316 Apr 1 08:50 root.log |
− | -rw-rw-r-- 1 | + | -rw-rw-r-- 1 chris mock 1224 Apr 1 08:50 state.log |
=====Perform a Build for sme9 32 bits from an SRPM===== | =====Perform a Build for sme9 32 bits from an SRPM===== | ||
− | [ | + | [chris@build-system SRPMS]$ CONFIG=smeserver-9-i386-base |
=====Perform a Build for sme8 64 bits from an SRPM===== | =====Perform a Build for sme8 64 bits from an SRPM===== | ||
− | [ | + | [chris@build-system SRPMS]$ wget http://mirror.canada.pialasse.com/releases/8.0/smeupdates-testing/SRPMS/perl-CGI-FormMagick-0.92-23.el5.sme.src.rpm |
− | [ | + | [chris@build-system SRPMS]$ CONFIG=smeserver-8-x86_64-base |
=====Perform a Build for sme8 32 bits from an SRPM===== | =====Perform a Build for sme8 32 bits from an SRPM===== | ||
− | [ | + | [chris@build-system SRPMS]$ CONFIG=smeserver-8-i386-base |
* If the build succeeds, it drops your packages into the /var/lib/mock/$CONFIG/result directory. | * If the build succeeds, it drops your packages into the /var/lib/mock/$CONFIG/result directory. |
Revision as of 21:12, 10 February 2014
BUILD SERVER USAGE
Reference:
http://wiki.contribs.org/Setting_up_RPM_Building_for_SME_Server
http://wiki.contribs.org/Package_Modification#Make_a_patch
http://wiki.contribs.org/Simple_Package_Modification
http://wiki.contribs.org/CVS
http://fedoraproject.org/wiki/Using_Mock_to_test_package_builds
http://www.openfusion.net/linux/mocking_rpms
http://fedoraproject.org/wiki/Projects/Mock
https://sourceforge.net/apps/trac/sourceforge/wiki/Register%20a%20user%20account
https://sourceforge.net/apps/trac/sourceforge/wiki/CVS
https://sourceforge.net/apps/trac/sourceforge/wiki/SSH%20keys
- Import into CVS:
http://wiki.contribs.org/index.php?title=Setting_up_RPM_Building_for_SME_Server#These_following_steps_need_developer_access
- Build for others:
http://wiki.contribs.org/SME_Server_Development_Framework#Builder
SETUP OF BUILD SERVER
- Users and password
Root = xxxxxx chris = xxxxxxxx IP = 192.168.xx.12 Source Forge xxxxxxx
- Buildsys:
ssh -l xxxxxxxx shell.contribs.org Pass: xxxxxxxxxxx
- Logon as root
- Log to server over ssh from ubuntu workstation:
chris@ubuntu-desktop:~$ slogin -p 22 root\@192.168.xx.12 root@192.168.xx.12's password: xxxx Last login: Tue Feb 5 17:22:42 2013 from pc-00001.burnat.xxx
- Login as user chris
chris@ubuntu-desktop:~$ slogin -p 22 chris\@192.168.xx.12 chris@192.168.xxx.12's password: xxxx Last login: Tue Mar 5 11:31:47 2013
- Sudo
[chris@build-system ~]$ sudo yum update [sudo] password for chris: xxxx No Packages marked for Update
- Changeroot Environments (cd /etc/mock/)
[chris@build-system ~]$ cd /etc/mock/ -rw-r--r-- 1 root root 1751 Nov 2 07:59 logging.ini -rw-r--r-- 1 root mock 6730 Jan 25 06:57 site-defaults.cfgHost shell.contribs.org User xxxxx -rw-r--r-- 1 root mock 1626 Jul 26 2012 smeserver-7-i386-base.cfg -rw-r--r-- 1 root mock 2169 Jul 27 2012 smeserver-7-i386-iso.cfg -rw-r--r-- 1 root mock 1650 Jul 26 2012 smeserver-7-x86_64-base.cfg -rw-r--r-- 1 root mock 2191 Jul 27 2012 smeserver-7-x86_64-iso.cfg -rw-r--r-- 1 root mock 1484 Jul 26 2012 smeserver-8-i386-base.cfg -rw-r--r-- 1 root mock 2210 Jul 27 2012 smeserver-8-i386-iso.cfg -rw-r--r-- 1 root mock 1612 Jul 26 2012 smeserver-8-x86_64-base.cfg -rw-r--r-- 1 root mock 2338 Jul 27 2012 smeserver-8-x86_64-iso.cfg -rw-r--r-- 1 root mock 1455 Jan 26 06:29 smeserver-9-i386-base.cfg -rw-r--r-- 1 root mock 2017 Jan 25 04:58 smeserver-9-i386-iso.cfg -rw-r--r-- 1 root mock 1479 Jan 26 06:29 smeserver-9-x86_64-base.cfg -rw-r--r-- 1 root mock 2039 Jan 25 04:58 smeserver-9-x86_64-iso.cfg
- Create work directories
exchange - used to move files around with wget work - used for CVS jobs rpmbuild - used to build with Mock rpms - used for CVS tree download
USING CVS - GETTING SOURCE CODES
CVS is used for maintaining code and packages. We first need to download (with CVS this is called retrieving) the code for the package to be modified from the SME Server CVS repository at SourceForge (we can also retrieve the CVS for the smecontribs tree).
Two cases with CVS:
- To be able to work on your code in the SME Server CVS repository you need an account on SourceForge. If you do not have an account at CVS, retrieving is performed as an anonymous user and changes cannot be saved.
slogin -p 22 chris\@192.168.xx.12 Note: If at a later stage you obtain a valid account with CVS, you will need to edit ALL packages /CVS/Root in order to save your work in CVS. As an example, for package "e-smith-backup", CVS/Root will need to be edited to be exactly as shown below:
[chris@build-system testsf]$ cat e-smith-backup/CVS/Root :ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver [ok - CVS/Root uses 'ext' which should be SSH access]
- To retrieve a package or a full tree as an anonymous user, cd into a work directory and issue following commands:
cvs -z3 -d:pserver:anonymous@smeserver.cvs.sourceforge.net:/cvsroot/smeserver checkout -P e-smith-backup cvs -z3 -d:pserver:anonymous@smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P rpms
- To retrieve a package or a full tree as a registered user, cd into a work directory and issue following commands:
cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P e-smith-backup cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P rpms
PACKAGE MODIFICATION
- Import cvs in your workspace
You can use /home/chris/testsf or whatever suits.
[chris@build-system ~]$ mkdir work [chris@build-system ~]$ cd work/ [chris@build-system testsf]$ cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P e-smith-backup
- To refresh run the following from the rpms directory, or any lower directory with a CVS dir
[chris@build-system ~] cd e-smith-backup/ [chris@build-system e-smith-backup]$ cvs update -dPA
- Change to work directory
[chris@build-system e-smith-backup] cd sme9
- To prepare a tree
[chris@build-system sme9]$ cvs update -dPA [chris@build-system sme9]$ make clean [ignore errors about tar.xz:file missing] [chris@build-system sme9]$ make prep
- Make a patch
Our patch will be done with the 'diff' tool which compares the edited files against the original files.
- We need to to save a copy of the original files:
cp -R e-smith-backup-2.4.0 e-smith-backup-2.4.0.old
[chris@build-system sme9]$ ls -la drwxrwxr-x 2 chris chris 4096 Apr 2 14:07 CVS -rw-rw-r-- 1 chris chris 28 Feb 14 02:42 .cvsignore drwxr-xr-x 3 chris chris 4096 Feb 14 02:24 e-smith-backup-2.4.0 drwxrwxr-x 2 chris chris 4096 Apr 1 17:12 e-smith-backup-2_4_0-4_el6_sme -rw-rw-r-- 1 chris chris 93816 Apr 1 17:23 e-smith-backup-2.4.0-4.el6.sme.src.rpm -rw-rw-r-- 1 chris chris 902 Mar 21 15:30 e-smith-backup-2.4.0-CIFS_UNC_Path.patch -rw-rw-r-- 1 chris chris 730 Mar 1 17:21 e-smith-backup-2.4.0-df_ext4.patch -rw-rw-r-- 1 chris chris 663 Apr 1 16:38 e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch -rw-rw-r-- 1 chris chris 38424 Feb 14 02:35 e-smith-backup-2.4.0.tar.xz -rw-r--r-- 1 chris chris 44999 Apr 2 14:07 e-smith-backup.spec -rw-rw-r-- 1 chris chris 90 Feb 14 02:42 import.log -rw-rw-r-- 1 chris chris 836 Feb 14 02:42 Makefile -rw-rw-r-- 1 chris chris 62 Feb 14 02:42 sources
- Switch to the tree and make required modification:
Create a patch using a sensible name, eg "e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch":
[chris@build-system sme9]$ diff -urN e-smith-backup-2.4.0.old e-smith-backup-2.4.0 > e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch
- Update the spec file
[chris@build-system sme9]$ nano e-smith-backup.spec
- increase the release version at the beginning of the spec file
%define release 4
- add the patch to the existing patchlist section:
Patch3: e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch
- update the changelog section, including the release version and bug number
%changelog * Mon Apr 1 2013 chris burnat <devlist@burnat.com> 2.4.0-4.sme - NFS syntax is deprecated for CIFS mount [SME: 7525]
- add patch version to the %setup section
%patch3 -p1
- Check changes against CVS
[chris@build-system sme9]$ cvs diff -u e-smith-backup.spec
- Build the test RPM
[chris@build-system sme9]$ pwd /home/chris/work/e-smith-backup/sme9 [chris@build-system sme9]$ make mockbuild
- Check built packages:
[chris@build-system sme9]$ ls -la e-smith-backup-2_4_0-4_el6_sme
- Send new package and patch to workstation for testing/processing:
[chris@build-system sme9]$ scp -P 22 e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch chris\@192.168.xx.1:/home/chris/WIP [chris@build-system e-smith-qmail-2_4_0-3_el6_sme]$ scp -P 22 e-smith-qmail-2.4.0-3.el6.sme.noarch.rpm chris\@192.168.xx.1:/home/chris/WIP
- Add the patch file to cvs:
[chris@build-system sme9]$ cvs add e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch cvs add: scheduling file `e-smith-backup-2.4.0-migrate_to_UNC_syntax.patch' for addition cvs add: use 'cvs commit' to add this file permanently
[ignore this suggestion!]
- Finalise:
[chris@build-system sme9]$ make commit tag build
Note: this can also be done in stages:
make commit make tag make build
- Check for Build:
http://buildsys.contribs.org/plague/
- Check for emails received from buildsys@contribs.org
USE PREP TO CHECK PATCH
However both work.
BUILDING A PACKAGE FROM CVS ON REQUEST
General instructions
The purpose is to build a package that you do not commit the patch in CVS
cd <package> cvs update -dPA cd sme9 make tag build
Example, Charlie has asked for the build of a package in CVS already:
http://bugs.contribs.org/show_bug.cgi?id=7548 http://bugs.contribs.org/show_bug.cgi?id=7546
e-smith-radiusd updated:
%changelog * Sat Apr 13 2013 Charlie Brady <charlie_brady@mitel.com> 2.4.0-7.sme - Fix permissions of /etc/radiusclient-ng/servers. [SME: 7548]
and:
* Sun Apr 14 2013 Charlie Brady <charlie_brady@mitel.com> 2.4.0-8.sme - Add directive to options.pptpd so that radius plugin can find the radiusclient configuration file. [SME: 7546]
Example
[chris@build-system ~]$ cd work/
[chris@build-system work]$ cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P e-smith-radiusd cvs checkout: Updating e-smith-radiusd cvs checkout: Updating e-smith-radiusd/sme7 U e-smith-radiusd/sme7/.cvsignore U e-smith-radiusd/sme7/Makefile U e-smith-radiusd/sme7/e-smith-radiusd.spec U e-smith-radiusd/sme7/import.log U e-smith-radiusd/sme7/sources cvs checkout: Updating e-smith-radiusd/sme8 U e-smith-radiusd/sme8/.cvsignore U e-smith-radiusd/sme8/Makefile U e-smith-radiusd/sme8/e-smith-radiusd-2.2.0-add_ldap_auth.patch U e-smith-radiusd/sme8/e-smith-radiusd-2.2.0-ldap-auth.patch U e-smith-radiusd/sme8/e-smith-radiusd-2.2.0-perms.patch U e-smith-radiusd/sme8/e-smith-radiusd.spec U e-smith-radiusd/sme8/import.log U e-smith-radiusd/sme8/sources cvs checkout: Updating e-smith-radiusd/sme9 U e-smith-radiusd/sme9/.cvsignore U e-smith-radiusd/sme9/Makefile U e-smith-radiusd/sme9/e-smith-radiusd-2.4.0-listen.patch U e-smith-radiusd/sme9/e-smith-radiusd-2.4.0-log_stdout.patch U e-smith-radiusd/sme9/e-smith-radiusd-2.4.0-ng.patch U e-smith-radiusd/sme9/e-smith-radiusd-2.4.0-ng.patch2 U e-smith-radiusd/sme9/e-smith-radiusd-2.4.0-ng.patch3 U e-smith-radiusd/sme9/e-smith-radiusd.spec U e-smith-radiusd/sme9/import.log U e-smith-radiusd/sme9/sources cvs checkout: Updating common U common/Makefile U common/Makefile.common U common/branches U common/cvs-import.sh U common/tobuild
[chris@build-system sme9]$ cvs update -dPA cvs update: Updating .
[chris@build-system sme9]$ cat e-smith-radiusd.spec # $Id: e-smith-radiusd.spec,v 1.10 2013/04/14 16:31:14 charliebrady Exp $ Summary: e-smith server and gateway - configure PPTP inbound VPN %define name e-smith-radiusd Name: %{name} %define version 2.4.0 %define release 8 Version: %{version} Release: %{release}%{?dist} License: GPL Group: Networking/Daemons Source: %{name}-%{version}.tar.xz Patch1: e-smith-radiusd-2.4.0-ng.patch Patch2: e-smith-radiusd-2.4.0-log_stdout.patch Patch3: e-smith-radiusd-2.4.0-listen.patch Patch4: e-smith-radiusd-2.4.0-ng.patch2 Patch5: e-smith-radiusd-2.4.0-ng.patch3 BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot Requires: e-smith-base >= 4.13.16-27 Requires: e-smith-lib >= 1.15.1-16 Requires: freeradius >= 2.1.12 Requires: freeradius-ldap >= 2.1.12 Requires: radiusclient-ng >= 0.5.6 Obsoletes: radiusclient <= 0.3.2 BuildRequires: e-smith-devtools >= 1.13.1-03 BuildArchitectures: noarch %define stunnelid 451 %description e-smith server and gateway - configure radius server %changelog * Sun Apr 14 2013 Charlie Brady <charlie_brady@mitel.com> 2.4.0-8.sme - Add directive to options.pptpd so that radius plugin can find the radiusclient configuration file. [SME: 7546] * Sat Apr 13 2013 Charlie Brady <charlie_brady@mitel.com> 2.4.0-7.sme - Fix permissions of /etc/radiusclient-ng/servers. [SME: 7548]
[chris@build-system sme9]$ make tag cvs tag -c e-smith-radiusd-2_4_0-8_el6_sme cvs tag: Tagging . T .cvsignore T Makefile T e-smith-radiusd-2.4.0-listen.patch T e-smith-radiusd-2.4.0-log_stdout.patch T e-smith-radiusd-2.4.0-ng.patch T e-smith-radiusd-2.4.0-ng.patch2 T e-smith-radiusd-2.4.0-ng.patch3 T e-smith-radiusd.spec T import.log T sources Tagged with: e-smith-radiusd-2_4_0-8_el6_sme
[chris@build-system sme9]$ make build /usr/bin/plague-client build e-smith-radiusd e-smith-radiusd-2_4_0-8_el6_sme sme9 Package e-smith-radiusd enqueued. Job ID: 3026.
3026 e-smith-radiusd e-smith-radiusd-2_4_0-8_el6_sme building smeserver-9-core devlist burnat com
-------- Original Message -------- Subject: [updatesteam] Build Result: 3026 - e-smith-radiusd on smeserver-9-core Date: Sat, 20 Apr 2013 23:22:52 -0600 (MDT) From: buildsys@contribs.org To: updatesteam@lists.contribs.org 3026 (e-smith-radiusd): Build on target smeserver-9-core succeeded. Build logs may be found at http://buildsys.contribs.org/logs/smeserver-9-core/3026-e-smith-radiusd-2.4.0-8.el6.sme/
- Check package on BUILDSYS
chris@canxxx:~$ ssh -l xxxxxx shell.contribs.org Last login: Wed Apr 10 16:10:50 2013 from mail.burnat.xxx
ll /teams/smeserver/9/test
ADDING SUPPLIED PATCH TO PACKAGE OR PORTING FROM ONE VERSION TO ANOTHER
General instructions
One bug, two packages are affected, so two patches. Put same Bug number reference into the changelog of each package, and all is OK. As that is a SME 8 bug then I expect it does need to be cloned to SME 9 and also fixed there
apply the patches to the two packages, build locally, and test. If looking good then commit to CVS and push to main buildserver
If only a patch is provided then the spec file needs to be updated, the patch added to CVS, [I find that it is good to do a 'make prep' and see if the patch is OK]then make the package locally, does it build and does it appear to work, then:
make commit tag build
You don't need to create a patch as the ones in the bug are correct unified patches, they just need to be save to some relevant name. Then modify the spec file: update the release number, add a PatchXX line, add a changelog entry, add a %patch line Nothing needs to be committed to CVS - all this happens locally to you at this point Then :
make mockbuild
Bug 7541
Bug 7541 - spamassassin qpsmtpd's plugin size limit is hardcoded [sme8]
Patch for qpsmtpd supplied qpsmtpd allows the spamassassin plugin to read the size limit from its arguments
Patch for smeserver-qpsmtpd supplied smeserver-qpsmtpd reads MaxMessageSize prop of spamassassin and adds it to the arguments of the plugin if defined.
[chris@build-system work]$ pwd /home/chris/work [chris@build-system work]$ ls -la total 16 drwxrwxr-x 4 chris chris 4096 Apr 23 13:15 . drwx------ 8 chris chris 4096 Apr 3 17:01 .. drwxrwxr-x 7 chris chris 4096 Apr 23 13:15 qpsmtpd drwxrwxr-x 7 chris chris 4096 Apr 23 13:15 smeserver-qpsmtpd
- Get package from CVS
[chris@build-system work]$ cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P qpsmtpd [chris@build-system work]$ cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P smeserver-qpsmtpd
[chris@build-system work]$ ls qpsmtpd smeserver-qpsmtpd
- SAVE PATCHES ON WORKSTATION AND COPY TO LOCAL BUILD SERVER
chris@caxxxx:~/exchange$ ls -la -rw-rw-r-- 1 chris chris 610 2013-04-23 13:29 qpsmtpd-0.84-spamassassin_size_limit.patch -rw-rw-r-- 1 chris chris 811 2013-04-23 13:30 smeserver-qpsmtpd-2.2.0-spamassassin_size_limit.patch
chris@ubuntu-desktopx:~/exchange$ scp -P 22 qpsmtpd-0.84-spamassassin_size_limit.patch chris\@192.168.0.12:/home/chris/exchange chris@canxxxx:~/exchange$ scp -P 22 smeserver-qpsmtpd-2.2.0-spamassassin_size_limit.patch chris\@192.168.0.12:/home/chris/exchange
- OR COPY PATCH FROM SOURCE (sme8)
cp e-smith-proxy-5.2.0-squid_additionnal_SSLports.patch /home/chris/work/e-smith-proxy/sme9/e-smith-proxy-5.4.0-squid_additionnal_SSLports.patch
- Process qpsmtpd on local BUILD
[chris@build-system work]$ cd qpsmtpd/ [chris@build-system qpsmtpd]$ ls common CVS sme7 sme8 sme9 [chris@build-system qpsmtpd]$ cvs update -dPA
last patch:
0038-Patch-FATAL-PLUGIN-ERROR-check_basicheaders.patch
[chris@build-system sme8]$ pwd /home/chris/work/qpsmtpd/sme8
[chris@build-system sme8]$ pushd ~/exchange/ ~/exchange ~/work/qpsmtpd/sme8 [chris@build-system exchange]$ ls qpsmtpd-0.84-spamassassin_size_limit.patch smeserver-qpsmtpd-2.2.0-spamassassin_size_limit.patch
[chris@build-system exchange]$ cp qpsmtpd-0.84-spamassassin_size_limit.patch /home/chris/work/qpsmtpd/sme8/0039-qpsmtpd-0.84-spamassassin_size_limit.patch [chris@build-system exchange]$ popd ~/work/qpsmtpd/sme8
- Check patch:
you should try a 'make prep' that will tell you if the patch from sme8 applied cleanly to sme9. It's quicker than a full build
- Modify the spec file: update the release number, add a PatchXX line, add a changelog entry, add a %patch line
[chris@build-system sme8]$ nano qpsmtpd.spec Version: 0.84 [same] Release: 4%{?dist} Patch39: 0039-qpsmtpd-0.84-spamassassin_size_limit.patch %patch39 -p1
[Fixed in qpsmtpd]
%changelog * Tue Apr 23 2013 chris burnat <devlist@burnat.com> 0.84-4.sme - qpsmtpd allows the spamassassin plugin to read the size limit from its arguments, patch by Daniel [SME: 7541] * Fri May 04 2012 Charlie Brady <charlie_brady@mitel.com> 0.84-3.sme - Set SO_KEEPALIVE option on client socket - to detect dead connections. [SME: 6924]
- Check changes against CVS
[chris@build-system sme8]$ cvs diff -u qpsmtpd.spec Index: qpsmtpd.spec RCS file: /cvsroot/smeserver/rpms/qpsmtpd/sme8/qpsmtpd.spec,v retrieving revision 1.31 diff -r1.31 qpsmtpd.spec 5c5 < Release: 3%{?dist} --- > Release: 4%{?dist} 62a63 > Patch39: 0039-qpsmtpd-0.84-spamassassin_size_limit.patch 135a137 > %patch39 -p1 234a237,240 > * Tue Apr 23 2013 chris burnat <devlist@burnat.com> 0.84-4.sme > - qpsmtpd allows the spamassassin plugin to read the size limit > from its arguments, patch by Daniel [SME: 7541
- Build locally:
[chris@build-system sme8]$ BUILDARCH=i386 make mockbuild INFO: Done(/home/chris/work/qpsmtpd/sme8/qpsmtpd-0.84-4.el5.sme.src.rpm) Config(smeserver-8-i386-base) 2 minutes 52 seconds INFO: Results and/or logs in: /home/chris/work/qpsmtpd/sme8/qpsmtpd-0_84-4_el5_sme INFO: Cleaning up build root ('clean_on_success=True') Start: lock buildroot Start: clean chroot INFO: chroot (/var/lib/mock/smeserver-8-i386) unlocked and deleted Finish: clean chroot Finish: lock buildroot Finish: run
- Check packages
[chris@build-system qpsmtpd-0_84-4_el5_sme]$ ls -lah total 1.2M drwxrwxr-x 2 chris chris 4.0K Apr 23 14:44 . drwxrwxr-x 4 chris chris 4.0K Apr 23 14:41 .. -rw-rw-r-- 1 root root 616K Apr 23 14:43 available_pkgs -rw-rw-r-- 1 chris chris 27K Apr 23 14:44 build.log -rw-rw-r-- 1 chris mock 11K Apr 23 14:44 installed_pkgs -rw-rw-r-- 1 chris mock 187K Apr 23 14:44 qpsmtpd-0.84-4.el5.sme.noarch.rpm -rw-rw-r-- 1 chris mock 236K Apr 23 14:44 qpsmtpd-0.84-4.el5.sme.src.rpm -rw-rw-r-- 1 chris mock 16K Apr 23 14:44 qpsmtpd-apache-0.84-4.el5.sme.noarch.rpm -rw-rw-r-- 1 chris mock 33K Apr 23 14:44 qpsmtpd-async-0.84-4.el5.sme.noarch.rpm -rw-rw-r-- 1 chris chris 67K Apr 23 14:44 root.log -rw-rw-r-- 1 chris chris 2.1K Apr 23 14:44 state.log
- Copy new packages to local folder:
cp qpsmtpd-0.84-4.el5.sme.noarch.rpm qpsmtpd-apache-0.84-4.el5.sme.noarch.rpm qpsmtpd-async-0.84-4.el5.sme.noarch.rpm ~/exchange/
- Send new package and patch to workstation for testing/processing:
[chris@build-system exchange]$ scp -P 22 qpsmtpd-0.84-4.el5.sme.noarch.rpm chris\@192.168.0.1:/home/chris/WIP [chris@build-system exchange]$ scp -P 22 qpsmtpd-apache-0.84-4.el5.sme.noarch.rpm chris\@192.168.0.1:/home/chris/WIP [chris@build-system exchange]$ scp -P 22 qpsmtpd-async-0.84-4.el5.sme.noarch.rpm chris\@192.168.0.1:/home/chris/WIP
- Move to workstation and copy packages to sme8 test-server (32 bits):
[root@test80 files]# ls -la -rwxrw-r-- 1 admin shared 191004 Apr 23 14:55 qpsmtpd-0.84-4.el5.sme.noarch.rpm -rwxrw-r-- 1 admin shared 16121 Apr 23 14:55 qpsmtpd-apache-0.84-4.el5.sme.noarch.rpm -rwxrw-r-- 1 admin shared 33212 Apr 23 14:56 qpsmtpd-async-0.84-4.el5.sme.noarch.rpm [root@test80 files]# rpm -qa qpsmtpd-0.84-4.el5.sme.noarch.rpm [root@test80 files]# rpm -qa | grep qpsmtpd qpsmtpd-0.84-3.el5.sme qpsmtpd-plugins-0.0.1-3.el5.sme smeserver-qpsmtpd-2.2.0-15.el5.sme
- Install package:
[root@test80 files]# yum localinstall qpsmtpd-0.84-4.el5.sme.noarch.rpm Updated: qpsmtpd.noarch 0:0.84-4.el5.sme [root@test80 files]# signal-event post-upgrade; signal-event reboot
- Test mail:
-------- Original Message -------- Subject: Re: Fwd: Updates available for test80 Date: Tue, 23 Apr 2013 15:21:57 +1000 From: chris burnat <cbxxxx@bxxxx.com> Reply-To: cbxxxx@bxxxx.com To: root <admin@schxxxxx.com> thanks On 23/04/13 15:20, root wrote: > > > > -------- Original Message -------- > Subject: Updates available for test80 > Date: 11 Apr 2013 19:01:47 -0000 > From: root@schtrumpf.com > To: admin-yum@schtrumpf.com > > > > === > === yum reports available updates:
- OK, we can push this package.
[cvs add chris.patch and then make commit tag build]
NOTE: Multiple patches: Ian Wells: yes you will need to 'cvs add chris.patch' for all the patches, you can actually do cvs add *.patch and it will work it out
[chris@build-system sme8]$ cvs add 0039-qpsmtpd-0.84-spamassassin_size_limit.patch cvs add: scheduling file `0039-qpsmtpd-0.84-spamassassin_size_limit.patch' for addition cvs add: use 'cvs commit' to add this file permanently
[chris@build-system sme8]$ make commit tag build
[snip]
/usr/bin/plague-client build qpsmtpd qpsmtpd-0_84-4_el5_sme sme8 Package qpsmtpd enqueued. Job ID: 3033.
- Check for Build:
http://buildsys.contribs.org/plague/ 3033 qpsmtpd qpsmtpd-0_84-4_el5_sme building smeserver-8-core devlist burnat com
- Check for emails received from buildsys@contribs.org
-------- Original Message -------- Subject: rpms/qpsmtpd/sme8 0039-qpsmtpd-0.84-spamassassin_size_limit.patch, NONE, 1.1 qpsmtpd.spec, 1.31, 1.32 Date: Tue, 23 Apr 2013 05:30:08 +0000 From: xxxxxxx <xxxxx@users.sourceforge.net> To: smeserver-cvscommits@lists.sourceforge.net
[ok]
Bug 7060
Bug 7060 - Post-upgrades not fired after restore from console
e-smith-base for SME8 About line 131 of /usr/lib/perl5/site_perl/esmith/console/perform_restore.pm Add the one line given in the original error report. Create a patch, check it builds, and commit it to CVS
A patch to fire the post-upgrade event just after the restore process:
--- /usr/lib/perl5/site_perl/esmith/console/perform_restore.pm.ori 2012-07-31 16:55:40.000000000 +0200 +++ /usr/lib/perl5/site_perl/esmith/console/perform_restore.pm 2012-07-31 16:56:15.000000000 +0200 @@ -129,6 +129,7 @@ system("/etc/init.d/haldaemon", "stop"); system("/etc/init.d/messagebus", "stop"); rmdir("/mnt/bootstrap-console-backup"); + system("/sbin/e-smith/signal-event", "post-upgrade") } #use esmith::console; ----------------------------------------------------------------------
[xxx@xxxx work]$ pwd /home/chris/work
[chris@bui work]$ cvs -z3 -d:pserver:anonymous@smeserver.cvs.sourceforge.net:/cvsroot/smeserver checkout -P e-smith-base
[chris@buildxxx work]$ cd e-smith-base/sme8/ [chris@buildxxx sme8]$ cvs update -dPA
[chris@buildxxx sme8]$ make clean [chris@buildxxx sme8]$ make prep
[chris@buildxxx sme8]$ cp -R e-smith-base-5.2.0 e-smith-base-5.2.0.old
[chris@buildxxx root]$ ll usr/lib/perl5/site_perl/esmith/console/ total 104 -rw-r--r-- 1 chris chris 1761 Jan 27 2007 backup_running.pm -rw-r--r-- 1 chris chris 65997 Feb 6 08:08 configure.pm -rw-r--r-- 1 chris chris
#use esmith::console; 6682 Feb 6 08:08 perform_backup.pm -rw-r--r-- 1 chris chris 4133 Feb 6 08:08 perform_restore.pm -rw-r--r-- 1 chris chris 1037 Mar 27 2008 quitConsole.pm -rw-r--r-- 1 chris chris 862 Mar 27 2008 save_config.pm -rw-r--r-- 1 chris chris 4867 Aug 21 2008 system_password.pm
[chris@buildxxx root]$ nano usr/lib/perl5/site_perl/esmith/console/perform_restore.pm
- Original
system("/etc/init.d/haldaemon", "stop"); system("/etc/init.d/messagebus", "stop"); rmdir("/mnt/bootstrap-console-backup"); <<<----line 131 } # use esmith::console;
- Modified
system("/etc/init.d/haldaemon", "stop"); system("/etc/init.d/messagebus", "stop"); rmdir("/mnt/bootstrap-console-backup"); system("/sbin/e-smith/signal-event", "post-upgrade") <<<line 132 } #use esmith::console;
[chris@buildxxx sme8]$ diff -urN e-smith-base-5.2.0.old e-smith-base-5.2.0 > e-smith-base-5.2.0-fire_post-upgrade_after_restore_process.patch
[chris@buildxxx sme8]$ cat e-smith-base-5.2.0-fire_post-upgrade_after_restore_process.patch diff -urN e-smith-base-5.2.0.old/root/usr/lib/perl5/site_perl/esmith/console/perform_restore.pm e-smith-base-5.2.0/root/usr/lib/perl5/site_perl/esmith/console/perform_restore.pm --- e-smith-base-5.2.0.old/root/usr/lib/perl5/site_perl/esmith/console/perform_restore.pm 2013-02-06 08:11:54.926469195 +1100 +++ e-smith-base-5.2.0/root/usr/lib/perl5/site_perl/esmith/console/perform_restore.pm 2013-02-06 08:35:24.527637260 +1100 @@ -129,6 +129,7 @@ system("/etc/init.d/haldaemon", "stop"); system("/etc/init.d/messagebus", "stop"); rmdir("/mnt/bootstrap-console-backup"); + system("/sbin/e-smith/signal-event", "post-upgrade") } #use esmith::console;
[chris@buildxxx sme8]$ nano e-smith-base.spec
[chris@buildxxx sme8]$ cvs diff e-smith-base.spec Index: e-smith-base.spec =================================================================== RCS file: /cvsroot/smeserver/rpms/e-smith-base/sme8/e-smith-base.spec,v retrieving revision 1.142 diff -r1.142 e-smith-base.spec 7c7 < %define release 70 --- > %define release 71 66a67 > Patch55: e-smith-base-5.2.0-fire_post-upgrade_after_restore_process.patch 113a115,117 > * Wed Feb 6 2013 John Crisp <jcrisp@safeandsoundit.co.uk> 5.2.0-71.sme > - Post-upgrades not fired after restore from console [SME: 7060] > 1602a1607 > %patch55 -p1
[chris@buildxxx sme8]$ make mockbuild
[chris@buildxxx sme8]$ ll e-smith-base-5_2_0-71_el5_sme total 852 -rw-rw-r-- 1 chris chris 124407 Feb 6 09:01 build.log -rw-rw-r-- 1 chris mock 287857 Feb 6 09:01 e-smith-base-5.2.0-71.el5.sme.src.rpm -rw-rw-r-- 1 chris mock 366908 Feb 6 09:01 e-smith-base-5.2.0-71.el5.sme.x86_64.rpm -rw-rw-r-- 1 chris mock 52836 Feb 6 09:01 e-smith-base-debuginfo-5.2.0-71.el5.sme.x86_64.rpm -rw-rw-r-- 1 chris chris 25819 Feb 6 09:01 root.log -rw-rw-r-- 1 chris chris 1384 Feb 6 09:01 state.log
Now we commit modifications
[chris@buildxxx sme8]$ cvs update ? e-smith-base-5.2.0 ? e-smith-base-5.2.0-71.el5.sme.src.rpm ? e-smith-base-5.2.0-fire_post-upgrade_after_restore_process.patch ? e-smith-base-5_2_0-71_el5_sme cvs update: Updating . M e-smith-base.spec
[chris@buildxxx sme8]$ cvs commit -m 'Bug 7060 - Post-upgrades not fired after restore from console' cvs commit: Examining . ? e-smith-base-5_2_0-71_el5_sme ? e-smith-base-5.2.0-fire_post-upgrade_after_restore_process.patch ? e-smith-base-5.2.0-71.el5.sme.src.rpm ? e-smith-base-5.2.0 cvs [server aborted]: "commit" requires write access to the repository
Next: you need a source forge account + write access in CVS for project smeserver (base &/or contribs)
PORTING FROM SME8 TO SME9 - CAUTION
However both work.
FIXING ERRORS IN SPEC FILES
how to fix missing bug reference or spelling errors in spec file of packages already build
cvs update -dPA
then edit the .spec file in your favourite editor
cvs commit -m 'your description, eg correct spelling'
EXAMPLE:
* Thu Apr 25 2013 chris burnat <devlist@burnat.com> 0.84.5.sme - Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7557]
Should be:
* Thu Apr 25 2013 chris burnat <devlist@burnat.com> 0.84.5.sme - Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7194]
[chris@build-system work]$ pwd /home/chris/work
[chris@build-system work]$ cvs -z3 -d:ext:smeserver.cvs.sourceforge.net:/cvsroot/smeserver co -P qpsmtpd
- Update
[chris@build-system work]$ cd qpsmtpd/ [chris@build-system qpsmtpd]$ ls common CVS sme7 sme8 sme9 [chris@build-system qpsmtpd]$ cvs update -dPA cvs update: Updating . cvs update: Updating common cvs update: Updating sme7 cvs update: Updating sme8 cvs update: Updating sme9
- Update spec file
[chris@build-system sme8]$ nano qpsmtpd.spec %changelog * Thu Apr 25 2013 chris burnat <devlist@burnat.com> 0.84.5.sme - Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7194]
- Check changes against CVS
[chris@build-system sme8]$ cvs diff -u qpsmtpd.spec Index: qpsmtpd.spec RCS file: /cvsroot/smeserver/rpms/qpsmtpd/sme8/qpsmtpd.spec,v retrieving revision 1.33 diff -r1.33 qpsmtpd.spec 240c240 < - Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7557] --- > - Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7194]
- Commit
[chris@build-system sme8]$ cvs commit -m 'correct Bug Reference' cvs commit: Examining . Checking in qpsmtpd.spec; /cvsroot/smeserver/rpms/qpsmtpd/sme8/qpsmtpd.spec,v <-- qpsmtpd.spec new revision: 1.34; previous revision: 1.33 done Mailing smeserver-cvscommits@lists.sourceforge.net... Generating notification message... Generating notification message... done.
- Notification
-------- Original Message -------- Subject: rpms/qpsmtpd/sme8 qpsmtpd.spec,1.33,1.34 Date: Thu, 25 Apr 2013 02:16:36 +0000 From: xxxxxxxxxxxx <xxxxxx@users.sourceforge.net> To: smeserver-cvscommits@lists.sourceforge.net Update of /cvsroot/smeserver/rpms/qpsmtpd/sme8 In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv13622 Modified Files:
qpsmtpd.spec
Log Message: correct Bug Reference Index: qpsmtpd.spec =================================================================== RCS file: /cvsroot/smeserver/rpms/qpsmtpd/sme8/qpsmtpd.spec,v retrieving revision 1.33 retrieving revision 1.34 diff -u -d -r1.33 -r1.34 --- qpsmtpd.spec 25 Apr 2013 01:54:19 -0000 1.33 +++ qpsmtpd.spec 25 Apr 2013 02:16:34 -0000 1.34 @@ -237,7 +237,7 @@ %changelog * Thu Apr 25 2013 chris burnat <devlist@burnat.com> 0.84.5.sme -- Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7557] +- Fix Net::DNS update breaks qpsmtpd, codes suggested by Ian [SME: 7194] * Tue Apr 23 2013 chris burnat <devlist@burnat.com> 0.84-4.sme - qpsmtpd allows the spamassassin plugin to read the size limit
REVERSE CHANGES MADE PREVIOUSLY
- Edit specfile as usual, except you delete patch references as applicable.
- leave patch in place.
- Then:
cvs commit -m 'description of change'
- Then:
make commit tag build
PATCHING AN UPSTREAM PACKAGE
initscripts is an example of a package where we have to patch the upstream package.
Here it is a 3-step process, Analysis, Integration, buildsys update. The majority of the work is in steps 1 & 2 where there needs to be an analysis of what has changed, and then an integration stage where you need to check that the patches still work, update CVS with new and modified files etc. Finally the new source needs updating into the buildsys before the official build will work.
initscripts-8.45.44-3.el5.centos.src.rpm
Steps to update initscripts
Step 1: Analysis, by anyone
- Check the contents of the SRPMs
$ rpm -qlp initscripts-8.45.44-3.el5.centos.src.rpm 0001-Fix-comments-in-sysctl.conf.ppc-862597.patch 0002-create-tmp-.X11-unix-in-rc.sysinit.patch initscripts-8.45.44.tar.bz2 initscripts-centos-branding.patch initscripts.spec
$ rpm -qlp initscripts-8.45.42-2.1.el5.sme.src.rpm 0002-create-tmp-.X11-unix-in-rc.sysinit.patch initscripts-8.45.38-smepatches.patch initscripts-8.45.42-kpartx.patch initscripts-8.45.42.tar.bz2 initscripts-centos-branding.patch initscripts.spec
- Check what is different (do a directory compare)
- Identical
initscripts-centos-branding.patch (content is identical, although files are not)
- Modified
initscripts.spec 0002-create-tmp-.X11-unix-in-rc.sysinit.patch (patch is identical but line numbers changed)
- New
initscripts-8.45.44.tar.bz2 (New source will need to be added to buildsys) 0001-Fix-comments-in-sysctl.conf.ppc-862597.patch (will be added to CVS)
- Obsolete
initscripts-8.45.42-kpartx.patch (can be removed from CVS) initscripts-8.45.42.tar.bz2
- Not in upstream SRPM as this is an SME Server patch to be applied each time
initscripts-8.45.38-smepatches.patch
So we need the new initscripts-8.45.44.tar.bz2 & 0001-Fix-comments-in-sysctl.conf.ppc-862597.patch, and the updated 0002-create-tmp-.X11-unix-in-rc.sysinit.patch
Step 2: Integration : local mock build, can be done by a developer
- Remove the obsolete files
- Update the spec file.
Version Release Patches Check the description, don't copy the 'Centos' wording to the SME package Copy the latest upstream Changelog Add/modify the changelog regarding SME patches
- Copy the new patch & source to the local directory
- Check that the patches apply cleanly (You don't want to see lines like Hunk #1 succeeded at 890 (offset 1 line).)
make prep
- Try to build it
make mockbuild
- Once it builds cleanly on local mock, commit the changes to CVS. Note that you cannot submit the build yet as it will fail due to the new source.
make commit
Step 3: Buildsys access and permissions needed
Then add new sources to buildsys ON BUILDSYS
If the above step has already been done then can update to latest in CVS, and retrieve the source tarball.
- get date for import
$ date +%s 1382918459
- fix name/version/release and date in the import.log (I don't have a good explanation for this)
vi import.log*
- import the new source/tarball
make new-sources FILES=*bz2
- Finally commit changes to CVS and build it.
make commit tag build
MOVE FILES AROUND
- SEND TO UBUNTU W/S:
[chris@build-system sme8]$ scp -P 22 smeserver-yum-2.2.0-21.el5.sme.src.rpm chris\@192.168.xxx.1:/home/chris/WIP The authenticity of host '192.168.xxx.1 (192.168.xxx.1)' can't be established. RSA key fingerprint is 63:41:79:2b:1f:1f:37:db:80:0d:6e:4d:9b:4a:86:96. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.xxx.1' (RSA) to the list of known hosts. chris@192.168.xxx.1's password: smeserver-yum-2.2.0-21.el5.sme.src.rpm 100% 85KB 84.7KB/s 00:00
- GET FROM UBUNTU W/S
chris@canxxxx:~/exchange$ scp -P 22 smeserver-yum-2.2.0-21.el5.sme.src.rpm chris\@192.168.xxx.12:/home/chris/exchange chris@192.168.xxx.12's password: smeserver-yum-2.2.0-21.el5.sme.src.rpm 100% 85KB 84.7KB/s 00:00
USING MOCK
- Known problems
Every once in a while mock doesn't setup the chroot correctly. This appears to be one of those cases. There are times when the repos that it is trying to pull packages from are being updated and can cause issues.
If the build.log doesn't look like it tried to build anything and root.log doesn't say that it can't find dependencies then you should be able to try the build again a few minutes/hours later and see if it works.
The way you build for i386 on a x86_64 box using our makefile is to do the following:
BUILDARCH=i386 make mockbuild
This works for everything except for kernel modules on SME <= 8.0. I'll have to go through my notes for how to build kmods for i686 kernel using i386 config file. These happen rarely enough that I ususally just submit to the buildsys and then fix issues if there are any.
Perform a Build from an SRPM retrieved from the repos
Perform a Build for sme9 64 bits from an SRPM
- Retrieve SRPM from repos:
[chris@build-system SRPMS]$ wget http://mirror.canada.pialasse.com/releases/testing/9.0alpha3/smetest/SRPMS/perl-CGI-FormMagick-0.93-2.el6.sme.src.rpm
- Select chroot environment:
[chris@build-system SRPMS]$ CONFIG=smeserver-9-x86_64-base
- Build package:
[chris@build-system SRPMS]$ mock -r $CONFIG --rebuild ~/rpmbuild/SRPMS/perl-CGI-FormMagick-0.93-2.el6.sme.src.rpm
- Check output:
[chris@build-system SRPMS]$ ll /var/lib/mock/smeserver-9-x86_64/result total 248 -rw-rw-r-- 1 chris mock 14924 Apr 1 08:50 build.log -rw-rw-r-- 1 chris mock 113480 Apr 1 08:50 perl-CGI-FormMagick-0.93-2.el6.sme.noarch.rpm -rw-rw-r-- 1 chris mock 90524 Apr 1 08:50 perl-CGI-FormMagick-0.93-2.el6.sme.src.rpm -rw-rw-r-- 1 chris mock 23316 Apr 1 08:50 root.log -rw-rw-r-- 1 chris mock 1224 Apr 1 08:50 state.log
Perform a Build for sme9 32 bits from an SRPM
[chris@build-system SRPMS]$ CONFIG=smeserver-9-i386-base
Perform a Build for sme8 64 bits from an SRPM
[chris@build-system SRPMS]$ wget http://mirror.canada.pialasse.com/releases/8.0/smeupdates-testing/SRPMS/perl-CGI-FormMagick-0.92-23.el5.sme.src.rpm [chris@build-system SRPMS]$ CONFIG=smeserver-8-x86_64-base
Perform a Build for sme8 32 bits from an SRPM
[chris@build-system SRPMS]$ CONFIG=smeserver-8-i386-base
- If the build succeeds, it drops your packages into the /var/lib/mock/$CONFIG/result directory.
- If it fails, you can check mock output, the *.log files above for more info, and/or rerun mock with the -v flag for more verbose messaging.
- If you get "warning: Could not canonicalize hostname: " it can be ignored. This is a DNS resolution error and the easy solution is to add your hostname to /etc/hosts