Update LibreOffice Viewer to 7.6.0.0.alpha0+/d6c54b3d4ee7

This commit is contained in:
Michael Weghorn 2023-01-11 02:06:28 +00:00 committed by linsui
parent def785d780
commit d80dfdb67f

View file

@ -1,5 +1,3 @@
AntiFeatures:
- KnownVuln
Categories:
- Reading
License: MPL-2.0
@ -377,38 +375,177 @@ Builds:
- popd
ndk: r16b
- versionName: 7.6.0.0.alpha0+/d6c54b3d4ee7/F-Droid-editing
versionCode: 16
commit: d6c54b3d4ee757958f9040a84dfbde0ab25f59bf
timeout: 43200
subdir: android/source
sudo:
- apt-get update
- apt-get install -y ant ant-optional autoconf automake bison build-essential
flex gperf junit4 nasm python3-dev libfontconfig1-dev libnss3-dev libservlet-api-java
libxml2-utils libxslt1-dev xsltproc
gradle:
- StrippedUIEditing
rm:
- onlineupdate/qa/*
- oox/qa/unit/data/*
- package/qa/cppunit/data/*
- qadevOOo/testdocs/qadevlibs/*.jar
- setup_native/source/packinfo/DS_Store*
- svx/qa/unit/data/*
- sw/qa/extras/ww8import/data/*
- test/signing-keys/random_seed
- testtools/source/cliversioning/version_libs/*.dll
- writerperfect/qa/unit/data/*
prebuild:
- pushd ../../
- sed -i -e '/debug/d' android/CustomTarget_lo_android.mk
- sed -i -e '/rm /d' -e '/gradlew/d' android/source/Makefile
- sed -i -e '/opencl.openclwrapper.hxx/d' -i -e 's/bOpenCL = .*;$/bOpenCL =
false;/' cui/source/dialogs/about.cxx
- sed -i -e '/desktop\/source\/app\/opencl/d' desktop/Library_sofficeapp.mk
- rm desktop/source/app/opencl.cxx
- sed -i '/"horst"/d' javaunohelper/test/com/sun/star/lib/uno/helper/UnoUrlTest.java
- sed -i -e '/debug/d' android/CustomTarget_lo_android.mk
- sed -i -e '/JAVA_HOME=/i CLASSPATH=/usr/share/java/servlet-api.jar \\' external/hsqldb/ExternalProject_hsqldb.mk
- ./autogen.sh --enable-release-build --with-vendor=F-Droid --with-android-package-name="org.documentfoundation.libreoffice"
--with-android-ndk=$$NDK$$ --with-android-sdk=$$SDK$$ --with-distro=LibreOfficeAndroidX86
--enable-android-editing --disable-dconf --with-build-platform-configure-options="--with-system-jpeg=no
--with-system-libxml=no --disable-dbus --disable-gconf --disable-python --disable-gui
--disable-gtk --disable-gstreamer-1.0"
- make fetch
- pushd external/tarballs
- for ARCHIVE in *.{tar.bz2,tar.gz,tar.xz,tgz}; do mkdir -p "extracted/${ARCHIVE}";
tar -C "extracted/${ARCHIVE}" -xaf "${ARCHIVE}"; rm "${ARCHIVE}"; done
- for ARCHIVE in *.zip; do mkdir -p "extracted/${ARCHIVE}"; unzip -d "extracted/${ARCHIVE}"
"${ARCHIVE}"; rm "${ARCHIVE}"; done
- popd
- mkdir -p instdir/program/classes/
- cd $_
- touch java_uno.jar juh.jar jurt.jar ridl.jar unoloader.jar unoil.jar
- popd
- make liboSettings.gradle versionCode=16
scanignore:
- external/lcms2/lcms2_sln
- instdir/program/classes/unoloader.jar
- instdir/program/classes/ridl.jar
- instdir/program/classes/unoil.jar
- instdir/program/classes/jurt.jar
- instdir/program/classes/juh.jar
- instdir/program/classes/java_uno.jar
- sd/res/buttons/*.zip
- solenv/gbuild/empty.zip
scandelete:
- external
build:
- pushd "../../external/tarballs/extracted/"
- for ARCHIVE in *.{tar.bz2,tar.gz,tar.xz,tgz}; do pushd "${ARCHIVE}"; tar -caf
"../../${ARCHIVE}" *; popd; done
- for ARCHIVE in *.zip; do pushd "${ARCHIVE}"; zip -r "../../${ARCHIVE}" *;
popd; done
- popd
- cd ../../
- rm -rf workdir instdir
- make
ndk: r22b
- versionName: 7.6.0.0.alpha0+/d6c54b3d4ee7/F-Droid-editing
versionCode: 17
commit: d6c54b3d4ee757958f9040a84dfbde0ab25f59bf
timeout: 43200
subdir: android/source
sudo:
- apt-get update
- apt-get install -y ant ant-optional autoconf automake bison build-essential
flex gperf junit4 nasm python3-dev libfontconfig1-dev libnss3-dev libservlet-api-java
libxml2-utils libxslt1-dev xsltproc
gradle:
- StrippedUIEditing
rm:
- onlineupdate/qa/*
- oox/qa/unit/data/*
- package/qa/cppunit/data/*
- qadevOOo/testdocs/qadevlibs/*.jar
- setup_native/source/packinfo/DS_Store*
- svx/qa/unit/data/*
- sw/qa/extras/ww8import/data/*
- test/signing-keys/random_seed
- testtools/source/cliversioning/version_libs/*.dll
- writerperfect/qa/unit/data/*
prebuild:
- pushd ../../
- sed -i -e '/debug/d' android/CustomTarget_lo_android.mk
- sed -i -e '/rm /d' -e '/gradlew/d' android/source/Makefile
- sed -i -e '/opencl.openclwrapper.hxx/d' -i -e 's/bOpenCL = .*;$/bOpenCL =
false;/' cui/source/dialogs/about.cxx
- sed -i -e '/desktop\/source\/app\/opencl/d' desktop/Library_sofficeapp.mk
- rm desktop/source/app/opencl.cxx
- sed -i '/"horst"/d' javaunohelper/test/com/sun/star/lib/uno/helper/UnoUrlTest.java
- sed -i -e '/debug/d' android/CustomTarget_lo_android.mk
- sed -i -e '/JAVA_HOME=/i CLASSPATH=/usr/share/java/servlet-api.jar \\' external/hsqldb/ExternalProject_hsqldb.mk
- ./autogen.sh --enable-release-build --with-vendor=F-Droid --with-android-package-name="org.documentfoundation.libreoffice"
--with-android-ndk=$$NDK$$ --with-android-sdk=$$SDK$$ --with-distro=LibreOfficeAndroid
--enable-android-editing --disable-dconf --with-build-platform-configure-options="--with-system-jpeg=no
--with-system-libxml=no --disable-dbus --disable-gconf --disable-python --disable-gui
--disable-gtk --disable-gstreamer-1.0"
- make fetch
- pushd external/tarballs
- for ARCHIVE in *.{tar.bz2,tar.gz,tar.xz,tgz}; do mkdir -p "extracted/${ARCHIVE}";
tar -C "extracted/${ARCHIVE}" -xaf "${ARCHIVE}"; rm "${ARCHIVE}"; done
- for ARCHIVE in *.zip; do mkdir -p "extracted/${ARCHIVE}"; unzip -d "extracted/${ARCHIVE}"
"${ARCHIVE}"; rm "${ARCHIVE}"; done
- popd
- mkdir -p instdir/program/classes/
- cd $_
- touch java_uno.jar juh.jar jurt.jar ridl.jar unoloader.jar unoil.jar
- popd
- make liboSettings.gradle versionCode=17
scanignore:
- external/lcms2/lcms2_sln
- instdir/program/classes/unoloader.jar
- instdir/program/classes/ridl.jar
- instdir/program/classes/unoil.jar
- instdir/program/classes/jurt.jar
- instdir/program/classes/juh.jar
- instdir/program/classes/java_uno.jar
- sd/res/buttons/*.zip
- solenv/gbuild/empty.zip
scandelete:
- external
build:
- pushd "../../external/tarballs/extracted/"
- for ARCHIVE in *.{tar.bz2,tar.gz,tar.xz,tgz}; do pushd "${ARCHIVE}"; tar -caf
"../../${ARCHIVE}" *; popd; done
- for ARCHIVE in *.zip; do pushd "${ARCHIVE}"; zip -r "../../${ARCHIVE}" *;
popd; done
- popd
- cd ../../
- rm -rf workdir instdir
- make
ndk: r22b
MaintainerNotes: |-
To fix crashes on Tegra2 device, we might need to `sed -i -e 's/mfpu=neon/mfpu=vfpv3-d16/g' configure.ac`, but this might have consequences for other devices. Since we use our own versioncodes, maybe have a third flavor?
Two flavours of each version: X86 and not X86, hence two builds with different version codes for each underlying libreoffice version. The builds only differ in a command line flag to autogen.sh.
External libraries/tarballs are downloaded using the `make fetch` command and extracted in prebuild, so that they are scanned as well and unwanted binaries are removed during the scan. They're re-packed again to the original location where the LibreOffice build system expects them in the build step (i.e. after scanning).
Compilation success is quite sensitive to the commit used in my experience. It's probably best to check Google Play and note the commit hash used in the version number. Other tagged versions may fail.
For the build of the HSQLDB external, the Java classpath is explicitly set to use the system-provided Java Servlet API jar, because the one contained in the HSQLDB tarball that is usually used is deleted as binary during the scan.
The cd/mkdir/touch commands near the end of the prebuild are to enable fdroid to run the project clean command, which expects these dependencies.
The last line sets the version code. Make sure this is correct (i.e. matches what Google Play says). The version needs to be in the format a.b.c.d<blah>/<commit hash>. Crucially, without the right portion of the commit hash, it will fail at the end of the build with "unexpected version/version code".
The last line sets the version code. Make sure this is correct (i.e. matches what Google Play says). The version needs to be in the format a.b.c.d<blah>/<commit hash>/<vendor>. Crucially, without the right portion of the commit hash, it will fail at the end of the build with "unexpected version/version code".
In the build section, the first thing done is creating a gradlew symlink for the android/source directory. This is because makefiles generated elsewhere during the build for the owncloud external use the android/source/gradlew as the build tool for owncloud. Then the touch-ed files from the prebuild are removed before making the libreoffice core.
Some build scripts use python2 -- make sure your system does as default.
In the build section, the touch-ed files from the prebuild are removed before making the libreoffice core.
The libreoffice build scripts spit out warning about the NDK version, so keep an eye out to make sure you have the right one. It's usually pretty recent.
LOTarballs: first compile with --enable-fetch-external=yes and remove the line from the build commands that links workdir/external to LOTarballs. After the build succeeds look in external/tarballs and see which archives have a new version or commit hash. For any that have changed, first check they do not contain precompiled code (if so remove it), then copy them to a clone of the LOTarballs respository. The following find command may be useful for spotting binaries:
find -type f -not -empty -exec sh -c "file -i '{}' | grep -q 'charset=binary'" \; -print
Though you may want to filter png, jpg, gif, &c. and ignore empty files.
Files in external/tarballs but not already in LOTarballs may not be needed. Try without them first.
Once the right contents of LOTarballs has been figured out, don't forget to set --enable-fetch-external=no and add back the symlink command to LOTarballs (and update the LOTarballs commit hash to the new one).
KnownVuln: Current version is from 2018-01-26
https://cgit.freedesktop.org/libreoffice/core/commit/?id=484d0ea842da
ArchivePolicy: 4 versions
AutoUpdateMode: None
UpdateCheckMode: None
CurrentVersion: 5.2.3.1/01ec8f3
CurrentVersionCode: 11
CurrentVersion: 7.6.0.0.alpha0+/d6c54b3d4ee7/F-Droid-editing
CurrentVersionCode: 17