test/update.sh
author J. Ali Harlow <ali@juiblex.co.uk>
Fri Oct 03 15:05:33 2014 +0100 (2014-10-03)
changeset 453 1fd1d221092d
parent 386 3d3fab314c4e
child 456 bae5adee8c8c
permissions -rwxr-xr-x
Add INTLLIBS back into librazor_la_LIBADD and also into razor.pc

INTLLIBS was originally added into librazor_la_LIBADD (but not razor.pc)
in 611c84a3f4b4538a65d186050608c17adbf17770 and then removed in
236cfc8ecc5c66288e41bf9b72051a3b18326e1c over concerns that it meant
that building static applications (eg., in plover) required a static
version of libintl. Since then, however, the inclusion of gnulib's
getopt has caused the build to fail without INTLLIBS in librazor_la_LIBADD
with messages of the form:

../gl/.libs/libgnu.a(getopt.o): In function `_getopt_internal_r':
/home/ali/wk/razor/vpath/gl/../../working/gl/getopt.c:808: undefined reference to `libintl_gettext'

while building librazor.dll.a

Thus it appears that INTLLIBS really is needed and should go back into
librazor_la_LIBADD (which fixes the build) and should also be in Libs.private
in razor.pc for static builds. This means that a static version of libintl
will be required (eg., as part of mingw64-gettext-static).

Along the way, razor.pc has also been fixed to avoid overlinking
(https://wiki.openmandriva.org/en/Overlinking_issues_in_packaging)
and a missing include directory that caused the razor executable to
fail to build was added.
ali@382
     1
#!/bin/sh
ali@382
     2
fs_check_file()
ali@382
     3
{
ali@382
     4
    if [ ! -e "$RAZOR_ROOT$1" ]; then 
ali@382
     5
	echo $1: Not in filesystem >&2
ali@382
     6
	ls -R "$RAZOR_ROOT" >&2
ali@382
     7
	exit 1
ali@382
     8
    fi
ali@382
     9
}
ali@382
    10
fs_check_file_contents()
ali@382
    11
{
ali@382
    12
    fs_check_file "$1"
ali@382
    13
    if [ `cat "$RAZOR_ROOT$1"` != "$2" ]; then
ali@382
    14
	echo $1: Unexpected contents >&2
ali@382
    15
	cat "$RAZOR_ROOT$1" >&2
ali@382
    16
	exit 1
ali@382
    17
    fi
ali@382
    18
}
ali@382
    19
fs_check_no_file()
ali@382
    20
{
ali@382
    21
    if [ -e "$RAZOR_ROOT$1" ]; then 
ali@382
    22
	echo $1: Still in filesystem >&2
ali@382
    23
	exit 1
ali@382
    24
    fi
ali@382
    25
}
ali@382
    26
check_file()
ali@382
    27
{
ali@382
    28
    ../src/razor list-files | grep -x "$1" > /dev/null
ali@382
    29
    if [ $? -ne 0 ]; then
ali@382
    30
	echo $1: Not in database >&2
ali@382
    31
	../src/razor list-files >&2
ali@382
    32
	exit 1
ali@382
    33
    fi
ali@382
    34
    ../src/razor list-files "$1" | grep -x "$1" > /dev/null
ali@382
    35
    if [ $? -ne 0 ]; then
ali@382
    36
	echo $1: Not seen by patterned list >&2
ali@382
    37
	../src/razor list-files "$1" >&2
ali@382
    38
	exit 1
ali@382
    39
    fi
ali@382
    40
    pkgs=`../src/razor list-file-packages "$1"`
ali@382
    41
    if [ -z "$pkgs" ]; then
ali@382
    42
	echo $1: Not owned by any package >&2
ali@382
    43
	../src/razor list-file-packages "$1"
ali@382
    44
	exit 1
ali@382
    45
    fi
ali@382
    46
    for nevra in "$pkgs"; do
ali@382
    47
	name=`echo $nevra | sed 's/\-.*$//'`
ali@382
    48
	../src/razor list-package-files "$name" | grep -x "$1" > /dev/null
ali@382
    49
	if [ $? -ne 0 ]; then
ali@382
    50
	    echo $1: Not in database for package $name >&2
ali@382
    51
	    ../src/razor list-package-files "$name"
ali@382
    52
	    exit 1
ali@382
    53
	fi
ali@382
    54
    done
ali@382
    55
    fs_check_file $1
ali@382
    56
}
ali@382
    57
check_no_file()
ali@382
    58
{
ali@382
    59
    ../src/razor list-files | grep -x "$1" > /dev/null
ali@382
    60
    if [ $? -eq 0 ]; then
ali@382
    61
	echo $1: Still in database >&2
ali@382
    62
	exit 1
ali@382
    63
    fi
ali@382
    64
    fs_check_no_file $1
ali@382
    65
}
ali@389
    66
check_install_count()
ali@389
    67
{
ali@389
    68
    count=`../src/razor list "$1" | wc -l`
ali@389
    69
    if [ "$count" != "$2" ]; then
ali@389
    70
	echo $1: Install count $count, should be $2 >&2
ali@389
    71
	exit 1
ali@389
    72
    fi
ali@389
    73
}
ali@382
    74
set_repository()
ali@382
    75
{
ali@382
    76
    cp $1/repodata/primary.xml.gz $1/repodata/filelists.xml.gz .
ali@382
    77
    rm -rf rpms
ali@382
    78
    ln -s $1/rpms .
ali@382
    79
}
ali@382
    80
export RAZOR_ROOT=`mktemp -dt` || exit 1
ali@382
    81
../src/razor init || exit 1
ali@382
    82
export YUM_URL="file://localhost/`pwd`"
ali@382
    83
set_repository base
ali@382
    84
../src/razor import-yum || exit 1
ali@382
    85
../src/razor install --relocate /usr=/opt zip || exit 1
ali@382
    86
fs_check_file_contents /opt/bin/zip zip-1-1
ali@382
    87
fs_check_file /opt/var/lib/zip/data.zap
ali@382
    88
trap "set_repository base" 0
ali@382
    89
set_repository updates
ali@382
    90
../src/razor import-yum || exit 1
ali@382
    91
../src/razor update --relocate /usr=/opt || exit 1
ali@382
    92
check_file /opt/bin/zip
ali@382
    93
fs_check_file_contents /opt/bin/zip zip-2-1
ali@382
    94
fs_check_file /opt/var/lib/zip/data.zap
ali@382
    95
../src/razor remove zip || exit 1
ali@382
    96
fs_check_no_file /opt/var/lib/zip/data.zap
ali@386
    97
set_repository base
ali@386
    98
../src/razor import-yum || exit 1
ali@386
    99
../src/razor install --relocate /usr=/opt zip || exit 1
ali@386
   100
../src/razor install --relocate /usr=/opt zip || exit 1
ali@389
   101
check_install_count zip 2
ali@386
   102
set_repository updates
ali@386
   103
../src/razor import-yum || exit 1
ali@386
   104
../src/razor update --relocate /usr=/opt || exit 1
ali@386
   105
check_file /opt/bin/zip
ali@386
   106
fs_check_file_contents /opt/bin/zip zip-2-1
ali@386
   107
fs_check_file /opt/var/lib/zip/data.zap
ali@389
   108
check_install_count zip 1
ali@386
   109
../src/razor remove zip || exit 1
ali@386
   110
fs_check_no_file /opt/var/lib/zip/data.zap
ali@389
   111
set_repository base
ali@389
   112
../src/razor import-yum || exit 1
ali@389
   113
../src/razor install --relocate /usr=/opt zip || exit 1
ali@389
   114
../src/razor update --relocate /usr=/opt zip || exit 1
ali@389
   115
check_install_count zip 1
ali@382
   116
rm -rf "$RAZOR_ROOT"