OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /e/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-doc Date: 02-Oct-2003 13:36:38
Branch: HEAD Handle: 2003100212363800
Added files:
openpkg-doc/quickref openpkg-dev.txt
Log:
start collecting my developer quick reference stuff here
Summary:
Revision Changes Path
1.1 +171 -0 openpkg-doc/quickref/openpkg-dev.txt
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-doc/quickref/openpkg-dev.txt
============================================================================
$ cvs diff -u -r0 -r1.1 openpkg-dev.txt
--- /dev/null 2003-10-02 13:36:38.000000000 +0200
+++ openpkg-dev.txt 2003-10-02 13:36:38.000000000 +0200
@@ -0,0 +1,171 @@
+
+ OpenPKG Quick Reference (DEVELOPMENT)
+ =====================================
+
+ Unpacking And Patching Sources
+ ==============================
+
+ Synopsis
+ --------
+
+ %setup[<x>] [options]
+ -q # quiet unpacking operation
+ -n <dir> # set name of directory
+ -c # create directory (and change to it) before unpacking
+ -D # do not delete directory before unpacking sources
+ -T # do not perform default archive unpacking of %{SOURCE<x>}
+ -b <n> # also unpack %{SOURCE<n>} before changing to directory
+ (usually combined with -T, -D)
+ -a <n> # also unpack %{SOURCE<n>} after changing to directory
+ (usually combined with -T, -D, -c)
+
+ %patch[<x>] [options] [<x> ...]
+ -P # do not perform default apply of %{PATCH<x>}
+ -p <#> # strip <#> leading slashes and directories from patch filenames
+ -b <ext> # set the backup file extension to <ext> instead of ".orig"
+ -E # remove empty output files
+ -R # apply patch as it would be reversed
+ <x> # also apply %{PATCH<x>}
+
+ Visualization
+ -------------
+
+ Input:
+ %setup[<x>] # default for <x> is 0
+
+ Output:
+ rm -rf <name>-<version> # changed by -n <dir>, omitted by -D
+ mkdir <name>-<version> # changed by -n <dir>, added by -c (else
omitted)
+ cd <name>-<version> # changed by -n <dir>, added by -c (else
omitted)
+ gunzip <%{SOURCE<x>} | tar xvf - # omitted by -T, "xvf" replaced with "xf" by
-q
+ gunzip <%{SOURCE<n>} | tar xvf - # added by -b <n>, "xvf" replaced with "xf" by
-q
+ cd <name>-<version> # changed by -n <dir>
+ gunzip <%{SOURCE<n>} | tar xvf - # added by -a <n>, "xvf" replaced with "xf" by
-q
+
+
+ Platform Identification
+ =======================
+
+ FreeBSD Linux Solaris
+ platform class %{l_platform -c} ix86-4.4bsd ix86-lsb1.2 sparc-svr4
+ platform product %{l_platform -p} ix86-freebsd4.8 ix86-redhat9
sparc64-solaris9
+ platform technology %{l_platform -t} i686-freebsd4.8 i585-linux2.4 sun4u-sunos5.9
+
+ Sections And Commands
+ =====================
+
+ --rebuild => -Uvh, -bb, --clean, --rmsource (undocumented), --rmspec
(undocumented)
+
+ %description
+ %prep
+ %build
+ %install
+ %check (for rpmlint things)
+ %files
+ %clean
+ %pre
+ %post
+ %preun
+ %postun
+ %trigger
+ %triggerin
+ %triggerun
+ %triggerpostun
+ %verifyscript (for custom -V checks)
+ %package (not allowed in OpenPKG)
+ %changelog (not allowed in OpenPKG)
+
+ action only this action up to this action
+ ------------------------ -------------------- -----------------
+ execute %prep -bp --short-circuit -bp
+ execute %build -bc --short-circuit -bc
+ execute %install -bi --short-circuit -bi
+ execute %check N.A. N.A.
+ execute %files -bl N.A.
+ roll binary RPM package -bb --short-circuit N.A.
+ execute %clean N.A. -bb
+ roll source RPM package -bs -ba
+
+ Script Execution
+ ----------------
+
+ section install erase upgrade reinstall
+ ------- ------- ------- ------- ---------
+ %pre 1 - 2 2
+ %post 1 - 2 2
+ %preun - 0 1 -
+ %postun - 0 1 -
+
+ ("reinstall" is the case where one uses the --force option to rpm (-i or
+ -U) to install the same version of the package that already is in the
+ system. "-" means that the scriptlet will not be run in this phase)
+
+ The order in which scripts are executed on a single package install:
+ new-%pre $1=1 for new version of package being installed
+ ... (all new files are installed and override old versions)
+ new-%post $1=1 for new version of package being installed
+
+ The order in which scripts are executed on a single package upgrade:
+ new-%pre $1=2 for new version of package being installed
+ ... (all new files are installed and override old versions)
+ new-%post $1=2 for new version of package being installed
+ old-%preun $1=1 for old version of package being removed
+ ... (all old files are removed which are not part of the new package)
+ old-%postun $1=1 for old version of package being removed
+
+ The order in which scripts are executed on a single package erase:
+ old-%preun $1=0 for old version of package being removed
+ ... (all old files are removed which are not part of the new package)
+ old-%postun $1=0 for old version of package being removed
+
+ Package Variants
+ ----------------
+
+ o Naming Convention
+ - primary/intended package is named "foo"
+ - secondary/alternative/compatibility/etc packages are named "fooN"
+ where "N" is the compressed version string not longer than 2 or 3 digits.
+ - examples: perl/perl56, gcc/gcc2/gcc33, mysql/mysql4, tomcat/tomcat4
+
+ o Alternative Packages
+ - for using automatically handled package alternatives
+ - packages conflict by default, because are true alternatives
+ - intention is that packages are fully equal and compatible, any can be used,
any is chosen
+ - multiple existing packages is final solution and will remain in near future
+ - multiple packages are of different products (only)
+
+ Original Package:
+ | Name: foo
+ | Provides: FOO
+
+ Alternative Packages:
+ | Name: fooN
+ | Provides: FOO
+ | %install
+ | ln -s $RPM_BUILD_ROOT%{l_prefix}/bin/fooN
$RPM_BUILD_ROOT%{l_prefix}/bin/foo
+
+ Examples: MTA, JDK, JRE, MOTIF, KSH, X11
+
+ o Faked Packages
+ - for using manually enforced package alternatives
+ - packages do not conflict by default, but on enforcement
+ - intention is that packages are not fully compatible, only one particular
should be used, others can be enfored
+ - multiple existing packages is temporary solution and will certainly change in
near future
+ - multiple packages are of different versions of same product (only)
+
+ Original Package:
+ | Name: foo
+
+ Faked Packages:
+ | Name: fooN
+ | %options with_foo no
+ | %if "%{with_foo}" == "yes"
+ | Provides: foo = %{version}-%{release}
+ | %endif
+ | %install
+ | %if "%{with_foo}" == "yes"
+ | ln -s $RPM_BUILD_ROOT%{l_prefix}/bin/fooN
$RPM_BUILD_ROOT%{l_prefix}/bin/foo
+ | %endif
+
+ Examples: perl, gcc, mysql, gd, tomcat
+
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [EMAIL PROTECTED]