aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/popt.scm
blob: 1c325e0c3d4e05c57f022ec2a437846d2686da00 (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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2016, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; 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/>.

(define-module (gnu packages popt)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix git-download)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system cmake)
  #:use-module (guix licenses)
  #:use-module (gnu packages texinfo))

(define-public argtable
  (package
    (name "argtable")
    (version "2.13")
    (source (origin
              (method url-fetch)
              (uri (string-append
                    "mirror://sourceforge/argtable/argtable/"
                    "argtable-" version "/argtable"
                    (string-join (string-split version #\.) "-")
                    ".tar.gz"))
             (sha256
              (base32
               "1gyxf4bh9jp5gb3l6g5qy90zzcf3vcpk0irgwbv1lc6mrskyhxwg"))))
    (build-system gnu-build-system)
    (home-page "http://argtable.sourceforge.net/")
    (synopsis "Command line option parsing library")
    (description
     "Argtable is an ANSI C library for parsing GNU style command line
options.  It enables a program's command line syntax to be defined in the
source code as an array of argtable structs.  The command line is then parsed
according to that specification and the resulting values are returned in those
same structs where they are accessible to the main program.  Both tagged (-v,
--verbose, --foo=bar) and untagged arguments are supported, as are multiple
instances of each argument.  Syntax error handling is automatic and the library
also provides the means for generating a textual description of the command
line syntax.")
    (license lgpl2.0+)))

(define-public popt
  (package
    (name "popt")
    (version "1.18")
    (source (origin
             (method url-fetch)
             (uri (string-append "http://ftp.rpm.org/popt/releases"
                                 "/popt-1.x/popt-" version ".tar.gz"))
             (sha256
              (base32
               "1lf5zlj5rbg6s4bww7hbhpca97prgprnarx978vcwa0bl81vqnai"))))
    (build-system gnu-build-system)
    (arguments
     '(#:phases
       (modify-phases %standard-phases
         (add-before 'configure 'patch-test
           (lambda _
             (substitute* "tests/test-poptrc.in"
               (("/bin/echo") (which "echo")))
             (substitute* "tests/testit.sh"   ;don't expect old libtool names
               (("lt-test1") "test1"))
             #t)))))
    (home-page "http://rpm5.org/files/popt/")
    (synopsis "Command line option parsing library")
    (description
     "This is the popt(3) command line option parsing library.  While it is
similar to getopt(3), it contains a number of enhancements, including:

  - popt is fully reentrant;

  - popt can parse arbitrary argv[] style arrays while getopt(3) makes this
    quite difficult;

  - popt allows users to alias command line arguments;

  - popt provides convenience functions for parsing strings into argv[] style
    arrays.")
    (license x11)))

(define-public gflags
  (package
    (name "gflags")
    (version "2.2.2")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/gflags/gflags")
             (commit (string-append "v" version))))
       (sha256
        (base32 "147i3md3nxkjlrccqg4mq1kyzc7yrhvqv5902iibc7znkvzdvlp0"))
       (file-name (git-file-name name version))))
    (build-system cmake-build-system)
    (arguments
     '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"
                           "-DBUILD_TESTING=ON")))
    (home-page "https://gflags.github.io/gflags/")
    (synopsis "C++ library for command-line argument parsing")
    (description
     "Gflags is a C++ library to parse command-line flags.  It differs from
other such libraries in that command-line flag definitions can be scattered
around the source code, and not just listed in one place such as @code{main}.
This means that a single source-code file will define and use flags that are
meaningful to that file.  Any application that links in that file will get the
flags, and the gflags library will automatically handle that flag
appropriately.")
    (license bsd-3)))

(define-public gengetopt
  (package
    (name "gengetopt")
    (version "2.23")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/gengetopt/gengetopt-"
                           version ".tar.xz"))
       (sha256
        (base32
         "1b44fn0apsgawyqa4alx2qj5hls334mhbszxsy6rfr0q074swhdr"))))
    (build-system gnu-build-system)
    (arguments
     `(#:parallel-build? #f             ; not supported
       #:parallel-tests? #f))           ; likewise
    (native-inputs
     `(("texinfo" ,texinfo)))
    (synopsis "Create parsers for command line options")
    (description
     "GNU Gengetopt is a program to generate a C/C++ function for parsing
command-line options using the getopt_long function found in GNU
libc, removing some of the tedium of this task for large programs
that accept many options.  The options parsed by the generated
function may be in both short (e.g., \"-h\") and long (\"--help\")
formats, as specified by the GNU coding standards.  Additionally, the
output of the standard options \"--help\" and \"--version\" is generated
automatically.")
    (home-page "https://www.gnu.org/software/gengetopt/gengetopt.html")
    (license gpl3+)))
='logsubject'>system: Move nanorc to XDG_CONFIG_HOME.Efraim Flashner * gnu/system/shadow.scm (default-skeletons): Move .nanorc to .config/nano/nanorc. 2020-03-30Merge branch 'master' into core-updatesMarius Bakke Conflicts: gnu/packages/admin.scm gnu/packages/commencement.scm gnu/packages/guile.scm gnu/packages/linux.scm gnu/packages/package-management.scm gnu/packages/pulseaudio.scm gnu/packages/web.scm 2020-03-27Merge branch 'master' into core-updatesMarius Bakke Conflicts: gnu/packages/icu4c.scm gnu/packages/man.scm gnu/packages/python-xyz.scm guix/scripts/environment.scm guix/scripts/pack.scm guix/scripts/package.scm guix/scripts/pull.scm guix/store.scm 2020-03-26vm: Distinguish between success and failure of the guest code.Ludovic Courtès Fixes <https://bugs.gnu.org/34276>. Reported by Tobias Geerinckx-Rice <me@tobias.gr>. * gnu/system/vm.scm (expression->derivation-in-linux-vm)[loader]: Produce '/xchg/.exit-status' file upon success. * gnu/build/vm.scm (load-in-linux-vm): Check for 'xchg/.exit-status' once QEMU has completed and respond accordingly. 2020-03-22gnu: linux-libre-arm-veyron: Deprecate package.Vagrant Cascadian * gnu/packages/linux (linux-libre-arm-veyron): Mark as deprecated package. (kernel-config-veyron): Remove obsolete function. * gnu/system/examples/asus-c201.tmpl: Update to use linux-libre-arm-generic. * gnu/packages/aux-files/linux-libre/5.4-arm-veyron.conf: Delete file. * Makefile.am (AUX_FILES): Update accordingly. 2020-03-21Merge branch 'master' into core-updatesMarius Bakke 2020-03-19gnu: system: Remove guile-wm from skeleton.Jan Nieuwenhuizen * gnu/system/shadow.scm (default-skeletons): Remove guile-wm (especially as a dependency). 2020-03-10Merge branch 'master' into core-updatesMarius Bakke 2020-03-10vm: Compute UUIDs truly deterministically.Ludovic Courtès This is a followup to 1540075c790dfaeff52c93392f2fc63b9e23b77e. The mistake had no effect on prior Guile versions but it's visible since Guile 3.0.1 and the fix for <https://bugs.gnu.org/39634>. * gnu/system/vm.scm (operating-system-uuid): Hash a list of 'file-system-digest' values, not the 'file-system-type' procedure. 2020-03-04Merge branch 'master' into core-updatesMarius Bakke 2020-03-02file-systems: Add a 'file-system-device->string' procedure.Maxim Cournoyer * gnu/system/file-systems.scm (file-system-device->string): New procedure. * gnu/system.scm (bootable-kernel-arguments): Use it. * gnu/system/vm.scm (operating-system-uuid): Likewise. * guix/scripts/system.scm (display-system-generation): Likewise. 2020-02-12system: locale: Remove canonical-package call.Mathieu Othacehe This is a follow-up of dfc8ccbf5da96a67eb1cade499f0def21e7fdb02. Building locales using the same glibc as the one programs are linked against is enough. * gnu/system/locale.scm (%default-locale-libcs): Use the plain glibc package. 2020-02-11system: Stop using canonical-package.Mathieu Othacehe Usage of canonical-package outside of thunked fields breaks cross-compilation, see: https://lists.gnu.org/archive/html/guix-devel/2019-12/msg00410.html. * gnu/installer.scm (installer-program): Remove canonical-package. * gnu/services/base.scm (<nscd-cache>): Ditto, (%base-services): ditto. * gnu/services/xorg.scm: Remove useless canonical-package import. * gnu/system.scm (%base-packages): Remove canonical-package. * gnu/system/install.scm (%installation-services): Ditto, (installation-os): ditto. * gnu/system/locale.scm (single-locale-directory): Ditto. 2020-01-06system: linux-container: Recommend guix container.Efraim Flashner * gnu/system/linux-container.scm (container-script)[script]: Recommend using 'guix container' to get a shell inside the running container. 2020-01-03install: Add jfsutils to the installation image.Tobias Geerinckx-Rice * gnu/system/install.scm (installation-os)[packages]: Add jfsutils. 2020-01-03linux-initrd: Add support for JFS.Tobias Geerinckx-Rice * gnu/system/linux-initrd.scm (file-system-packages): Add jfs_fsck/static. (file-system-type-modules): Add ‘jfs’ module. 2020-01-03uuid: Add support for JFS.Tobias Geerinckx-Rice * gnu/system/uuid.scm (string->jfs-uuid): New procedure. (%uuid-parsers, %uuid-printers): Add ‘jfs’ file system type. 2019-12-18gnu: Remove uses of deprecated Qemu network configuration.Marius Bakke * gnu/build/vm.scm (load-in-linux-vm): Move Qemu network configuration from ARCH-SPECIFIC-FLAGS to the Qemu command line. Use the "-nic" option of Qemu instead of "-device" and "-net". * gnu/system/vm.scm (common-qemu-options): Do not add a '-net' command. (virtual-machine-compiler): Use "-nic user,..." instead of "-net". * doc/guix.texi (Installing Guix in a VM, Invoking guix system, Running Guix in a VM): Do the same for examples. 2019-12-07system: Remove custom 'config-file service from "vm-image.tmpl".Ludovic Courtès This example is broken since commit 99c45877a984dd0148151b2e304afef6fb04f1a5 (wrong file name passed to 'local-file'), and its functionality is superseded by the upcoming 'provenance-service-type'. * gnu/system/examples/vm-image.tmpl (this-file): Remove. <services>: Remove 'config-file service. 2019-12-01install: Pass 'local-file' literal strings for proper resolution.Ludovic Courtès This is a followup to 99c45877a984dd0148151b2e304afef6fb04f1a5, which introduced a regression: "guix system build gnu/system/install.scm" would fail to find the .tmpl files. * gnu/system/install.scm (/etc/configuration-files)[file]: Remove. [directory]: Use 'local-file' with a literal string. 2019-12-01system: vm: Support cross-compilation.Mathieu Othacehe * gnu/system.scm (system-linux-image-file-name): Add support for cross-built systems. Remove system argument that was ignored, (operating-system-kernel-file): adapt by removing ignored os argument. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Add target argument and turn inputs into native-inputs. Pass target to qemu-command and gexp->derivation calls. (iso9660-image): Add target argument and pass it to expression->derivation-in-linux-vm. Remove qemu from inputs as it is not necessary. (qemu-image): Add target argument, also remove qemu from inputs. Pass target argument to expression->derivation-in-linux-vm call. 2019-11-22system: vm: Add arm64 support.Mathieu Othacehe * gnu/build/vm.scm (load-in-linux-vm): Add target-arm64? argument and use it to pass correct arguments to qemu. * gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass the new target-arm64? argument added above. Do not add ESP partition on all ARM targets. Do not pass grub-efi package to initialize-hard-disk on ARM targets. 2019-11-18vm: Honor the VOLATILE? parameter when producing a system disk image.Maxim Cournoyer * gnu/system/vm.scm (system-disk-image): Honor the VOLATILE? parameter instead of hard coding its value to #t. Reported-by: Jelle Licht <jlicht@fsfe.org> 2019-11-04file-systems: Mount /var/run/nscd read-write in containers.Ludovic Courtès Fixes <https://bugs.gnu.org/37967>. Reported by Ivan Vilata i Balaguer <ivan@selidor.net>. * gnu/system/file-systems.scm (%network-file-mappings): Set 'writable?' to #true for /var/run/nscd. 2019-10-18gnu: Add u-boot-firefly-rk3399.Vagrant Cascadian * gnu/packages/bootloaders (u-boot-firefly-rk3399): New variable. * gnu/bootloader/u-boot (install-firefly-rk3399-u-boot): New variable. (u-boot-firefly-rk3399-bootloader): New variable. * gnu/system/install (define firefly-rk3399-installation-os): New variable. 2019-10-18gnu: Add u-boot-rock64-rk3328.Vagrant Cascadian * gnu/packages/bootloaders (u-boot-rock64-rk3328): New variable. * gnu/bootloader/u-boot (install-rock64-rk3328-u-boot): New variable. (u-boot-rock64-rk3328-bootloader): New variable. * gnu/system/install (define rock64-installation-os): New variable. 2019-10-18gnu: Add u-boot-rockpro64-rk3399Caliph Nomble * gnu/packages/bootloaders.scm (u-boot-rockpro64-rk3399): New exported variable. (u-boot-2019.10): New variable. * gnu/bootloader/u-boot.scm (u-boot-rockpro64-rk3399-bootloader): New exported variable. (install-rockpro64-rk3399-u-boot): New variable. * gnu/system/install.scm (rockpro64-installation-os): New exported variable. Adjusted-by: Vagrant Cascadian <vagrant@debian.org> Signed-off-by: Caliph Nomble <nomble@palism.com> Signed-off-by: Vagrant Cascadian <vagrant@debian.org> 2019-09-18linux-container: 'eval/container' correctly passes -L and -C flags.Ludovic Courtès This fixes a type error. * gnu/system/linux-container.scm (eval/container): Use 'append-map', not 'map'. * tests/containers.scm ("eval/container, non-empty load path"): New test. 2019-09-12linux-container: "run-container" scripts shows the container's PID.Ludovic Courtès * gnu/build/linux-container.scm (call-with-container): Add #:process-spawned-hook and honor it. * gnu/system/linux-container.scm (container-script)[script]: Define 'explain' and pass it as #:process-spawned-hook'. 2019-09-12linux-container: Exclude more services when sharing networking with the host.Ludovic Courtès * gnu/system/linux-container.scm (containerized-operating-system)[useless-services]: Add more services to the list when SHARED-NETWORK? is true.