| This directory contains files that make it possible for Linux |
| distributions to build Chromium using system libraries and exclude the |
| source code for Chromium's bundled copies of system libraries in a |
| consistent manner. Nothing here is used in normal developer builds. |
| |
| |
| For more info on the Linux distros' philosophy on bundling system |
| libraries and why this exists, please read the following: |
| |
| - https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries |
| - https://wiki.gentoo.org/wiki/Why_not_bundle_dependencies |
| - http://www.debian.org/doc/debian-policy/ch-source.html#s-embeddedfiles |
| |
| For more Chromium-specific context please read |
| http://spot.livejournal.com/312320.html . |
| |
| Additional resources which might provide even more context: |
| |
| - http://events.linuxfoundation.org/sites/events/files/slides/LinuxCon%202014%20Slides_0.pdf |
| - https://lwn.net/Articles/619158/ |
| |
| |
| This directory is provided in the source tree so one can follow the |
| above guidelines without having to download additional tools and worry |
| about having the right version of the tool. It is a compromise solution |
| which takes into account Chromium developers who want to avoid the |
| perceived burden of more conditional code in build files, and |
| expectations of Open Source community, where using system-provided |
| libraries is the norm. |
| |
| Usage: |
| |
| 1. remove_bundled_libraries.py <preserved-directories> |
| |
| For example: remove_bundled_libraries.py third_party/zlib |
| |
| The script scans sources looking for third_party directories. |
| Everything that is not explicitly preserved is removed (except for |
| GYP/GN build files), and the script fails if any directory passed on |
| command line does not exist (to ensure list is kept up to date). |
| |
| This is intended to be used on source code extracted from a tarball, |
| not on a git repository. |
| |
| NOTE: by default this will not remove anything (for safety). Pass |
| the --do-remove flag to actually remove files. |
| |
| 2. replace_gn_files.py --system-libraries lib... |
| |
| This swaps out a normal library GN build file that is intended for |
| use with a bundled library for a build file that is set up to use |
| the system library. While some build files have use_system_libfoo |
| build flags, using unbundled build files has the advantage that Linux |
| distros can build Chromium without having to specify many additional |
| build flags. |
| |
| For example: replace_gn_files.py --system-libraries libxml |