test/named-root.sh
author J. Ali Harlow <ali@juiblex.co.uk>
Fri Oct 03 15:05:33 2014 +0100 (2014-10-03)
changeset 453 1fd1d221092d
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.
     1 #!/bin/sh
     2 check_file()
     3 {
     4     ../src/razor list-files | grep -x "$1" > /dev/null
     5     if [ $? -ne 0 ]; then
     6 	echo $1: Not in database >&2
     7 	../src/razor list-files >&2
     8 	exit 1
     9     fi
    10     ../src/razor list-files c: | grep -x "$1" > /dev/null
    11     if [ $? -ne 0 ]; then
    12 	echo $1: Not seen by named root list >&2
    13 	../src/razor list-files c: >&2
    14 	exit 1
    15     fi
    16     ../src/razor list-files "$1" | grep -x "$1" > /dev/null
    17     if [ $? -ne 0 ]; then
    18 	echo $1: Not seen by patterned list >&2
    19 	../src/razor list-files "$1" >&2
    20 	exit 1
    21     fi
    22     pkgs=`../src/razor list-file-packages "$1"`
    23     if [ -z "$pkgs" ]; then
    24 	echo $1: Not owned by any package >&2
    25 	../src/razor list-file-packages "$1"
    26 	exit 1
    27     fi
    28     for nevra in "$pkgs"; do
    29 	name=`echo $nevra | sed 's/\-.*$//'`
    30 	../src/razor list-package-files "$name" | grep -x "$1" > /dev/null
    31 	if [ $? -ne 0 ]; then
    32 	    echo $1: Not in database for package $name >&2
    33 	    ../src/razor list-package-files "$name"
    34 	    exit 1
    35 	fi
    36     done
    37     if [ ! -e "$RAZOR_ROOT$1" ]; then 
    38 	echo $1: Not in filesystem >&2
    39 	exit 1
    40     fi
    41 }
    42 tmpdir=`mktemp -dt` || exit 1
    43 export RAZOR_ROOT="$tmpdir/x-"
    44 mkdir -p "$tmpdir/x-/var/lib" "$tmpdir/x-c:"
    45 export RAZOR_NO_ROOT_NAME_CHECKS=1
    46 ../src/razor init || exit 1
    47 export YUM_URL="file://localhost/`pwd`"
    48 ../src/razor import-yum || exit 1
    49 ../src/razor install --relocate /usr=c:/test zap || exit 1
    50 ../src/razor install --relocate /usr=c:/test zip || exit 1
    51 check_file c:/test/bin/zap
    52 check_file c:/test/bin/zip
    53 rm -rf "$tmpdir"