Building old versions

From Apache OpenOffice Wiki
Jump to: navigation, search


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.

Personal tools