;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2021 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; ;;; 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 . ;;; This file returns a manifest containing origins of all the packages. The ;;; main purpose is to allow continuous integration services to keep upstream ;;; source code around. It can also be passed to 'guix weather -m'. (use-modules (srfi srfi-1) (srfi srfi-26) (ice-9 match) (ice-9 vlist) (guix packages) (guix profiles) (gnu packages)) (define (all-packages) "Return the list of all the packages, public or private, omitting only superseded packages." (fold-packages (lambda (package lst) (match (package-replacement package) (#f (cons package lst)) (replacement (append (list replacement package) lst)))) '() #:select? (negate package-superseded))) (define (upstream-origin source) "Return SOURCE without any patches or snippet." (origin (inherit source) (snippet #f) (patches '()))) (define (all-origins) "Return the list of origins referred to by all the packages." (let loop ((packages (all-packages)) (origins '()) (visited vlist-null)) (match packages ((head . tail) (let ((new (remove (cut vhash-assq <> visited) (package-direct-sources head)))) (loop tail (append new origins) (fold (cut vhash-consq <> #t <>) visited new)))) (() origins)))) ;; Return a manifest containing all the origins. (manifest (map (lambda (origin) (manifest-entry (name (or (origin-actual-file-name origin) "origin")) (version "0") (item (upstream-origin origin)))) (all-origins))) ass='left'>Commit message (Expand)Author 2022-07-20gnu: modifying make-chromium-extension to rely on node-crx3....* gnu/build/chromium-extension.scm (make-crx): Lift Xorg and Chromium dependencies, rely on node-crx3 instead. Signed-off-by: Marius Bakke <marius@gnu.org> Nicolas Graves 2021-12-23chromium-extension: Avoid another usage of the store-mapped /tmp....* gnu/build/chromium-extension.scm (make-crx): Use a Chromium profile relative to the build directory instead of /tmp. While here, remove obsolete comment. Marius Bakke 2021-12-16chromium-extension: Build .crx files in a deterministic fashion....* gnu/build/chromium-extension.scm (make-crx): Pass #:keep-mtime? #t to COPY-RECURSIVELY. Remove defunct FAKETIME workaround. While at it, pack the extension in the scratch working directory instead of the transient store-mapped /tmp. Marius Bakke 2021-12-16chromium-extension: Avoid usage of gcrypt at evaluation time....* gnu/build/chromium-extension.scm (make-signing-key): Wrap builder in with-extensions, and compute the seed checksum at build time. Marius Bakke 2021-12-16chromium-extension: Reduce imported-modules scope....* gnu/build/chromium-extension.scm (make-crx): Delay with-imported-modules until the builder code. (crx->chromium-json): Remove needless define* while at it. Marius Bakke 2021-12-16chromium-extension: Simplify builder code....* gnu/build/chromium-extension.scm (chromium-json->profile-object): Remove variable. (file-sha256): New variable. (make-chromium-extension): Rename OUTPUT parameter to prevent conflict. Adjust other variable names for clarity. [inputs]: Clear. [arguments]: Inline and simplify the final transformation with a gexp. Marius Bakke 2020-11-08Add (gnu build chromium-extension)....* gnu/build/chromium-extension.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Adjust accordingly. Marius Bakke