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:
parent
ff2b7756d5
commit
9bc75b0e9e
@ -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!"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user