aboutsummaryrefslogtreecommitdiff
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;;
;;; 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/>.

;;;
;;; Generate AUTHORS file for directory with the Guix git repository.
;;;

(use-modules
 (ice-9 popen)
 (ice-9 rdelim)
 (ice-9 match)
 (srfi srfi-1)
 (guix config)
 (guix utils)
 (guix build utils))

(define %guix-dir
  (make-parameter #f))

(define-syntax-rule (append-maybe init-lst (test add-lst) ...)
  (let* ((lst init-lst)
         (lst (if test
                  (append lst add-lst)
                  lst))
         ...)
    lst))

(define (command-output cmd . args)
  "Execute CMD with ARGS and return its output without trailing newspace."
  (let* ((port (apply open-pipe* OPEN_READ cmd args))
         (output (read-string port)))
    (close-port port)
    (string-trim-right output #\newline)))

(define (git-output . args)
  "Execute git command with ARGS and return its output without trailing
newspace."
  (with-directory-excursion (%guix-dir)
    (apply command-output "git" args)))

(define* (contributors-string #:optional (range "HEAD"))
  "Return a string with names of people contributed to commit RANGE."
  (git-output "shortlog" "--numbered" "--summary" "--email" range))

(define* (tags #:key pattern sort)
  "Return a list of the git repository tags.
PATTERN is passed to '--list' and SORT is passed to '--sort' options of
'git tag' command."
  (let* ((args (append-maybe
                '("tag")
                (pattern (list "--list" pattern))
                (sort    (list "--sort" sort))))
         (output (apply git-output args)))
    (string-split output #\newline)))

(define (version-tags)
  "Return only version tags (v0.8, etc.) sorted from the biggest version
to the smallest one."
  (tags #:pattern "v*"
        #:sort "-version:refname"))

(define (generate-authors-file file)
  "Generate authors FILE."
  (define previous-release-tag
    (find (lambda (tag)
            (version>? %guix-version
                       (substring tag 1))) ; remove leading 'v'
          (version-tags)))

  (define release-range
    (string-append previous-release-tag "..HEAD"))

  (with-output-to-file file
    (lambda ()
      (display "\
GNU Guix consists of Scheme code that implements the deployment model
of the Nix package management tool.  In fact, it currently talks to a
build daemon whose code comes from Nix (see the manual for details.)

Nix was initially written by Eelco Dolstra; other people have been
contributing to it.  See `nix/AUTHORS' for details.\n\n")
      (format #t "Contributors to GNU Guix ~a:\n\n"
              %guix-version)
      (display (contributors-string release-range))
      (newline) (newline)
      (display "Overall contributors:\n\n")
      (display (contributors-string))
      (newline))))

(define (show-help)
  (match (command-line)
    ((me _ ...)
     (format #t "Usage: guile ~a DIRECTORY AUTHORS
Generate AUTHORS file for DIRECTORY with the Guix git repository.\n"
             me))))

(match (command-line)
  ((_ guix-dir authors-file)
   (parameterize ((%guix-dir guix-dir))
     (generate-authors-file authors-file)))
  (_
   (show-help)
   (exit 1)))

;;; generate-authors.scm ends here
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/>. (define-module (gnu packages configuration-management) #:use-module (gnu packages) #:use-module (guix build-system go) #:use-module (guix git-download) #:use-module (gnu packages golang) #:use-module (gnu packages version-control) #:use-module (gnu packages textutils) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils)) (define-public chezmoi (package (name "chezmoi") ;; XXX: Make sure 7f238faa61e46d79b54d4d0ea8f0b5fc27db84b2 applied before ;; version update, which should fix @code{password-store} integration. (version "1.8.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/twpayne/chezmoi") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1b8y0wq3myhvjdnwl0i4x85iil7i7kmsjajvbw1a47afm83jkbaw")))) (build-system go-build-system) (arguments `(#:import-path "github.com/twpayne/chezmoi" ;; We don't need to install the source code for end-user applications. #:install-source? #f)) (native-inputs `(("go-github-com-masterminds-sprig" ,go-github-com-masterminds-sprig) ("go-github-com-masterminds-goutils" ,go-github-com-masterminds-goutils) ("go-github-com-masterminds-semver" ,go-github-com-masterminds-semver) ("go-github-com-google-uuid" ,go-github-com-google-uuid) ("go-github-com-huandu-xstrings" ,go-github-com-huandu-xstrings) ("go-github-com-imdario-mergo" ,go-github-com-imdario-mergo) ("go-github-com-mitchellh-reflectwalk" ,go-github-com-mitchellh-reflectwalk) ("go-github-com-mitchellh-copystructure" ,go-github-com-mitchellh-copystructure) ("go-github-com-bmatcuk-doublestar" ,go-github-com-bmatcuk-doublestar) ("go-github-com-charmbracelet-glamour" ,go-github-com-charmbracelet-glamour) ("go-github-com-alecthomas-chroma" ,go-github-com-alecthomas-chroma) ("go-github-com-coreos-go-semver" ,go-github-com-coreos-go-semver) ("go-github-com-danwakefield-fnmatch" ,go-github-com-danwakefield-fnmatch) ("go-github-com-dlclark-regexp2" ,go-github-com-dlclark-regexp2) ("go-github-go-git" ,go-github-go-git) ("go-github-com-google-go-github" ,go-github-com-google-go-github) ("go-github-com-google-go-querystring" ,go-github-com-google-go-querystring) ("go-github-com-google-renameio" ,go-github-com-google-renameio) ("go-github-com-microcosm-cc-bluemonday",go-github-com-microcosm-cc-bluemonday) ("go-github-com-aymerick-douceur" ,go-github-com-aymerick-douceur) ("go-github-com-chris-ramon-douceur" ,go-github-com-chris-ramon-douceur) ("go-github-com-gorilla-css" ,go-github-com-gorilla-css) ("go-github-com-muesli-reflow-ansi" ,go-github-com-muesli-reflow-ansi) ("go-github-com-muesli-reflow-wordwrap" ,go-github-com-muesli-reflow-wordwrap) ("go-github-com-muesli-reflow-indent" ,go-github-com-muesli-reflow-indent) ("go-github-com-muesli-reflow-padding" ,go-github-com-muesli-reflow-padding) ("go-github-com-muesli-termenv" ,go-github-com-muesli-termenv) ("go-github-com-google-goterm" ,go-github-com-google-goterm) ("go-golang-org-colorful" ,go-golang-org-colorful) ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty) ("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth) ("go-github-com-olekukonko-tablewriter" ,go-github-com-olekukonko-tablewriter) ("go-github-com-pelletier-go-toml" ,go-github-com-pelletier-go-toml) ("go-github-com-pkg-diff" ,go-github-com-pkg-diff) ("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff) ("go-github-com-spf13-cobra" ,go-github-com-spf13-cobra) ("go-github-com-spf13-viper" ,go-github-com-spf13-viper) ("go-github-com-twpayne-go-shell" ,go-github-com-twpayne-go-shell) ("go-github-com-twpayne-go-vfs" ,go-github-com-twpayne-go-vfs) ("go-github-com-twpayne-go-vfsafero" ,go-github-com-twpayne-go-vfsafero) ("go-github-com-twpayne-go-xdg" ,go-github-com-twpayne-go-xdg) ("go-github-com-yuin-goldmark" ,go-github-com-yuin-goldmark) ("go-github-com-zalando-go-keyring" ,go-github-com-zalando-go-keyring) ("go-github-com-godbus-dbus" ,go-github-com-godbus-dbus) ("go-etcd-io-bbolt" ,go-etcd-io-bbolt) ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) ("go-golang-org-x-net" ,go-golang-org-x-net) ("go-golang-org-x-oauth2" ,go-golang-org-x-oauth2) ("go-github-com-rogpeppe-go-internal" ,go-github-com-rogpeppe-go-internal) ("gopkg-in-errgo-fmt-errors" ,gopkg-in-errgo-fmt-errors))) (home-page "https://www.chezmoi.io/") (synopsis "Personal configuration files manager") (description "This package helps to manage personal configuration files across multiple machines.") (license license:expat))) ble. Oleg Pykhalov 2020-08-01gnu: xorg-server: Fix CVE-2020-14347 via graft....* gnu/packages/patches/xorg-server-CVE-2020-14347.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/xorg.scm (xorg-server/fixed): New variable. (xorg-server)[replacement]: New field. (xorg-server-wayland): Use package/inherit. Mark H Weaver 2020-08-01gnu: libx11: Replace with 1.6.10 [fixes CVE-2020-14344]....* gnu/packages/xorg.scm (libx11/fixed): New variable. (libx11)[replacement]: New field. Mark H Weaver 2020-07-25gnu: xkeyboard-config: Update to 2.30....* gnu/packages/xorg.scm (xkeyboard-config): Update to 2.30. Marius Bakke 2020-07-25gnu: libevdev: Update to 1.9.1....* gnu/packages/xorg.scm (libevdev): Update to 1.9.1. Marius Bakke 2020-07-25gnu: Replace transset-df with transset....transset-df was last updated in 2007. The patches got merged upstream a long time ago, which is maintained by the X.Org project. * gnu/packages/xorg.scm (transset): New variable. (transset-df): Define as ‘deprecated package’. Signed-off-by: 宋文武 <iyzsong@member.fsf.org> Ivan Kozlov 2020-07-24gnu: xorg-server-for-tests: Update to 1.20.8....* gnu/packages/xorg.scm (xorg-server-for-tests)[source, version]: Inherit from XORG-SERVER. Marius Bakke 2020-07-24Merge branch 'master' into stagingMarius Bakke 2020-07-21gnu: twm: Update to 1.0.11....* gnu/packages/xorg.scm (twm): Update to 1.0.11. [source](uri): Switch to '.xz' tarball. Marius Bakke 2020-07-21gnu: xorg-server: Update to 1.20.8....* gnu/packages/xorg.scm (xorg-server): Update to 1.20.8. (xorg-server-for-tests): Stay on 1.20.7. Marius Bakke