aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/xfig.scm
blob: 09c759776145a2d60dfc81bf6f72e20837030ca1 (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
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2017, 2018 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 xfig)
  #:use-module (guix packages)
  #:use-module ((guix licenses) #:select (bsd-2))
  #:use-module (guix download)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages)
  #:use-module (gnu packages freedesktop)
  #:use-module (gnu packages xorg)
  #:use-module (gnu packages image)
  #:use-module (gnu packages compression))

(define-public xfig
  (package
    (name "xfig")
    (version "3.2.7a")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "mirror://sourceforge/mcj/"
                           name "-" version ".tar.xz"))
       (sha256
        (base32
         "096zgp0bqnxhgxbrv2jjylrjz3pr4da0xxznlk2z7ffxr5pri2fa"))))
    (build-system gnu-build-system)
    (native-inputs
     ;; For tests.
     `(("desktop-file-utils" ,desktop-file-utils)))
    (inputs
     `(("libxaw3d" ,libxaw3d)
       ("libjpeg" ,libjpeg)
       ("libpng" ,libpng)
       ("libxpm" ,libxpm)
       ("libx11" ,libx11)
       ("libxt" ,libxt)))
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-before 'install 'strip-bogus-exec-prefix
           (lambda* (#:key outputs #:allow-other-keys)
             (substitute* "xfig.desktop"
               ;; The patch-dot-desktop-files phase requires a relative name.
               (("Exec=/usr/bin/xfig") "Exec=xfig"))
             #t)))))
    (home-page "http://mcj.sourceforge.net/")
    (synopsis "Interactive drawing tool")
    (description
     "Xfig is an interactive drawing tool which runs under X Window System.
In xfig, figures may be drawn using objects such as circles, boxes, lines,
spline curves, text, etc.  It is also possible to import images in formats
such as GIF, JPEG, EPSF (PostScript), etc.  Those objects can be created,
deleted, moved or modified.  Attributes such as colors or line styles can be
selected in various ways.  For text, 35 fonts are available.")
    (license bsd-2)))

(define-public transfig
  (package
    (name "transfig")
    (version "3.2.5e")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "mirror://sourceforge/mcj/mcj-source/transfig."
                           version ".tar.gz"))
       (sha256
        (base32
         "0i3p7qmg2w8qrad3pn42b0miwarql7yy0gpd49b1bpal6bqsiicf"))))
    (build-system gnu-build-system)
    (native-inputs
     `(("imake" ,imake)
       ("makedepend" ,makedepend)))
    (inputs
     `(("xfig"    ,xfig)
       ("libjpeg" ,libjpeg)
       ("libpng"  ,libpng)
       ("libxpm"  ,libxpm)
       ("libx11"  ,libx11)
       ("zlib"    ,zlib)))
    (arguments
     `(#:tests? #f
       #:phases
       (modify-phases %standard-phases
         (replace 'configure
           (lambda* (#:key inputs outputs #:allow-other-keys)
             (let ((imake (assoc-ref inputs "imake"))
                   (out   (assoc-ref outputs "out")))
               (substitute* '("fig2dev/Imakefile"
                              "transfig/Imakefile")
                 (("XCOMM (BINDIR = )[[:graph:]]*" _ front)
                  (string-append front out "/bin"))
                 (("XCOMM USEINLINE") "USEINLINE")
                 ;; The variable name is deceptive.  The directory is used as an
                 ;; installation path for bitmaps.
                 (("(XFIGLIBDIR =[[:blank:]]*)[[:graph:]]*" _ front)
                  (string-append front out "/lib"))
                 (("(XPMLIBDIR = )[[:graph:]]*" _ front)
                  (string-append front (assoc-ref inputs "libxpm") "/lib"))
                 (("(XPMINC = -I)[[:graph:]]*" _ front)
                  (string-append front (assoc-ref inputs "libxpm") "/include/X11"))
                 (("/usr/local/lib/fig2dev") (string-append out "/lib")))
               ;; The -a argument is required in order to pick up the correct paths
               ;; to several X header files.
               (invoke "xmkmf" "-a")
               (substitute* '("Makefile"
                              "fig2dev/Makefile"
                              "transfig/Makefile")
                 ;; These imake variables somehow remain undefined
                 (("DefaultGcc2[[:graph:]]*Opt") "-O2")
                 ;; Reset a few variable defaults that are set in imake templates
                 ((imake) out)
                 (("(MANPATH = )[[:graph:]]*" _ front)
                  (string-append front out "/share/man"))
                 (("(CONFDIR = )([[:graph:]]*)" _ front default)
                  (string-append front out default)))
               #t)))
         (add-after 'install 'install/doc
           (lambda _
             (invoke "make" "install.man"))))))
    (home-page "http://mcj.sourceforge.net/")
    (synopsis "Create portable LaTeX figures")
    (description
     "Transfig creates a makefile to translate figures described in Fig code
or PIC into a specified LaTeX graphics language.  PIC files are identified by
the suffix \".pic\"; Fig files can be specified either with or without the
suffix \".fig\".  Transfig also creates a TeX macro file appropriate to the
target language.")
    (license bsd-2)))
417290bcddf5b095501614'>services: guix: Add 'generate-substitute-key?' field....* gnu/services/base.scm (<guix-configuration>)[generate-substitute-key?]: New field. (guix-activation): Honor it. * doc/guix.texi (Base Services): Document it. Ludovic Courtès 2022-02-25agetty-shepherd-service: Rename console agetty to "term-console" for clarity....* gnu/services/base.scm (agetty-shepherd-service)[provision]: Rename console agetty to "term-console". Danny Milosavljevic 2022-02-25services: %base-services: Adapt agetty-service-type to depend on syslogd...Fixes <https://issues.guix.gnu.org/30464>. * gnu/services/base.scm (%base-services): Reorder syslog-service for clarity. [shepherd-requirement]: New field. Danny Milosavljevic 2022-02-25services: agetty: Add shepherd-requirement....* gnu/services/base.scm (<agetty-configuration>): Add shepherd-requirement. * doc/guix.texi (agetty-configuration): Document it. Danny Milosavljevic 2022-02-20services: udev: Use a fixed location for the rules directory and config....Fixes <https://issues.guix.gnu.org/47681>. This change adjusts the location of the udev configuration file and rules directory to a fixed location. Since udev relies on inotify to discover change to its rules directory (/etc/udev/rules.d), by using a fixed directory layout, new udev rules can be automatically picked up without restarting the service. * gnu/services/base.scm (udev-rules-union): Build rules output directly in #$output. (udev-shepherd-service)[start]: Adjust the UDEV_CONFIG_FILE and EUDEV_RULES_DIRECTORY environment variables. [actions]: Remove field. The 'rules' action is no longer useful. (udev.conf): New variable. (udev-etc): New procedure. (udev-service-type): Extend the etc-service-type with it. Maxim Cournoyer 2022-01-20services: guix-publish: Add negative-ttl parameter....* gnu/services/base.scm (guix-publish-configuration): Add 'negative-ttl' field. (guix-publish-sheperd-service): Process it. * doc/guix.texi (Base Services)[guix-publish-service-type]: Add item for negative-ttl. Guillaume Le Vaillant 2022-01-18daemon: Always default to gzip for log compression....* nix/libstore/globals.cc (Settings::Settings): Have 'logCompression' default to COMPRESSION_GZIP unconditionally. * gnu/services/base.scm (<guix-configuration>)[log-compression]: Default to 'gzip. * doc/guix.texi (Invoking guix-daemon, Base Services): Adjust accordingly. Ludovic Courtès 2022-01-16services: guix: Add tar and gzip to PATH....* gnu/services/base.scm (guix-shepherd-service): Add the PATH environment-variable and populate it with tar and gzip. Timothy Sample 2022-01-08services: networking: Add netmask to loopback address....Previously, we would get a fishy 127.0.0.1/0 interface: $ ip a show dev lo 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet 127.0.0.1/0 scope global lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever With this change, we get nothing but the "/8" version: $ ip a show dev lo 1: lo: <LOOPBACK,MULTICAST,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope global lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever Reported by Yann Dupont <Yann.Dupont@univ-nantes.fr>. * gnu/services/base.scm (assert-valid-address): Remove special cases for 127.0.0.1 and ::1. (%loopback-static-networking): Add "/8". Ludovic Courtès 2021-12-21services: static-networking: Enable multicast by default....Fixes: <https://issues.guix.gnu.org/52520>. * gnu/services/base.scm (network-set-up/linux): Enable it. Mathieu Othacehe 2021-12-20services: static-networking: Sanitize <network-address> values....This makes sure users do not mistakenly configuring a network with "/0" as its netmask. * gnu/services/base.scm (assert-valid-address): New procedure. (<network-address>)[value]: Add it as 'sanitize'. Ludovic Courtès 2021-12-12services: Define '%loopback-static-networking'....* gnu/services/base.scm (%loopback-static-networking): New variable. (%base-services): Use it. * gnu/system/hurd.scm (%base-services/hurd): Use it. * gnu/system/install.scm (%installation-services): Use it. * doc/guix.texi (Networking Setup): Document it. Ludovic Courtès 2021-12-12services: Define '%qemu-static-networking'....* gnu/services/base.scm (%qemu-static-networking): New variable. * gnu/system/hurd.scm (%base-services/hurd): Use it. * doc/guix.texi (Networking Setup): Document it. Ludovic Courtès 2021-12-12services: static-networking: Change interface to mimic netlink....* gnu/services/base.scm (<static-networking>)[interface, ip, netmask] [gateway]: Remove. [addresses, links, routes]: New fields. [requirement]: Default to '(udev). (<network-address>, <network-link>, <network-route>): New record types. (ensure-no-separate-netmask, %ensure-no-separate-netmask): Remove. (ipv6-address?, cidr->netmask, ip+netmask->cidr) (network-set-up/hurd, network-tear-down/hurd) (network-set-up/linux, network-tear-down/linux) (static-networking->hurd-pfinet-options): New procedures. (static-networking-shepherd-service): New procedure. (static-networking-shepherd-services): Rewrite in terms of the above. (static-networking-service): Deprecate. Adjust to new 'static-networking' API. (%base-services): Likewise. * gnu/system/install.scm (%installation-services): Likewise. * gnu/system/hurd.scm (%base-services/hurd): Likewise, and separate 'loopback' from 'networking'. * gnu/build/hurd-boot.scm (set-hurd-device-translators): Remove "servers/socket/2". * gnu/tests/networking.scm (run-openvswitch-test)["networking has started on ovs0"]: Check for 'networking instead of 'networking-ovs0, which is no longer provided. * doc/guix.texi (Networking Setup): Document the new interface. Remove documentation of 'static-networking-service'. (Virtualization Services): Change Ganeti example to use the new interface. Ludovic Courtès 2021-12-12services: static-networking: Use Guile-Netlink on GNU/Linux....* gnu/services/base.scm (static-networking-shepherd-service): Define 'set-up-via-ioctl', 'tear-down-via-ioctl', 'set-up-via-netlink', 'tear-down-via-netlink', and 'helpers' and use them in 'start' and 'stop'. Add (ip *) modules to 'modules'. Ludovic Courtès 2021-11-30services: Accept <inferior-package>s in lieu of <package>s....* gnu/services/authentication.scm (fprintd-configuration) (nslcd-configuration): Substitute file-like objects for package ones. * gnu/services/cgit.scm (cgit-configuration, opaque-cgit-configuration): Likewise. * gnu/services/cups.scm (package-list?, cups-configuration): Likewise. * gnu/services/dns.scm (verify-knot-configuration) (ddclient-configuration): Likewise. * gnu/services/docker.scm (docker-configuration): Likewise. * gnu/services/file-sharing.scm (transmission-daemon-configuration): Likewise. * gnu/services/getmail.scm (getmail-configuration): Likewise. * gnu/services/mail.scm (dovecot-configuration) (opaque-dovecot-configuration): Likewise. * gnu/services/messaging.scm (prosody-configuration) (opaque-prosody-configuration): Likewise. * gnu/services/monitoring.scm (zabbix-server-configuration) (zabbix-agent-configuration): Likewise. * gnu/services/networking.scm (opendht-configuration): Likewise. * gnu/services/pm.scm (tlp-configuration): Likewise. * gnu/services/telephony.scm (jami-configuration): Likewise. * gnu/services/virtualization.scm (libvirt-configuration) (qemu-guest-agent-configuration): Likewise. * gnu/services/vpn.scm (openvpn-client-configuration): Likewise. Tobias Geerinckx-Rice 2021-11-23gnu: system: Make old-style swap use default flags....* gnu/services/base.scm (swap-service-type): Use default flags (0) if SWAP is not a new-style <swap-space> record. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> Josselin Poiret 2021-11-23system: Add swap flags....* gnu/system/file-systems.scm (swap-space)[priority, discard?]: Add them. * guix/build/syscalls.scm (SWAP_FLAG_PREFER, SWAP_FLAG_PRIO_MASK, SWAP_FLAG_PRIO_SHIFT, SWAP_FLAG_DISCARD): Add them. * gnu/build/file-systems.scm (swap-space->flags-bit-mask): Add it. * gnu/services/base.scm (swap-service-type): Use it. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Josselin Poiret 2021-11-23system: Rework swap space support, add dependencies....* gnu/system/file-systems.scm (swap-space): Add it. * gnu/system.scm (operating-system)[swap-devices]: Update comment. * gnu/services/base.scm (swap-space->shepherd-service-name, swap-deprecated->shepherd-service-name, swap->shepherd-service-name): Add them. * gnu/services/base.scm (swap-service-type, swap-service): Use the new records. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Josselin Poiret 2021-08-29services: base: Honor file-system-create-mount-point? at all times....Fixes <https://issues.guix.gnu.org/40158>. * gnu/services/base.scm (file-system-shepherd-service): Update doc. Return a shepherd service for the mount point when either MOUNT? or CREATE? is true. [start]: Only mount when MOUNT? is true. (file-system-shepherd-services): Also consider file systems with create-mount-point? set to #t. Maxim Cournoyer 2021-08-07services: pam-limits: fix limits.conf location...* gnu/services/base.scm: fix limits.conf location This fixes #49771 Signed-off-by: Julien Lepiller <julien@lepiller.eu> muradm 2021-08-04services: guix: Use "match-record" in activation....It's more explicit to specify used fields instead of depending on their position. * gnu/services/base.scm (guix-activation): Replace "match" with "match-record". Brice Waegeneire 2021-07-13services: gpm: Use "make-forkexec-contstructor"....* gnu/services/base.scm (gpm-shepherd-service)[start]: Replace custom logic with "make-forkexec-constructor". Brice Waegeneire 2021-06-29services: kmscon: Add keyboard-layout fields....* gnu/services/base.scm (<kmscon-configuration>): Add keyboard-layout fields. * doc/guix.texi (Base Services): Document them. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> luhui 2021-06-19services: guix: Authorize 'bordeaux.guix.gnu.org.pub' by default....This follows on from the changes in 4985a4272497bf9ba87a2190353d915da9b55906. * gnu/services/base.scm (%default-authorized-guix-keys): Add bordeaux.guix.gnu.org.pub. Signed-off-by: Christopher Baines <mail@cbaines.net> Jack Hill 2021-06-14services: Remove deprecated service procedures....These service procedures were deprecated in January 2019, for instance in commit 65a67bf711b14bc7200f6730c0f173375ca12974. * gnu/services/avahi.scm (avahi-service): Remove. * gnu/services/base.scm (console-keymap, guix-service) (guix-publish-service, gpm-service, urandom-seed-service): Remove. * gnu/services/desktop.scm (upower-service, colord-service): Remove. * gnu/services/mcron.scm (mcron-service): Remove. * gnu/services/messaging.scm (bitlbee-service): Remove. * gnu/services/networking.scm (dhcp-client-service, ntp-service) (tor-service): Remove. * gnu/services/xorg.scm (slim-service, gdm-service): Remove. Ludovic Courtès