gnu: ungoogled-chromium: Convert computed origin to source snippet.
* gnu/packages/chromium.scm (computed-origin-method, %chromium-origin): Remove. (ungoogled-chromium-source): Rename to ... (ungoogled-chromium-snippet): ... this. Adjust for running as snippet. (ungoogled-chromium)[source]: Use URL-FETCH, with custom snippet.
This commit is contained in:
parent
e4e9a1bc35
commit
7eb8ae5f6c
|
@ -248,19 +248,6 @@ (define %preserved-third-party-files
|
|||
"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)
|
||||
#:graft? #f ;nothing to graft
|
||||
#:system system
|
||||
#:guile-for-build guile)))
|
||||
|
||||
(define %chromium-version "83.0.4103.116")
|
||||
(define %ungoogled-revision "f08ce8b3f1300ef0750b5d6bf967b9cbbfd9a56d")
|
||||
(define %debian-revision "debian/81.0.4044.92-1")
|
||||
|
@ -328,16 +315,6 @@ (define %debian-patches
|
|||
(debian-patch "system/openjpeg.patch" %debian-revision
|
||||
"0zd6v5njx1pc7i0y6mslxvpx5j4cq01mmyx55qcqx8qzkm0gm48j")))
|
||||
|
||||
(define %chromium-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://commondatastorage.googleapis.com"
|
||||
"/chromium-browser-official/chromium-"
|
||||
%chromium-version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1hravbi1lazmab2mih465alfzji1kzy38zya1visbwz9zs6pw35v"))))
|
||||
|
||||
(define %ungoogled-origin
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -349,106 +326,69 @@ (define %ungoogled-origin
|
|||
(base32
|
||||
"0kc40p8f7cls696gh6ign37l8j4x1pyyz32jkkli9cmrpbsjsadl"))))
|
||||
|
||||
;; This is a "computed" origin that does the following:
|
||||
;; *) Runs the Ungoogled scripts on a pristine Chromium tarball.
|
||||
;; *) Applies Debians Chromium patches, for their unbundling and GCC work.
|
||||
;; This is a source 'snippet' that does the following:
|
||||
;; *) Applies various patches for unbundling purposes and libstdc++ compatibility.
|
||||
;; *) Runs the ungoogled patch-, domain substitution-, and scrubbing scripts.
|
||||
;; *) Prunes all third_party directories that are not explicitly preserved.
|
||||
;; *) Adjusts "GN" build files such that system libraries are preferred.
|
||||
(define ungoogled-chromium-source
|
||||
(let ((chromium-source %chromium-origin)
|
||||
(ungoogled-source %ungoogled-origin))
|
||||
(origin
|
||||
(method computed-origin-method)
|
||||
(file-name (string-append "ungoogled-chromium-" %package-version ".tar.xz"))
|
||||
(sha256 #f)
|
||||
(uri
|
||||
(delay
|
||||
(with-imported-modules '((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 rdelim)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26))
|
||||
(let ((chromium-dir (string-append "chromium-" #$%chromium-version))
|
||||
(preserved-files '#$%preserved-third-party-files))
|
||||
(define ungoogled-chromium-snippet
|
||||
;; Note: delay to cope with cyclic module imports at the top level.
|
||||
(delay
|
||||
#~(begin
|
||||
(let ((chromium-dir (getcwd)))
|
||||
(set-path-environment-variable
|
||||
"PATH" '("bin")
|
||||
(list #+patch #+python-wrapper #+xz))
|
||||
|
||||
(set-path-environment-variable
|
||||
"PATH" '("bin")
|
||||
(list #+(canonical-package patch)
|
||||
#+(canonical-package xz)
|
||||
#+(canonical-package tar)
|
||||
#+python-wrapper))
|
||||
(format #t "Removing non-free file...~%")
|
||||
(force-output)
|
||||
;; This file has a CC-BY-NC clause according to LICENSES from
|
||||
;; the same directory, making it non-free.
|
||||
(delete-file
|
||||
"third_party/blink/perf_tests/svg/resources/HarveyRayner.svg")
|
||||
|
||||
(copy-recursively #+ungoogled-source "/tmp/ungoogled")
|
||||
;; Apply patches before running the ungoogled scripts because
|
||||
;; domain substitution may break some of the patches.
|
||||
(format #t "Applying assorted build fixes...~%")
|
||||
(force-output)
|
||||
(for-each (lambda (patch)
|
||||
(invoke "patch" "-p1" "--force" "--input"
|
||||
patch "--no-backup-if-mismatch"))
|
||||
(append
|
||||
'#+%gentoo-patches '#+%debian-patches
|
||||
'#+(list (local-file
|
||||
(search-patch
|
||||
"ungoogled-chromium-system-jsoncpp.patch"))
|
||||
(local-file
|
||||
(search-patch
|
||||
"ungoogled-chromium-system-zlib.patch")))))
|
||||
|
||||
(with-directory-excursion "/tmp/ungoogled"
|
||||
(with-directory-excursion #+%ungoogled-origin
|
||||
(format #t "Ungooglifying...~%")
|
||||
(force-output)
|
||||
(invoke "python" "utils/prune_binaries.py" chromium-dir
|
||||
"pruning.list")
|
||||
(invoke "python" "utils/patches.py" "apply"
|
||||
chromium-dir "patches")
|
||||
(invoke "python" "utils/domain_substitution.py" "apply" "-r"
|
||||
"domain_regex.list" "-f" "domain_substitution.list"
|
||||
"-c" "/tmp/domainscache.tar.gz" chromium-dir))
|
||||
|
||||
(format #t "Unpacking chromium tarball...~%")
|
||||
(force-output)
|
||||
(invoke "tar" "xf" #+chromium-source)
|
||||
(format #t "Pruning third party files...~%")
|
||||
(force-output)
|
||||
(apply invoke (string-append #+python-2 "/bin/python")
|
||||
"build/linux/unbundle/remove_bundled_libraries.py"
|
||||
"--do-remove" '#$%preserved-third-party-files)
|
||||
|
||||
(with-directory-excursion chromium-dir
|
||||
(format #t "Removing non-free file...~%")
|
||||
(force-output)
|
||||
;; This file has a CC-BY-NC clause according to LICENSES from
|
||||
;; the same directory, making it non-free.
|
||||
(delete-file
|
||||
"third_party/blink/perf_tests/svg/resources/HarveyRayner.svg")
|
||||
|
||||
;; Apply patches before running the ungoogled scripts because
|
||||
;; domain substitution may break some of the patches.
|
||||
(format #t "Applying assorted build fixes...~%")
|
||||
(force-output)
|
||||
(for-each
|
||||
(lambda (patch)
|
||||
(invoke "patch" "-p1" "--force" "--input"
|
||||
patch "--no-backup-if-mismatch"))
|
||||
(append
|
||||
'#+%gentoo-patches '#+%debian-patches
|
||||
'#+(list (local-file
|
||||
(search-patch
|
||||
"ungoogled-chromium-system-jsoncpp.patch"))
|
||||
(local-file
|
||||
(search-patch
|
||||
"ungoogled-chromium-system-zlib.patch"))))))
|
||||
|
||||
(format #t "Ungooglifying...~%")
|
||||
(force-output)
|
||||
(invoke "python" "utils/prune_binaries.py" chromium-dir
|
||||
"pruning.list")
|
||||
(invoke "python" "utils/patches.py" "apply"
|
||||
chromium-dir "patches")
|
||||
(invoke "python" "utils/domain_substitution.py" "apply" "-r"
|
||||
"domain_regex.list" "-f" "domain_substitution.list"
|
||||
"-c" "/tmp/domainscache.tar.gz" chromium-dir)
|
||||
|
||||
(with-directory-excursion chromium-dir
|
||||
(format #t "Pruning third party files...~%")
|
||||
(force-output)
|
||||
(apply invoke (string-append #+python-2 "/bin/python")
|
||||
"build/linux/unbundle/remove_bundled_libraries.py"
|
||||
"--do-remove" preserved-files)
|
||||
|
||||
(format #t "Replacing GN files...~%")
|
||||
(force-output)
|
||||
(invoke "python" "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 "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)))))))))
|
||||
(format #t "Replacing GN files...~%")
|
||||
(force-output)
|
||||
(invoke "python" "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")
|
||||
#t))))
|
||||
|
||||
(define opus+custom
|
||||
(package/inherit opus
|
||||
|
@ -467,7 +407,16 @@ (define-public ungoogled-chromium
|
|||
(name "ungoogled-chromium")
|
||||
(version %package-version)
|
||||
(synopsis "Graphical web browser")
|
||||
(source ungoogled-chromium-source)
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://commondatastorage.googleapis.com"
|
||||
"/chromium-browser-official/chromium-"
|
||||
%chromium-version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1hravbi1lazmab2mih465alfzji1kzy38zya1visbwz9zs6pw35v"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet (force ungoogled-chromium-snippet))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
|
|
Loading…
Reference in a new issue