ungoogled-software / ungoogled-chromium-portablelinux Goto Github PK
View Code? Open in Web Editor NEWPortable Linux packaging for ungoogled-chromium
Portable Linux packaging for ungoogled-chromium
cloning the repo/submodules and running ./docker-build.sh
fails with this error:
[1649/50870] LINK ./chrome_sandbox
FAILED: chrome_sandbox
python3 "../../build/toolchain/gcc_link_wrapper.py" --output="./chrome_sandbox" -- clang++ -pie -fuse-ld=lld -Wl,--build-id=sha1 -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--icf=all -Wl,--color-diagnostics -Wl,-mllvm,-instcombine-lower-dbg-declare=0 -flto=thin -Wl,--thinlto-jobs=all -Wl,--thinlto-cache-dir=thinlto-cache -Wl,--thinlto-cache-policy=cache_size=10\%:cache_size_bytes=40g:cache_size_files=100000 -Wl,-mllvm,-import-instr-limit=5 -fwhole-program-vtables -Wl,--no-call-graph-profile-sort -m64 -no-canonical-prefixes -Wl,-O2 -Wl,--gc-sections -rdynamic -nostdlib++ -Wl,--lto-O0 -Wl,-z,defs -Wl,--as-needed -fsanitize=cfi-vcall -fsanitize=cfi-icall -pie -Wl,--disable-new-dtags -o "./chrome_sandbox" -Wl,--start-group @"./chrome_sandbox.rsp" -Wl,--end-group -ldl -lpthread -lrt
clang++: error: invalid linker name in argument '-fuse-ld=lld'
clang++: error: no such file or directory: '/usr/lib/clang/13.0.1/share/cfi_ignorelist.txt'
clang++: error: invalid linker name in argument '-fuse-ld=lld'
Hi @braewoods @Eloston @wchen342
I see that OBS has been setup now to build debian / ubuntu packages automatically.
Can the same setup be extended to build the portable linux images?
If it's possible, I would be happy to help write scripts, etc.
If the same setup can't be extended, I would appreciate any tips on starting a new setup for this. (I am familiar with Travis CI, Gitlab CI, Github Actions, but never tried OBS yet).
As mentioned in a recent post, UC Portable Linux binary 80.0.3987.106-1.1 was extracted to /opt
using sudo
(from ~/Downloads
), following the installation guide. This demonstrated username:guest
ownership for the extracted files (sorry: the original post had erroneously described this from memory as 'username:username
'):
$ ls -al /opt/ungoogled-chromium_80.0.3987.106-1.1_linux/
total 281104
drwxr-xr-x 4 root root 4096 Feb 28 13:09 .
drwxr-xr-x 3 root root 4096 Feb 28 13:09 ..
-rwxr-xr-x 1 username guest 232283688 Feb 17 20:06 chrome
-rw-r--r-- 1 username guest 1120260 Feb 17 10:14 chrome_100_percent.pak
-rw-r--r-- 1 username guest 1540038 Feb 17 10:14 chrome_200_percent.pak
-rwxr-xr-x 1 username guest 13701592 Feb 17 13:59 chromedriver
-rwxr-xr-x 1 username guest 305792 Feb 17 05:19 chrome_sandbox
-rwxr-xr-x 1 username guest 5087 Feb 13 14:45 chrome-wrapper
-rwxr-xr-x 1 username guest 2492872 Feb 17 07:14 crashpad_handler
-rw-r--r-- 1 username guest 10505952 Feb 13 14:55 icudtl.dat
-rwxr-xr-x 1 username guest 324096 Feb 17 07:13 libEGL.so
-rwxr-xr-x 1 username guest 11229808 Feb 17 07:13 libGLESv2.so
drwxr-xr-x 2 username guest 4096 Feb 17 07:37 locales
-rw-r--r-- 1 username guest 2540 Feb 13 14:45 product_logo_48.png
-rw-r--r-- 1 username guest 1356 Feb 17 04:15 README
drwxr-xr-x 3 username guest 4096 Feb 17 05:46 resources
-rw-r--r-- 1 username guest 13655548 Feb 17 13:39 resources.pak
-rw-r--r-- 1 username guest 558968 Feb 17 19:53 v8_context_snapshot.bin
-rwxr-xr-x 1 username guest 37394 Feb 13 14:55 xdg-mime
-rwxr-xr-x 1 username guest 33273 Feb 13 14:55 xdg-settings
Here, username: uid=1000(username) gid=1001(username) groups=1001(username)
.
Guest was the name of the default user on this installation; /etc/group
lists the guest
group as guest:!:1000:
.
Shouldn't the instruction guide give additional instruction(s) that at least chrome-sandbox
be owned by root for the sake of security - and sandbox-wrapper
also maybe, which is being used to launch UC in some cases? There are at least a couple of sites where the chromium binary installer package was untarred and the ownership and chmod bits needed changing. For example, a forum post about installing Chromium in Raspberry Pi in 2012, plus another installer script in Pi suggest, in part:-
sudo chown root:root chrome/chrome-sandbox
sudo chmod 4755 chrome/chrome-sandbox
At one point in the thread of the first post, it may appear that there is an explanation there that ownership should be root for the sandbox binary only.
I am trying to build 80.0.3987.149-1.1 but build.sh fails and stops at:
+ /tmp/download/ungoogled-chromium-portablelinux/ungoogled-chromium/utils/patches.py apply /tmp/download/ungoogled-chromium-portablelinux/build/src /tmp/download/ungoogled-chromium-portablelinux/ungoogled-chromium/patches /tmp/download/ungoogled-chromium-portablelinux/patches
INFO: Applying patches from /tmp/download/ungoogled-chromium-portablelinux/ungoogled-chromium/patches
Traceback (most recent call last):
File "/tmp/download/ungoogled-chromium-portablelinux/ungoogled-chromium/utils/patches.py", line 236, in <module>
main()
File "/tmp/download/ungoogled-chromium-portablelinux/ungoogled-chromium/utils/patches.py", line 232, in main
args.callback(args)
File "/tmp/download/ungoogled-chromium-portablelinux/ungoogled-chromium/utils/patches.py", line 189, in _apply_callback
patch_bin_path=args.patch_bin)
File "/tmp/download/ungoogled-chromium-portablelinux/ungoogled-chromium/utils/patches.py", line 111, in apply_patches
patch_bin_path = find_and_check_patch(patch_bin_path=patch_bin_path)
File "/tmp/download/ungoogled-chromium-portablelinux/ungoogled-chromium/utils/patches.py", line 67, in find_and_check_patch
result = subprocess.run(cmd, capture_output=True, text=True)
File "/usr/lib64/python3.6/subprocess.py", line 423, in run
with Popen(*popenargs, **kwargs) as process:
TypeError: __init__() got an unexpected keyword argument 'capture_output'
Compilation breaks because the compiler is using system libraries, notably libdrm.
Compilation error:
[23489/40945] CXX obj/ui/gfx/linux/drm/drm_util_linux.o
FAILED: obj/ui/gfx/linux/drm/drm_util_linux.o
clang++-11 -MMD -MF obj/ui/gfx/linux/drm/drm_util_linux.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DOFFICIAL_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DCR_CLANG_REVISION=\"n356902-4e813bbd-1\" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_LIBCPP_ABI_UNSTABLE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -DCR_LIBCXX_REVISION=375504 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 -I../.. -Igen -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -fprofile-sample-use=../../chrome/android/profiles/afdo.prof -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -Xclang -mllvm -Xclang -instcombine-lower-dbg-declare=0 -flto=thin -fsplit-lto-unit -fwhole-program-vtables -m64 -march=x86-64 -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes -Wall -Wextra -Wimplicit-fallthrough -Wunreachable-code -Wthread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-unneeded-internal-declaration -Wno-undefined-var-template -Wno-ignored-pragma-optimize -Wno-max-tokens -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -ftrivial-auto-var-init=pattern -fsanitize=cfi-vcall -fsanitize-blacklist=../../tools/cfi/blacklist.txt -fsanitize=cfi-icall -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libdrm -std=c++14 -fno-trigraphs -Wno-trigraphs -fno-exceptions -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include -fvisibility-inlines-hidden -resource-dir=/usr/lib/llvm-11/lib/clang/11.0.0 -resource-dir=/usr/lib/llvm-11/lib/clang/11.0.0 -c ../../ui/gfx/linux/drm_util_linux.cc -o obj/ui/gfx/linux/drm/drm_util_linux.o
../../ui/gfx/linux/drm_util_linux.cc:44:14: error: use of undeclared identifier 'DRM_FORMAT_P010'
return DRM_FORMAT_P010;
^
../../ui/gfx/linux/drm_util_linux.cc:73:10: error: use of undeclared identifier 'DRM_FORMAT_P010'
case DRM_FORMAT_P010:
^
../../ui/gfx/linux/drm_util_linux.cc:94:10: error: use of undeclared identifier 'DRM_FORMAT_P010'
case DRM_FORMAT_P010:
^
3 errors generated.
Note -I/usr/include/libdrm
in the compilation flags. Why is the compiler using includes from the system?
For the record, the undeclared identifier is declared in the bundled libdrm: third_party/libdrm/src/include/drm/drm_fourcc.h
System: Debian 10 (buster)
Version: 85.0.4183.83-2.1
Using LLVM from apt.llvm.org version 1:11.0.0~++20200905032609+7030fc50d93-1~exp1~20200905133256.78
I've used docker-build.sh
but it failed at this step:
[15475/40414] CXX obj/components/domain_reliability/domain_reliability/google_configs.o
../../components/domain_reliability/google_configs.cc:16:8: warning: unused variable 'is_www_subdomain' [-Wunused-variable]
bool is_www_subdomain =
^
1 warning generated.
[15488/40414] CXX obj/components/domain_reliability/domain_reliability/uploader.o
../../components/domain_reliability/uploader.cc:89:9: warning: code will never be executed [-Wunreachable-code]
net::DefineNetworkTrafficAnnotation("domain_reliability_report_upload",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../components/domain_reliability/uploader.cc:80:9: note: silence by adding parentheses to mark code as explicitly dead
if (true) {
^
/* DISABLES CODE */ ( )
1 warning generated.
[15962/40414] CXX obj/net/net/url_request_test_job.o
FAILED: obj/net/net/url_request_test_job.o
clang++ -MMD -MF obj/net/net/url_request_test_job.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DOFFICIAL_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DCR_CLANG_REVISION=\"n353803-99ac9ce7-1\" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_LIBCPP_ABI_UNSTABLE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -DCR_LIBCXX_REVISION=375504 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -DNET_IMPLEMENTATION -DENABLE_BUILT_IN_DNS -DUSE_GIO -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=uint16_t -I../.. -Igen -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -I../../third_party/boringssl/src/include -I../../third_party/zlib -I../../third_party/ced/src -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/brotli/include -fprofile-sample-use=../../chrome/android/profiles/afdo.prof -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -Xclang -mllvm -Xclang -instcombine-lower-dbg-declare=0 -flto=thin -fsplit-lto-unit -fwhole-program-vtables -m64 -march=x86-64 -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes -Wall -Wextra -Wimplicit-fallthrough -Wunreachable-code -Wthread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-unneeded-internal-declaration -Wno-undefined-var-template -Wno-ignored-pragma-optimize -fno-omit-frame-pointer -g0 -ftrivial-auto-var-init=pattern -fsanitize=cfi-vcall -fsanitize-blacklist=../../tools/cfi/blacklist.txt -fsanitize=cfi-icall -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -O2 -fno-ident -fdata-sections -ffunction-sections -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -Wno-shorten-64-to-32 -Wno-header-guard -I/usr/include/nss -I/usr/include/nspr -Wexit-time-destructors -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -std=c++14 -fno-exceptions -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include -fvisibility-inlines-hidden -resource-dir=/usr/lib/llvm-8/lib/clang/8.0.0 -resource-dir=/usr/lib/llvm-8/lib/clang/8.0.0 -c ../../net/url_request/url_request_test_job.cc -o obj/net/net/url_request_test_job.o
In file included from ../../net/url_request/url_request_test_job.cc:5:
In file included from ../../net/url_request/url_request_test_job.h:13:
In file included from ../../net/url_request/url_request.h:23:
In file included from ../../net/base/auth.h:12:
In file included from ../../url/origin.h:19:
In file included from ../../base/strings/string_util.h:21:
../../base/stl_util.h:587:10: error: call to function 'EraseIf' that is neither visible in the template definition nor found by argument-dependent lookup
return EraseIf(container, [&](const T& cur) { return cur == value; });
^
../../net/url_request/url_request_test_job.cc:181:9: note: in instantiation of function template specialization 'base::Erase<net::URLRequestTestJob *, std::__1::allocator<net::URLRequestTestJob *>, net::URLRequestTestJob *>' requested here
base::Erase(g_pending_jobs.Get(), this);
^
../../base/stl_util.h:591:8: note: 'EraseIf' should be declared prior to the call site or in namespace 'net'
size_t EraseIf(std::list<T, Allocator>& container, Predicate pred) {
^
1 error generated.
[15969/40414] CXX obj/net/net/url_request_throttler_entry.o
ninja: build stopped: subcommand failed.
Any idea where to look at?
Description of problem:
On Fedora 33 (GNOME) it is not possible to start ungoogled-chromium AppImage. Neither in Files nor via Terminal.
How reproducible:
Always: the issue is observed each time.
Steps to Reproduce:
Linux AppImage 64-bit -> 87.0.4280.141-1.1 ->
Open GNOME Terminal in Fedora 33 (GNOME) and drag and drop (with the mouse) the ungoogled-chromium AppImage to GNOME Terminal.
This output appears in Terminal:
[fedora@localhost ~]$ '/home/fedora/Downloads/ungoogled-chromium_87.0.4280.141-1.1_linux.AppImage'
/tmp/.mount_ungoogtyZUdM/opt/google/chrome/chrome: error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory
Actual results:
ungoogled-chromium AppImage cannot be launched.
Expected results:
ungoogled-chromium AppImage can be launched just like other AppImage applications.
Additional info:
I also tried to install libatomic.so.1 in Terminal.
[fedora@localhost ~]$ sudo dnf install libatomic.so.1
But the problem remains, the same as what I wrote in Steps to reproduce in point 3.
Additional info 2:
Just typed this in the Terminal and it was solved:
[fedora@localhost ~]$ sudo dnf install libatomic
This means that the problem can be fixed automatically for users without additional installation if libatomic is integrated into ungoogled-chromium AppImage.
Could be a problem since arch has python 3.9 and not 3.5
Done. Made 13997 targets from 2412 files in 3911ms
+ ninja -C out/Default chrome chrome_sandbox chromedriver
ninja: Entering directory `out/Default'
[224/43824] ACTION //chrome/common/apps/platform_apps/api...chema_generator(//build/toolchain/linux/unbundle:default)
/tmp/build/ungoogled-chromium-portablelinux/build/src/tools/json_schema_compiler/model.py:211: SyntaxWarning: "is" with a literal. Did you mean "=="?
if name is 'ManifestKeys':
[365/43824] ACTION //chrome/browser/resources/print_preview:preprocess(//build/toolchain/linux/unbundle:default)
FAILED: gen/chrome/browser/resources/print_preview/preprocessed/print_preview.html gen/chrome/browser/resources/print_preview/preprocessed/cloud_print_interface.js gen/chrome/browser/resources/print_preview/preprocessed/cloud_print_interface_impl.js gen/chrome/browser/resources/print_preview/preprocessed/dark_mode_behavior.js gen/chrome/browser/resources/print_preview/preprocessed/metrics.js gen/chrome/browser/resources/print_preview/preprocessed/native_layer.js gen/chrome/browser/resources/print_preview/preprocessed/print_preview.js gen/chrome/browser/resources/print_preview/preprocessed/print_preview_utils.js gen/chrome/browser/resources/print_preview/preprocessed/data/cloud_parsers.js gen/chrome/browser/resources/print_preview/preprocessed/data/coordinate2d.js gen/chrome/browser/resources/print_preview/preprocessed/data/destination.js gen/chrome/browser/resources/print_preview/preprocessed/data/destination_match.js gen/chrome/browser/resources/print_preview/preprocessed/data/destination_policies.js gen/chrome/browser/resources/print_preview/preprocessed/data/destination_store.js gen/chrome/browser/resources/print_preview/preprocessed/data/document_info.js gen/chrome/browser/resources/print_preview/preprocessed/data/invitation.js gen/chrome/browser/resources/print_preview/preprocessed/data/invitation_store.js gen/chrome/browser/resources/print_preview/preprocessed/data/local_parsers.js gen/chrome/browser/resources/print_preview/preprocessed/data/margins.js gen/chrome/browser/resources/print_preview/preprocessed/data/measurement_system.js gen/chrome/browser/resources/print_preview/preprocessed/data/model.js gen/chrome/browser/resources/print_preview/preprocessed/data/printable_area.js gen/chrome/browser/resources/print_preview/preprocessed/data/scaling.js gen/chrome/browser/resources/print_preview/preprocessed/data/size.js gen/chrome/browser/resources/print_preview/preprocessed/data/state.js gen/chrome/browser/resources/print_preview/preprocessed/data/user_manager.js gen/chrome/browser/resources/print_preview/preprocessed/ui/highlight_utils.js gen/chrome/browser/resources/print_preview/preprocessed/ui/input_behavior.js gen/chrome/browser/resources/print_preview/preprocessed/ui/plugin_proxy.js gen/chrome/browser/resources/print_preview/preprocessed/ui/select_behavior.js gen/chrome/browser/resources/print_preview/preprocessed/ui/settings_behavior.js gen/chrome/browser/resources/print_preview/preprocessed_manifest.json
python ../../tools/grit/preprocess_grit.py --in-folder ../../chrome/browser/resources/print_preview/ --out-folder gen/chrome/browser/resources/print_preview/preprocessed --in-files print_preview.html cloud_print_interface.js cloud_print_interface_impl.js dark_mode_behavior.js metrics.js native_layer.js print_preview.js print_preview_utils.js data/cloud_parsers.js data/coordinate2d.js data/destination.js data/destination_match.js data/destination_policies.js data/destination_store.js data/document_info.js data/invitation.js data/invitation_store.js data/local_parsers.js data/margins.js data/measurement_system.js data/model.js data/printable_area.js data/scaling.js data/size.js data/state.js data/user_manager.js ui/highlight_utils.js ui/input_behavior.js ui/plugin_proxy.js ui/select_behavior.js ui/settings_behavior.js -D scale_factors=2x -D _chromium -E CHROMIUM_BUILD=chromium -D desktop_linux -D toolkit_views -D use_aura -D use_nss_certs -D use_ozone --out-manifest gen/chrome/browser/resources/print_preview/preprocessed_manifest.json
Traceback (most recent call last):
File "/tmp/build/ungoogled-chromium-portablelinux/build/src/out/Default/../../tools/grit/preprocess_grit.py", line 101, in <module>
main(sys.argv[1:])
File "/tmp/build/ungoogled-chromium-portablelinux/build/src/out/Default/../../tools/grit/preprocess_grit.py", line 96, in main
json.dump(manifest_data, manifest_file)
File "/usr/lib/python3.9/json/__init__.py", line 180, in dump
fp.write(chunk)
TypeError: a bytes-like object is required, not 'str'
[382/43824] ACTION //chrome/browser/metrics:expired_histograms_array(//build/toolchain/linux/unbundle:default)
ninja: build stopped: subcommand failed.
./build.sh 432.05s user 23.02s system 226% cpu 3:20.49 total
Depends on ungoogled-software/ungoogled-chromium#1005
Remove all prebuild-* patches as these changes should be upstreamed to ungoogled-chromium repo.
Also it's causing CI checks to fail...
Chromium's sysroot scripts have quite a few modifications to maximize compatibility of their builds (see HacksAndPatchesCommon
in https://chromium.googlesource.com/chromium/src.git/+/master/build/linux/sysroot_scripts/sysroot-creator.sh). We should include them so we have the same compatibility as official Chrome/Chromium.
There are two ways we could implement this:
build.sh
, but I don't know how easy that is. It also makes the Docker container a bit redundant.I notice that chrome://sandbox/
shows everything equal to Yes except:
Layer 1 Sandbox | Namespace |
---|---|
PID namespaces | Yes |
Network namespaces | Yes |
Seccomp-BPF sandbox | Yes |
Seccomp-BPF sandbox supports TSYNC | Yes |
Ptrace Protection with Yama LSM (Broker) | No |
Ptrace Protection with Yama LSM (Non-broker) | No |
I have no idea if the above is an issue that needs fixing or anything to worry about at all. So some feedback would be appreciated.
Not sure how to fix this. I was able to build version 87 on the same box with no issues.
[4505/48832] ACTION //third_party/devtools-frontend/src/front_end:html_entrypoints-generation(//build/toolchain/linux/unbundle:default)
FAILED: gen/third_party/devtools-frontend/src/front_end/devtools_app.html gen/third_party/devtools-frontend/src/front_end/inspector.html gen/third_party/devtools-frontend/src/front_end/js_app.html gen/third_party/devtools-frontend/src/front_end/ndb_app.html gen/third_party/devtools-frontend/src/front_end/node_app.html gen/third_party/devtools-frontend/src/front_end/toolbox.html gen/third_party/devtools-frontend/src/front_end/worker_app.html
python ../../third_party/node/node.py ../../third_party/devtools-frontend/src/scripts/build/generate_html_entrypoint.js --template ../../third_party/devtools-frontend/src/front_end/entrypoint_template.html --out-directory gen/third_party/devtools-frontend/src/front_end
Traceback (most recent call last):
File "../../third_party/node/node.py", line 44, in <module>
RunNode(sys.argv[1:])
File "../../third_party/node/node.py", line 24, in RunNode
cmd, cwd=os.getcwd(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
File "/usr/lib/python2.7/subprocess.py", line 394, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1047, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
This is my first attempt at building, so bear with me.
Using Linux Mint 20.3, I've installed all of the clang-13 packages from the LLVM Ubuntu repo. The download and subsequent unpacking seems to go OK. The problem is with one of the export statements in build.sh
. Here's the output from the export statements leading up to the error:
+ export LLVM_VERSION=13
+ LLVM_VERSION=13
+ export AR=llvm-ar-13
+ AR=llvm-ar-13
+ export NM=llvm-nm-13
+ NM=llvm-nm-13
+ export CC=clang-13
+ CC=clang-13
+ export CXX=clang++-13
+ CXX=clang++-13
+ export LLVM_BIN=/usr/lib/llvm-13/bin
+ LLVM_BIN=/usr/lib/llvm-13/bin
++ clang-13 --print-resource-dir
+ _llvm_resource_dir=/usr/lib/llvm-13/lib/clang/13.0.1
+ export CXXFLAGS+=-resource-dir=/usr/lib/llvm-13/lib/clang/13.0.1 -B/usr/lib/llvm-13/bin
+ CXXFLAGS+=-resource-dir=/usr/lib/llvm-13/lib/clang/13.0.1
./build.sh: line 38: export: `-B/usr/lib/llvm-13/bin': not a valid identifier
Line 38 is this: export CXXFLAGS+=-resource-dir=${_llvm_resource_dir} -B${LLVM_BIN}
.
Hi,
The compilation via the docker-build.sh
is not working for versions 88 and up.
For the version 88, two patches are missing (I have them working here).
For the vesrion 89 and up, still working on it.
Do you want a PR for the "old" versions 88, and a second for 89/90
or one only solving for the latest version (90)?
I am building 80.0.3987.87-2 and unlike in 79.x and previous versions this time I see many many warnings. A few examples:
warning: unknown warning option '-Wno-deprecated-copy'; did you mean '-Wno-deprecated'? [-Wunknown-warning-option]
3 warnings generated.
[4622/38831] CXX obj/third_party/angle/src/...n/angle_vulkan_backend/WindowSurfaceVkXcb.o
warning: unknown warning option '-Wno-bitwise-conditional-parentheses'; did you mean '-Wno-bitwise-op-parentheses'? [-Wunknown-warning-option]
warning: unknown warning option '-Wno-builtin-assume-aligned-alignment' [-Wunknown-warning-option]
warning: unknown warning option '-Wno-deprecated-copy'; did you mean '-Wno-deprecated'? [-Wunknown-warning-option]
3 warnings generated.
[4623/38831] CXX obj/third_party/angle/src/...rer/vulkan/angle_vulkan_backend/FenceNVVk.o
warning: unknown warning option '-Wno-bitwise-conditional-parentheses'; did you mean '-Wno-bitwise-op-parentheses'? [-Wunknown-warning-option]
warning: unknown warning option '-Wno-builtin-assume-aligned-alignment' [-Wunknown-warning-option]
warning: unknown warning option '-Wno-deprecated-copy'; did you mean '-Wno-deprecated'? [-Wunknown-warning-option]
3 warnings generated.
Trying to build latest stable version (75.0.3770.90-1.1) I am getting fatal error: 'stddef.h' file not found
. More details:
https://susepaste.org/view//e933cd22
I am using the same process and environment which worked fine for previous versions:
clang version 9.0.0 (trunk 355786)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/***/builds/llvm-build/bin
Found candidate GCC installation: /usr/lib64/gcc/x86_64-suse-linux/7
Selected GCC installation: /usr/lib64/gcc/x86_64-suse-linux/7
Candidate multilib: .;@m64
Selected multilib: .;@m64
What is this due to and how to fix it please?
As the title says, 95.0.4638.69-1.1 fails to compile with Clang 13 on Ubuntu Impish. When Clang gets to compiling ../../third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
, compilation fails with ../../third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc:141:41: error: no matching function for call to 'max'
Attempt to build current master using instructuions fails with message:
../../third_party/blink/renderer/platform/disk_data_allocator.cc:66:10: error: call to deleted constructor of 'blink::DiskDataMetadata'
return chosen_chunk;
^~~~~~~~~~~~
../../third_party/blink/renderer/platform/disk_data_metadata.h:17:3: note: 'DiskDataMetadata' has been explicitly marked deleted here
DiskDataMetadata(DiskDataMetadata&& other) = delete;
^
1 error generated.
Probably was fixed here: chromium/chromium@d62de64#diff-01cd2432d0e8e0055c79a9f3375aaf213a8be0bbaa63c8396317723e7cc45f72
This binary is still on version 83.0.4103.97-1.1. Could someone update it to at least 85.0.4183.102-1? Portable is from over 3 months ago.
I have created this project that contains docker scripts to build a portable image of ungoogled-chromium. It basically just gathers all the dependencies and sets up clang, etc, then calls the scripts from this repo to start the build.
This will simplify the build a lot because:
docker
Will be more than happy to move the repo to this organisation, if there is interest.
I noticed that exporting custom CFLAGS results in concatenation like this (example):
CFLAGS='something'
While build.sh
is running this results in:
clang++ ... something-resource-dir=...
instead of:
clang++ ... something -resource-dir=...
Of course it is not a problem to workaround this with an extra space in my custom script which adds CFLAGS however it may be better to add it on lines 34-38 in build.sh
, e.g.:
export CFLAGS+=-resource-dir=$("$CC" --print-resource-dir) \
becomes
export CFLAGS+=' -resource-dir='$("$CC" --print-resource-dir) \
BTW why is there a trailing \
on all 3 lines?
Can a maintainer please update this package to the latest on the main repo? Additionally, the downloadable binary on https://ungoogled-software.github.io/ungoogled-chromium-binaries/releases/linux_portable/64bit/85.0.4183.102-1.1 is still on version 85.0.4183.102-1.1. Could someone please update that as well?
Spell check doesn't work in slack for Portable Linux 64-bit 83.0.4103.97-1.1
Works as expected in Portable Linux 64-bit 71.xxx version
Tested on Ubuntu 20.04 LTS
Thank you
build fails with pulseaudio 13, works with 12.2
see this issue for details: https://bugs.gentoo.org/694960
I have built successfully 74.0.3729.131 and I notice the following when starting it from console:
[28541:28541:0512/162121.179639:ERROR:sandbox_linux.cc(368)] InitializeSandbox() called with multiple threads in process gpu-process.
[28541:28541:0512/162121.251040:ERROR:buffer_manager.cc(488)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : glBufferData: <- error from previous GL command
When I open github.com the following shows up too:
[28547:28561:0512/162147.285717:ERROR:nss_util.cc(748)] After loading Root Certs, loaded==false: NSS error code: -8018
And when I exit:
[28515:28524:0512/162206.088703:ERROR:browser_process_sub_thread.cc(217)] Waited 3 ms for network service
Question: Can we automate updates to this repo whenever ungoogled-chromium updates?
Since the amount of changes (patches, build flags, etc.) is relatively small, I suspect we could write a simple GitHub Actions workflow that tries to refresh all the changes. If it fails part-way, maybe we could have it draft a PR that we can continue working on.
It might help keep this repo up-to-date, because I think most of the devs here don't update this repo because it's more work than it's worth (compared to other platform repos).
Could this code be updated to the main branch (version 88.0.4324.182-1 or latest)?
./ungoogled-chromium_91.0.4472.164-1.1.AppImage
results into
/tmp/.mount_ungoogu7xwUu/opt/google/chrome/chrome: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/.mount_ungoogu7xwUu/opt/google/chrome/chrome)
/tmp/.mount_ungoogu7xwUu/opt/google/chrome/chrome: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /tmp/.mount_ungoogu7xwUu/opt/google/chrome/chrome)
because
ls -lash /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libm.so.6
0 lrwxrwxrwx 1 root root 12 Dec 7 2020 /lib/x86_64-linux-gnu/libc.so.6 -> libc-2.27.so*
0 lrwxrwxrwx 1 root root 12 Dec 7 2020 /lib/x86_64-linux-gnu/libm.so.6 -> libm-2.27.so
The code in this repo is ready to test. Please try it out and let us know how it goes.
OS debian
git clone --recurse-submodules https://github.com/ungoogled-software/ungoogled-chromium-portablelinux.git
cd ungoogled-chromium-portablelinux
git checkout --recurse-submodules 92.0.4515.159-1.1
./build.sh
FAILED: brotli
python3 "../../build/toolchain/gcc_link_wrapper.py" --output="./brotli" -- clang++ -fuse-ld=lld -Wl,--build-id=sha1 -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-z,defs -Wl,--as-needed -Wl,--icf=all -Wl,--color-diagnostics -Wl,-mllvm,-instcombine-lower-dbg-declare=0 -flto=thin -Wl,--thinlto-jobs=all -Wl,--thinlto-cache-dir=thinlto-cache -Wl,--thinlto-cache-policy,cache_size=10%:cache_size_bytes=40g:cache_size_files=100000 -Wl,-mllvm,-import-instr-limit=5 -fwhole-program-vtables -Wl,--no-call-graph-profile-sort -m64 -Wl,-O2 -Wl,--gc-sections -rdynamic -nostdlib++ -Wl,--lto-O0 -fsanitize=cfi-vcall -fsanitize=cfi-icall -pie -Wl,--disable-new-dtags -o "./brotli" -Wl,--start-group @"./brotli.rsp" -Wl,--end-group -ldl -lpthread -lrt
ld.lld: error: undefined symbol: BrotliDefaultFreeFunc
+ ./out/Default/gn gen out/Default --fail-on-unused-args
Done. Made 16102 targets from 2664 files in 5499ms
+ ninja -C out/Default chrome chrome_sandbox chromedriver
ninja: Entering directory `out/Default'
[3892/49597] LINK ./brotli
FAILED: brotli
python3 "../../build/toolchain/gcc_link_wrapper.py" --output="./brotli" -- clang++ -fuse-ld=lld -Wl,--build-id=sha1 -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-z,defs -Wl,--as-needed -Wl,--icf=all -Wl,--color-diagnostics -Wl,-mllvm,-instcombine-lower-dbg-declare=0 -flto=thin -Wl,--thinlto-jobs=all -Wl,--thinlto-cache-dir=thinlto-cache -Wl,--thinlto-cache-policy,cache_size=10%:cache_size_bytes=40g:cache_size_files=100000 -Wl,-mllvm,-import-instr-limit=5 -fwhole-program-vtables -Wl,--no-call-graph-profile-sort -m64 -Wl,-O2 -Wl,--gc-sections -rdynamic -nostdlib++ -Wl,--lto-O0 -fsanitize=cfi-vcall -fsanitize=cfi-icall -pie -Wl,--disable-new-dtags -o "./brotli" -Wl,--start-group @"./brotli.rsp" -Wl,--end-group -ldl -lpthread -lrt
ld.lld: error: undefined symbol: BrotliDefaultFreeFunc
>>> referenced by ld-temp.o
>>> lto.tmp:(BrotliDefaultFreeFunc.cfi_jt)
ld.lld: error: undefined symbol: BrotliDefaultAllocFunc
>>> referenced by ld-temp.o
>>> lto.tmp:(BrotliDefaultAllocFunc.cfi_jt)
ld.lld: error: undefined symbol: BrotliEncoderCreateInstance
>>> referenced by brotli.c
>>> thinlto-cache/Thin-84a984.tmp.o:(main)
ld.lld: error: undefined symbol: BrotliEncoderSetParameter
>>> referenced by brotli.c
>>> thinlto-cache/Thin-84a984.tmp.o:(main)
>>> referenced by brotli.c
>>> thinlto-cache/Thin-84a984.tmp.o:(main)
>>> referenced by brotli.c
>>> thinlto-cache/Thin-84a984.tmp.o:(main)
>>> referenced 1 more times
ld.lld: error: undefined symbol: BrotliEncoderCompressStream
>>> referenced by brotli.c
>>> thinlto-cache/Thin-84a984.tmp.o:(main)
ld.lld: error: undefined symbol: BrotliEncoderIsFinished
>>> referenced by brotli.c
>>> thinlto-cache/Thin-84a984.tmp.o:(main)
ld.lld: error: undefined symbol: BrotliEncoderDestroyInstance
>>> referenced by brotli.c
>>> thinlto-cache/Thin-84a984.tmp.o:(main)
ld.lld: error: undefined symbol: BrotliTransformDictionaryWord
>>> referenced by decode.c
>>> thinlto-cache/Thin-b3951b.tmp.o:(ProcessCommands)
>>> referenced by decode.c
>>> thinlto-cache/Thin-b3951b.tmp.o:(SafeProcessCommands)
ld.lld: error: undefined symbol: BrotliGetDictionary
>>> referenced by state.c
>>> thinlto-cache/Thin-3fa7ee.tmp.o:(BrotliDecoderStateInit)
ld.lld: error: undefined symbol: BrotliGetTransforms
>>> referenced by state.c
>>> thinlto-cache/Thin-3fa7ee.tmp.o:(BrotliDecoderStateInit)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[3901/49597] ACTION //third_party/blink/renderer/bindings:web_idl_database(//build/toolchain/linux/unbundle:default)
ninja: build stopped: subcommand failed.
Hi,
I am still having trouble with building 80.0.3987.106-1.1
What I notice as abnormal is:
Previous versions (79.x and older) used to build in 2-3 hours max. On the same machine 80.0.3987.106-1.1 build has been running for more than 8 hours now and still on [36958/38831] (i.e. still needs quite some time)
The number of "steps" of ninja is almost x2 as mentioned above: [38831]. In previous versions I used to see something like 20-22K
Tons of repeated warnings like these and proceeding to the next (of 38831) step is quite slow:
[37015/38831] CXX obj/third_party/blink/renderer/modules/webgl/webgl/ovr_multiview_2.o
In file included from ../../third_party/blink/renderer/modules/webgl/ovr_multiview_2.cc:5:
In file included from ../../third_party/blink/renderer/modules/webgl/ovr_multiview_2.h:8:
In file included from ../../third_party/blink/renderer/modules/webgl/webgl_extension.h:30:
In file included from ../../third_party/blink/renderer/core/html/canvas/html_canvas_element.h:35:
In file included from ../../third_party/blink/renderer/bindings/core/v8/script_value.h:36:
In file included from ../../third_party/blink/renderer/bindings/core/v8/world_safe_v8_reference.h:9:
In file included from ../../third_party/blink/renderer/platform/bindings/dom_wrapper_world.h:39:
../../third_party/blink/renderer/platform/bindings/script_state.h:197:38: warning: arithmetic between different enumeration types ('gin::ContextEmbedderDataFields' and 'gin::GinEmbedder') [-Wenum-enum-conversion]
gin::kPerContextDataStartIndex + // NOLINT(readability/enum_casing)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
In file included from ../../third_party/blink/renderer/modules/webgl/ovr_multiview_2.cc:5:
In file included from ../../third_party/blink/renderer/modules/webgl/ovr_multiview_2.h:8:
In file included from ../../third_party/blink/renderer/modules/webgl/webgl_extension.h:30:
In file included from ../../third_party/blink/renderer/core/html/canvas/html_canvas_element.h:38:
In file included from ../../third_party/blink/renderer/core/dom/document.h:39:
In file included from ../../services/metrics/public/cpp/ukm_source_id.h:10:
../../base/metrics/ukm_source_id.h:44:26: warning: definition of implicit copy constructor for 'UkmSourceId' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy]
constexpr UkmSourceId& operator=(UkmSourceId other) {
^
../../base/metrics/ukm_source_id.h:70:12: note: in implicit copy constructor for 'base::UkmSourceId' first required here
return UkmSourceId(internal_value);
^
In file included from ../../third_party/blink/renderer/modules/webgl/ovr_multiview_2.cc:5:
In file included from ../../third_party/blink/renderer/modules/webgl/ovr_multiview_2.h:8:
In file included from ../../third_party/blink/renderer/modules/webgl/webgl_extension.h:30:
In file included from ../../third_party/blink/renderer/core/html/canvas/html_canvas_element.h:38:
In file included from ../../third_party/blink/renderer/core/dom/document.h:46:
In file included from ../../third_party/blink/renderer/core/dom/container_node.h:31:
In file included from ../../third_party/blink/renderer/core/dom/node.h:38:
../../third_party/blink/renderer/core/style/computed_style_constants.h:159:40: warning: bitwise operation between different enumeration types ('blink::InternalGridAutoFlowAlgorithm' and 'blink::InternalGridAutoFlowDirection') [-Wenum-enum-conversion]
kInternalAutoFlowAlgorithmSparse | kInternalAutoFlowDirectionRow,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/blink/renderer/core/style/computed_style_constants.h:161:40: warning: bitwise operation between different enumeration types ('blink::InternalGridAutoFlowAlgorithm' and 'blink::InternalGridAutoFlowDirection') [-Wenum-enum-conversion]
kInternalAutoFlowAlgorithmSparse | kInternalAutoFlowDirectionColumn,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/blink/renderer/core/style/computed_style_constants.h:163:39: warning: bitwise operation between different enumeration types ('blink::InternalGridAutoFlowAlgorithm' and 'blink::InternalGridAutoFlowDirection') [-Wenum-enum-conversion]
kInternalAutoFlowAlgorithmDense | kInternalAutoFlowDirectionRow,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/blink/renderer/core/style/computed_style_constants.h:165:39: warning: bitwise operation between different enumeration types ('blink::InternalGridAutoFlowAlgorithm' and 'blink::InternalGridAutoFlowDirection') [-Wenum-enum-conversion]
kInternalAutoFlowAlgorithmDense | kInternalAutoFlowDirectionColumn
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../third_party/blink/renderer/modules/webgl/ovr_multiview_2.cc:5:
In file included from ../../third_party/blink/renderer/modules/webgl/ovr_multiview_2.h:8:
In file included from ../../third_party/blink/renderer/modules/webgl/webgl_extension.h:30:
In file included from ../../third_party/blink/renderer/core/html/canvas/html_canvas_element.h:49:
In file included from ../../third_party/blink/renderer/platform/graphics/canvas_resource_provider.h:10:
In file included from ../../third_party/blink/renderer/platform/graphics/canvas_resource.h:11:
../../gpu/command_buffer/common/sync_token.h:35:3: warning: definition of implicit copy assignment operator for 'SyncToken' is deprecated because it has a user-declared copy constructor [-Wdeprecated-copy]
SyncToken(const SyncToken& other);
^
../../components/viz/common/resources/transferable_resource.h:60:33: note: in implicit copy assignment operator for 'gpu::SyncToken' first required here
r.mailbox_holder.sync_token = sync_token;
^
7 warnings generated.
What is the reason for this slowness and the increase in "steps"?
FWIW: For build 80.x I am using llvm/clang which I build from Git:
clang version 10.0.0 (https://github.com/llvm/llvm-project.git 90c78073f73eac58f4f8b4772a896dc8aac023bc)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/llvm/bin
Found candidate GCC installation: /usr/lib64/gcc/x86_64-suse-linux/7
Selected GCC installation: /usr/lib64/gcc/x86_64-suse-linux/7
Candidate multilib: .;@m64
Selected multilib: .;@m64
For version 79.x I used llvm/clang which I build from SVN (like Google does, not sure why their python script still refers to SVN as LLVM has moved to git):
clang version 10.0.0 (trunk 373424)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/llvm/bin
Found candidate GCC installation: /usr/lib64/gcc/x86_64-suse-linux/7
Selected GCC installation: /usr/lib64/gcc/x86_64-suse-linux/7
Candidate multilib: .;@m64
Selected multilib: .;@m64
What are plans and is the current situation wrt to publishing binaries, in particular those that can be used on *.deb based systems?
At the time of writing the ungoogled-chromium-debian repository has seen its last commit in November and seems to be stalled? Is @braewoods still active there?
Also at this moment the last portablelinux release seems to be chrome v95, meanwhile chromium in Debian has seen a v97 release.
@Eloston states that he won't use OBS for now for portablelinux in order not to interfere with the OBS Debian builds and thus portablelinux binaries do not get built automatically. There are issues #86 and #50 requesting official portable OBS builds and tentatively asking if using OBS would be OK and #50 offering help.
Meanwhile the portablelinux repository is seeing commits by @Eloston but there are seemingly no publicly available binaries as a result?
Is the problem that the main committers (@braewoods and @Eloston ?) are lacking time and/or motivation to deal with the infrastructure and tickets here?
I guess it should be possible for someone to fork these projects once more and set up CI for portablelinux but then again, the chaos of these many repos is already very hard to understand and to follow so yet another fork wouldn't improve this particular problematic aspect?
@berkley4 seems to have taken that road with his fork that adds other patches, makes releases however is also at v96.
So I'd like to ask if the main committers could maybe chime in and tell where they want this project and these repos to go?
I tried the Docker build without success.
Tag 84.0.4147.125-1.1
Log tail:
...
ninja: Entering directory `/repo/build/src/out/Release/gn_build'
[188/188] LINK gn
+ ./out/Default/gn gen out/Default --fail-on-unused-args
Done. Made 11924 targets from 2201 files in 3462ms
+ ninja -C out/Default chrome chrome_sandbox chromedriver
ninja: Entering directory `out/Default'
ninja: error: '/usr/share/xcb/bigreq.xml', needed by 'gen/ui/gfx/x/bigreq_undef.h', missing and no known rule to make it
I cannot build on opensuse tumbleweed currently as several files contain deprecated use of StringIO and cStringIO
[1061/40414] ACTION //chrome/test/chromedriver:embed_extension_in_cpp(//build/toolchain/linux/unbundle:default) FAILED: gen/chrome/test/chromedriver/chrome/embedded_automation_extension.cc gen/chrome/test/chromedriver/chrome/embedded_automation_extension.h python ../../chrome/test/chromedriver/embed_extension_in_cpp.py --directory gen/chrome/test/chromedriver/chrome ../../chrome/test/chromedriver/extension/background.js ../../chrome/test/chromedriver/extension/manifest.json Traceback (most recent call last): File "../../chrome/test/chromedriver/embed_extension_in_cpp.py", line 11, in <module> import StringIO ModuleNotFoundError: No module named 'StringIO' [1070/40414] ACTION //extensions/common/api:generated_api_json_strings_bundle_generator_schema(//build/toolchain/linux/unbundle:default) ninja: build stopped: subcommand failed.
What would be my best course of action to complete a build?
Thanks,
Warnings blasting for literally every link, and building still fails on normal and docker version.
warning: unknown warning option '-Wno-max-tokens'; did you mean '-Wno-extra-tokens'? [-Wunknown-warning-option]
3 warnings generated.
[1905/48832] LINK ./chrome_sandbox
FAILED: chrome_sandbox
python "../../build/toolchain/gcc_link_wrapper.py" --output="./chrome_sandbox" -- clang++ -pie -fuse-ld=lld -Wl,--build-id=sha1 -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-z,defs -Wl,--as-needed -Wl,--icf=all -Wl,--color-diagnostics -Wl,-mllvm,-instcombine-lower-dbg-declare=0 -flto=thin -Wl,--thinlto-jobs=all -Wl,--thinlto-cache-dir=thinlto-cache -Wl,--thinlto-cache-policy,cache_size=10\%:cache_size_bytes=40g:cache_size_files=100000 -Wl,-mllvm,-import-instr-limit=5 -fwhole-program-vtables -Wl,--no-call-graph-profile-sort -m64 -Wl,-O2 -Wl,--gc-sections -rdynamic -nostdlib++ -Wl,--lto-O0 -fsanitize=cfi-vcall -fsanitize=cfi-icall -pie -Wl,--disable-new-dtags -o "./chrome_sandbox" -Wl,--start-group @"./chrome_sandbox.rsp" -Wl,--end-group -ldl -lpthread -lrt
ld.lld: error: --thinlto-jobs=all: number expected, but got 'all'
ld.lld: error: --thinlto-jobs: number of threads must be > 0
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[1908/48832] CXX obj/ppapi/cpp/objects/file_io.o
warning: unknown warning option '-Wno-psabi' [-Wunknown-warning-option]
warning: unknown warning option '-Wno-non-c-typedef-for-linkage'; did you mean '-Wno-return-type-c-linkage'? [-Wunknown-warning-option]
warning: unknown warning option '-Wno-max-tokens'; did you mean '-Wno-extra-tokens'? [-Wunknown-warning-option]
3 warnings generated.
[1911/48832] CXX obj/skia/skia_core_and_effects/SkDropShadowImageFilter.o
warning: unknown warning option '-Wno-psabi' [-Wunknown-warning-option]
warning: unknown warning option '-Wno-non-c-typedef-for-linkage'; did you mean '-Wno-return-type-c-linkage'? [-Wunknown-warning-option]
warning: unknown warning option '-Wno-max-tokens'; did you mean '-Wno-extra-tokens'? [-Wunknown-warning-option]
3 warnings generated.
[1914/48832] CXX obj/skia/skia_core_and_effects/SkDisplacementMapImageFilter.o
warning: unknown warning option '-Wno-psabi' [-Wunknown-warning-option]
warning: unknown warning option '-Wno-non-c-typedef-for-linkage'; did you mean '-Wno-return-type-c-linkage'? [-Wunknown-warning-option]
warning: unknown warning option '-Wno-max-tokens'; did you mean '-Wno-extra-tokens'? [-Wunknown-warning-option]
3 warnings generated.
ninja: build stopped: subcommand failed.
ungoogled-chromium-portablelinux on ๎ HEAD (3821a20) took 2m50s โฏ
Same failiure on both tries, chrome_sandbox
.
What am I missing here?
I did the following:
apt install clang-10 lld-10 llvm-10-dev python python3 ninja-build nodejs
and just followed the guide from here
I also used the 90.0.4430.85-1.1
tag.
https://github.com/ungoogled-software/ungoogled-chromium-portablelinux/blob/master/README.md
Portable Linux builds can run on any Linux distribution (that regular Chromium supports).
ungoogled-chromium_91.0.4472.164-1.1_linux$ ./chrome
./chrome: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./chrome)
./chrome: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by ./chrome)
Ubuntu 18.04
ungoogled-chromium_91.0.4472.164-1.1_linux.tar.xz
downloaded from: https://ungoogled-software.github.io/ungoogled-chromium-binaries/releases/linux_portable/64bit/91.0.4472.164-1.1
Portable Linux Ungoogled Chromium ('UC') v87.0.4280.67-1.1, offered by @LordTwix, was installed on Calculate Linux (Gentoo-compatible) 20.6. The following three issues manifested, the last of which is still outstanding (the more up-to-date Portable Linux Ungoogled Chromium version 87.0.4280.88-1.1 offered by @mcstrugs was not tested here):-
Whenever Portable Linux UC v87.0.4280.67-1.1 was launched from a terminal, keeping settings from Portable Linux UC v85, this terminated with a 'Segmentation Fault' when launched from a new /bin/usr/chromium
soft link, regardless whether it was launched from a new and --incognito
switch or not, and regardless of the variation of urls specified, if any. Perhaps the original ~/.config/chromium
settings folder - carried over from UC v85 and probably older versions - became corrupted at one point; that settings folder had since been used several times lately with the out-of-the-box Calculate-Linux-/Gentoo-provided Chromium v87.0.4280.66 offered on a new system install.
Solution - Ungoogled-Chromium Portable Version 87.0.4280.67-1.1 version opened correctly with a clean UC install:
Step 1) Export bookmarks while running v85 (or other version, perhaps) in the standard way for later import;
Step 2) Backup the v85 ~/.config/chromium
directory, say, to ~/.config/chromiumV85
for safekeeping in case you later want to revert to v85;
Step 3) Launch the new Portable Version 87 version, which forces UC to automatically create a new chromium settings folder for this new version.
This works so far.
Therefore, a newly created ~/.config/chromium
directory was created (clean UC install); and bookmarks backed up from v85 were then proceded to be imported. Freshly-created search engines were entered with freshly-installed extensions for v87 and freshly-specified cookie policies and font settings. In order to save setup time for other user(s) on this system, this new directory with its settings was attempted to be copied over from the first user to another, and ownership was attributed to, say, 'newuser':
sudo chown newuser:newuser -R /home/newuser/.config/chromium
Although, as expected, no segmentation faults occurred for the user logged in as 'newuser', the following did manifest:-
a) Cookie policies, font settings and v87 extensions at least, as set by the first user, somehow did not carry over despite having being set by the first user in a fresh v87 install and file ownerships having been set for 'newuser'.
b) SingletonCookie
, SingletonLock
and SingletonSocket
were found listed in of newuser
's imported .config/chromium
v87 directory, copied over chromium from the first user. Those 'Singleton' elements were perhaps simply due to extensions, as mentioned here and here (or perhaps see this also). Indeed, the extensions didn't load, nor the settings, although the bookmarks and search engines did carry over.
chrome-wrapper
launcher in this Linux Portable v87 would hang after launching from a terminal when specifying several websites as parameters (see steps reproduced below from memory). UC v87 was launched as shown below (with a similar list of urls used as parameters although probably launching by using soft link /usr/bin/chromium
pointing to chrome-wrapper
instead), and after several minutes, the UC session was manually attempted to be shut down by clicking the 'x' at the top right of UC's window, but the terminal from which chrome-wrapper
was launched then did not immediately offer a '$' prompt; the terminal just 'hung' displaying perhaps no new messages. I didn't make much deal of it and after a moment I just decided to close the terminal as I didn't get a new prompt. Today, I could not reproduce this. I doubt that the .config/chromium
folder for v85 had still been used, which had caused a hiccup for the v87 session, as in cases 1. and 2. above. However, when launching UC v87 today with the .config/chromium
folder deleted (so as to get a clean settings folder generated), UC developers may want to be aware of some error messages that were generated before shutting down UC by clicking the 'x' at the top right of UC's window after just two minutes without clicking on anything in the opened tabs. EDIT: I accidentally tried this experiment publishing the results here for UC v85, so I have edited that out and retried the following command twice with v87:$ ./chrome-wrapper 'https://gnews.org/' 'https://nitter.net/CHHR01' 'https://nitter.net/Stars4P' 'https://nitter.net/roccogalatilaw' 'https://nitter.net/Rothbard1776' 'https://nitter.net/SidneyPowell1' 'https://nitter.net/dmills3710' 'https://nitter.net/iNewsTV' 'https://nitter.net/ElizabetCovfefe' 'https://nitter.net/GeorgWebb' 'https://nitter.net/search?f=tweets&q=pufpufpafpaf+lang%3Aen' 'https://nitter.net/anthonyfenton' 'https://nitter.net/frank275' 'https://nitter.net/SaRaAshcraft' 'https://nitter.net/LucindDionysius' 'https://nitter.net/boginjaproleca' 'https://nitter.net/n0nmanifest' 'https://nitter.net/jeffreyprather' 'https://therightscoop.com/' 'https://nitter.net/JuliansRum' 'https://nitter.net/Stars4P' 'https://nitter.net/kraken_wood'
Strangely, the first time I tried to repeat this experiment today by using the following command got partly rehashed, yet a screenshot taken with xfce4-screenshooter somehow only displays a slither (it seems to be a slither of my background wallpaper):-
Here is the output from that first retrial, and it produced a 'hashed prompt':
$ cd /opt/ungoogled-chromium_87.0.4280.67-1.1_linux/
thankGdasuser /opt/ungoogled-chromium_87.0.4280.67-1.1_linux $ ./chrome-wrapper 'https://gnethankGdasuser /opt/ungoogled-chromium_87.0.4280.67-1.1_linux $ ./chrome-wrapper thankGdasuser /opt/ungoogled-chromium_87.0.4280.67-1.1_linux $ ./chrome-wrapper 'https://gnews.org/' 'https://nitter.net/CHHR01' 'https://nitter.net/Stars4P' 'https://nitter.net/roccogalatilaw' 'https://nitter.net/Rothbard1776' 'https://nitter.net/SidneyPowell1' 'https://nitter.net/dmills3710' 'https://nitter.net/iNewsTV' 'https://nitter.net/ElizabetCovfefe' 'https://nitter.net/GeorgWebb' 'https://nitter.net/search?f=tweets&q=pufpufpafpaf+lang%3Aen' 'https://nitter.net/anthonyfenton' 'https://nitter.net/frank275' 'https://nitter.net/SaRaAshcraft' 'https://nitter.net/LucindDionysius' 'https://nitter.net/boginjaproleca' 'https://nitter.net/n0nmanifest' 'https://nitter.net/jeffreyprather' 'https://therightscoop.com/' 'https://nitter.net/JuliansRum' 'https://nitter.net/Stars4P' 'https://nitter.net/kraken_wood'
[32728:32728:1209/172110.411662:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
[32731:32747:1209/172111.370291:ERROR:ev_root_ca_metadata.cc(841)] Failed to register OID: 0
[449:1:1209/172118.130579:ERROR:webrtc_sdp.cc(396)] Failed to parse: "a=msid: ". Reason: Missing track ID in msid attribute.
[449:1:1209/172118.131935:ERROR:webrtc_sdp.cc(396)] Failed to parse: "a=msid: ". Reason: Missing track ID in msid attribute.
[449:1:1209/172118.132189:ERROR:webrtc_sdp.cc(396)] Failed to parse: "a=msid: ". Reason: Missing track ID in msid attribute.
[449:1:1209/172118.132410:ERROR:webrtc_sdp.cc(396)] Failed to parse: "a=msid: ". Reason: Missing track ID in msid attribute.
[449:1:1209/172118.132620:ERROR:rtc_peer_connection_handler.cc(2575)] Failed to create native session description. Type: "offer" SDP: "v=0\r\no=- 3097479903649175884 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=msid-semantic: WMS\r\nm=application 9 UDP/TLS/RTP/SAVPF 118\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:JpYu\r\na=ice-pwd:/sTFEE3rzW38rt8NI20ABN+s\r\na=ice-options:trickle\r\na=fingerprint:sha-256 38:AA:10:C2:44:A6:7E:33:E0:61:50:98:34:CB:6B:D3:CA:36:CE:64:74:98:1C:8B:EF:2F:64:8A:4C:14:6D:93\r\na=setup:actpass\r\na=mid:0\r\na=sendrecv\r\na=msid: \r\na=rtcp-mux\r\na=rtpmap:118 google-data/90000\r\na=ssrc:713266884 cname:xAFwYrx7utD/bNy/\r\na=ssrc:713266884 msid:- \r\na=ssrc:713266884 mslabel:-\r\na=ssrc:713266884 label:\r\n"
[449:1:1209/172118.132747:ERROR:rtc_peer_connection_handler.cc(1367)] "Failed to parse SessionDescription. a=msid: Missing track ID in msid attribute."
thankGdasuser /opt/ungoogled-chromium_87.0.4280.67-1.1_linux $
Therefore there were several artefacts in that first retrial:-
Error 3A: Lines 2-3 in the terminal output display the original './chrome-wrapper' command partly rehashed. Maybe this is due to a bug on my system installation, as with the following error.
Error 3B: Line 2 shows the command, but starting with an URL containing the username 'thankGdasuser' in part:
$ ./chrome-wrapper 'https://gnethankGdasuser
The prompt, presumably, should be username (thankGdasuser
), path (/opt/ungoogled-chromium_87.0.4280.67-1.1_linux
), prompt symbol ($
), as follows:
thankGdasuser /opt/ungoogled-chromium_87.0.4280.67-1.1_linux $
Inspecting the output of that first retrial, there were further artefacts:-
ERROR 3C: 'ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.'
ERROR 3D: 'ERROR:ev_root_ca_metadata.cc(841)] Failed to register OID: 0'
ERROR 3E: 'ERROR:webrtc_sdp.cc(396)] Failed to parse: "a=msid: ". Reason: Missing track ID in msid attribute.'
This occurs four times, sequentially, as shown above.
ERROR 3F: 'ERROR:rtc_peer_connection_handler.cc(2575)] Failed to create native session description.
ERROR 3G: 'ERROR:rtc_peer_connection_handler.cc(1367)] "Failed to parse SessionDescription. a=msid: Missing track ID in msid attribute."'
Seeing how the screenshot was just a slither, I tried to reproduce the error by again removing the .config/chromium settings folder for a clean install. This second time, a readable screenshot was successful, but somehow only two errors reported:
Output from this second retrial:
thankGdasuser /opt/ungoogled-chromium_87.0.4280.67-1.1_linux $ ./chrome-wrapper 'https://gnews.org/' 'https://nitter.net/CHHR01' 'https://nitter.net/Stars4P' 'https://nitter.net/roccogalatilaw' 'https://nitter.net/Rothbard1776' 'https://nitter.net/SidneyPowell1' 'https://nitter.net/dmills3710' 'https://nitter.net/iNewsTV' 'https://nitter.net/ElizabetCovfefe' 'https://nitter.net/GeorgWebb' 'https://nitter.net/search?f=tweets&q=pufpufpafpaf+lang%3Aen' 'https://nitter.net/anthonyfenton' 'https://nitter.net/frank275' 'https://nitter.net/SaRaAshcraft' 'https://nitter.net/LucindDionysius' 'https://nitter.net/boginjaproleca' 'https://nitter.net/n0nmanifest' 'https://nitter.net/jeffreyprather' 'https://therightscoop.com/' 'https://nitter.net/JuliansRum' 'https://nitter.net/Stars4P' 'https://nitter.net/kraken_wood'
[11296:11296:1209/175830.548160:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
[11300:11341:1209/175831.340934:ERROR:ev_root_ca_metadata.cc(841)] Failed to register OID: 0
thankGdasuser /opt/ungoogled-chromium_87.0.4280.67-1.1_linux $
Therefore, there were only two errors in this second retrial:-
ERROR 3H: 'ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.'
ERROR 3I: 'ERROR:ev_root_ca_metadata.cc(841)] Failed to register OID: 0'
Some UC sessions apparently generate a bit more cooling fan activity than with v85.
Thank you very much for your work.
git clone --recurse-submodules https://github.com/ungoogled-software/ungoogled-chromium-portablelinux.git
cd ungoogled-chromium-portablelinux
git checkout --recurse-submodules tags/94.0.4606.81-1.1
# Further commands were taken from docker-build.sh, because running ./docker-build.sh produces an error about unknown command 'pushd'
git submodule update --init --recursive
mkdir -p build
cd docker-stage1
docker build --rm -f "Dockerfile" -t ug-chromium-builder-stage1:latest ./
cd ..
docker build --rm -f "Dockerfile-stage2" -t ug-chromium-builder-stage2:latest ./
# so far, so good.
docker run -ti -v `pwd`/build:/repo/build ug-chromium-builder-stage2:latest bash -c "./build.sh && ./package.sh" # This fails
tail of the build when errors start to show up:
[5/50245] CC obj/base/third_party/xdg_mime/xdg_mime/xdgmimeparent.o
FAILED: obj/base/third_party/xdg_mime/xdg_mime/xdgmimeparent.o
clang -MMD -MF obj/base/third_party/xdg_mime/xdg_mime/xdgmimeparent.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DUSE_X11=1 -DOFFICIAL_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DCR_CLANG_REVISION=\"llvmorg-14-init-1002-gb5e470aa-1\" -D_LIBCPP_ABI_UNSTABLE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -DCR_LIBCXX_REVISION=79a2e924d96e2fc1e4b937c42efd08898fa472d7 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../.. -Igen -I../../buildtools/third_party/libc++ -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off -flto=thin -fsplit-lto-unit -fwhole-program-vtables -fcomplete-member-pointers -m64 -march=x86-64 -msse3 -ffile-compilation-dir=. -no-canonical-prefixes -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -ftrivial-auto-var-init=pattern -fsanitize=cfi-vcall -fsanitize-ignorelist=../../tools/cfi/ignores.txt -fsanitize=cfi-icall -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wall -Wno-unused-variable -Wno-c++11-narrowing -Wno-misleading-indentation -Wno-missing-field-initializers -Wno-unused-parameter -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-psabi -Wno-ignored-pragma-optimize -Wno-builtin-assume-aligned-alignment -Wno-deprecated-copy -Wno-unused-but-set-parameter -Wno-unused-but-set-variable -Wno-inline-asm -std=c11 -resource-dir=/usr/lib/llvm-11/lib/clang/11.0.1 -resource-dir=/usr/lib/llvm-11/lib/clang/11.0.1 -c ../../base/third_party/xdg_mime/xdgmimeparent.c -o obj/base/third_party/xdg_mime/xdg_mime/xdgmimeparent.o
clang: error: unknown argument: '-ffile-compilation-dir=.'
clang: error: unknown argument: '-fsanitize-ignorelist=../../tools/cfi/ignores.txt'
[6/50245] CXX obj/base/third_party/double_conversion/double_conversion/fixed-dtoa.o
FAILED: obj/base/third_party/double_conversion/double_conversion/fixed-dtoa.o
clang++ -MMD -MF obj/base/third_party/double_conversion/double_conversion/fixed-dtoa.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DUSE_X11=1 -DOFFICIAL_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DCR_CLANG_REVISION=\"llvmorg-14-init-1002-gb5e470aa-1\" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_LIBCPP_ABI_UNSTABLE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -DCR_LIBCXX_REVISION=79a2e924d96e2fc1e4b937c42efd08898fa472d7 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../.. -Igen -I../../buildtools/third_party/libc++ -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off -flto=thin -fsplit-lto-unit -fwhole-program-vtables -fcomplete-member-pointers -m64 -march=x86-64 -msse3 -ffile-compilation-dir=. -no-canonical-prefixes -Wall -Wextra -Wimplicit-fallthrough -Wunreachable-code -Wthread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-psabi -Wno-ignored-pragma-optimize -Wno-builtin-assume-aligned-alignment -Wno-deprecated-copy -Wno-unused-but-set-parameter -Wno-unused-but-set-variable -Wno-inline-asm -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -ftrivial-auto-var-init=pattern -fsanitize=cfi-vcall -fsanitize-ignorelist=../../tools/cfi/ignores.txt -fsanitize=cfi-icall -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wno-unused-const-variable -Wno-unused-function -std=c++14 -fno-trigraphs -Wno-trigraphs -fno-exceptions -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include -fvisibility-inlines-hidden -resource-dir=/usr/lib/llvm-11/lib/clang/11.0.1 -resource-dir=/usr/lib/llvm-11/lib/clang/11.0.1 -c ../../base/third_party/double_conversion/double-conversion/fixed-dtoa.cc -o obj/base/third_party/double_conversion/double_conversion/fixed-dtoa.o
clang++: error: unknown argument: '-ffile-compilation-dir=.'
clang++: error: unknown argument: '-fsanitize-ignorelist=../../tools/cfi/ignores.txt'
[7/50245] CXX obj/base/third_party/xdg_user_dirs/xdg_user_dirs/xdg_user_dir_lookup.o
FAILED: obj/base/third_party/xdg_user_dirs/xdg_user_dirs/xdg_user_dir_lookup.o
clang++ -MMD -MF obj/base/third_party/xdg_user_dirs/xdg_user_dirs/xdg_user_dir_lookup.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DUSE_X11=1 -DOFFICIAL_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DCR_CLANG_REVISION=\"llvmorg-14-init-1002-gb5e470aa-1\" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_LIBCPP_ABI_UNSTABLE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -DCR_LIBCXX_REVISION=79a2e924d96e2fc1e4b937c42efd08898fa472d7 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../.. -Igen -I../../buildtools/third_party/libc++ -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off -flto=thin -fsplit-lto-unit -fwhole-program-vtables -fcomplete-member-pointers -m64 -march=x86-64 -msse3 -ffile-compilation-dir=. -no-canonical-prefixes -Wall -Wextra -Wimplicit-fallthrough -Wunreachable-code -Wthread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-psabi -Wno-ignored-pragma-optimize -Wno-builtin-assume-aligned-alignment -Wno-deprecated-copy -Wno-unused-but-set-parameter -Wno-unused-but-set-variable -Wno-inline-asm -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -ftrivial-auto-var-init=pattern -fsanitize=cfi-vcall -fsanitize-ignorelist=../../tools/cfi/ignores.txt -fsanitize=cfi-icall -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -std=c++14 -fno-trigraphs -Wno-trigraphs -fno-exceptions -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include -fvisibility-inlines-hidden -resource-dir=/usr/lib/llvm-11/lib/clang/11.0.1 -resource-dir=/usr/lib/llvm-11/lib/clang/11.0.1 -c ../../base/third_party/xdg_user_dirs/xdg_user_dir_lookup.cc -o obj/base/third_party/xdg_user_dirs/xdg_user_dirs/xdg_user_dir_lookup.o
clang++: error: unknown argument: '-ffile-compilation-dir=.'
clang++: error: unknown argument: '-fsanitize-ignorelist=../../tools/cfi/ignores.txt'
[8/50245] CC obj/base/third_party/xdg_mime/xdg_mime/xdgmimemagic.o
FAILED: obj/base/third_party/xdg_mime/xdg_mime/xdgmimemagic.o
clang -MMD -MF obj/base/third_party/xdg_mime/xdg_mime/xdgmimemagic.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DUSE_X11=1 -DOFFICIAL_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DCR_CLANG_REVISION=\"llvmorg-14-init-1002-gb5e470aa-1\" -D_LIBCPP_ABI_UNSTABLE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -DCR_LIBCXX_REVISION=79a2e924d96e2fc1e4b937c42efd08898fa472d7 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../.. -Igen -I../../buildtools/third_party/libc++ -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off -flto=thin -fsplit-lto-unit -fwhole-program-vtables -fcomplete-member-pointers -m64 -march=x86-64 -msse3 -ffile-compilation-dir=. -no-canonical-prefixes -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -ftrivial-auto-var-init=pattern -fsanitize=cfi-vcall -fsanitize-ignorelist=../../tools/cfi/ignores.txt -fsanitize=cfi-icall -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wall -Wno-unused-variable -Wno-c++11-narrowing -Wno-misleading-indentation -Wno-missing-field-initializers -Wno-unused-parameter -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-psabi -Wno-ignored-pragma-optimize -Wno-builtin-assume-aligned-alignment -Wno-deprecated-copy -Wno-unused-but-set-parameter -Wno-unused-but-set-variable -Wno-inline-asm -std=c11 -resource-dir=/usr/lib/llvm-11/lib/clang/11.0.1 -resource-dir=/usr/lib/llvm-11/lib/clang/11.0.1 -c ../../base/third_party/xdg_mime/xdgmimemagic.c -o obj/base/third_party/xdg_mime/xdg_mime/xdgmimemagic.o
clang: error: unknown argument: '-ffile-compilation-dir=.'
clang: error: unknown argument: '-fsanitize-ignorelist=../../tools/cfi/ignores.txt'
[9/50245] CXX obj/base/third_party/double_conversion/double_conversion/fast-dtoa.o
FAILED: obj/base/third_party/double_conversion/double_conversion/fast-dtoa.o
clang++ -MMD -MF obj/base/third_party/double_conversion/double_conversion/fast-dtoa.o.d -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DUSE_X11=1 -DOFFICIAL_BUILD -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DCR_CLANG_REVISION=\"llvmorg-14-init-1002-gb5e470aa-1\" -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_LIBCPP_ABI_UNSTABLE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -DCR_LIBCXX_REVISION=79a2e924d96e2fc1e4b937c42efd08898fa472d7 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../.. -Igen -I../../buildtools/third_party/libc++ -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -ffp-contract=off -flto=thin -fsplit-lto-unit -fwhole-program-vtables -fcomplete-member-pointers -m64 -march=x86-64 -msse3 -ffile-compilation-dir=. -no-canonical-prefixes -Wall -Wextra -Wimplicit-fallthrough -Wunreachable-code -Wthread-safety -Wextra-semi -Wno-missing-field-initializers -Wno-unused-parameter -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-psabi -Wno-ignored-pragma-optimize -Wno-builtin-assume-aligned-alignment -Wno-deprecated-copy -Wno-unused-but-set-parameter -Wno-unused-but-set-variable -Wno-inline-asm -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -fno-omit-frame-pointer -g0 -ftrivial-auto-var-init=pattern -fsanitize=cfi-vcall -fsanitize-ignorelist=../../tools/cfi/ignores.txt -fsanitize=cfi-icall -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wno-unused-const-variable -Wno-unused-function -std=c++14 -fno-trigraphs -Wno-trigraphs -fno-exceptions -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include -fvisibility-inlines-hidden -resource-dir=/usr/lib/llvm-11/lib/clang/11.0.1 -resource-dir=/usr/lib/llvm-11/lib/clang/11.0.1 -c ../../base/third_party/double_conversion/double-conversion/fast-dtoa.cc -o obj/base/third_party/double_conversion/double_conversion/fast-dtoa.o
clang++: error: unknown argument: '-ffile-compilation-dir=.'
clang++: error: unknown argument: '-fsanitize-ignorelist=../../tools/cfi/ignores.txt'
[10/50245] ACTION //base:anchor_functions_buildflags(//build/toolchain/linux/unbundle:default)
ninja: build stopped: subcommand failed.
I'm not sure about the right place to put this feature request. Feel free to close the wrong one.
As somebody proposed in discussions having an official portable build to take and repackage in other distros would be nice. It would really help to spread this project. There's at least one distro considering this. Taking the unofficial binaries seems not like something a distro can do as you need to trust more and completely unknown users than just @Eloston.
Building chromium is a task only major distributions can tackle. Adding ungoogled-chromium-portablelinux to OBS would be perfect. It just needs to stay portable (which means /opt, obviously).
I came to understand that the OBS is operated by @braewoods and @jstkdng. Since Eloston obviously approves this, that would be trustworthy enough, I think.
Posting this for a friend, I am quoting them verbatim
There are critical security issues on current 87 version.
Windows, ArchLinux and manjaro builds have been upgraded https://ungoogled-software.github.io/ungoogled-chromium-binaries/
Please upgrade this build as soon as possible.
The title explains it all, I guess.
$ chromium-browser https://www.youtube.com/watch?v=tOzwIYQDSbY
https://www.youtube.com/watch?v=tOzwIYQDSbY
[20638:20638:1029/165359.523682:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
WARNING: Kernel has no file descriptor comparison support: Function not implemented
Fontconfig error: Cannot load default config file: No such file: (null)
[20783:15:1029/165406.560372:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"{\"causes\":[{\"causes\":[],\"data\":{},\"stack\":[{\"file\":\"../../media/filters/decrypting_video_decoder.cc\",\"line\":53}],\"status_code\":264,\"status_message\":\"\"}],\"data\":{\"Decoder name\":\"DecryptingVideoDecoder\"},\"stack\":[{\"file\":\"../../media/filters/decoder_selector.cc\",\"line\":172}],\"status_code\":265,\"status_message\":\"\"}"}
[20783:15:1029/165406.560529:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"{\"causes\":[{\"causes\":[],\"data\":{},\"stack\":[{\"file\":\"../../media/filters/vpx_video_decoder.cc\",\"line\":135}],\"status_code\":265,\"status_message\":\"\"}],\"data\":{\"Decoder name\":\"VpxVideoDecoder\"},\"stack\":[{\"file\":\"../../media/filters/decoder_selector.cc\",\"line\":172}],\"status_code\":265,\"status_message\":\"\"}"}
[20783:15:1029/165406.560728:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"{\"causes\":[{\"causes\":[],\"data\":{\"codec\":\"h264\"},\"stack\":[{\"file\":\"../../media/filters/dav1d_video_decoder.cc\",\"line\":165}],\"status_code\":260,\"status_message\":\"\"}],\"data\":{\"Decoder name\":\"Dav1dVideoDecoder\"},\"stack\":[{\"file\":\"../../media/filters/decoder_selector.cc\",\"line\":172}],\"status_code\":265,\"status_message\":\"\"}"}
$ chromium-browser --no-sandbox https://www.youtube.com/watch?v=tOzwIYQDSbY
[19698:19698:1029/165324.425148:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
WARNING: Kernel has no file descriptor comparison support: Function not implemented
[19730:19881:1029/165326.280800:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"{\"causes\":[{\"causes\":[],\"data\":{},\"stack\":[{\"file\":\"../../media/filters/decrypting_video_decoder.cc\",\"line\":53}],\"status_code\":264,\"status_message\":\"\"}],\"data\":{\"Decoder name\":\"DecryptingVideoDecoder\"},\"stack\":[{\"file\":\"../../media/filters/decoder_selector.cc\",\"line\":172}],\"status_code\":265,\"status_message\":\"\"}"}
[19730:19881:1029/165326.280976:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"{\"causes\":[{\"causes\":[],\"data\":{},\"stack\":[{\"file\":\"../../media/filters/vpx_video_decoder.cc\",\"line\":135}],\"status_code\":265,\"status_message\":\"\"}],\"data\":{\"Decoder name\":\"VpxVideoDecoder\"},\"stack\":[{\"file\":\"../../media/filters/decoder_selector.cc\",\"line\":172}],\"status_code\":265,\"status_message\":\"\"}"}
[19730:19881:1029/165326.281099:ERROR:batching_media_log.cc(38)] MediaEvent: {"error":"{\"causes\":[{\"causes\":[],\"data\":{\"codec\":\"h264\"},\"stack\":[{\"file\":\"../../media/filters/dav1d_video_decoder.cc\",\"line\":165}],\"status_code\":260,\"status_message\":\"\"}],\"data\":{\"Decoder name\":\"Dav1dVideoDecoder\"},\"stack\":[{\"file\":\"../../media/filters/decoder_selector.cc\",\"line\":172}],\"status_code\":265,\"status_message\":\"\"}"}
I believe the guys at Alpine are aware of this very issue; they run Chromium unsandboxed as well.
Help wanted for updating to ungoogled-chromium 73. Please respond if you'd like to work on this. Thanks
Hi,
Not sure, but the automatic update of this repo as described in the issue #91 and commit 91c811d is probably not working, or I dont understand it.
I thought it was a change on master on https://github.com/Eloston/ungoogled-chromium that should trigger an action here to upate master here with the new tag.
Am I wrong ?
I don't know if this is the same issue as discussed in ungoogled-software/ungoogled-chromium#519 (comment).
Starting chrome
from command line always shows:
[12047:12047:0325/153826.065129:ERROR:sandbox_linux.cc(364)] InitializeSandbox() called with multiple threads in process gpu-process.
This has been happening for many months (i.e. not something new).
Building under Debian unstable, I'm hitting an identical error to the one I mentioned in debian issue #178. I run into this building both 86.0.4240.111 and 86.0.4240.183.
Unless this issue is something specific to my setup (a chroot build), this would appear to be a debian issue since other distros seem able to build fine.
[3498/43114] ACTION //third_party/blink/renderer/bindings:generate_bindings_all(//build/toolchain/linux/unbundle:default)
.
.
python ../../third_party/blink/renderer/bindings/scripts/generate_bindings.py --web_idl_database gen/third_party/blink/renderer/bindings/web_idl_database.pickle --root_src_dir ../../ --root_gen_dir gen --output_core_reldir third_party/blink/renderer/bindings/core/v8/ --output_modules_reldir third_party/blink/renderer/bindings/modules/v8/ enumeration interface
Traceback (most recent call last):
File "../../third_party/blink/renderer/bindings/scripts/generate_bindings.py", line 100, in
main()
File "../../third_party/blink/renderer/bindings/scripts/generate_bindings.py", line 77, in main
task_queue = bind_gen.TaskQueue()
File "/home/berkley4/ungoogled-chromium-portablelinux/build/src/third_party/blink/renderer/bindings/scripts/bind_gen/task_queue.py", line 19, in init
package_initializer().init)
File "/usr/lib/python2.7/multiprocessing/init.py", line 232, in Pool
return Pool(processes, initializer, initargs, maxtasksperchild)
File "/usr/lib/python2.7/multiprocessing/pool.py", line 140, in init
self._setup_queues()
File "/usr/lib/python2.7/multiprocessing/pool.py", line 236, in _setup_queues
self._inqueue = SimpleQueue()
File "/usr/lib/python2.7/multiprocessing/queues.py", line 352, in init
self._rlock = Lock()
File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 147, in init
SemLock.init(self, SEMAPHORE, 1, 1)
File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 75, in init
sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
OSError: [Errno 13] Permission denied
Hi, new to building Chromium (working on my first successful build). I am checked out and began building off the 80.0.3987.122-1.1 release tag. I run into an error that says:
NameError: name 'unicode' is not defined
After some research, it looks like this is related to python, so I tried using 2.7 as the default 'python' binary, but run into more errors. Is there something I need to do to get this to build properly? Using stable LLVM and meet the rest of the requirements. Essentially, I would like to contribute binaries in a timely manner for releases.
Thanks!
For built-in VAAPI support can I use portable or must I build from source?
Thanks.
For the past couple of days I've been trying to build ungoogled-chromium-portablelinux musl using docker in alpine linux, but every time the build stops when trying to link crashpad_handler
, the output is as follows:
[12451/39799] LINK ./crashpad_handler
FAILED: crashpad_handler
clang++ -Wl,--build-id=sha1 -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-z,defs -Wl,--no-as-needed -fuse-ld=lld -Wl,--icf=all -Wl,--color-diagnostics -flto=thin -Wl,--thinlto-jobs=8 -Wl,--thinlto-cache-dir=thinlto-cache -Wl,--thinlto-cache-policy,cache_size=10\%:cache_size_bytes=10g:cache_size_files=100000 -Wl,--lto-O0 -fwhole-program-vtables -m64 -Wl,-O2 -Wl,--gc-sections -rdynamic -nostdlib++ -fsanitize=cfi-vcall -fsanitize=cfi-icall -pie -Wl,--disable-new-dtags -o "./crashpad_handler" -Wl,--start-group @"./crashpad_handler.rsp" -Wl,--end-group -ldl -lpthread -lrt -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lintl -latomic
clang-8: error: unable to execute command: Segmentation fault (core dumped)
clang-8: error: linker command failed due to signal (use -v to see invocation)
[12456/39799] ACTION //chrome/app:generated_resources_grit(//build/toolchain/linux/unbundle:default)
ninja: build stopped: subcommand failed.
My stage1 dockerfile
FROM alpine:3.10
RUN apk update && apk upgrade
ADD scripts /scripts
RUN /scripts/pre-build.sh
RUN apk add bash git build-base compiler-rt clang-dev lld llvm8-dev python2 python3 pkgconf ninja py3-jinja2 ca-certificates gsettings-desktop-schemas-dev wget flex yasm xvfb diffutils coreutils gperf bison valgrind xz glew-dev libxt-dev libvpx-dev alsa-lib-dev at-spi2-atk-dev at-spi2-core-dev atk-dev cairo-dev cups-dev dbus-dev eudev-dev expat-dev ffmpeg-dev flac-dev fontconfig-dev freetype-dev gdk-pixbuf-dev glib-dev gtk+3.0-dev harfbuzz-dev libdrm-dev libevent-dev libjpeg-turbo-dev libpng-dev libc-dev libc-utils libstdc++ libwebp-dev libx11-dev libxcb-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxext-dev libxfixes-dev libxi-dev libxml2-dev libxrandr-dev libxrender-dev libxscrnsaver-dev libxslt-dev mesa-gbm mesa-dev nspr-dev nss-dev opus-dev pango-dev snappy-dev ttf-opensans zlib-dev nodejs-current bison bzip2-dev dbus-glib-dev elfutils-dev findutils freetype-dev gnutls-dev gperf gzip hunspell-dev jpeg-dev jsoncpp-dev krb5-dev libcap-dev libevent-dev libexif-dev libgnome-keyring-dev libpng-dev libusb-dev libva-dev libwebp-dev libxcomposite-dev libxinerama-dev linux-headers openjdk8 pciutils-dev perl re2-dev speex-dev sqlite-dev xdg-utils minizip-dev pulseaudio-dev libatomic llvm-libunwind binutils libpciaccess-dev libice-dev libffi-dev libxtst-dev lcms2-dev linux-pam-dev ffmpeg-dev openjpeg-dev libmodplug-dev acf-jquery libuuid util-linux-dev icu-dev bsd-compat-headers libbsd-dev
RUN /scripts/get-clang-deps.sh
get-clang-deps
#!/bin/bash -eux
# In alpine linux no packages provide the file cfi_blacklist.txt, so download it beforehand and
# manually place it in the right folder
mkdir tempdir
cd tempdir
wget -O comp-rt.tar.xz https://github.com/llvm/llvm-project/releases/download/llvmorg-8.0.1/compiler-rt-8.0.1.src.tar.xz
tar xf comp-rt.tar.xz
mkdir $(clang --print-resource-dir)/share
cp ./compiler-rt*/lib/cfi/cfi_blacklist.txt /usr/lib/clang/*/share/
cd ..
rm -rf tempdir
pre-build.sh
# set your timezone
ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime
Things I've tried
/usr/bin/ld.lld
to /usr/bin/ld
LDFLAGS+=-Wl,-znodelete
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.