OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /v/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src Date: 25-Aug-2006 10:31:59
Branch: HEAD Handle: 2006082509315401
Modified files:
openpkg-src/openpkg HISTORY README openpkg.spec
Log:
cleanup and bring up-to-date the source tree documentation
Summary:
Revision Changes Path
1.365 +2 -0 openpkg-src/openpkg/HISTORY
1.24 +116 -118 openpkg-src/openpkg/README
1.517 +10 -9 openpkg-src/openpkg/openpkg.spec
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/HISTORY
============================================================================
$ cvs diff -u -r1.364 -r1.365 HISTORY
--- openpkg-src/openpkg/HISTORY 24 Aug 2006 14:27:19 -0000 1.364
+++ openpkg-src/openpkg/HISTORY 25 Aug 2006 08:31:54 -0000 1.365
@@ -2,6 +2,8 @@
2006
====
+20060825 cleanup and bring up-to-date the source tree documentation
+
20060824 **** RELEASE AS PART OF OPENPKG 2.20060824 ***
20060823 upgrade to openpkg-tools 0.8.70
20060823 create fallback/override directories with owner/group musr/mgrp
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/README
============================================================================
$ cvs diff -u -r1.23 -r1.24 README
--- openpkg-src/openpkg/README 7 May 2004 14:13:19 -0000 1.23
+++ openpkg-src/openpkg/README 25 Aug 2006 08:31:55 -0000 1.24
@@ -9,26 +9,36 @@
The Files
---------
- README .................. this file ;)
+ README .................. this file ;-)
+ HISTORY ................. change history tracking of this package
- openpkg.boot ............ the bootstrapping procedure
openpkg.spec ............ the regular build procedure
+ openpkg.boot ............ the bootstrapping procedure
- gzip-1.3.5.tar .......... untouched distribution tarball of the GNU gzip
tool
- make-3.80.tar.gz ........ untouched distribution tarball of the GNU make
tool
- patch-2.5.9.tar.gz ...... untouched distribution tarball of the GNU patch
tool
- bash-2.05b.tar.gz ....... untouched distribution tarball of the GNU bash
tool
- tar-1.13.94.tar.gz ...... untouched distribution tarball of the GNU tar
tool
- uuid-1.0.0.tar.gz ....... untouched distribution tarball of the OSSP uuid
tool
- curl-7.11.2.tar.gz ...... untouched distribution tarball of the cURL tool
- bzip2-1.0.2.tar.gz ...... untouched distribution tarball of the BZIP2
library
- zlib-1.2.1.tar.gz ....... untouched distribution tarball of the ZLIB
library
- beecrypt-3.1.0.tar.gz ... untouched distribution tarball of the BeeCrypt
library
- rpm-4.2.1.tar.gz ........ untouched distribution tarball of the RPM tool
+ gzip-*.tar .............. untouched distribution tarball of the GNU gzip
tool
+ make-*.tar.gz ........... untouched distribution tarball of the GNU make
tool
+ patch-*.tar.gz .......... untouched distribution tarball of the GNU patch
tool
+ bash-*.tar.gz ........... untouched distribution tarball of the GNU bash
tool
+ tar-*.tar.gz ............ untouched distribution tarball of the GNU tar
tool
+ uuid-*.tar.gz ........... untouched distribution tarball of the OSSP uuid
tool
+ curl-*.tar.gz ........... untouched distribution tarball of the cURL tool
+ bzip2-*.tar.gz .......... untouched distribution tarball of the BZIP2
library
+ zlib-*.tar.gz ........... untouched distribution tarball of the ZLIB
library
+ beecrypt-*.tar.gz ....... untouched distribution tarball of the BeeCrypt
library
+ rpm-*.tar.gz ............ untouched distribution tarball of the RPM tool
+ config-*.tar.gz ......... untouched distribution tarball of the GNU config
scripts
+ openpkg-registry-*.tar.gz untouched distribution tarball of the OpenPKG
Registry
+ openpkg-tools-*.tar.gz .. untouched distribution tarball of the OpenPKG
Tool Chain
+ openssl-*.tar.gz ........ untouched distribution tarball of the OpenSSL
toolkit
+ perl-*-mini.tar.gz ...... stripped down distribution tarball of the Perl
tool
make.patch .............. patch for GNU make
bash.patch .............. patch for GNU bash
+ tar.patch ............... patch for GNU tar
beecrypt.patch .......... patch for BeeCrypt
+ openssl.patch ........... patch for OpenSSL
+ perl.patch .............. patch for Perl
+ gzip.c .................. replacement file for GNU gzip
rpm.patch.bugfix ........ patch for RPM (bugfixing parts)
rpm.patch.feature ....... patch for RPM (new features parts)
rpm.patch.porting ....... patch for RPM (portability enhancement parts)
@@ -44,14 +54,36 @@
dot.bash_login .......... the source for installed <prefix>/.bash_login
dot.lsyncrc ............. the source for installed <prefix>/local/.lsyncrc
+ openpkg.c ............... the OpenPKG frontend (set-uid wrapper)
+ openpkg.sh .............. the OpenPKG frontend (main script)
+ openpkg.pod ............. the OpenPKG frontend manual page (source)
+ openpkg.1 ............... the OpenPKG frontend manual page (pre-generated
output)
+
rc ...................... the OpenPKG run-command handling script
rc.func ................. the OpenPKG run-command function definitions
rc.conf ................. the OpenPKG run-command configuration template
rc.openpkg .............. the OpenPKG run-command script for the bootstrap
package
+ rc.pod .................. the OpenPKG run-command script manual page
(source)
+ rc.8 .................... the OpenPKG run-command script manual page
(pre-generated output)
+
+ release.sh .............. the OpenPKG release information utility script
+ release.pod ............. the OpenPKG release information utility manual
page (source)
+ release.8 ............... the OpenPKG release information utility manual
page (pre-generated output)
+
+ uuid.sh ................. the OpenPKG UUID management utility script
+ uuid.pod ................ the OpenPKG UUID management utility manual page
(source)
+ uuid.8 .................. the OpenPKG UUID management utility manual page
(pre-generated output)
+
+ rpmdb ................... the OpenPKG RPM database management utility
rpmtool ................. the rpmtool tool (program source)
rpmtool.8 ............... the rpmtool tool (manual page)
rpmtool.pod ............. the rpmtool tool (manual page source)
+ shtool .................. the portable shell tool (GNU shtool)
+
+ rpm-config.sh ........... the RPM C API helper script
+ rpm-config.pod .......... the RPM C API helper manual page (source)
+ rpm-config.8 ............ the RPM C API helper manual page (pre-generated
output)
lsync ................... the lsync tool (program source)
lsync.8 ................. the lsync tool (manual page)
@@ -62,26 +94,23 @@
aux.wrapsrc.sh .......... wrapper script for generating openpkg-V-R.src.sh
aux.wrapbin.sh .......... wrapper script for generating openpkg-V-R.P-L.sh
- shtool .................. the portable shell tool (GNU shtool)
- platform ................ the platform identification script (OSSP
platform)
-
- rpmx.sh ................. RPM eXtension (Shell wrapper)
- rpmx.pl ................. RPM eXtension (Perl program)
- mkproxyrpm.pl ........... RPM eXtension (Perl program, --makeproxy part)
+ pod2man.sh .............. helper script for pre-generating manual page
outputs
+ man.sh .................. helper script for "openpkg man" command
+ install.sh .............. helper script for "openpkg install" command
openpkg.pgp ............. the OpenPGP public key of "The OpenPKG Project"
The Bootstrapping Procedure
---------------------------
- The complexity of this OpenPKG RPM package results from the fact
- that we force us to treat this bootstrapping package equal to every
- other regular package. This implies first that the packaging tool
- RPM is packaged with itself as an OpenPKG RPM package (means: its
+ The complexity of this OpenPKG RPM package results from the fact that
+ we force us to treat this bootstrapping package equal to every other
+ regular OpenPKG RPM package. First, this implies that the packaging
+ tool RPM is packaged with itself as an OpenPKG RPM package (means: its
build procedure is a real RPM .spec file and it can be installed and
- upgraded through a binary or source RPM), second that RPM is installed
- into the same filesystem hierarchy as all other packages and third
- that RPM manages its own files. The reason for this should be obvious:
+ upgraded through a binary or source RPM). Second, RPM is installed
+ into the same filesystem hierarchy as all other packages. Third, RPM
+ manages its own files. The reason for this approach should be obvious:
100% consistency for the whole OpenPKG software packaging facility!
The drawback is that this package requires a very tricky bootstrapping
@@ -89,101 +118,70 @@
you ever wanted to know the gory details, here they are...
The first step was that we wrote the regular openpkg.spec file for
- building the bootstrap package with RPM under the assumption that RPM
- is already available. This way we can provide RPM as an RPM package.
- Just remains the problem how we actually bootstrap in the case where
- RPM is still not available, i.e., when we reach a new platform and
- have to build the package from scratch. Here the openpkg.boot script
- comes into play. It executes the openpkg.spec build procedure very
- similar to the way RPM would do ("rpm -bb"). That is, openpkg.boot
- partly emulates RPM -- just enough that openpkg.spec works. As a
- result, openpkg.spec cannot use any fancy RPM features or other things
- before openpkg.boot is able to emulate it, of course.
-
- After openpkg.boot executed the %prep, %build and %install scripts
- of openpkg.spec, there is a fresh version of the target filesystem
- hierarchy staying under a temporary build root. The openpkg.boot
- script then creates a very special temporary "rpm" command which
- allows the installed "rpm" command inside the build root to work
- (although it is built for the final target filesystem path). Then
- the $RPM_BOOT variable is set and the package is again "built" via
- openpkg.spec -- but this time with the real RPM tool. To avoid
- unneccessary re-compilation, the openpkg.spec skips %prep, %build
- and %install if $RPM_BOOT is defined, so on this second build phase,
- only %files is executed, i.e., a binary RPM openpkg-V-R.P-L.rpm is
- rolled from the files in the build root. Additionally, a source RPM
- openpkg-V-R.src.rpm is rolled for consistency reasons.
-
- Finally we override the installation in the build root again by
- installing the now rolled binary RPM openpkg-V-R.P-L.rpm again by
- using the real RPM tool. This way we achieve that RPM is remembered
- as an RPM package in its own database. We just have to make sure the
- package is still relocated to the build root while installing. For
- this we could use --prefix=$RPM_BUILD_ROOT%{l_prefix}, but this would
+ building the bootstrap package with OpenPKG RPM under the assumption
+ that OpenPKG RPM is already available. This way we can provide OpenPKG
+ RPM as an RPM package. Just remains the problem how we actually
+ bootstrap in case where OpenPKG RPM is still not available, i.e.,
+ when we reach a new platform and have to build the package from
+ scratch. Here the "openpkg.boot" script comes into play. It executes
+ the "openpkg.spec" build procedure very similar to the way the real
+ OpenPKG RPM would do ("openpkg rpm -bb"). That is, "openpkg.boot"
+ partly emulates OpenPKG RPM -- just enough that "openpkg.spec" works.
+ As a result, "openpkg.spec" cannot use any fancy OpenPKG RPM features
+ or other things before "openpkg.boot" is able to emulate it, of
+ course.
+
+ After "openpkg.boot" executed the "%prep", "%build" and "%install"
+ scripts of "openpkg.spec", there is a fresh version of the target
+ filesystem hierarchy staying under a temporary "build root". The
+ "openpkg.boot" script then creates a very special temporary "openpkg
+ rpm" command which allows the installed "openpkg rpm" command inside
+ the "build root" to work (although it is built for the final target
+ filesystem path). Then the $RPM_BOOT variable is set and the package
+ is _again_ build via "openpkg.spec" -- but this time with the real
+ OpenPKG RPM. To avoid unneccessary re-compilation, the "openpkg.spec"
+ skips "%prep", "%build" and "%install" sections if $RPM_BOOT is
+ defined. So, on this second build phase, only the "%files" section is
+ executed, i.e., a binary OpenPKG RPM package "openpkg-V-R.P-T.rpm"
+ is rolled from the files in the "build root". Additionally, a source
+ OpenPKG RPM package "openpkg-V-R.src.rpm" is rolled for consistency
+ reasons.
+
+ Finally, we override the installation in the "build root"
+ again by installing the now rolled binary OpenPKG RPM package
+ "openpkg-V-R.P-T.rpm" by using the real OpenPKG RPM. This way
+ we achieve that OpenPKG RPM is remembered as a real OpenPKG RPM
+ package in the RPM database. We just have to make sure the package
+ is still relocated to the "build root" while installing. For this
+ we could use "--prefix=$RPM_BUILD_ROOT%{l_prefix}", but this would
create an incorrect file list for the package "openpkg" in the RPM
- database. Instead we use the tricky --justdb option for "rpm" which
- means "rpm" behaves as it would install into the real location, but
- does not actually install anything. But as a side-effect, the database
- inside the build root is now correct.
-
- After this procedure, the build root contains the target filesystem
- hierarchy with RPM installed with itself. What is now remaining is
- to roll a bootstrap package with this stuff for initial installation
- without RPM. For this the build root is packed into a tarball,
- compressed, again wrapped into another tarball together with the
- uncompression tools, and finally wrapped into a self-extracting
- shell script by appending aux.wrapbin.sh (padded to 64KB for easier
- unpacking of the attached tarball) to its front.
+ database. Instead we use the tricky "--justdb" option for "openpkg
+ rpm" which means "openpkg rpm" behaves as it would install into the
+ real location, but does not actually install anything. But as a
+ side-effect, the database inside the "build root" is now correct.
+
+ After this procedure, the "build root" contains the target filesystem
+ hierarchy with OpenPKG RPM installed with itself. What is now just
+ remaining is to roll a bootstrap package "openpkg" with this stuff for
+ initial installation without OpenPKG RPM. For this the "build root"
+ is packed into a "tarball", compressed, again wrapped into another
+ tarball together with the uncompression tools ("bzip2" and "tar"),
+ and finally wrapped into a self-extracting shell script by appending
+ "aux.wrapbin.sh" (padded to 64KB for easier unpacking of the attached
+ tarball) to its front.
- The result is the binary bootstrap script openpkg-V-R.P-L.sh which
+ The result is the binary bootstrap script "openpkg-V-R.P-T.sh" which
can be used to install the target hierarchy from scratch without any
- pre-installed RPM. Nevetheless the installed target hierarchy looks
- _exactly_ as it would have been installed with RPM. If one later wants
- to upgrade this hierarchy one can just use the generated or a newer
- openpkg-V-R.P-L.rpm.
+ pre-installed OpenPKG RPM. Nevetheless, the installed target hierarchy
+ looks _exactly_ as it would have been installed with OpenPKG RPM.
+ If one later wants to upgrade this hierarchy one can just use the
+ generated (or a newer) "openpkg-V-R.P-T.rpm".
To allow one to easily repeat this from-source bootstrapping procedure
- on other machines, one can run "./openpkg.boot -s" which rolls a
- openpkg-V-R.src.sh script which is a self-extracting script containing
- an attached tarball of the sources of this directory. This script
- contains the same contents like openpkg-V-R.src.rpm, but is intended
- for running the described bootstrapping procedure from scratch without
- any RPM.
-
- Platforms and Level of Support
- ------------------------------
-
- Current this boostrapping package officially supports the following
- platforms (older versions are often still working, but no longer
- supported):
-
- ix86-freebsd4.9
- ix86-freebsd5.1
- alpha-freebsd5.1
- ix86-debian2.2
- ix86-debian3.0
- ix86-gentoo1.4
- ix86-suse8.2
- ix86-redhat9
- sparc64-solaris2.6
- sparc64-solaris8
- sparc64-solaris9
- ix86-solaris9
- ix86-solaris10
- ix86-unixware7.1.3
- ix86-darwin6.6.2
-
- The following platforms were supported by older versions of
- this package, but their support status is currently not known:
-
- ix86-netbsd1.6
- hppa-hpux11.20
-
- For following platforms until now are not supported, but support for
- them is planned:
-
- ix86-openbsd2.4
- alpha-tru645.X
- mips-irix5.X.X
- ppc-aix4.X.X
+ on other machines, one can run "./openpkg.boot -s" which rolls
+ a "openpkg-V-R.src.sh" script which is a self-extracting script
+ containing an attached tarball of the sources of this directory. This
+ script contains the same contents like "openpkg-V-R.src.rpm", but
+ is intended for running the described bootstrapping procedure from
+ scratch without any OpenPKG RPM.
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/openpkg.spec
============================================================================
$ cvs diff -u -r1.516 -r1.517 openpkg.spec
--- openpkg-src/openpkg/openpkg.spec 24 Aug 2006 14:27:19 -0000 1.516
+++ openpkg-src/openpkg/openpkg.spec 25 Aug 2006 08:31:55 -0000 1.517
@@ -22,14 +22,15 @@
## SUCH DAMAGE.
##
-# NOTICE: This RPM specification is _very_ special, because it is
-# used both for bootstrapping OpenPKG with its RPM and for regular
-# builds of RPM in order to upgrade an existing installation. For this
-# it has to interact correctly with the "openpkg.boot" script. See
-# this companion script for details, but do not touch anything here
-# until you are 100% sure about what you are doing. In short: This
-# script is allowed to use only a very restricted subset of the RPM
-# functionality!
+# NOTICE: This OpenPKG RPM specification is _very_ special, because
+# it is used both for bootstrapping OpenPKG with its OpenPKG RPM and
+# for regular builds of OpenPKG RPM in order to upgrade an existing
+# installation. For this it has to interact correctly with the
+# "openpkg.boot" script. See the documentation in the file "README"
+# and the source of the companion script "openpkg.boot" for details,
+# but do not touch anything here until you are 100% sure about what
+# you are doing. In short: This script is allowed to use only a very
+# restricted subset of the OpenPKG RPM functionality!
# BUILD REQUIREMENTS:
# o any sh(1)
@@ -38,7 +39,7 @@
# o any cc(1)
# the package version/release
-%define V_openpkg 20060824
+%define V_openpkg 20060825
# the used software versions
%define V_rpm 4.2.1
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [email protected]