mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 16:26:10 +03:00
58 lines
2.4 KiB
Plaintext
58 lines
2.4 KiB
Plaintext
|
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/mesa
|
||
|
|
||
|
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
|