all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#54725] [PATCH 0/2] LLVM 14 and Chromium 99
@ 2022-04-05 12:18 Marius Bakke
  2022-04-05 12:20 ` [bug#54725] [PATCH 1/2] gnu: LLVM, Clang: Add 14.0.0 Marius Bakke
  2022-04-07 21:19 ` bug#54725: [PATCH 0/2] LLVM 14 and Chromium 99 Marius Bakke
  0 siblings, 2 replies; 4+ messages in thread
From: Marius Bakke @ 2022-04-05 12:18 UTC (permalink / raw)
  To: 54725

Long time no see...  I have been battling poor health and injuries for
a while, but am slowly recovering.

First on my agenda is a long-overdue Chromium update.  It requires a newer
LLVM, which can not be built from individual tarballs due to
<https://github.com/llvm/llvm-project/issues/53281> and other problems
(likely fixed in 14.0.1).

This patch makes small adjustments to the LLVM and Clang build procedures
so they can be built from the LLVM "monorepo" instead of tarballs.

Feedback wanted!  I'm hoping to "fast track" these patches as Chromium 100
is already released with another slew of security fixes.  I will start
working on that next.

Marius Bakke (2):
  gnu: LLVM, Clang: Add 14.0.0.
  gnu: ungoogled-chromium: Update to 99.0.4844.84-1.

 gnu/local.mk                                  |   1 +
 gnu/packages/chromium.scm                     |  34 ++-
 gnu/packages/llvm.scm                         | 229 ++++++++++++------
 .../patches/clang-14.0-libc-search-path.patch |  94 +++++++
 gnu/packages/zig.scm                          |   2 +-
 5 files changed, 280 insertions(+), 80 deletions(-)
 create mode 100644 gnu/packages/patches/clang-14.0-libc-search-path.patch

-- 
2.34.0





^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#54725] [PATCH 1/2] gnu: LLVM, Clang: Add 14.0.0.
  2022-04-05 12:18 [bug#54725] [PATCH 0/2] LLVM 14 and Chromium 99 Marius Bakke
@ 2022-04-05 12:20 ` Marius Bakke
  2022-04-05 12:20   ` [bug#54725] [PATCH 2/2] gnu: ungoogled-chromium: Update to 99.0.4844.84-1 Marius Bakke
  2022-04-07 21:19 ` bug#54725: [PATCH 0/2] LLVM 14 and Chromium 99 Marius Bakke
  1 sibling, 1 reply; 4+ messages in thread
From: Marius Bakke @ 2022-04-05 12:20 UTC (permalink / raw)
  To: 54725

* gnu/packages/llvm.scm (%llvm-monorepo-hashes, %llvm-patches, llvm-monorepo):
New variables.
(clang-runtime-from-llvm): Make HASH optional; use monorepo when not present.
(clang-from-llvm): Likewise.
(llvm-14, clang-runtime-14, clang-14, clang-toolchain-14, lld-14): New variables.
(llvm-13): Inherit from LLVM-14.
(lld-13): Inherit from LLD-14.
(lld): Turn into alias for LLD-14.
* gnu/packages/patches/clang-14.0-libc-search-path.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/zig.scm (zig): Change from LLD to LLD-13.
---
 gnu/local.mk                                  |   1 +
 gnu/packages/llvm.scm                         | 229 ++++++++++++------
 .../patches/clang-14.0-libc-search-path.patch |  94 +++++++
 gnu/packages/zig.scm                          |   2 +-
 4 files changed, 255 insertions(+), 71 deletions(-)
 create mode 100644 gnu/packages/patches/clang-14.0-libc-search-path.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 60ee713508..df8bbc9fbc 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -950,6 +950,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/clang-11.0-libc-search-path.patch	\
   %D%/packages/patches/clang-12.0-libc-search-path.patch	\
   %D%/packages/patches/clang-13.0-libc-search-path.patch	\
+  %D%/packages/patches/clang-14.0-libc-search-path.patch	\
   %D%/packages/patches/clang-runtime-asan-build-fixes.patch	\
   %D%/packages/patches/clang-runtime-esan-build-fixes.patch	\
   %D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch	\
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index eb949bed1b..0011faa50f 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -108,17 +108,21 @@ (define (llvm-uri component version)
 (define %llvm-release-monitoring-url
   "https://github.com/llvm/llvm-project/releases")
 
-(define* (clang-runtime-from-llvm llvm hash
-                                  #:optional (patches '()))
+(define* (clang-runtime-from-llvm llvm
+                                  #:optional
+                                  hash
+                                  (patches '()))
   (package
     (name "clang-runtime")
     (version (package-version llvm))
     (source
-     (origin
-       (method url-fetch)
-       (uri (llvm-uri "compiler-rt" version))
-       (sha256 (base32 hash))
-       (patches (map search-patch patches))))
+     (if hash
+         (origin
+           (method url-fetch)
+           (uri (llvm-uri "compiler-rt" version))
+           (sha256 (base32 hash))
+           (patches (map search-patch patches)))
+         (llvm-monorepo (package-version llvm))))
     (build-system cmake-build-system)
     (native-inputs (package-native-inputs llvm))
     (inputs
@@ -162,7 +166,8 @@ (define* (clang-runtime-from-llvm llvm hash
     ;; <https://compiler-rt.llvm.org/> doesn't list MIPS as supported.
     (supported-systems (delete "mips64el-linux" %supported-systems))))
 
-(define* (clang-from-llvm llvm clang-runtime hash
+(define* (clang-from-llvm llvm clang-runtime
+                          #:optional hash
                           #:key (patches '()) tools-extra
                           (properties
                            (append `((release-monitoring-url
@@ -176,14 +181,16 @@ (define* (clang-from-llvm llvm clang-runtime hash
     (name "clang")
     (version (package-version llvm))
     (source
-     (origin
-       (method url-fetch)
-       (uri (llvm-uri (if (version>=? version "9.0.1")
-                                   "clang"
-                                   "cfe")
-                               version))
-       (sha256 (base32 hash))
-       (patches (map search-patch patches))))
+     (if hash
+         (origin
+           (method url-fetch)
+           (uri (llvm-uri (if (version>=? version "9.0.1")
+                              "clang"
+                              "cfe")
+                          version))
+           (sha256 (base32 hash))
+           (patches (map search-patch patches)))
+         (llvm-monorepo (package-version llvm))))
     ;; Using cmake allows us to treat llvm as an external library.  There
     ;; doesn't seem to be any way to do this with clang's autotools-based
     ;; build system.
@@ -519,17 +526,27 @@ (define (make-clang-toolchain clang)
               ("libc-debug" ,glibc "debug")
               ("libc-static" ,glibc "static")))))
 
-(define-public llvm-13
+(define %llvm-monorepo-hashes
+  '(("14.0.0" . "1ixqzjzq4ad3mv1w44gwcg1shy34c2b3i9ja71vx1wa7l2ms2376")))
+
+(define %llvm-patches
+  '(("14.0.0" . ("clang-14.0-libc-search-path.patch"))))
+
+(define (llvm-monorepo version)
+  (origin
+    (method git-fetch)
+    (uri (git-reference
+          (url "https://github.com/llvm/llvm-project")
+          (commit (string-append "llvmorg-" version))))
+    (file-name (git-file-name "llvm-project" version))
+    (sha256 (base32 (assoc-ref %llvm-monorepo-hashes version)))
+    (patches (map search-patch (assoc-ref %llvm-patches version)))))
+
+(define-public llvm-14
   (package
     (name "llvm")
-    (version "13.0.1")
-    (source
-     (origin
-      (method url-fetch)
-      (uri (llvm-uri "llvm" version))
-      (sha256
-       (base32
-        "0d681xiixmx9inwvz14vi3xsznrcryk06a8rvk9cljiq5kc80szc"))))
+    (version "14.0.0")
+    (source (llvm-monorepo version))
     (build-system cmake-build-system)
     (outputs '("out" "opt-viewer"))
     (native-inputs
@@ -538,42 +555,46 @@ (define-public llvm-13
     (inputs
      (list libffi))
     (propagated-inputs
-     (list zlib))                 ;to use output from llvm-config
+     (list zlib))                       ;to use output from llvm-config
     (arguments
-     `(#:configure-flags
-       ,#~(quasiquote
-           ;; These options are required for cross-compiling LLVM according to
-           ;; https://llvm.org/docs/HowToCrossCompileLLVM.html.
-           (#$@(if (%current-target-system)
-                   #~(,(string-append "-DLLVM_TABLEGEN="
-                                      #+(file-append this-package
-                                                     "/bin/llvm-tblgen"))
-                      #$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE="
-                                       (%current-target-system))
-                      #$(string-append "-DLLVM_TARGET_ARCH="
-                                       (system->llvm-target))
-                      #$(string-append "-DLLVM_TARGETS_TO_BUILD="
-                                       (system->llvm-target)))
-                   #~())
-            "-DCMAKE_SKIP_BUILD_RPATH=FALSE"
-            "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
-            "-DBUILD_SHARED_LIBS:BOOL=TRUE"
-            "-DLLVM_ENABLE_FFI:BOOL=TRUE"
-            "-DLLVM_REQUIRES_RTTI=1" ; For some third-party utilities
-            "-DLLVM_INSTALL_UTILS=ON")) ; Needed for rustc.
-       ;; Don't use '-g' during the build, to save space.
-       #:build-type "Release"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'install-opt-viewer
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (opt-viewer-out (assoc-ref outputs "opt-viewer"))
-                    (opt-viewer-share-dir (string-append opt-viewer-out "/share"))
-                    (opt-viewer-dir (string-append opt-viewer-share-dir "/opt-viewer")))
-               (mkdir-p opt-viewer-share-dir)
-               (rename-file (string-append out "/share/opt-viewer")
-                            opt-viewer-dir)))))))
+     (list
+      #:configure-flags
+      #~(list
+         ;; These options are required for cross-compiling LLVM according
+         ;; to <https://llvm.org/docs/HowToCrossCompileLLVM.html>.
+         #$@(if (%current-target-system)
+                #~(,(string-append "-DLLVM_TABLEGEN="
+                                   #+(file-append this-package
+                                                  "/bin/llvm-tblgen"))
+                   #$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE="
+                                    (%current-target-system))
+                   #$(string-append "-DLLVM_TARGET_ARCH="
+                                    (system->llvm-target))
+                   #$(string-append "-DLLVM_TARGETS_TO_BUILD="
+                                    (system->llvm-target)))
+                '())
+         "-DCMAKE_SKIP_BUILD_RPATH=FALSE"
+         "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
+         "-DBUILD_SHARED_LIBS:BOOL=TRUE"
+         "-DLLVM_ENABLE_FFI:BOOL=TRUE"
+         "-DLLVM_REQUIRES_RTTI=1"       ;for some third-party utilities
+         "-DLLVM_INSTALL_UTILS=ON")     ;needed for rustc
+      ;; Don't use '-g' during the build, to save space.
+      #:build-type "Release"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'change-directory
+            (lambda _
+              (chdir "llvm")))
+          (add-after 'install 'install-opt-viewer
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let* ((out (assoc-ref outputs "out"))
+                     (opt-viewer-out (assoc-ref outputs "opt-viewer"))
+                     (opt-viewer-share-dir (string-append opt-viewer-out "/share"))
+                     (opt-viewer-dir (string-append opt-viewer-share-dir "/opt-viewer")))
+                (mkdir-p opt-viewer-share-dir)
+                (rename-file (string-append out "/share/opt-viewer")
+                             opt-viewer-dir)))))))
     (home-page "https://www.llvm.org")
     (synopsis "Optimizing compiler infrastructure")
     (description
@@ -586,6 +607,55 @@ (define-public llvm-13
     (license license:asl2.0)
     (properties `((release-monitoring-url . ,%llvm-release-monitoring-url)))))
 
+(define-public clang-runtime-14
+  (let ((template (clang-runtime-from-llvm llvm-14)))
+    (package
+      (inherit template)
+      (arguments
+       (substitute-keyword-arguments (package-arguments template)
+         ((#:phases phases '(@ (guix build cmake-build-system) %standard-phases))
+          #~(modify-phases #$phases
+              (add-after 'unpack 'change-directory
+                (lambda _
+                  (chdir "compiler-rt")))))))
+      (native-inputs
+       `(;; FIXME: libfuzzer fails to build with GCC 10.
+         ("gcc" ,gcc-11)
+         ,@(package-native-inputs template))))))
+
+(define-public clang-14
+  (let ((template (clang-from-llvm llvm-14 clang-runtime-14)))
+    (package
+      (inherit template)
+      (arguments
+       (substitute-keyword-arguments (package-arguments template)
+         ((#:phases phases '(@ (guix build cmake-build-system) %standard-phases))
+          #~(modify-phases #$phases
+              (add-after 'unpack 'change-directory
+                (lambda _
+                  (chdir "clang"))))))))))
+
+(define-public clang-toolchain-14
+  (make-clang-toolchain clang-14))
+
+(define-public llvm-13
+  (package
+    (inherit llvm-14)
+    (version "13.0.1")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (llvm-uri "llvm" version))
+      (sha256
+       (base32
+        "0d681xiixmx9inwvz14vi3xsznrcryk06a8rvk9cljiq5kc80szc"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments llvm-14)
+       ((#:phases phases '%standard-phases)
+        #~(modify-phases #$phases
+            (delete 'change-directory)))))
+    (properties `((release-monitoring-url . ,%llvm-release-monitoring-url)))))
+
 (define-public clang-runtime-13
   (clang-runtime-from-llvm
    llvm-13
@@ -1072,9 +1142,32 @@ (define-public libunwind-headers
     (properties `((release-monitoring-url . ,%llvm-release-monitoring-url)))
     (license license:asl2.0)))          ;with LLVM exceptions
 
-(define-public lld
+(define-public lld-14
   (package
     (name "lld")
+    (version "14.0.0")
+    (source (llvm-monorepo version))
+    (build-system cmake-build-system)
+    (inputs
+     (list llvm-14))
+    (arguments
+     '(#:build-type "Release"
+       ;; TODO: Tests require the lit tool, which isn't installed by the LLVM
+       ;; package.
+       #:tests? #f
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'change-directory
+                    (lambda _
+                      (chdir "lld"))))))
+    (home-page "https://lld.llvm.org/")
+    (synopsis "Linker from the LLVM project")
+    (description "LLD is a high-performance linker, built as a set of reusable
+components which highly leverage existing libraries in the larger LLVM Project.")
+    (license license:asl2.0))) ; With LLVM exception
+
+(define-public lld-13
+  (package
+    (inherit lld-14)
     (version "13.0.1")
     (source (origin
               (method url-fetch)
@@ -1082,7 +1175,6 @@ (define-public lld
               (sha256
                (base32
                 "1yscckcszfr234k4svhybdbsnz6w65x8pldl6c2nhyxzx12zfsk6"))))
-    (build-system cmake-build-system)
     (native-inputs
      ;; Note: check <https://bugs.llvm.org/show_bug.cgi?id=49228> to see
      ;; whether this is still necessary.
@@ -1090,20 +1182,15 @@ (define-public lld
     (inputs
      (list llvm-13))
     (arguments
-     `(#:build-type "Release"
+     '(#:build-type "Release"
        ;; TODO: Tests require the lit tool, which isn't installed by the LLVM
        ;; package.
        #:tests? #f))
-    (home-page "https://lld.llvm.org/")
-    (synopsis "Linker from the LLVM project")
-    (description "LLD is a high-performance linker, built as a set of reusable
-components which highly leverage existing libraries in the larger LLVM Project.")
-    (properties `((release-monitoring-url . ,%llvm-release-monitoring-url)))
-    (license license:asl2.0))) ; With LLVM exception
+    (properties `((release-monitoring-url . ,%llvm-release-monitoring-url)))))
 
 (define-public lld-12
   (package
-    (inherit lld)
+    (inherit lld-13)
     (version "12.0.1")
     (source (origin
               (method url-fetch)
@@ -1114,6 +1201,8 @@ (define-public lld-12
     (inputs (modify-inputs (package-inputs lld)
               (replace "llvm" llvm-12)))))
 
+(define-public lld lld-14)
+
 (define* (make-lld-wrapper lld #:key lld-as-ld?)
   "Return a LLD wrapper.  When LLD-AS-LD? is true, create a 'ld' symlink that
 points to 'lld'."
diff --git a/gnu/packages/patches/clang-14.0-libc-search-path.patch b/gnu/packages/patches/clang-14.0-libc-search-path.patch
new file mode 100644
index 0000000000..7e439cd1ef
--- /dev/null
+++ b/gnu/packages/patches/clang-14.0-libc-search-path.patch
@@ -0,0 +1,94 @@
+Clang attempts to guess file names based on the OS and distro (yes!),
+but unfortunately, that doesn't work for us.
+
+This patch makes it easy to insert libc's $libdir so that Clang passes the
+correct absolute file name of crt1.o etc. to 'ld'.  It also disables all
+the distro-specific stuff and removes the hard-coded FHS directory names
+to make sure Clang also works on foreign distros.
+
+diff --git a/clang/lib/Driver/Distro.cpp b/clang/lib/Driver/Distro.cpp
+--- a/clang/lib/Driver/Distro.cpp
++++ b/clang/lib/Driver/Distro.cpp
+@@ -96,6 +96,10 @@ static Distro::DistroType DetectLsbRelease(llvm::vfs::FileSystem &VFS) {
+ }
+ 
+ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) {
++  // The compiler should always behave the same, even when used via Guix on a
++  // foreign distro.
++  return Distro::UnknownDistro;
++
+   Distro::DistroType Version = Distro::UnknownDistro;
+ 
+   // Newer freedesktop.org's compilant systemd-based systems
+diff --git a/clang/lib/Driver/ToolChains/Cuda.cpp b/clang/lib/Driver/ToolChains/Cuda.cpp
+--- a/clang/lib/Driver/ToolChains/Cuda.cpp
++++ b/clang/lib/Driver/ToolChains/Cuda.cpp
+@@ -117,6 +117,9 @@ CudaInstallationDetector::CudaInstallationDetector(
+     const Driver &D, const llvm::Triple &HostTriple,
+     const llvm::opt::ArgList &Args)
+     : D(D) {
++  // Don't look for CUDA in /usr.
++  return;
++
+   struct Candidate {
+     std::string Path;
+     bool StrictChecking;
+diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
+--- a/clang/lib/Driver/ToolChains/Linux.cpp
++++ b/clang/lib/Driver/ToolChains/Linux.cpp
+@@ -186,6 +186,10 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+ 
+   Generic_GCC::PushPPaths(PPaths);
+ 
++  // Comment out the distro-specific tweaks so that they don't bite when
++  // using Guix on a foreign distro.
++#if 0
++
+   Distro Distro(D.getVFS(), Triple);
+ 
+   if (Distro.IsAlpineLinux() || Triple.isAndroid()) {
+@@ -250,6 +254,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+ 
+   if (IsAndroid || Distro.IsOpenSUSE())
+     ExtraOpts.push_back("--enable-new-dtags");
++#endif
+ 
+   // The selection of paths to try here is designed to match the patterns which
+   // the GCC driver itself uses, as this is part of the GCC-compatible driver.
+@@ -270,6 +275,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+   }
+   Generic_GCC::AddMultilibPaths(D, SysRoot, OSLibDir, MultiarchTriple, Paths);
+ 
++#if 0
+   addPathIfExists(D, SysRoot + "/lib/" + MultiarchTriple, Paths);
+   addPathIfExists(D, SysRoot + "/lib/../" + OSLibDir, Paths);
+ 
+@@ -298,9 +304,11 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+     addPathIfExists(D, SysRoot + "/" + OSLibDir + "/" + ABIName, Paths);
+     addPathIfExists(D, SysRoot + "/usr/" + OSLibDir + "/" + ABIName, Paths);
+   }
++#endif
+ 
+   Generic_GCC::AddMultiarchPaths(D, SysRoot, OSLibDir, Paths);
+ 
++#if 0
+   // Similar to the logic for GCC above, if we are currently running Clang
+   // inside of the requested system root, add its parent library path to those
+   // searched.
+@@ -313,9 +321,14 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+     if (OSLibDir != "lib")
+       addPathIfExists(D, D.Dir + "/../" + OSLibDir, Paths);
+   }
++#endif
++
++  // Add libc's lib/ directory to the search path, so that crt1.o, crti.o,
++  // and friends can be found.
++  addPathIfExists(D, "@GLIBC_LIBDIR@", Paths);
+ 
+-  addPathIfExists(D, SysRoot + "/lib", Paths);
+-  addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++  // Add GCC's lib/ directory so libstdc++.so can be found.
++  addPathIfExists(D, GCCInstallation.getParentLibPath(), Paths);
+ }
+ 
+ ToolChain::RuntimeLibType Linux::GetDefaultRuntimeLibType() const {
diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
index b3de72226b..9db78516cc 100644
--- a/gnu/packages/zig.scm
+++ b/gnu/packages/zig.scm
@@ -46,7 +46,7 @@ (define-public zig
     (build-system cmake-build-system)
     (inputs
      (list clang-13 ; Clang propagates llvm.
-           lld))
+           lld-13))
     ;; Zig compiles fine with GCC, but also needs native LLVM libraries.
     (native-inputs
      (list llvm-13))
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#54725] [PATCH 2/2] gnu: ungoogled-chromium: Update to 99.0.4844.84-1.
  2022-04-05 12:20 ` [bug#54725] [PATCH 1/2] gnu: LLVM, Clang: Add 14.0.0 Marius Bakke
@ 2022-04-05 12:20   ` Marius Bakke
  0 siblings, 0 replies; 4+ messages in thread
From: Marius Bakke @ 2022-04-05 12:20 UTC (permalink / raw)
  To: 54725

* gnu/packages/chromium.scm (%preserved-third-party-files): Adjust for 99.
(%chromium-version): Set to 99.0.4844.84.
(%ungoogled-origin): Update hash.
(ungoogled-chromium): Likewise.
[arguments]: Patch absolute file names to GTK libraries.  Patch one more
Opus header inclusion.  Remove labels in wrapping phase.
[native-inputs]: Change from CLANG-13 to CLANG-14.
[inputs]: Add AT-SPI2-ATK.
---
 gnu/packages/chromium.scm | 34 +++++++++++++++++++++++++---------
 1 file changed, 25 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index 7ef1e5ac1b..75c48905db 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -133,6 +133,8 @@ (define %preserved-third-party-files
     "third_party/depot_tools/owners.py" ;BSD-3
     "third_party/devtools-frontend" ;BSD-3
     "third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat
+    "third_party/devtools-frontend/src/front_end/third_party\
+/additional_readme_paths.json" ;no explicit license; trivial
     "third_party/devtools-frontend/src/front_end/third_party/axe-core" ;MPL2.0
     "third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3
     "third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat
@@ -310,7 +312,7 @@ (define %blacklisted-files
   ;; run the Blink performance tests, just remove everything to save ~70MiB.
   '("third_party/blink/perf_tests"))
 
-(define %chromium-version "98.0.4758.102")
+(define %chromium-version "99.0.4844.84")
 (define %ungoogled-revision (string-append %chromium-version "-1"))
 (define %debian-revision "debian/90.0.4430.85-1")
 
@@ -322,7 +324,7 @@ (define %ungoogled-origin
     (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
     (sha256
      (base32
-      "0baz90fnzpldw0wwibhmh4pmki7vlpci9b9vvifa0rj5cwckl8a0"))))
+      "1j02zcam09mdw7wg30r1mx27b8bw0s9dvk4qjl6vrhp24rbmscs7"))))
 
 (define* (debian-patch name hash #:optional (revision %debian-revision))
   (origin
@@ -451,7 +453,7 @@ (define-public ungoogled-chromium
                                   %chromium-version ".tar.xz"))
               (sha256
                (base32
-                "0gpk13k8pfk65vinlmkg3p7mm0qb8z35psajkxzx0v3n2bllfns1"))
+                "05bma8lsm5lad58mlfiv8bg0fw5k5mxh0v6g1ik7xp2bsd71iv10"))
               (modules '((guix build utils)))
               (snippet (force ungoogled-chromium-snippet))))
     (build-system gnu-build-system)
@@ -595,6 +597,9 @@ (define-public ungoogled-chromium
                                "#include \"opus/opus_types.h\"")))
                           (find-files (string-append "third_party/webrtc/modules"
                                                      "/audio_coding/codecs/opus")))
+                (substitute* "media/audio/audio_opus_encoder.h"
+                  (("\"third_party/opus/src/include/opus.h\"")
+                   "<opus/opus.h>"))
 
                 (substitute* "third_party/webrtc/rtc_base/strings/json.h"
                   (("#include \"third_party/jsoncpp/")
@@ -637,7 +642,16 @@ (define-public ungoogled-chromium
                     (libvulkan.so.1 (search-input-file inputs
                                                        "/lib/libvulkan.so.1"))
                     (mesa-lib (dirname (search-input-file inputs
-                                                          "/lib/libGL.so.1"))))
+                                                          "/lib/libGL.so.1")))
+                    (gtk-libs '("libgio-2.0.so.0"
+                                "libgdk_pixbuf-2.0.so.0"
+                                "libgdk-3.so.0"
+                                "libgtk-3.so.0")))
+                (for-each (lambda (lib)
+                            (substitute* "ui/gtk/gtk_compat.cc"
+                              ((lib) (search-input-file
+                                      inputs (string-append "lib/" lib)))))
+                          gtk-libs)
                 (substitute* "printing/cups_config_helper.py"
                   (("cups_config =.*")
                    (string-append "cups_config = '" cups-config "'\n")))
@@ -738,8 +752,9 @@ (define-public ungoogled-chromium
                       #$(local-file
                          (search-auxiliary-file
                           "chromium/master-preferences.json")))
-                     (gtk+           (assoc-ref inputs "gtk+"))
-                     (xdg-utils      (assoc-ref inputs "xdg-utils")))
+                     (gtk (dirname (dirname
+                                    (search-input-file inputs "lib/libgtk-3.so"))))
+                     (xdg-utils (dirname (search-input-file inputs "bin/xdg-open"))))
 
                 (substitute* '("chrome/app/resources/manpage.1.in"
                                "chrome/installer/linux/common/desktop.template")
@@ -775,8 +790,8 @@ (define-public ungoogled-chromium
 
                   (wrap-program exe
                     ;; Avoid file manager crash.  See <https://bugs.gnu.org/26593>.
-                    `("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share")))
-                    `("PATH" ":" prefix (,(string-append xdg-utils "/bin")))))
+                    `("XDG_DATA_DIRS" ":" prefix (,(string-append gtk "/share")))
+                    `("PATH" ":" prefix (,xdg-utils))))
 
                 (with-directory-excursion "chrome/app/theme/chromium"
                   (for-each
@@ -789,7 +804,7 @@ (define-public ungoogled-chromium
                    '("24" "48" "64" "128" "256")))))))))
     (native-inputs
      (list bison
-           clang-13
+           clang-14
            gn
            gperf
            lld-as-ld-wrapper
@@ -804,6 +819,7 @@ (define-public ungoogled-chromium
     (inputs
      (list alsa-lib
            atk
+           at-spi2-atk
            cups
            curl
            dbus
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#54725: [PATCH 0/2] LLVM 14 and Chromium 99
  2022-04-05 12:18 [bug#54725] [PATCH 0/2] LLVM 14 and Chromium 99 Marius Bakke
  2022-04-05 12:20 ` [bug#54725] [PATCH 1/2] gnu: LLVM, Clang: Add 14.0.0 Marius Bakke
@ 2022-04-07 21:19 ` Marius Bakke
  1 sibling, 0 replies; 4+ messages in thread
From: Marius Bakke @ 2022-04-07 21:19 UTC (permalink / raw)
  To: 54725-done

[-- Attachment #1: Type: text/plain, Size: 682 bytes --]

Marius Bakke <marius@gnu.org> skriver:

> Marius Bakke (2):
>   gnu: LLVM, Clang: Add 14.0.0.
>   gnu: ungoogled-chromium: Update to 99.0.4844.84-1.
>
>  gnu/local.mk                                  |   1 +
>  gnu/packages/chromium.scm                     |  34 ++-
>  gnu/packages/llvm.scm                         | 229 ++++++++++++------
>  .../patches/clang-14.0-libc-search-path.patch |  94 +++++++
>  gnu/packages/zig.scm                          |   2 +-
>  5 files changed, 280 insertions(+), 80 deletions(-)
>  create mode 100644 gnu/packages/patches/clang-14.0-libc-search-path.patch

I went ahead and pushed these patches, along with an update to
ungoogled-chromium 100.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-04-07 21:20 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-05 12:18 [bug#54725] [PATCH 0/2] LLVM 14 and Chromium 99 Marius Bakke
2022-04-05 12:20 ` [bug#54725] [PATCH 1/2] gnu: LLVM, Clang: Add 14.0.0 Marius Bakke
2022-04-05 12:20   ` [bug#54725] [PATCH 2/2] gnu: ungoogled-chromium: Update to 99.0.4844.84-1 Marius Bakke
2022-04-07 21:19 ` bug#54725: [PATCH 0/2] LLVM 14 and Chromium 99 Marius Bakke

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.