Last active
February 9, 2018 13:15
-
-
Save shkhln/208a1e6b945e5f07046b to your computer and use it in GitHub Desktop.
libchromiumcontent bulding notes (FreeBSD 9.3 / amd64)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cd $BUILDROOT | |
git clone https://github.com/gliaskos/freebsd-chromium.git | |
cd freebsd-chromium/www/chromium/ | |
git checkout 418e996e3a | |
sudo make fetch | |
make extract | |
make patch | |
cd $BUILDROOT | |
ln -s `realpath freebsd-chromium/www/chromium/work/chromium-42.0.2311.135` chromium | |
git clone https://github.com/atom/libchromiumcontent.git | |
cd libchromiumcontent/ | |
git checkout v42.0.2311.107-atom | |
cd vendor/python-patch/ | |
git submodule update --init --recursive | |
cd $BUILDROOT/libchromiumcontent | |
ln -s `realpath ../chromium` vendor/chromium/src | |
rm vendor/chromium/src/base/process/launch.cc.orig # patch conflict | |
script/apply-patches | |
cp -R chromiumcontent/ vendor/chromium/src/chromiumcontent | |
cd vendor/chromium/src/ | |
setenv CC gcc48 | |
setenv CXX g++48 | |
setenv CFLAGS "-isystem/usr/local/include/ -fno-omit-frame-pointer -fno-stack-protector" | |
# found in script/update | |
setenv GYP_GENERATORS ninja | |
setenv GYP_DEFINES "disable_nacl=1 component=shared_library target_arch=x64" | |
setenv GYP_GENERATOR_FLAGS output_dir=out_component | |
# borrowed from the chromium port makefile | |
setenv GYP_DEFINES "$GYP_DEFINES clang_use_chrome_plugins=0" | |
setenv GYP_DEFINES "$GYP_DEFINES linux_breakpad=0" | |
setenv GYP_DEFINES "$GYP_DEFINES linux_use_heapchecker=0" | |
setenv GYP_DEFINES "$GYP_DEFINES linux_strip_binary=1" | |
setenv GYP_DEFINES "$GYP_DEFINES test_isolation_mode=noop" | |
setenv GYP_DEFINES "$GYP_DEFINES disable_nacl=1" | |
setenv GYP_DEFINES "$GYP_DEFINES enable_extensions=1" | |
setenv GYP_DEFINES "$GYP_DEFINES enable_one_click_signin=1" | |
setenv GYP_DEFINES "$GYP_DEFINES enable_openmax=1" | |
setenv GYP_DEFINES "$GYP_DEFINES enable_webrtc=1" | |
setenv GYP_DEFINES "$GYP_DEFINES werror=" | |
setenv GYP_DEFINES "$GYP_DEFINES no_gc_sections=1" | |
setenv GYP_DEFINES "$GYP_DEFINES os_ver=9.3" | |
setenv GYP_DEFINES "$GYP_DEFINES prefix_dir=/usr/local" | |
setenv GYP_DEFINES "$GYP_DEFINES python_ver=2.7.9" | |
setenv GYP_DEFINES "$GYP_DEFINES use_allocator=none" | |
setenv GYP_DEFINES "$GYP_DEFINES use_cups=1" | |
setenv GYP_DEFINES "$GYP_DEFINES linux_link_gsettings=1" | |
setenv GYP_DEFINES "$GYP_DEFINES linux_link_libpci=1" | |
setenv GYP_DEFINES "$GYP_DEFINES linux_link_libspeechd=1" | |
setenv GYP_DEFINES "$GYP_DEFINES libspeechd_h_prefix=speech-dispatcher/" | |
setenv GYP_DEFINES "$GYP_DEFINES usb_ids_path=/usr/local/share/usbids/usb.ids" | |
setenv GYP_DEFINES "$GYP_DEFINES want_separate_host_toolset=0" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_bzip2=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_flac=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_harfbuzz=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_icu=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_jsoncpp=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_libevent=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_libexif=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_libjpeg=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_libpng=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_libusb=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_libwebp=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_libxml=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_libxslt=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_nspr=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_protobuf=0" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_re2=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_snappy=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_speex=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_xdg_utils=1" | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_yasm=1" | |
setenv GYP_DEFINES "$GYP_DEFINES v8_use_external_startup_data=0" | |
# overrides | |
setenv GYP_DEFINES "$GYP_DEFINES clang=0" # because gcc | |
setenv GYP_DEFINES "$GYP_DEFINES use_system_icu=0" # better that way | |
build/gyp_chromium --depth . -Ichromiumcontent/chromiumcontent.gypi chromiumcontent/chromiumcontent.gyp | |
ninja -C out_component/Release chromiumcontent_all |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
libchromiumcontent% git diff | |
diff --git a/chromiumcontent/chromiumcontent.gyp b/chromiumcontent/chromiumcontent.gyp | |
index 6387e64..7814646 100644 | |
--- a/chromiumcontent/chromiumcontent.gyp | |
+++ b/chromiumcontent/chromiumcontent.gyp | |
@@ -20,6 +20,11 @@ | |
'chromiumviews', | |
], | |
}], | |
+ ['OS=="freebsd"', { | |
+ 'dependencies': [ | |
+ 'chromiumviews', | |
+ ], | |
+ }], | |
], | |
}, | |
{ | |
@@ -40,7 +45,7 @@ | |
}, | |
], | |
'conditions': [ | |
- ['OS in ["win", "linux"]', { | |
+ ['OS in ["win", "linux", "freebsd"]', { | |
'targets': [ | |
{ | |
'target_name': 'chromiumviews', | |
@@ -54,7 +59,7 @@ | |
'<(DEPTH)/ui/wm/wm.gyp:wm', | |
], | |
'conditions': [ | |
- ['OS=="linux"', { | |
+ ['OS=="linux" or OS=="freebsd"', { | |
'dependencies': [ | |
'<(DEPTH)/chrome/browser/ui/libgtk2ui/libgtk2ui.gyp:gtk2ui', | |
], | |
diff --git a/patches/allow_new_privs.patch b/patches/allow_new_privs.patch | |
index 9152117..13f0f82 100644 | |
--- a/patches/allow_new_privs.patch | |
+++ b/patches/allow_new_privs.patch | |
@@ -4,10 +4,10 @@ index 1c752bd..5092307 100644 | |
+++ b/base/process/launch.cc | |
@@ -26,7 +26,7 @@ LaunchOptions::LaunchOptions() | |
new_process_group(false) | |
- #if defined(OS_LINUX) | |
+ #if defined(OS_LINUX) || defined(OS_FREEBSD) | |
, clone_flags(0) | |
- , allow_new_privs(false) | |
+ , allow_new_privs(true) | |
- #endif // OS_LINUX | |
+ #endif // OS_LINUX || OS_FREEBSD | |
#if defined(OS_POSIX) | |
, pre_exec_delegate(NULL) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
freebsd-chromium/www/chromium% git diff files/ | |
diff --git a/www/chromium/files/patch-base__base.gypi b/www/chromium/files/patch-base__base.gypi | |
index 9ddefad..2f56064 100644 | |
--- a/www/chromium/files/patch-base__base.gypi | |
+++ b/www/chromium/files/patch-base__base.gypi | |
@@ -1,6 +1,6 @@ | |
--- base/base.gypi.orig 2014-10-10 09:15:29 UTC | |
+++ base/base.gypi | |
-@@ -945,11 +945,16 @@ | |
+@@ -945,11 +945,17 @@ | |
'process/memory_stubs.cc', | |
], | |
'sources/': [ | |
@@ -12,6 +12,7 @@ | |
['exclude', '^process/process_linux\\.cc$'], | |
['exclude', '^sys_info_linux\\.cc$'], | |
+ ['exclude', '^process/process_iterator_linux\\.cc$'], | |
++ ['exclude', '^process/process_handle_linux\\.cc$'], | |
+ ['exclude', '^process/process_metrics_linux\\.cc$'], | |
+ ['exclude', '^files/file_path_watcher_fsevents\\.cc$'], | |
+ ['exclude', '^files/file_path_watcher_fsevents\\.h$'], | |
diff --git a/www/chromium/files/patch-content__content_common.gypi b/www/chromium/files/patch-content__content_common.gypi | |
index 5551554..a7c6309 100644 | |
--- a/www/chromium/files/patch-content__content_common.gypi | |
+++ b/www/chromium/files/patch-content__content_common.gypi | |
@@ -6,11 +6,11 @@ | |
}], | |
+ ['os_bsd==1', { | |
+ 'sources!': [ | |
-+ 'common/sandbox_linux.cc', | |
-+ 'common/sandbox_linux.h', | |
-+ 'common/sandbox_init_linux.cc', | |
-+ 'common/sandbox_seccomp_bpf_linux.cc', | |
-+ 'common/sandbox_seccomp_bpf_linux.h', | |
++ 'common/sandbox_linux/sandbox_linux.cc', | |
++ 'common/sandbox_linux/sandbox_linux.h', | |
++ 'common/sandbox_linux/sandbox_init_linux.cc', | |
++ 'common/sandbox_linux/sandbox_seccomp_bpf_linux.cc', | |
++ 'common/sandbox_linux/sandbox_seccomp_bpf_linux.h', | |
+ 'common/sandbox_linux/bpf_cros_arm_gpu_policy_linux.cc', | |
+ 'common/sandbox_linux/bpf_gpu_policy_linux.cc', | |
+ 'common/sandbox_linux/bpf_ppapi_policy_linux.cc', |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/base/process/memory_stubs.cc b/base/process/memory_stubs.cc | |
index b06c7d5..bc090d9 100644 | |
--- a/base/process/memory_stubs.cc | |
+++ b/base/process/memory_stubs.cc | |
@@ -16,4 +16,9 @@ bool AdjustOOMScore(ProcessId process, int score) { | |
return false; | |
} | |
+bool UncheckedMalloc(size_t size, void** result) { | |
+ *result = malloc(size); | |
+ return *result != NULL; | |
+} | |
+ | |
} // namespace base | |
--- a/third_party/boringssl/src/crypto/bn/generic.c 2015-04-28 23:28:02.000000000 +0300 | |
+++ b/third_party/boringssl/src/crypto/bn/generic.c 2015-05-04 19:56:56.766665163 +0300 | |
@@ -72,7 +72,7 @@ | |
#if defined(OPENSSL_WINDOWS) | |
#define alloca _alloca | |
#else | |
-#include <alloca.h> | |
+//~ #include <alloca.h> | |
#endif | |
--- a/third_party/boringssl/src/crypto/bn/asm/x86_64-gcc.c 2015-04-28 23:28:02.000000000 +0300 | |
+++ b/third_party/boringssl/src/crypto/bn/asm/x86_64-gcc.c 2015-05-04 20:30:48.453094450 +0300 | |
@@ -1,6 +1,6 @@ | |
#include <openssl/bn.h> | |
-#if defined(OPENSSL_X86_64) && !defined(OPENSSL_WINDOWS) | |
+#if defined(OPENSSL_X86_64) && !defined(OPENSSL_WINDOWS) && !defined(OPENSSL_NO_ASM) | |
#include "../internal.h" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment