Building old versions
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 the same order as given below, (ie. top to bottom, 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 |
---|---|---|
2014-03-07 | 2fb14843010286ad9430e029e940242d039c9bf4 | All: obsolete and remove the emulation of hash_map's data_type typedef |
2014-03-24 | 60db4cd41876498d413568ed5a829ba6386245f9 | Java: upgrade to the first version of commons-logging that compile on modern Java. |
2014-03-24 | 21f06b298926b5eac098ed9c306560dd458d3a1e | Java: upgrade to the first version of commons-logging that compile on modern Java. |
2014-03-24 | 47d3be6bd7cbd0f5aa101006532916676c4ceede | Java: upgrade to the first version of commons-codec that compile on modern Java. |
2014-03-24 | bcff05d666ac35a4ddc41f4176bdf0038fd9cb02 | Java: upgrade to the first version of commons-lang that compile on modern Java. |
2014-03-24 | f0339755da5abc74646151d092c4739dd9e5ee54 | Java: related change to version upgrades code, logging |
2014-04-30 | 892b8f20ca40cc85f427d5bbef706b21ecd460e6 | FreeBSD: fix build with gcc on FreeBSD-i386. |
2014-05-15 | 22076bf181e8f43a1d012a1c50cab412d09ed2b0 | All: remove obsoleted sal-module-internal custom STL allocator |
2014-05-15 | 5766e80935d60fd1804ed950d1972ff5e88fda76 | All: fix default arguments in friend declarations |
2014-05-15 | ae5c9b6c8d5cd9fec60d7f0cd4cd2b1d775bcb49 | All: remove custom allocator support in stlport-replacement headers |
2014-06-16 | ae90bea2f185550431df42a0216fdab56af1838e | FreeBSD: Fix the regression in 892b8f20ca40cc85f427d5bbef706b21ecd460e6. |
2014-07-06 | 76cf606939c261af2f957ef904a0384a3b6169da | FreeBSD: Add initial support for FreeBSD PPC using gcc. |
2014-08-28 | 1b8c19f4d7f427d50c5ed0f65f07d814d9decf09 | OS/2: build fixes for enabling Category B |
2014-11-28 | 55c23f91915c517b95be9f74fad73851a384fa05 | OS/2: build fixes for enabling Category B also in OS/2 port. |
2014-11-28 | 66d4592e8cc7c8c33fc626074f9efcda13634c2c | Enable NSS modules also on OS/2 port.
NOTE: needed for later patches, not just on OS/2. |
2014-12-05 | 0fdc0ac7221c318421259c4834dce6b0be377a8b | macOS: fix autodetection of the OSX 10.10 SDK |
2015-01-16 | 483bf1cb99a9fae931d407012ae00ce38c31b940 | All: Fix build breaker introduced in revision 1651396 |
2015-03-26 | baf6650df975f89e86ba1b26917c66286ee87ab0 | FreeBSD: x86 UNO bridge for FreeBSD >= 10. |
2015-03-26 | 2e13fcb7adefbaae2598357d64e73f9b87cf8872 | FreeBSD: x86-64 UNO bridge for FreeBSD >= 10. |
2015-03-26 | cddbce83059662dad08c06a4f7b247d7fbbbaa9d | Move operator to the public section. This solves visibility issues with modern gcc. |
2015-03-26 | 908225ed13eb08c341ec6cf0751aeed39dfd31a8 | FreeBSD: build structure changes |
2015-07-08 | 5293ed5b27484fdcc6a4809ad82037db7a242152 | NSS build fixes. |
2015-07-08 | 8510b05eb89ad86b6e9c283c055d80fe56e487bc | FreeBSD: system jpeg build fix. |
2015-08-05 | c25219e083f121aac3c966a458945c1c37d22f15 | FreeBSD: better GCC/Clang support |
2015-08-07 | a84fbf33bbab2f93304ad5b1d232610ec9a69c27 | FreeBSD: Work around clang-3.4 issues. |
2015-08-23 | 2f57578e8e7e0ab07c12c28c88d12852edcc3a46 | Java: fix errors building Javadocs with Java >= 8. |
2015-08-23 | e0f9f944356994beb91659a64d94cb4522cea965 | Java: fix errors building Javadocs with Java >= 8. |
2015-08-23 | 7523a2c4cc93fa7a641641e68fe0d835e7794463 | Java: fix errors building Javadocs with Java >= 8. |
2015-08-24 | cf2d5436d922671aec77ed61f7d162f74469e479 | Java: fix errors building Javadocs with Java >= 8. |
2015-08-24 | c86fe57eac59462145a2c4dcd104fb897de9196f | Java: fix errors building Javadocs with Java >= 8. |
2015-08-29 | 2ed47956e3ec22116d5164494008afeac3f699a1 | #i126258# Fix build on systems using a recent version of GNU Patch. |
2015-09-02 | 58303369294a39db2c0a54066360efff909daa9a | All: fix inlining options passed to Clang. |
2015-09-05 | 76decbbc67da8c86b617e1a4414d0f5ea6db5ff1 | FreeBSD: FreeBSD-10 fixes |
2015-09-13 | cfc83b6cba931dcb75a6f071ffbe6124a7b88561 | Rename configure.in to configure.ac (so other patches to configure.ac can apply). |
2015-10-25 | 94125ed6f90993f06f9ee4e1d88bf2ce57e20a2f | *BSD: call unzip with just -u, instead of -o and -u which breaks the build. |
2015-11-12 | c4b07b4b14a3bb46b6e96fc7a31d099df09d5413 | macOS: Add support for MacOSX El Capitan |
2015-11-25 | 28633775241ee602b4a2e63aa263cce06685e4c0 | FreeBSD/Solaris: use $GREP, $EGREP in configure.ac |
2015-11-25 | ceb6c4440c3fb3efdb611054a51caa1e35fd152e | FreeBSD: Allow build of Open Office on FreeBSD Mac PowerPCG5 |
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 |
2016-02-11 | 910dbabb8417f5fbef278baca67290f523163a45 | #i126840# - Windows/MSVC build often fails in main/icu |
2016-06-16 | a4e19be7f6f6069ba569aa50c7f757af9e497d27 | FreeBSD: avoid ambiguity with libc++ round(). |
2016-08-07 | b63233d868a9af170b0457a7aa0c5809011cc2c1 | All: Merge branches/gbuild-reintegration to trunk. (Only main/source_soenv.sh) |
2016-08-07 | d1de9d7f8e018ffc301c2ceb9e5f62e3ca186daa | All: part of the “Merge branches/gbuild-reintegration to trunk.” branch |
2016-08-07 | c74c5bb92a8f815eea63d1036b0ae27319568c98 | Windows: new way to set the gbuild console/ui subsystem flag.
(Needs to be customized a lot to apply.) |
2016-08-07 | 78b0b3bf9bbc90d2acc64339b8de1a40d7438b4e | Windows: fix flag to determine whether the C runtime library is linked statically/dynamically and single/multithreaded. (Only main/solenv part needed.) |
2016-08-26 | f78a4bb8ff5d512c1dab2e128edb7d5fba78b03b | All: Upgrade bundled raptor from raptor-1.4.18 to raptor2-2.0.15 |
2016-12-08 | e15a45347c4af89b363e7d092ae18e347f2f052f | FreeBSD: Update endianness detection on FreeBSD. |
2017-01-03 | 7a46fbe49ba6c420f01922f987a00bf586522653 | FreeBSD: Initial support for the FreeBSD ARM platform. |
2017-01-13 | 5a81235241b51fcd40950a7973a436401218ec88 | FreeBSD: PPC: Cleanup makefile include mess. |
2017-01-17 | 81e6fec9aa5d40eea94d1c86f72a7b55900dc816 | All: libstdc++ removal |
2017-01-20 | eec91efcfca2e12afd64039b8aa0f158a3d65ed7 | All: Clang 4 issues. |
2017-01-21 | 3fc1b11aed153658eed562e0563c5d002e06f83a | All: nullptr -> NULL. |
2017-01-21 | 59dbe8f652bdb9e1e5ecc11bebb8c62d23220ad8 | All: Clang 4 fix. |
2017-01-23 | 98cd5c2a79e60996e7eea8a9ab5e47291e77d858 | *nix: remove unused header from hunspell. |
2017-01-25 | 8f07f855b27ed7bcc010af365ebc4fea86de7182 | FreeBSD: fix gb_CPUDEFS regression. |
2017-01-25 | 9e1b801e35d1189c57bceab0e99f961ae72a2b3f | All: debug symbol fixes for gbuild |
2017-01-26 | 6e4dc73d13071947dbd3f9139aca1e3b58c81103 | Linux: Reinstate part of the LinuxPPC64 support removed by error. |
2017-02-07 | bcc22a4c08e1268a4f06e54fb146f88ef49f2cdc | All: Add initial support for building AOO with Clang on Linux. |
2017-08-15 | f669900deea0b6f978ffaf80c4471c274b89aeda | macOS: macOS fixes, Xcode8 |
2017-08-15 | 87bf159baa3ed610953f1e9d9714ca462a7efc20 | macOS: Get macOS compiling again |
2017-08-16 | 16daaedff86cb7f882d39e13c4bd90a89187fddc | MacOS: 10.9 |
2017-10-09 | 9e1bc29152c52d82ff2070c9282143da61a4a507 | macOS: Get macOS compiling again |
2017-10-10 | 5532af069966acd59346782985cd865067d2cdb1 | macOS: C++ fixes |
2017-11-09 | 668ddc0174366a152e11e62b3e5599a8fb50bcb2 | Windows: allow oowintool to auto-detect Java 1.8 |
2017-11-17 | adb6f5d8a37c5b86304c6f182c17e5b29dcc384a | Windows: allow oowintool to auto-detect 32 bit VC++ on Cygwin64. |
2018-01-05 | 78ecfec34f3bb6578b4663d63ae245594c795fe3 | All: delete GXX_INCLUDE_PATH |
2018-01-07 | deb9523b63f459edd793c45f6e7ac6d1130b1e9f | All: build fixes. |
2018-03-03 | a77ce2d13c887a68f707e5b1c8c737146e59d1bf | Windows: allow oowintool to auto-detect Java 1.9 |
2018-03-04 | d72465840bb64335098446c0558b486b239519f7 | Windows: support building on Windows using Cygwin64. |
2018-03-04 | 16cc2feaee8ae594780687837b53b2d50018df78 | Windows: support building on Windows using Cygwin64. |
2018-03-04 | 8d23410d6e3d8728779a0bca516f274ab5ec01c4 | All: Fix indentation. |
2018-03-05 | d496b0995fb8aa8b6c60a683761ad01f8d0d32d6 | All: fix building lucene with Java 1.9 |
2018-03-09 | 386ca8668004b012c6f9f4525bfcb30dea9d960d | All: build changes |
2018-03-12 | edd74ba5165751c51050786f638af262ec502968 | Windows: preliminary support for 64 bit Windows |
2018-04-15 | 8cb913c41397e529ead8b9128c8888b324408e46 | All: Fix the gbuild platform CPUDEFS to conform to what modules expect. (Only main/solenv/gbuild part needed.) |
2018-04-21 | e3393df0b128281faf562e0d0704b7b031c09194 | *nix: target the gnu++98 C++ standard. |
2018-04-28 | 787e11305af165407f2c520f206d71868383ca89 | *nix: fix potential memory alignment issues on X86_64.
(A critical patch, but impossibly difficult to apply...) |
2019-07-27 | 2bf1cfb0fb5470896af21c2c584f53f556e1551b | All: detection of AdoptOpenJDK's JRE. |
2019-07-27 | 9fbe0120861764e7e644476857de32c44186c400 | *nix: detection of Java > 1.8 |
2019-11-05 | f120c164ea44222b65c3fd8c31dc63804109d6a4 | All: remove unused basebmp code that breaks with newer compilers. |
2020-01-25 | 00503fad63e905b0ef1d175bb9780a358bc27263 | *nix: fix linking with system Python 3 |
2020-05-19 | 7f3d5d1d1e5d0e51092276ddff205b8a31aab26f | All: fix issue with GNU make 4.3 |
2020-10-05 | 9b7130f9b6bdb7e9969615395186cb3b328a259d | bison: define YYDEBUG so the yytname table can be found. |
2022-04-03 | f134535553051695dfbb71310003ab610fda2c83 | *nix: Use the python-X.Y-embed package on system Python >= 3.8 |
2022-08-22 | f884850fece86ece56c7194bb1e746641f77c0a0 | *nix: Use functions and types compatible with both OpenSSL 1.0.x and 1.1.x. |
2023-01-20 | 8ef8ad062493ab86aa92fbefc05347f372e8d25c | *nix: get Boost building with Clang and -std=gnu++98. |
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.