aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
;;;
;;; 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 <http://www.gnu.org/licenses/>.

;;; 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)))
ef='/guix/plain/gnu/packages/acl.scm?id=5304802f7e9409c347076adf3a76ee1a35465d4a'>plainabout -rw-r--r--ada.scm8305logplainabout -rw-r--r--admin.scm198581logplainabout -rw-r--r--adns.scm5302logplainabout -rw-r--r--agda.scm6568logplainabout -rw-r--r--aidc.scm10203logplainabout -rw-r--r--algebra.scm68883logplainabout -rw-r--r--android.scm42107logplainabout -rw-r--r--animation.scm19902logplainabout -rw-r--r--anthy.scm2879logplainabout -rw-r--r--antivirus.scm7295logplainabout -rw-r--r--apl.scm2193logplainabout -rw-r--r--apr.scm4258logplainabout -rw-r--r--arcan.scm11139logplainabout -rw-r--r--aspell.scm20497logplainabout -rw-r--r--assembly.scm21458logplainabout -rw-r--r--astronomy.scm49892logplainabout -rw-r--r--attr.scm3492logplainabout -rw-r--r--audio.scm211148logplainabout -rw-r--r--augeas.scm2617logplainabout -rw-r--r--authentication.scm5862logplainabout -rw-r--r--autogen.scm3153logplainabout -rw-r--r--autotools.scm27207logplainabout d---------aux-files304logplain -rw-r--r--avahi.scm6043logplainabout -rw-r--r--avr.scm7769logplainabout -rw-r--r--axoloti.scm29334logplainabout -rw-r--r--backup.scm50722logplainabout -rw-r--r--base.scm63069logplainabout -rw-r--r--bash.scm19472logplainabout -rw-r--r--batik.scm8758logplainabout -rw-r--r--bdw-gc.scm5914logplainabout -rw-r--r--benchmark.scm16674logplainabout -rw-r--r--bioconductor.scm519143logplainabout -rw-r--r--bioinformatics.scm639465logplainabout -rw-r--r--bison.scm3264logplainabout -rw-r--r--bittorrent.scm23846logplainabout -rw-r--r--boost.scm20568logplainabout -rw-r--r--bootloaders.scm58380logplainabout -rw-r--r--bootstrap.scm40700logplainabout -rw-r--r--browser-extensions.scm4511logplainabout -rw-r--r--build-tools.scm24563logplainabout -rw-r--r--busybox.scm7230logplainabout -rw-r--r--c.scm36213logplainabout -rw-r--r--calcurse.scm3469logplainabout -rw-r--r--calendar.scm18319logplainabout -rw-r--r--ccache.scm3106logplainabout -rw-r--r--cdrom.scm42425logplainabout -rw-r--r--cedille.scm5388logplainabout -rw-r--r--certs.scm12736logplainabout -rw-r--r--check.scm115163logplainabout -rw-r--r--chemistry.scm27126logplainabout -rw-r--r--chez.scm28977logplainabout -rw-r--r--chicken.scm10435logplainabout -rw-r--r--chromium.scm44931logplainabout -rw-r--r--ci.scm13753logplainabout -rw-r--r--cinnamon.scm2923logplainabout -rw-r--r--clojure.scm14143logplainabout -rw-r--r--cluster.scm11186logplainabout -rw-r--r--cmake.scm18162logplainabout -rw-r--r--cobol.scm3394logplainabout -rw-r--r--code.scm39837logplainabout -rw-r--r--commencement.scm158544logplainabout -rw-r--r--compression.scm114160logplainabout -rw-r--r--compton.scm5565logplainabout -rw-r--r--configuration-management.scm4326logplainabout -rw-r--r--conky.scm3453logplainabout -rw-r--r--connman.scm7244logplainabout -rw-r--r--convmv.scm2300logplainabout -rw-r--r--cook.scm4101logplainabout -rw-r--r--coq.scm26898logplainabout -rw-r--r--cpio.scm2300logplainabout -rw-r--r--cpp.scm59138logplainabout -rw-r--r--cppi.scm1775logplainabout -rw-r--r--cran.scm1105714logplainabout -rw-r--r--crates-graphics.scm107794logplainabout -rw-r--r--crates-gtk.scm42166logplainabout -rw-r--r--crates-io.scm2246176logplainabout -rw-r--r--cross-base.scm25519logplainabout -rw-r--r--crypto.scm67243logplainabout -rw-r--r--cryptsetup.scm6632logplainabout -rw-r--r--cups.scm46676logplainabout -rw-r--r--curl.scm14293logplainabout -rw-r--r--cvassistant.scm3600logplainabout -rw-r--r--cybersecurity.scm3457logplainabout -rw-r--r--cyrus-sasl.scm3439logplainabout -rw-r--r--databases.scm165005logplainabout -rw-r--r--datamash.scm6624logplainabout -rw-r--r--datastructures.scm16031logplainabout -rw-r--r--dav.scm6615logplainabout -rw-r--r--dbm.scm8182logplainabout -rw-r--r--dc.scm2177logplainabout -rw-r--r--debian.scm18525logplainabout -rw-r--r--debug.scm35144logplainabout -rw-r--r--dejagnu.scm3502logplainabout -rw-r--r--dhall.scm5386logplainabout -rw-r--r--dico.scm3663logplainabout -rw-r--r--dictionaries.scm17755logplainabout -rw-r--r--diffoscope.scm14145logplainabout -rw-r--r--digest.scm4854logplainabout -rw-r--r--direct-connect.scm2501logplainabout -rw-r--r--disk.scm55999logplainabout -rw-r--r--display-managers.scm18201logplainabout -rw-r--r--distributed.scm3870logplainabout -rw-r--r--django.scm50822logplainabout -rw-r--r--djvu.scm18433logplainabout -rw-r--r--dlang.scm22903logplainabout -rw-r--r--dns.scm57895logplainabout -rw-r--r--docbook.scm31392logplainabout -rw-r--r--docker.scm32767logplainabout -rw-r--r--documentation.scm14360logplainabout -rw-r--r--dunst.scm3546logplainabout -rw-r--r--dvtm.scm2302logplainabout -rw-r--r--easyrpg.scm4298logplainabout -rw-r--r--ebook.scm27342logplainabout -rw-r--r--ed.scm2372logplainabout -rw-r--r--education.scm46542logplainabout -rw-r--r--efi.scm9698logplainabout -rw-r--r--electronics.scm12368logplainabout -rw-r--r--elf.scm12650logplainabout -rw-r--r--elixir.scm5054logplainabout -rw-r--r--elm.scm3206logplainabout -rw-r--r--emacs-xyz.scm1136955logplainabout -rw-r--r--emacs.scm25384logplainabout -rw-r--r--embedded.scm71380logplainabout -rw-r--r--emulators.scm98566logplainabout -rw-r--r--enchant.scm6456logplainabout -rw-r--r--engineering.scm132861logplainabout -rw-r--r--enlightenment.scm24702logplainabout -rw-r--r--entr.scm3301logplainabout -rw-r--r--erlang.scm9646logplainabout -rw-r--r--esolangs.scm5350logplainabout -rw-r--r--fabric-management.scm9260logplainabout -rw-r--r--fcitx.scm9002logplainabout -rw-r--r--fcitx5.scm15739logplainabout -rw-r--r--figlet.scm1797logplainabout -rw-r--r--file-systems.scm71876logplainabout -rw-r--r--file.scm2852logplainabout -rw-r--r--finance.scm73953logplainabout -rw-r--r--firmware.scm26985logplainabout -rw-r--r--flashing-tools.scm21971logplainabout -rw-r--r--flex.scm3195logplainabout -rw-r--r--fltk.scm6075logplainabout -rw-r--r--fonts.scm96015logplainabout -rw-r--r--fontutils.scm42315logplainabout -rw-r--r--forth.scm2426logplainabout -rw-r--r--fpga.scm21759logplainabout -rw-r--r--freedesktop.scm99757logplainabout -rw-r--r--freeipmi.scm2144logplainabout -rw-r--r--fribidi.scm4059logplainabout -rw-r--r--ftp.scm11709logplainabout -rw-r--r--fvwm.scm3028logplainabout -rw-r--r--game-development.scm115326logplainabout -rw-r--r--games.scm510073logplainabout -rw-r--r--gawk.scm5430logplainabout