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: 22-Jun-2006 09:36:35
Branch: OPENPKG_2_STABLE Handle: 2006062208363102
Added files: (Branch: OPENPKG_2_STABLE)
openpkg-src/openpkg release.8 release.pod release.sh
Modified files: (Branch: OPENPKG_2_STABLE)
openpkg-src/openpkg HISTORY build.sh install.sh lsync.8 openpkg.1
openpkg.spec pod2man.sh rc rc.8 rpm-config.8
rpmmacros rpmtool.8 uuid.8
Log:
MFC: all changes from CURRENT up to 20060622
Summary:
Revision Changes Path
1.337.2.1 +5 -0 openpkg-src/openpkg/HISTORY
1.2.2.1 +20 -23 openpkg-src/openpkg/build.sh
1.9.2.1 +12 -17 openpkg-src/openpkg/install.sh
1.6.12.1 +6 -6 openpkg-src/openpkg/lsync.8
1.2.10.1 +1 -1 openpkg-src/openpkg/openpkg.1
1.490.2.2 +11 -1 openpkg-src/openpkg/openpkg.spec
1.4.12.1 +1 -0 openpkg-src/openpkg/pod2man.sh
1.62.2.1 +1 -1 openpkg-src/openpkg/rc
1.6.10.1 +1 -1 openpkg-src/openpkg/rc.8
1.1.2.2 +219 -0 openpkg-src/openpkg/release.8
1.1.2.2 +122 -0 openpkg-src/openpkg/release.pod
1.1.2.2 +139 -0 openpkg-src/openpkg/release.sh
1.3.12.1 +1 -1 openpkg-src/openpkg/rpm-config.8
1.74.2.1 +5 -5 openpkg-src/openpkg/rpmmacros
1.9.12.1 +1 -1 openpkg-src/openpkg/rpmtool.8
1.1.14.1 +1 -1 openpkg-src/openpkg/uuid.8
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/HISTORY
============================================================================
$ cvs diff -u -r1.337 -r1.337.2.1 HISTORY
--- openpkg-src/openpkg/HISTORY 19 Jun 2006 09:54:00 -0000 1.337
+++ openpkg-src/openpkg/HISTORY 22 Jun 2006 07:36:31 -0000
1.337.2.1
@@ -2,6 +2,11 @@
2006
====
+20060622 do not rely on RPM's smartness to not expand "%x" when we actually
meant "%%x"
+20060621 use new "openpkg release" for "openpkg install" and "openpkg build"
commands
+20060621 use new "openpkg release" for %{l_openpkg_release} macro
+20060621 added "openpkg release" command for more precise OpenPKG
distribution tag and URL determination
+20060621 complain also about .rpmsave/.rpmnew files if it is a symbolic link
(usually created manually)
20060619 downgrade to cURL 7.15.3 til a suitable solution for long
line-capable 'grep -e' is found
20060619 backout SMF and revert to classic System V init style on Solaris 10
due to complete brokenness
20060618 support bootstrap "Release:" tags for N-STABLE branches
("N.YYYMMDD")
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/build.sh
============================================================================
$ cvs diff -u -r1.2 -r1.2.2.1 build.sh
--- openpkg-src/openpkg/build.sh 17 May 2006 07:35:30 -0000 1.2
+++ openpkg-src/openpkg/build.sh 22 Jun 2006 07:36:31 -0000 1.2.2.1
@@ -28,33 +28,27 @@
## in order to bootstrap the installation of the OpenPKG Tool Chain.
##
-# determine OpenPKG release and download URLs
-release=`$OPENPKG_PREFIX/bin/openpkg rpm --eval '%{l_openpkg_release -F
"%s"}'`
-case "$release" in
- CURRENT )
- url_src="ftp://ftp.openpkg.org/current/SRC"
- url_upd=""
- ;;
- [0-9].[0-9] )
- url_src="ftp://ftp.openpkg.org/release/$release/SRC"
- url_upd="ftp://ftp.openpkg.org/release/$release/UPD"
- ;;
- * )
- echo "openpkg:ERROR: invalid OpenPKG release \"$release\"" 1>&2
- exit 1
- ;;
-esac
+# determine OpenPKG distribution URLs (part 1)
+url_raw=`$OPENPKG_PREFIX/bin/openpkg release --fmt="%u"`
+url_src=""
+url_upd=""
-# mimimum command line option parsing
+# minimum command line option parsing
while [ $# -gt 0 ]; do
case "$1" in
- -r ) shift; url_src="$1"; url_upd=""; shift ;;
- -r* ) url_src="${1/-r/}"; url_upd="" shift ;;
+ -r ) shift; url_raw="$1"; shift ;;
+ -r* ) url_raw="${1/-r/}"; shift ;;
* ) break ;;
esac
done
-case "$url_src" in
- /* ) url_src="file://$url_src" ;;
+case "$url_raw" in
+ /* ) url_raw="file://$url_raw" ;;
+esac
+
+# determine OpenPKG distribution URLs (part 2)
+case "$url_raw" in
+ */SRC ) ;;
+ * ) url_src="$url_raw/SRC"; url_upd="$url_raw/UPD" ;;
esac
# sanity check usage
@@ -78,7 +72,7 @@
# determine latest package version and URL
pkg_srpm=""
pkg_name=""
- for url in $url_upd $url_src; do
+ for url in $url_upd $url_src $url_raw; do
if [ ".$url" = . ]; then
continue
fi
@@ -101,7 +95,10 @@
if [ ".$url_upd" != . ]; then
echo "openpkg:ERROR: $url_upd" 1>&2
fi
- echo "openpkg:ERROR: $url_src" 1>&2
+ if [ ".$url_src" != . ]; then
+ echo "openpkg:ERROR: $url_src" 1>&2
+ fi
+ echo "openpkg:ERROR: $url_raw" 1>&2
exit 1
fi
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/install.sh
============================================================================
$ cvs diff -u -r1.9 -r1.9.2.1 install.sh
--- openpkg-src/openpkg/install.sh 12 May 2006 09:22:24 -0000 1.9
+++ openpkg-src/openpkg/install.sh 22 Jun 2006 07:36:31 -0000 1.9.2.1
@@ -40,21 +40,13 @@
exit 1
fi
-# determine OpenPKG release and download URLs
-release=`$OPENPKG_PREFIX/bin/openpkg rpm --eval '%{l_openpkg_release -F
"%s"}'`
-case "$release" in
- CURRENT )
- url_src="ftp://ftp.openpkg.org/current/SRC"
- url_upd=""
- ;;
- [0-9].[0-9] )
- url_src="ftp://ftp.openpkg.org/release/$release/SRC"
- url_upd="ftp://ftp.openpkg.org/release/$release/UPD"
- ;;
- * )
- echo "openpkg:ERROR: invalid OpenPKG release \"$release\"" 1>&2
- exit 1
- ;;
+# determine OpenPKG distribution URLs
+url_raw=`$OPENPKG_PREFIX/bin/openpkg release --fmt="%u"`
+url_src=""
+url_upd=""
+case "$url_raw" in
+ */SRC ) ;;
+ * ) url_src="$url_raw/SRC"; url_upd="$url_raw/UPD" ;;
esac
# determine path to binary RPMs
@@ -66,7 +58,7 @@
# determine latest package version and URL
pkg_srpm=""
pkg_name=""
- for url in $url_upd $url_src; do
+ for url in $url_upd $url_src $url_raw; do
if [ ".$url" = . ]; then
continue
fi
@@ -89,7 +81,10 @@
if [ ".$url_upd" != . ]; then
echo "openpkg:ERROR: $url_upd" 1>&2
fi
- echo "openpkg:ERROR: $url_src" 1>&2
+ if [ ".$url_src" != . ]; then
+ echo "openpkg:ERROR: $url_src" 1>&2
+ fi
+ echo "openpkg:ERROR: $url_raw" 1>&2
exit 1
fi
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/lsync.8
============================================================================
$ cvs diff -u -r1.6 -r1.6.12.1 lsync.8
--- openpkg-src/openpkg/lsync.8 18 Apr 2004 11:28:24 -0000 1.6
+++ openpkg-src/openpkg/lsync.8 22 Jun 2006 07:36:31 -0000 1.6.12.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.3
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -326,11 +326,11 @@
released and so only used at sd&m and on all machines which were under
control of Ralf S. Engelschall.
.PP
-For Cable & Wireless Deutschland GmbH, Munich, the old \fBGenOPT\fR
-principle was again needed to manage the \f(CW\*(C`/cw/local\*(C'\fR area on
their
-servers. For this in November 2000 the functionality of \fBGenOPT\fR was
-revised, heavily stripped down and finally implemented from scratch. The
-result is the current \fBopenpkg lsync\fR.
+For Cable & Wireless, Munich, the old \fBGenOPT\fR principle was again
+needed to manage the \f(CW\*(C`/cw/local\*(C'\fR area on their servers. For
this in
+November 2000 the functionality of \fBGenOPT\fR was revised, heavily
+stripped down and finally implemented from scratch. The result is the
+current \fBopenpkg lsync\fR.
.SH "AUTHOR"
.IX Header "AUTHOR"
.Vb 3
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/openpkg.1
============================================================================
$ cvs diff -u -r1.2 -r1.2.10.1 openpkg.1
--- openpkg-src/openpkg/openpkg.1 21 Jul 2004 14:30:30 -0000 1.2
+++ openpkg-src/openpkg/openpkg.1 22 Jun 2006 07:36:31 -0000 1.2.10.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.3
.\"
.\" Standard preamble:
.\" ========================================================================
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/openpkg.spec
============================================================================
$ cvs diff -u -r1.490.2.1 -r1.490.2.2 openpkg.spec
--- openpkg-src/openpkg/openpkg.spec 20 Jun 2006 15:22:23 -0000
1.490.2.1
+++ openpkg-src/openpkg/openpkg.spec 22 Jun 2006 07:36:31 -0000
1.490.2.2
@@ -140,6 +140,9 @@
Source66: ftp://ftp.openssl.org/source/openssl-%{V_openssl}.tar.gz
Source67: perl.patch
Source68: openssl.patch
+Source69: release.sh
+Source70: release.pod
+Source71: release.8
# build information
Prefix: %{l_prefix}
@@ -147,7 +150,7 @@
AutoReq: no
AutoReqProv: no
Provides: OpenPKG
-Provides: openpkg = 20060619-20060619
+Provides: openpkg = 20060622-20060622
%description
This is the bootstrap package for the RPM-based Unix Software
@@ -1165,6 +1168,11 @@
sed -e "s;@l_prefix@;%{l_prefix};g" \
<`SOURCE uuid.8` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/uuid.8
sed -e "s;@l_prefix@;%{l_prefix};g" \
+ <`SOURCE release.sh`
>$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/release
+ chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/release
+ sed -e "s;@l_prefix@;%{l_prefix};g" \
+ <`SOURCE release.8`
>$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/release.8
+ sed -e "s;@l_prefix@;%{l_prefix};g" \
-e "s;@l_musr@;%{l_musr};g" \
-e "s;@l_mgrp@;%{l_mgrp};g" \
<`SOURCE rpmdb` >$RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmdb
@@ -1427,6 +1435,8 @@
%{l_prefix}/libexec/openpkg/rpm
%{l_prefix}/libexec/openpkg/rpm.8
%{l_prefix}/libexec/openpkg/register
+ %{l_prefix}/libexec/openpkg/release
+ %{l_prefix}/libexec/openpkg/release.8
%dir %{l_prefix}/man
%dir %{l_prefix}/man/man1
%dir %{l_prefix}/man/man2
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/pod2man.sh
============================================================================
$ cvs diff -u -r1.4 -r1.4.12.1 pod2man.sh
--- openpkg-src/openpkg/pod2man.sh 21 Feb 2004 19:11:34 -0000 1.4
+++ openpkg-src/openpkg/pod2man.sh 22 Jun 2006 07:36:31 -0000 1.4.12.1
@@ -5,3 +5,4 @@
pod2man --section=8 --center="OpenPKG" --release="LSYNC(8)"
--date="OpenPKG" --quotes=none lsync.pod >lsync.8
pod2man --section=8 --center="OpenPKG" --release="RPM-CONFIG(8)"
--date="OpenPKG" --quotes=none rpm-config.pod >rpm-config.8
pod2man --section=8 --center="OpenPKG" --release="UUID(8)"
--date="OpenPKG" --quotes=none uuid.pod >uuid.8
+pod2man --section=8 --center="OpenPKG" --release="RELEASE(8)"
--date="OpenPKG" --quotes=none release.pod >release.8
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/rc
============================================================================
$ cvs diff -u -r1.62 -r1.62.2.1 rc
--- openpkg-src/openpkg/rc 1 Jan 2006 13:17:51 -0000 1.62
+++ openpkg-src/openpkg/rc 22 Jun 2006 07:36:31 -0000 1.62.2.1
@@ -293,7 +293,7 @@
# check for upgraded package with unresolved configuration file
conflicts
if [ -d "$prefix/etc/$s_name" -a ".$eval" != .1 ]; then
- if [ ".`find $prefix/etc/$s_name -type f -print 2>/dev/null |
egrep -v '.*/\.(snap|snapshot)/.*' | egrep '.*\.rpm(new|orig|save)$'`" != . ];
then
+ if [ ".`(find $prefix/etc/$s_name -type f -print; find
$prefix/etc/$s_name -type l -print) 2>/dev/null | egrep -v
'.*/\.(snap|snapshot)/.*' | egrep '.*\.rpm(new|orig|save)$'`" != . ]; then
case "$cmd" in
start|restart ) type="ERROR" ;;
* ) type="WARNING" ;;
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/rc.8
============================================================================
$ cvs diff -u -r1.6 -r1.6.10.1 rc.8
--- openpkg-src/openpkg/rc.8 25 Jul 2004 10:48:16 -0000 1.6
+++ openpkg-src/openpkg/rc.8 22 Jun 2006 07:36:32 -0000 1.6.10.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.3
.\"
.\" Standard preamble:
.\" ========================================================================
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/release.8
============================================================================
$ cvs diff -u -r0 -r1.1.2.2 release.8
--- /dev/null 2006-06-22 09:35:47 +0200
+++ release.8 2006-06-22 09:36:34 +0200
@@ -0,0 +1,219 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.3
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. | will give a
+.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used
to
+.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
+.\" expand to `' in nroff, nothing in troff, for use with C<>.
+.tr \(*W-|\(bv\*(Tr
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10
pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12
pitch
+. ds L" ""
+. ds R" ""
+. ds C`
+. ds C'
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr
for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds :
\\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o
\\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "RELEASE 8"
+.TH RELEASE 8 "OpenPKG" "RELEASE(8)" "OpenPKG"
+.SH "NAME"
+\&\fBopenpkg release\fR \- OpenPKG Release Utility
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+\&\fBopenpkg release\fR [\fB\-F\fR|\fB\-\-fmt\fR \fIformat\fR]
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+The \fBopenpkg release\fR command displays the OpenPKG release tag and
+distribution \s-1URL\s0. The release tag uniquely identifies an OpenPKG
+distribution and the distribution \s-1URL\s0 is the location where the
+distribution packages and indices are stored.
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+.IP "\fB\-F\fR, \fB\-\-fmt\fR \fIformat\fR" 4
+.IX Item "-F, --fmt format"
+The output format specification. The argument \fIformat\fR is an arbitrary
+string which can contain the special expansion constructs "\f(CW%t\fR\*(L"
for
+expanding the release tag, \*(R"\f(CW%u\fR\*(L" for expanding the
distribution \s-1URL\s0
+and \*(R"\f(CW\*(C`\en\*(C'\fR" for expanding an embedded newline character.
The default
+\&\fIformat\fR is "\f(CW\*(C`OpenPKG\-%t %u\*(C'\fR".
+.IP "\fB\-r\fR, \fB\-\-release\fR \fIrelease\fR" 4
+.IX Item "-r, --release release"
+The package "\f(CW\*(C`Release\*(C'\fR" header value to use for deriving the
release
+tag. The values in the [EMAIL PROTECTED]@/etc/openpkg/release\fR file and the
+"\f(CW\*(C`Release\*(C'\fR" header of the bootstrap package \fBopenpkg\fR
are ignored if
+this option is used.
+.SH "FILES"
+.IX Header "FILES"
+.IP "[EMAIL PROTECTED]@/etc/openpkg/release\fR" 4
+.IX Item "@l_prefix@/etc/openpkg/release"
+This optional configuration file can be used to explicitly set values
+for the OpenPKG release tag and distribution URLs. It consists of lines
+with variable name/value pairs. The following configuration variables
+are recognized:
+.RS 4
+.IP "\fBTAG=\fR\fItag\fR" 4
+.IX Item "TAG=tag"
+The default \fItag\fR is automatically derived from the
"\f(CW\*(C`Version\*(C'\fR" header
+of the OpenPKG bootstrap package \fBopenpkg\fR. One usually only sets this
+explicitly to a value if a bootstrap package is used from a foreign
+distribution version.
+.IP "\fBURL=\fR\fIurl\fR" 4
+.IX Item "URL=url"
+The fully-qualified distribution \s-1URL\s0 based on either the
"\f(CW\*(C`ftp\*(C'\fR\*(L",
+\&\*(R"\f(CW\*(C`http\*(C'\fR\*(L" or \*(R"\f(CW\*(C`file\*(C'\fR"
\s-1URL\s0 schemes. If \fIurl\fR contains a trailing
+"\f(CW\*(C`/*\*(C'\fR", this is expanded according to the \fItag\fR value of
the \fB\s-1TAG\s0\fR
+variable and the corresponding filesystem layout on
\f(CW\*(C`ftp.openpkg.org\*(C'\fR.
+The default \fIurl\fR is "\f(CW\*(C`ftp://ftp.openpkg.org/*\*(C'\fR".
+.RS 4
+.RE
+.RS 4
+.SH "EXAMPLE"
+.IX Header "EXAMPLE"
+.Vb 2
+\& $ openpkg release
+\& OpenPKG-CURRENT ftp://ftp.openpkg.org/current/SRC/
+.Ve
+.Sp
+.Vb 2
+\& $ openpkg release --fmt=%t
+\& CURRENT
+.Ve
+.Sp
+.Vb 2
+\& $ openpkg release --fmt=%u
+\& ftp://ftp.openpkg.org/current/SRC/
+.Ve
+.Sp
+.Vb 3
+\& $ openpkg release --fmt="OpenPKG %t is located at:\e\en%u"
+\& OpenPKG CURRENT is located at:
+\& ftp://ftp.openpkg.org/current/SRC/
+.Ve
+.Sp
+.Vb 2
+\& $ openpkg release --release=2.5.4 --fmt=%t
+\& 2.5-RELEASE
+.Ve
+.Sp
+.Vb 3
+\& $ cat /openpkg/etc/openpkg/release
+\& TAG=2-STABLE-20060622
+\& URL=ftp://ftp.example.com/mirror/openpkg.org/*
+.Ve
+.SH "HISTORY"
+.IX Header "HISTORY"
+The \fBopenpkg release\fR command first appeared in \fBOpenPKG
2\-STABLE\-20060622\fR.
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/release.pod
============================================================================
$ cvs diff -u -r0 -r1.1.2.2 release.pod
--- /dev/null 2006-06-22 09:35:47 +0200
+++ release.pod 2006-06-22 09:36:34 +0200
@@ -0,0 +1,122 @@
+##
+## release -- OpenPKG Release Utility
+## Copyright (c) 2000-2006 OpenPKG Foundation e.V. <http://openpkg.net/>
+## Copyright (c) 2000-2006 Ralf S. Engelschall <http://engelschall.com/>
+##
+## Permission to use, copy, modify, and distribute this software for
+## any purpose with or without fee is hereby granted, provided that
+## the above copyright notice and this permission notice appear in all
+## copies.
+##
+## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+## SUCH DAMAGE.
+##
+
+=pod
+
+=head1 NAME
+
+B<openpkg release> - OpenPKG Release Utility
+
+=head1 SYNOPSIS
+
+B<openpkg release> [B<-F>|B<--fmt> I<format>]
+
+=head1 DESCRIPTION
+
+The B<openpkg release> command displays the OpenPKG release tag and
+distribution URL. The release tag uniquely identifies an OpenPKG
+distribution and the distribution URL is the location where the
+distribution packages and indices are stored.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-F>, B<--fmt> I<format>
+
+The output format specification. The argument I<format> is an arbitrary
+string which can contain the special expansion constructs "C<%t>" for
+expanding the release tag, "C<%u>" for expanding the distribution URL
+and "C<\n>" for expanding an embedded newline character. The default
+I<format> is "C<OpenPKG-%t %u>".
+
+=item B<-r>, B<--release> I<release>
+
+The package "C<Release>" header value to use for deriving the release
+tag. The values in the F<@l_prefix@/etc/openpkg/release> file and the
+"C<Release>" header of the bootstrap package B<openpkg> are ignored if
+this option is used.
+
+=back
+
+=head1 FILES
+
+=over 4
+
+=item F<@l_prefix@/etc/openpkg/release>
+
+This optional configuration file can be used to explicitly set values
+for the OpenPKG release tag and distribution URLs. It consists of lines
+with variable name/value pairs. The following configuration variables
+are recognized:
+
+=over 4
+
+=item B<TAG=>I<tag>
+
+The default I<tag> is automatically derived from the "C<Version>" header
+of the OpenPKG bootstrap package B<openpkg>. One usually only sets this
+explicitly to a value if a bootstrap package is used from a foreign
+distribution version.
+
+=item B<URL=>I<url>
+
+The fully-qualified distribution URL based on either the "C<ftp>",
+"C<http>" or "C<file>" URL schemes. If I<url> contains a trailing
+"C</*>", this is expanded according to the I<tag> value of the B<TAG>
+variable and the corresponding filesystem layout on C<ftp.openpkg.org>.
+The default I<url> is "C<ftp://ftp.openpkg.org/*>".
+
+=over
+
+=back
+
+=head1 EXAMPLE
+
+ $ openpkg release
+ OpenPKG-CURRENT ftp://ftp.openpkg.org/current/SRC/
+
+ $ openpkg release --fmt=%t
+ CURRENT
+
+ $ openpkg release --fmt=%u
+ ftp://ftp.openpkg.org/current/SRC/
+
+ $ openpkg release --fmt="OpenPKG %t is located at:\\n%u"
+ OpenPKG CURRENT is located at:
+ ftp://ftp.openpkg.org/current/SRC/
+
+ $ openpkg release --release=2.5.4 --fmt=%t
+ 2.5-RELEASE
+
+ $ cat /openpkg/etc/openpkg/release
+ TAG=2-STABLE-20060622
+ URL=ftp://ftp.example.com/mirror/openpkg.org/*
+
+=head1 HISTORY
+
+The B<openpkg release> command first appeared in B<OpenPKG
2-STABLE-20060622>.
+
+=cut
+
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/release.sh
============================================================================
$ cvs diff -u -r0 -r1.1.2.2 release.sh
--- /dev/null 2006-06-22 09:35:47 +0200
+++ release.sh 2006-06-22 09:36:35 +0200
@@ -0,0 +1,139 @@
[EMAIL PROTECTED]@/lib/openpkg/bash
+##
+## release -- OpenPKG Release Determination Utility
+## Copyright (c) 2000-2006 OpenPKG Foundation e.V. <http://openpkg.net/>
+## Copyright (c) 2000-2006 Ralf S. Engelschall <http://engelschall.com/>
+##
+## Permission to use, copy, modify, and distribute this software for
+## any purpose with or without fee is hereby granted, provided that
+## the above copyright notice and this permission notice appear in all
+## copies.
+##
+## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+## SUCH DAMAGE.
+##
+
+# configuration
+prefix="@l_prefix@"
+
+# minimum command line parsing
+opt_F="OpenPKG-%t %u"
+opt_r=""
+while [ $# -gt 0 ]; do
+ case "$1" in
+ -F ) opt_F="$2"; shift; shift ;;
+ --fmt ) opt_F="$2"; shift; shift ;;
+ -F* ) opt_F="`expr ".$1" : '.-F\(.*\)'`"; shift ;;
+ --fmt=* ) opt_F="`expr ".$1" : '.--fmt=\(.*\)'`"; shift ;;
+ -r ) opt_r="$2"; shift; shift ;;
+ --release ) opt_r="$2"; shift; shift ;;
+ -r* ) opt_r="`expr ".$1" : '.-r\(.*\)'`"; shift ;;
+ --release=* ) opt_r="`expr ".$1" : '.--release=\(.*\)'`"; shift ;;
+ * ) break ;;
+ esac
+done
+
+# translate a release number to a release tag
+number_to_tag () {
+ sed -e 's;^;X;' \
+ -e
's;^X\([^.-][^.-]*\.[^.-][^.-]*\)\.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].*$;\1-SOLID;'
\
+ -e 's;^X\([^.-][^.-]*\.[^.-][^.-]*\)\.[^.-][^.-]*.*$;\1-RELEASE;' \
+ -e 's;^X\([^.-][^.-]*\)\.[^.-][^.-]*.*$;\1-STABLE;' \
+ -e 's;^X[^.-][^.-]*.*$;CURRENT;' \
+ -e 's;^X.*$;UNKNOWN;'
+}
+
+# sanity check a release tag
+tag_sanity () {
+ sed -e 's;^;X;' \
+ -e 's;^X[^.-][^.-]*\.[^.-][^.-]*-RELEASE$;OK;' \
+ -e
's;^X[^.-][^.-]*\.[^.-][^.-]*-SOLID-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$;OK;'
\
+ -e 's;^X[^.-][^.-]*\.[^.-][^.-]*-SOLID$;OK;' \
+ -e
's;^X[^.-][^.-]*-STABLE-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$;OK;' \
+ -e 's;^X[^.-][^.-]*-STABLE$;OK;' \
+ -e 's;^XCURRENT-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$;OK;' \
+ -e 's;^XCURRENT$;OK;' \
+ -e 's;^X.*$;ERROR;'
+}
+
+# determine release
+tag=""
+if [ ".$opt_r" != . ]; then
+ tag=`echo ".$opt_r" | sed -e 's;^\.;;' | number_to_tag`
+elif [ -f "$prefix/etc/openpkg/release" ]; then
+ tag=`sed <$prefix/etc/openpkg/release \
+ -e 's;^;X;' \
+ -e 's;^X *TAG *= *\([^ ][^ ]*\).*;\1;' \
+ -e '/^X/d'`
+else
+ tag=`$prefix/bin/openpkg rpm \
+ -q --qf '%{VERSION}' openpkg | number_to_tag`
+fi
+if [ .`echo ".$tag" | sed -e 's;^\.;;' | tag_sanity` = .ERROR ]; then
+ echo "openpkg:release: WARNING: unable to determine OpenPKG release tag"
1>&2
+ tag="UNKNOWN"
+fi
+
+# determine distribution URL
+url=""
+if [ -f "$prefix/etc/openpkg/release" ]; then
+ url=`sed <$prefix/etc/openpkg/release \
+ -e 's;^;X;' \
+ -e 's;^X *URL *= *\([^ ][^ ]*\).*;\1;' \
+ -e '/^X/d'`
+fi
+if [ ".$url" = . ]; then
+ url="ftp://ftp.openpkg.org/*"
+fi
+case ".$url" in
+ */\* )
+ url=`echo ".$url" | sed -e 's;^\.;;' -e 's;/\*$;;'`
+ case "$tag" in
+ CURRENT )
+ url="$url/current/SRC/"
+ ;;
+ CURRENT-* )
+ version=`echo "$tag" | sed -e 's;^CURRENT-;;'`
+ url="$url/current/$version/"
+ ;;
+ *-STABLE )
+ version=`echo "$tag" | sed -e 's;^\(.*\)-STABLE$;\1;'`
+ url="$url/stable/$version/"
+ ;;
+ *-STABLE-* )
+ version=`echo "$tag" | sed -e
's;^\(.*\)-STABLE-\(.*\)$;\1.\2;'`
+ url="$url/stable/$version/"
+ ;;
+ *-SOLID )
+ version=`echo "$tag" | sed -e 's;^\(.*\)-SOLID$;\1;'`
+ url="$url/solid/$version/"
+ ;;
+ *-SOLID-* )
+ version=`echo "$tag" | sed -e
's;^\(.*\)-SOLID-\(.*\)$;\1.\2;'`
+ url="$url/solid/$version/"
+ ;;
+ *-RELEASE )
+ version=`echo "$tag" | sed -e 's;^\(.*\)-RELEASE$;\1;'`
+ url="$url/release/$version/"
+ ;;
+ esac
+ ;;
+esac
+
+# generate output
+echo "X$opt_F" |\
+sed -e 's/^X//' \
+ -e "s;%t;${tag};g" \
+ -e "s;%u;${url};g" \
+ -e 's/\\n/^/g' | tr '^' '\012'
+
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/rpm-config.8
============================================================================
$ cvs diff -u -r1.3 -r1.3.12.1 rpm-config.8
--- openpkg-src/openpkg/rpm-config.8 21 Feb 2004 19:11:34 -0000 1.3
+++ openpkg-src/openpkg/rpm-config.8 22 Jun 2006 07:36:32 -0000 1.3.12.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.3
.\"
.\" Standard preamble:
.\" ========================================================================
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/rpmmacros
============================================================================
$ cvs diff -u -r1.74 -r1.74.2.1 rpmmacros
--- openpkg-src/openpkg/rpmmacros 18 Jun 2006 20:06:23 -0000 1.74
+++ openpkg-src/openpkg/rpmmacros 22 Jun 2006 07:36:32 -0000 1.74.2.1
@@ -26,7 +26,7 @@
##
# the OpenPKG release identification (for the current package or as a
fallback for the bootstrap package)
-%l_openpkg_release(F:) %(echo "%{?release}%{!?release:%(%{l_rpm} -q --qf
'%{release}' openpkg)}" | sed -e 's;^;X;' -e
's;^X\\([0-9][0-9]*\\.[0-9][0-9]*\\).*$;\\1;' -e
's;^X\\([0-9][0-9]*\\.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\\).*$;STABLE;'
-e 's;^X\\([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\\).*$;CURRENT;' -e
's;^X.*$;UNKNOWN;' | awk '{ printf(%{?-F:%{-F*}}%{!?-F:"OpenPKG-%s"}, $0); }')
+%l_openpkg_release(F:) %(%{l_prefix}/libexec/openpkg/release
--release="%{?release}%{!?release:%(%{l_rpm} -q --qf '%{release}' openpkg)}"
%{?-F:-F "%(echo "%{-F*}" | sed -e 's/%%s/%%t/g')"}%{!?-F:-F "OpenPKG-%%t"})
# the OpenPKG OIDs (root is officially registered at IANA)
%l_openpkg_oid 1.3.6.1.4.1.18749
@@ -42,8 +42,8 @@
%l_tag_fmt_opt %(uuid_ns="`%{l_uuid} -v3 ns:OID
%{l_openpkg_oid_tagfmtopt}`"; %{l_uuid} -v3 $uuid_ns '%{?_options}')
%l_tag_fmt_uuid %(%{l_uuid} -v1)
%l_tag_fmt_time %(date '+%%Y%%m%%d%%H%%M%%S')
-%l_tag_fmt_user %(%{l_shtool} echo -e '%u')
-%l_tag_fmt_host %(%{l_shtool} echo -e '%h%d')
+%l_tag_fmt_user %(%{l_shtool} echo -e '%%u')
+%l_tag_fmt_host %(%{l_shtool} echo -e '%%h%%d')
%l_tag_gen %{expand:%(echo '%{l_tag_fmt}' | sed -e
's/<\\([a-zA-Z][_a-zA-Z0-9]*\\)>/%%{l_tag_fmt_\\1}/g')}
%l_tag %(echo "%{l_tag_gen}" | sed -e 's;-;;g')
@@ -281,9 +281,9 @@
%l_whoami %((id -un) 2>/dev/null || (whoami) 2>/dev/null ||
(who am i | cut "-d " -f1) 2>/dev/null || echo $LOGNAME)
# macros for dynamically generating a %files list
-%l_files_defattr '%defattr(-,%{l_musr},%{l_mgrp})'
+%l_files_defattr '%%defattr(-,%{l_musr},%{l_mgrp})'
%l_files_all '%{l_prefix}'
-%l_files_noshared '%not %dir
{%{l_prefix},%{l_prefix}/*,%{l_prefix}/etc/rc.d,%{l_prefix}/man/*}'
+%l_files_noshared '%%not %%dir
{%{l_prefix},%{l_prefix}/*,%{l_prefix}/etc/rc.d,%{l_prefix}/man/*}'
%l_files_std() %l_files_defattr %l_files_all %l_files_noshared
# path to local build root
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/rpmtool.8
============================================================================
$ cvs diff -u -r1.9 -r1.9.12.1 rpmtool.8
--- openpkg-src/openpkg/rpmtool.8 21 Feb 2004 19:11:34 -0000 1.9
+++ openpkg-src/openpkg/rpmtool.8 22 Jun 2006 07:36:32 -0000 1.9.12.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.3
.\"
.\" Standard preamble:
.\" ========================================================================
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/openpkg/uuid.8
============================================================================
$ cvs diff -u -r1.1 -r1.1.14.1 uuid.8
--- openpkg-src/openpkg/uuid.8 21 Feb 2004 19:11:34 -0000 1.1
+++ openpkg-src/openpkg/uuid.8 22 Jun 2006 07:36:33 -0000 1.1.14.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.3
.\"
.\" Standard preamble:
.\" ========================================================================
@@ .
______________________________________________________________________
The OpenPKG Project www.openpkg.org
CVS Repository Commit List [email protected]