cbe-install
author laca
Mon, 16 Jun 2008 10:44:47 +0000
changeset 16 517d4d668260
parent 15 e2a20c238873
child 19 8c90ed1135f5
permissions -rwxr-xr-x
2008-06-16 Laszlo (Laca) Peter <[email protected]> * CBEgnused.spec: call aclocal-1.10 instead of aclocal because this package is installed before CBEenv, which creates the aclocal symlink * cbe-install: delete references to external dist, we don't need that anymore; only download the pkgbuild sources if binary packages are not found.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
     1
#!/bin/bash
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
     2
#
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
     3
# Script for setting up the Desktop Build Environment on Solaris
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
     4
#
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
     5
# CDDL HEADER START
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
     6
#
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
     7
# The contents of this file are subject to the terms of the
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
     8
# Common Development and Distribution License, Version 1.0 only
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
     9
# (the "License").  You may not use this file except in compliance
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    10
# with the License.
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    11
#
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    12
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    13
# or http://www.opensolaris.org/os/licensing.
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    14
# See the License for the specific language governing permissions
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    15
# and limitations under the License.
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    16
#
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    17
# When distributing Covered Code, include this CDDL HEADER in each
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    18
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    19
# If applicable, add the following below this CDDL HEADER, with the
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    20
# fields enclosed by brackets "[]" replaced with your own identifying
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    21
# information: Portions Copyright [yyyy] [name of copyright owner]
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    22
#
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    23
# CDDL HEADER END
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    24
#
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    25
#
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    26
# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    27
# Use is subject to license terms.
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    28
#
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    29
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    30
IFS=' 	
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    31
'
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    32
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    33
# this is listed separately because we are using the spec file
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    34
# included in the pkgbuild tarball
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    35
PKGBUILD_VERSION=1.3.0
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    36
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    37
# Modules needed for building GNOME:
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    38
GNOME_MODULES="ant m4 autoconf automake libtool bison coreutils diff flex gettext make subversion"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    39
# Modules needed for building KDE:
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    40
KDE_MODULES="ant m4 autoconf automake libtool bison coreutils diff flex gettext subversion gnuawk gnused cmake make yasm"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    41
# Not needed for either GNOME or KDE, but useful to have:
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    42
OPT_MODULES="rsync cvs"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    43
# SFE has the same deps as GNOME
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    44
SFE_MODULES=$GNOME_MODULES
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    45
install_kde=no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    46
install_gnome=no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    47
install_sfe=no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    48
install_opt=no
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    49
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    50
# Obsolete packages to be pkgrm'd.  Mostly renamed packages.
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    51
OLD_PKGS="JDSautomake JDSautoconf JDSlibtool JDSm4 JDSgettext JDSfileutils 
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    52
          JDSmake JDSpatch CBEpatch JDSflex JDScvs SUNWpkgbuild"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    53
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    54
# default log file.  Changed to /tmp/desktop-cbe.install.log.$$ if the user
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    55
# installing is not root
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    56
LOGFILE=/var/sadm/install/logs/desktop-cbe.install.log.$$
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    57
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    58
# packages required for building things.  cbe-install will check if they
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    59
# are installed and install them if not.
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    60
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    61
# Solaris SVr4 packages:
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    62
CBE_SVR4_DEPENDENCIES="SUNWarc SUNWgpch SUNWhea SUNWsfwhea SUNWwgetr
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    63
                       SUNWwgetu SUNWgtar SUNWxcu4 SUNWsprot SUNWxwinc
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    64
                       SUNWxorg-headers SUNWbtool SUNWlibmr SUNWlibm"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    65
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    66
# OpenSolaris pkg(5) packages:
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    67
CBE_PKG_DEPENDENCIES="SUNWgpch SUNWhea SUNWsfwhea SUNWwget SUNWgtar
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    68
                       SUNWxcu4 SUNWsprot SUNWxwinc SUNWxorg-headers
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    69
                       SUNWbtool SUNWlibm"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    70
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    71
# alternatives (SUNW version of tools preferred to CBE version)
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    72
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    73
# by detault install alternatives when available
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    74
install_alt=yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    75
# by default, install alternatives without asking
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    76
ask_alt=no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    77
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    78
ALT_make=SUNWgmake
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    79
ALT_m4=SUNWgm4
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    80
ALT_autoconf=SUNWaconf
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    81
ALT_automake="SUNWgnu-automake-110 SUNWgnu-automake-19"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    82
ALT_libtool=SUNWlibtool
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    83
ALT_bison=SUNWbison
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    84
ALT_coreutils=SUNWgnu-coreutils
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    85
ALT_diff=SUNWgnu-diffutils
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    86
ALT_flex=SUNWflexlex
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    87
# not yet available
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    88
#ALT_gettext=SUNWgnu-gettext
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    89
ALT_subversion=SUNWsvn
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    90
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    91
# default cbe install location
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
    92
cbe_prefix=/opt/dtbld
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    93
# this should be set to a reasonable value in install_pkgbuild()
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    94
pkgbuild_topdir=/fix/me
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    95
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    96
# default value for the "who is the build user" question
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    97
logname=${LOGNAME:-`logname`}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    98
if [ -x /usr/xpg4/bin/id ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
    99
    uid=`/usr/xpg4/bin/id -u`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   100
    username=`/usr/xpg4/bin/id -un`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   101
else
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   102
    uid=`/bin/id | cut -f2 -d= | cut -f1 -d'('`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   103
    username=`/bin/id |cut -f2 -d'(' | cut -f1 -d')'`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   104
fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   105
export HOME="$(eval cd ~$username; pwd)"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   106
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   107
always_uninstall_existing=
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   108
always_skip_existing=
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   109
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   110
# write a message to the log file
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   111
# not visible to the user
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   112
log () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   113
    for msg in "${@}"; do
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   114
	echo "`date`: $msg" >> $LOGFILE
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   115
    done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   116
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   117
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   118
# print a message to the user and also write it to the log file
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   119
msg () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   120
    for msg in "${@}"; do
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   121
	echo $msg
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   122
	echo "`date`: $msg" >> $LOGFILE
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   123
    done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   124
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   125
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   126
# print a message to the user and also write it to the log file
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   127
msg_err () {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   128
    for msg in "${@}"; do
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   129
	echo ERROR: $msg 1>&2
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   130
	echo "`date`: ERROR: $msg" >> $LOGFILE
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   131
    done
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   132
}
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   133
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   134
# clean up if installation is aborted
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   135
tempdirs=
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   136
remove_tempdirs () {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   137
    IFS=:
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   138
    for tdir in $tempdirs; do
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   139
	case "$tdir" in
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   140
	    /tmp/* )
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   141
                cd /tmp
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   142
		rm -rf "$tdir"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   143
		;;
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   144
	esac
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   145
    done
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   146
}
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   147
trap remove_tempdirs QUIT EXIT
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   148
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   149
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   150
# alternate root directory
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   151
rootdir=/
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   152
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   153
process_cl () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   154
    while [ $# != 0 ]; do
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   155
	case "$1" in
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   156
	    -R )
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   157
		shift
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   158
		if [ $# == 0 ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   159
		    echo "Option -R requires an argument."
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   160
		    exit 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   161
		fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   162
		rootdir=$1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   163
		case "$rootdir" in
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   164
		    /* )
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   165
			;;
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   166
		    * )
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   167
			echo "The argument to -R must be an absolute path name"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   168
			exit 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   169
		esac
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   170
		;;
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   171
	    -h|--help)
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   172
		echo "Usage: $0 [options]"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   173
		echo "options:"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   174
		echo "   -h, --help        print this usage info"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   175
		echo "   -R rootdir        install CBE packages in alternate root directory rootdir"
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   176
		echo "   -k, --kde         install the packages needed for building KDE"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   177
		echo "   -g, --gnome       install the packages needed for building GNOME"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   178
		echo "   -s, --sfe         install the packages needed for building GNOME"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   179
		echo "   -o, --optional    install the optional packages"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   180
		echo "   --ask-alt         ask for confirmation before installing alternative"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   181
                echo "                     tools ([Open]Solaris tools instead of CBE tools)"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   182
		echo "   --no-alt          do not install alternatives, only CBE tools"
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   183
		exit 0
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   184
		;;
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   185
	    --ask-alt)
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   186
		ask_alt=yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   187
		;;
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   188
	    --no-alt)
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   189
		install_alt=no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   190
		;;
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   191
	    -k|--kde)
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   192
		install_kde=yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   193
		;;
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   194
	    -g|--gnome)
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   195
		install_gnome=yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   196
		;;
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   197
	    -s|--sfe)
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   198
		install_gnome=yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   199
		;;
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   200
	    -o|--optional)
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   201
		install_opt=yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   202
		;;
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   203
	    *)
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   204
		echo "Unknown option: $1"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   205
		exit 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   206
		;;
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   207
	esac
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   208
	shift
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   209
    done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   210
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   211
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   212
# check the type and name of the compiler
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   213
# set CXX to match CC
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   214
identify_compiler () {
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   215
    id_CC=$1
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   216
    id_CC_name=unknown
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   217
    id_CC_release=
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   218
    id_CC_version=
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   219
    id_CC_rev=
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   220
    id_CC_label=unknown
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   221
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   222
    id_CC_dir=$(dirname $id_CC)
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   223
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   224
    # check if it's gcc
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   225
    cc_version=$($id_CC --version 2>&1)
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   226
    echo "$cc_version" | grep 'gcc (GCC)' > /dev/null && {
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   227
	id_CC_name='GNU gcc'
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   228
	id_CC_version=$(echo "$cc_version" | grep 'gcc (GCC)' | cut -f3 -d' ')
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   229
	id_CC_release=$(echo $id_CC_version | cut -f1 -d.)
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   230
	id_CC_label=gcc${id_CC_release}
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   231
	CXX="$id_CC_dir/g++"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   232
	if [ ! -x "$CXX" ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   233
	    msg "WARNING: $CXX not found"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   234
	fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   235
	log "$id_CC is $id_CC_name release $id_CC_release"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   236
	return
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   237
    }
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   238
    cc_version=$($id_CC -V 2>&1)
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   239
    echo "$cc_version" | grep '^cc: Sun ' > /dev/null && {
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   240
	id_CC_name='Sun Studio'
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   241
	id_CC_version=$(echo "$cc_version" | grep '^cc: Sun ' | sed -e 's/^cc: Sun.* C \([0-9][0-9.]*\) .*/\1/')
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   242
	id_CC_rev=$(echo "$cc_version" | grep '^cc: Sun ' | sed -e 's/^cc: Sun.* C [0-9][0-9.]* \(.\)*/\1/')
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   243
	id_CC_rev=$(echo "$id_CC_rev" | grep '^cc: Sun ' | sed -e 's/SunOS_[^ ]* //')
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   244
	if [ "x$id_CC_version" = x5.7 ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   245
	    id_CC_label='ss10'
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   246
	    id_CC_release='Vulcan'
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   247
	    id_CC_name='Sun Studio 10'
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   248
	elif [ "x$id_CC_version" = x5.8 ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   249
	    id_CC_label='ss11'
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   250
	    id_CC_release='Venus'
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   251
	    id_CC_name='Sun Studio 11'
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   252
	elif [ "x$id_CC_version" = x5.9 ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   253
	    id_CC_label='ss12'
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   254
	    id_CC_release='Mars'	    
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   255
	    id_CC_name='Sun Studio 12'
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   256
	elif [ "x$id_CC_version" = x5.10 ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   257
	    id_CC_label='sexp'
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   258
	    id_CC_release='Ceres'
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   259
	    id_CC_name='Sun Studio Express'
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   260
	else
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   261
	    id_CC_label="Studio_$id_CC_version"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   262
	    id_CC_release="$id_CC_version"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   263
	fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   264
	CXX="$id_CC_dir/CC"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   265
	if [ ! -x "$CXX" ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   266
	    msg "WARNING: $CXX not found"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   267
	fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   268
	log "$id_CC is $id_CC_name release $id_CC_release"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   269
	return
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   270
    }
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   271
    msg "WARNING: could not identify $id_CC = $cc_version"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   272
}
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   273
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   274
# create a build environent config file for the given build compiler
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   275
make_env () {
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   276
    env_compiler=$1
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   277
    envdir=$tempdir/env
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   278
    logrun mkdir -p $envdir
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   279
    identify_compiler $env_compiler
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   280
    if [ "$id_CC_name" = unknown ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   281
	return
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   282
    fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   283
    # identify_compiler sets CXX to match CC
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   284
    # also id_CC_name, id_CC_label, id_CC_version, id_CC_release, id_CC_rev
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   285
    env_file="$envdir/$id_CC_label"
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   286
    env_nr=1
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   287
    while test -f $env_file; do
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   288
	env_file="$envdir/${id_CC_label}.${env_nr}"
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   289
	env_nr=$(($env_nr + 1))
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   290
    done
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   291
    echo '# Build environment config file for the Desktop CBE' > "$env_file"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   292
    echo "CC_name='$id_CC_name'"       >> "$env_file"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   293
    echo "CC_version='$id_CC_version'" >> "$env_file"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   294
    echo "CC_release='$id_CC_release'" >> "$env_file"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   295
    echo "CC_rev='$id_CC_rev'"         >> "$env_file"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   296
    echo "cc_dir='$id_CC_dir'"         >> "$env_file"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   297
    echo "CC='$env_compiler'"          >> "$env_file"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   298
    echo "CXX='$CXX'"                  >> "$env_file"
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   299
}
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   300
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   301
# look for compilers in known locations
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   302
find_compilers () {
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   303
    compiler_found=no
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   304
    # FIXME: if CC = gcc, set CFLAGS to -std=c99
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   305
    msg "Locating compilers..."
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   306
    arch=$(uname -p)
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   307
    known_compilers="/sgnome/onnv-tools/$arch/SS12/bin/cc /sgnome/onnv-tools/$arch/SS11/bin/cc /ws/onnv-tools/SUNWspro/SS12/bin/cc /ws/onnv-tools/SUNWspro/SS11/bin/cc /opt/SUNWspro/bin/cc /usr/bin/cc /opt/SunStudioExpress/bin/cc /usr/bin/gcc /usr/sfw/bin/gcc /usr/gnu/bin/gcc"
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   308
    if [ "x$CC" != x ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   309
	if [ ! -x $CC ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   310
	    unset CC
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   311
	else
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   312
	    echo " $known_compilers " | grep " $CC " > /dev/null || \
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   313
		known_compilers="$CC $known_compilers"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   314
	fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   315
    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   316
    for compiler in $known_compilers; do
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   317
	if [ -x $compiler -a ! -d $compiler ]; then
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   318
	    make_env $compiler
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   319
	    compiler_found=yes
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   320
	fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   321
    done
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   322
}
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   323
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   324
# download pkgbuild from sourceforge using wget
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   325
download_pkgbuild () {
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   326
    mkdir -p $tardir
13
1669a54e47a8 2008-06-16 Laszlo (Laca) Peter <[email protected]>
laca
parents: 12
diff changeset
   327
    /usr/sfw/bin/wget -nd -nH --tries=1 -T 60 -O $tardir/pkgbuild-${PKGBUILD_VERSION}.tar.bz2 http://internode.dl.sourceforge.net/sourceforge/pkgbuild/pkgbuild-${PKGBUILD_VERSION}.tar.bz2 || {
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   328
	msg "Failed to download pkgbuild, cannot continue."
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   329
	exit 1
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   330
    }
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   331
}
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   332
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   333
ask_compiler () {
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   334
    ask 'Enter the path to the C compiler' ans_compiler
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   335
    if [ ! -x $ans_compiler ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   336
	msg "Invalid answer: $ans_compiler is not an executable"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   337
	return 1
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   338
    fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   339
    if [ -d $ans_compiler ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   340
	msg "Invalid answer: $ans_compiler is a directory"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   341
	return 1
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   342
    fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   343
    identify_compiler "$ans_compiler"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   344
    if [ x$ans_compiler == xunknown ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   345
	msg "Unknown compiler: $ans_compiler"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   346
	return 1
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   347
    fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   348
    compiler_found=yes
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   349
    make_env "$ans_compiler"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   350
    return 0
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   351
}
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   352
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   353
# ask the user for additional compiler locations
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   354
ask_compilers () {
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   355
    first=$1
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   356
    ans_more_compilers=yes
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   357
    while [ $ans_more_compilers = yes ]; do
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   358
	if [ "x$first" = xfirst ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   359
	    msg "You need a C compiler in order to use the Desktop CBE"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   360
	    ask_compiler && first=no
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   361
	else
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   362
	    ask_yes_no 'Would you like to configure more compilers for use with the Desktop CBE?' ans_more_compilers no
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   363
	    if [ $ans_more_compilers = yes ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   364
		ask_compiler
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   365
	    fi
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   366
	fi
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   367
    done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   368
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   369
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   370
# print the details of a compiler specified by its env config file
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   371
display_compiler () {
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   372
    . $1
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   373
    echo "$2 - $CC_name $CC_version ($CC_release) in $cc_dir"
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   374
}
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   375
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   376
# select the default compiler configuration
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   377
select_default_compiler () {
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   378
    if [ $compiler_found = yes ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   379
	echo
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   380
	echo "The following compilers were found on your system:"
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   381
	i=1
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   382
	for env in $envdir/*; do
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   383
	    display_compiler $env $i
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   384
	    eval env_$i="$env"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   385
	    i=$((i + 1))
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   386
	done
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   387
	i=$(($i - 1))
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   388
	if [ "x$1" != xdont_ask ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   389
	    ask_compilers
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   390
	    # don't ask again if the user whats to configure more compilers
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   391
	    select_default_compiler dont_ask
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   392
	    return
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   393
	fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   394
    else
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   395
	echo "No compilers were found on your system."
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   396
	if [ $PKG_SYSTEM = pkg ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   397
	    ask_yes_no "Would you like the to install compilers now?" \
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   398
		ans_install_compiler yes
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   399
	    if [ x$ans_install_compiler = yes ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   400
		install_compilers_pkg && {
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   401
		    find_compilers
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   402
	            # don't ask again if the user whats
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   403
		    # to configure more compilers
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   404
		    select_default_compiler dont_ask
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   405
		    return
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   406
		}
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   407
	    fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   408
	fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   409
	ask_compilers first
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   410
	select_default_compiler dont_ask
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   411
	return
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   412
    fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   413
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   414
    if [ $i = 1 ]; then
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   415
	# there's only one compiler no need to ask which one's the default
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   416
	ans_default_compiler=1
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   417
    else
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   418
	ans_default_compiler=9999
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   419
	while [ $ans_default_compiler -gt $i ]; do
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   420
	    ask 'Please select the default compiler' ans_default_compiler $i
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   421
	    is_number "$ans_default_compiler" || {
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   422
		echo "Please enter a number from 1 to $i"
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   423
		ans_default_compiler=9999
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   424
	    }
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   425
	done
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   426
    fi
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   427
    eval default_env="\$env_$ans_default_compiler"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   428
    if [ ! -f $default_env ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   429
	msg "Internal error in cbe-install, please report to desktop-discuss"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   430
    fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   431
    . $default_env
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   432
    export CC
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   433
    export CXX
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   434
}
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   435
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   436
# verify that the running system is suitable for the Desktop CBE
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   437
# and set up some variables
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   438
init () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   439
    myos=`uname -s`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   440
    if [ "x$myos" != xSunOS ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   441
	echo "Run this script on a Solaris system."
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   442
	exit 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   443
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   444
    
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   445
    umask 0022
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   446
    the_cpu=`uname -p`
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   447
    if [ "x$the_cpu" != xsparc ]; then
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   448
	the_cpu=x86
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   449
    fi
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   450
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   451
    myos_rel=`uname -r`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   452
    if [ "x$myos_rel" = "x5.10" -o "x$myos_rel" = "x5.10.1" -o "x$myos_rel" = "x5.11" ]; then
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   453
	:
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   454
    else
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   455
	echo "Solaris 10, Solaris Nevada or OpenSolaris required."
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   456
	exit 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   457
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   458
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   459
    if [ "x$myos_rel" = "x5.10" ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   460
	solaris_pkg_dir=/cdrom/cdrom0/Solaris_10/Product
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   461
    elif [ "x$myos_rel" = "x5.11" ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   462
	solaris_pkg_dir=/cdrom/cdrom0/Solaris_11/Product
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   463
    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   464
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   465
    mydir=$(cd $(dirname $0); pwd);
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   466
    tardir=${mydir}/tarballs
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   467
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   468
    CBE_VERSION=`cat $mydir/CBE_VERSION`
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   469
    echo "Desktop Common Build Environment (CBE) Installer version $CBE_VERSION"
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   470
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   471
    my_id=`/usr/xpg4/bin/id -u`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   472
    if [ "x$my_id" != x0 ]; then
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   473
	prof_sw_inst=`/bin/profiles | nl -s: | grep 'Software Installation' | cut -f1 -d:`
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   474
	prof_pri_adm=`/bin/profiles | nl -s: | grep 'Primary Administrator' | cut -f1 -d:`
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   475
	prof_basic_usr=`/bin/profiles | nl -s: | grep 'Basic Solaris User' | cut -f1 -d:`
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   476
	if [ "x$prof_sw_inst" = x -a "x$prof_pri_adm" = x ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   477
	    echo 'Run this script as root or as a user with the "Software Installation"'
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   478
	    echo 'or "Primary Administrator" profile.'
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   479
	    test -x /usr/bin/users-admin && {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   480
		echo
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   481
		echo 'You can also use the users-admin program (System -> Administration ->'
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   482
		echo 'Users and Groups in the GNOME menu) to assign profiles.'
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   483
		echo
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   484
	    }
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   485
	    echo 'See the user_attr(4) and profiles(1) manual pages for further details'
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   486
	    exit 1
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   487
	else
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   488
	    if [ "x$prof_basic_usr" != x ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   489
		if [ "x$prof_sw_inst" != x ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   490
		    if [ $prof_sw_inst -gt $prof_basic_usr ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   491
			echo 'The "Software Installation" profile in /etc/user_attr should appear'
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   492
			echo 'before Basic Solaris User.'
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   493
			exit 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   494
		    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   495
		fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   496
		if [ "x$prof_pri_adm" != x ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   497
		    if [ $prof_pri_adm -gt $prof_basic_usr ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   498
			echo 'The "Primary Administrator" profile in /etc/user_attr should appear'
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   499
			echo 'before Basic Solaris User.'
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   500
			exit 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   501
		    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   502
		fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   503
	    fi
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   504
	fi
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   505
	LOGFILE=/tmp/desktop-cbe-${CBE_VERSION}.install.log.$$
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   506
    else
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   507
	LOGFILE=/var/sadm/install/logs/desktop-cbe-${CBE_VERSION}.install.log.$$
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   508
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   509
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   510
    # svr4 or pkg(5)
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   511
    check_pkg_system
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   512
    msg "Using \"$PKG_SYSTEM\" packaging system"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   513
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   514
    msg "Checking for required packages..."
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   515
    if [ $PKG_SYSTEM = pkg ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   516
	check_cbe_dependencies_pkg $CBE_PKG_DEPENDENCIES
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   517
    else
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   518
	check_cbe_dependencies_svr4 $CBE_SVR4_DEPENDENCIES
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   519
    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   520
    if [ $DEPS_OK = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   521
	msg "All required packages are installed."
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   522
    else
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   523
	if [ $DEPS_INSTALLED = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   524
	    msg "Successfully installed all required packages"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   525
	else
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   526
	    msg "WARNING: some required packages are missing.  Expect build issues..."
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   527
	fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   528
    fi
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   529
13
1669a54e47a8 2008-06-16 Laszlo (Laca) Peter <[email protected]>
laca
parents: 12
diff changeset
   530
    need_tarballs=no
16
517d4d668260 2008-06-16 Laszlo (Laca) Peter <[email protected]>
laca
parents: 15
diff changeset
   531
    if [ ! -f $mydir/pkgs-${the_cpu}/CBElibtool/pkginfo ]; then
517d4d668260 2008-06-16 Laszlo (Laca) Peter <[email protected]>
laca
parents: 15
diff changeset
   532
	# no packages found, will need to build from source
517d4d668260 2008-06-16 Laszlo (Laca) Peter <[email protected]>
laca
parents: 15
diff changeset
   533
	test ! -f $tardir/pkgbuild-${PKGBUILD_VERSION}.tar.bz2 && {
517d4d668260 2008-06-16 Laszlo (Laca) Peter <[email protected]>
laca
parents: 15
diff changeset
   534
	    download_pkgbuild
517d4d668260 2008-06-16 Laszlo (Laca) Peter <[email protected]>
laca
parents: 15
diff changeset
   535
	    need_tarballs=yes
517d4d668260 2008-06-16 Laszlo (Laca) Peter <[email protected]>
laca
parents: 15
diff changeset
   536
	}
517d4d668260 2008-06-16 Laszlo (Laca) Peter <[email protected]>
laca
parents: 15
diff changeset
   537
    fi
13
1669a54e47a8 2008-06-16 Laszlo (Laca) Peter <[email protected]>
laca
parents: 12
diff changeset
   538
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   539
    if ! pkginfo -R $rootdir -q 'SUNWgpch.*'; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   540
	echo "ERROR: pkgbuild requires the GNU patch utility (/usr/bin/gpatch)."
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   541
	echo "ERROR: please install SUNWgpch from your Solaris installation media"
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   542
	echo "ERROR: before installing the Desktop CBE."
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   543
	exit 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   544
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   545
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   546
    if ! pkginfo -R $rootdir -q 'SUNWgtar.*'; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   547
	echo "ERROR: pkgbuild requires the GNU tar utility (/usr/sfw/bin/gtar)."
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   548
	echo "ERROR: please install SUNWgtar from your Solaris installation media"
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   549
	echo "ERROR: before installing the Desktop CBE."
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   550
	exit 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   551
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   552
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   553
    if [ -f /usr/sfw/include/glib.h ]; then
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   554
	echo "WARNING: /usr/sfw/include/glib.h is in conflict with the Desktop headers."
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   555
	echo "WARNING: Please remove this file or SUNWGlib to avoid build problems."
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   556
	echo
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   557
	echo "Press Enter to continue"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   558
	read dummy
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   559
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   560
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   561
    if ! pkginfo -R $rootdir -q 'SUNWwgetu.*'; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   562
	echo "WARNING: pkgbuild requires wget for full functionality."
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   563
	echo "WARNING: please install SUNWwgetr and SUNWwgetu from your"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   564
	echo "WARNING: Solaris installation media"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   565
	echo
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   566
	echo "Press Enter to continue"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   567
	read dummy
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   568
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   569
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   570
    log "Running on `uname -a`"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   571
    log "My directory is $mydir"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   572
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   573
    ENV_SET=`env | grep '^[a-zA-Z0-9_]*=' | cut -f1 -d=`
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   574
    for var in $ENV_SET; do
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   575
	case $var in
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   576
	    PS1|PS2|HZ|TERM|SHELL|OLDPWD|PATH|MAIL|PWD|TZ|SHLVL|HOME|LOGNAME|PRINTER|HOSTNAME|_|CC|CXX|EDITOR|SSH_*|DISPLAY|LESS*|LS_COLORS|LS_OPTIONS|TERMINFO|PAGER|MANPATH|VISUAL)
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   577
		;;
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   578
	    *)
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   579
		val=`eval echo "\\\$$var"`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   580
		log "Unsetting $var (=\"$val\")"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   581
		unset $var
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   582
		;;
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   583
	esac
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   584
    done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   585
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   586
    tempdir=`mktemp -d /tmp/cbe-install-XXXX`
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   587
    tempdirs="$tempdirs:$tempdir"
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   588
    if [ ! -d $tempdir ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   589
	msg_err "Failed to create temporary directory in /tmp"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   590
	exit 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   591
    fi
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   592
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   593
    # if binary packages are found in the pkgs-*/ subdir then this is a
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   594
    # binary install
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   595
    if [ -f $mydir/pkgs-${the_cpu}/CBElibtool/pkginfo ]; then
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   596
	binary_install=yes
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   597
	pkg_arch=`grep '^ARCH=' $mydir/pkgs-${the_cpu}/CBElibtool/pkginfo | cut -f2 -d=`
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   598
	arch=`uname -p`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   599
	if [ "x$arch" != "x$pkg_arch" ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   600
	    echo "ERROR: wrong architecture"
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   601
	    echo "ERROR: these Desktop CBE packages must be installed on a $pkg_arch system"
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   602
	    exit 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   603
	fi
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   604
	cbe_prefix=/opt/dtbld
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   605
    else
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   606
	binary_install=no
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   607
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   608
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   609
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   610
is_number () {
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   611
    if [ "x$1" = xOK ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   612
	return 1
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   613
    fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   614
    temp=$(echo "$1" | sed -e 's/[1-9][0-9]*/OK/')
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   615
    if [ "x$temp" == xOK ]; then
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   616
	return 0
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   617
    fi
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   618
    return 1
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   619
}
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   620
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   621
# ask "question" variable_name "default answer"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   622
#
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   623
# answer is stored in variable variable_name
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   624
ask () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   625
    echo -n "$1"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   626
    if [ ! -z $3 ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   627
	echo -n " [$3]: "
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   628
    else
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   629
	echo -n ": "
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   630
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   631
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   632
    read -e val
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   633
    if [ "x$val" = x ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   634
	eval "$2=\"$3\""
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   635
    else
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   636
	eval "$2=\"$val\""
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   637
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   638
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   639
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   640
# ask_yes_no "question" variable_name "default answer"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   641
#
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   642
# Answer ("yes" or "no") is stored in variable variable_name.
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   643
# Keep asking the user until the answer is yes or no.
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   644
ask_yes_no () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   645
    yes_no_repeat=yes
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   646
    while [ $yes_no_repeat = yes ]; do
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   647
	yes_no_repeat=no
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   648
	ask "${@}"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   649
	eval "the_ans=\"\$$2\""
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   650
	case "$the_ans" in
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   651
	    [yY]|[yY][eE][sS] )
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   652
                eval "$2=yes"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   653
		;;
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   654
 	    [nN]|[nN][oO] )
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   655
		eval "$2=no"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   656
		;;
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   657
	    * )
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   658
	        echo "Please answer yes or no"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   659
		yes_no_repeat=yes
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   660
	esac
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   661
    done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   662
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   663
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   664
# get_dir "question" "answer_var" "default answer" "owner"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   665
#
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   666
# Ask for a directory name and make sure it exists or create it
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   667
# for the user
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   668
get_dir () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   669
    repeat=yes
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   670
    while [ $repeat = yes ]; do
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   671
	repeat=no
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   672
	ask "$1" new_dir "$3"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   673
	case "$new_dir" in
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   674
	    /* )
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   675
                # absolute path name, nothing to do
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   676
                ;;
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   677
	    ~* )
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   678
	        if [ "x$rootdir" != x/ ]; then
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   679
		    msg "The Desktop CBE is being installed to an alternate root directory."
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   680
		    msg "You need to specify the full path to directories within the alternate root."
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   681
		    repeat=yes
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   682
		    continue
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   683
	        fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   684
		d1=`echo "$new_dir" | cut -f1 -d/`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   685
		d2=`echo "$new_dir/" | cut -f2- -d/`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   686
		d1n=$(eval echo "$d1")
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   687
		test -d "$d1n" || {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   688
		    repeat=yes
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   689
		    msg "Directory not found: $d1"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   690
		    continue
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   691
                }
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   692
		d1n=$(cd "$d1n" 2>/dev/null && pwd) || {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   693
		    repeat=yes
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   694
		    msg "Failed to access directory: $d1"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   695
		    continue
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   696
		}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   697
		msg "Directory $new_dir expanded to $d1n/$d2"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   698
		new_dir="$d1n/$d2"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   699
		;;
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   700
	    * )
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   701
	        if [ "x$rootdir" != x/ ]; then
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   702
		    msg "The Desktop CBE is being installed to an alternate root directory."
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   703
		    msg "You need to specify the full path to directories within the alternate root."
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   704
		    repeat=yes
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   705
		    continue
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   706
	        fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   707
		d1=`echo "$new_dir" | cut -f1 -d/`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   708
		d2=`echo "$new_dir/" | cut -f2- -d/`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   709
		d1n=$(eval echo "$d1")
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   710
		test -d "$d1n" || {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   711
		    repeat=yes
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   712
		    msg "Directory not found: $d1"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   713
		    continue
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   714
                }
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   715
		d1n=$(cd "$d1n" 2>/dev/null && pwd) || {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   716
		    repeat=yes
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   717
		    msg "Failed to access directory: $d1"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   718
		    continue
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   719
		}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   720
		msg "Directory $new_dir expanded to $d1n/$d2"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   721
		new_dir="$d1n/$d2"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   722
		;;
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   723
	esac
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   724
    done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   725
    if [ "x$new_dir" != "x/" ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   726
	new_dir=`echo "$new_dir" | sed -e 's%/*$%%'`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   727
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   728
    eval "$2=\"$new_dir\""
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   729
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   730
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   731
# gather info for the installation from the user
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   732
ask_defaults () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   733
    if [ $binary_install != yes ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   734
	repeat=yes
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   735
	while [ $repeat = yes ]; do
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   736
	    repeat=no
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   737
	    get_dir "Enter the base directory (prefix) of the cbe" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   738
		cbe_prefix $cbe_prefix root
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   739
	    if [ "$cbe_prefix" = "/" -o "$cbe_prefix" = "/tmp" ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   740
		echo "This directory is not allowed."
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   741
		echo "Please choose a different one as the cbe prefix"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   742
		repeat=yes
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   743
	    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   744
	done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   745
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   746
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   747
    if [ ! -f "$HOME/.pkgbuildmacros" -a ! -d "$HOME/packages" ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   748
	# the user probably hasn't used pkgbuild >= 1.1.0 yet
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   749
	# so let's ask if they want to use a specific topdir
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   750
	# instead of $HOME/packages
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   751
	echo "Starting from pkgbuild 1.1.0 (CBE 1.5) there is no system-wide"
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   752
        echo "build directory (%_topdir), instead, each user has their own."
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   753
	echo "The default directory is \$HOME/packages."
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   754
	echo "If you wish to use a different build directory, you can define it"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   755
	echo "in \$HOME/.pkgbuildmacros as follows:"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   756
	echo
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   757
	echo "       %_topdir    /path/to/my/build/area"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   758
	echo
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   759
	if [ "$uid" = 0 ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   760
	    echo
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   761
	    echo Press Enter to continue
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   762
	    read dummy
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   763
	else
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   764
	    ask_yes_no "Would you like to do this now?" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   765
		set_topdir no
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   766
	    if [ $set_topdir = no ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   767
		log "the user chose not to change the default topdir"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   768
		echo "The default topdir ($HOME/packages) will be used"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   769
	    else
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   770
		get_dir "Enter your build directory" default_topdir \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   771
		    "$cbe_prefix/packages" $logname
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   772
		log "the user selected $default_topdir for topdir"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   773
		echo "%_topdir $default_topdir" > $HOME/.pkgbuildmacros
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   774
		log "created $HOME/.pkgbuildmacros"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   775
	    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   776
	fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   777
    else
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   778
	log "the user already has a .pkgbuildmacros file or ~/packages dir"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   779
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   780
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   781
    find_compilers
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
   782
    select_default_compiler
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   783
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   784
    if [ x$install_gnome = xno -a x$install_kde = xno \
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   785
	    -a x$install_opt = xno -a x$install_sfe = xno ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   786
	# no components selected using the CLI (--gnome, etc.)
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   787
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   788
	echo
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   789
	echo "The Desktop CBE includes tools for building GNOME, KDE and/or SFE packages"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   790
	echo "It also includes some optional tools.  Please select the tools you wish"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   791
	echo "to install."
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   792
	echo
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   793
	ask_yes_no "Would you like install the tools for GNOME?" install_gnome yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   794
	ask_yes_no "Would you like install the tools for KDE?" install_kde yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   795
	ask_yes_no "Would you like install the tools for SFE?" install_sfe yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   796
	echo
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
   797
	echo The following tools are optional: $OPT_MODULES
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   798
	ask_yes_no "Would you like install the optional tools?" install_opt yes
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   799
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   800
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   801
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   802
# create an admin file for pkgadd/pkgrm
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   803
make_admin_file () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   804
    echo "mail="                 > $1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   805
    echo "instance=unique" 	>> $1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   806
    echo "conflict=nocheck"     >> $1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   807
    echo "conflict=quit"        >> $1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   808
    echo "setuid=nocheck"       >> $1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   809
    echo "action=nocheck"       >> $1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   810
    echo "partial=quit"         >> $1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   811
    echo "space=quit"           >> $1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   812
    if [ "$2" = "pkgrm" ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   813
	echo "idepend=nocheck"      >> $1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   814
	echo "rdepend=nocheck"      >> $1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   815
    else
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   816
	echo "idepend=quit"         >> $1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   817
	echo "rdepend=quit"         >> $1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   818
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   819
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   820
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   821
# run a command, redirect the output to a log file and also print it
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   822
# on stdout
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   823
logrun () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   824
    status_file=/tmp/.command_status.$$
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   825
    /usr/bin/rm -f $status_file
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   826
    log "running $*"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   827
    log "*** command output follows ***"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   828
    ( "${@}" 2>&1 ; echo $? > $status_file ) | tee -a $LOGFILE
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   829
    log "*** command output ends ***"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   830
    status=`cat $status_file`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   831
    /usr/bin/rm -f $status_file
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   832
    return $status
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   833
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   834
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   835
# run a command, redirect the output to a log file and also print it
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   836
# on stdout
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   837
logrun_quiet () {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   838
    log "running $*"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   839
    log "*** command output follows ***"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   840
    "${@}" >>$LOGFILE 2>&1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   841
    status=$?
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   842
    log "*** command output ends ***"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   843
    return $status
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   844
}
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   845
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   846
# check if a package is installed and if so, offer to uninstall it
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   847
check_if_installed () {
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   848
    for f in $*; do
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   849
	skip_package=no
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   850
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   851
	pkginfo -R $rootdir -q "$f"'.*' || return 0
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   852
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   853
	if [ x$always_uninstall_existing != xyes -a x$always_skip_existing != xyes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   854
	    msg "Package $f is already installed."
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   855
	    ask_yes_no "Would you like uninstall it?" do_uninstall yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   856
	    if [ $do_uninstall = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   857
		if [ x$always_uninstall_existing != xno ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   858
		    ask_yes_no "Always uninstall previously installed packages?" \
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   859
			always_uninstall_existing yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   860
		    log "always_uninstall_existing = $always_uninstall_existing"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   861
		fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   862
	    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   863
	else
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   864
	    if [ x$always_skip_existing = xyes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   865
		msg "Skipping package $f -- already installed"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   866
		skip_package=yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   867
		return 0
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   868
	    else
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   869
		do_uninstall=yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   870
	    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   871
	fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   872
	if [ $do_uninstall = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   873
	    log "User chose to uninstall $f"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   874
	    make_admin_file /tmp/pkgrm.admin.$$ pkgrm || return 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   875
	    pkgrm_failed=no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   876
	    logrun pfexec /usr/sbin/pkgrm -R $rootdir -n -a /tmp/pkgrm.admin.$$ "$f.*" || pkgrm_failed=yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   877
	    if [ $pkgrm_failed = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   878
		ask_yes_no "pkgrm failed. would you like to continue anyway?" pkgrm_cont no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   879
		if [ $pkgrm_cont = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   880
		    log "User chose to continue anyway"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   881
		    return 0
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   882
		fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   883
		return 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   884
	    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   885
	    return 0
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   886
	else
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   887
	    log "User chose not to uninstall $f"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   888
	    if [ x$always_skip_existing != xyes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   889
		ask_yes_no "Would you like skip to the next package?
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   890
(\"no\" means the installer will try to build and install a duplicate package)" skip_package yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   891
		if [ $skip_package = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   892
		    log "User chose to skip package $f"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   893
		    if [ x$always_skip_existing != xno ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   894
			ask_yes_no "Always skip packages that are already installed?" always_skip_existing yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   895
			log "always_skip_existing = $always_skip_existing"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   896
		    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   897
		    return 0
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   898
		fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   899
	    else
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   900
		skip_package=yes
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   901
		return 0
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   902
	    fi
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   903
	    msg "Not uninstalling $f."
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   904
	    msg "NOTE that this may cause problems later"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   905
	    ask "Press Enter to continue" dummy ""
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   906
	    return 0
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   907
	fi
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   908
    done
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   909
    return 0
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   910
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   911
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   912
# install a list of svr4 packages given its directory, altroot and the
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   913
# names of the packages
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   914
install_pkgs () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   915
    pdir=$1; shift
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   916
    rdir=$1; shift
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   917
    make_admin_file $tempdir/pkgadd.admin.$$ pkgadd
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   918
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   919
    for pkg in $*; do
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   920
	msg "Installing package $pkg"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   921
	logrun pfexec /usr/sbin/pkgadd -R "$rdir" -n -a $tempdir/pkgadd.admin.$$ -d "$pdir" $pkg || \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   922
	    return 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   923
    done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   924
    /usr/bin/rm -f $tempdir/pkgadd.admin.$$
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   925
    return 0
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   926
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   927
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   928
# check if the system is pkg(5) based or SVr4 based
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   929
# To identify, we check which system was used to install SUNWcs/SUNWcsu
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   930
# Output: set the PKG_SYSTEM variable with either pkg or svr4
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   931
check_pkg_system () {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   932
    if [ -x /usr/bin/pkg -a -d /var/pkg/catalog ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   933
	pkg -R $rootdir list SUNWcs > /dev/null 2>&1 && {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   934
	    PKG_SYSTEM=pkg
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   935
	    return
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   936
	}
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   937
    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   938
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   939
    pkginfo -R $rootdir -q SUNWcsu && {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   940
	PKG_SYSTEM=svr4
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   941
	return
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   942
    }
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   943
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   944
    msg_err "Could not identify the packaging system"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   945
    exit 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   946
}
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   947
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   948
pkg_refreshed=no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   949
pkg_refresh () {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   950
    if [ $pkg_refreshed = no ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   951
	msg "Refeshing the package catalogs..."
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   952
	logrun_quiet pfexec pkg -R $rootdir refresh
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   953
	pkg_refreshed=yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   954
    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   955
}
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   956
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   957
pkg_try_install () {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   958
    pkg_refresh
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   959
    pfexec pkg -R $rootdir install -q $1 && {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   960
	msg "$1 installed successfully"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   961
	return 0
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   962
    } || {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   963
	msg "Failed to install package $1"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   964
	msg "Retrying in verbose mode:"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   965
	pfexec pkg -R $rootdir install -v $1 && {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   966
	    msg "$1 installed successfully"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   967
	    return 0
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   968
	} || {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   969
	    msg "Installation of $1 failed again."
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   970
	    ask_yes_no "Would you like to continue? (no means exit)" ans_continue no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   971
	    if [ $ans_continue = no ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   972
		exit 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   973
	    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   974
	    DEPS_INSTALLED=no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   975
	    return 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   976
	}
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   977
    }		
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   978
}
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   979
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
   980
install_all_dependencies=
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   981
skip_all_dependencies=
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   982
check_cbe_dependencies_pkg () {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   983
    DEPS_OK=yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   984
    DEPS_INSTALLED=no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   985
    for pkg in $*; do
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   986
	pkg -R $rootdir list $pkg > /dev/null 2>&1 && {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   987
	    log "$pkg is installed"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   988
	} || {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   989
	    log "$pkg is not installed"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   990
	    DEPS_OK=no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   991
	    if [ x$skip_all_dependencies = xyes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   992
		msg "   $pkg is not installed (skipping)"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   993
	    elif [ x$install_all_dependencies = xyes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   994
		pkg_try_install $pkg
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   995
	    elif [ x$install_all_dependencies = x ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   996
		msg "Package $pkg is not installed"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   997
		ask_yes_no "Would you like the CBE installer to install this package for you?" ans_install_dep "yes"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   998
		if [ $ans_install_dep = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
   999
		    ask_yes_no "Would you like the CBE installer to install all required packages?" install_all_dependencies yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1000
		    pkg_try_install $pkg && {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1001
			DEPS_INSTALLED=yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1002
		    }
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1003
		else
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1004
		    # user chose not to install this dep
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1005
		    DEPS_INSTALLED=no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1006
		    log "The user chose not to install $pkg"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1007
		    if [ x$skip_all_dependencies = x ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1008
			ask_yes_no "Would you like to skip all missing packages?" skip_all_dependencies no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1009
		    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1010
		fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1011
	    elif [ x$install_all_dependencies = xno ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1012
		msg "Package $pkg is not installed"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1013
		ask_yes_no "Install this package?" ans_install_dep "yes"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1014
		if [ $ans_install_dep = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1015
		    pkg_try_install $pkg
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1016
		fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1017
	    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1018
	}
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1019
    done
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1020
}
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1021
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1022
install_all_dependencies=
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1023
skip_all_dependencies=
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1024
# check if the pkgs GNOME or KDE requires are installed; if not install them
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1025
check_cbe_dependencies_svr4 () {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1026
    DEPS_OK=yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1027
    DEPS_INSTALLED=yes
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1028
    # we're going to cp solaris pkgs from the media to this dir
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1029
    tmp_pkg_dir=`mktemp -d /tmp/cbe-pkgs-XXXX`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1030
    # schedule this dir for removal if the installation is aborted
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1031
    tempdirs="$tempdirs:$tmp_pkg_dir"
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1032
    if [ ! -d $tmp_pkg_dir ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1033
	msg_err "Failed to create temporary directory in /tmp"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1034
	exit 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1035
    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1036
    for pkg in $*; do
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1037
	pkginfo -R $rootdir -q "$pkg."'*' && continue
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1038
	DEPS_OK=no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1039
	if [ x$skip_all_dependencies = xyes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1040
	    msg "   $pkg is not installed (skipping)"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1041
	    continue
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1042
	elif [ x$install_all_dependencies = x ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1043
	    msg "Package $pkg is not installed"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1044
	    ask_yes_no "Would you like the CBE installer to install this package for you?" ans_install_dep "yes"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1045
	    if [ $ans_install_dep = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1046
		ask_yes_no "Would you like the CBE installer to install all required packages?" install_all_dependencies yes
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1047
		while /bin/true; do
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1048
		    ask "Enter the path to the Solaris packages" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1049
			solaris_pkg_dir "$solaris_pkg_dir"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1050
		    # Copy all packages found in $solaris_pkg_dir to a temporary
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1051
		    # dir so that people installing from CDs don't need to
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1052
		    # swap CDs all the time...
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1053
		    for p0 in $CBE_SVR4_DEPENDENCIES; do
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1054
			# already copied to the tmp dir
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1055
			test -d $tmp_pkg_dir/$p0 && continue
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1056
			# already installed, no need to copy
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1057
			pkginfo -q $p0 && continue
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1058
			test -d "$solaris_pkg_dir/$p0" && \
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1059
			    /bin/cp -pr "$solaris_pkg_dir/$p0" $tmp_pkg_dir && \
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1060
			    /bin/chmod -R u+w $tmp_pkg_dir/$p0
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1061
		    done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1062
		    test -d "$solaris_pkg_dir/$pkg" && break
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1063
		    msg "$solaris_pkg_dir/$pkg not found"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1064
		done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1065
	    else
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1066
		log "The user chose not to install $pkg"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1067
		DEPS_INSTALLED=no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1068
		if [ x$skip_all_dependencies = x ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1069
		    ask_yes_no "Would you like to skip all missing packages?" skip_all_dependencies no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1070
		fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1071
		continue
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1072
	    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1073
	elif [ x$install_all_dependencies = xno ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1074
	    msg "Package $pkg is not installed"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1075
	    ask_yes_no "Install this package?" ans_install_dep "yes"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1076
	    if [ $ans_install_dep = no ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1077
		DEPS_INSTALLED=no
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1078
		continue
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1079
	    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1080
	fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1081
	while /bin/true; do
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1082
	    msg "Installing package $pkg"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1083
	    make_admin_file /tmp/pkgadd.admin.$$ pkgadd
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1084
	    if [ -d $tmp_pkg_dir/$pkg ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1085
		logrun pfexec /usr/sbin/pkgadd -R $rootdir -n -a /tmp/pkgadd.admin.$$ -d "$tmp_pkg_dir" $pkg
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1086
		if [ $? != 0 ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1087
		    msg "WARNING: failed to install required package $pkg"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1088
		    ask_yes_no "Would you like to retry?" "do_retry" "yes"
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1089
		    if [ $do_retry = no ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1090
			DEPS_INSTALLED=no
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1091
		    fi
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1092
		else
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1093
		    do_retry=no_need_to
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1094
		fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1095
	    else
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1096
		msg "Package $pkg was not found in $solaris_pkg_dir"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1097
		do_retry=yes
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1098
		/bin/true
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1099
	    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1100
	    if [ $do_retry = yes ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1101
		while /bin/true; do
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1102
		    ask "Enter the path to the Solaris packages" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1103
			solaris_pkg_dir "$solaris_pkg_dir"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1104
		    test -d "$solaris_pkg_dir/$pkg" && break
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1105
		    msg "$solaris_pkg_dir/$pkg not found"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1106
		done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1107
		# Copy all packages found in $solaris_pkg_dir to a temporary
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1108
		# dir so that people installing from CDs don't need to
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1109
		# swap CDs all the time...
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1110
		for p0 in $CBE_SVR4_DEPENDENCIES; do
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1111
		    test -d "$solaris_pkg_dir/$p0" && \
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1112
			/bin/cp -pr "$solaris_pkg_dir/$p0" $tmp_pkg_dir && \
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1113
			/bin/chmod -R u+w $tmp_pkg_dir/$p0
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1114
		done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1115
	    elif [ $do_retry = no ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1116
		ask_yes_no "Continue installation anyway?" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1117
		    do_continue no
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1118
		if [ $do_continue = no ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1119
		    /bin/rm -f /tmp/pkgadd.admin.$$
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1120
		    /bin/rm -rf $tmp_pkg_dir
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1121
		    msg "Installation aborted."
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1122
		    exit 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1123
		else
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1124
		    DEPS_INSTALLED=no
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1125
		    break
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1126
		fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1127
		break
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1128
	    else
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1129
		/bin/rm -rf $tmp_pkg_dir/$pkg
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1130
		/bin/rm -f /tmp/pkgadd.admin.$$
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1131
		break
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1132
	    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1133
	done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1134
    done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1135
    /bin/rm -rf $tmp_pkg_dir
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1136
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1137
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1138
# install pkgbuild from tarball to a temp location and then build a
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1139
# pkgbuild pkg using itself
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1140
install_pkgbuild () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1141
    check_if_installed SFpkgbuild || {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1142
	pkgbuild_topdir=`$cbe_prefix/bin/pkgbuild -bp $cbe_prefix/lib/pkgbuild-$PKGBUILD_VERSION/get_rpm_topdir 2>&1 | grep '^TOPDIR=' | cut -f2- -d=`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1143
	return 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1144
    }
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1145
    if [ $skip_package = yes ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1146
	return 0
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1147
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1148
    export PATH=/usr/ccs/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/usr/sfw/bin
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1149
    # we're going to build pkgbuild in this directory
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1150
    tmp_build_dir=`mktemp -d /tmp/cbe-build-XXXX`
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1151
    # schedule this dir for removal if the installation is aborted
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1152
    tempdirs="$tempdirs:$tmp_build_dir"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1153
    if [ ! -d $tmp_build_dir ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1154
	msg_err "Failed to create temporary directory in /tmp"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1155
	exit 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1156
    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1157
    cd $tmp_build_dir || return 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1158
    logrun mkdir -p src || return 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1159
    cd src || return 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1160
    logrun bash -c "bzcat $tardir/pkgbuild-$PKGBUILD_VERSION.tar.bz2 | tar xf -" || return 1
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1161
    cd pkgbuild-$PKGBUILD_VERSION || return 1
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1162
    msg "Building pkgbuild from source..."
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1163
    # FIXME: delete this when find_compilers is finisheed
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1164
    export CC=/usr/sfw/bin/gcc
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1165
    export CFLAGS='-std=c99'
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1166
    logrun_quiet ./configure --prefix="$tmp_build_dir" || return 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1167
    logrun_quiet make install || return 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1168
    msg "Now rebuilding pkgbuild using itself..."
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1169
    logrun mkdir -p $tmp_build_dir/packages/SOURCES || return 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1170
    logrun ln -s $tardir/pkgbuild-$PKGBUILD_VERSION.tar.bz2 $tmp_build_dir/packages/SOURCES/ || return 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1171
    logrun_quiet bash -c "$tmp_build_dir/bin/pkgbuild --define \"pkgbuild_prefix $cbe_prefix\" --define \"_topdir $tmp_build_dir/packages\" -ba $tmp_build_dir/src/pkgbuild-$PKGBUILD_VERSION/pkgbuild.spec" || return 1
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1172
    make_admin_file $tempdir/pkgadd.admin.$$ pkgadd
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1173
    logrun pfexec /usr/sbin/pkgadd -R $rootdir -n -a $tempdir/pkgadd.admin.$$ -d "$tmp_build_dir/packages/PKGS" SFpkgbuild || return 1
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1174
    pkgbuild_topdir=`$cbe_prefix/bin/pkgbuild -bp $cbe_prefix/lib/pkgbuild-$PKGBUILD_VERSION/get_rpm_topdir 2>&1 | grep '^TOPDIR=' | cut -f2- -d=`
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1175
    logrun mkdir -p "$rootdir/$pkgbuild_topdir/PKGS" "$rootdir/$pkgbuild_topdir/SPKGS"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1176
    logrun cp -pr "$tmp_build_dir/packages/SPKGS/SFpkgbuild-src" "$rootdir/$pkgbuild_topdir/SPKGS"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1177
    logrun cp -pr "$tmp_build_dir/packages/PKGS/SFpkgbuild" "$rootdir/$pkgbuild_topdir/PKGS"
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1178
    cd /tmp || return 1
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1179
    logrun /usr/bin/rm -rf $tmp_build_dir || return 1
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1180
    
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1181
    return 0
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1182
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1183
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1184
# build and install a package
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1185
build_pkg () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1186
    install_pkgs "$rootdir$pkgbuild_topdir/PKGS" "$rootdir" "$3" || return 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1187
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1188
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1189
# older versions of the JDS CBE included packages that were renamed or
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1190
# no longer included.  These older JDS CBEs only supported SVr4.
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1191
uninstall_old_cbe () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1192
    pkg_info=
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1193
    for pkg in $OLD_PKGS; do
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1194
	pkginfo -R $rootdir -q "$pkg."'*' && pkg_info="$pkg_info
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1195
`pkginfo -R $rootdir $pkg.'*'`"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1196
    done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1197
    if [ ! -z "$pkg_info" ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1198
	echo "The following packages belong to an obsolete version of the JDS CBE."
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1199
	echo "$pkg_info"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1200
	echo 
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1201
	ask_yes_no "Would you like to uninstall them?" do_uninst yes
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1202
	if [ $do_uninst = yes ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1203
	    log "User chose to uninstall obsolete CBE pkgs"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1204
	    make_admin_file $tempdir/pkgrm.admin.$$ pkgrm
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1205
	    pkgrm_failed=no
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1206
	    for pkg in $OLD_PKGS; do
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1207
		if pkginfo -R $rootdir -q "$pkg."'*'; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1208
		    logrun pfexec /usr/sbin/pkgrm -R $rootdir -n -a $tempdir/pkgrm.admin.$$ "$pkg."'*' || \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1209
			pkgrm_failed=yes
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1210
		fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1211
	    done
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1212
	    rm -f $tempdir/pkgrm.admin.$$
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1213
	    if [ $pkgrm_failed = yes ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1214
		msg "Failed to remove one or more packages"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1215
		ask_yes_no "Would you like to continue anyway?" do_cont no
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1216
		if [ $do_cont = no ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1217
		    return 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1218
		else
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1219
		    log "User chose to continue anyway"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1220
		    return 0
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1221
		fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1222
	    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1223
	fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1224
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1225
    return 0
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1226
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1227
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1228
main () {
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1229
    init
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1230
    uninstall_old_cbe || return 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1231
    ask_defaults
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1232
    pkginfo -q -R $rootdir CBEenv && {
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1233
	msg "Uninstalling CBEenv"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1234
	make_admin_file /tmp/pkgrm.admin.$$ pkgrm || return 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1235
	logrun pfexec /usr/sbin/pkgrm -R $rootdir -n -a /tmp/pkgrm.admin.$$ "CBEenv.*"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1236
	rm -f /tmp/pkgrm.admin.$$
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1237
    }
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1238
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1239
    ALL_MODULES=
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1240
    if [ $install_gnome = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1241
	ALL_MODULES="$ALL_MODULES $GNOME_MODULES"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1242
    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1243
    if [ $install_kde = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1244
	ALL_MODULES="$ALL_MODULES $KDE_MODULES"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1245
    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1246
    if [ $install_sfe = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1247
	ALL_MODULES="$ALL_MODULES $SFE_MODULES"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1248
    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1249
    if [ $install_opt = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1250
	ALL_MODULES="$ALL_MODULES $OPT_MODULES"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1251
    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1252
    ALL_MODULES=$(echo $ALL_MODULES | sed -e 's/ /\
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1253
/g' | sort -u)
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1254
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1255
    if [ $binary_install = no ]; then
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1256
	install_pkgbuild || return 1
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1257
    else
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1258
	check_if_installed SFpkgbuild || return 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1259
	if [ $skip_package != yes ]; then
13
1669a54e47a8 2008-06-16 Laszlo (Laca) Peter <[email protected]>
laca
parents: 12
diff changeset
  1260
	    install_pkgs "$mydir/pkgs-${the_cpu}" "$rootdir" SFpkgbuild || return 1
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1261
	fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1262
    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1263
    pkgbuild_topdir=`$cbe_prefix/bin/pkgbuild -bp $cbe_prefix/lib/pkgbuild-$PKGBUILD_VERSION/get_rpm_topdir 2>&1 | grep '^TOPDIR=' | cut -f2- -d=`
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1264
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1265
    cd $mydir
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1266
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1267
    # identify the CBE packages to be built/installed
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1268
    ALL_SPECS=
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1269
    ALL_CBE_PKGS=
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1270
    for mod in $ALL_MODULES; do
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1271
	pkgs=$($cbe_prefix/bin/spectool get_packages CBE${mod}.spec 2>/dev/null)
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1272
	check_if_installed $pkgs || return 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1273
        # skip_package is set by check_if_installed
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1274
	if [ $skip_package = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1275
	    continue
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1276
	fi
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1277
	# On Nevada and OpenSolaris use alternatives if available
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1278
	if [ $install_alt = yes -a "x$myos_rel" = x5.11 ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1279
	    eval ALT=\"$(eval echo \$ALT_$mod)\"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1280
	    if [ "x$ALT" != x ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1281
		if [ $ask_alt = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1282
		    ask_yes_no "Use $ALT ($mod) instead of CBE $mod?" \
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1283
			use_alt yes
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1284
		    if [ $use_alt = no ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1285
			ALL_CBE_PKGS="$ALL_CBE_PKGS $pkgs"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1286
			ALL_SPECS="$ALL_SPECS CBE${mod}.spec"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1287
			continue
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1288
		    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1289
		fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1290
		msg "Looking for package $ALT"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1291
		check_cbe_dependencies_$PKG_SYSTEM $(eval echo $ALT)
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1292
		if [ $DEPS_OK = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1293
		    msg "     ... already installed"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1294
		    continue
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1295
		elif [ $DEPS_INSTALLED = yes ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1296
		    msg "Successfully installed $ALT"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1297
		    continue
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1298
		else
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1299
		    msg "Using the CBE version of $mod"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1300
		    ALL_SPECS="$ALL_SPECS CBE${mod}.spec"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1301
		    ALL_CBE_PKGS="$ALL_CBE_PKGS $pkgs"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1302
		fi
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1303
	    else
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1304
		# no alternative exists
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1305
		ALL_SPECS="$ALL_SPECS CBE${mod}.spec"
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1306
		ALL_CBE_PKGS="$ALL_CBE_PKGS $pkgs"		
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1307
	    fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1308
	else
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1309
	    # alternatives should not be used
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1310
	    ALL_SPECS="$ALL_SPECS CBE${mod}.spec"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1311
	    ALL_CBE_PKGS="$ALL_CBE_PKGS $pkgs"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1312
	fi
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1313
    done
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1314
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1315
    if [ $binary_install = no ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1316
	export "PATH=$rootdir$cbe_prefix/bin:/usr/ccs/bin:/usr/gnu/bin:/usr/bin:/usr/sbin:/usr/sfw/bin"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1317
	if [ "x$rootdir" != x/ ]; then
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1318
	    export AC_MACRODIR="$rootdir$cbe_prefix/share/autoconf"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1319
	    sed -e "s%--prepend-include %--prepend-include $rootdir%" "$rootdir$cbe_prefix/share/autoconf/autom4te.cfg" > $tempdir/autom4te.cfg
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1320
	    export AUTOM4TE_CFG="$tempdir/autom4te.cfg"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1321
	    export autom4te_perllibdir="$rootdir$cbe_prefix/share/autoconf"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1322
	    export AUTOM4TE="$rootdir$cbe_prefix/bin/autom4te"
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1323
	fi
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1324
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1325
	ALL_SPECS=$($cbe_prefix/bin/pkgtool -q build-order $ALL_SPECS)
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1326
	for spec in $ALL_SPECS; do
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1327
	    pkgs=$($cbe_prefix/bin/spectool get_packages $spec 2>/dev/null)
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
  1328
	    if [ $need_tarballs = yes ]; then
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
  1329
		msg "Downloading source tarball for $pkgs"
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
  1330
		$cbe_prefix/bin/pkgtool download --download-to $tardir $spec || return 1
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
  1331
	    fi
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1332
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1333
	    # build the package
15
e2a20c238873 add download-to
laca
parents: 14
diff changeset
  1334
	    logrun $cbe_prefix/bin/pkgtool --download --download-to "$tardir" --define "cbe_prefix $cbe_prefix" --define "cbe_version $CBE_VERSION" build-only $spec || return 1
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1335
	    for pkg in $pkgs; do
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1336
		install_pkgs "$rootdir$pkgbuild_topdir/PKGS" "$rootdir" "$pkg" || return 1
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1337
	    done
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1338
	done
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1339
    else
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1340
	# binary install
12
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
  1341
	for pkg in $ALL_CBE_PKGS; do
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
  1342
	    if [ -d "$mydir/pkgs-${the_cpu}/${myos_rel}/$pkg" ]; then
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
  1343
		install_pkgs "$mydir/pkgs-${the_cpu}/${myos_rel}" \
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
  1344
		    "$rootdir" $pkg || return 1
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
  1345
	    else
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
  1346
		install_pkgs "$mydir/pkgs-${the_cpu}" \
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
  1347
		    "$rootdir" $pkg || return 1
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
  1348
	    fi
af4384a951ad 2008-06-14 Laszlo (Laca) Peter <[email protected]>
laca
parents: 11
diff changeset
  1349
	done
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1350
	pkgbuild_topdir=`$cbe_prefix/bin/pkgbuild -bp $cbe_prefix/lib/pkgbuild-$PKGBUILD_VERSION/get_rpm_topdir 2>&1 | grep '^TOPDIR=' | cut -f2- -d=`
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1351
    fi
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1352
    log "Creating env.sh"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1353
    logrun mkdir -p $rootdir$pkgbuild_topdir/SOURCES || return 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1354
    build_info="built on `date +%Y-%m-%d` by ${logname}@`hostname`"
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1355
    logrun_quiet bash -c "sed -e \"s%@CBE_PREFIX@%$cbe_prefix%\" \
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1356
        -e \"s%@JDS_PREFIX@%$JDS_PREFIX%\" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1357
	-e \"s%@CC32@%$cc32dir/$cc_name%\" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1358
	-e \"s%@CXX32@%$cc32dir/$cxx_name%\" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1359
	-e \"s%@CC64@%$cc64dir/$cc_name%\" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1360
	-e \"s%@CXX64@%$cc64dir/$cxx_name%\" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1361
	-e \"s%@CBE_VERSION@%$CBE_VERSION%\" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1362
        -e \"s%@BUILD_INFO@%$build_info%\" \
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1363
	$mydir/ext-sources/env.sh > $rootdir$pkgbuild_topdir/SOURCES/env.sh" || \
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1364
	return 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1365
    log "Creating env.csh"
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1366
    logrun_quiet bash -c "sed -e \"s%@CBE_PREFIX@%$cbe_prefix%\" \
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1367
        -e \"s%@JDS_PREFIX@%$JDS_PREFIX%\" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1368
	-e \"s%@CC32@%$cc32dir/$cc_name%\" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1369
	-e \"s%@CXX32@%$cc32dir/$cxx_name%\" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1370
	-e \"s%@CC64@%$cc64dir/$cc_name%\" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1371
	-e \"s%@CXX64@%$cc64dir/$cxx_name%\" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1372
	-e \"s%@CBE_VERSION@%$CBE_VERSION%\" \
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1373
        -e \"s%@BUILD_INFO@%$build_info%\" \
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1374
	$mydir/ext-sources/env.csh > $rootdir$pkgbuild_topdir/SOURCES/env.csh" || \
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1375
	return 1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1376
    log "Copying ld-wrapper"
10
a65a967018ee 2008-06-11 Laszlo (Laca) Peter <[email protected]>
laca
parents: 1
diff changeset
  1377
    logrun bash -c "cp $mydir/ext-sources/ld-wrapper $rootdir$pkgbuild_topdir/SOURCES" || \
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1378
	return 1
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1379
    logrun_quiet $cbe_prefix/bin/pkgbuild --define "cbe_prefix $cbe_prefix" --define "cbe_version $CBE_VERSION" --define "build_user $logname" -ba CBEenv.spec || return 1
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1380
    logrun $cbe_prefix/bin/pkgtool install-pkgs --define "build_user $logname" CBEenv.spec || return 1
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1381
    logrun cp ${envdir}/* $cbe_prefix/lib/cbe-env/
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1382
    def_env_name=$(basename $default_env)
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1383
    cd $cbe_prefix/lib/cbe-env; ln -s $def_env_name default
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1384
    cd $mydir
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1385
    msg "CBE setup complete"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1386
    echo "Run"
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1387
    echo "  . $cbe_prefix/bin/env.sh [environment]"
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1388
    echo "or"
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1389
    echo "  source $cbe_prefix/bin/env.csh [environment]"
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1390
    echo "depending on your shell, to use this build environment."
11
6769bf4088b7 2008-06-12 Laszlo (Laca) Peter <[email protected]>
laca
parents: 10
diff changeset
  1391
    echo "You can also run $cbe_prefix/bin/env.sh [environment] to start subshell."
1
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1392
}
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1393
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1394
process_cl "${@}"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1395
main || msg "CBE setup FAILED"
102c9870ef63 initial import -- still incomplete
laca
parents:
diff changeset
  1396
echo "Installation log saved in $LOGFILE"