OLD | NEW |
1 This directory contains files that make it possible to use system libraries. | 1 This directory contains files that make it possible for Linux |
| 2 distributions to build Chromium using system libraries and exclude the |
| 3 source code for Chromium's bundled copies of system libraries in a |
| 4 consistent manner. Nothing here is used in normal developer builds. |
2 | 5 |
3 For more info please read the following: | 6 |
| 7 For more info on the Linux distros' philosophy on bundling system |
| 8 libraries and why this exists, please read the following: |
4 | 9 |
5 - https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries | 10 - https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries |
6 - https://wiki.gentoo.org/wiki/Why_not_bundle_dependencies | 11 - https://wiki.gentoo.org/wiki/Why_not_bundle_dependencies |
7 - http://www.debian.org/doc/debian-policy/ch-source.html#s-embeddedfiles | 12 - http://www.debian.org/doc/debian-policy/ch-source.html#s-embeddedfiles |
8 | 13 |
9 For more Chromium-specific context please read | 14 For more Chromium-specific context please read |
10 http://spot.livejournal.com/312320.html . | 15 http://spot.livejournal.com/312320.html . |
11 | 16 |
12 Additional resources which might provide even more context: | 17 Additional resources which might provide even more context: |
13 | 18 |
14 - http://events.linuxfoundation.org/sites/events/files/slides/LinuxCon%202014%
20Slides_0.pdf | 19 - http://events.linuxfoundation.org/sites/events/files/slides/LinuxCon%202014%
20Slides_0.pdf |
15 - https://lwn.net/Articles/619158/ | 20 - https://lwn.net/Articles/619158/ |
16 | 21 |
17 This directory is provided in the source tree to follow above guidelines. | 22 |
18 It is a compromise solution which takes into account Chromium developers | 23 This directory is provided in the source tree so one can follow the |
19 who want to avoid the perceived burden of more conditional code in build files, | 24 above guidelines without having to download additional tools and worry |
20 and expectations of Open Source community, where using system-provided | 25 about having the right version of the tool. It is a compromise solution |
| 26 which takes into account Chromium developers who want to avoid the |
| 27 perceived burden of more conditional code in build files, and |
| 28 expectations of Open Source community, where using system-provided |
21 libraries is the norm. | 29 libraries is the norm. |
22 | 30 |
23 Usage: | 31 Usage: |
24 | 32 |
25 1. remove_bundled_libraries.py <preserved-directories> | 33 1. remove_bundled_libraries.py <preserved-directories> |
26 | 34 |
27 For example: remove_bundled_libraries.py third_party/mesa | 35 For example: remove_bundled_libraries.py third_party/mesa |
28 | 36 |
29 The script scans sources looking for third_party directories. | 37 The script scans sources looking for third_party directories. |
30 Everything that is not explicitly preserved is removed (except for | 38 Everything that is not explicitly preserved is removed (except for |
31 gyp files), and the script fails if any directory passed on command | 39 GYP/GN build files), and the script fails if any directory passed on |
32 line does not exist (to ensure list is kept up to date). | 40 command line does not exist (to ensure list is kept up to date). |
33 | 41 |
34 This is intended to be used on sources extracted from a tarball, | 42 This is intended to be used on source code extracted from a tarball, |
35 not a repository. | 43 not on a git repository. |
36 | 44 |
37 NOTE: by default this will not remove anything (for safety). Pass | 45 NOTE: by default this will not remove anything (for safety). Pass |
38 --do-remove flag to actually remove files. | 46 the --do-remove flag to actually remove files. |
39 | 47 |
40 2. replace_gn_files.py --system-libraries lib... | 48 2. replace_gn_files.py --system-libraries lib... |
41 | 49 |
| 50 This swaps out a normal library GN build file that is intended for |
| 51 use with a bundled library for a build file that is set up to use |
| 52 the system library. While some build files have use_system_libfoo |
| 53 build flags, using unbundled build files has the advantage that Linux |
| 54 distros can build Chromium without having to specify many additional |
| 55 build flags. |
| 56 |
42 For example: replace_gn_files.py --system-libraries libxml | 57 For example: replace_gn_files.py --system-libraries libxml |
OLD | NEW |