move to new build iand install system

This commit is contained in:
Mario Fetka 2012-02-15 17:11:49 +01:00
parent b966aff056
commit 3b98bcaaa6
14 changed files with 190 additions and 185 deletions

View File

@ -4,9 +4,9 @@
; credits: http://www.opsi.org/credits/ ; credits: http://www.opsi.org/credits/
Set $MsiId$ = '{1E38D402-2678-4668-9812-45CD06658846}' Set $MsiId$ = '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}'
; Set $MsiIdHelp$ = '{BC8B55D1-5B97-4882-9345-0D16FB25A76A}' Set $MsiIdHelp$ = '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}'
Set $UninstallProgram$ = $InstallDir$ + "\iv_uninstall.exe" Set $UninstallProgram$ = $InstallDir$ + "\uninstall.exe"
Message "Uninstalling " + $ProductId$ + " ..." Message "Uninstalling " + $ProductId$ + " ..."
@ -20,6 +20,11 @@ if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
Winbatch_uninstall_msi Winbatch_uninstall_msi
sub_check_exitcode sub_check_exitcode
endif endif
if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiIdHelp$ + "] DisplayName") = "")
comment "MSI id " + $MsiIdHelp$ + " found in registry, starting msiexec to uninstall"
Winbatch_uninstall_msi_help
sub_check_exitcode
endif
comment "Delete files" comment "Delete files"
Files_uninstall /32Bit Files_uninstall /32Bit
@ -33,13 +38,19 @@ LinkFolder_uninstall
[Winbatch_uninstall] [Winbatch_uninstall]
; Choose one of the following examples as basis for program uninstall ; Choose one of the following examples as basis for program uninstall
; ;
"$UninstallProgram$" /silent ; === Nullsoft Scriptable Install System ================================================================
; "$UninstallProgram$" /S
;
; === Inno Setup ========================================================================================
; "$UninstallProgram$" /silent /norestart /SUPPRESSMSGBOXES
[Winbatch_uninstall_msi] [Winbatch_uninstall_msi]
msiexec /x {B645E138-3386-442F-B8A3-5237D82E7365} /qb! REBOOT=ReallySuppress
msiexec /x {BC8B55D1-5B97-4882-9345-0D16FB25A76A} /qb! REBOOT=ReallySuppress
msiexec /x $MsiId$ /qb! REBOOT=ReallySuppress msiexec /x $MsiId$ /qb! REBOOT=ReallySuppress
[Winbatch_uninstall_msi_help]
msiexec /x $MsiIdHelp$ /qb! REBOOT=ReallySuppress
[Files_uninstall] [Files_uninstall]
; Example for recursively deleting the installation directory (don't forget the trailing backslash): ; Example for recursively deleting the installation directory (don't forget the trailing backslash):
; ;

View File

@ -7,6 +7,7 @@
requiredWinstVersion >= "4.10.8.6" requiredWinstVersion >= "4.10.8.6"
DefVar $MsiId$ DefVar $MsiId$
DefVar $MsiIdHelp$
DefVar $UninstallProgram$ DefVar $UninstallProgram$
DefVar $LogDir$ DefVar $LogDir$
DefVar $ProductId$ DefVar $ProductId$
@ -19,6 +20,16 @@ DefVar $LicensePool$
Set $LogDir$ = "%SystemDrive%\tmp" Set $LogDir$ = "%SystemDrive%\tmp"
; The token BUILDER_VARIABLES will be replaced by opsi-builder.sh
; and adds the following variables:
; from builder-product.cfg : all variables definded by attribute WINST[index]
; from builder-product.cfg : VENDOR PN VERSION RELEASE PRIORITY ADVICE TYPE
; from opsi-builder.cfg : CREATOR_TAG CREATOR_NAME CREATOR_EMAIL
; auto generated winst-variables
; $IconFile$: path to product picture
;
@@BUILDER_VARIABLES@@
; ---------------------------------------------------------------- ; ----------------------------------------------------------------
; - Please edit the following values - ; - Please edit the following values -
; ---------------------------------------------------------------- ; ----------------------------------------------------------------
@ -28,7 +39,7 @@ Set $LogDir$ = "%SystemDrive%\tmp"
Set $ProductId$ = "libreoffice" Set $ProductId$ = "libreoffice"
Set $MinimumSpace$ = "1500 MB" Set $MinimumSpace$ = "1500 MB"
; the path were we find the product after the installation ; the path were we find the product after the installation
Set $InstallDir$ = "%ProgramFiles32Dir%\LibreOffice 3.4" Set $InstallDir$ = "%ProgramFiles32Dir%\Libreoffice 3.5"
Set $LicenseRequired$ = "false" Set $LicenseRequired$ = "false"
Set $LicensePool$ = "p_" + $ProductId$ Set $LicensePool$ = "p_" + $ProductId$
; ---------------------------------------------------------------- ; ----------------------------------------------------------------
@ -57,6 +68,10 @@ else
Winbatch_install Winbatch_install
Sub_check_exitcode Sub_check_exitcode
comment "Start setup program"
Winbatch_install_help
Sub_check_exitcode
comment "Copy files" comment "Copy files"
Files_install /32Bit Files_install /32Bit
@ -81,8 +96,53 @@ endif
; Choose one of the following examples as basis for your installation ; Choose one of the following examples as basis for your installation
; You can use $LicenseKey$ var to pass a license key to the installer ; You can use $LicenseKey$ var to pass a license key to the installer
; ;
msiexec /i "%ScriptPath%\office\libreoffice34.msi" /l* "$LogDir$\$ProductId$.install_log.txt" /qb! ALLUSERS=2 REBOOT=ReallySuppress ; === Nullsoft Scriptable Install System ================================================================
msiexec /i "%ScriptPath%\help\libreoffice34.msi" /l* "$LogDir$\$ProductId$.install_log.txt" /qb! ALLUSERS=2 REBOOT=ReallySuppress ; "%ScriptPath%\Setup.exe" /S
;
; === MSI package =======================================================================================
; You may use the parameter PIDKEY=$Licensekey$
msiexec /i "$InstallMsi$" /l* "$LogDir$\$ProductId$.install_log.txt" /qb! ALLUSERS=2 REBOOT=ReallySuppress
;
; === InstallShield + MSI=====================================================================================
; Attention: The path to the log file should not contain any whitespaces
; "%ScriptPath%\setup.exe" /s /v" /l* $LogDir$\$ProductId$.install_log.txt /qb! ALLUSERS=2 REBOOT=ReallySuppress"
; "%ScriptPath%\setup.exe" /s /v" /qb! ALLUSERS=2 REBOOT=ReallySuppress"
;
; === InstallShield =====================================================================================
; Create setup.iss answer file by running: setup.exe /r /f1"c:\setup.iss"
; "%ScriptPath%\setup.exe" /s /sms /f1"%ScriptPath%\setup.iss" /f2"$LogDir$\$ProductId$.install_log.txt"
;
; === Inno Setup ========================================================================================
; http://unattended.sourceforge.net/InnoSetup_Switches_ExitCodes.html
; You may create setup answer file by: setup.exe /SAVEINF="filename"
; You may use an answer file by the parameter /LOADINF="filename"
; "%ScriptPath%\setup.exe" /sp- /silent /norestart /SUPPRESSMSGBOXES
[Winbatch_install_help]
; Choose one of the following examples as basis for your installation
; You can use $LicenseKey$ var to pass a license key to the installer
;
; === Nullsoft Scriptable Install System ================================================================
; "%ScriptPath%\Setup.exe" /S
;
; === MSI package =======================================================================================
; You may use the parameter PIDKEY=$Licensekey$
msiexec /i "$InstallHelpMsi$" /l* "$LogDir$\$ProductId$.install_log.txt" /qb! ALLUSERS=2 REBOOT=ReallySuppress
;
; === InstallShield + MSI=====================================================================================
; Attention: The path to the log file should not contain any whitespaces
; "%ScriptPath%\setup.exe" /s /v" /l* $LogDir$\$ProductId$.install_log.txt /qb! ALLUSERS=2 REBOOT=ReallySuppress"
; "%ScriptPath%\setup.exe" /s /v" /qb! ALLUSERS=2 REBOOT=ReallySuppress"
;
; === InstallShield =====================================================================================
; Create setup.iss answer file by running: setup.exe /r /f1"c:\setup.iss"
; "%ScriptPath%\setup.exe" /s /sms /f1"%ScriptPath%\setup.iss" /f2"$LogDir$\$ProductId$.install_log.txt"
;
; === Inno Setup ========================================================================================
; http://unattended.sourceforge.net/InnoSetup_Switches_ExitCodes.html
; You may create setup answer file by: setup.exe /SAVEINF="filename"
; You may use an answer file by the parameter /LOADINF="filename"
; "%ScriptPath%\setup.exe" /sp- /silent /norestart /SUPPRESSMSGBOXES
[Files_install] [Files_install]
; Example of recursively copying some files into the installation directory: ; Example of recursively copying some files into the installation directory:

View File

@ -7,6 +7,7 @@
requiredWinstVersion >= "4.10.8.6" requiredWinstVersion >= "4.10.8.6"
DefVar $MsiId$ DefVar $MsiId$
DefVar $MsiIdHelp$
DefVar $UninstallProgram$ DefVar $UninstallProgram$
DefVar $LogDir$ DefVar $LogDir$
DefVar $ExitCode$ DefVar $ExitCode$
@ -17,11 +18,21 @@ DefVar $LicensePool$
Set $LogDir$ = "%SystemDrive%\tmp" Set $LogDir$ = "%SystemDrive%\tmp"
; The token BUILDER_VARIABLES will be replaced by opsi-builder.sh
; and adds the following variables:
; from builder-product.cfg : all variables definded by attribute WINST[index]
; from builder-product.cfg : VENDOR PN VERSION RELEASE PRIORITY ADVICE TYPE
; from opsi-builder.cfg : CREATOR_TAG CREATOR_NAME CREATOR_EMAIL
; auto generated winst-variables
; $IconFile$: path to product picture
;
@@BUILDER_VARIABLES@@
; ---------------------------------------------------------------- ; ----------------------------------------------------------------
; - Please edit the following values - ; - Please edit the following values -
; ---------------------------------------------------------------- ; ----------------------------------------------------------------
Set $ProductId$ = "libreoffice" Set $ProductId$ = "libreoffice"
Set $InstallDir$ = "%ProgramFiles32Dir%\LibreOffice 3.4" Set $InstallDir$ = "%ProgramFiles32Dir%\Libreoffice 3.5"
Set $LicenseRequired$ = "false" Set $LicenseRequired$ = "false"
Set $LicensePool$ = "p_" + $ProductId$ Set $LicensePool$ = "p_" + $ProductId$
; ---------------------------------------------------------------- ; ----------------------------------------------------------------
@ -43,7 +54,6 @@ if $LicenseRequired$ = "true"
endif endif
[Sub_free_license] [Sub_free_license]
if opsiLicenseManagementEnabled
comment "License management is enabled and will be used" comment "License management is enabled and will be used"
comment "Trying to free license used for the product" comment "Trying to free license used for the product"
@ -56,10 +66,4 @@ if opsiLicenseManagementEnabled
; DefVar $WindowsSoftwareId$ ; DefVar $WindowsSoftwareId$
; $WindowsSoftwareId$ = "..." ; $WindowsSoftwareId$ = "..."
; set $result$ = FreeLicense("", "", $WindowsSoftwareId$) ; set $result$ = FreeLicense("", "", $WindowsSoftwareId$)
else
LogError "Error: licensing required, but license management not enabled"
isFatalError
endif

View File

@ -1 +0,0 @@
ebd2815a41d4cb257265fcfa2c42ee0359981445 /usr/portage/distfiles/LibO_3.4.5_Win_x86_helppack_de.exe

View File

@ -1 +0,0 @@
ed740e44329bf5443741de3ea6eff8ffe3455820 /usr/portage/distfiles/LibO_3.4.5_Win_x86_install_multi.exe

View File

@ -0,0 +1 @@
0573c872c69eb71e8c0a93913e95c2f50dce3aac /home/mario/.opsi-dist-cache/libreoffice-3.5.0/X86/LibO_3.5.0_Win_x86_helppack_de.msi

View File

@ -0,0 +1 @@
e2508feb1b457ee534f56d11aa28ba2f2380aecd /home/mario/.opsi-dist-cache/libreoffice-3.5.0/X86/LibO_3.5.0_Win_x86_install_multi.msi

28
Testing.txt Normal file
View File

@ -0,0 +1,28 @@
*** Qualitiymanagement/Testing procedure
- Product:
- Name: productname
- Version: xxx
- Release: yyyy
- Environment
- OS: Native windows XP-32Bit installation
- Preinstalled packages: None (also no aio)
- Files used while testing:
File1: http://domain.de/file.ext
- Testing process:
OPSI-action:
- Installation (without dependencies like AIO/Firefox): ??
Result:
- File extensions related to program: ??
- Start menu entry: ??
- Starting/using program: viewer works, File1 is shown correctly: ??
OPSI-action:
- Uninstall
Result:
- File extensions related to program: unrelated: ??
- Start menu entry: none: ??

150
build.sh
View File

@ -1,150 +0,0 @@
#!/bin/sh
PN="libreoffice"
VERSION="3.4.5"
RELEASE="1"
PRIORITY="0"
ADVICE=""
TYPE="public"
# all downloads should not have any traling parameters like ?downlaodid=1234 .....(should rewrite in python)
ICON="http://blog.mageia.org/en/wp-content/uploads/2010/11/libre-office-2.png"
X86="http://download.documentfoundation.org/libreoffice/stable/${VERSION}/win/x86/LibO_${VERSION}_Win_x86_install_multi.exe"
X86HELP="http://download.documentfoundation.org/libreoffice/stable/${VERSION}/win/x86/LibO_${VERSION}_Win_x86_helppack_de.exe"
#AMD64="http://downloads.sourceforge.net/sevenzip/7z920-x64.msi"
ICONFILE=${ICON##*/}
X86FILE=${X86##*/}
X86HELPFILE=${X86HELP##*/}
#AMD64FILE=${AMD64##*/}
if [ -e /var/tmp/opsi/upload/$TYPE/${PN}_${VERSION}-${RELEASE}.opsi ]
then
echo "package ${PN}_${VERSION}-${RELEASE}.opsi already generated"
exit 1
fi
OUT=$(mktemp -d /tmp/output.XXXXXXXXXX) || { echo "Failed to create temp dir"; exit 1; }
mkdir $OUT/$PN
cp -Rv OPSI CLIENT_DATA $OUT/$PN
unix2dos $OUT/$PN/CLIENT_DATA/*
if [ -e /usr/portage/distfiles/$ICONFILE ]
then
if [ -e $ICONFILE.sha1sum ]
then
SHA1SUM=`cat $ICONFILE.sha1sum`
CHECKSUM=`sha1sum /usr/portage/distfiles/$ICONFILE`
if [ "$CHECKSUM" = "$SHA1SUM" ]
then
convert -colorspace rgb /usr/portage/distfiles/$ICONFILE -transparent white -background transparent -resize 160x160\> \
-size 160x160 xc:transparent +swap -gravity center -composite $OUT/$PN/CLIENT_DATA/$PN.png
else
echo "The checksums do not match."
exit 1
fi
else
echo "You need to create the checksums with: sha1sum /usr/portage/distfiles/$ICONFILE > $ICONFILE.sha1sum"
exit 1
fi
else
echo "Downloading file"
wget -P /usr/portage/distfiles/ $ICON
exit 1
fi
if [ -e /usr/portage/distfiles/$X86FILE ]
then
if [ -e $X86FILE.sha1sum ]
then
SHA1SUM=`cat $X86FILE.sha1sum`
CHECKSUM=`sha1sum /usr/portage/distfiles/$X86FILE`
if [ "$CHECKSUM" = "$SHA1SUM" ]
then
#cp /usr/portage/distfiles/$X86FILE $OUT/$PN/CLIENT_DATA
mkdir -p $OUT/$PN/CLIENT_DATA/office
7z x -o$OUT/$PN/CLIENT_DATA/office /usr/portage/distfiles/$X86FILE
else
echo "The checksums do not match."
exit 1
fi
else
echo "You need to create the checksums with: sha1sum /usr/portage/distfiles/$X86FILE > $X86FILE.sha1sum"
exit 1
fi
else
echo "Downloading file"
wget -O /usr/portage/distfiles/$X86FILE $X86
exit 1
fi
if [ -e /usr/portage/distfiles/$X86HELPFILE ]
then
if [ -e $X86HELPFILE.sha1sum ]
then
SHA1SUM=`cat $X86HELPFILE.sha1sum`
CHECKSUM=`sha1sum /usr/portage/distfiles/$X86HELPFILE`
if [ "$CHECKSUM" = "$SHA1SUM" ]
then
#cp /usr/portage/distfiles/$X86HELPFILE $OUT/$PN/CLIENT_DATA
mkdir -p $OUT/$PN/CLIENT_DATA/help
7z x -o$OUT/$PN/CLIENT_DATA/help /usr/portage/distfiles/$X86HELPFILE
else
echo "The checksums do not match."
exit 1
fi
else
echo "You need to create the checksums with: sha1sum /usr/portage/distfiles/$X86HELPFILE > $X86HELPFILE.sha1sum"
exit 1
fi
else
echo "Downloading file"
wget -O /usr/portage/distfiles/$X86HELPFILE $X86HELP
exit 1
fi
# if [ -e /usr/portage/distfiles/$AMD64FILE ]
# then
# if [ -e $AMD64FILE.sha1sum ]
# then
# SHA1SUM=`cat $AMD64FILE.sha1sum`
# CHECKSUM=`sha1sum /usr/portage/distfiles/$AMD64FILE`
# if [ "$CHECKSUM" = "$SHA1SUM" ]
# then
# cp /usr/portage/distfiles/$AMD64FILE $OUT/$PN/CLIENT_DATA
# else
# echo "The checksums do not match."
# exit 1
# fi
# else
# echo "You need to create the checksums with: sha1sum /usr/portage/distfiles/$AMD64FILE > $AMD64FILE.sha1sum"
# exit 1
# fi
# else
# echo "Downloading file"
# wget -P /usr/portage/distfiles/ $AMD64
# exit 1
# fi
sed -e "s!VERSION!$VERSION!g" -e "s!RELEASE!$RELEASE!g" -e "s!PRIORITY!$PRIORITY!g" -e "s!ADVICE!$ADVICE!g" -i $OUT/$PN/OPSI/control
#sed -e "s!X86FILE!$X86FILE!g" -e "s!AMD64FILE!$AMD64FILE!g" -i $OUT/$PN/CLIENT_DATA/setup.ins
sed -e "s!X86FILE!$X86FILE!g" -e "s!X86HELPFILE!$X86HELPFILE!g" -i $OUT/$PN/CLIENT_DATA/setup32.ins
if test -d ".git"; then
git log --date-order --date=short | \
sed -e '/^commit.*$/d' | \
awk '/^Author/ {sub(/\\$/,""); getline t; print $0 t; next}; 1' | \
sed -e 's/^Author: //g' | \
sed -e 's/>Date: \([0-9]*-[0-9]*-[0-9]*\)/>\t\1/g' | \
sed -e 's/^\(.*\) \(\)\t\(.*\)/\3 \1 \2/g' > $OUT/$PN/OPSI/changelog.txt
else
echo "No git repository present."
exit 1
fi
pushd $OUT
opsi-makeproductfile -v $OUT/$PN
popd
mkdir -p /var/tmp/opsi/upload/$TYPE/
cp -afv $OUT/*.opsi /var/tmp/opsi/upload/$TYPE/
#rm -rf $OUT

31
builder-product.cfg Normal file
View File

@ -0,0 +1,31 @@
############################
# Setup product information
############################
VENDOR="libreoffice.org"
PN="libreoffice"
VERSION="3.5.0"
RELEASE="1"
PRIORITY="0"
ADVICE=""
# TYPE - defines, if the install files are public or restricted.
# Valid value: restricted | public
TYPE="public"
DL_FILE[0]="libreoffice-logo-150x150.png"
DL_SOURCE[0]="http://www.bitblokes.de/wp-content/uploads/2010/10/libreoffice-logo-150x150.png"
DL_FILE[1]="LibO_${VERSION}_Win_x86_install_multi.msi"
DL_SOURCE[1]="http://download.documentfoundation.org/libreoffice/stable/${VERSION}/win/x86/LibO_${VERSION}_Win_x86_install_multi.msi"
DL_ARCH[1]="X86"
DL_WINST_NAME[1]=InstallMsi
DL_FILE[2]="LibO_${VERSION}_Win_x86_helppack_de.msi"
DL_SOURCE[2]="http://download.documentfoundation.org/libreoffice/stable/${VERSION}/win/x86/LibO_${VERSION}_Win_x86_helppack_de.msi"
DL_ARCH[2]="X86"
DL_WINST_NAME[2]=InstallHelpMsi
# File array index for the image showing while installing the program
ICON_DL_INDEX=0

25
builder-targets-cb.sh Normal file
View File

@ -0,0 +1,25 @@
##############################################################################
# This optional file "builder-targets-cb.sh" will be called by builder.sh
#
# The targets will be called from thde opsi-builder using the following
# order: config, prepare, retrieve, create, package, publish, commit, cleanup
# You can overwrite the target functions in builder-targets-cb.sh
#
# You can define callback functions. The functions are called from
# opsi-builder within processing a target
# cb_package_makeproductfile
#
# You can use every variable defined in any configuration file or by
# the defined builder script itself. Also, calling the predefined
# targets builder_<targetname> is possible.
#
# Abstract:
# target order: config, prepare, retrieve, create, package, publish, commit, cleanup
# callbacks: <none>
#
##############################################################################
function cleanup() {
echo "Cleanup"
builder_cleanup
}

View File

@ -1 +0,0 @@
927fd3d3ccab83543d80bf7160e0cad9359bced3 /usr/portage/distfiles/libre-office-2.png

View File

@ -0,0 +1 @@
54f35838360f6ce4472a8fc35fd7972614207c9b /home/mario/.opsi-dist-cache/libreoffice-3.5.0//libreoffice-logo-150x150.png

4
todo
View File

@ -1,4 +0,0 @@
ToDo:
* add extensions install
Done: