makepackage.sh revision 1ace73711fa06807748eff26632c7273a1f7c2db
247efe202344328bffb8de7e47aee60039cd95e0vboxsync# Sun VirtualBox
2d928c5b0e0cc3fd970343e314cd85050c55660evboxsync# VirtualBox Solaris Guest Additions package creation script.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# Copyright (C) 2008-2009 Sun Microsystems, Inc.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# available from http://www.virtualbox.org. This file is free software;
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# you can redistribute it and/or modify it under the terms of the GNU
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# General Public License (GPL) as published by the Free Software
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# additional information or have any questions.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# makespackage.sh $(PATH_TARGET)/install packagename svnrev
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsyncif test -z "$3"; then
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync echo "Usage: $0 installdir packagename svnrev"
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsyncVBOX_INSTALLED_DIR="$VBOX_BASEPKG_DIR"/opt/VirtualBoxAdditions
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# check for GNU grep we use which might not ship with all Solaris
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsyncif test ! -f "$VBOX_GGREP" && test ! -h "$VBOX_GGREP"; then
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync echo "## GNU grep not found in $VBOX_GGREP."
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# bail out on non-zero exit status
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# Fixup filelist using awk, the parameters must be in awk syntax
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# params: filename condition action
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync "$VBOX_AWK" 'NF == 6 && '"$2"' { '"$3"' } { print }' "$1" > "tmp-$1"
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# Create relative hardlinks
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# prepare file list
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncif test -f "./vboxguest.copyright"; then
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync echo 'i copyright=./vboxguest.copyright' >> prototype
8d4665a316d78d6587fd1c9da948f7aa37d0bfddvboxsync# Exclude directory entries to not cause conflicts (owner,group) with existing directories in the system
83bb1f16d193175abf8fc1c3dffea43611efbf67vboxsyncfind . ! -type d | $VBOX_GGREP -v -E 'prototype|makepackage.sh|vboxguest.pkginfo|postinstall.sh|preremove.sh|vboxguest.space|vboxguest.depend|vboxguest.copyright' | pkgproto >> prototype
ec9aa1180070b037866f064ce720254cd9f03721vboxsync# Include only opt/VirtualBoxAdditions and subdirectories as we want uninstall to clean up directory structure as well
8d4665a316d78d6587fd1c9da948f7aa37d0bfddvboxsyncfind . -type d | $VBOX_GGREP -E 'opt/VirtualBoxAdditions' | pkgproto >> prototype
ec9aa1180070b037866f064ce720254cd9f03721vboxsync# don't grok for the class files
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncfilelist_fixup prototype '$2 == "none"' '$5 = "root"; $6 = "bin"'
efe619f27bff8e4d2124d1f09a327c7a63abe1dcvboxsync# VBoxService requires suid
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncfilelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/VBoxService"' '$4 = "4755"'
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncfilelist_fixup prototype '$3 == "opt/VirtualBoxAdditions/amd64/VBoxService"' '$4 = "4755"'
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncfilelist_fixup prototype '$3 == "usr/kernel/drv/vboxguest"' '$6="sys"'
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncfilelist_fixup prototype '$3 == "usr/kernel/drv/amd64/vboxguest"' '$6="sys"'
dba1919dac01f490c625e0470b528e469c30651dvboxsyncecho " --- start of prototype ---"
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncecho " --- end of prototype --- "
dba1919dac01f490c625e0470b528e469c30651dvboxsync# explicitly set timestamp to shutup warning
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncVBOXPKG_TIMESTAMP=vboxguest`date '+%Y%m%d%H%M%S'`_r$VBOX_SVN_REV
ec9aa1180070b037866f064ce720254cd9f03721vboxsync# create the package instance
ec9aa1180070b037866f064ce720254cd9f03721vboxsync# translate into package datastream