build-g11n-spec.sh
author jenda
Tue, 18 Jan 2011 21:04:30 +0100
changeset 57 5365e53bc663
parent 56 bdc1cfd1948c
child 63 c3844fcbdc56
permissions -rwxr-xr-x
build-g11n-spec.sh: return error exit code if the build fails
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
     1
#!/bin/bash
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
     2
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
     3
# Build IM pkgs
53
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
     4
usage="$(basename $0) [-d <topdir>] [-p] [-b] [-n] [spec files...]"
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
     5
usage="$usage\nDefault build type is 'build-only'"
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
     6
usage="$usage\n    -d <topdir>: specify another top dir."
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
     7
usage="$usage\n    -p         : source prep only."
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
     8
usage="$usage\n    -a         : uninstall/build/install."
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
     9
usage="$usage\n    -n         : NOT compress/copy to $HOME/packages\n"
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    10
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    11
# check /opt/jdsbld
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    12
if [ ! -d /opt/jdsbld ];then
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    13
    echo "Need jds build tools in /opt/jdsbld"
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    14
    exit 1
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    15
fi
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    16
50
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    17
date
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    18
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    19
IPS_VENDORVER=0.${L10N_BUILDNUM:-"155"}
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    20
PUBLISHER=${L10N_PUBLISHER:-"l10n-nightly"}
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    21
53
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    22
rm -f /tmp/.build_env.$$
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    23
[ -z "$PKGDEST" ] 	|| echo "export PKGDEST=$PKGDEST" >> /tmp/.build_env.$$
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    24
[ -z "$IPS_VENDORVER" ]	|| echo "export IPS_VENDORVER=$IPS_VENDORVER" >> /tmp/.build_env.$$
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    25
[ -z "$PUBLISHER" ] 	|| echo "export PUBLISHER=$PUBLISHER" >> /tmp/.build_env.$$
54
5c223aaee006 search sources in $DOWNLOADS dir first (if set)
jenda
parents: 53
diff changeset
    26
[ -z "$DOWNLOADS" ] 	|| echo "export DOWNLOADS=$DOWNLOADS" >> /tmp/.build_env.$$
53
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    27
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    28
source /opt/jdsbld/bin/env.sh
53
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    29
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    30
. /tmp/.build_env.$$
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    31
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    32
while getopts pad:n option
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    33
do
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    34
    case $option in
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    35
        p)  FLAGPREP=1;;
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    36
        a)  FLAGALL=1;;
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    37
        d)  TOPDIR="$OPTARG";;
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    38
        n)  NOTCPFLAG=1;;
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    39
        ?)  printf "$usage" ; exit ;;
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    40
    esac
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    41
done
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    42
shift $(expr $OPTIND - 1)
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    43
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    44
if [ X$TOPDIR = X ]; then
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    45
    if echo $0 | egrep -s '^/'; then
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    46
        TOPDIR=$(dirname $0)
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    47
    else
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    48
        TOPDIR="`pwd`/$(dirname $0)"
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    49
    fi
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    50
fi
50
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    51
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    52
MACH="${MACH:-`uname -p`}"
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    53
BLDDIR="$TOPDIR/build.$MACH"
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    54
mkdir -p $BLDDIR/log
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    55
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    56
# set the http and ftp proxies if you are behind a firewall
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    57
# export http_proxy=
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    58
# export ftp_proxy=
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    59
53
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    60
if [ -z $1 ]; then
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    61
    SPECFILES="cmdassist.spec icu.spec idnkit.spec"
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    62
else
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    63
    SPECFILES=$@
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    64
fi
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    65
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    66
if [ X$FLAGPREP = 'X1' ]; then
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    67
    CMD='prep'
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    68
elif [ X$FLAGALL = 'X1' ]; then
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    69
    CMD='build'
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    70
else
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    71
    CMD='build-only'
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    72
fi
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    73
50
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    74
# Explicitly specifying location to enable to use pkgtool (pkgbuild)
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    75
# not yet in jdsbld.
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    76
PKGTOOL="/opt/pkgbuild/bin/pkgtool"
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    77
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    78
# IPS repos are created in $PKGDEST if defined in environment,
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    79
# otherwise in $BLDDIR (build.$MACH).
53
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    80
IPS_REPODIR="${PKGDEST:-$BLDDIR}/repo.spec"
7a8315ebf19d build-g11n-spec.sh: fix $PKGDEST, $IPS_VENDORVER and $PUBLISHER handling - jdsbld/bin/env.sh cleaned them
jenda
parents: 51
diff changeset
    81
SRC_IPS_REPODIR="${PKGDEST:-$BLDDIR}/repoS.spec"
50
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    82
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    83
export PKGBUILD_IPS_SERVER="file://$IPS_REPODIR/"
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    84
export PKGBUILD_SRC_IPS_SERVER="file://$SRC_IPS_REPODIR/"
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    85
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    86
rm -rf "$IPS_REPODIR"
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    87
pkgrepo create --version 3 "$PKGBUILD_IPS_SERVER"
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    88
pkgrepo set -s "$PKGBUILD_IPS_SERVER" publisher/prefix=${PUBLISHER}
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    89
rm -rf "$SRC_IPS_REPODIR"
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    90
pkgrepo create --version 3 "$PKGBUILD_SRC_IPS_SERVER"
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    91
pkgrepo set -s "$PKGBUILD_SRC_IPS_SERVER" publisher/prefix=${PUBLISHER}
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    92
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    93
for spec in $SPECFILES
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    94
do
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    95
    case $spec in
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    96
    cmdassist.spec )
51
c9fb140f0121 partially fails when called with relative $0
asano
parents: 50
diff changeset
    97
        cd $TOPDIR
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
    98
        cp cmdassist/COPYING cmdassist/cmdassist.copyright
50
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
    99
        VERSION=`egrep "^Version:" cmdassist/cmdassist.spec | awk '{print $2}'`
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   100
        mv cmdassist cmdassist-${VERSION}
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   101
        /usr/bin/tar cf - cmdassist-${VERSION} | /usr/bin/gzip > cmdassist-${VERSION}.tar.gz
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   102
        mv cmdassist-${VERSION}.tar.gz cmdassist-${VERSION}/
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   103
        dir=cmdassist-${VERSION}
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   104
        ;;
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   105
    icu.spec )
51
c9fb140f0121 partially fails when called with relative $0
asano
parents: 50
diff changeset
   106
        cd $TOPDIR/icu
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   107
        /usr/bin/tar cf - old_libs | /usr/bin/gzip > old_libs.tar.gz
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   108
        dir=icu
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   109
        ;;
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   110
    idnkit.spec )
51
c9fb140f0121 partially fails when called with relative $0
asano
parents: 50
diff changeset
   111
        cd $TOPDIR/idn
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   112
        /usr/bin/tar cf - sunothers | /usr/bin/gzip > sunothers.tar.gz
18
679faa167aed Updated idnconv from JPNIC to Sun
yukie
parents: 17
diff changeset
   113
        /usr/bin/tar cf - idnconv | /usr/bin/gzip > idnconv.tar.gz
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   114
        dir=idn
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   115
        ;;
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   116
    * )
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   117
        dir=${spec%.spec}
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   118
        ;;
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   119
    esac
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   120
32
b3cb3388af53 Make the JDS inc files officially part of the repository (so that it can be built standalone)
Pavel Heimlich<pavel.heimlich@oracle.com>
parents: 18
diff changeset
   121
    SPECDIRS=$TOPDIR/$dir:$TOPDIR/include
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   122
    PATCHDIRS=$TOPDIR/$dir/patches
50
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
   123
    SRCDIRS=$TOPDIR/$dir
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   124
38
6b6eddc571c7 add --nonotify option to pkgbuild, broken X connection could make build failure
jenda
parents: 32
diff changeset
   125
    PKGUNINSTALLARGS="uninstall-pkgs --nonotify --specdirs=$SPECDIRS"
50
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
   126
    PKGBUILDARGS="$CMD --nonotify --download --topdir=$BLDDIR --specdirs=$SPECDIRS "
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   127
    PKGBUILDARGS="$PKGBUILDARGS --sourcedirs=$SRCDIRS --patchdirs=$PATCHDIRS"
50
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
   128
    PKGBUILDARGS="$PKGBUILDARGS --logdir=$BLDDIR/log"
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
   129
    PKGBUILDARGS="$PKGBUILDARGS --pkgformat=ips"
56
bdc1cfd1948c add --halt-on-errors to pkgtool arguments - broken/uncomplete builds are useless, build process should fail
jenda
parents: 54
diff changeset
   130
    PKGBUILDARGS="$PKGBUILDARGS --halt-on-errors"
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   131
54
5c223aaee006 search sources in $DOWNLOADS dir first (if set)
jenda
parents: 53
diff changeset
   132
    [[ -z "$DOWNLOADS" ]] || PKGBUILDARGS+=" --tar=$DOWNLOADS"
5c223aaee006 search sources in $DOWNLOADS dir first (if set)
jenda
parents: 53
diff changeset
   133
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   134
    if [ $CMD = 'build' ]; then
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   135
        echo "pkgtool $PKGUNINSTALLARGS $spec"
50
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
   136
        $PKGTOOL $PKGUNINSTALLARGS $spec
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   137
    fi
50
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
   138
    echo "$PKGTOOL $PKGBUILDARGS --define \"ipsvendorver $IPS_VENDORVER\" $spec"
57
5365e53bc663 build-g11n-spec.sh: return error exit code if the build fails
jenda
parents: 56
diff changeset
   139
    $PKGTOOL $PKGBUILDARGS --define "ipsvendorver $IPS_VENDORVER" $spec || exit 1
50
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
   140
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
   141
    # tentative workaround: should eliminate the previous mv instead,
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
   142
    # after verifying that directory name does not affect build result
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
   143
    if [ "$spec" = "cmdassist.spec" ]
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
   144
    then
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
   145
        mv "$dir" cmdassist
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
   146
    fi
17
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   147
done
b7d13f9cb698 Added build script for g11n-spec
yukie
parents:
diff changeset
   148
50
ca18a6972cfd IPS transition (g11n-spec part)
asano
parents: 38
diff changeset
   149
date