Update to new buildsystem and bump

This commit is contained in:
Mario Fetka 2013-02-24 20:50:44 +01:00
parent 02dd959db4
commit 1102626ece
16 changed files with 177 additions and 291 deletions

View File

@ -0,0 +1 @@
e04181c986dd0fb743217be77b6189c04d9efbd2 /home/mario/.opsi-dist-cache/microsoft.sysinternalssuite-2013.02.05//4725624070_c439bb68e6.jpg

View File

@ -1 +0,0 @@
e04181c986dd0fb743217be77b6189c04d9efbd2 /usr/portage/distfiles/5d1f00e5863469ec.jpg

View File

@ -30,7 +30,7 @@
; //
; // Purpose: Installs the Sysinternals Suite
; //
; // Updated: May 18, 2011
; // Updated: February 5, 2013
; //
; // INF File Generation Script version: 1.0.0
; //
@ -108,6 +108,7 @@ DMON.SYS
du.exe
efsdump.exe
Eula.txt
FindLinks.exe
handle.exe
hex2dec.exe
junction.exe
@ -128,7 +129,6 @@ PORTMON.HLP
procdump.exe
procexp.chm
procexp.exe
ProcFeatures.exe
procmon.chm
Procmon.exe
PsExec.exe
@ -136,10 +136,11 @@ psfile.exe
PsGetsid.exe
PsInfo.exe
pskill.exe
PsList.exe
pslist.exe
PsLoggedon.exe
psloglist.exe
pspasswd.exe
psping.exe
PsService.exe
psshutdown.exe
pssuspend.exe
@ -161,6 +162,7 @@ sync.exe
Tcpvcon.exe
tcpview.chm
Tcpview.exe
TCPVIEW.HLP
Vmmap.chm
vmmap.exe
Volumeid.exe
@ -265,7 +267,7 @@ setup.ini, group2,,"""%PsToolsDesc%""
[Strings]
DisplayName = "Sysinternals Suite (Uninstall only)"
DisplayVersion = "May 18, 2011"
DisplayVersion = "February 5, 2013"
SysinternalsSuiteGroup = "Sysinternals Suite"
SysinternalsSuiteCmdPrompt = "Sysinternals Suite Command Prompt"

View File

@ -4,11 +4,19 @@
; credits: http://www.opsi.org/credits/
Set $MsiId$ = '{BB05D173-9681-4812-A7FA-BD4042A3DA00}'
Set $UninstallProgram$ = $InstallDir$ + "\uninstall.exe"
Set $IniFile$ = $InstallDir$ + "\opsi-" + $ProductId$ + ".ini"
Message "Uninstalling " + $ProductId$ + " ..."
if FileExists($IniFile$)
Set $MsiIdOld$ = GetValueFromInifile($IniFile$,"X86","MsiId","{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}")
if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiIdOld$ + "] DisplayName") = "")
comment "Old MSI id " + $MsiIdOld$ + " found in registry, starting msiexec to uninstall old version"
Winbatch_uninstall_msi_old
sub_check_exitcode
endif
endif
if FileExists($UninstallProgram$)
comment "Uninstall program found, starting uninstall"
Winbatch_uninstall
@ -30,19 +38,13 @@ comment "Delete program shortcuts"
LinkFolder_uninstall
[Winbatch_uninstall]
; Choose one of the following examples as basis for program uninstall
;
; === Nullsoft Scriptable Install System ================================================================
; "$UninstallProgram$" /S
;
; === Inno Setup ========================================================================================
; "$UninstallProgram$" /silent /norestart
rundll32 advpack.dll,LaunchINFSection $InstallInf$,UnInstall
[Winbatch_uninstall_msi_old]
msiexec /x $MsiIdOld$ /qb! REBOOT=ReallySuppress
[Winbatch_uninstall_msi]
rundll32 advpack.dll,LaunchINFSection %ScriptPath%\X86FILE,UnInstall
msiexec /x $MsiId$ /qb! REBOOT=ReallySuppress
[Files_uninstall]
; Example for recursively deleting the installation directory (don't forget the trailing backslash):

View File

@ -0,0 +1,11 @@
[X86]
MsiId={XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
MsiId32={XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
[X86_64]
MsiId={XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
MsiId64={XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
[COMMON]
PN=name
VERSION=version

View File

@ -6,8 +6,11 @@
[Actions]
requiredWinstVersion >= "4.10.8.6"
DefVar $MsiId$
; DefVar $MsiId$
DefVar $MsiIdOld$
DefVar $UninstallProgram$
DefVar $IniFile$
DefVar $IniCfgFile$
DefVar $LogDir$
DefVar $ProductId$
DefVar $MinimumSpace$
@ -19,16 +22,27 @@ DefVar $LicensePool$
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 -
; ----------------------------------------------------------------
;$ProductId$ should be the name of the product in opsi
; therefore please: only lower letters, no umlauts,
; no white space use '-' as a seperator
Set $ProductId$ = "sysinternalssuite"
Set $ProductId$ = "microsoft.sysinternalssuite"
Set $MinimumSpace$ = "15 MB"
; the path were we find the product after the installation
Set $InstallDir$ = "%ProgramFiles32Dir%\Sysinternals Suite"
Set $IniCfgFile$ = "%ScriptPath%\opsi-" + $ProductId$ + ".ini"
Set $LicenseRequired$ = "false"
Set $LicensePool$ = "p_" + $ProductId$
; ----------------------------------------------------------------
@ -41,10 +55,10 @@ else
comment "Show product picture"
ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$
; if FileExists("%ScriptPath%\delsub32.ins")
; comment "Start uninstall sub section"
; Sub "%ScriptPath%\delsub32.ins"
; endif
if FileExists("%ScriptPath%\delsub32.ins")
comment "Start uninstall sub section"
Sub "%ScriptPath%\delsub32.ins"
endif
Message "Installing " + $ProductId$ + " ..."
@ -78,18 +92,13 @@ else
endif
[Winbatch_install]
; Choose one of the following examples as basis for your installation
; You can use $LicenseKey$ var to pass a license key to the installer
;
rundll32 setupapi,InstallHinfSection DefaultInstall 132 %ScriptPath%\Install_SysinternalsSuite.inf
rundll32 setupapi,InstallHinfSection DefaultInstall 132 %ScriptPath%\AcceptEULA.inf
;
rundll32 setupapi,InstallHinfSection DefaultInstall 132 $InstallInf$
; rundll32 setupapi,InstallHinfSection DefaultInstall 132 $AcceptInf$
[Files_install]
; copy the ini file to the InstallDir
copy "$IniCfgFile$" "$InstallDir$"
; Example of recursively copying some files into the installation directory:
;
; copy -s "%ScriptPath%\files\*.*" "$InstallDir$"

View File

@ -6,9 +6,12 @@
[Actions]
requiredWinstVersion >= "4.10.8.6"
DefVar $MsiId$
; DefVar $MsiId$
DefVar $MsiIdOld$
DefVar $UninstallProgram$
DefVar $LogDir$
DefVar $IniFile$
DefVar $IniCfgFile$
DefVar $ExitCode$
DefVar $ProductId$
DefVar $InstallDir$
@ -17,10 +20,20 @@ DefVar $LicensePool$
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 -
; ----------------------------------------------------------------
Set $ProductId$ = "sysinternalssuite"
Set $ProductId$ = "microsoft.sysinternalssuite"
Set $InstallDir$ = "%ProgramFiles32Dir%\Sysinternals Suite"
Set $LicenseRequired$ = "false"
Set $LicensePool$ = "p_" + $ProductId$
@ -32,10 +45,10 @@ ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$
Message "Uninstalling " + $ProductId$ + " ..."
; if FileExists("%ScriptPath%\delsub32.ins")
; comment "Start uninstall sub section"
; Sub "%ScriptPath%\delsub32.ins"
; endif
if FileExists("%ScriptPath%\delsub32.ins")
comment "Start uninstall sub section"
Sub "%ScriptPath%\delsub32.ins"
endif
if $LicenseRequired$ = "true"
comment "Licensing required, free license used"
@ -43,23 +56,16 @@ if $LicenseRequired$ = "true"
endif
[Sub_free_license]
if opsiLicenseManagementEnabled
comment "License management is enabled and will be used"
comment "Trying to free license used for the product"
DefVar $result$
Set $result$ = FreeLicense($LicensePool$)
; If there is an assignment of a license pool to the product, it is possible to use
; Set $result$ = FreeLicense("", $ProductId$)
;
; If there is an assignment of a license pool to a windows software id, it is possible to use
; DefVar $WindowsSoftwareId$
; $WindowsSoftwareId$ = "..."
; set $result$ = FreeLicense("", "", $WindowsSoftwareId$)
else
LogError "Error: licensing required, but license management not enabled"
isFatalError
endif
comment "License management is enabled and will be used"
comment "Trying to free license used for the product"
DefVar $result$
Set $result$ = FreeLicense($LicensePool$)
; If there is an assignment of a license pool to the product, it is possible to use
; Set $result$ = FreeLicense("", $ProductId$)
;
; If there is an assignment of a license pool to a windows software id, it is possible to use
; DefVar $WindowsSoftwareId$
; $WindowsSoftwareId$ = "..."
; set $result$ = FreeLicense("", "", $WindowsSoftwareId$)

View File

@ -1,103 +0,0 @@
opsi-template (4.0-1) stable; urgency=low
* requires opsi.winst 4.10.8
* default: 32Bit Version
* additional: 64Bit Version
* additional: 32/64Bit Version
-- detlef oertel <d.oertel@uib.de> Wed, 18 Jan 2011 16:01:53 +0200
opsi-template (1.0-20) stable; urgency=low
* removed EnvVar("temp")
* all variable definitions at top
* new loglevel
* removed $NewExe$
* more infos for inno setup
* removed number at showBitmap
* Initial section removed
* example for $installDir$ changed
-- detlef oertel <d.oertel@uib.de> Wed, 14 Apr 2010 16:01:53 +0200
opsi-template (1.0-19) stable; urgency=low
* adding 'Installshield + MSI' to the Winbatch_install section
* changing to 'if $LicenseRequired$ = "true"' from 'if not ($LicenseRequired$ = "false")'
* changed from <productid>.ins to 'setup.ins'
-- detlef oertel <d.oertel@uib.de> Tue, 26 Jan 2010 16:01:53 +0200
opsi-template (1.0-18) stable; urgency=low
* bug fix in the successful request (comment out)
opsi-template (1.0-17) stable; urgency=low
* bug fix in delsub.ins : deleting a shortcut from AllUsers desktop
-- detlef oertel <d.oertel@uib.de> Mon, 28 Sep 2009 16:01:53 +0200
opsi-template (1.0-16) stable; urgency=low
* Added some examples for other installers
* Some cleanups
* More examples in other sections
-- Jan Schneider <j.schneider@uib.de> Fri, 18 Sep 2009 13:01:53 +0200
opsi-template (1.0-15) stable; urgency=low
* bugfix for delopsi-template
-- Rupert Roeder <r.roeder@uib.de> Mon, 06 Jun 2009 11:15:00 +0100
opsi-template (1.0-14) stable; urgency=low
* bugfix for delopsi-template
-- Rupert Roeder <r.roeder@uib.de> Tue, 26 May 2009 11:15:00 +0100
opsi-template (1.0-13) stable; urgency=low
* some corrections
-- Rupert Roeder <r.roeder@uib.de> Tue, 26 May 2009 11:15:00 +0100
opsi-template (1.0-12) stable; urgency=low
* code for license management added
-- Rupert Roeder <r.roeder@uib.de> Tue, 19 May 2009 11:15:00 +0100
opsi-template (1.0-11) stable; urgency=low
* sub_check_exitcode modified
* sub_check_exitcode 1641 added
* sub_check_exitcode integrated in delsub.ins
-- Detlef Oertel <d.oertel@uib.de> Mon, 18 May 2009 14:15:00 +0100
opsi-template (1.0-10) stable; urgency=low
* modified test on exit code added 3010 success restart required
-- bardo wolf
opsi-template (1.0-9) stable; urgency=low
* renamed from softprod to opsi-template
* added test on exit code
-- Detlef Oertel <d.oertel@uib.de> Fri, 13 Mar 2009 12:35:32 +0100
opsi-template (1.0-8) stable; urgency=low
* comment Anweisungen
* delsub:
[Files_uninstall]
;something like (don't forget the trailing backslash)
;delete -sf "$InstallDir$\"
-- Detlef Oertel <d.oertel@uib.de> Wed, 5 Nov 2008 17:00:00 +0100

View File

@ -5,7 +5,7 @@ incremental: False
[Product]
type: localboot
id: sysinternalssuite
id: microsoft.sysinternalssuite
name: Sysinternals Suite
description: The Sysinternals Troubleshooting Utilities have been rolled up into a single Suite of tools.
advice: ADVICE
@ -30,10 +30,3 @@ description: which architecture (32/64 bit) has to be installed
values: ["32 only", "64 only", "both", "system specific"]
default: ["system specific"]
[ProductDependency]
action: setup
requiredProduct: alky
requiredStatus: installed
requirementType: before

View File

@ -0,0 +1 @@
e18b12f871a48034518550cf42481d838e5bddb6 /home/mario/.opsi-dist-cache/microsoft.sysinternalssuite-2013.02.05/X86/SysinternalsSuite-2013.02.05.zip

View File

@ -1 +0,0 @@
2565f69d4d7cca80923b881893ffec1a7165fd0c /usr/portage/distfiles/SysinternalsSuite.zip

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: ??

123
build.sh
View File

@ -1,123 +0,0 @@
#!/bin/sh
PN="sysinternalssuite"
VERSION="2011.05.18"
RELEASE="2"
PRIORITY="0"
ADVICE=""
TYPE="restrict"
# all downloads should not have any traling parameters like ?downlaodid=1234 .....(should rewrite in python)
ICON="http://www.chip.de/ii/3/4/2/4/2/5/5/5d1f00e5863469ec.jpg"
X86="http://download.sysinternals.com/Files/SysinternalsSuite.zip"
#AMD64="http://downloads.sourceforge.net/sevenzip/7z920-x64.msi"
ICONFILE=${ICON##*/}
X86FILE=${X86##*/}
X86FILEINF="Install_SysinternalsSuite.inf"
#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
unzip -d $OUT/$PN/CLIENT_DATA /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/$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!$X86FILEINF!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

36
builder-product.cfg Normal file
View File

@ -0,0 +1,36 @@
############################
# Setup product information
############################
VENDOR="sysinternals.com"
PN="microsoft.sysinternalssuite"
VERSION="2013.02.05"
RELEASE="3"
PRIORITY="0"
ADVICE=""
# TYPE - defines, if the install files are public or restricted.
# Valid value: restricted | public
TYPE="restricted"
DL_FILE[0]="4725624070_c439bb68e6.jpg"
DL_SOURCE[0]="http://download.chip.eu/ii/4725624070_c439bb68e6.jpg"
DL_FILE[1]="SysinternalsSuite-$VERSION.zip"
DL_SOURCE[1]="http://download.sysinternals.com/files/SysinternalsSuite.zip"
DL_ARCH[1]="X86"
DL_EXTRACT_FORMAT[1]="unzip"
# File array index for the image showing while installing the program
ICON_DL_INDEX=0
WINST_NAME[0]="MsiId"
WINST_VALUE[0]="{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"
WINST_NAME[1]="InstallInf"
WINST_VALUE[1]="@DL_EXTRACT_WINST_PATH[1]@\\Install_SysinternalsSuite.inf"
WINST_NAME[1]="AcceptInf"
WINST_VALUE[1]="@DL_EXTRACT_WINST_PATH[1]@\\AcceptEULA.inf"

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
}