Difference between revisions of "Building old versions"

From Apache OpenOffice Wiki
Jump to: navigation, search
(SVN is dead, but dates are useful.)
Line 16: Line 16:
 
<br />
 
<br />
 
(eg. git show 9fbe0120861764e7e644476857de32c44186c400 | patch -p1)
 
(eg. git show 9fbe0120861764e7e644476857de32c44186c400 | patch -p1)
 +
 +
If a patch doesn't apply, you have to make the equivalent code changes yourself.
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 183: Line 185:
 
| All: obsolete and remove the emulation of hash_map's data_type typedef
 
| All: obsolete and remove the emulation of hash_map's data_type typedef
 
|}
 
|}
 +
 +
== Other ==
 +
 +
Prefer internal dependencies, as transitive dependencies on system dependencies are difficult to get working, eg. old serf's use of new system OpenSSL would need serf patched.
 +
 +
Some old versions put the include path for system headers ahead of the include path to project headers, which can break the build if a dependency is installed system-wide but we want to use a local copy. For example, vcl wants boost, but if you have system boost installed yet are using internal boost, it will try including the system boost headers and break. The easiest way to fix this is to uninstall or hide/rename the system dependency so it's hidden to the build, forcing only the internal version to be used.

Revision as of 16:13, 31 January 2023


Introduction

It can be useful to build an old version of Apache OpenOffice, for example in order to regression test a bug in the latest version.

However, over time, patches get committed to allow building on newer build environments (newer operating systems, newer settings, newer libraries (as old ones may be unavailable), etc). Thus old AOO versions may be unable to build with the latest operating systems and latest libraries. Instead of the long and difficult process of setting up an old build environment, we can backport certain patches that added the features we need, and still build older versions on newer build environments.

How to

From the base directory of trunk/, for each patch that is newer than the version you are building and that you need, run this in REVERSE ORDER of the order given below, (ie. bottom to top, which is oldest to newest):

git show <commit> | patch -p1
(eg. git show 9fbe0120861764e7e644476857de32c44186c400 | patch -p1)

If a patch doesn't apply, you have to make the equivalent code changes yourself.

Date Git commit Feature provided
2023-01-20 8ef8ad062493ab86aa92fbefc05347f372e8d25c *nix: get Boost building with Clang and -std=gnu++98.
2022-08-22 f884850fece86ece56c7194bb1e746641f77c0a0 *nix: Use functions and types compatible with both OpenSSL 1.0.x and 1.1.x.
2022-04-03 f134535553051695dfbb71310003ab610fda2c83 *nix: Use the python-X.Y-embed package on system Python >= 3.8
2020-10-05 9b7130f9b6bdb7e9969615395186cb3b328a259d bison: define YYDEBUG so the yytname table can be found.
2020-05-19 7f3d5d1d1e5d0e51092276ddff205b8a31aab26f All: fix issue with GNU make 4.3
2020-01-25 00503fad63e905b0ef1d175bb9780a358bc27263 *nix: fix linking with system Python 3
2019-07-27 9fbe0120861764e7e644476857de32c44186c400 *nix: detection of Java > 1.8
2019-07-27 76c3a0c573cde39048d0726c858eb62004271068 All: detection of AdoptOpenJDK's JRE.
2019-11-05 f120c164ea44222b65c3fd8c31dc63804109d6a4 All: remove unused basebmp code that breaks with newer compilers.
2018-04-28 787e11305af165407f2c520f206d71868383ca89 *nix: fix potential memory alignment issues on X86_64.
2018-04-21 e3393df0b128281faf562e0d0704b7b031c09194 *nix: target the gnu++98 C++ standard.
2018-03-05 d496b0995fb8aa8b6c60a683761ad01f8d0d32d6 All: fix building lucene with Java 1.9
2018-03-04
2018-03-04
16cc2feaee8ae594780687837b53b2d50018df78
d72465840bb64335098446c0558b486b239519f7
Windows: support building on Windows using Cygwin64.
2018-03-03 a77ce2d13c887a68f707e5b1c8c737146e59d1bf Windows: allow oowintool to auto-detect Java 1.9
2017-11-17 adb6f5d8a37c5b86304c6f182c17e5b29dcc384a Windows: allow oowintool to auto-detect 32 bit VC++ on Cygwin64.
2017-11-09 668ddc0174366a152e11e62b3e5599a8fb50bcb2 Windows: allow oowintool to auto-detect Java 1.8
2017-01-23 98cd5c2a79e60996e7eea8a9ab5e47291e77d858 *nix: remove unused header from hunspell.
2017-01-21
2017-01-21
2017-01-20
59dbe8f652bdb9e1e5ecc11bebb8c62d23220ad8
3fc1b11aed153658eed562e0563c5d002e06f83a
eec91efcfca2e12afd64039b8aa0f158a3d65ed7
All: fix issues with ordered comparisons between pointers and zero.
2016-06-16 a4e19be7f6f6069ba569aa50c7f757af9e497d27 FreeBSD: avoid ambiguity with libc++ round().
2016-02-11 910dbabb8417f5fbef278baca67290f523163a45 #i126840# - Windows/MSVC build often fails in main/icu
2016-01-28 e6348c9c91b938030ad5813dd009755d8b4b9444 All: fix ordered comparison between pointer and zero.
NOTE: Only a portion of this patch matters, use:
git show e6348c9c91b938030ad5813dd009755d8b4b9444 main/sal/qa/rtl/digest/rtl_digest.cxx | patch -p1
2015-10-25 94125ed6f90993f06f9ee4e1d88bf2ce57e20a2f *BSD: call unzip with just -u, instead of -o and -u which breaks the build.
2015-09-13 cfc83b6cba931dcb75a6f071ffbe6124a7b88561 Rename configure.in to configure.ac (so other patches to configure.ac can apply).
2015-08-29 2ed47956e3ec22116d5164494008afeac3f699a1 #i126258# Fix build on systems using a recent version of GNU Patch.
2015-08-24
2015-08-24
2015-08-23
2015-08-23
2015-08-23
c86fe57eac59462145a2c4dcd104fb897de9196f
cf2d5436d922671aec77ed61f7d162f74469e479
7523a2c4cc93fa7a641641e68fe0d835e7794463
e0f9f944356994beb91659a64d94cb4522cea965
2f57578e8e7e0ab07c12c28c88d12852edcc3a46
Java: fix errors building Javadocs with Java >= 8.
2015-08-05 c25219e083f121aac3c966a458945c1c37d22f15 FreeBSD: better GCC/Clang support
2015-07-08 8510b05eb89ad86b6e9c283c055d80fe56e487bc FreeBSD: system jpeg build fix.
2015-07-08 5293ed5b27484fdcc6a4809ad82037db7a242152 NSS build fixes.
2015-03-26 908225ed13eb08c341ec6cf0751aeed39dfd31a8 FreeBSD: build structure changes
2015-03-26 cddbce83059662dad08c06a4f7b247d7fbbbaa9d Move operator to the public section. This solves visibility issues with modern gcc.
2015-03-26 2e13fcb7adefbaae2598357d64e73f9b87cf8872 FreeBSD: x86-64 UNO bridge for FreeBSD >= 10.
2015-03-26 baf6650df975f89e86ba1b26917c66286ee87ab0 FreeBSD: x86 UNO bridge for FreeBSD >= 10.
2014-11-28 66d4592e8cc7c8c33fc626074f9efcda13634c2c Enable NSS modules also on OS/2 port.
NOTE: needed for later patches, not just on OS/2.
2014-07-16 ae90bea2f185550431df42a0216fdab56af1838e FreeBSD: Fix the regression in 892b8f20ca40cc85f427d5bbef706b21ecd460e6.
2014-05-15 ae5c9b6c8d5cd9fec60d7f0cd4cd2b1d775bcb49 All: remove custom allocator support in stlport-replacement headers
2014-05-15 5766e80935d60fd1804ed950d1972ff5e88fda76 All: fix default arguments in friend declarations
2014-05-15 22076bf181e8f43a1d012a1c50cab412d09ed2b0 All: remove obsoleted sal-module-internal custom STL allocator
2014-04-30 892b8f20ca40cc85f427d5bbef706b21ecd460e6 FreeBSD: fix build with gcc on FreeBSD-i386.
2014-03-24
2014-03-24
2014-03-24
2014-03-24
f0339755da5abc74646151d092c4739dd9e5ee54
bcff05d666ac35a4ddc41f4176bdf0038fd9cb02
47d3be6bd7cbd0f5aa101006532916676c4ceede
60db4cd41876498d413568ed5a829ba6386245f9
Java: upgrade to the first versions of apache-commons projects that compile on modern Java.
2014-03-07 2fb14843010286ad9430e029e940242d039c9bf4 All: obsolete and remove the emulation of hash_map's data_type typedef

Other

Prefer internal dependencies, as transitive dependencies on system dependencies are difficult to get working, eg. old serf's use of new system OpenSSL would need serf patched.

Some old versions put the include path for system headers ahead of the include path to project headers, which can break the build if a dependency is installed system-wide but we want to use a local copy. For example, vcl wants boost, but if you have system boost installed yet are using internal boost, it will try including the system boost headers and break. The easiest way to fix this is to uninstall or hide/rename the system dependency so it's hidden to the build, forcing only the internal version to be used.

Personal tools