Add vendor and packager details to the releasenotes. This was something

I think was sorely missing before and something that's standard on Solaris.

Make it possible to automatically have modified configure_args put into
relnotes. It's a bit of a hack where instead of assigning the value
directly to the variable we go through a function. Now the nasty bit
is that we can't add relnotes.txt to META_CLEAN since generic_pack
does clean meta which would wipe out changes from build stage.
Instead we add a hack to the distclean method in clean that removes this
file.
I may eventually have to create a generic_clean method that can
be called from pr. platform specific clean function to avoid this kind
of layer violation.

Fix the format of the spec version field again.
I just realised a fairly obvious flaw with the existing system where
increasing the pkgrev from single digits to multiple digits didn't increase
the version but actually decreased it.
Ie. 1.19-9 becomes 11990000 and 1.19-10 becomes 11910000 - ooops!
Instead the pkgrev should be right justified, so instead of 11910000 we'd
have 11900010.
I also eliminated the need for printf in fix_ver, something I shou've
done from the beginning when I realised that Irix 5.3 printf was not up to
the task (only supports %s).
This commit is contained in:
Tom G. Christensen 2004-10-17 12:21:07 +00:00
parent ff2b7756d5
commit 9bc75b0e9e

View File

@ -43,6 +43,10 @@ usescripts=1 # Don't add ops even if they're available
ignore_unpackaged_files=0 # default to check for unpackaged files in the stage area ignore_unpackaged_files=0 # default to check for unpackaged files in the stage area
include_source=0 # Include source[x] in the opt.src subsystem and not just patch[x] include_source=0 # Include source[x] in the opt.src subsystem and not just patch[x]
# vendor & contact information to be added in relnotes
pkgedby="Tom G. Christensen"
email="irixpkg@jupiterrise.com"
# ver_width controls the width of the pkgversion numbers created # ver_width controls the width of the pkgversion numbers created
# do *not* change this blindly # do *not* change this blindly
ver_width=8 ver_width=8
@ -86,13 +90,21 @@ indent24=" "
# fix_ver(): "normalize" a version-pkgver pair # fix_ver(): "normalize" a version-pkgver pair
# params: $1=version # params: $1=version
# Removes any '.' and '-' characters from a version string # Removes any '.' and '-' characters from a version string
# It also extends the width to $ver_width by padding with zeroes on the # It also extends the width to $ver_width by moving the package revision
# right side # to the far right and padding with zeroes inbetween.
fix_ver() fix_ver()
{ {
local ver=`echo $1 | $SED -e 's/\.//g' -e 's/-//g' -e 's/[a-zA-Z]//g'` local version=$1
let "numpad = $ver_width - ${#ver}" local rev=${version##*-}
ver="$($PRINTF "%s%.0${numpad}u" $ver 0)" local ver=$(echo ${version%%-*} | $SED -e 's/\.//g' -e 's/-//g' -e 's/[a-zA-Z]//g')
let "numpad = $ver_width - ${#ver} - ${#rev}"
[ $numpad -lt 0 ] && error $E_BAD_VERSION fix_ver
while [ $numpad -gt 0 ]
do
ver="${ver}0"
let "numpad = $numpad - 1"
done
ver="${ver}${rev}"
echo $ver echo $ver
} }
# spec_header() # spec_header()
@ -754,6 +766,36 @@ auto_src()
fi fi
} }
# rel_conf_sub(): Put configure_args into the relnotes template
# params: none
# The set_configure_args command will call this function to
# substitute %%CONFIGURE%% in the relnotes template at the
# time of expansion.
rel_conf_sub()
{
for i in relnotes relnotes.${_os}
do
[ -r ${metadir}/${i} ] && rn=$i
done
cf="$(_upls $configure_args)"
full_cf="./configure $cf"
if [ -r ${metadir}/${rn} ]; then
$SED -e "s;%%CONFIGURE%%;$full_cf;g" \
${metadir}/${rn} > ${metadir}/${rn}.txt
fi
}
# set_configure_args(): Stuff new arguments into configure_args
# params: $1 = configure arguments
# If you want non-default configure_args put into relnotes
# automatically, then use this function to set them instead
# of overriding the configure_args variable directly.
set_configure_args()
{
configure_args="$1"
rel_conf_sub
}
# auto_rel(): Fix up and add releasenotes to stagedir # auto_rel(): Fix up and add releasenotes to stagedir
# params: none # params: none
# This will make some substitutions on a release note template # This will make some substitutions on a release note template
@ -763,7 +805,7 @@ auto_rel()
local i local i
local rn local rn
for i in relnotes relnotes.${_os}; for i in relnotes relnotes.${_os} relnotes.txt relnotes.${_os}.txt;
do do
[ -r ${metadir}/${i} ] && rn=$i [ -r ${metadir}/${i} ] && rn=$i
done done
@ -773,13 +815,18 @@ auto_rel()
local fullcf="./configure $cf" local fullcf="./configure $cf"
local compiler_temp="$(gcc --version 2>&1 | $SED -n '1,1p')" local compiler_temp="$(gcc --version 2>&1 | $SED -n '1,1p')"
local compiler="gcc ${compiler_temp##* }" local compiler="gcc ${compiler_temp##* }"
local pkgnam_temp=$(grep 'pkgname=' $metadir/pkgdef) local pkgnam_temp=$($GREP 'pkgname=' $metadir/pkgdef)
local pkgnam=$(_upls ${pkgnam_temp#pkgname=*}) local pkgnam=$(_upls ${pkgnam_temp#pkgname=*})
local vendor_temp=$($GREP 'pkgvendor=' $metadir/pkgdef)
local vendor=$(_upls ${vendor_temp#pkgvendor=*})
local packager="${pkgedby} <${email}>"
$MKDIR -p $relmetadir $MKDIR -p $relmetadir
$SED -e "s;%%PKGNAME%%;${pkgnam};g" \ $SED -e "s;%%PKGNAME%%;${pkgnam};g" \
-e "s;%%SOURCE_AND_VER%%;${topdir}-${version};g" \ -e "s;%%SOURCE_AND_VER%%;${topdir}-${version};g" \
-e "s;%%CONFIGURE%%;${fullcf};g" \ -e "s;%%CONFIGURE%%;${fullcf};g" \
-e "s;%%COMPILER%%;${compiler};g" \ -e "s;%%COMPILER%%;${compiler};g" \
-e "s;%%VENDOR%%;${vendor};g" \
-e "s;%%PKGEDBY%%;${packager};g" \
${metadir}/${rn} > "$relmetadir/${topdir}.txt" ${metadir}/${rn} > "$relmetadir/${topdir}.txt"
else else
echo "auto_rel: No release notes found!" echo "auto_rel: No release notes found!"