OpenPKG CVS Repository http://cvs.openpkg.org/ ____________________________________________________________________________
Server: cvs.openpkg.org Name: Thomas Lotterer Root: /v/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-re Date: 18-Oct-2005 10:43:51 Branch: HEAD Handle: 2005101809435000 Modified files: openpkg-re release.txt Log: log how steps have been done to finish OPENPKG_2_5_RELEASE Summary: Revision Changes Path 1.36 +44 -258 openpkg-re/release.txt ____________________________________________________________________________ patch -p0 <<'@@ .' Index: openpkg-re/release.txt ============================================================================ $ cvs diff -u -r1.35 -r1.36 release.txt --- openpkg-re/release.txt 12 Oct 2005 07:43:01 -0000 1.35 +++ openpkg-re/release.txt 18 Oct 2005 08:43:50 -0000 1.36 @@ -2,6 +2,9 @@ HOW TO MAKE AN OPENPKG RELEASE ============================== + o Make sure CORE and BASE do not include "nameversioned" packages (e.g. mysql41 in 2.2 and postgresql7 in 2.3) + o adjust aux.prereq.sh file in openpkg package to reflect the most recent platform support + o make sure openpkg-X.Y.0-X.Y.0 provides: openpkg-YYYYMMDD-YYYYMMDD $ cd src.raw $ cvs update -A $ cvs rtag -rHEAD OPENPKG_2_5_SOLID_BP \ @@ -36,163 +39,29 @@ # to allow "openpkg-dev" from openpkg-tools >= 0.8.45 to overwrite existing SRPMs $ chgrp -R openpkg-ftp /v/openpkg/ftp/release/2.5/SRC/; chmod -R g+w /v/openpkg/ftp/release/2.5/SRC/ - ------------------------------------------ + o prepare a empty directory and symlink /openpkg to it + o using "openpkg-tools" with "bf" setup a buildfarm and create binaries + o ensure /openpkg and /ltmp have 1GB free disk space + o create a %openpkg target in obmtool.conf and use obmtool + + $ sh Uploadmaker.sh - it reads the buildfarm database and creates the following batches + $ sh mkdir_openpkg.sh - mkdir commands required inside openpkg BIN/ directory + $ sh mkdir_zfos.sh - mkdir commands required inside zfos BIN/ directory + $ sh move_PLUS.sh - commands to move PLUS SRPMs into PLUS/ subdir + $ sh upload_BASE4dotf.sh - upload BASE for deprecated, obsoleted, tentative and forecasted to zfos + $ sh upload_BASE4s.sh - upload BASE for supported to openpkg + $ sh upload_CORE4df.sh - upload CORE for deprecated and forecasted to zfos + $ sh upload_CORE4ost.sh - upload CORE for obsoleted, supported and tentative to openpkg + $ sh upload_PLUS.sh - upload PLUS to zfos - The following is a step-by-step guide on how to create an OpenPKG - N.M-RELEASE. It assumes that you have access to the C&W DE AS - Development Team dvX.dev.de.cw.net machines and access to the OpenPKG - master server master.openpkg.org (aka en4.engelschall.com). - - # switch to home directory of a non-privileged user - $ cd $HOME - - # prepare working area - $ mkdir openpkg - $ mkdir openpkg/RE - $ mkdir openpkg/SRC - $ mkdir openpkg/DST - $ mkdir openpkg/PKG - $ mkdir openpkg/PKG/BIN - $ mkdir openpkg/PKG/SRC - - # fill working area with sources - $ cvs -d [EMAIL PROTECTED]:/e/openpkg/cvs co -d openpkg/RE openpkg-re - $ cvs -d [EMAIL PROTECTED]:/e/openpkg/cvs co -d openpkg/SRC openpkg-src - $ rsync -av rsync://rsync.openpkg.org/openpkg-dst/ openpkg/DST/ - - # activate working area in RPM for commit steps - $ vi ~/.rpmmacros - | %_specdir %(echo $HOME)/openpkg/SRC/%{name} - | %_sourcedir %(echo $HOME)/openpkg/DST/%{name} - | %_rpmdir %(echo $HOME)/openpkg/PKG/BIN - | %_srcrpmdir %(echo $HOME)/openpkg/PKG/SRC - | %_builddir %(echo $TMPDIR) - | %_tmppath %(echo $TMPDIR) - - # create an initial fresh /cw [cw:cw] OpenPKG hierarchy - $ ftp ftp.openpkg.org - ftp> cd release/1.0/SRC - ftp> binary - ftp> get openpkg-1.0.0-1.0.0.src.sh - ftp> bye - $ sh openpkg-1.0.0-1.0.0.src.sh --prefix=/cw --user=cw --group=cw - $ sh openpkg-1.0.0-1.0.0.*-*.sh - $ rm openpkg-1.0.0-1.0.0.* - - # update the source to the branch from where you want to release - $ cd ~/openpkg/SRC - # ONLY for N.[01]-RELEASE: - $ cvs up -P -d -rHEAD - # ONLY for N.[2-9]-RELEASE: - $ cvs up -P -d -rOPENPKG_N_STABLE - - # create branch point for N.M-SOLID - $ cd ~/openpkg/SRC - # ONLY for N.[01]-RELEASE: - $ cvs rtag -rHEAD OPENPKG_N_M_SOLID_BP \ - `(echo openpkg-src/00README; \ - egrep -l '\[(CORE|BASE|PLUS)\]' */*.spec |\ - sed -e 's;^\(.*\)/.*$;openpkg-src/\1;')` - # ONLY for N.[2-9]-RELEASE: - $ cvs rtag -rOPENPKG_N_STABLE OPENPKG_N_M_SOLID_BP openpkg-src - - # create N.M-SOLID branch - $ cd ~/openpkg/SRC - $ cvs rtag -b -rOPENPKG_N_M_SOLID_BP OPENPKG_N_M_SOLID openpkg-src - - # update the source to the new N.M-SOLID branch - $ cd ~/openpkg/SRC - $ cvs up -rOPENPKG_N_M_SOLID - - # bump the release numbers and bootstrap dependency of all packages - $ cd ~/openpkg/SRC - $ ../RE/editspec.pl 's;(Version:\s+)(\S+)[ \t]*(\nRelease:\s+)\2[ \t]*;${1}N.M.0${3}N.M.0;s' - $ ../RE/editspec.pl 's;^(Release:\s+) .*$;$1 N.M.0;m' - $ ../RE/editspec.pl 's;OpenPKG, openpkg >= [0-9.]+;OpenPKG, openpkg >= N.M.0;sg' - $ THL!20040205: make sure openpkg-2.0.0-2.0.0 provides: openpkg-20040113-20040113 - # cvs ci -m "bump release numbers for OpenPKG N.M" - - # roll all source RPMs - $ /cw/bin/rpm \ - -bs --nodeps \ - --define "_specdir `pwd`/%{name}" \ - --define "_srcrpmdir `pwd`/../release/src/master/" \ - */*.spec - # FIXME: --norestriction ?! - - # generate binary build/install Makefiles - # there exists a script ~/openpkg/re/src2make.sh also - $ cd ~/openpkg/re - $ ./src2make.pl \ - --prefix=/cw \ - --user=cw \ - --group=cw \ - --srcdir=$HOME/work/openpkg/PKG/SRC \ - --tmpdir=$TMPDIR \ - --outdir=. \ - --verbose - - # BEGIN of parallel jobs - - # generate binary RPMs for FreeBSD 4.x (can be done in parallel) - $ ssh dv1.dev.de.cw.net - $ cd ~/openpkg/RE - $ make erase build-latest - $ exit - - # generate binary RPMs for RedHat GNU/Linux 7.2 (can be done in parallel) - $ ssh dv4.dev.de.cw.net - $ cd ~/openpkg/RE - $ make erase build-latest - $ exit - - # generate binary RPMs for Debian GNU/Linux 2.2 (can be done in parallel) - $ ssh dv5.dev.de.cw.net - $ cd ~/openpkg/RE - $ make erase build-latest - $ exit - - # generate binary RPMs for Debian GNU/Linux 3.0 (can be done in parallel) - $ ssh dv6.dev.de.cw.net - $ cd ~/openpkg/RE - $ make erase build-latest - $ exit - - # generate binary RPMs for Solaris 8 (can be done in parallel) - $ ssh dv8.dev.de.cw.net - $ cd ~/openpkg/RE - $ make erase build-latest - $ exit - - # generate binary RPMs for Solaris 9 (can be done in parallel) - $ ssh dv9.dev.de.cw.net - $ cd ~/openpkg/RE - $ make erase build-latest - $ exit - - # END of parallel jobs - - # prepare master server $ ssh [EMAIL PROTECTED] $ cd /e/openpkg/ftp/release $ mkdir N.M $ mkdir N.M/SRC $ mkdir N.M/SRC/PLUS $ mkdir N.M/UPD - $ mkdir N.M/BIN/freebsd-4.6 - $ mkdir N.M/BIN/redhat-7.2 - $ mkdir N.M/BIN/debian-2.2 - $ mkdir N.M/BIN/debian-3.0 - $ mkdir N.M/BIN/solaris-8 - $ mkdir N.M/BIN/solaris-9 + $ mkdir N.M/BIN $ mkdir N.M/ISO - $ exit - - # move distribution files to master server - $ cd ~/openpkg/PKG - $ FIXME scp -rp SRC/* [EMAIL PROTECTED]:/e/openpkg/ftp/release/N.M/SRC/ - $ FIXME mv ... PLUS/ - $ FIXME scp -rp BIN/* [EMAIL PROTECTED]:/e/openpkg/ftp/release/N.M/SRC/ # copy text files to master server $ cd ~/openpkg/RE @@ -207,29 +76,11 @@ $ sed -e "s;N\.M;N.M;g" -e "s;XX-XXX-200X;`date '+%d-%b-%Y'`;g" <readme-iso.txt >/tmp/00README $ scp /tmp/00README [EMAIL PROTECTED]:/e/openpkg/ftp/release/N.M/ISO/ - # copy Makefiles to master server - $ cd ~/openpkg/RE - $ scp Makefile Makefile.rules [EMAIL PROTECTED]:/e/openpkg/ftp/release/N.M/SRC/ - # post-processing on master server - $ ssh [EMAIL PROTECTED] - $ cd tmp - $ cvs -d [EMAIL PROTECTED]:/e/openpkg/cvs co openpkg-re - $ cd openpkg-re - $ ./buildrdf.pl -v --rpm=/e/openpkg/sw/bin/rpm -r 00INDEX.rdf -c \ - OpenPKG-N.M/Binary/:/e/openpkg/ftp/release/N.M/BIN/ - $ ./buildrdf.pl -v --rpm=/e/openpkg/sw/bin/rpm -r 00INDEX.rdf -c \ - OpenPKG-N.M/Source/:/e/openpkg/ftp/release/N.M/SRC/ - $ ./buildrdf.pl -v --rpm=/e/openpkg/sw/bin/rpm -r 00INDEX.rdf -c - OpenPKG-N.M/Updates/:/e/openpkg/ftp/release/N.M/UPD/ - $ ./buildrdf.pl -v --rpm=/e/openpkg/sw/bin/rpm -r 00INDEX.rdf \ - OpenPKG-N.M/:/e/openpkg/ftp/release/N.M/ - $ ./buildrdf.pl -v --rpm=/e/openpkg/sw/bin/rpm -r 00INDEX.rdf \ - OpenPKG/:/e/openpkg/ftp/ - $ exit # distribution file signing $ ssh [EMAIL PROTECTED] + $ chown -R openpkg-ftp:openpkg-ftp /v/openpkg/ftp/release/2.5; chmod -R go-w /v/openpkg/ftp/release/2.5 $ vi ~/.rpmmacros | %_gpg_name OpenPKG <[EMAIL PROTECTED]> | %_gpg_path /e/openpkg/.gnupg @@ -237,104 +88,39 @@ | %_tmppath /e/openpkg/tmp $ cd ftp/release/N.M/ $ rpm --resign SRC/*.rpm BIN/*.rpm - $ rpm --checksig SRC/*.rpm BIN/*.rpm | grep "NOT OK" + $ rpm --checksig SRC/*.rpm BIN/*/*.rpm | grep "NOT OK" # create indices - echo "generating XML/RDF indices for OpenPKG 2.1" + $ ssh [EMAIL PROTECTED] + $ cd ~/etc + o create linking 00INDEX.rdf files in . ./SRC/ ./SRC/PLUS/ ./UPD/ ./BIN/ + o edit and run ./do.re-mkidx - echo "generating XML/RDF index OpenPKG-2.1/Source/PLUS/" - /e/openpkg/sw/bin/openpkg index \ - -C /e/openpkg/tmp/index.21.cache \ - -i -r "OpenPKG-2.1/Source/PLUS/" \ - -c -o /e/openpkg/ftp/release/2.1/SRC/PLUS/00INDEX.rdf.bz2 \ - /e/openpkg/ftp/release/2.1/SRC/PLUS/ - - echo "generating XML/RDF index OpenPKG-2.1/Source/ (with link to PLUS)" - /e/openpkg/sw/bin/openpkg index \ - -C /e/openpkg/tmp/index.21.cache \ - -i -r "OpenPKG-2.1/Source/" \ - -c -o /e/openpkg/ftp/release/2.1/SRC/00INDEX.rdf.bz2 \ - /e/openpkg/ftp/release/2.1/SRC/ - - echo "generating XML/RDF index OpenPKG-2.1/Update/" - /e/openpkg/sw/bin/openpkg index \ - -C /e/openpkg/tmp/index.21.cache \ - -i -r "OpenPKG-2.1/Update/" \ - -c -o /e/openpkg/ftp/release/2.1/UPD/00INDEX.rdf.bz2 \ - /e/openpkg/ftp/release/2.1/UPD/ - - for p in \ - alpha-freebsd5.2 \ - hppa-hpux11.11 \ - ix86-debian3.0 \ - ix86-debian3.1 \ - ix86-fedora2 \ - ix86-freebsd4.10 \ - ix86-freebsd5.2 \ - ix86-gentoo1.4.16 \ - ix86-mandrake10.0 \ - ix86-netbsd1.6.2 \ - ix86-rhel3 \ - ix86-rhl9 \ - ix86-solaris10 \ - ix86-solaris9 \ - ix86-suse9.0 \ - ix86-suse9.1 \ - sparc64-netbsd1.6.2 \ - sparc64-solaris10 \ - sparc64-solaris2.6 \ - sparc64-solaris8 \ - sparc64-solaris9 \ - ;do - echo "generating XML/RDF index OpenPKG-2.1/Binary/$p/" - /e/openpkg/sw/bin/openpkg index \ - -C /e/openpkg/tmp/index.21.cache \ - -i -r "OpenPKG-2.1/Binary/$p/" \ - -c -o /e/openpkg/ftp/release/2.1/BIN/$p/00INDEX.rdf.bz2 \ - -p $p \ - /e/openpkg/ftp/release/2.1/BIN/$p/ - done + #==== finish and clean filesystem + $ ssh [EMAIL PROTECTED] + # chown -R openpkg:openpkg /v/openpkg/ftp/release/2.5 + # find /v/openpkg/ftp/release/2.5/ -type f | xargs chmod 644 + # find /v/openpkg/ftp/release/2.5/ -type d | xargs chmod 755 + # chown openpkg-ftp:openpkg-ftp /v/openpkg/ftp/release/2.5/UPD/00UPLOAD + # chmod 664 /v/openpkg/ftp/release/2.5/UPD/00UPLOAD + # find /v/openpkg/ftp/release/2.5/ -depth | xargs touch -t 200510190205 # create CDROM ISO-images $ ssh [EMAIL PROTECTED] - $ mkisofs \ - -v -r -J \ - -A "OpenPKG N.M-RELEASE (Source)" \ - -V "OpenPKG N.M-RELEASE (Source)" \ - -P "The OpenPKG Project <[EMAIL PROTECTED]>" \ - -p "The OpenPKG Project <[EMAIL PROTECTED]>" \ - -o /e/openpkg/ftp/release/N.M/ISO/OpenPKG-N.M-RELEASE-SRC.iso \ - /e/openpkg/ftp/release/N.M/SRC - $ mkisofs \ - -v -r -J \ - -A "OpenPKG N.M-RELEASE (Binary)" \ - -V "OpenPKG N.M-RELEASE (Binary)" \ - -P "The OpenPKG Project <[EMAIL PROTECTED]>" \ - -p "The OpenPKG Project <[EMAIL PROTECTED]>" \ - -o /e/openpkg/ftp/release/N.M/ISO/OpenPKG-N.M-RELEASE-BIN.iso \ - /e/openpkg/ftp/release/N.M/BIN + o create 00READMEs before ISOs + o edit and run ./do.re-mkiso + o edit ISO/00README and add MD5 checksums + # chown -R openpkg:openpkg /v/openpkg/ftp/release/2.5/ISO + # chmod -R 644 /v/openpkg/ftp/release/2.5/ISO + # touch -t 200510190205 /v/openpkg/ftp/release/2.5/ISO/* + # find /v/openpkg/ftp/release/2.5/ -depth | xargs touch -t 200510190205 + + # check CDROM ISO images $ ssh [EMAIL PROTECTED] - # vnconfig /dev/vn0c /e/openpkg/ftp/release/N.M/ISO/OpenPKG-N.M-RELEASE-SRC.iso - # mount -t cd9660 /dev/vn0c /mnt - # umount /mnt - # ls -l /mnt - # vnconfig -d /dev/vn0c - # vnconfig -u /dev/vn0c - # vnconfig /dev/vn0c /e/openpkg/ftp/release/N.M/ISO/OpenPKG-N.M-RELEASE-BIN.iso - # mount -t cd9660 /dev/vn0c /mnt - # umount /mnt - # ls -l /mnt - # vnconfig -d /dev/vn0c - # vnconfig -u /dev/vn0c - # exit + # cd /v/openpkg/ftp/release/2.5/ISO/ + # /v/openpkg/etc/do.re-ckiso Drop beta download restrictions from ftp.openpkg.org Drop beta download restrictions from rsync.openpkg.org - create 00READMEs before ISOs - Time stamp all release files before creating ISOs - Check SHA1/MD5 and signature of all RPMs - Make sure CORE and BASE do not include "nameversioned" packages (e.g. mysql41 in 2.2 and postgresql7 in 2.3) - Keep Buildfarm status (db.sqlite + matrix.html), logs and "rpm -qplv" - aux.prepreq - + Keep Buildfarm status (db.sqlite + matrix.html), logs and create a "rpm -qplv" list @@ . ______________________________________________________________________ The OpenPKG Project www.openpkg.org CVS Repository Commit List openpkg-cvs@openpkg.org