hdf5/update_so_version.sh
Todd R bbed69ec6c Accepting request 356581 from home:rudi_m:branches:science
- update to 1.8.16, changes documented here: 
  https://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.16/src/hdf5-1.8.16-RELEASE.txt
- rebase hdf5-ldouble-ppc64le.patch
- remove hdf5-cpp-compilation-errors.patch
- prepare independent so versions and add TODO

!!! see TODO in spec file !!!
I'm not the right persion to split packages and care for deps and baselibs etc.
Don't forward to Factory before this TODO is fixed!

OBS-URL: https://build.opensuse.org/request/show/356581
OBS-URL: https://build.opensuse.org/package/show/science/hdf5?expand=0&rev=17
2016-01-29 10:06:01 +00:00

81 lines
2.0 KiB
Bash

#!/bin/bash
exit_error()
{
echo "$0: $@" >&2
exit 1
}
dbg()
{
echo "dbg: $@" >&2
}
cleanup()
{
rm -f lt_vers.sh sonum_spec.sed sonum_baselibs.sed
rm -f hdf5.spec.tmp baselibs.conf.tmp
}
## We are going to parse these variables from tarball:
# LT_VERS_INTERFACE
# LT_CXX_VERS_INTERFACE
# LT_F_VERS_INTERFACE
# LT_HL_VERS_INTERFACE
# LT_HL_CXX_VERS_INTERFACE
# LT_HL_F_VERS_INTERFACE
# LT_TOOLS_VERS_INTERFACE
cleanup
VER="$(grep -m1 "^Version:" hdf5.spec)" || exit_error "can't grep version"
read x VER <<<$VER
SRC="$(grep -m1 "^Source0:" hdf5.spec)" || exit_error "can't grep source"
read x SRC <<<$SRC
SRC=$(basename "$SRC" | sed "s/%{version}/$VER/")
test -f "$SRC" || exit_error "tarball '$SRC' does not exist"
dbg "inspecting $SRC"
tar --wildcards -x -O -f "$SRC" "*/config/lt_vers.am" \
| tr -d ' \t' \
| grep "^LT_.*INTERFACE=" \
> lt_vers.sh \
|| exit_error "can't grep interface versions"
# we expect exactly 7 variables
. lt_vers.sh || exit_error "can't source lt_vers.sh"
test $(wc -l < lt_vers.sh) -le "7" \
|| exit_error "more than 7 vars found, update this script!"
for infix in "" _CXX _F _HL _HL_CXX _HL_F _TOOLS; do
var="LT${infix}_VERS_INTERFACE"
test "${!var}" -gt 0 || exit_error "$var='${!var}' bad or undefined"
dbg "update $var=${!var}"
def_sonum="sonum${infix}"
# create sed scripts for spec file and baselibs
echo "s/^%define $def_sonum .*/%define $def_sonum ${!var}/" >> sonum_spec.sed
echo "s/@${def_sonum}@/${!var}/g" >> sonum_baselibs.sed
done
# update spec file if needed
sed -f sonum_spec.sed hdf5.spec > hdf5.spec.tmp
if diff -q hdf5.spec.tmp hdf5.spec &>/dev/null; then
dbg "hdf5.spec was up-to-date"
else
mv hdf5.spec.tmp hdf5.spec
echo "hdf5.spec updated" >&2
fi
# update baselibs if needed
sed -f sonum_baselibs.sed baselibs.conf.in > baselibs.conf.tmp
if diff -q baselibs.conf.tmp baselibs.conf &>/dev/null; then
dbg "baselibs.conf was up-to-date"
else
mv baselibs.conf.tmp baselibs.conf
echo "baselibs.conf updated" >&2
fi
cleanup