aboutsummaryrefslogtreecommitdiff
path: root/build-aux/generate-authors.scm
blob: 1dc882ff8aa1853fec6e15585f614227a6b7c433 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
;;; 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
ckages/irc.scm (weechat)[arguments]: Disable tests on non-Intel architectures. Efraim Flashner 2017-12-21gnu: weechat: Run tests....* gnu/packages/irc.scm (weechat)[native-inputs]: Add cpputest. [arguments]: Add ‘-DENABLE_TESTS=ON’ to #:configure-flags. Add ‘disable-failing-tests’ phase to do just that. Run the others. Tobias Geerinckx-Rice 2017-12-21gnu: weechat: Update to 2.0.1....* gnu/packages/irc.scm (weechat): Update to 2.0.1. Tobias Geerinckx-Rice 2017-12-03gnu: weechat: Update to 2.0....* gnu/packages/irc.scm (weechat): Update to 2.0. Marius Bakke 2017-11-29gnu: limnoria: Update to 2017.10.01....* gnu/packages/irc.scm (limnoria): Update to 2017.10.01. Tobias Geerinckx-Rice 2017-11-19Update email address for ng0.ng0 2017-11-18gnu: Move date/time packages from python.scm to time.scm....* gnu/packages/python.scm (python-pytz, python2-pytz, python-dateutil, python2-dateutil, python-parsedatetime, python2-parsedatetime, python-tzlocal, python-isodate, python2-isodate, python-iso8601, python2-iso8601, python-monotonic, python2-monotonic, python-pyrfc3339, python2-pyrfc3339, python-arrow, python2-arrow, python-aniso8601, python2-aniso8601): Move from here... * gnu/packages/time.scm: ...to here. * gnu/packages/calendar.scm, gnu/packages/check.scm, gnu/packages/django.scm, gnu/packages/ebook.scm, gnu/packages/gnome.scm, gnu/packages/irc.scm, gnu/packages/jrnl.scm, gnu/packages/mail.scm, gnu/packages/openstack.scm, gnu/packages/package-management.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/rdf.scm, gnu/packages/statistics.scm, gnu/packages/tls.scm, gnu/packages/tryton.scm, gnu/packages/version-control.scm: Adjust accordingly. Ricardo Wurmus 2017-11-17gnu: Move testing packages from python.scm to check.scm....* gnu/packages/python.scm (python-behave-web-api, python2-behave-web-api, python-mock, python2-mock, python-mock-2, python-nose, python2-nose, python-nose2, python2-nose2, python-unittest2, python2-unittest2, python-pytest, python2-pytest, python-pytest-3.0, python2-pytest-3.0, python-pytest-cov, python2-pytest-cov, python-pytest-runner, python2-pytest-runner, python-pytest-mock, python2-pytest-mock, python-pytest-xdist, python2-pytest-xdist, python-scripttest, python2-scripttest, python-testtools, python2-testtools, python-testscenarios, python2-testscenarios, python-testresources, python2-testresources, python-subunit, python2-subunit, python-fixtures, python2-fixtures, python-testrepository, python2-testrepository, python-coverage, python2-coverage, python-cov-core, python2-cov-core, python-testpath, python2-testpath, python-testlib, python2-testlib, python-pytest-cache, python2-pytest-cache, python-pytest-localserver, python-pytest-xprocess, python-pytest-subtesthack, python2-pytest-subtesthack, python-hypothesis, python2-hypothesis, python-lit, python2-lit, python-pytest-pep8, python2-pytest-pep8, python-pytest-flakes, python2-pytest-flakes, python2-coverage-test-runner, python-pylint, python2-pylint, python-paramunittest, python2-python-paramunittest, python-pytest-warnings, python2-pytest-warnings, python-pytest-capturelog, python2-pytest-capturelog, python-pytest-catchlog, python2-pytest-catchlog, python-nosexcover, python2-nosexcover, python-discover, python2-discover, behave, python-rednose, python2-rednose, python-nose-randomly, python2-nose-randomly, python-nose-timer, python2-nose-timer): Move from here... * gnu/packages/check.scm: ...to here. * gnu/packages/admin.scm, gnu/packages/android.scm, gnu/packages/backup.scm, gnu/packages/bioinformatics.scm, gnu/packages/calendar.scm, gnu/packages/dav.scm, gnu/packages/django.scm, gnu/packages/freedesktop.scm, gnu/packages/haskell.scm, gnu/packages/image.scm, gnu/packages/irc.scm, gnu/packages/jrnl.scm, gnu/packages/ldc.scm, gnu/packages/libffi.scm, gnu/packages/mail.scm, gnu/packages/mpd.scm, gnu/packages/openstack.scm, gnu/packages/package-management.scm, gnu/packages/password-utils.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/rdf.scm, gnu/packages/statistics.scm, gnu/packages/storage.scm, gnu/packages/time.scm, gnu/packages/tls.scm, gnu/packages/tor.scm, gnu/packages/tryton.scm: Adjust accordingly. Ricardo Wurmus 2017-11-16gnu: Move crypto packages from python to python-crypto....* gnu/packages/python.scm (python-passlib, python2-passlib) (python-py-bcrypt, python2-py-bcrypt) (python-paramiko, python2-paramiko, python-ecdsa, python2-ecdsa) (python-pycrypto, python2-pycrypto, python-keyring, python2-keyring) (python-certifi, python2-certifi) (python-cryptography-vectors, python2-cryptography-vectors) (python-cryptography, python2-cryptography) (python-pyopenssl, python2-pyopenssl) (python-axolotl-curve25519, python2-axolotl-curve25519) (python-axolotl, python2-axolotl, python2-slowaes) (python-pyaes, python2-pyaes): Move to... * gnu/packages/python-crypto.scm: ... here. New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/admin.scm, gnu/packages/backup.scm, gnu/packages/crypto.scm, gnu/packages/finance.scm, gnu/packages/irc.scm, gnu/packages/jrnl.scm, gnu/packages/messaging.scm, gnu/packages/openstack.scm, gnu/packages/python-web.scm, gnu/packages/tls.scm, gnu/packages/xorg.scm: Adjust accordingly. Ludovic Courtès 2017-10-22gnu: irssi: Update to 1.0.5 [security fixes]....Fixes CVE-2017-15228, CVE-2017-15227, CVE-2017-15721, CVE-2017-15723 and CVE-2017-15722. See <https://irssi.org/security/irssi_sa_2017_10.txt>. * gnu/packages/irc.scm (irssi): Update to 1.0.5. Marius Bakke 2017-09-23gnu: weechat: Update to 1.9.1 [security fix]....* gnu/packages/irc.scm (weechat): Update to 1.9.1. Tobias Geerinckx-Rice 2017-09-04gnu: quassel: Update package definition....* gnu/packages/irc.scm (quassel)[source]: Remove bundled scripts. [arguments]: Update comments in 'configure-flags. [inputs]: Remove oxygen-icons. Move extra-cmake-modules and qttools ... [native-inputs]: ... to here. Efraim Flashner 2017-09-04gnu: weechat: Change to cmake-build-system....* gnu/packages/irc.scm (weechat)[build-system]: Switch to cmake-build-system. [arguments]: Remove configure-flags, disable tets, remove 'autogen phase. [inputs]: Remove diffutils, libltdl, openssl, cyrus-sasl. Move gettext ... [native-inputs]: ... to here. Remove autoconf, file, autogen, automake, libtool. Efraim Flashner 2017-09-04gnu: Put autoconf-related phases immediately after the 'unpack phase....* gnu/packages/audio.scm (audacity, rtmidi)[arguments]: Correct phases accordingly. * gnu/packages/bioinformatics.scm (mash, seek, vsearch, emboss, htslib-for-sambamba)[arguments]: Likewise. * gnu/packages/ci.scm (cuirass)[arguments]: Likewise. * gnu/packages/compression.scm (minizip, xdelta)[arguments]: Likewise. * gnu/packages/cpp.scm (libzen)[arguments]: Likewise. * gnu/packages/crypto.scm (opendht)[arguments]: Likewise. * gnu/packages/databases.scm (4store, mdbtools)[arguments]: Likewise. * gnu/packages/debug.scm (stress-make)[arguments]: Likewise. * gnu/packages/dns.scm (dnscrypt-proxy, dnscrypt-wrapper)[arguments]: Likewise. * gnu/packages/emacs.scm (emacs-pdf-tools)[arguments]: Likewise. * gnu/packages/embedded.scm (libjaylink, openocd)[arguments]: Likewise. * gnu/packages/engineering.scm (gerbv)[arguments]: Likewise. * gnu/packages/erlang.scm (erlang)[arguments]: Likewise. * gnu/packages/ftp.scm (weex)[arguments]: Likewise. * gnu/packages/gnome.scm (dia)[arguments]: Likewise. * gnu/packages/gnunet.scm (gnurl, guile-gnunet)[arguments]: Likewise. * gnu/packages/gtk.scm (guile-rsvg, graphene)[arguments]: Likewise. * gnu/packages/guile.scm (guildhall, guile-ics, guile-sqlite3)[arguments]: Likewise. * gnu/packages/ibus.scm (ibus-libpinyin)[arguments]: Likewise. * gnu/packages/irc.scm (weechat)[arguments]: Likewise. * gnu/packages/java.scm (classpath-devel)[arguments]: Likewise. * gnu/packages/libreoffice.scm (libetonyek)[arguments]: Likewise. * gnu/packages/libusb.scm (hidapi)[arguments]: Likewise. * gnu/packages/linux.scm (gpm)[arguments]: Likewise. * gnu/packages/logging.scm (glog)[arguments]: Likewise. * gnu/packages/machine-learning.scm (ghmm)[arguments]: Likewise. * gnu/packages/mail.scm (dovecot-trees, dovecot-libsodium-plugin, esmtp) [arguments]: Likewise. * gnu/packages/messaging.scm (freetalk, libmesode, libstrophe)[arguments]: Likewise. * gnu/packages/microcom.scm (microcom)[arguments]: Likewise. * gnu/packages/ocaml.scm (ocaml-ssl)[arguments]: Likewise. * gnu/packages/parallel.scm (slurm)[arguments]: Likewise. * gnu/packages/pdf.scm (libharu)[arguments]: Likewise. * gnu/packages/samba.scm (cifs-utils)[arguments]: Likewise. * gnu/packages/serialization.scm (msgpack)[arguments]: Likewise. * gnu/packages/shells.scm (scsh)[arguments]: Likewise. * gnu/packages/telephony.scm (libiax2)[arguments]: Likewise. * gnu/packages/textutils.scm (dotconf)[arguments]: Likewise. * gnu/packages/version-control.scm (findnewest)[arguments]: Likewise. * gnu/packages/video.scm (libmediainfo, mediainfo)[arguments]: Likewise. Kei Kebreau 2017-08-20gnu: limnoria: Update to 2017.08.18....* gnu/packages/irc.scm (limnoria): Update to 2017.08.18. Tobias Geerinckx-Rice 2017-08-16gnu: limnoria: Update to 2017.08.03....* gnu/packages/irc.scm (limnoria): Update to 2017.08.03. Tobias Geerinckx-Rice 2017-07-22gnu: quassel: Enable TLS....* gnu/packages/patches/quassel-fix-tls-check.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/irc.scm (quassel)[source]: Use it. Signed-off-by: Leo Famulari <leo@famulari.name> Ryan Moe 2017-07-07gnu: irssi: Update to 1.0.4 [fixes CVE-2017-{10965,10966}]....* gnu/packages/irc.scm (irssi): Update to 1.0.4. Leo Famulari 2017-06-25gnu: weechat: Update to 1.9....* gnu/packages/irc.scm (weechat): Update to 1.9. Tobias Geerinckx-Rice 2017-06-07gnu: irssi: Update to 1.0.3....* gnu/packages/irc.scm (irssi): Update to 1.0.3. Marius Bakke 2017-05-14gnu: weechat: Update to 1.8....* gnu/packages/irc.scm (weechat): Update to 1.8. Tobias Geerinckx-Rice 2017-05-06gnu: limnoria: Update to 20170330....* gnu/packages/irc.scm (limnoria): Update to 20170330. Signed-off-by: Ludovic Courtès <ludo@gnu.org> ng0 2017-04-22gnu: weechat: Update to 1.7.1....* gnu/packages/irc.scm (weechat): Update to 1.7.1. [source, home-page]: Use HTTPS. Tobias Geerinckx-Rice 2017-04-22gnu: weechat: Mention ‘IRC’....* gnu/packages/irc.scm (weechat)[description]: Mention the search term ‘IRC’, split into paragraphs, and other small tweaks. Tobias Geerinckx-Rice 2017-03-18bug#26152: [PATCH] gnu: limnoria: Update to 20170110....* gnu/packages/irc.scm (limnoria): Update to 20170110. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> ng0 2017-03-12gnu: irssi: Update to 1.0.2....* gnu/packages/irc.scm (irssi): Update to 1.0.2. Marius Bakke 2017-02-11gnu: irssi: Update to 1.0.1....* gnu/packages/irc.scm (irssi): Update to 1.0.1. Leo Famulari 2017-02-09gnu: weechat: Make sure it finds the correct python....Fixes <https://bugs.gnu.org/21879>. * gnu/packages/irc.scm (weechat)[arguments]: Drop 'set-python-file-name' phase in favor of a 'wrap' phase. Marius Bakke 2017-01-15gnu: weechat: Update to 1.7....* gnu/packages/irc.scm (weechat): Update to 1.7. Tobias Geerinckx-Rice 2017-01-05gnu: irssi: Update to 1.0.0....* gnu/packages/irc.scm (irssi): Update to 1.0.0. [arguments]: Remove --with-ncurses configure flag. [native-inputs]: Move 'perl' to ... [inputs]: ... here. [home-page]: Use HTTPS. Marius Bakke 2016-12-20gnu: weechat: Use new xz-compressed tarball....* gnu/packages/irc.scm (weechat)[source]: Use ‘.tar.xz’ source. Tobias Geerinckx-Rice 2016-12-13gnu: epic5: Fix 'license' field to contain only licenses....* gnu/packages/irc.scm (epic5)[license]: Call 'license:non-copyleft'. Ludovic Courtès 2016-12-08gnu: Add epic5....* gnu/packages/irc.scm (epic5): New variable. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> ng0