* Re: [GNU-linux-libre] [PATCH] gnu: Add ungoogled-chromium.
@ 2019-02-16 18:46 Clément Lassieur
0 siblings, 0 replies; 13+ messages in thread
From: Clément Lassieur @ 2019-02-16 18:46 UTC (permalink / raw)
To: mbakke; +Cc: guix-devel
> Since there have been no coherent arguments against this browser in
> the two weeks since it was submitted, I plan to push this patch
> *tomorrow*.
Hi Marius,
Thank you again for your excellent work. I'm looking forward to seeing
it pushed!
Clément
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH] gnu: Add ungoogled-chromium.
@ 2019-02-02 19:20 Marius Bakke
2019-02-03 18:16 ` Joshua Branson
0 siblings, 1 reply; 13+ messages in thread
From: Marius Bakke @ 2019-02-02 19:20 UTC (permalink / raw)
To: guix-devel; +Cc: 28004
Thanks to Marks beautiful "computed-origin-method", Ungoogled-Chromium
is finally ready for inclusion in Guix.
Features:
* Chromium 72.
* No unsolicited network traffic.
* Free software only.
* No DRM.
* Not an April Fools joke.
It's currently using my trivial "fork" of Ungoogled-Chromium[0], which
will be upstreamed once the upstream reorganization[1] is done.
Comments appreciated!
[0]: https://github.com/mbakke/ungoogled-chromium/commit/f9b9074c322a67b04baf0982797cd7b7e09614b5
[1]: https://github.com/Eloston/ungoogled-chromium/issues/651
* gnu/packages/aux-files/chromium/master-preferences.json,
gnu/packages/chromium.scm: New files.
* gnu/local.mk (GNU_SYSTEM_MODULES): Adjust accordingly.
---
gnu/local.mk | 1 +
.../chromium/master-preferences.json | 26 +
gnu/packages/chromium.scm | 741 ++++++++++++++++++
3 files changed, 768 insertions(+)
create mode 100644 gnu/packages/aux-files/chromium/master-preferences.json
create mode 100644 gnu/packages/chromium.scm
diff --git a/gnu/local.mk b/gnu/local.mk
index 82db1488d6..b5e937cdd7 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -100,6 +100,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/check.scm \
%D%/packages/chemistry.scm \
%D%/packages/chez.scm \
+ %D%/packages/chromium.scm \
%D%/packages/ci.scm \
%D%/packages/cinnamon.scm \
%D%/packages/clojure.scm \
diff --git a/gnu/packages/aux-files/chromium/master-preferences.json b/gnu/packages/aux-files/chromium/master-preferences.json
new file mode 100644
index 0000000000..0caa7cc4cd
--- /dev/null
+++ b/gnu/packages/aux-files/chromium/master-preferences.json
@@ -0,0 +1,26 @@
+{
+ "distribution": {
+ "import_bookmarks": false,
+ "make_chrome_default": false,
+ "make_chrome_default_for_user": false,
+ "verbose_logging": true,
+ "skip_first_run_ui": true,
+ "suppress_first_run_default_browser_prompt": true
+ },
+ "browser": {
+ "has_seen_welcome_page" : true,
+ "check_default_browser" : false
+ },
+ "dns_prefetching": {
+ "enabled": false
+ },
+ "alternate_error_pages": {
+ "enabled": false
+ },
+ "hardware": {
+ "audio_capture_enabled": false
+ },
+ "default_apps": "noinstall",
+ "hide_web_store_icon": true,
+ "homepage": "https://www.gnu.org/software/guix"
+}
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
new file mode 100644
index 0000000000..eb404246d3
--- /dev/null
+++ b/gnu/packages/chromium.scm
@@ -0,0 +1,741 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages chromium)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix gexp)
+ #:use-module (guix store)
+ #:use-module (guix monads)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix utils)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages assembly)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages build-tools)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages cups)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages ghostscript)
+ #:use-module (gnu packages gl)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages gnuzilla)
+ #:use-module (gnu packages gperf)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages icu4c)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages libevent)
+ #:use-module (gnu packages libffi)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages kerberos)
+ #:use-module (gnu packages ninja)
+ #:use-module (gnu packages node)
+ #:use-module (gnu packages pciutils)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pulseaudio)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-web)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages regex)
+ #:use-module (gnu packages serialization)
+ #:use-module (gnu packages speech)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages valgrind)
+ #:use-module (gnu packages vulkan)
+ #:use-module (gnu packages video)
+ #:use-module (gnu packages xiph)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xorg))
+
+(define %preserved-third-party-files
+ '("base/third_party/dmg_fp" ;X11-style
+ "base/third_party/dynamic_annotations" ;BSD-2
+ "base/third_party/icu" ;Unicode, X11-style
+ "base/third_party/superfasthash" ;BSD-3
+ "base/third_party/symbolize" ;BSD-3
+ "base/third_party/xdg_mime" ;LGPL2.1+ or Academic 2.0
+ "base/third_party/xdg_user_dirs" ;Expat
+ "chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
+ "courgette/third_party/bsdiff" ;BSD-2, BSD protection license
+ "courgette/third_party/divsufsort" ;Expat
+ "net/third_party/http2" ;BSD-3
+ "net/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
+ "net/third_party/nss" ;MPL-2.0
+ "net/third_party/quic" ;BSD-3
+ "net/third_party/spdy" ;BSD-3
+ "net/third_party/uri_template" ;ASL2.0
+ "third_party/abseil-cpp" ;ASL2.0
+ "third_party/adobe/flash/flapper_version.h" ;no license, trivial
+ "third_party/angle" ;BSD-3
+ "third_party/angle/src/common/third_party/base" ;BSD-3
+ "third_party/angle/src/common/third_party/smhasher" ;Public domain
+ "third_party/angle/src/common/third_party/xxhash" ;BSD-2
+ "third_party/angle/src/third_party/compiler" ;BSD-2
+ "third_party/angle/src/third_party/libXNVCtrl" ;Expat
+ "third_party/angle/src/third_party/trace_event" ;BSD-3
+ "third_party/angle/third_party/glslang" ;BSD-3
+ "third_party/angle/third_party/spirv-headers" ;Expat
+ "third_party/angle/third_party/spirv-tools" ;Expat
+ "third_party/angle/third_party/vulkan-headers" ;ASL2.0
+ "third_party/angle/third_party/vulkan-loader" ;ASL2.0
+ "third_party/angle/third_party/vulkan-tools" ;ASL2.0
+ "third_party/angle/third_party/vulkan-validation-layers" ;ASL2.0
+ "third_party/apple_apsl" ;APSL2.0
+ "third_party/blink" ;BSD-3
+ "third_party/boringssl" ;OpenSSL/ISC (Google additions are ISC)
+ "third_party/boringssl/src/third_party/fiat" ;Expat
+ "third_party/breakpad" ;BSD-3
+ "third_party/brotli" ;Expat
+ "third_party/cacheinvalidation" ;ASL2.0
+ "third_party/catapult" ;BSD-3
+ "third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0
+ "third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0
+ "third_party/catapult/third_party/polymer" ;BSD-3
+ "third_party/catapult/tracing/third_party/d3" ;BSD-3
+ "third_party/catapult/tracing/third_party/gl-matrix" ;Expat
+ "third_party/catapult/tracing/third_party/jszip" ;Expat or GPL3
+ "third_party/catapult/tracing/third_party/mannwhitneyu" ;Expat
+ "third_party/catapult/tracing/third_party/oboe" ;BSD-2
+ "third_party/catapult/tracing/third_party/pako" ;Expat
+ "third_party/ced" ;BSD-3
+ "third_party/cld_3" ;ASL2.0
+ "third_party/closure_compiler" ;ASL2.0
+ "third_party/crashpad" ;ASL2.0
+ "third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib
+ "third_party/crc32c" ;BSD-3
+ "third_party/cros_system_api" ;BSD-3
+ "third_party/dom_distiller_js" ;BSD-3
+ "third_party/fips181" ;BSD-3
+ "third_party/flatbuffers" ;ASL2.0
+ "third_party/google_input_tools" ;ASL2.0
+ "third_party/google_input_tools/third_party/closure_library" ;ASL2.0
+ "third_party/google_input_tools/third_party/closure_library/third_party/closure" ;Expat
+ "third_party/googletest" ;BSD-3
+ "third_party/hunspell" ;MPL1.1/GPL2+/LGPL2.1+
+ "third_party/iccjpeg" ;IJG
+ "third_party/inspector_protocol" ;BSD-3
+ "third_party/jinja2" ;BSD-3
+ "third_party/jstemplate" ;ASL2.0
+ "third_party/khronos" ;Expat, SGI
+ "third_party/leveldatabase" ;BSD-3
+ "third_party/libXNVCtrl" ;Expat
+ "third_party/libaddressinput" ;ASL2.0
+ "third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0"
+ "third_party/libaom/source/libaom/third_party/vector" ;Expat
+ "third_party/libaom/source/libaom/third_party/x86inc" ;ISC
+ "third_party/libjingle_xmpp" ;BSD-3
+ "third_party/libphonenumber" ;ASL2.0
+ "third_party/libsecret" ;LGPL2.1+
+ "third_party/libsrtp" ;BSD-3
+ "third_party/libsync" ;ASL2.0
+ "third_party/libudev" ;LGPL2.1+
+ "third_party/libwebm" ;BSD-3
+ "third_party/libxml/chromium" ;BSD-3
+ "third_party/libyuv" ;BSD-3
+ "third_party/lss" ;BSD-3
+ "third_party/markupsafe" ;BSD-3
+ "third_party/mesa_headers" ;Expat, SGI
+ "third_party/metrics_proto" ;BSD-3
+ "third_party/modp_b64" ;BSD-3
+ "third_party/nasm" ;BSD-2
+ "third_party/node" ;Expat
+ "third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2" ;BSD-2
+ "third_party/ots" ;BSD-3
+ "third_party/pdfium" ;BSD-3
+ "third_party/pdfium/third_party/agg23" ;Expat
+ "third_party/pdfium/third_party/base" ;BSD-3
+ "third_party/pdfium/third_party/bigint" ;Public domain, BSD-3
+ "third_party/pdfium/third_party/skia_shared" ;BSD-3
+ "third_party/pdfium/third_party/freetype/include/pstables.h" ;FreeType
+ "third_party/ply" ;BSD-3
+ "third_party/polymer" ;BSD-3
+ "third_party/protobuf" ;BSD-3
+ "third_party/protobuf/third_party/six" ;Expat
+ "third_party/pyjson5" ;ASL2.0
+ "third_party/qcms" ;Expat
+ "third_party/rnnoise" ;BSD-3
+ "third_party/s2cellid" ;ASL2.0
+ "third_party/sfntly" ;ASL2.0
+ "third_party/skia" ;BSD-3
+ "third_party/skia/third_party/gif" ;MPL1.1/GPL2+/LGPL2.1+
+ "third_party/skia/third_party/skcms" ;BSD-3
+ "third_party/skia/third_party/vulkan" ;BSD-3
+ "third_party/smhasher" ;Expat, public domain
+ "third_party/speech-dispatcher" ;GPL2+
+ "third_party/spirv-headers" ;ASL2.0
+ "third_party/SPIRV-Tools" ;ASL2.0
+ "third_party/sqlite" ;Public domain
+ "third_party/ungoogled" ;BSD-3
+ "third_party/usb_ids" ;BSD-3
+ "third_party/usrsctp" ;BSD-2
+ "third_party/web-animations-js" ;ASL2.0
+ "third_party/webdriver" ;ASL2.0
+ "third_party/webrtc" ;BSD-3
+ "third_party/webrtc/common_audio/third_party/fft4g" ;Non-copyleft
+ "third_party/webrtc/common_audio/third_party/spl_sqrt_floor" ;Public domain
+ "third_party/webrtc/modules/third_party/fft" ;Non-copyleft
+ "third_party/webrtc/modules/third_party/g711" ;Public domain
+ "third_party/webrtc/modules/third_party/g722" ;Public domain
+ "third_party/webrtc/rtc_base/third_party/base64" ;Non-copyleft
+ "third_party/webrtc/rtc_base/third_party/sigslot" ;Public domain
+ "third_party/widevine/cdm/widevine_cdm_version.h" ;BSD-3
+ "third_party/widevine/cdm/widevine_cdm_common.h" ;BSD-3
+ "third_party/woff2" ;ASL2.0
+ "third_party/xdg-utils" ;Expat
+ "third_party/yasm/run_yasm.py" ;BSD-2 or BSD-3
+ "third_party/zlib/google" ;BSD-3
+ "url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+
+ "v8/src/third_party/utf8-decoder" ;Expat
+ "v8/src/third_party/valgrind" ;BSD-4
+ "v8/third_party/inspector_protocol" ;BSD-3
+ "v8/third_party/v8/builtins")) ;PSFL
+
+(define* (computed-origin-method gexp-promise hash-algo hash
+ #:optional (name "source")
+ #:key (system (%current-system))
+ (guile (default-guile)))
+ "Return a derivation that executes the G-expression that results
+from forcing GEXP-PROMISE."
+ (mlet %store-monad ((guile (package->derivation guile system)))
+ (gexp->derivation (or name "computed-origin")
+ (force gexp-promise)
+ #:system system
+ #:guile-for-build guile)))
+
+(define %chromium-version "72.0.3626.81")
+(define %ungoogled-revision "f9b9074c322a67b04baf0982797cd7b7e09614b5")
+
+;; This is a computed origin that does the following:
+;; 1) Runs the Ungoogled scripts on a pristine Chromium tarball.
+;; 2) Prunes all third_party folders that are not explicitly preserved.
+;; 3) Adjusts "GN" build files such that system libraries are preferred.
+(define ungoogled-chromium-source
+ (let* ((chromium-source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://commondatastorage.googleapis.com"
+ "/chromium-browser-official/chromium-"
+ %chromium-version ".tar.xz"))
+ (sha256
+ (base32
+ "01l0vlvcckpag376mjld7qprv63l0z8li689k0h6v3h0i7irzs6z"))))
+ (ungoogled-source
+ (origin
+ (method git-fetch)
+ (uri (git-reference (url "https://github.com/mbakke/ungoogled-chromium")
+ (commit %ungoogled-revision)))
+ (file-name (git-file-name "ungoogled-chromium"
+ (string-take %ungoogled-revision 7)))
+ (sha256
+ (base32
+ "0gmk1n3i7lbm7rw8zl4df171yhvrlimj8ksj096bf2dlfhbd44rb")))))
+
+ (origin
+ (method computed-origin-method)
+ (file-name (string-append "ungoogled-chromium-" %chromium-version ".tar.xz"))
+ (sha256 #f)
+ (uri
+ (delay
+ (with-imported-modules '((guix build utils))
+ #~(begin
+ (use-modules (guix build utils))
+ (let ((chromium-dir (string-append "chromium-" #$%chromium-version))
+ (preserved-files (list #$@%preserved-third-party-files)))
+
+ (mkdir "/tmp/bin")
+ (set-path-environment-variable
+ "PATH" '("bin")
+ (list "/tmp"
+ #+(canonical-package patch)
+ #+(canonical-package xz)
+ #+(canonical-package tar)
+ #+python-2
+ #+python))
+
+ (copy-recursively #+ungoogled-source "/tmp/ungoogled")
+
+ (with-directory-excursion "/tmp/ungoogled"
+
+ (format #t "Unpacking chromium tarball...~%")
+ (force-output)
+ (invoke "tar" "xf" #+chromium-source)
+
+ (format #t "Ungooglifying...~%")
+ (force-output)
+ (invoke "python3" "run_buildkit_cli.py" "prune"
+ "-b" "config_bundles/guix" chromium-dir)
+ (invoke "python3" "run_buildkit_cli.py" "patches" "apply"
+ "-b" "config_bundles/guix" chromium-dir)
+ (invoke "python3" "run_buildkit_cli.py" "domains" "apply"
+ "-b" "config_bundles/linux_rooted"
+ "-c" "/tmp/domainscache.tar.gz" chromium-dir)
+
+ (with-directory-excursion chromium-dir
+ (format #t "Pruning third party files...~%")
+ (force-output)
+ (apply invoke "python"
+ "build/linux/unbundle/remove_bundled_libraries.py"
+ "--do-remove" preserved-files)
+
+ (format #t "Replacing GN files...~%")
+ (force-output)
+ (invoke "python3" "build/linux/unbundle/replace_gn_files.py"
+ "--system-libraries" "ffmpeg" "flac" "fontconfig"
+ "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
+ "libjpeg" "libpng" "libvpx" "libwebp" "libxml"
+ "libxslt" "openh264" "opus" "re2" "snappy" "yasm"
+ "zlib"))
+
+ (format #t (string-append "Packing new Ungoogled tarball ...~%"))
+ (force-output)
+ (invoke "tar" "cvfa" #$output
+ ;; Avoid non-determinism in the archive.
+ "--mtime=@0"
+ "--owner=root:0"
+ "--group=root:0"
+ "--sort=name"
+ chromium-dir)
+
+ #t)))))))))
+
+(define opus+custom
+ (package/inherit opus
+ (name "opus+custom")
+ (arguments
+ (substitute-keyword-arguments (package-arguments opus)
+ ((#:configure-flags flags ''())
+ ;; Opus Custom is an optional extension of the Opus
+ ;; specification that allows for unsupported frame
+ ;; sizes. Chromium requires that this is enabled.
+ `(cons "--enable-custom-modes"
+ ,flags))))))
+
+(define libvpx/chromium
+ ;; Chromium 66 and later requires an unreleased libvpx, so we take the
+ ;; commit from "third_party/libvpx/README.chromium" in the tarball.
+ (let ((version (package-version libvpx))
+ (commit "e188b5435de71bcd602c378f1ac0441111f0f915")
+ (revision "0"))
+ (package/inherit libvpx
+ (name "libvpx-chromium")
+ (version (git-version version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://chromium.googlesource.com/webm/libvpx")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0v7lzvgy45zh7zwzmmzkvbcqmhs4xa97z0h97hd3j6myrxcfz1n9")))))))
+
+;; Transitional package until HarfBuzz 2.2 is available in Guix master branch.
+(define harfbuzz/chromium
+ (package/inherit harfbuzz
+ (version "2.2.0")
+ (source (origin
+ (inherit (package-source harfbuzz))
+ (uri (string-append "https://www.freedesktop.org/software/harfbuzz"
+ "/release/harfbuzz-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "047q63jr513azf3g1y7f5xn60b4jdjs9zsmrx04sfw5rasyzrk5p"))))))
+
+(define-public ungoogled-chromium
+ (package
+ (name "ungoogled-chromium")
+ (version %chromium-version)
+ (synopsis "Graphical web browser")
+ (source ungoogled-chromium-source)
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ ;; FIXME: There is a "gn" option specifically for setting -rpath, but
+ ;; it overrides the RUNPATH set by the linker.
+ #:validate-runpath? #f
+ #:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (ice-9 ftw)
+ (ice-9 regex)
+ (srfi srfi-26))
+ #:configure-flags
+ ;; See tools/gn/docs/cookbook.md and
+ ;; https://www.chromium.org/developers/gn-build-configuration
+ ;; for usage. Run "./gn args . --list" in the Release
+ ;; directory for an exhaustive list of supported flags.
+ ;; (Note: The 'configure' phase will do that for you.)
+ (list "is_debug=false"
+ "use_gold=false"
+ "use_lld=false"
+ "linux_use_bundled_binutils=false"
+ "use_custom_libcxx=false"
+ "use_sysroot=false"
+ "enable_precompiled_headers=false"
+ "goma_dir=\"\""
+ "enable_nacl=false"
+ "enable_nacl_nonsfi=false"
+ "use_allocator=\"none\"" ;don't use tcmalloc
+ "use_unofficial_version_number=false"
+
+ ;; Define a custom toolchain that simply looks up CC, AR and
+ ;; friends from the environment.
+ "custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
+ "host_toolchain=\"//build/toolchain/linux/unbundle:default\""
+
+ ;; Don't assume it's clang.
+ "is_clang=false"
+
+ ;; Optimize for building everything at once, as opposed to
+ ;; incrementally for development. See "docs/jumbo.md".
+ "use_jumbo_build=true"
+
+ ;; Disable type-checking for the Web UI to avoid a Java dependency.
+ "closure_compile=false"
+
+ ;; Disable debugging features to save space.
+ "blink_symbol_level=0"
+ "enable_iterator_debugging=false"
+
+ ;; Some of the unbundled libraries throws deprecation
+ ;; warnings, etc. Ignore it.
+ "treat_warnings_as_errors=false"
+
+ ;; Don't add any API keys. End users can set them in the
+ ;; environment if desired. See
+ ;; <https://www.chromium.org/developers/how-tos/api-keys>.
+ "use_official_google_api_keys=false"
+
+ ;; Disable "safe browsing", which pulls in a dependency on
+ ;; the nonfree "unrar" program (as of m66).
+ "safe_browsing_mode=0"
+
+ ;; Disable "field trials".
+ "fieldtrial_testing_like_official_build=true"
+
+ ;; Ungoogled components.
+ "enable_mdns=false"
+ "enable_one_click_signin=false"
+ "enable_reading_list=false"
+ "enable_remoting=false"
+ "enable_reporting=false"
+ "enable_service_discovery=false"
+ "enable_swiftshader=false"
+ "use_vaapi=true"
+
+ ;; Use system libraries where possible.
+ "use_system_freetype=true"
+ "use_system_harfbuzz=true"
+ "use_system_lcms2=true"
+ "use_system_libdrm=true"
+ "use_system_libjpeg=true"
+ "use_system_libpng=true"
+ ;;"use_system_libsync=true"
+ "use_system_zlib=true"
+
+ "use_gnome_keyring=false" ;deprecated by libsecret
+ "use_openh264=true"
+ "use_pulseaudio=true"
+ "link_pulseaudio=true"
+
+ ;; Don't arbitrarily restrict formats supported by system ffmpeg.
+ "proprietary_codecs=true"
+ "ffmpeg_branding=\"Chrome\""
+
+ ;; WebRTC stuff.
+ "rtc_use_h264=true"
+ ;; Don't use bundled sources.
+ "rtc_build_json=false"
+ "rtc_build_libevent=false"
+ "rtc_build_libvpx=false"
+ "rtc_build_opus=false"
+ "rtc_build_ssl=false"
+
+ "rtc_build_libsrtp=true" ;FIXME: fails to find headers
+ "rtc_build_usrsctp=true" ;TODO: package this
+ (string-append "rtc_jsoncpp_root=\""
+ (assoc-ref %build-inputs "jsoncpp")
+ "/include/jsoncpp/json\"")
+ (string-append "rtc_ssl_root=\""
+ (assoc-ref %build-inputs "openssl")
+ "/include/openssl\""))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-stuff
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "printing/cups_config_helper.py"
+ (("cups_config =.*")
+ (string-append "cups_config = '" (assoc-ref inputs "cups")
+ "/bin/cups-config'\n")))
+
+ (substitute*
+ '("base/process/launch_posix.cc"
+ "base/third_party/dynamic_annotations/dynamic_annotations.c"
+ "sandbox/linux/seccomp-bpf/sandbox_bpf.cc"
+ "sandbox/linux/services/credentials.cc"
+ "sandbox/linux/services/namespace_utils.cc"
+ "sandbox/linux/services/syscall_wrappers.cc"
+ "sandbox/linux/syscall_broker/broker_host.cc")
+ (("include \"base/third_party/valgrind/") "include \"valgrind/"))
+
+ (for-each (lambda (file)
+ (substitute* file
+ ;; Fix opus include path.
+ ;; Do not substitute opus_private.h.
+ (("#include \"opus\\.h\"")
+ "#include \"opus/opus.h\"")
+ (("#include \"opus_custom\\.h\"")
+ "#include \"opus/opus_custom.h\"")
+ (("#include \"opus_defines\\.h\"")
+ "#include \"opus/opus_defines.h\"")
+ (("#include \"opus_multistream\\.h\"")
+ "#include \"opus/opus_multistream.h\"")
+ (("#include \"opus_types\\.h\"")
+ "#include \"opus/opus_types.h\"")))
+ (find-files (string-append "third_party/webrtc/modules"
+ "/audio_coding/codecs/opus")))
+
+ (substitute* "chrome/common/chrome_paths.cc"
+ (("/usr/share/chromium/extensions")
+ ;; TODO: Add ~/.guix-profile.
+ "/run/current-system/profile/share/chromium/extensions"))
+
+ ;; XXX: Should be unnecessary when use_system_lcms2=true.
+ (substitute* "third_party/pdfium/core/fxcodec/codec/ccodec_iccmodule.h"
+ (("include \"third_party/lcms/include/lcms2\\.h\"")
+ "include \"lcms2.h\""))
+
+ (substitute*
+ "third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h"
+ (("include \"third_party/curl") "include \"curl"))
+
+ (substitute* "third_party/webrtc/rtc_base/strings/json.h"
+ (("#include \"third_party/jsoncpp/") "#include \"json/"))
+
+ (substitute* "media/base/decode_capabilities.cc"
+ (("third_party/libvpx/source/libvpx/") ""))
+
+ (substitute* "ui/gfx/skia_util.h"
+ (("third_party/vulkan/include/") ""))
+
+ ;; Building chromedriver embeds some files using the ZIP
+ ;; format which doesn't support timestamps before
+ ;; 1980. Therefore, advance the timestamps of the files
+ ;; which are included so that building chromedriver
+ ;; works.
+ (let ((circa-1980 (* 10 366 24 60 60)))
+ (for-each (lambda (file)
+ (utime file circa-1980 circa-1980))
+ '("chrome/test/chromedriver/extension/background.js"
+ "chrome/test/chromedriver/extension/manifest.json")))
+
+ #t))
+ (add-before 'configure 'prepare-build-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+
+ ;; Make sure the right build tools are used.
+ (setenv "AR" "ar") (setenv "NM" "nm")
+ (setenv "CC" "gcc") (setenv "CXX" "g++")
+
+ ;; Work around <https://bugs.gnu.org/30756>.
+ (unsetenv "C_INCLUDE_PATH")
+ (unsetenv "CPLUS_INCLUDE_PATH")
+
+ ;; TODO: pre-compile instead. Avoids a race condition.
+ (setenv "PYTHONDONTWRITEBYTECODE" "1")
+
+ ;; XXX: How portable is this.
+ (mkdir-p "third_party/node/linux/node-linux-x64")
+ (symlink (string-append (assoc-ref inputs "node") "/bin")
+ "third_party/node/linux/node-linux-x64/bin")
+
+ #t))
+ (replace 'configure
+ (lambda* (#:key configure-flags #:allow-other-keys)
+ (let ((args (string-join configure-flags " ")))
+ ;; Generate ninja build files.
+ (invoke "gn" "gen" "out/Release"
+ (string-append "--args=" args))
+
+ ;; Print the full list of supported arguments as well as
+ ;; their current status for convenience.
+ (format #t "Dumping configure flags...\n")
+ (invoke "gn" "args" "out/Release" "--list"))))
+ (replace 'build
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "ninja" "-C" "out/Release"
+ "-j" (number->string (parallel-job-count))
+ "chrome"
+ "chromedriver")))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (exe (string-append bin "/chromium"))
+ (lib (string-append out "/lib"))
+ (man (string-append out "/share/man/man1"))
+ (applications (string-append out "/share/applications"))
+ (install-regexp (make-regexp "\\.(bin|pak)$"))
+ (locales (string-append lib "/locales"))
+ (resources (string-append lib "/resources"))
+ (preferences (assoc-ref inputs "master-preferences"))
+ (gtk+ (assoc-ref inputs "gtk+"))
+ (mesa (assoc-ref inputs "mesa"))
+ (nss (assoc-ref inputs "nss"))
+ (udev (assoc-ref inputs "udev"))
+ (sh (which "sh")))
+
+ (substitute* '("chrome/app/resources/manpage.1.in"
+ "chrome/installer/linux/common/desktop.template")
+ (("@@MENUNAME@@") "Chromium")
+ (("@@PACKAGE@@") "chromium")
+ (("/usr/bin/@@USR_BIN_SYMLINK_NAME@@") exe))
+
+ (mkdir-p man)
+ (copy-file "chrome/app/resources/manpage.1.in"
+ (string-append man "/chromium.1"))
+
+ (mkdir-p applications)
+ (copy-file "chrome/installer/linux/common/desktop.template"
+ (string-append applications "/chromium.desktop"))
+
+ (mkdir-p lib)
+ (copy-file preferences (string-append lib "/master_preferences"))
+
+ (with-directory-excursion "out/Release"
+ (for-each (lambda (file)
+ (install-file file lib))
+ (scandir "." (cut regexp-exec install-regexp <>)))
+ (copy-file "chrome" (string-append lib "/chromium"))
+
+ ;; TODO: Install icons from "../../chrome/app/themes" into
+ ;; "out/share/icons/hicolor/$size".
+ (install-file
+ "product_logo_48.png"
+ (string-append out "/share/icons/48x48/chromium.png"))
+
+ (copy-recursively "locales" locales)
+ (copy-recursively "resources" resources)
+
+ (mkdir-p bin)
+ (symlink "../lib/chromium" exe)
+ (install-file "chromedriver" bin)
+
+ (wrap-program exe
+ ;; TODO: Get these in RUNPATH.
+ `("LD_LIBRARY_PATH" ":" prefix
+ (,(string-append lib ":" nss "/lib/nss:" gtk+ "/lib:"
+ mesa "/lib:" udev "/lib")))
+ ;; Avoid file manager crash. See <https://bugs.gnu.org/26593>.
+ `("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share"))))
+ #t)))))))
+ (native-inputs
+ `(("bison" ,bison)
+ ("gcc" ,gcc-8)
+ ("gn" ,gn)
+ ("gperf" ,gperf)
+ ("ninja" ,ninja)
+ ("node" ,node)
+ ("pkg-config" ,pkg-config)
+ ("which" ,which)
+ ("yasm" ,yasm)
+
+ ;; This file contains defaults for new user profiles.
+ ("master-preferences" ,(local-file "aux-files/chromium/master-preferences.json"))
+
+ ("python-beautifulsoup4" ,python2-beautifulsoup4)
+ ("python-html5lib" ,python2-html5lib)
+ ("python" ,python-2)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("atk" ,atk)
+ ("cups" ,cups)
+ ("curl" ,curl)
+ ("dbus" ,dbus)
+ ("dbus-glib" ,dbus-glib)
+ ("expat" ,expat)
+ ("flac" ,flac)
+ ("ffmpeg" ,ffmpeg)
+ ("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ("gdk-pixbuf" ,gdk-pixbuf)
+ ("glib" ,glib)
+ ("gtk+" ,gtk+)
+ ("harfbuzz" ,harfbuzz/chromium)
+ ("icu4c" ,icu4c)
+ ("jsoncpp" ,jsoncpp)
+ ("lcms" ,lcms)
+ ("libevent" ,libevent)
+ ("libffi" ,libffi)
+ ("libjpeg-turbo" ,libjpeg-turbo)
+ ("libpng" ,libpng)
+ ("libva" ,libva)
+ ("libvpx" ,libvpx/chromium)
+ ("libwebp" ,libwebp)
+ ("libx11" ,libx11)
+ ("libxcb" ,libxcb)
+ ("libxcomposite" ,libxcomposite)
+ ("libxcursor" ,libxcursor)
+ ("libxdamage" ,libxdamage)
+ ("libxext" ,libxext)
+ ("libxfixes" ,libxfixes)
+ ("libxi" ,libxi)
+ ("libxml2" ,libxml2)
+ ("libxrandr" ,libxrandr)
+ ("libxrender" ,libxrender)
+ ("libxscrnsaver" ,libxscrnsaver)
+ ("libxslt" ,libxslt)
+ ("libxtst" ,libxtst)
+ ("mesa" ,mesa)
+ ("minizip" ,minizip)
+ ("mit-krb5" ,mit-krb5)
+ ("nss" ,nss)
+ ("openh264" ,openh264)
+ ("openjpeg" ,openjpeg) ;PDFium only
+ ("openssl" ,openssl)
+ ("opus" ,opus+custom)
+ ("pango" ,pango)
+ ("pciutils" ,pciutils)
+ ("pulseaudio" ,pulseaudio)
+ ("re2" ,re2)
+ ("snappy" ,snappy)
+ ("speech-dispatcher" ,speech-dispatcher)
+ ("udev" ,eudev)
+ ("valgrind" ,valgrind)
+ ("vulkan-headers" ,vulkan-headers)))
+ (home-page "https://www.chromium.org/")
+ (description
+ "Ungoogled-Chromium is the Chromium web browser, sans integration with
+Google web services.")
+ ;; Chromium is developed as BSD-3, but bundles a large number of third-party
+ ;; components with other licenses. For full information, see chrome://credits.
+ (license (list license:bsd-3
+ license:bsd-2
+ license:expat
+ license:asl2.0
+ license:mpl1.1
+ license:mpl2.0
+ license:public-domain
+ license:isc
+ (license:non-copyleft "chrome://credits"
+ "See chrome://credits for more information.")
+ license:lgpl2.1+))))
--
2.20.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH] gnu: Add ungoogled-chromium.
2019-02-02 19:20 Marius Bakke
@ 2019-02-03 18:16 ` Joshua Branson
2019-02-04 4:52 ` bill-auger
0 siblings, 1 reply; 13+ messages in thread
From: Joshua Branson @ 2019-02-03 18:16 UTC (permalink / raw)
To: guix-devel
Marius Bakke <mbakke@fastmail.com> writes:
> Thanks to Marks beautiful "computed-origin-method", Ungoogled-Chromium
> is finally ready for inclusion in Guix.
>
> Features:
> * Chromium 72.
> * No unsolicited network traffic.
> * Free software only.
> * No DRM.
> * Not an April Fools joke.
Ahh man. I was really hoping this was an April fools joke. Last year
someone had packaged systemd, and this person recommended that we do
away with the Shepherd. May I request that we do an April fools joke
once a year?
I'm sorry if this email is not professional enough.
>
> It's currently using my trivial "fork" of Ungoogled-Chromium[0], which
> will be upstreamed once the upstream reorganization[1] is done.
>
> Comments appreciated!
>
> [0]: https://github.com/mbakke/ungoogled-chromium/commit/f9b9074c322a67b04baf0982797cd7b7e09614b5
> [1]: https://github.com/Eloston/ungoogled-chromium/issues/651
>
> * gnu/packages/aux-files/chromium/master-preferences.json,
> gnu/packages/chromium.scm: New files.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Adjust accordingly.
> ---
> gnu/local.mk | 1 +
> .../chromium/master-preferences.json | 26 +
> gnu/packages/chromium.scm | 741 ++++++++++++++++++
> 3 files changed, 768 insertions(+)
> create mode 100644 gnu/packages/aux-files/chromium/master-preferences.json
> create mode 100644 gnu/packages/chromium.scm
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 82db1488d6..b5e937cdd7 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -100,6 +100,7 @@ GNU_SYSTEM_MODULES = \
> %D%/packages/check.scm \
> %D%/packages/chemistry.scm \
> %D%/packages/chez.scm \
> + %D%/packages/chromium.scm \
> %D%/packages/ci.scm \
> %D%/packages/cinnamon.scm \
> %D%/packages/clojure.scm \
> diff --git a/gnu/packages/aux-files/chromium/master-preferences.json b/gnu/packages/aux-files/chromium/master-preferences.json
> new file mode 100644
> index 0000000000..0caa7cc4cd
> --- /dev/null
> +++ b/gnu/packages/aux-files/chromium/master-preferences.json
> @@ -0,0 +1,26 @@
> +{
> + "distribution": {
> + "import_bookmarks": false,
> + "make_chrome_default": false,
> + "make_chrome_default_for_user": false,
> + "verbose_logging": true,
> + "skip_first_run_ui": true,
> + "suppress_first_run_default_browser_prompt": true
> + },
> + "browser": {
> + "has_seen_welcome_page" : true,
> + "check_default_browser" : false
> + },
> + "dns_prefetching": {
> + "enabled": false
> + },
> + "alternate_error_pages": {
> + "enabled": false
> + },
> + "hardware": {
> + "audio_capture_enabled": false
> + },
> + "default_apps": "noinstall",
> + "hide_web_store_icon": true,
> + "homepage": "https://www.gnu.org/software/guix"
> +}
> diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
> new file mode 100644
> index 0000000000..eb404246d3
> --- /dev/null
> +++ b/gnu/packages/chromium.scm
> @@ -0,0 +1,741 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
> +;;;
> +;;; GNU Guix is free software; you can redistribute it and/or modify it
> +;;; under the terms of the GNU General Public License as published by
> +;;; the Free Software Foundation; either version 3 of the License, or (at
> +;;; your option) any later version.
> +;;;
> +;;; GNU Guix is distributed in the hope that it will be useful, but
> +;;; WITHOUT ANY WARRANTY; without even the implied warranty of
> +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +;;; GNU General Public License for more details.
> +;;;
> +;;; You should have received a copy of the GNU General Public License
> +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
> +
> +(define-module (gnu packages chromium)
> + #:use-module ((guix licenses) #:prefix license:)
> + #:use-module (guix packages)
> + #:use-module (guix gexp)
> + #:use-module (guix store)
> + #:use-module (guix monads)
> + #:use-module (guix download)
> + #:use-module (guix git-download)
> + #:use-module (guix utils)
> + #:use-module (guix build-system gnu)
> + #:use-module (gnu packages)
> + #:use-module (gnu packages assembly)
> + #:use-module (gnu packages base)
> + #:use-module (gnu packages bison)
> + #:use-module (gnu packages build-tools)
> + #:use-module (gnu packages compression)
> + #:use-module (gnu packages cups)
> + #:use-module (gnu packages curl)
> + #:use-module (gnu packages fontutils)
> + #:use-module (gnu packages gcc)
> + #:use-module (gnu packages ghostscript)
> + #:use-module (gnu packages gl)
> + #:use-module (gnu packages glib)
> + #:use-module (gnu packages gnome)
> + #:use-module (gnu packages gnuzilla)
> + #:use-module (gnu packages gperf)
> + #:use-module (gnu packages gtk)
> + #:use-module (gnu packages icu4c)
> + #:use-module (gnu packages image)
> + #:use-module (gnu packages libevent)
> + #:use-module (gnu packages libffi)
> + #:use-module (gnu packages linux)
> + #:use-module (gnu packages kerberos)
> + #:use-module (gnu packages ninja)
> + #:use-module (gnu packages node)
> + #:use-module (gnu packages pciutils)
> + #:use-module (gnu packages pkg-config)
> + #:use-module (gnu packages pulseaudio)
> + #:use-module (gnu packages python)
> + #:use-module (gnu packages python-web)
> + #:use-module (gnu packages python-xyz)
> + #:use-module (gnu packages regex)
> + #:use-module (gnu packages serialization)
> + #:use-module (gnu packages speech)
> + #:use-module (gnu packages tls)
> + #:use-module (gnu packages valgrind)
> + #:use-module (gnu packages vulkan)
> + #:use-module (gnu packages video)
> + #:use-module (gnu packages xiph)
> + #:use-module (gnu packages xml)
> + #:use-module (gnu packages xdisorg)
> + #:use-module (gnu packages xorg))
> +
> +(define %preserved-third-party-files
> + '("base/third_party/dmg_fp" ;X11-style
> + "base/third_party/dynamic_annotations" ;BSD-2
> + "base/third_party/icu" ;Unicode, X11-style
> + "base/third_party/superfasthash" ;BSD-3
> + "base/third_party/symbolize" ;BSD-3
> + "base/third_party/xdg_mime" ;LGPL2.1+ or Academic 2.0
> + "base/third_party/xdg_user_dirs" ;Expat
> + "chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
> + "courgette/third_party/bsdiff" ;BSD-2, BSD protection license
> + "courgette/third_party/divsufsort" ;Expat
> + "net/third_party/http2" ;BSD-3
> + "net/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
> + "net/third_party/nss" ;MPL-2.0
> + "net/third_party/quic" ;BSD-3
> + "net/third_party/spdy" ;BSD-3
> + "net/third_party/uri_template" ;ASL2.0
> + "third_party/abseil-cpp" ;ASL2.0
> + "third_party/adobe/flash/flapper_version.h" ;no license, trivial
> + "third_party/angle" ;BSD-3
> + "third_party/angle/src/common/third_party/base" ;BSD-3
> + "third_party/angle/src/common/third_party/smhasher" ;Public domain
> + "third_party/angle/src/common/third_party/xxhash" ;BSD-2
> + "third_party/angle/src/third_party/compiler" ;BSD-2
> + "third_party/angle/src/third_party/libXNVCtrl" ;Expat
> + "third_party/angle/src/third_party/trace_event" ;BSD-3
> + "third_party/angle/third_party/glslang" ;BSD-3
> + "third_party/angle/third_party/spirv-headers" ;Expat
> + "third_party/angle/third_party/spirv-tools" ;Expat
> + "third_party/angle/third_party/vulkan-headers" ;ASL2.0
> + "third_party/angle/third_party/vulkan-loader" ;ASL2.0
> + "third_party/angle/third_party/vulkan-tools" ;ASL2.0
> + "third_party/angle/third_party/vulkan-validation-layers" ;ASL2.0
> + "third_party/apple_apsl" ;APSL2.0
> + "third_party/blink" ;BSD-3
> + "third_party/boringssl" ;OpenSSL/ISC (Google additions are ISC)
> + "third_party/boringssl/src/third_party/fiat" ;Expat
> + "third_party/breakpad" ;BSD-3
> + "third_party/brotli" ;Expat
> + "third_party/cacheinvalidation" ;ASL2.0
> + "third_party/catapult" ;BSD-3
> + "third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0
> + "third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0
> + "third_party/catapult/third_party/polymer" ;BSD-3
> + "third_party/catapult/tracing/third_party/d3" ;BSD-3
> + "third_party/catapult/tracing/third_party/gl-matrix" ;Expat
> + "third_party/catapult/tracing/third_party/jszip" ;Expat or GPL3
> + "third_party/catapult/tracing/third_party/mannwhitneyu" ;Expat
> + "third_party/catapult/tracing/third_party/oboe" ;BSD-2
> + "third_party/catapult/tracing/third_party/pako" ;Expat
> + "third_party/ced" ;BSD-3
> + "third_party/cld_3" ;ASL2.0
> + "third_party/closure_compiler" ;ASL2.0
> + "third_party/crashpad" ;ASL2.0
> + "third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib
> + "third_party/crc32c" ;BSD-3
> + "third_party/cros_system_api" ;BSD-3
> + "third_party/dom_distiller_js" ;BSD-3
> + "third_party/fips181" ;BSD-3
> + "third_party/flatbuffers" ;ASL2.0
> + "third_party/google_input_tools" ;ASL2.0
> + "third_party/google_input_tools/third_party/closure_library" ;ASL2.0
> + "third_party/google_input_tools/third_party/closure_library/third_party/closure" ;Expat
> + "third_party/googletest" ;BSD-3
> + "third_party/hunspell" ;MPL1.1/GPL2+/LGPL2.1+
> + "third_party/iccjpeg" ;IJG
> + "third_party/inspector_protocol" ;BSD-3
> + "third_party/jinja2" ;BSD-3
> + "third_party/jstemplate" ;ASL2.0
> + "third_party/khronos" ;Expat, SGI
> + "third_party/leveldatabase" ;BSD-3
> + "third_party/libXNVCtrl" ;Expat
> + "third_party/libaddressinput" ;ASL2.0
> + "third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0"
> + "third_party/libaom/source/libaom/third_party/vector" ;Expat
> + "third_party/libaom/source/libaom/third_party/x86inc" ;ISC
> + "third_party/libjingle_xmpp" ;BSD-3
> + "third_party/libphonenumber" ;ASL2.0
> + "third_party/libsecret" ;LGPL2.1+
> + "third_party/libsrtp" ;BSD-3
> + "third_party/libsync" ;ASL2.0
> + "third_party/libudev" ;LGPL2.1+
> + "third_party/libwebm" ;BSD-3
> + "third_party/libxml/chromium" ;BSD-3
> + "third_party/libyuv" ;BSD-3
> + "third_party/lss" ;BSD-3
> + "third_party/markupsafe" ;BSD-3
> + "third_party/mesa_headers" ;Expat, SGI
> + "third_party/metrics_proto" ;BSD-3
> + "third_party/modp_b64" ;BSD-3
> + "third_party/nasm" ;BSD-2
> + "third_party/node" ;Expat
> + "third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2" ;BSD-2
> + "third_party/ots" ;BSD-3
> + "third_party/pdfium" ;BSD-3
> + "third_party/pdfium/third_party/agg23" ;Expat
> + "third_party/pdfium/third_party/base" ;BSD-3
> + "third_party/pdfium/third_party/bigint" ;Public domain, BSD-3
> + "third_party/pdfium/third_party/skia_shared" ;BSD-3
> + "third_party/pdfium/third_party/freetype/include/pstables.h" ;FreeType
> + "third_party/ply" ;BSD-3
> + "third_party/polymer" ;BSD-3
> + "third_party/protobuf" ;BSD-3
> + "third_party/protobuf/third_party/six" ;Expat
> + "third_party/pyjson5" ;ASL2.0
> + "third_party/qcms" ;Expat
> + "third_party/rnnoise" ;BSD-3
> + "third_party/s2cellid" ;ASL2.0
> + "third_party/sfntly" ;ASL2.0
> + "third_party/skia" ;BSD-3
> + "third_party/skia/third_party/gif" ;MPL1.1/GPL2+/LGPL2.1+
> + "third_party/skia/third_party/skcms" ;BSD-3
> + "third_party/skia/third_party/vulkan" ;BSD-3
> + "third_party/smhasher" ;Expat, public domain
> + "third_party/speech-dispatcher" ;GPL2+
> + "third_party/spirv-headers" ;ASL2.0
> + "third_party/SPIRV-Tools" ;ASL2.0
> + "third_party/sqlite" ;Public domain
> + "third_party/ungoogled" ;BSD-3
> + "third_party/usb_ids" ;BSD-3
> + "third_party/usrsctp" ;BSD-2
> + "third_party/web-animations-js" ;ASL2.0
> + "third_party/webdriver" ;ASL2.0
> + "third_party/webrtc" ;BSD-3
> + "third_party/webrtc/common_audio/third_party/fft4g" ;Non-copyleft
> + "third_party/webrtc/common_audio/third_party/spl_sqrt_floor" ;Public domain
> + "third_party/webrtc/modules/third_party/fft" ;Non-copyleft
> + "third_party/webrtc/modules/third_party/g711" ;Public domain
> + "third_party/webrtc/modules/third_party/g722" ;Public domain
> + "third_party/webrtc/rtc_base/third_party/base64" ;Non-copyleft
> + "third_party/webrtc/rtc_base/third_party/sigslot" ;Public domain
> + "third_party/widevine/cdm/widevine_cdm_version.h" ;BSD-3
> + "third_party/widevine/cdm/widevine_cdm_common.h" ;BSD-3
> + "third_party/woff2" ;ASL2.0
> + "third_party/xdg-utils" ;Expat
> + "third_party/yasm/run_yasm.py" ;BSD-2 or BSD-3
> + "third_party/zlib/google" ;BSD-3
> + "url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+
> + "v8/src/third_party/utf8-decoder" ;Expat
> + "v8/src/third_party/valgrind" ;BSD-4
> + "v8/third_party/inspector_protocol" ;BSD-3
> + "v8/third_party/v8/builtins")) ;PSFL
> +
> +(define* (computed-origin-method gexp-promise hash-algo hash
> + #:optional (name "source")
> + #:key (system (%current-system))
> + (guile (default-guile)))
> + "Return a derivation that executes the G-expression that results
> +from forcing GEXP-PROMISE."
> + (mlet %store-monad ((guile (package->derivation guile system)))
> + (gexp->derivation (or name "computed-origin")
> + (force gexp-promise)
> + #:system system
> + #:guile-for-build guile)))
> +
> +(define %chromium-version "72.0.3626.81")
> +(define %ungoogled-revision "f9b9074c322a67b04baf0982797cd7b7e09614b5")
> +
> +;; This is a computed origin that does the following:
> +;; 1) Runs the Ungoogled scripts on a pristine Chromium tarball.
> +;; 2) Prunes all third_party folders that are not explicitly preserved.
> +;; 3) Adjusts "GN" build files such that system libraries are preferred.
> +(define ungoogled-chromium-source
> + (let* ((chromium-source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://commondatastorage.googleapis.com"
> + "/chromium-browser-official/chromium-"
> + %chromium-version ".tar.xz"))
> + (sha256
> + (base32
> + "01l0vlvcckpag376mjld7qprv63l0z8li689k0h6v3h0i7irzs6z"))))
> + (ungoogled-source
> + (origin
> + (method git-fetch)
> + (uri (git-reference (url "https://github.com/mbakke/ungoogled-chromium")
> + (commit %ungoogled-revision)))
> + (file-name (git-file-name "ungoogled-chromium"
> + (string-take %ungoogled-revision 7)))
> + (sha256
> + (base32
> + "0gmk1n3i7lbm7rw8zl4df171yhvrlimj8ksj096bf2dlfhbd44rb")))))
> +
> + (origin
> + (method computed-origin-method)
> + (file-name (string-append "ungoogled-chromium-" %chromium-version ".tar.xz"))
> + (sha256 #f)
> + (uri
> + (delay
> + (with-imported-modules '((guix build utils))
> + #~(begin
> + (use-modules (guix build utils))
> + (let ((chromium-dir (string-append "chromium-" #$%chromium-version))
> + (preserved-files (list #$@%preserved-third-party-files)))
> +
> + (mkdir "/tmp/bin")
> + (set-path-environment-variable
> + "PATH" '("bin")
> + (list "/tmp"
> + #+(canonical-package patch)
> + #+(canonical-package xz)
> + #+(canonical-package tar)
> + #+python-2
> + #+python))
> +
> + (copy-recursively #+ungoogled-source "/tmp/ungoogled")
> +
> + (with-directory-excursion "/tmp/ungoogled"
> +
> + (format #t "Unpacking chromium tarball...~%")
> + (force-output)
> + (invoke "tar" "xf" #+chromium-source)
> +
> + (format #t "Ungooglifying...~%")
> + (force-output)
> + (invoke "python3" "run_buildkit_cli.py" "prune"
> + "-b" "config_bundles/guix" chromium-dir)
> + (invoke "python3" "run_buildkit_cli.py" "patches" "apply"
> + "-b" "config_bundles/guix" chromium-dir)
> + (invoke "python3" "run_buildkit_cli.py" "domains" "apply"
> + "-b" "config_bundles/linux_rooted"
> + "-c" "/tmp/domainscache.tar.gz" chromium-dir)
> +
> + (with-directory-excursion chromium-dir
> + (format #t "Pruning third party files...~%")
> + (force-output)
> + (apply invoke "python"
> + "build/linux/unbundle/remove_bundled_libraries.py"
> + "--do-remove" preserved-files)
> +
> + (format #t "Replacing GN files...~%")
> + (force-output)
> + (invoke "python3" "build/linux/unbundle/replace_gn_files.py"
> + "--system-libraries" "ffmpeg" "flac" "fontconfig"
> + "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
> + "libjpeg" "libpng" "libvpx" "libwebp" "libxml"
> + "libxslt" "openh264" "opus" "re2" "snappy" "yasm"
> + "zlib"))
> +
> + (format #t (string-append "Packing new Ungoogled tarball ...~%"))
> + (force-output)
> + (invoke "tar" "cvfa" #$output
> + ;; Avoid non-determinism in the archive.
> + "--mtime=@0"
> + "--owner=root:0"
> + "--group=root:0"
> + "--sort=name"
> + chromium-dir)
> +
> + #t)))))))))
> +
> +(define opus+custom
> + (package/inherit opus
> + (name "opus+custom")
> + (arguments
> + (substitute-keyword-arguments (package-arguments opus)
> + ((#:configure-flags flags ''())
> + ;; Opus Custom is an optional extension of the Opus
> + ;; specification that allows for unsupported frame
> + ;; sizes. Chromium requires that this is enabled.
> + `(cons "--enable-custom-modes"
> + ,flags))))))
> +
> +(define libvpx/chromium
> + ;; Chromium 66 and later requires an unreleased libvpx, so we take the
> + ;; commit from "third_party/libvpx/README.chromium" in the tarball.
> + (let ((version (package-version libvpx))
> + (commit "e188b5435de71bcd602c378f1ac0441111f0f915")
> + (revision "0"))
> + (package/inherit libvpx
> + (name "libvpx-chromium")
> + (version (git-version version revision commit))
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://chromium.googlesource.com/webm/libvpx")
> + (commit commit)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "0v7lzvgy45zh7zwzmmzkvbcqmhs4xa97z0h97hd3j6myrxcfz1n9")))))))
> +
> +;; Transitional package until HarfBuzz 2.2 is available in Guix master branch.
> +(define harfbuzz/chromium
> + (package/inherit harfbuzz
> + (version "2.2.0")
> + (source (origin
> + (inherit (package-source harfbuzz))
> + (uri (string-append "https://www.freedesktop.org/software/harfbuzz"
> + "/release/harfbuzz-" version ".tar.bz2"))
> + (sha256
> + (base32
> + "047q63jr513azf3g1y7f5xn60b4jdjs9zsmrx04sfw5rasyzrk5p"))))))
> +
> +(define-public ungoogled-chromium
> + (package
> + (name "ungoogled-chromium")
> + (version %chromium-version)
> + (synopsis "Graphical web browser")
> + (source ungoogled-chromium-source)
> + (build-system gnu-build-system)
> + (arguments
> + `(#:tests? #f
> + ;; FIXME: There is a "gn" option specifically for setting -rpath, but
> + ;; it overrides the RUNPATH set by the linker.
> + #:validate-runpath? #f
> + #:modules ((guix build gnu-build-system)
> + (guix build utils)
> + (ice-9 ftw)
> + (ice-9 regex)
> + (srfi srfi-26))
> + #:configure-flags
> + ;; See tools/gn/docs/cookbook.md and
> + ;; https://www.chromium.org/developers/gn-build-configuration
> + ;; for usage. Run "./gn args . --list" in the Release
> + ;; directory for an exhaustive list of supported flags.
> + ;; (Note: The 'configure' phase will do that for you.)
> + (list "is_debug=false"
> + "use_gold=false"
> + "use_lld=false"
> + "linux_use_bundled_binutils=false"
> + "use_custom_libcxx=false"
> + "use_sysroot=false"
> + "enable_precompiled_headers=false"
> + "goma_dir=\"\""
> + "enable_nacl=false"
> + "enable_nacl_nonsfi=false"
> + "use_allocator=\"none\"" ;don't use tcmalloc
> + "use_unofficial_version_number=false"
> +
> + ;; Define a custom toolchain that simply looks up CC, AR and
> + ;; friends from the environment.
> + "custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
> + "host_toolchain=\"//build/toolchain/linux/unbundle:default\""
> +
> + ;; Don't assume it's clang.
> + "is_clang=false"
> +
> + ;; Optimize for building everything at once, as opposed to
> + ;; incrementally for development. See "docs/jumbo.md".
> + "use_jumbo_build=true"
> +
> + ;; Disable type-checking for the Web UI to avoid a Java dependency.
> + "closure_compile=false"
> +
> + ;; Disable debugging features to save space.
> + "blink_symbol_level=0"
> + "enable_iterator_debugging=false"
> +
> + ;; Some of the unbundled libraries throws deprecation
> + ;; warnings, etc. Ignore it.
> + "treat_warnings_as_errors=false"
> +
> + ;; Don't add any API keys. End users can set them in the
> + ;; environment if desired. See
> + ;; <https://www.chromium.org/developers/how-tos/api-keys>.
> + "use_official_google_api_keys=false"
> +
> + ;; Disable "safe browsing", which pulls in a dependency on
> + ;; the nonfree "unrar" program (as of m66).
> + "safe_browsing_mode=0"
> +
> + ;; Disable "field trials".
> + "fieldtrial_testing_like_official_build=true"
> +
> + ;; Ungoogled components.
> + "enable_mdns=false"
> + "enable_one_click_signin=false"
> + "enable_reading_list=false"
> + "enable_remoting=false"
> + "enable_reporting=false"
> + "enable_service_discovery=false"
> + "enable_swiftshader=false"
> + "use_vaapi=true"
> +
> + ;; Use system libraries where possible.
> + "use_system_freetype=true"
> + "use_system_harfbuzz=true"
> + "use_system_lcms2=true"
> + "use_system_libdrm=true"
> + "use_system_libjpeg=true"
> + "use_system_libpng=true"
> + ;;"use_system_libsync=true"
> + "use_system_zlib=true"
> +
> + "use_gnome_keyring=false" ;deprecated by libsecret
> + "use_openh264=true"
> + "use_pulseaudio=true"
> + "link_pulseaudio=true"
> +
> + ;; Don't arbitrarily restrict formats supported by system ffmpeg.
> + "proprietary_codecs=true"
> + "ffmpeg_branding=\"Chrome\""
> +
> + ;; WebRTC stuff.
> + "rtc_use_h264=true"
> + ;; Don't use bundled sources.
> + "rtc_build_json=false"
> + "rtc_build_libevent=false"
> + "rtc_build_libvpx=false"
> + "rtc_build_opus=false"
> + "rtc_build_ssl=false"
> +
> + "rtc_build_libsrtp=true" ;FIXME: fails to find headers
> + "rtc_build_usrsctp=true" ;TODO: package this
> + (string-append "rtc_jsoncpp_root=\""
> + (assoc-ref %build-inputs "jsoncpp")
> + "/include/jsoncpp/json\"")
> + (string-append "rtc_ssl_root=\""
> + (assoc-ref %build-inputs "openssl")
> + "/include/openssl\""))
> + #:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'patch-stuff
> + (lambda* (#:key inputs #:allow-other-keys)
> + (substitute* "printing/cups_config_helper.py"
> + (("cups_config =.*")
> + (string-append "cups_config = '" (assoc-ref inputs "cups")
> + "/bin/cups-config'\n")))
> +
> + (substitute*
> + '("base/process/launch_posix.cc"
> + "base/third_party/dynamic_annotations/dynamic_annotations.c"
> + "sandbox/linux/seccomp-bpf/sandbox_bpf.cc"
> + "sandbox/linux/services/credentials.cc"
> + "sandbox/linux/services/namespace_utils.cc"
> + "sandbox/linux/services/syscall_wrappers.cc"
> + "sandbox/linux/syscall_broker/broker_host.cc")
> + (("include \"base/third_party/valgrind/") "include \"valgrind/"))
> +
> + (for-each (lambda (file)
> + (substitute* file
> + ;; Fix opus include path.
> + ;; Do not substitute opus_private.h.
> + (("#include \"opus\\.h\"")
> + "#include \"opus/opus.h\"")
> + (("#include \"opus_custom\\.h\"")
> + "#include \"opus/opus_custom.h\"")
> + (("#include \"opus_defines\\.h\"")
> + "#include \"opus/opus_defines.h\"")
> + (("#include \"opus_multistream\\.h\"")
> + "#include \"opus/opus_multistream.h\"")
> + (("#include \"opus_types\\.h\"")
> + "#include \"opus/opus_types.h\"")))
> + (find-files (string-append "third_party/webrtc/modules"
> + "/audio_coding/codecs/opus")))
> +
> + (substitute* "chrome/common/chrome_paths.cc"
> + (("/usr/share/chromium/extensions")
> + ;; TODO: Add ~/.guix-profile.
> + "/run/current-system/profile/share/chromium/extensions"))
> +
> + ;; XXX: Should be unnecessary when use_system_lcms2=true.
> + (substitute* "third_party/pdfium/core/fxcodec/codec/ccodec_iccmodule.h"
> + (("include \"third_party/lcms/include/lcms2\\.h\"")
> + "include \"lcms2.h\""))
> +
> + (substitute*
> + "third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h"
> + (("include \"third_party/curl") "include \"curl"))
> +
> + (substitute* "third_party/webrtc/rtc_base/strings/json.h"
> + (("#include \"third_party/jsoncpp/") "#include \"json/"))
> +
> + (substitute* "media/base/decode_capabilities.cc"
> + (("third_party/libvpx/source/libvpx/") ""))
> +
> + (substitute* "ui/gfx/skia_util.h"
> + (("third_party/vulkan/include/") ""))
> +
> + ;; Building chromedriver embeds some files using the ZIP
> + ;; format which doesn't support timestamps before
> + ;; 1980. Therefore, advance the timestamps of the files
> + ;; which are included so that building chromedriver
> + ;; works.
> + (let ((circa-1980 (* 10 366 24 60 60)))
> + (for-each (lambda (file)
> + (utime file circa-1980 circa-1980))
> + '("chrome/test/chromedriver/extension/background.js"
> + "chrome/test/chromedriver/extension/manifest.json")))
> +
> + #t))
> + (add-before 'configure 'prepare-build-environment
> + (lambda* (#:key inputs #:allow-other-keys)
> +
> + ;; Make sure the right build tools are used.
> + (setenv "AR" "ar") (setenv "NM" "nm")
> + (setenv "CC" "gcc") (setenv "CXX" "g++")
> +
> + ;; Work around <https://bugs.gnu.org/30756>.
> + (unsetenv "C_INCLUDE_PATH")
> + (unsetenv "CPLUS_INCLUDE_PATH")
> +
> + ;; TODO: pre-compile instead. Avoids a race condition.
> + (setenv "PYTHONDONTWRITEBYTECODE" "1")
> +
> + ;; XXX: How portable is this.
> + (mkdir-p "third_party/node/linux/node-linux-x64")
> + (symlink (string-append (assoc-ref inputs "node") "/bin")
> + "third_party/node/linux/node-linux-x64/bin")
> +
> + #t))
> + (replace 'configure
> + (lambda* (#:key configure-flags #:allow-other-keys)
> + (let ((args (string-join configure-flags " ")))
> + ;; Generate ninja build files.
> + (invoke "gn" "gen" "out/Release"
> + (string-append "--args=" args))
> +
> + ;; Print the full list of supported arguments as well as
> + ;; their current status for convenience.
> + (format #t "Dumping configure flags...\n")
> + (invoke "gn" "args" "out/Release" "--list"))))
> + (replace 'build
> + (lambda* (#:key outputs #:allow-other-keys)
> + (invoke "ninja" "-C" "out/Release"
> + "-j" (number->string (parallel-job-count))
> + "chrome"
> + "chromedriver")))
> + (replace 'install
> + (lambda* (#:key inputs outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (bin (string-append out "/bin"))
> + (exe (string-append bin "/chromium"))
> + (lib (string-append out "/lib"))
> + (man (string-append out "/share/man/man1"))
> + (applications (string-append out "/share/applications"))
> + (install-regexp (make-regexp "\\.(bin|pak)$"))
> + (locales (string-append lib "/locales"))
> + (resources (string-append lib "/resources"))
> + (preferences (assoc-ref inputs "master-preferences"))
> + (gtk+ (assoc-ref inputs "gtk+"))
> + (mesa (assoc-ref inputs "mesa"))
> + (nss (assoc-ref inputs "nss"))
> + (udev (assoc-ref inputs "udev"))
> + (sh (which "sh")))
> +
> + (substitute* '("chrome/app/resources/manpage.1.in"
> + "chrome/installer/linux/common/desktop.template")
> + (("@@MENUNAME@@") "Chromium")
> + (("@@PACKAGE@@") "chromium")
> + (("/usr/bin/@@USR_BIN_SYMLINK_NAME@@") exe))
> +
> + (mkdir-p man)
> + (copy-file "chrome/app/resources/manpage.1.in"
> + (string-append man "/chromium.1"))
> +
> + (mkdir-p applications)
> + (copy-file "chrome/installer/linux/common/desktop.template"
> + (string-append applications "/chromium.desktop"))
> +
> + (mkdir-p lib)
> + (copy-file preferences (string-append lib "/master_preferences"))
> +
> + (with-directory-excursion "out/Release"
> + (for-each (lambda (file)
> + (install-file file lib))
> + (scandir "." (cut regexp-exec install-regexp <>)))
> + (copy-file "chrome" (string-append lib "/chromium"))
> +
> + ;; TODO: Install icons from "../../chrome/app/themes" into
> + ;; "out/share/icons/hicolor/$size".
> + (install-file
> + "product_logo_48.png"
> + (string-append out "/share/icons/48x48/chromium.png"))
> +
> + (copy-recursively "locales" locales)
> + (copy-recursively "resources" resources)
> +
> + (mkdir-p bin)
> + (symlink "../lib/chromium" exe)
> + (install-file "chromedriver" bin)
> +
> + (wrap-program exe
> + ;; TODO: Get these in RUNPATH.
> + `("LD_LIBRARY_PATH" ":" prefix
> + (,(string-append lib ":" nss "/lib/nss:" gtk+ "/lib:"
> + mesa "/lib:" udev "/lib")))
> + ;; Avoid file manager crash. See <https://bugs.gnu.org/26593>.
> + `("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share"))))
> + #t)))))))
> + (native-inputs
> + `(("bison" ,bison)
> + ("gcc" ,gcc-8)
> + ("gn" ,gn)
> + ("gperf" ,gperf)
> + ("ninja" ,ninja)
> + ("node" ,node)
> + ("pkg-config" ,pkg-config)
> + ("which" ,which)
> + ("yasm" ,yasm)
> +
> + ;; This file contains defaults for new user profiles.
> + ("master-preferences" ,(local-file "aux-files/chromium/master-preferences.json"))
> +
> + ("python-beautifulsoup4" ,python2-beautifulsoup4)
> + ("python-html5lib" ,python2-html5lib)
> + ("python" ,python-2)))
> + (inputs
> + `(("alsa-lib" ,alsa-lib)
> + ("atk" ,atk)
> + ("cups" ,cups)
> + ("curl" ,curl)
> + ("dbus" ,dbus)
> + ("dbus-glib" ,dbus-glib)
> + ("expat" ,expat)
> + ("flac" ,flac)
> + ("ffmpeg" ,ffmpeg)
> + ("fontconfig" ,fontconfig)
> + ("freetype" ,freetype)
> + ("gdk-pixbuf" ,gdk-pixbuf)
> + ("glib" ,glib)
> + ("gtk+" ,gtk+)
> + ("harfbuzz" ,harfbuzz/chromium)
> + ("icu4c" ,icu4c)
> + ("jsoncpp" ,jsoncpp)
> + ("lcms" ,lcms)
> + ("libevent" ,libevent)
> + ("libffi" ,libffi)
> + ("libjpeg-turbo" ,libjpeg-turbo)
> + ("libpng" ,libpng)
> + ("libva" ,libva)
> + ("libvpx" ,libvpx/chromium)
> + ("libwebp" ,libwebp)
> + ("libx11" ,libx11)
> + ("libxcb" ,libxcb)
> + ("libxcomposite" ,libxcomposite)
> + ("libxcursor" ,libxcursor)
> + ("libxdamage" ,libxdamage)
> + ("libxext" ,libxext)
> + ("libxfixes" ,libxfixes)
> + ("libxi" ,libxi)
> + ("libxml2" ,libxml2)
> + ("libxrandr" ,libxrandr)
> + ("libxrender" ,libxrender)
> + ("libxscrnsaver" ,libxscrnsaver)
> + ("libxslt" ,libxslt)
> + ("libxtst" ,libxtst)
> + ("mesa" ,mesa)
> + ("minizip" ,minizip)
> + ("mit-krb5" ,mit-krb5)
> + ("nss" ,nss)
> + ("openh264" ,openh264)
> + ("openjpeg" ,openjpeg) ;PDFium only
> + ("openssl" ,openssl)
> + ("opus" ,opus+custom)
> + ("pango" ,pango)
> + ("pciutils" ,pciutils)
> + ("pulseaudio" ,pulseaudio)
> + ("re2" ,re2)
> + ("snappy" ,snappy)
> + ("speech-dispatcher" ,speech-dispatcher)
> + ("udev" ,eudev)
> + ("valgrind" ,valgrind)
> + ("vulkan-headers" ,vulkan-headers)))
> + (home-page "https://www.chromium.org/")
> + (description
> + "Ungoogled-Chromium is the Chromium web browser, sans integration with
> +Google web services.")
> + ;; Chromium is developed as BSD-3, but bundles a large number of third-party
> + ;; components with other licenses. For full information, see chrome://credits.
> + (license (list license:bsd-3
> + license:bsd-2
> + license:expat
> + license:asl2.0
> + license:mpl1.1
> + license:mpl2.0
> + license:public-domain
> + license:isc
> + (license:non-copyleft "chrome://credits"
> + "See chrome://credits for more information.")
> + license:lgpl2.1+))))
--
Joshua Branson
Sent from Emacs and Gnus
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] gnu: Add ungoogled-chromium.
2019-02-03 18:16 ` Joshua Branson
@ 2019-02-04 4:52 ` bill-auger
2019-02-04 12:26 ` [GNU-linux-libre] " Julie Marchant
2019-02-04 22:34 ` Ludovic Courtès
0 siblings, 2 replies; 13+ messages in thread
From: bill-auger @ 2019-02-04 4:52 UTC (permalink / raw)
To: guix-devel; +Cc: 28004, gnu-linux-libre
re: https://lists.gnu.org/archive/html/guix-devel/2019-02/msg00009.html
i would like to remind readers of the guix-devel list that it was
discussed some months ago, why no FSDG distros currently distribute
chromium[1] - it appeared at that time, that most people in that
discussion were in agreement that chromium should not be included in
guix; and marius was instead hosting it in a private repo, as not to
taint the main guix repos with dubious software - has there been a
notable break-through since then?
what is the evidence for this claim that this guix package is "free
software only"? - what does "Marks beautiful computed-origin-method" do
toward that end? - if a procedure for liberating any chromium-derived
software has been discovered, this would be a marvelous accomplishment
and very good news indeed, of which people outside of the guix dev team
would also be interested to learn
if the guix team has discovered some new information or has concocted a
viable liberation recipe for chromium or any of it's offspring, then i
hope that, for the benefit of all fellow Fosstopians, someone would
present that information to the FSDG mailing list for review and
discussion - it would be extra neighborly if that happened *before*
offering this program to guix users, while fully knowing that the other
FSDG distros are still intentionally suppressing it in solidarity
again, i am totally indifferent as to whether anyone uses chromium or
not - my only interest in this is that i would like to strengthen the
FSDG by convincing FSDG distros to communicate and collaborate with each
other, and to achieve consensus about common issues such as this, that
clearly affect all distros equally; so that no one is compelled to ask
"why does guixsd endorse that popular program if other FSDG distros
reject it on principal?" - it is difficult enough to explain to users
why these programs are rejected in the first place; but at least the
way things are now, we can say that all FSDG distros are in agreement to
err on the conservative side until a satisfactory liberation procedure
is found and documented - currently, the documented liberation
procedure is: "Remove program/package. Use GNU IceCat, or
equivalent"[2] - if there is a better candidate procedure now, let us
get it onto the table for discussion
i would like to consider all FSDG distros as being part of a larger
federation, sharing the same primary goals; but we cant all be reading
all of the dev lists - let us communicate whenever applicable, in the
common venue that exists for that purpose[3] - i tried enticing the
folks on the guix team to do that previously - if there is indeed
something new to announce regarding chromium's dubious FSDG status,
please elect someone from guix to do so now - this would be very
interesting news to the readers of that list, and your effort and/or
accomplishment would be sincerely applauded - other FSDG distros would
be happy (and some quite eager) to re-instate any of these
chromium-derived packages if a consensus could be reached that any of
them could be distributed 100% freely; but if all distros are to decide
for themselves what is freely distributable and what is not, without
evidence and without discussing it with the other FSDG distros nor the
FSF, then the FSDG loses its teeth, and we all look wishy-washy and
flakey on that, the main, central FSDG concern: which programs are
freely distributable and which are not
[1]: https://lists.gnu.org/archive/html/guix-devel/2018-09/msg00264.html
[2]:
https://libreplanet.org/wiki/List_of_software_that_does_not_respect_the_Free_System_Distribution_Guidelines#chromium-browser
[3]: https://lists.nongnu.org/mailman/listinfo/gnu-linux-libre
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GNU-linux-libre] [PATCH] gnu: Add ungoogled-chromium.
2019-02-04 4:52 ` bill-auger
@ 2019-02-04 12:26 ` Julie Marchant
2019-02-04 15:03 ` bill-auger
2019-02-04 22:34 ` Ludovic Courtès
1 sibling, 1 reply; 13+ messages in thread
From: Julie Marchant @ 2019-02-04 12:26 UTC (permalink / raw)
To: guix-devel; +Cc: 28004
On 02/03/2019 11:52 PM, bill-auger wrote:
> re: https://lists.gnu.org/archive/html/guix-devel/2019-02/msg00009.html
>
> i would like to remind readers of the guix-devel list that it was
> discussed some months ago, why no FSDG distros currently distribute
> chromium[1] - it appeared at that time, that most people in that
> discussion were in agreement that chromium should not be included in
> guix; and marius was instead hosting it in a private repo, as not to
> taint the main guix repos with dubious software - has there been a
> notable break-through since then?
>
> what is the evidence for this claim that this guix package is "free
> software only"? - what does "Marks beautiful computed-origin-method" do
> toward that end? - if a procedure for liberating any chromium-derived
> software has been discovered, this would be a marvelous accomplishment
> and very good news indeed, of which people outside of the guix dev team
> would also be interested to learn
>
> if the guix team has discovered some new information or has concocted a
> viable liberation recipe for chromium or any of it's offspring, then i
> hope that, for the benefit of all fellow Fosstopians, someone would
> present that information to the FSDG mailing list for review and
> discussion - it would be extra neighborly if that happened *before*
> offering this program to guix users, while fully knowing that the other
> FSDG distros are still intentionally suppressing it in solidarity
>
> again, i am totally indifferent as to whether anyone uses chromium or
> not - my only interest in this is that i would like to strengthen the
> FSDG by convincing FSDG distros to communicate and collaborate with each
> other, and to achieve consensus about common issues such as this, that
> clearly affect all distros equally; so that no one is compelled to ask
> "why does guixsd endorse that popular program if other FSDG distros
> reject it on principal?" - it is difficult enough to explain to users
> why these programs are rejected in the first place; but at least the
> way things are now, we can say that all FSDG distros are in agreement to
> err on the conservative side until a satisfactory liberation procedure
> is found and documented - currently, the documented liberation
> procedure is: "Remove program/package. Use GNU IceCat, or
> equivalent"[2] - if there is a better candidate procedure now, let us
> get it onto the table for discussion
>
> i would like to consider all FSDG distros as being part of a larger
> federation, sharing the same primary goals; but we cant all be reading
> all of the dev lists - let us communicate whenever applicable, in the
> common venue that exists for that purpose[3] - i tried enticing the
> folks on the guix team to do that previously - if there is indeed
> something new to announce regarding chromium's dubious FSDG status,
> please elect someone from guix to do so now - this would be very
> interesting news to the readers of that list, and your effort and/or
> accomplishment would be sincerely applauded - other FSDG distros would
> be happy (and some quite eager) to re-instate any of these
> chromium-derived packages if a consensus could be reached that any of
> them could be distributed 100% freely; but if all distros are to decide
> for themselves what is freely distributable and what is not, without
> evidence and without discussing it with the other FSDG distros nor the
> FSF, then the FSDG loses its teeth, and we all look wishy-washy and
> flakey on that, the main, central FSDG concern: which programs are
> freely distributable and which are not
>
>
> [1]: https://lists.gnu.org/archive/html/guix-devel/2018-09/msg00264.html
> [2]:
> https://libreplanet.org/wiki/List_of_software_that_does_not_respect_the_Free_System_Distribution_Guidelines#chromium-browser
> [3]: https://lists.nongnu.org/mailman/listinfo/gnu-linux-libre
Sorry, I didn't notice that this thread was on multiple lists, so when I
hit "Reply List" it only went to the GNU-linux-libre list. Sending a
copy to the other lists; sorry for the messiness.
I'm not sure if I've mentioned it on the GNU-linux-libre list before,
but I have never seen any actual evidence of the current version of
Chromium containing proprietary components.
It's an unreasonable standard to demand proof that programs are libre.
That's an impossible thing to prove. If someone points out, as I have
many times, "I have looked through Chromium's code and not found a
single proprietary program," someone can simply say that they didn't
look hard enough.
That LibrePlanet page, by the way, is not evidence of Chromium
containing proprietary components. It claims such, but the only evidence
provided is a copyright file that clearly indicates a libre license, and
a bug report about not passing a license checking script, which I might
add is also not proof of any program being proprietary. Not to mention,
this is from over eight years ago. Should distro maintainers also take
the outdated recommendation to remove Project: Starfighter from that
page at face value, despite the fact that I released a completely libre
version almost four years ago? The point is, that's a wiki page
sporadically maintained by volunteers. It's a possible starting point
(though to be honest I'm not so sure it's even useful for that), but not
an indication of the GNU FSDG gold standard, so to speak.
--
Julie Marchant
http://onpon4.github.io
Encrypt your emails with GnuPG:
https://emailselfdefense.fsf.org
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GNU-linux-libre] [PATCH] gnu: Add ungoogled-chromium.
2019-02-04 12:26 ` [GNU-linux-libre] " Julie Marchant
@ 2019-02-04 15:03 ` bill-auger
0 siblings, 0 replies; 13+ messages in thread
From: bill-auger @ 2019-02-04 15:03 UTC (permalink / raw)
To: guix-devel
On Mon, 4 Feb 2019 07:26:59 -0500 Julie wrote:
> I have never seen any actual evidence of the current version of
> Chromium containing proprietary components.
> It's an unreasonable standard to demand proof that programs are libre.
julie, that is like saying "i dont see any evidence on that new car
that says: i do not belong to you" - would you then conclude that you
can drive it home? - i think you would prefer to see the explicit
evidence proving that you do in fact have the right to do that
the default copy permissions for every copyrighted work is "none" - in
order for that work be be set free, the author must very explicitly
label it as such, and try their very best to ensure that their formal
statement of permission follows along with any copies of it - because if
that permission is missing, or difficult to locate or to comprehend,
there is no reason to assume the work is freely distributable
the burden of proof is not upon the one who claims that the default
case applies, it is upon the one who claims that some special case
applies
i will say again though, that my main intention was not to make any
claims neither for nor against this particular program; but to entice
the guix devs to discuss it on the FSDG mailing list for the benefit
of the others who are also interested
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] gnu: Add ungoogled-chromium.
2019-02-04 4:52 ` bill-auger
2019-02-04 12:26 ` [GNU-linux-libre] " Julie Marchant
@ 2019-02-04 22:34 ` Ludovic Courtès
2019-02-06 21:04 ` [GNU-linux-libre] " Marius Bakke
2019-02-07 23:52 ` Christopher Lemmer Webber
1 sibling, 2 replies; 13+ messages in thread
From: Ludovic Courtès @ 2019-02-04 22:34 UTC (permalink / raw)
To: bill-auger; +Cc: guix-devel, 28004, gnu-linux-libre
Hi bill-auger,
bill-auger <bill-auger@peers.community> skribis:
> re: https://lists.gnu.org/archive/html/guix-devel/2019-02/msg00009.html
>
> i would like to remind readers of the guix-devel list that it was
> discussed some months ago, why no FSDG distros currently distribute
> chromium[1] - it appeared at that time, that most people in that
> discussion were in agreement that chromium should not be included in
> guix; and marius was instead hosting it in a private repo, as not to
> taint the main guix repos with dubious software - has there been a
> notable break-through since then?
It’s not entirely clear to me what the problems are, to be honest.
Marius listed specific issues that were addressed by the patches; others
then pointed out at additional issues that ungoogled-chromium fixes,
which Marius took into account; what’s left now?
I understand you’re skeptical about Chromium, but we cannot base
decisions based on vague skepticism. If you know of issues that are
still unaddressed, please do list them.
I’d also like to stress that, if Chromium is eventually included in
Guix, we are committed to fixing it or removing it should someone later
discover that it does not comply with the FSDG (that’s the “Commitment
to Correct Mistakes” section of FSDG.)
> i would like to consider all FSDG distros as being part of a larger
> federation, sharing the same primary goals;
As you know, several of us have occasionally asked for advice on the
gnu-linux-libre list regarding concrete issues that we encountered (a
recent example was Inferno, which we ended up not adding to the distro
due to unresolved issues.)
I believe Marius and others here made a real effort in understanding and
addressing the ways in which Chromium would not comply with the FSDG.
If you’re aware of issues that are unaddressed, please share!
Thank you,
Ludo’.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GNU-linux-libre] [PATCH] gnu: Add ungoogled-chromium.
2019-02-04 22:34 ` Ludovic Courtès
@ 2019-02-06 21:04 ` Marius Bakke
2019-02-07 23:52 ` Christopher Lemmer Webber
1 sibling, 0 replies; 13+ messages in thread
From: Marius Bakke @ 2019-02-06 21:04 UTC (permalink / raw)
To: Ludovic Courtès, bill-auger; +Cc: guix-devel, 28004, gnu-linux-libre
[-- Attachment #1: Type: text/plain, Size: 1597 bytes --]
Ludovic Courtès <ludo@gnu.org> writes:
> Hi bill-auger,
>
> bill-auger <bill-auger@peers.community> skribis:
>
>> re: https://lists.gnu.org/archive/html/guix-devel/2019-02/msg00009.html
>>
>> i would like to remind readers of the guix-devel list that it was
>> discussed some months ago, why no FSDG distros currently distribute
>> chromium[1] - it appeared at that time, that most people in that
>> discussion were in agreement that chromium should not be included in
>> guix; and marius was instead hosting it in a private repo, as not to
>> taint the main guix repos with dubious software - has there been a
>> notable break-through since then?
>
> It’s not entirely clear to me what the problems are, to be honest.
> Marius listed specific issues that were addressed by the patches; others
> then pointed out at additional issues that ungoogled-chromium fixes,
> which Marius took into account; what’s left now?
Indeed, the only real breakthrough is that we now have a script to
create an Ungooglified source tarball with all unnecessary third_party
components removed. The compressed tarball is smaller than that of
IceCat and takes up around 2.1 GiB uncompressed, roughly 1GiB of which
is third_party stuff.
That leaves "just" over 1GiB of source code to audit (assuming my
third_party audit is correct). I haven't been able to find any
proprietary parts in first party code, and am convinced that the
remaining third_party components are free, hence this patch.
I am of course happy to help other FSDG distributions liberate their
Chromium too.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] gnu: Add ungoogled-chromium.
2019-02-04 22:34 ` Ludovic Courtès
2019-02-06 21:04 ` [GNU-linux-libre] " Marius Bakke
@ 2019-02-07 23:52 ` Christopher Lemmer Webber
2019-02-16 8:00 ` bill-auger
1 sibling, 1 reply; 13+ messages in thread
From: Christopher Lemmer Webber @ 2019-02-07 23:52 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel, gnu-linux-libre, 28004
Ludovic Courtès writes:
> Hi bill-auger,
>
> bill-auger <bill-auger@peers.community> skribis:
>
>> re: https://lists.gnu.org/archive/html/guix-devel/2019-02/msg00009.html
>>
>> i would like to remind readers of the guix-devel list that it was
>> discussed some months ago, why no FSDG distros currently distribute
>> chromium[1] - it appeared at that time, that most people in that
>> discussion were in agreement that chromium should not be included in
>> guix; and marius was instead hosting it in a private repo, as not to
>> taint the main guix repos with dubious software - has there been a
>> notable break-through since then?
>
> It’s not entirely clear to me what the problems are, to be honest.
> Marius listed specific issues that were addressed by the patches; others
> then pointed out at additional issues that ungoogled-chromium fixes,
> which Marius took into account; what’s left now?
>
> I understand you’re skeptical about Chromium, but we cannot base
> decisions based on vague skepticism. If you know of issues that are
> still unaddressed, please do list them.
>
> I’d also like to stress that, if Chromium is eventually included in
> Guix, we are committed to fixing it or removing it should someone later
> discover that it does not comply with the FSDG (that’s the “Commitment
> to Correct Mistakes” section of FSDG.)
+1 ... If concrete problems are found, by all means those should be
raised and addressed. Otherwise I really think we ought to merge this
work.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] gnu: Add ungoogled-chromium.
2019-02-07 23:52 ` Christopher Lemmer Webber
@ 2019-02-16 8:00 ` bill-auger
2019-02-16 10:25 ` Brett Gilio
2019-02-16 15:50 ` Marius Bakke
0 siblings, 2 replies; 13+ messages in thread
From: bill-auger @ 2019-02-16 8:00 UTC (permalink / raw)
To: gnu-linux-libre; +Cc: guix-devel
On Mon, 04 Feb 2019 23:34:45 +0100 Ludovic wrote:
> It’s not entirely clear to me what the problems are, to be honest.
On Wed, 06 Feb 2019 22:04:59 +0100 Marius wrote:
> Indeed, the only real breakthrough is that we now have a script to
> create an Ungooglified source tarball with all unnecessary third_party
> components removed.
> I am of course happy to help other FSDG distributions liberate their
> Chromium too.
it is not clear to *anyone* precisely what the licensing problems are -
not even the upstream developers have been able to confirm or deny them
with any certainty - that is the very reason why this ugly situation has
been standing all these years, as yet unresolved
by your own admittance there, you have not "liberated" chromium - you
have "ungooglified" it, and discarded some non-essential third-party
code - the work of the "ungoogled" and "iridium" teams has been
discussed at length and was concluded to be insufficient as a liberation
procedure, because their work only addresses proivacy issues, but not
licensing - "liberation" would first require *something* that is not
FSDG compliant to be identified as such, and *then* for that something
to be removed or patched in order to be compliant - neither of those
events has occurred, and we all know it - that is the very reason this
situation has stood unresolved for so long
so, this recent work done by guix is not a resolution to the problem -
it is merely sweeping the problem under the rug, rather than confronting
it at face value, as Adfeno has been suggesting
On Thu, 07 Feb 2019 18:52:02 -0500 Christopher wrote:
> +1 ... If concrete problems are found, by all means those should be
> raised and addressed. Otherwise I really think we ought to merge this
> work.
this statement is indicative of the lack of concern for the wider FSDG
ecosystem which is implicit in most of the guix team's statements on
this issue - do correct me if im wrong, but i read that: "we" as:
"guix" - as in: guix should adopt this program - as in: regardless of
the long standing consensus among the other FSDG distros that it is not
yet fit for inclusion
this is puts the other FSDG distros in a very uncomfortable position;
and the chromium program specifically, is not really the crux of the
issue - i do hope that i have not lost anyone's attention yet; because
this is where i will try to explain, what is the critical point of
contention at this time
about a year ago, the FSDG review process and criteria for endorsement
of new distros was updated - the new FSDG criteria checklist for
community review that was adopted includes the following essential
criteria:
"Programs commonly known to have freedom issues are liberated or
excluded"
that criteria is a link to the "software that does not respect the
FSDG" wiki page, which includes an entry for 'chromium-browser' (the
debian package name) with the liberation procedure being specified as:
"Remove program/package Use GNU IceCat, or equivalent"
that created an uncomfortable pressure point for any distro that wants
to distribute this browser - according to the literal reading of that
criteria, no new distro could be endorsed by the FSF today if it
distributes chromium; because it would never make it past the community
review stage - this was not a concern for the last new distro because
it did not include chromium; so that ugly wart is still sitting there
today
it was also agreed upon at that time, that the FSDG criteria should be
applicable to all currently endorsed distros in perpetuity, so ...
On Mon, 04 Feb 2019 23:34:45 +0100 Ludovic wrote:
> I’d also like to stress that, if Chromium is eventually included in
> Guix, we are committed to fixing it or removing it should someone
> later discover that it does not comply with the FSDG (that’s the
> “Commitment to Correct Mistakes” section of FSDG.)
if chromium enters the guix repo it will almost surely be followed by a
freedom bug report (which per the current FSDG criteria, would be fully
justifiable), just as what happened with pureos; which they reluctantly,
but eventually acted upon by removing chromium from their free repos -
so, why would guix want to invite controversy, by knowingly repeating
this historical mistake?
and BTW, where was guix's voice on this matter last year when pureos was
trying to defend their very same position on this very same issue? - no
one came forward to back them up on that position then; and to their
credit, they decided to adopt the position of the group, for the sake of
presenting a coherent message to the free software community as a
unified group - that was an important gesture on their part, which
strengthened the credibility of the FSDG, by showing that its
guidelines are not subject to the interpretation of each distro
arbitrarily - perhaps that consensus could have gone the other way if
the argument: "we should always trust the upstream on their word"[1]
had gained favor, and guix's induction of a chromium package would be
an entirely uninteresting event today
so, i suggest that it is in the best interest of guix (and any other
distro that wants chromium) to explicitly challenge that one point and
see if that entry can be removed or changed before that bug report is
posted against guix - i think i have just demonstrated that it would be
an easy argument to make, that chromium entered guix knowingly and
willingly in conflict with the new FSDG criteria
this is not a comfortable situation for anyone - a number of people
on this list have openly expressed a strong dislike for that current
situation - it is a really ugly point of contention at the moment; but
nothing has been done about it yet - i think the reason for that, is
mainly because there has been too few interested in defending or
liberating that program until now - even the pureos devs, who were the
last to remove it, were not particularly fond of it, but were slow to
remove it, only to appease users - this would be a great entry point for
guix to join the discussions on the FSDG mailing list, and perhaps
resolve this issue for everyone, including distros yet to come
it was, of course, nice of Marius to offer to assist other distros; but
individual assistance is not what is needed - what is needed is a
generally agreed upon, documented, liberation procedure that can
replace: "Use GNU IceCat instead" as the new FSDG recommendation - i
think we would all like to see that happen; but i dont think anything
convincing has yet been presented, much less been discussed openly or
agreed upon
[1]: https://debbugs.gnu.org/cgi/bugreport.cgi?msg=305;bug=28004;att=0
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] gnu: Add ungoogled-chromium.
2019-02-16 8:00 ` bill-auger
@ 2019-02-16 10:25 ` Brett Gilio
2019-02-16 14:18 ` Julie Marchant
2019-02-16 15:50 ` Marius Bakke
1 sibling, 1 reply; 13+ messages in thread
From: Brett Gilio @ 2019-02-16 10:25 UTC (permalink / raw)
To: bill-auger; +Cc: guix-devel, gnu-linux-libre
bill-auger writes:
> On Mon, 04 Feb 2019 23:34:45 +0100 Ludovic wrote:
>> It’s not entirely clear to me what the problems are, to be honest.
>
> On Wed, 06 Feb 2019 22:04:59 +0100 Marius wrote:
>> Indeed, the only real breakthrough is that we now have a script to
>> create an Ungooglified source tarball with all unnecessary third_party
>> components removed.
>> I am of course happy to help other FSDG distributions liberate their
>> Chromium too.
>
I agree with everything Bill said in his message, and I heavily
encourage all of us lurking in this mailing list with an opinion on the
matter to please state your opinion on this controversy and the Guix
relationship to the FSDG.
The free software guidelines are first and foremost put up by the free
software community by what is specified to be important to the values of
free software. This needs to be addressed sooner than later, because the
act of solidarity on the part of the community here is a tremendously
crucial and singular event.
I'd like to see the offerings of free software to grow, and include
chromium if chromium has a reasonable method of liberation. But there is
yet to be a complete audit to identify the problems. We can not rely
solely on speculation, so lets get to the bottom of this once and for
all.
Brett Gilio
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] gnu: Add ungoogled-chromium.
2019-02-16 10:25 ` Brett Gilio
@ 2019-02-16 14:18 ` Julie Marchant
2019-02-16 15:37 ` [GNU-linux-libre] " Adam Van Ymeren
2019-02-16 19:47 ` Adonay Felipe Nogueira
0 siblings, 2 replies; 13+ messages in thread
From: Julie Marchant @ 2019-02-16 14:18 UTC (permalink / raw)
To: Workgroup for fully free GNU/Linux distributions, Brett Gilio,
bill-auger
Cc: guix-devel
On 02/16/2019 05:25 AM, Brett Gilio wrote:
> I agree with everything Bill said in his message, and I heavily
> encourage all of us lurking in this mailing list with an opinion on the
> matter to please state your opinion on this controversy and the Guix
> relationship to the FSDG.
>
> The free software guidelines are first and foremost put up by the free
> software community by what is specified to be important to the values of
> free software. This needs to be addressed sooner than later, because the
> act of solidarity on the part of the community here is a tremendously
> crucial and singular event.
>
> I'd like to see the offerings of free software to grow, and include
> chromium if chromium has a reasonable method of liberation. But there is
> yet to be a complete audit to identify the problems. We can not rely
> solely on speculation, so lets get to the bottom of this once and for
> all.
I think that assuming Chromium is no good until something no good is
found in it is a wrong approach.
I don't understand what's so complicated about this issue. In justice
systems, we adopt an "innocent until proven guilty" system because you
can't really prove innocence, only guilt. Would it not make sense to use
this tried and tested system when evaluating whether or not a program is
libre? The only argument I've seen on the matter is the way copyright
works, but Chromium is under the Modified BSD License according to
documentation I was able to find. If some files are not actually covered
by this license, or some other license, it would be very easy to simply
point to the file. As far as I know, and correct me if I'm wrong here,
no one in the entire history of this claim about Chromium being
proprietary has ever done so. If I'm wrong about this, though, then it
seems to me that the correct action to take would be to address that
issue, if not upstream, then in a fork.
--
Julie Marchant
http://onpon4.github.io
Encrypt your emails with GnuPG:
https://emailselfdefense.fsf.org
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GNU-linux-libre] [PATCH] gnu: Add ungoogled-chromium.
2019-02-16 14:18 ` Julie Marchant
@ 2019-02-16 15:37 ` Adam Van Ymeren
2019-02-16 19:47 ` Adonay Felipe Nogueira
1 sibling, 0 replies; 13+ messages in thread
From: Adam Van Ymeren @ 2019-02-16 15:37 UTC (permalink / raw)
To: guix-devel, Julie Marchant,
Workgroup for fully free GNU/Linux distributions, Brett Gilio,
bill-auger
On February 16, 2019 9:18:58 AM EST, Julie Marchant <onpon4@riseup.net> wrote:
>On 02/16/2019 05:25 AM, Brett Gilio wrote:
>> I agree with everything Bill said in his message, and I heavily
>> encourage all of us lurking in this mailing list with an opinion on
>the
>> matter to please state your opinion on this controversy and the Guix
>> relationship to the FSDG.
>>
>> The free software guidelines are first and foremost put up by the
>free
>> software community by what is specified to be important to the values
>of
>> free software. This needs to be addressed sooner than later, because
>the
>> act of solidarity on the part of the community here is a tremendously
>> crucial and singular event.
>>
>> I'd like to see the offerings of free software to grow, and include
>> chromium if chromium has a reasonable method of liberation. But there
>is
>> yet to be a complete audit to identify the problems. We can not rely
>> solely on speculation, so lets get to the bottom of this once and for
>> all.
>
>I think that assuming Chromium is no good until something no good is
>found in it is a wrong approach.
>
>I don't understand what's so complicated about this issue. In justice
>systems, we adopt an "innocent until proven guilty" system because you
>can't really prove innocence, only guilt. Would it not make sense to
>use
>this tried and tested system when evaluating whether or not a program
>is
>libre? The only argument I've seen on the matter is the way copyright
>works, but Chromium is under the Modified BSD License according to
>documentation I was able to find. If some files are not actually
>covered
>by this license, or some other license, it would be very easy to simply
>point to the file. As far as I know, and correct me if I'm wrong here,
>no one in the entire history of this claim about Chromium being
>proprietary has ever done so. If I'm wrong about this, though, then it
>seems to me that the correct action to take would be to address that
>issue, if not upstream, then in a fork.
This issue documents some chromium efforts to update to copyright on all files. I haven't looked at the source myself yet but this bug suggests that there are still hundreds to thousand's of files with no clear license.
https://bugs.chromium.org/p/chromium/issues/detail?id=28291
Someone should run their check licenses script again on the latest codebase and see what it reports.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] gnu: Add ungoogled-chromium.
2019-02-16 14:18 ` Julie Marchant
2019-02-16 15:37 ` [GNU-linux-libre] " Adam Van Ymeren
@ 2019-02-16 19:47 ` Adonay Felipe Nogueira
2019-02-16 20:01 ` Brett Gilio
2019-02-16 20:07 ` Alex Griffin
1 sibling, 2 replies; 13+ messages in thread
From: Adonay Felipe Nogueira @ 2019-02-16 19:47 UTC (permalink / raw)
To: Workgroup for fully free GNU/Linux distributions, 28004; +Cc: guix-devel
[-- Attachment #1.1: Type: text/plain, Size: 1683 bytes --]
Em 16/02/2019 12:18, Julie Marchant escreveu:
> libre? The only argument I've seen on the matter is the way copyright
> works, but Chromium is under the Modified BSD License according to
> documentation I was able to find. If some files are not actually covered
For what is worth, what I learned with projects that don't follow the
Open Source Definition (I know that I shouldn't support this term here,
but I had to mention it) is that they mask their non-compliance behind a
license. Of course we don't intend to foster open source here, as this
project, having the goal to provide a package manager that is under the
GNU project, also aims to create a system distribution that follows the
GNU FSDG and uses such package manager
If the norm would be to only check the licenses, then we would have for
example, taken ages to figure out that the kernel source files from
upstream of GNU Linux-libre was/is non-free.
Having a requirement for a package to be first throughly reviewed
eliminates some of the possibility of having non-free functional data or
non-distributable non-functional data. It's not a perfect protection
(since the package in review might have implemented things from other
works that one of the reviewers might not be aware of).
As I said in a message to these mailing lists, I already started
reviewing Chromium, although this project is big and I might not have
the time nor all the skills to do it alone. Since today, I moved the
review, which was available at [1], to the appropriate Review namespace
at [2].
[1] https://directory.fsf.org/wiki/Talk:Chromium
[2] https://directory.fsf.org/wiki/Review:Chromium-REV-ID-1
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 213 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] gnu: Add ungoogled-chromium.
2019-02-16 19:47 ` Adonay Felipe Nogueira
@ 2019-02-16 20:01 ` Brett Gilio
2019-02-16 20:06 ` Brett Gilio
2019-02-16 20:07 ` Alex Griffin
1 sibling, 1 reply; 13+ messages in thread
From: Brett Gilio @ 2019-02-16 20:01 UTC (permalink / raw)
To: Workgroup for fully free GNU/Linux distributions; +Cc: guix-devel, 28004
Adonay Felipe Nogueira writes:
> Em 16/02/2019 12:18, Julie Marchant escreveu:
>> libre? The only argument I've seen on the matter is the way copyright
>> works, but Chromium is under the Modified BSD License according to
>> documentation I was able to find. If some files are not actually covered
>
> For what is worth, what I learned with projects that don't follow the
> Open Source Definition (I know that I shouldn't support this term here,
> but I had to mention it) is that they mask their non-compliance behind a
> license. Of course we don't intend to foster open source here, as this
> project, having the goal to provide a package manager that is under the
> GNU project, also aims to create a system distribution that follows the
> GNU FSDG and uses such package manager
>
> If the norm would be to only check the licenses, then we would have for
> example, taken ages to figure out that the kernel source files from
> upstream of GNU Linux-libre was/is non-free.
>
> Having a requirement for a package to be first throughly reviewed
> eliminates some of the possibility of having non-free functional data or
> non-distributable non-functional data. It's not a perfect protection
> (since the package in review might have implemented things from other
> works that one of the reviewers might not be aware of).
>
> As I said in a message to these mailing lists, I already started
> reviewing Chromium, although this project is big and I might not have
> the time nor all the skills to do it alone. Since today, I moved the
> review, which was available at [1], to the appropriate Review namespace
> at [2].
>
>
> [1] https://directory.fsf.org/wiki/Talk:Chromium
> [2] https://directory.fsf.org/wiki/Review:Chromium-REV-ID-1
Adonay, thank you for taking the initiative here! I think this is a
needed step forward.
Brett Gilio
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] gnu: Add ungoogled-chromium.
2019-02-16 20:01 ` Brett Gilio
@ 2019-02-16 20:06 ` Brett Gilio
2019-02-17 1:39 ` bill-auger
0 siblings, 1 reply; 13+ messages in thread
From: Brett Gilio @ 2019-02-16 20:06 UTC (permalink / raw)
To: Workgroup for fully free GNU/Linux distributions; +Cc: guix-devel, 28004
Brett Gilio writes:
> Adonay Felipe Nogueira writes:
>
>> Em 16/02/2019 12:18, Julie Marchant escreveu:
>>> libre? The only argument I've seen on the matter is the way copyright
>>> works, but Chromium is under the Modified BSD License according to
>>> documentation I was able to find. If some files are not actually covered
>>
>> For what is worth, what I learned with projects that don't follow the
>> Open Source Definition (I know that I shouldn't support this term here,
>> but I had to mention it) is that they mask their non-compliance behind a
>> license. Of course we don't intend to foster open source here, as this
>> project, having the goal to provide a package manager that is under the
>> GNU project, also aims to create a system distribution that follows the
>> GNU FSDG and uses such package manager
>>
>> If the norm would be to only check the licenses, then we would have for
>> example, taken ages to figure out that the kernel source files from
>> upstream of GNU Linux-libre was/is non-free.
>>
>> Having a requirement for a package to be first throughly reviewed
>> eliminates some of the possibility of having non-free functional data or
>> non-distributable non-functional data. It's not a perfect protection
>> (since the package in review might have implemented things from other
>> works that one of the reviewers might not be aware of).
>>
>> As I said in a message to these mailing lists, I already started
>> reviewing Chromium, although this project is big and I might not have
>> the time nor all the skills to do it alone. Since today, I moved the
>> review, which was available at [1], to the appropriate Review namespace
>> at [2].
>>
>>
>> [1] https://directory.fsf.org/wiki/Talk:Chromium
>> [2] https://directory.fsf.org/wiki/Review:Chromium-REV-ID-1
>
> Adonay, thank you for taking the initiative here! I think this is a
> needed step forward.
>
> Brett Gilio
Also, maybe it would be of some help to involve somebody from the FSF to
be a neutral mediator on this process until we come to some reasonable
conclusion?
Marius,
I think you can probably go ahead and push that patch, knowing full well
that Bill warned a bug report will be filed against the Guix source tree
until such time that an audit concludes or Adonay's suggestion is
followed through with.
Bill,
What do you think here?
Brett Gilio
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] gnu: Add ungoogled-chromium.
2019-02-16 20:06 ` Brett Gilio
@ 2019-02-17 1:39 ` bill-auger
2019-02-17 22:33 ` [GNU-linux-libre] " Ricardo Wurmus
0 siblings, 1 reply; 13+ messages in thread
From: bill-auger @ 2019-02-17 1:39 UTC (permalink / raw)
To: gnu-linux-libre; +Cc: guix-devel
On Sat, 16 Feb 2019 14:06:43 -0600 Brett wrote:
> I think you can probably go ahead and push that patch
> Bill, What do you think here?
i think that would be intentionally creating exactly the same
unpleasant situation as the pureos bug report that stood for many
months, unaddressed
i think that IF this is the proper course of action, then we
should apologize to pureos for asking them to remove it last year
but let me rephrase that more plainly:
if we do not FIRSTLY apologize to pureos for asking them to remove
chromium and publicly endorse them to re-instate it, then endorsing it
into guix would be hypocritical and shameful
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GNU-linux-libre] [PATCH] gnu: Add ungoogled-chromium.
2019-02-17 1:39 ` bill-auger
@ 2019-02-17 22:33 ` Ricardo Wurmus
2019-02-18 12:05 ` bill-auger
0 siblings, 1 reply; 13+ messages in thread
From: Ricardo Wurmus @ 2019-02-17 22:33 UTC (permalink / raw)
To: bill-auger; +Cc: guix-devel, gnu-linux-libre
bill-auger <bill-auger@peers.community> writes:
> if we do not FIRSTLY apologize to pureos for asking them to remove
> chromium and publicly endorse them to re-instate it, then endorsing it
> into guix would be hypocritical and shameful
I find this use of “we” confusing.
I don’t feel motivated to apologize to the people involved in PureOS
because I wasn’t around when they were pressured / convinced to drop
Chromium. I don’t know if any of the regular Guix contributors have.
In day to day Guix activities, we don’t ask developers of other distros
that also happen to subscribe to the FSDG to reach consensus before
making project decisions. You are suggesting that FSDG distros form a
community beyond the sense that they abide by the same guidelines. I
don’t think that’s reflecting reality. It’s another thing to discuss if
this should be so.
With regards to the Chromium upstream bug report about the license
script and the suggestion that upstream doesn’t know what license their
code has, I’m satisfied with this comment:
https://bugs.chromium.org/p/chromium/issues/detail?id=28291#c31
The script appears to be not very successful in detecting valid license
declarations in third party code. FWIW, in my opinion it would be
unreasonable to further delay Marius’s work from becoming part of Guix.
I see no violation of the FSDG here.
--
Ricardo
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GNU-linux-libre] [PATCH] gnu: Add ungoogled-chromium.
2019-02-17 22:33 ` [GNU-linux-libre] " Ricardo Wurmus
@ 2019-02-18 12:05 ` bill-auger
2019-02-18 12:15 ` Hartmut Goebel
2019-02-18 13:44 ` Tobias Geerinckx-Rice
0 siblings, 2 replies; 13+ messages in thread
From: bill-auger @ 2019-02-18 12:05 UTC (permalink / raw)
To: gnu-linux-libre; +Cc: guix-devel
On Sun, 17 Feb 2019 23:33:06 +0100 Ricardo wrote:
> I don’t feel motivated to apologize to the people involved in PureOS
> because I wasn’t around when they were pressured / convinced to drop
> Chromium.
no, but you could have been around - you also could have argued for
pureos on their side of the debate, and perhaps won favor for chromium
at that time; so that none of us would need to be discussing it today,
nor ever again - but unfortunately, it is true, you did not do that -
so here we are today, raking this ugly old thing out of the mud once
again
On Sun, 17 Feb 2019 23:33:06 +0100 Ricardo wrote:
> In day to day Guix activities, we don’t ask developers of other
> distros that also happen to subscribe to the FSDG to reach consensus
> before making project decisions.
of course every distro should have complete autonomy, especially for
decisions that only pertain to that one distro - i am only considering
the most fundamental decisions that obviously affect all distros
equally, and reflect upon the integrity of the FSDG itself, such as
which software is FSDG-free and which are not (and clarifying why or
why not, and ideally, offering specific guidance for acceptably
liberating the most common or troublesome ones) - if we can not all
agree on that single most central concern to the FSDG, then what
exactly is the value of the FSDG anyways?
On Sun, 17 Feb 2019 23:33:06 +0100 Ricardo wrote:
> You are suggesting that FSDG
> distros form a community beyond the sense that they abide by the same
> guidelines. I don’t think that’s reflecting reality. It’s another
> thing to discuss if this should be so.
yes - awesome!! - that is exactly what i have been proposing and
working toward for a long time - in this case, not as just "another
thing to discuss"; but it is *the* sole reason that i raised this issue
with guix at this time (last september actually[1])
i have repeated it over and over again, that i couldnt care less about
the chromium program, specifically - i want to discuss only and exactly
this: enticing all FSDG distros to collaborate toward the achievement
of common goals and solutions to common problems; as to avoid both
redundant efforts and the presenting of conflicting philosophies to
users, regarding the nature and essence of "free software" - the
chromium program is not itself a fundamental problem, but one, albeit
notorious, example of a common problem that affects all FSDG distros,
and has been addressed by the group for the purpose of presenting a
uniform message regarding it's FSDG status
it would be a beautiful thing to have vigorous cross-distro
collaboration as a focal point of the FSDG itself, very much in the
collaborative spirit of GNU; and i think that most of the distros are
already on board with that idea as a worthwhile plan, and have always
been participating on the FSDG mailing list under that presumption -
last year's re-structuring of the incoming distros community evaluation
process was a concrete step in that direction
"reality" is only what we make of it - if you see the FSDG as nothing
more than a trophy or badge that you earned once upon a time, a
milestone that need not be any concerned ever more after, then that
is the reality you will have - the FSF does not want to mandate that
anyone participate in the on-going group discussions; but it is a very
good idea to show that the FSDG distros behave as a community of
siblings by, at the very least, presenting a uniform stance on shared
freedom issues
On Sun, 17 Feb 2019 23:33:06 +0100 Ricardo wrote:
> I see no violation of the FSDG here.
that is not news, Ricardo - no one sees any obvious licensing violation
of the FSDG; not today, nor a year ago, nor five years ago - if there
were any known, they could have (and probably would have) been
addressed long ago, and maybe we would not be discussing this now - the
only clear FSDG problem today is the new one that guix is making for all
other distros that are trying to be compliant with the FSDG as it is
written, by intentionally doing something that is explicitly against
the written recommendation - the "as it is written" part is perhaps
dubious; but it is the keystone of a long-standing FSDG anomaly, and
guix is in a very good position to help resolve that once and for all,
for the benefit of all
whether anyone likes it or not, adding chromium into any FSDG distro
today, is in direct conflict with that pesky: "what is written" - the
solution is almost certainly, that it needs to be re-written; but there
is not yet anything to over-write it with - "i see no problem" is
clearly not sufficient - we all know it has FSDG problems; and the
current wording will remain until someone who cares about chromium
offers a convincing liberation procedure to replace it as the FSDG
recommendation
we are asking for your help with this, for the benefit of all FSDG
distros and their users, present and future, because it is only guix
that claims to have any new information about chromium, and guix is
probably the only distro that wants this program to be considered as
FSDG-free badly enough to do anything about it; but all we have seen so
far, are sentiments plainly discounting the validity of the request
like: "i dont see any problem", "i dont feel compelled to address
this", and "sorry, i dont remember how i did it" - not only is that
indifference leaving the others to remain in this quagmire that we have
been in for years; but pushing this through while knowing that this
conflict exists, is making it more uncomfortable than it needs to be
going forward, especially if no one from guix plans to help resolve the
conflict in a timely manor
whether or not guix considers itself to be part of the larger
FSDG community, you should realize that we do exist as such, and that
this particular action by guix is forcing a wedge into a small, but
visible crack in the foundation of FSDG itself; which has negative
repercussion on those who would be your allies, and creates a strong
point of contention for any new distro that comes along
[1]: https://lists.gnu.org/archive/html/guix-devel/2018-09/msg00264.html
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GNU-linux-libre] [PATCH] gnu: Add ungoogled-chromium.
2019-02-18 12:05 ` bill-auger
@ 2019-02-18 12:15 ` Hartmut Goebel
2019-02-18 13:44 ` Tobias Geerinckx-Rice
1 sibling, 0 replies; 13+ messages in thread
From: Hartmut Goebel @ 2019-02-18 12:15 UTC (permalink / raw)
To: guix-devel
Am 18.02.19 um 13:05 schrieb bill-auger:
> no, but you could have been around -
InvalidArgementError
--
Regards
Hartmut Goebel
| Hartmut Goebel | h.goebel@crazy-compilers.com |
| www.crazy-compilers.com | compilers which you thought are impossible |
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GNU-linux-libre] [PATCH] gnu: Add ungoogled-chromium.
2019-02-18 12:05 ` bill-auger
2019-02-18 12:15 ` Hartmut Goebel
@ 2019-02-18 13:44 ` Tobias Geerinckx-Rice
2019-02-18 19:22 ` Simon Nielsen
1 sibling, 1 reply; 13+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-02-18 13:44 UTC (permalink / raw)
To: guix-devel; +Cc: gnu-linux-libre
bill-auger wrote:
> On Sun, 17 Feb 2019 23:33:06 +0100 Ricardo wrote:
>> I don’t feel motivated to apologize to the people involved in
>> PureOS
>> because I wasn’t around when they were pressured / convinced to
>> drop
>> Chromium.
>
> no, but you could have been around - you also could have argued
> for
> pureos on their side of the debate, and perhaps won favor for
> chromium
> at that time; so that none of us would need to be discussing it
> today,
> nor ever again - but unfortunately, it is true, you did not do
> that -
> so here we are today, raking this ugly old thing out of the mud
> once
> again
If this is the quality of argument that ‘won’ over PureOS, it's
blaming Guix/Ricardo for not being around to stop others from
being bullied.
Kind regards,
T G-R
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] gnu: Add ungoogled-chromium.
2019-02-18 13:44 ` Tobias Geerinckx-Rice
@ 2019-02-18 19:22 ` Simon Nielsen
2019-02-19 20:45 ` [GNU-linux-libre] " bill-auger
0 siblings, 1 reply; 13+ messages in thread
From: Simon Nielsen @ 2019-02-18 19:22 UTC (permalink / raw)
To: Tobias Geerinckx-Rice, guix-devel@gnu.org; +Cc: gnu-linux-libre@nongnu.org
18.02.2019, 14:44, "Tobias Geerinckx-Rice" <somebody@not-sent-or-endorsed-by.tobias.gr>:
> If this is the quality of argument that ‘won’ over PureOS, it's
> blaming Guix/Ricardo for not being around to stop others from
> being bullied.
>
> Kind regards,
>
> T G-R
Hi Tobias,
I've been reading this conversation from the outside but noticed it seems to be shifting to a meta
rather than about the state of chromium itself so it would be nice if it went back on topic.
Seeing as the issue here relates to being uncertain shouldn't upstream confirm which parts run
under what license in more detail? As I can tell so far this hasn't been done (unless I've missed
something) thus the current situation.
So the choice here is really about following the FSDG for now until it's revised or going against it
causing a split in the community around it. Guix would be in the right but depending on the result
there's a chance for a negative return (or a positive one). Are most here sure which direction it
will go? From just reading the snippets about PureOS they seemed to have gotten quite a bit of
flack until it was removed, won't the same happen to Guix?
I've enjoyed using Guix for a bit over a year now and will continue regardless of the outcome.
I apologize if this email is in conflict with the standard format as I usually don't engage in responding
to mailing lists so my interpretation of the desired style might not be as accurate as of yet.
Thank you
Simon Nielsen
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GNU-linux-libre] [PATCH] gnu: Add ungoogled-chromium.
2019-02-18 19:22 ` Simon Nielsen
@ 2019-02-19 20:45 ` bill-auger
0 siblings, 0 replies; 13+ messages in thread
From: bill-auger @ 2019-02-19 20:45 UTC (permalink / raw)
To: guix-devel
On Mon, 18 Feb 2019 20:22:20 +0100 Simon wrote:
> seems to be shifting to a meta rather than about the state of
> chromium itself
simon - i would like to explain that the reason for that confusion, is
because this thread got cross-posted on multiple mailing lists
the chromium browser is the topic of the thread on the guix mailing
list - but that "meta" divergence as you described it, is entirely the
purpose of the FSDG workgroup - the central concern on that list
today, is not chromium itself, but is enticing guix to discuss what has
been done to liberate chromium with the group; so that the recipe can
be peer reviewed and possibly be recommended to other distros
the folks reading the FSDG list would not describe that as a
divergence, but as the latest attempt to make progress on a long
standing problem that affects all FSDG distros equally
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GNU-linux-libre] [PATCH] gnu: Add ungoogled-chromium.
2019-02-16 19:47 ` Adonay Felipe Nogueira
2019-02-16 20:01 ` Brett Gilio
@ 2019-02-16 20:07 ` Alex Griffin
2019-02-17 1:49 ` bill-auger
1 sibling, 1 reply; 13+ messages in thread
From: Alex Griffin @ 2019-02-16 20:07 UTC (permalink / raw)
To: guix-devel
On Sat, Feb 16, 2019, at 7:48 PM, Adonay Felipe Nogueira wrote:
> If the norm would be to only check the licenses, then we would have for
> example, taken ages to figure out that the kernel source files from
> upstream of GNU Linux-libre was/is non-free.
The Linux kernel was included in GNU distributions until a concrete problem was identified, exactly the opposite of what is being demanded here. AFAICT Marius has expended quite a bit of effort to resolve every known problem with the package, and what is left is literally just FUD (fear, uncertainty, doubt).
--
Alex Griffin
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GNU-linux-libre] [PATCH] gnu: Add ungoogled-chromium.
2019-02-16 20:07 ` Alex Griffin
@ 2019-02-17 1:49 ` bill-auger
0 siblings, 0 replies; 13+ messages in thread
From: bill-auger @ 2019-02-17 1:49 UTC (permalink / raw)
To: guix-devel
Alex -
you are really mis-characterizing the situation here - this really has
very little to do with chromium specifically - the problem is when some
FSDG distro decide for themselves that *any* program qualifies as "free
software" when the others have agreed that it does not - this plants the
seeds for an uncomfortable family fued which could be best avoided
i dont know that anyone really cares enough about this browser to
waste their time spreading FUD about it - we just want everyone to
agree whether it is "free software" or it is not, and for all FSDG
distros to endorse or OR reject as a unified group - whichever the case
may actually be is not central to the discussion
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] gnu: Add ungoogled-chromium.
2019-02-16 8:00 ` bill-auger
2019-02-16 10:25 ` Brett Gilio
@ 2019-02-16 15:50 ` Marius Bakke
2019-02-16 16:20 ` [GNU-linux-libre] " Amin Bandali
1 sibling, 1 reply; 13+ messages in thread
From: Marius Bakke @ 2019-02-16 15:50 UTC (permalink / raw)
To: bill-auger, gnu-linux-libre; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 3699 bytes --]
bill-auger <bill-auger@peers.community> writes:
> On Mon, 04 Feb 2019 23:34:45 +0100 Ludovic wrote:
>> It’s not entirely clear to me what the problems are, to be honest.
>
> On Wed, 06 Feb 2019 22:04:59 +0100 Marius wrote:
>> Indeed, the only real breakthrough is that we now have a script to
>> create an Ungooglified source tarball with all unnecessary third_party
>> components removed.
>> I am of course happy to help other FSDG distributions liberate their
>> Chromium too.
>
> it is not clear to *anyone* precisely what the licensing problems are -
> not even the upstream developers have been able to confirm or deny them
> with any certainty - that is the very reason why this ugly situation has
> been standing all these years, as yet unresolved
>
> by your own admittance there, you have not "liberated" chromium - you
> have "ungooglified" it, and discarded some non-essential third-party
> code - the work of the "ungoogled" and "iridium" teams has been
> discussed at length and was concluded to be insufficient as a liberation
> procedure, because their work only addresses proivacy issues, but not
> licensing - "liberation" would first require *something* that is not
> FSDG compliant to be identified as such, and *then* for that something
> to be removed or patched in order to be compliant - neither of those
> events has occurred, and we all know it - that is the very reason this
> situation has stood unresolved for so long
>
> so, this recent work done by guix is not a resolution to the problem -
> it is merely sweeping the problem under the rug, rather than confronting
> it at face value, as Adfeno has been suggesting
For the benefit of everyone following this discussion, I'll summarize
the problems with Chromium and how they are addressed by my patch.
1) Chromium is non-free.
The raw Chromium tarball contains a lot of software that is non-free.
Heck, it's not even possible to build it without the proprietary Unrar
program unless you patch it!
Luckily, these non-free components are in various "third_party"
directories. Thus, it is possible to traverse the tarball and remove
all such parts that are not already audited and whitelisted. Which is
exactly what my patch does.
Despite years of searching, I have not found any proprietary parts in
first party code! I cannot prove this obviously; but proving the
contrary should be trivial.
Thus, I surmise that the code is indeed free --- I would not have
submitted it for Guix if I had the slightest doubt to the contrary.
2) Chromium spies on the user.
Just starting the browser in the default configuration will cause it to
submit traffic to Google. The exact nature of this data is unclear, but
such behaviour is clearly not something fit for a GNU distribution.
Ungoogled-Chromium solves this by 1) patching out all non-essential
functionality (such as "safe browsing" and web store integration); and
2) performing a tree-wide "domain substitution" such that all Google
(and some more) domains are replaced with a bogus "9oo91e.qjz9zk" domain.
I have verified that the browser sends no unsolicited network requests
when launching or during usage after applying the Ungoogled patches,
something I never managed with the "normal" free Chromium no matter how
many flags or patches I tried.
Thus, I surmise that this browser does indeed protect the users privacy.
------------------------------------------------------------------------
Since there have been no coherent arguments against this browser in the
two weeks since it was submitted, I plan to push this patch *tomorrow*.
Thanks for the feedback,
Marius
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GNU-linux-libre] [PATCH] gnu: Add ungoogled-chromium.
2019-02-16 15:50 ` Marius Bakke
@ 2019-02-16 16:20 ` Amin Bandali
0 siblings, 0 replies; 13+ messages in thread
From: Amin Bandali @ 2019-02-16 16:20 UTC (permalink / raw)
To: Marius Bakke; +Cc: guix-devel, gnu-linux-libre
Marius, if I understand correctly, you have summarized your patch with
respect to the following two issues:
1. Your patch strips out parts of Chromium that are /clearly/ nonfree
and proprietary (e.g. unrar per your example), and
2. Your patch addresses (or tries to) privacy concerns.
But as far as I can tell, you have not addressed the concerns shared by
Bill and others about the situation with files in the Chromium codebase
that don’t have a clear license. So I’ll try to repeat/rephrase their
question(s): does your patch address the files with unclear license?
Does it strip out those files that don’t have a clear license? Can we
be certain that the Chromium built from your patch explicitly *only*
contained free software?
Best,
amin
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2019-02-19 20:46 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-16 18:46 [GNU-linux-libre] [PATCH] gnu: Add ungoogled-chromium Clément Lassieur
-- strict thread matches above, loose matches on Subject: below --
2019-02-02 19:20 Marius Bakke
2019-02-03 18:16 ` Joshua Branson
2019-02-04 4:52 ` bill-auger
2019-02-04 12:26 ` [GNU-linux-libre] " Julie Marchant
2019-02-04 15:03 ` bill-auger
2019-02-04 22:34 ` Ludovic Courtès
2019-02-06 21:04 ` [GNU-linux-libre] " Marius Bakke
2019-02-07 23:52 ` Christopher Lemmer Webber
2019-02-16 8:00 ` bill-auger
2019-02-16 10:25 ` Brett Gilio
2019-02-16 14:18 ` Julie Marchant
2019-02-16 15:37 ` [GNU-linux-libre] " Adam Van Ymeren
2019-02-16 19:47 ` Adonay Felipe Nogueira
2019-02-16 20:01 ` Brett Gilio
2019-02-16 20:06 ` Brett Gilio
2019-02-17 1:39 ` bill-auger
2019-02-17 22:33 ` [GNU-linux-libre] " Ricardo Wurmus
2019-02-18 12:05 ` bill-auger
2019-02-18 12:15 ` Hartmut Goebel
2019-02-18 13:44 ` Tobias Geerinckx-Rice
2019-02-18 19:22 ` Simon Nielsen
2019-02-19 20:45 ` [GNU-linux-libre] " bill-auger
2019-02-16 20:07 ` Alex Griffin
2019-02-17 1:49 ` bill-auger
2019-02-16 15:50 ` Marius Bakke
2019-02-16 16:20 ` [GNU-linux-libre] " Amin Bandali
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).