VirtualBox

Changeset 74374 in vbox for trunk/src/VBox/Additions/linux


Ignore:
Timestamp:
Sep 19, 2018 4:08:07 PM (6 years ago)
Author:
vboxsync
Message:

Additions/linux: extend export modules to export without archiving.
bugref: 9165: webtools: create scripts for (re-)creating chroot build jails
This change adds a --folder <folder> syntax to export_modules.sh to tell it
to put the Additions modules build tree at a file system location instead of
in a tar archive. This is for use with building in a number of chroots at one
time.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/linux/export_modules.sh

    r69500 r74374  
    1717#
    1818
     19export LC_ALL=C
     20
    1921# The below is GNU-specific.  See VBox.sh for the longer Solaris/OS X version.
    2022TARGET=`readlink -e -- "${0}"` || exit 1
    2123MY_DIR="${TARGET%/[!/]*}"
    2224
    23 if [ -z "$1" ]; then
     25if [ -z "${1}" ] || { [ "x${1}" = x--folder ] && [ -z "${2}" ]; }; then
    2426    echo "Usage: $0 <filename.tar.gz>"
    25     echo "  Export VirtualBox kernel modules to <filename.tar.gz>"
     27    echo "  Export VirtualBox kernel modules to <filename.tar.gz>."
     28    echo "Usage: $0 --folder <folder>"
     29    echo "  Copy VirtualBox kernel module source to <folder>."
    2630    exit 1
    2731fi
    2832
    29 PATH_TMP="`cd \`dirname $1\`; pwd`/.vbox_modules"
    30 PATH_OUT=$PATH_TMP
    31 FILE_OUT="`cd \`dirname $1\`; pwd`/`basename $1`"
     33if test "x${1}" = x--folder; then
     34    PATH_OUT="${2}"
     35else
     36    PATH_OUT="`cd \`dirname $1\`; pwd`/.vbox_modules"
     37    FILE_OUT="`cd \`dirname $1\`; pwd`/`basename $1`"
     38fi
    3239PATH_ROOT="`cd ${MY_DIR}/../../../..; pwd`"
    3340PATH_LOG=/tmp/vbox-export-guest.log
     
    5158
    5259# Temporary path for creating the modules, will be removed later
    53 mkdir $PATH_TMP || exit 1
     60mkdir -p $PATH_OUT || exit 1
    5461
    5562# Create auto-generated version file, needed by all modules
    56 echo "#ifndef ___version_generated_h___" > $PATH_TMP/version-generated.h
    57 echo "#define ___version_generated_h___" >> $PATH_TMP/version-generated.h
    58 echo "" >> $PATH_TMP/version-generated.h
    59 echo "#define VBOX_VERSION_MAJOR $VBOX_VERSION_MAJOR" >> $PATH_TMP/version-generated.h
    60 echo "#define VBOX_VERSION_MINOR $VBOX_VERSION_MINOR" >> $PATH_TMP/version-generated.h
    61 echo "#define VBOX_VERSION_BUILD $VBOX_VERSION_BUILD" >> $PATH_TMP/version-generated.h
    62 echo "#define VBOX_VERSION_STRING_RAW \"$VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD\"" >> $PATH_TMP/version-generated.h
    63 echo "#define VBOX_VERSION_STRING \"$VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD\"" >> $PATH_TMP/version-generated.h
    64 echo "#define VBOX_API_VERSION_STRING \"${VBOX_VERSION_MAJOR}_${VBOX_VERSION_MINOR}\"" >> $PATH_TMP/version-generated.h
    65 echo "#define VBOX_PRIVATE_BUILD_DESC \"Private build with export_modules\"" >> $PATH_TMP/version-generated.h
    66 echo "" >> $PATH_TMP/version-generated.h
    67 echo "#endif" >> $PATH_TMP/version-generated.h
     63echo "#ifndef ___version_generated_h___" > $PATH_OUT/version-generated.h
     64echo "#define ___version_generated_h___" >> $PATH_OUT/version-generated.h
     65echo "" >> $PATH_OUT/version-generated.h
     66echo "#define VBOX_VERSION_MAJOR $VBOX_VERSION_MAJOR" >> $PATH_OUT/version-generated.h
     67echo "#define VBOX_VERSION_MINOR $VBOX_VERSION_MINOR" >> $PATH_OUT/version-generated.h
     68echo "#define VBOX_VERSION_BUILD $VBOX_VERSION_BUILD" >> $PATH_OUT/version-generated.h
     69echo "#define VBOX_VERSION_STRING_RAW \"$VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD\"" >> $PATH_OUT/version-generated.h
     70echo "#define VBOX_VERSION_STRING \"$VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD\"" >> $PATH_OUT/version-generated.h
     71echo "#define VBOX_API_VERSION_STRING \"${VBOX_VERSION_MAJOR}_${VBOX_VERSION_MINOR}\"" >> $PATH_OUT/version-generated.h
     72echo "#define VBOX_PRIVATE_BUILD_DESC \"Private build with export_modules\"" >> $PATH_OUT/version-generated.h
     73echo "" >> $PATH_OUT/version-generated.h
     74echo "#endif" >> $PATH_OUT/version-generated.h
    6875
    6976# Create auto-generated revision file, needed by all modules
    70 echo "#ifndef __revision_generated_h__" > $PATH_TMP/revision-generated.h
    71 echo "#define __revision_generated_h__" >> $PATH_TMP/revision-generated.h
    72 echo "" >> $PATH_TMP/revision-generated.h
    73 echo "#define VBOX_SVN_REV $VBOX_SVN_REV" >> $PATH_TMP/revision-generated.h
    74 echo "" >> $PATH_TMP/revision-generated.h
    75 echo "#endif" >> $PATH_TMP/revision-generated.h
     77echo "#ifndef __revision_generated_h__" > $PATH_OUT/revision-generated.h
     78echo "#define __revision_generated_h__" >> $PATH_OUT/revision-generated.h
     79echo "" >> $PATH_OUT/revision-generated.h
     80echo "#define VBOX_SVN_REV $VBOX_SVN_REV" >> $PATH_OUT/revision-generated.h
     81echo "" >> $PATH_OUT/revision-generated.h
     82echo "#endif" >> $PATH_OUT/revision-generated.h
    7683
    7784# Create auto-generated product file, needed by all modules
    78 echo "#ifndef ___product_generated_h___" > $PATH_TMP/product-generated.h
    79 echo "#define ___product_generated_h___" >> $PATH_TMP/product-generated.h
    80 echo "" >> $PATH_TMP/product-generated.h
    81 echo "#define VBOX_VENDOR \"$VBOX_VENDOR\"" >> $PATH_TMP/product-generated.h
    82 echo "#define VBOX_VENDOR_SHORT \"$VBOX_VENDOR_SHORT\"" >> $PATH_TMP/product-generated.h
    83 echo "" >> $PATH_TMP/product-generated.h
    84 echo "#define VBOX_PRODUCT \"$VBOX_PRODUCT\"" >> $PATH_TMP/product-generated.h
    85 echo "#define VBOX_C_YEAR \"$VBOX_C_YEAR\"" >> $PATH_TMP/product-generated.h
    86 echo "" >> $PATH_TMP/product-generated.h
    87 echo "#endif" >> $PATH_TMP/product-generated.h
     85echo "#ifndef ___product_generated_h___" > $PATH_OUT/product-generated.h
     86echo "#define ___product_generated_h___" >> $PATH_OUT/product-generated.h
     87echo "" >> $PATH_OUT/product-generated.h
     88echo "#define VBOX_VENDOR \"$VBOX_VENDOR\"" >> $PATH_OUT/product-generated.h
     89echo "#define VBOX_VENDOR_SHORT \"$VBOX_VENDOR_SHORT\"" >> $PATH_OUT/product-generated.h
     90echo "" >> $PATH_OUT/product-generated.h
     91echo "#define VBOX_PRODUCT \"$VBOX_PRODUCT\"" >> $PATH_OUT/product-generated.h
     92echo "#define VBOX_C_YEAR \"$VBOX_C_YEAR\"" >> $PATH_OUT/product-generated.h
     93echo "" >> $PATH_OUT/product-generated.h
     94echo "#endif" >> $PATH_OUT/product-generated.h
    8895
    8996# vboxguest (VirtualBox guest kernel module)
    90 mkdir $PATH_TMP/vboxguest || exit 1
     97mkdir $PATH_OUT/vboxguest || exit 1
    9198for f in $FILES_VBOXGUEST_NOBIN; do
    92     install -D -m 0644 `echo $f|cut -d'=' -f1` "$PATH_TMP/vboxguest/`echo $f|cut -d'>' -f2`"
     99    install -D -m 0644 `echo $f|cut -d'=' -f1` "$PATH_OUT/vboxguest/`echo $f|cut -d'>' -f2`"
    93100done
    94101for f in $FILES_VBOXGUEST_BIN; do
    95     install -D -m 0755 `echo $f|cut -d'=' -f1` "$PATH_TMP/vboxguest/`echo $f|cut -d'>' -f2`"
     102    install -D -m 0755 `echo $f|cut -d'=' -f1` "$PATH_OUT/vboxguest/`echo $f|cut -d'>' -f2`"
    96103done
    97104
    98105# vboxsf (VirtualBox guest kernel module for shared folders)
    99 mkdir $PATH_TMP/vboxsf || exit 1
     106mkdir $PATH_OUT/vboxsf || exit 1
    100107for f in $FILES_VBOXSF_NOBIN; do
    101     install -D -m 0644 `echo $f|cut -d'=' -f1` "$PATH_TMP/vboxsf/`echo $f|cut -d'>' -f2`"
     108    install -D -m 0644 `echo $f|cut -d'=' -f1` "$PATH_OUT/vboxsf/`echo $f|cut -d'>' -f2`"
    102109done
    103110for f in $FILES_VBOXSF_BIN; do
    104     install -D -m 0755 `echo $f|cut -d'=' -f1` "$PATH_TMP/vboxsf/`echo $f|cut -d'>' -f2`"
     111    install -D -m 0755 `echo $f|cut -d'=' -f1` "$PATH_OUT/vboxsf/`echo $f|cut -d'>' -f2`"
    105112done
    106113
    107114# vboxvideo (VirtualBox guest kernel module for drm support)
    108 mkdir $PATH_TMP/vboxvideo || exit 1
     115mkdir $PATH_OUT/vboxvideo || exit 1
    109116for f in $FILES_VBOXVIDEO_DRM_NOBIN; do
    110     install -D -m 0644 `echo $f|cut -d'=' -f1` "$PATH_TMP/vboxvideo/`echo $f|cut -d'>' -f2`"
     117    install -D -m 0644 `echo $f|cut -d'=' -f1` "$PATH_OUT/vboxvideo/`echo $f|cut -d'>' -f2`"
    111118done
    112119for f in $FILES_VBOXVIDEO_DRM_BIN; do
    113     install -D -m 0755 `echo $f|cut -d'=' -f1` "$PATH_TMP/vboxvideo/`echo $f|cut -d'>' -f2`"
     120    install -D -m 0755 `echo $f|cut -d'=' -f1` "$PATH_OUT/vboxvideo/`echo $f|cut -d'>' -f2`"
    114121done
    115 sed -f $PATH_VBOXVIDEO/indent.sed -i $PATH_TMP/vboxvideo/*.[ch]
     122sed -f $PATH_VBOXVIDEO/indent.sed -i $PATH_OUT/vboxvideo/*.[ch]
    116123
    117124# convenience Makefile
    118 install -D -m 0644 $PATH_LINUX/Makefile "$PATH_TMP/Makefile"
     125install -D -m 0644 $PATH_LINUX/Makefile "$PATH_OUT/Makefile"
    119126
    120127# Only temporary, omit from archive
    121 rm $PATH_TMP/version-generated.h
    122 rm $PATH_TMP/revision-generated.h
    123 rm $PATH_TMP/product-generated.h
     128rm $PATH_OUT/version-generated.h
     129rm $PATH_OUT/revision-generated.h
     130rm $PATH_OUT/product-generated.h
     131
     132# If we are exporting to a folder then stop now.
     133test "x${1}" = x--folder && exit 0
    124134
    125135# Do a test build
    126136echo Doing a test build, this may take a while.
    127 make -C $PATH_TMP > $PATH_LOG 2>&1 &&
    128     make -C $PATH_TMP clean >> $PATH_LOG 2>&1 ||
     137make -C $PATH_OUT > $PATH_LOG 2>&1 &&
     138    make -C $PATH_OUT clean >> $PATH_LOG 2>&1 ||
    129139    echo "Warning: test build failed.  Please check $PATH_LOG"
    130140
    131141# Create the archive
    132 tar -czf $FILE_OUT -C $PATH_TMP . || exit 1
     142tar -czf $FILE_OUT -C $PATH_OUT . || exit 1
    133143
    134144# Remove the temporary directory
    135 rm -r $PATH_TMP
     145rm -r $PATH_OUT
    136146
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette