summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2023-03-30 16:17:04 +0200
committerXisco Fauli <xiscofauli@libreoffice.org>2023-03-30 16:17:04 +0200
commitb7f4b60aa94cd1be4ca456e5b6ab93c093824bcd (patch)
tree64dd540578a17e345bd4c0af518396602764bc45
parent0a2da8bb7e9b6dadd4acf66ca8fdb2c5181d0d6b (diff)
Add script for building win-86-releases
Change-Id: Ic08cdceb78086d6832fdd834a8b87e32760888a5
-rwxr-xr-xbibisect/buildWinReleasesRepository.sh154
1 files changed, 154 insertions, 0 deletions
diff --git a/bibisect/buildWinReleasesRepository.sh b/bibisect/buildWinReleasesRepository.sh
new file mode 100755
index 00000000..301f560a
--- /dev/null
+++ b/bibisect/buildWinReleasesRepository.sh
@@ -0,0 +1,154 @@
+#!/bin/bash
+
+#Sample: ./buildWinReleasesRepository.sh 6.3.0.0.alpha1 6.3.0.0.beta1 6.3.0.0.beta2 6.3.0.1 6.3.0.2 6.3.0.3 6.3.0.4
+
+#Path to the folder where the msi/exe files are downloaded
+rootDir=
+
+#Path to the folder where 'win-86-releases' is
+targetDir=
+
+removeOriginFolders () {
+ echo "*** Removing files in origin"
+ rm -rf $rootDir/instdir
+ rm -rf $rootDir/output
+}
+
+for var in "$@"
+do
+ isExeFile=0
+ date
+ cd $rootDir
+ input=$var
+ if [[ $input = *"alpha"* || $input = *"beta"* ]]; then
+ if [[ $input = "4.0."* ]]; then
+ file="LibreOfficeDev_${input}_Win_x86_install_multi.msi"
+ else
+ file="LibreOfficeDev_${input}_Win_x86.msi"
+ fi
+ else
+ if [[ $input = "3.3."* ]]; then
+ file="LibO_${input::-2}_Win_x86_install_all_lang.exe"
+ isExeFile=1
+ elif [[ $input = "3.4."* ]]; then
+ file="LibO_${input::-2}_Win_x86_install_multi.exe"
+ isExeFile=1
+ elif [[ $input = "3.5"* ]]; then
+ file="LibO_${input::-2}_Win_x86_install_multi.msi"
+ elif [[ $input = "3."* ]]; then
+ file="LibO_${input}_Win_x86_install_multi.msi"
+ else
+ file="LibreOffice_${input}_Win_x86.msi"
+ fi
+ fi
+ if [ ! -f $rootDir/$file ]; then
+ echo "File $rootDir/$file not found!"
+ url="https://downloadarchive.documentfoundation.org/libreoffice/old/${input}/win/x86/${file}"
+ echo "*** Downloading "
+ if wget -c ${url} -O $rootDir/${file}.tmp; then
+ mv $rootDir/${file}.tmp $rootDir/${file}
+ else
+ if [ $isExeFile -eq 1 ]; then
+ extension=".exe"
+ else
+ extension=".msi"
+ fi
+ # try harder
+ # In the past, some files used rcX. e.g: LibO_3.4.0rc1
+ file="LibO_${input::-2}rc${input: -1}_Win_x86_install_multi${extension}"
+ url="https://downloadarchive.documentfoundation.org/libreoffice/old/${input}/win/x86/${file}"
+ if wget -c ${url} -O $rootDir/${file}.tmp; then
+ mv $rootDir/${file}.tmp $rootDir/${file}
+ else
+ echo "$url doesn\'t exists"
+ break
+ fi
+ fi
+ else
+ echo "File $rootDir/$file found!"
+ fi
+
+ if [ $isExeFile -eq 1 ]; then
+ echo "*** Uncompressing exe file"
+ 7z x $rootDir/${file} -o$rootDir/exeData
+ echo "*** Extracting msi"
+ msiextract $rootDir/exeData/libreoffice3*.msi -C $rootDir/output &>/dev/null
+ echo "*** Cleaning exe folder"
+ rm -rf $rootDir/exeData/
+ else
+ echo "*** Extracting msi"
+ msiextract $rootDir/${file} -C $rootDir/output &>/dev/null
+ fi
+
+ if [[ ! -d $rootDir/output/Program\ Files/ ]]; then
+ echo "$rootDir/output/Program\ Files doesn't exists"
+ removeOriginFolders
+ break
+ fi
+
+ echo "*** Moving files to instdir folder"
+ mv $rootDir/output/Program\ Files/* $rootDir/instdir
+
+ echo "*** Moving files to program"
+ if [[ ! -d $rootDir/instdir/URE/bin/ ]]; then
+ echo "$rootDir/instdir/URE/bin/ doesn't exists"
+ removeOriginFolders
+ break
+ fi
+ mv $rootDir/instdir/URE/bin/*.dll $rootDir/instdir/program/
+
+ if [[ ! -d $rootDir/instdir/URE/misc/ ]]; then
+ echo "$rootDir/instdir/URE/misc/ doesn't exists"
+ removeOriginFolders
+ break
+ fi
+ mv $rootDir/instdir/URE/misc/*.rdb $rootDir/instdir/program/
+
+ # msvcp* and msvcr libraries
+ mv $rootDir/output/Win/System/*.dll $rootDir/instdir/program/
+
+ echo "*** Writing to uno.ini"
+ echo "[Bootstrap]
+URE_INTERNAL_LIB_DIR=\${ORIGIN}
+URE_INTERNAL_JAVA_DIR=\${ORIGIN}/classes
+URE_INTERNAL_JAVA_CLASSPATH=\${URE_MORE_JAVA_TYPES}
+UNO_TYPES=\${ORIGIN}/types.rdb \${URE_MORE_TYPES}
+UNO_SERVICES=\${ORIGIN}/services.rdb \${URE_MORE_SERVICES}" >> $rootDir/instdir/program/uno.ini
+
+ echo "*** Changing bootstrap.ini"
+ sed -i '/UserInstallation/d' $rootDir/instdir/program/bootstrap.ini
+ echo "UserInstallation=\$ORIGIN/.." >> $rootDir/instdir/program/bootstrap.ini
+
+ echo "*** Cleaning destination"
+ rm -rf ${targetDir}/instdir/
+ mkdir ${targetDir}/instdir/
+ echo "*** Moving files to destination"
+ mv $rootDir/instdir/program ${targetDir}/instdir/program
+ if [ $isExeFile -eq 1 ]; then
+ mv $rootDir/instdir/Basis ${targetDir}/instdir/Basis
+ mv $rootDir/instdir/basis-link ${targetDir}/instdir/basis-link
+ else
+ mv $rootDir/instdir/share ${targetDir}/instdir/share
+ mv $rootDir/instdir/presets ${targetDir}/instdir/presets
+
+ # it makes .exe files to work
+ touch ${targetDir}/instdir/ure-link
+
+ echo "*** Removing extensions"
+ rm -rf ${targetDir}/instdir/share/extensions/
+ fi
+ removeOriginFolders
+
+ cd ${targetDir}
+ par1=libreoffice-$input
+ echo "*** Creating commit $par1"
+ git add -A instdir/
+ git commit . -m $par1 -m $file
+ git clean -ffxd
+ git tag -d $par1
+ git tag -a $par1 -m $par1
+done
+
+cd ${targetDir}
+git gc
+