+++ /dev/null
-package definitions for GNU Guix
----------------------------------
-
-About
------
-
-This directory contains various files to work with GNUnet using Guix:
-
-* A folder intended to be used with GUIX_PACKAGE_PATH ("packages")
-* gnunet-doc.scm: A file to ease the building of the docgen script output
-* gnunet.scm: A file to build gnunet with all tests
-* guix-env.scm
-
-The workflow has to be documented and will make its way into the GNUnet
-Documentation eventually. For now, all uses of guix environment, guix package,
-etc apply.
-Example invocation:
- guix environment --ad-hoc --container --network --fallback -K -l contrib/packages/guix/gnunet.scm
-which is worth improving, but essentially takes you into an container environment
-with gnunet from HEAD, under the condition that it builds. This won't include an editor,
-so you want to run
- guix environment --ad-hoc emacs --container --network --fallback -K -l contrib/packages/guix/gnunet.scm
-(untested). You get the idea that this folder is a historical mess and should be cleaned up
-and properly documented.
-
-Usage
------
-
-Just point Guix towards the root of this source tree.
-Assuming that your gnunet checkout is in $HOME/src/gnunet:
-
- export GUIX_PACKAGE_PATH=$HOME/src/gnunet/contrib/packages/guix/packages
-
-or (if you are in the root of the gnunet git repository):
-
- guix package -L contrib/packages/guix/packages -i package-name
-
-The packages in this repository will take precedence over those in the
-official distribution.
-
-
-To make use of the packages in your GuixSD config file:
-
-Be sure to have GUIX_PACKAGE_PATH for your shell exported,
-for Bash this could be achieved like this:
-
- export GUIX_PACKAGE_PATH="/full/path/to/gnunet/contrib/packages/guix/directory"
-
-In the section of your systems "config.scm", you should find something like this:
-
- (use-modules (gnu) (gnu system nss))
-
-Now to make use of "gnunetg" as an systemwide installed package we change this
-to:
-
- (use-modules (gnu) (gnu system nss)
- (gnunet packages gnunet))
-
-and do the usual thing:
- - save
- - guix system build /etc/config.scm
- - sudo -E guix system reconfigure /etc/config.scm
-
-The "-E" in "sudo -E" is important to keep the environment variables (GUIX_PACKAGE_PATH).
+++ /dev/null
-;;; This file is part of GNUnet.
-;;; Copyright (C) 2016, 2017 GNUnet e.V.
-;;;
-;;; GNUnet 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, or (at your
-;;; option) any later version.
-;;;
-;;; GNUnet 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 GNUnet; see the file COPYING. If not, write to the
-;;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;;; Boston, MA 02110-1301, USA.
-;;;
-
-(use-modules
- (ice-9 popen)
- (ice-9 match)
- (ice-9 rdelim)
- (guix packages)
- (guix build-system gnu)
- (guix gexp)
- ((guix build utils) #:select (with-directory-excursion))
- (guix git-download)
- (guix utils) ; current-source-directory
- (gnu packages)
- (gnu packages aidc)
- (gnu packages autotools)
- (gnu packages backup)
- (gnu packages base)
- (gnu packages compression)
- (gnu packages curl)
- (gnu packages databases)
- (gnu packages file)
- (gnu packages gettext)
- (gnu packages glib)
- (gnu packages gnome)
- (gnu packages gnunet)
- (gnu packages gnupg)
- (gnu packages gnuzilla)
- (gnu packages groff)
- (gnu packages gstreamer)
- (gnu packages gtk)
- (gnu packages guile)
- (gnu packages graphviz)
- (gnu packages image)
- (gnu packages image-viewers)
- (gnu packages libidn)
- (gnu packages libunistring)
- (gnu packages linux)
- (gnu packages maths)
- (gnu packages multiprecision)
- (gnu packages perl)
- (gnu packages pkg-config)
- (gnu packages pulseaudio)
- (gnu packages python)
- (gnu packages tex)
- (gnu packages texinfo)
- (gnu packages tex)
- (gnu packages tls)
- (gnu packages video)
- (gnu packages web)
- (gnu packages xiph)
- ;;(gnunet packages texlive) ;GNUnet module including texlive-2012 WIP
- ((guix licenses) #:prefix license:))
-
-(define %source-dir (string-append (current-source-directory)
- "/../../../"))
-
-(define gnunet-doc
- (let* ((revision "2")
- (select? (delay (or (git-predicate
- (string-append (current-source-directory)
- "/../../../"))
- source-file?))))
- (package
- (name "gnunet-doc")
- (version (string-append "0.10.1-" revision "." "dev"))
- (source
- (local-file ;;"../../.."
- ;;%source-dir
- ;;(string-append (getcwd) "/../../../")
- (string-append (getcwd)) ;drrty hack and this assumes one static position FIXME!
- #:recursive? #t))
- ;;#:select? (git-predicate %source-dir)))
- ;;#:select? (force select?)))
- (build-system gnu-build-system)
- (inputs
- `(("glpk" ,glpk)
- ("gnurl" ,gnurl)
- ("gstreamer" ,gstreamer)
- ("gst-plugins-base" ,gst-plugins-base)
- ("gnutls/dane" ,gnutls/dane)
- ("libextractor" ,libextractor)
- ("libgcrypt" ,libgcrypt)
- ("libidn" ,libidn)
- ("libmicrohttpd" ,libmicrohttpd)
- ("libltdl" ,libltdl)
- ("libunistring" ,libunistring)
- ("openssl" ,openssl)
- ("opus" ,opus)
- ("pulseaudio" ,pulseaudio)
- ("sqlite" ,sqlite)
- ("postgresql" ,postgresql)
- ("mysql" ,mysql)
- ("zlib" ,zlib)
- ("perl" ,perl)
- ("python-2" ,python-2) ; tests and gnunet-qr
- ("jansson" ,jansson)
- ("nss" ,nss)
- ("glib" ,glib "bin")
- ("gmp" ,gmp)
- ("bluez" ,bluez) ; for optional bluetooth feature
- ("glib" ,glib)
- ;;("texlive-minimal" ,texlive-minimal) ; optional.
- ("texlive" ,texlive) ;TODO: Stabilize Texlive-2012 package
- ("libogg" ,libogg)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("autoconf" ,autoconf)
- ("automake" ,automake)
- ("gnu-gettext" ,gnu-gettext)
- ("graphviz" ,graphviz) ; dot
- ("texinfo-5" ,texinfo-5) ; Debian stable
- ("which" ,which)
- ("libtool" ,libtool)))
- (arguments
- `(#:configure-flags
- (list "--enable-documentation")
- #:tests? #f ;Don't run tests
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'autoconf
- (lambda _
- (substitute* "bootstrap"
- (("contrib/pogen.sh") "sh contrib/pogen.sh"))
- (for-each (lambda (f) (chmod f #o755))
- (find-files "po" ""))
- (zero? (system* "sh" "bootstrap"))))
- (add-after 'build 'run-gendocs
- (lambda _
- (chdir "doc/documentation")
- ;;(zero? (system* "make" "dev-build"))))
- (zero? (system* "sh" "run-gendocs.sh"))))
- ;; (zero? (system* "make" "pdf"))
- ;; (zero? (system* "make" "html"))
- ;; (zero? (system* "make" "info"))))
- ;;(zero? (system* "make" "doc-all-give-me-the-noise"))))
- (replace 'install
- (lambda _
- (zero? (system* "make" "doc-gendoc-install")))))))
- ;;(lambda* (#:key outputs #:allow-other-keys)
- ;; (let* ((out (assoc-ref outputs "out"))
- ;; (doc (string-append out "/share/doc/gnunet")))
- ;; (mkdir-p doc)
- ;; (copy-recursively "images"
- ;; (string-append doc
- ;; "/images"))
- ;; (mkdir-p (string-append doc "/gnunet"))
- ;; (install-file "gnunet.pdf" doc)
- ;; (install-file "gnunet.info" doc)
- ;; (install-file "gnunet.log" doc) ;TODO: Move to 'dev' output?
- ;; (copy-recursively "gnunet"
- ;; (string-append doc
- ;; "/gnunet"))
- ;; (install-file "gnunet-c-tutorial.pdf" doc)
- ;; (install-file "gnunet-c-tutorial.info" doc)
- ;; (install-file "gnunet-c-tutorial.log" doc) ;TODO: Move to 'dev' output?
- ;; (copy-recursively "gnunet-c-tutorial"
- ;; (string-append doc
- ;; "/gnunet-c-tutorial")))
- ;; #t)))))
- (synopsis "Documentation of GNUnet")
- (description
- "GNUnet documentation build")
- (license (list license:fdl1.3+ license:gpl3+))
- (home-page "https://gnunet.org/"))))
-
-gnunet-doc
+++ /dev/null
-;;; This file is part of GNUnet.
-;;; Copyright (C) 2016, 2017 GNUnet e.V.
-;;;
-;;; GNUnet 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, or (at your
-;;; option) any later version.
-;;;
-;;; GNUnet 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 GNUnet; see the file COPYING. If not, write to the
-;;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;;; Boston, MA 02110-1301, USA.
-
-(use-modules
- (ice-9 popen)
- (ice-9 match)
- (ice-9 rdelim)
- (guix packages)
- (guix build-system gnu)
- (guix gexp)
- ((guix build utils) #:select (with-directory-excursion))
- (guix git-download)
- (guix utils) ; current-source-directory
- (gnu packages)
- (gnu packages aidc)
- (gnu packages autotools)
- (gnu packages backup)
- (gnu packages base)
- (gnu packages compression)
- (gnu packages curl)
- (gnu packages databases)
- (gnu packages file)
- (gnu packages gettext)
- (gnu packages glib)
- (gnu packages gnome)
- (gnu packages gnunet)
- (gnu packages gnupg)
- (gnu packages gnuzilla)
- (gnu packages groff)
- (gnu packages gstreamer)
- (gnu packages gtk)
- (gnu packages guile)
- (gnu packages image)
- (gnu packages image-viewers)
- (gnu packages libidn)
- (gnu packages libunistring)
- (gnu packages linux)
- (gnu packages maths)
- (gnu packages multiprecision)
- (gnu packages perl)
- (gnu packages pkg-config)
- (gnu packages pulseaudio)
- (gnu packages python)
- (gnu packages tex)
- (gnu packages texinfo)
- (gnu packages tex)
- (gnu packages tls)
- (gnu packages upnp)
- (gnu packages video)
- (gnu packages web)
- (gnu packages xiph)
- ((guix licenses) #:prefix license:))
-
-(define %source-dir (string-append (current-source-directory)
- "/../../../"))
-
-(define gnunet-test-git
- (let* ((revision "1")
- (select? (delay (or (git-predicate
- (string-append (current-source-directory)
- "/../../../"))
- source-file?))))
- (package
- (name "gnunet-test-git")
- (version (string-append "0.10.1-" revision "." "dev"))
- (source
- (local-file ;;"../../.."
- ;;%source-dir
- ;;(string-append (getcwd) "/../../../")
- (string-append (getcwd)) ;drrty hack and this assumes one static position FIXME!
- #:recursive? #t))
- ;;#:select? (git-predicate %source-dir)))
- ;;#:select? (force select?)))
- (build-system gnu-build-system)
- (inputs
- `(("glpk" ,glpk)
- ("gnurl" ,gnurl)
- ("gstreamer" ,gstreamer)
- ("gst-plugins-base" ,gst-plugins-base)
- ("gnutls/dane" ,gnutls/dane) ;Change to gnutls/dane once it is merged.
- ("libextractor" ,libextractor)
- ("libgcrypt" ,libgcrypt)
- ("libidn" ,libidn)
- ("libmicrohttpd" ,libmicrohttpd)
- ("libltdl" ,libltdl)
- ("libunistring" ,libunistring)
- ("openssl" ,openssl)
- ("opus" ,opus)
- ("pulseaudio" ,pulseaudio)
- ("sqlite" ,sqlite)
- ("postgresql" ,postgresql)
- ("mysql" ,mysql)
- ("zlib" ,zlib)
- ("perl" ,perl)
- ("python-2" ,python-2) ; tests and gnunet-qr
- ("jansson" ,jansson)
- ("nss" ,nss)
- ("glib" ,glib "bin")
- ("gmp" ,gmp)
- ("bluez" ,bluez) ; for optional bluetooth feature
- ("glib" ,glib)
- ;; TODO: figure out the right texlive parts.
- ;;("texlive-minimal" ,texlive-minimal)
- ("texlive" ,texlive)
- ("miniupnpc" ,miniupnpc)
- ("libogg" ,libogg)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("autoconf" ,autoconf)
- ("automake" ,automake)
- ("gnu-gettext" ,gnu-gettext)
- ("which" ,which)
- ("texinfo" ,texinfo-5) ; Debian stable: 5.2
- ("libtool" ,libtool)))
- (outputs '("out" "debug"))
- (arguments
- `(#:configure-flags
- (list (string-append "--with-nssdir=" %output "/lib")
- ;;"--enable-gcc-hardening"
- ;;"--enable-linker-hardening"
- "--enable-logging=verbose"
- "CFLAGS=-ggdb -O0")
- #:phases
- ;; swap check and install phases and set paths to installed bin
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-bin-sh
- (lambda _
- (substitute* "bootstrap"
- (("contrib/pogen.sh") "sh contrib/pogen.sh"))
- (for-each (lambda (f) (chmod f #o755))
- (find-files "po" ""))
- #t))
- (add-after 'patch-bin-sh 'bootstrap
- (lambda _
- (zero? (system* "sh" "bootstrap"))))
- (delete 'check)
- ;; XXX: https://gnunet.org/bugs/view.php?id=4619
- (add-after 'install 'set-path-for-check
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (lib (string-append out "/lib")))
- (setenv "GNUNET_PREFIX" lib)
- (setenv "PATH" (string-append (getenv "PATH") ":" bin))
- (zero? (system* "make" "check"))))))))
- (synopsis "tests enabled without experimental")
- (description
- "GNUnet from git HEAD")
- (license license:gpl3+)
- (home-page "https://gnunet.org"))))
-
-gnunet-test-git
+++ /dev/null
-;;; This file is part of GNUnet.
-;;; Copyright (C) 2016, 2017 GNUnet e.V.
-;;;
-;;; GNUnet 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, or (at your
-;;; option) any later version.
-;;;
-;;; GNUnet 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 GNUnet; see the file COPYING. If not, write to the
-;;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;;; Boston, MA 02110-1301, USA.
-;;;
-;; Guix package for GNUnet development
-;;
-;; INSTALL
-;; -------
-;;
-;; To build and install the package in the user environment, use:
-;;
-;; guix package --install-from-file=guix-env.scm
-;;
-;; BUILD ONLY
-;; ----------
-;;
-;; Precondition for using this file is that you run Guix and have a
-;; development setup for this setup, which involves a version of Guile in
-;; your PATH.
-;;
-;; cd contrib/packages/guix
-;; guix build -f guix-env.scm
-;;
-;; We'd like to provide advanced functions such as guix environment specific
-;; gnunet-git package and usage of gnunet-gtk-git, but this is subject
-;; to tests right now.
-
-(use-modules
- (ice-9 popen)
- (ice-9 match)
- (ice-9 rdelim)
- (guix packages)
- (guix build-system gnu)
- (guix gexp)
- ((guix build utils) #:select (with-directory-excursion))
- (guix git-download)
- (guix utils) ; current-source-directory
- (gnu packages)
- (gnu packages aidc)
- (gnu packages autotools)
- (gnu packages backup)
- (gnu packages base)
- (gnu packages compression)
- (gnu packages curl)
- (gnu packages databases)
- (gnu packages file)
- (gnu packages gettext)
- (gnu packages glib)
- (gnu packages gnome)
- (gnu packages gnunet)
- (gnu packages gnupg)
- (gnu packages gnuzilla)
- (gnu packages groff)
- (gnu packages gstreamer)
- (gnu packages gtk)
- (gnu packages guile)
- (gnu packages image)
- (gnu packages image-viewers)
- (gnu packages libidn)
- (gnu packages libunistring)
- (gnu packages linux)
- (gnu packages maths)
- (gnu packages multiprecision)
- (gnu packages perl)
- (gnu packages pkg-config)
- (gnu packages pulseaudio)
- (gnu packages python)
- (gnu packages tex)
- (gnu packages texinfo)
- (gnu packages tex)
- (gnu packages tls)
- (gnu packages video)
- (gnu packages web)
- (gnu packages xiph)
- ((guix licenses) #:prefix license:))
-
-(define %source-dir (string-append (current-source-directory)
- "/../../../"))
-
-(define gnunet-git
- (let* ((revision "3")
- (select? (delay (or (git-predicate
- (string-append (current-source-directory)
- "/../../../"))
- source-file?))))
- (package
- (name "gnunet-git")
- (version (string-append "0.10.1-" revision "." "dev"))
- (source
- (local-file ;;"../../.."
- ;;%source-dir
- ;;(string-append (getcwd) "/../../../")
- (string-append (getcwd)) ;drrty hack and this assumes one static position FIXME!
- #:recursive? #t))
- ;;#:select? (git-predicate %source-dir)))
- ;;#:select? (force select?)))
- (build-system gnu-build-system)
- (inputs
- `(("glpk" ,glpk)
- ("gnurl" ,gnurl)
- ("gstreamer" ,gstreamer)
- ("gst-plugins-base" ,gst-plugins-base)
- ("gnutls" ,gnutls) ;Change to gnutls/dane once it is merged.
- ("libextractor" ,libextractor)
- ("libgcrypt" ,libgcrypt)
- ("libidn" ,libidn)
- ("libmicrohttpd" ,libmicrohttpd)
- ("libltdl" ,libltdl)
- ("libunistring" ,libunistring)
- ("openssl" ,openssl)
- ("opus" ,opus)
- ("pulseaudio" ,pulseaudio)
- ("sqlite" ,sqlite)
- ("postgresql" ,postgresql)
- ("mysql" ,mysql)
- ("zlib" ,zlib)
- ("perl" ,perl)
- ("python-2" ,python-2) ; tests and gnunet-qr
- ("jansson" ,jansson)
- ("nss" ,nss)
- ("glib" ,glib "bin")
- ("gmp" ,gmp)
- ("bluez" ,bluez) ; for optional bluetooth feature
- ("glib" ,glib)
- ;; There are currently no binary substitutes for texlive on
- ;; hydra.gnu.org or its mirrors due to its size. Uncomment if you need it.
- ;;("texlive-minimal" ,texlive-minimal) ; optional.
- ("texlive" ,texlive)
- ("libogg" ,libogg)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("autoconf" ,autoconf)
- ("automake" ,automake)
- ("gnu-gettext" ,gnu-gettext)
- ("which" ,which)
- ("texinfo" ,texinfo-5) ; Debian stable: 5.2
- ("libtool" ,libtool)))
- ;; TODO: To make use of out:debug, which carries the symbols,
- ;; this file needs to fixed.
- (outputs '("out" "debug"))
- (arguments
- `(#:configure-flags
- (list (string-append "--with-nssdir=" %output "/lib");"/lib/gnunet/nss")
- "--enable-gcc-hardening"
- "--enable-linker-hardening"
-
- "--enable-poisoning"
- "--enable-sanitizer"
- "--enable-experimental"
- "--enable-logging=verbose"
- "CFLAGS=-ggdb -O0")
- ;;#:parallel-tests? #f ; parallel building seems to fail
- ;;#:tests? #f ; fail: test_gnunet_statistics.py
- #:phases
- ;; swap check and install phases and set paths to installed bin
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-bin-sh
- (lambda _
- (substitute* "bootstrap"
- (("contrib/pogen.sh") "sh contrib/pogen.sh"))
- (for-each (lambda (f) (chmod f #o755))
- (find-files "po" ""))
- #t))
- (add-after 'patch-bin-sh 'bootstrap
- (lambda _
- (zero? (system* "sh" "bootstrap"))))
- ;; (add-after 'install 'install-lib-nss
- ;; (lambda* (#:key outputs #:allow-other-keys)
- ;; (let* ((out (assoc-ref outputs "out"))
- ;; (lib (string-append out "/lib/nss/")))
- ;; (mkdir-p lib)
- ;; (copy-recursively "src/gns/nss/" lib)
- ;; (install-file "ping" "combobreak"))
- ;; #t))
- (delete 'check))))
- ;; XXX: https://gnunet.org/bugs/view.php?id=4619
- ;; (add-after 'install 'set-path-for-check
- ;; (lambda* (#:key outputs #:allow-other-keys)
- ;; (let* ((out (assoc-ref outputs "out"))
- ;; (bin (string-append out "/bin"))
- ;; (lib (string-append out "/lib")))
- ;; (setenv "GNUNET_PREFIX" lib)
- ;; (setenv "PATH" (string-append (getenv "PATH") ":" bin))
- ;; (zero? (system* "make" "check"))))))))
- (synopsis "Secure, decentralized, peer-to-peer networking framework")
- (description
- "GNUnet is a framework for secure peer-to-peer networking. The
-high-level goal is to provide a strong foundation of free software for a
-global, distributed network that provides security and privacy. GNUnet in
-that sense aims to replace the current internet protocol stack. Along with
-an application for secure publication of files, it has grown to include all
-kinds of basic applications for the foundation of a GNU internet.")
- (license license:gpl3+)
- (home-page "https://gnunet.org/"))))
-
-gnunet-git
+++ /dev/null
-;;; This file is part of GNUnet.
-;;; Copyright (C) 2016, 2017 GNUnet e.V.
-;;;
-;;; GNUnet 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, or (at your
-;;; option) any later version.
-;;;
-;;; GNUnet 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 GNUnet; see the file COPYING. If not, write to the
-;;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;;; Boston, MA 02110-1301, USA.
-
-(define-module (gnunet packages gnunet)
- #:use-module (guix build-system gnu)
- #:use-module (guix download)
- #:use-module (guix git-download)
- #:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix packages)
- #:use-module (gnu packages)
- #:use-module (gnu packages admin)
- #:use-module (gnu packages aidc)
- #:use-module (gnu packages autotools)
- #:use-module (gnu packages base)
- #:use-module (gnu packages bison)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages databases)
- #:use-module (gnu packages gettext)
- #:use-module (gnu packages glib)
- #:use-module (gnu packages gnome)
- #:use-module (gnu packages gnunet)
- #:use-module (gnu packages gnupg)
- #:use-module (gnu packages gnuzilla)
- #:use-module (gnu packages gstreamer)
- #:use-module (gnu packages gtk)
- #:use-module (gnu packages libidn)
- #:use-module (gnu packages libunistring)
- #:use-module (gnu packages linux)
- #:use-module (gnu packages man)
- #:use-module (gnu packages image-viewers)
- #:use-module (gnu packages maths)
- #:use-module (gnu packages multiprecision)
- #:use-module (gnu packages ncurses)
- #:use-module (gnu packages pcre)
- #:use-module (gnu packages perl)
- #:use-module (gnu packages pkg-config)
- #:use-module (gnu packages pulseaudio)
- #:use-module (gnu packages python)
- #:use-module (gnu packages tls)
- #:use-module (gnu packages texinfo)
- #:use-module (gnu packages tex)
- #:use-module (gnu packages upnp)
- #:use-module (gnu packages web)
- #:use-module (gnu packages xiph))
-
-;; TODO: Use HEAD without checking sum of it.
-;; Explanation for name scheme: UNIXPATH is capped at 108 characters,
-;; this causes lots of tests to fail.
-;; FIXME: make this file MUCH shorter.
-(define-public gnunetg
- (let* ((commit "3c3090717610ea787fdd3562901329254a6af0d6")
- (revision "32"))
- (package
- (inherit gnunet)
- (name "gnunetg")
- (version (string-append "0.10.1" "-" revision
- "." (string-take commit 7)))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gnunet.org/git/gnunet.git")
- (commit commit)))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "0g0x1r833jkssfd2sndy37509dqf9f8myjvg7mnadwc1irp393bl"))))
- (build-system gnu-build-system)
- (inputs
- `(("glpk" ,glpk)
- ("gnurl" ,gnurl)
- ("gstreamer" ,gstreamer)
- ("gst-plugins-base" ,gst-plugins-base)
- ("gnutls" ,gnutls)
- ("libextractor" ,libextractor)
- ("libgcrypt" ,libgcrypt)
- ("libidn" ,libidn)
- ("libmicrohttpd" ,libmicrohttpd)
- ("libltdl" ,libltdl)
- ("libunistring" ,libunistring)
- ("openssl" ,openssl)
- ("opus" ,opus)
- ("pulseaudio" ,pulseaudio)
- ("sqlite" ,sqlite)
- ("zlib" ,zlib)
- ("perl" ,perl)
- ("python" ,python-2) ; tests and gnunet-qr
- ("jansson" ,jansson)
- ("ncurses" ,ncurses)
- ("nss" ,nss)
- ("gmp" ,gmp)
- ("miniupnpc" ,miniupnpc)
- ("bluez" ,bluez) ; for optional bluetooth feature
- ("glib" ,glib)
- ;; ("texlive-minimal" ,texlive-minimal) ; optional.
- ("libogg" ,libogg)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("autoconf" ,autoconf)
- ("automake" ,automake)
- ("gnu-gettext" ,gnu-gettext)
- ("which" ,which)
- ("texinfo" ,texinfo)
- ("libtool" ,libtool)))
- (outputs '("out" "debug"))
- (arguments
- `(#:configure-flags
- (list (string-append "--with-nssdir=" %output "/lib")
- "--enable-experimental")
- #:parallel-tests? #f ; parallel building is not functional
- #:tests? #f ; FAIL: test_gnunet_statistics.py
- #:phases
- ;; swap check and install phases and set paths to installed bin
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-bin-sh
- (lambda _
- (substitute* "bootstrap"
- (("contrib/pogen.sh") "sh contrib/pogen.sh"))
- (for-each (lambda (f) (chmod f #o755))
- (find-files "po" ""))
- #t))
- (add-after 'patch-bin-sh 'bootstrap
- (lambda _
- (zero? (system* "sh" "bootstrap"))))
- ;; DISABLED until failing testcases are fixed.
- ;; this test fails in our environment, disable it:
- ;; XXX: specify which ones fail.
- ;; (add-after 'patch-bin-sh 'disable-test_quota_compliance_tcp_asymmetric
- ;; (lambda _
- ;; (substitute* '("src/transport/Makefile.am")
- ;; (("test_quota_compliance_tcp_asymmetric") ""))))
- ;; (("test_quota_compliance_http_asymmetric") "")
- ;; (("test_quota_compliance_https_asymmetric") "")
- ;; (("test_quota_compliance_unix") "")
- ;; (("test_quota_compliance_unix_asymmetric") ""))))
- ;; check is between build and install, fix this to:
- ;; build - install - check, else the test suite fails.
- (delete 'check)))))))
- ;; (add-after 'install 'set-path-for-check
- ;; (lambda* (#:key outputs #:allow-other-keys)
- ;; (let* ((out (assoc-ref outputs "out"))
- ;; (bin (string-append out "/bin"))
- ;; (lib (string-append out "/lib")))
- ;; (setenv "GNUNET_PREFIX" lib)
- ;; (setenv "PATH" (string-append (getenv "PATH") ":" bin))
- ;; ;; XXX: https://gnunet.org/bugs/view.php?id=4619#c11061
- ;; ;; Enable core dump before the tests.
- ;; ;; XXX: HOW??? ulimit -c unlimited
- ;; (zero? (system* "make" "check"))))))))
-
-(define-public gnunet-doc
- (package
- (name "gnunet-doc")
- (version (package-version gnunetg))
- (source (package-source gnunetg))
- (build-system gnu-build-system)
- ;; FIXME: Introduce DOCS_ONLY option for configure script.
- ;; This should prevent the checks for all required software.
- (inputs
- `(("glpk" ,glpk)
- ("gnurl" ,gnurl)
- ("gstreamer" ,gstreamer)
- ("gst-plugins-base" ,gst-plugins-base)
- ("gnutls" ,gnutls)
- ("libextractor" ,libextractor)
- ("libgcrypt" ,libgcrypt)
- ("libidn" ,libidn)
- ("libmicrohttpd" ,libmicrohttpd)
- ("libltdl" ,libltdl)
- ("libunistring" ,libunistring)
- ("openssl" ,openssl)
- ("opus" ,opus)
- ("pulseaudio" ,pulseaudio)
- ("sqlite" ,sqlite)
- ("zlib" ,zlib)
- ("perl" ,perl)
- ("python" ,python-2) ; tests and gnunet-qr
- ("jansson" ,jansson)
- ("ncurses" ,ncurses)
- ("nss" ,nss)
- ("gmp" ,gmp)
- ("miniupnpc" ,miniupnpc)
- ("bluez" ,bluez) ; for optional bluetooth feature
- ("glib" ,glib)
- ("texlive" ,texlive) ;TODO: Use a minimal subset.
- ("libogg" ,libogg)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("autoconf" ,autoconf)
- ("which" ,which)
- ("automake" ,automake)
- ("gnu-gettext" ,gnu-gettext)
- ("texinfo" ,texinfo)
- ("libtool" ,libtool)))
- (arguments
- `(#:tests? #f ;Don't run tests
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-bin-sh
- (lambda _
- (substitute* "bootstrap"
- (("contrib/pogen.sh") "sh contrib/pogen.sh"))
- (for-each (lambda (f) (chmod f #o755))
- (find-files "po" ""))
- #t))
- (add-after 'patch-bin-sh 'bootstrap
- (lambda _
- (zero? (system* "sh" "bootstrap"))))
- (replace 'build
- (lambda _
- (chdir "doc")
- (zero? (system* "make" "doc-all-give-me-the-noise"))))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (doc (string-append out "/share/doc/gnunet")))
- (mkdir-p doc)
- (mkdir-p (string-append doc "/gnunet"))
- (install-file "gnunet.pdf" doc)
- (install-file "gnunet.info" doc)
- (copy-recursively "gnunet"
- (string-append doc
- "/gnunet"))
- (install-file "gnunet-c-tutorial.pdf" doc)
- (install-file "gnunet-c-tutorial.info" doc)
- (copy-recursively "gnunet-c-tutorial"
- (string-append doc
- "/gnunet-c-tutorial")))
- #t)))))
- (synopsis "GNUnet documentation")
- (description
- "Gnunet-doc builds the documentation of GNUnet.")
- (home-page "https://gnunet.org")
- (license (package-license gnunet))))
-
-(define-public gnunetgpg
- (package
- (inherit gnunetg)
- (name "gnunetgpg")
- (inputs
- `(("postgresql" ,postgresql)
- ,@(package-inputs gnunetg)))
- (synopsis "gnunet, variant with postgres")))
-
-(define-public gnunetgf
- (package
- (inherit gnunetg)
- (name "gnunetgf")
- (inputs
- `(("postgresql" ,postgresql)
- ("mysql" ,mysql)
- ,@(package-inputs gnunetg)))
- (arguments
- `(#:configure-flags
- (list (string-append "--with-nssdir=" %output "/lib")
- "--enable-gcc-hardening"
- "--enable-linker-hardening"
-
- "--enable-poisoning"
- "--enable-sanitizer"
- "--enable-experimental"
- "--enable-logging=verbose"
- "CFLAGS=-ggdb -O0")
- #:parallel-tests? #f ; parallel building is not supported.
- ;;#:tests? #f ; fail: test_gnunet_statistics.py
- #:phases
- ;; swap check and install phases and set paths to installed bin
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-bin-sh
- (lambda _
- (substitute* "bootstrap"
- (("contrib/pogen.sh") "sh contrib/pogen.sh"))
- (for-each (lambda (f) (chmod f #o755))
- (find-files "po" ""))
- #t))
- (add-after 'patch-bin-sh 'bootstrap
- (lambda _
- (zero? (system* "sh" "bootstrap"))))
- (delete 'check))))
- (synopsis "gnunet, full git build without tests")))
-
-;; A package to run the test suite.
-(define-public gnunetgft
- (package
- (inherit gnunetg)
- (name "gnunetgft")
- (arguments
- `(#:configure-flags
- (list (string-append "--with-nssdir=" %output "/lib")
- "--enable-gcc-hardening"
- "--enable-linker-hardening"
-
- ;;"--enable-poisoning"
- ;;"--enable-sanitizer"
- "--enable-experimental"
- "--enable-logging=verbose"
- "CFLAGS=-ggdb -O0")
- ;; #:parallel-tests? #f ; parallel building seems to fail
- ;;#:tests? #f ; fail: test_gnunet_statistics.py
- #:phases
- ;; swap check and install phases and set paths to installed bin
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-bin-sh
- (lambda _
- (substitute* "bootstrap"
- (("contrib/pogen.sh") "sh contrib/pogen.sh"))
- (for-each (lambda (f) (chmod f #o755))
- (find-files "po" ""))
- #t))
- (add-after 'patch-bin-sh 'bootstrap
- (lambda _
- (zero? (system* "sh" "bootstrap"))))
- (delete 'check)
- ;; XXX: https://gnunet.org/bugs/view.php?id=4619
- (add-after 'install 'set-path-for-check
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (lib (string-append out "/lib")))
- (setenv "GNUNET_PREFIX" lib)
- (setenv "PATH" (string-append (getenv "PATH") ":" bin))
- (zero? (system* "make" "check"))))))))
- (synopsis "gnunet, full git with tests enabled with parallel tests")))
-
-(define-public gnunetg-test
- (package
- (inherit gnunetg)
- (name "gnunetg-test")
- (arguments
- `(#:configure-flags
- (list (string-append "--with-nssdir=" %output "/lib")
- "--enable-gcc-hardening"
- "--enable-linker-hardening"
-
- ;;"--enable-poisoning"
- ;;"--enable-sanitizer"
- "--enable-logging=verbose"
- "CFLAGS=-ggdb -O0")
- ;; #:parallel-tests? #f ; parallel building seems to fail
- ;;#:tests? #f ; fail: test_gnunet_statistics.py
- #:phases
- ;; swap check and install phases and set paths to installed bin
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-bin-sh
- (lambda _
- (substitute* "bootstrap"
- (("contrib/pogen.sh") "sh contrib/pogen.sh"))
- (for-each (lambda (f) (chmod f #o755))
- (find-files "po" ""))
- #t))
- (add-after 'patch-bin-sh 'bootstrap
- (lambda _
- (zero? (system* "sh" "bootstrap"))))
- (delete 'check)
- ;; XXX: https://gnunet.org/bugs/view.php?id=4619
- (add-after 'install 'set-path-for-check
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (lib (string-append out "/lib")))
- (setenv "GNUNET_PREFIX" lib)
- (setenv "PATH" (string-append (getenv "PATH") ":" bin))
- (zero? (system* "make" "check"))))))))
- (synopsis "gnunet, full git with tests enabled without experimental")))
-
-;; ... and one package to test the package with "parallel-tests? #f"
-(define-public gnunetgftn
- (package
- (inherit gnunetg)
- (name "gnunetgftn")
- (arguments
- `(#:configure-flags
- (list (string-append "--with-nssdir=" %output "/lib")
- "--enable-gcc-hardening"
- "--enable-linker-hardening"
-
- "--enable-poisoning"
- "--enable-sanitizer"
- "--enable-experimental"
- "--enable-logging=verbose"
- "CFLAGS=-ggdb"); -O0")
- #:parallel-tests? #f ; parallel building seems to fail
- ;;#:tests? #f ; fail: test_gnunet_statistics.py
- #:phases
- ;; swap check and install phases and set paths to installed bin
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-bin-sh
- (lambda _
- (substitute* "bootstrap"
- (("contrib/pogen.sh") "sh contrib/pogen.sh"))
- (for-each (lambda (f) (chmod f #o755))
- (find-files "po" ""))
- #t))
- (add-after 'patch-bin-sh 'bootstrap
- (lambda _
- (zero? (system* "sh" "bootstrap"))))
- (delete 'check)
- ;; XXX: https://gnunet.org/bugs/view.php?id=4619
- (add-after 'install 'set-path-for-check
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (lib (string-append out "/lib")))
- (setenv "GNUNET_PREFIX" lib)
- (setenv "PATH" (string-append (getenv "PATH") ":" bin))
- (zero? (system* "make" "check"))))))))))
-
-(define-public gnunet-gtkg
- (let* ((commit "087f8e166ee6d1fc59a6bd5d05f656528761ede7")
- (revision "5"))
- (package
- (inherit gnunetgf)
- (name "gnunet-gtkg")
- (version (package-version gnunetgf))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gnunet.org/git/gnunet-gtk.git")
- (commit commit)))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "1k03d8l0yz4fpliy5bg5s7qkpidzd6ryr4cd63wgmd227p32i87q"))))
- (arguments
- `(#:configure-flags
- (list "--with-libunique"
- "--with-qrencode"
- (string-append "--with-gnunet="
- (assoc-ref %build-inputs "gnunetgf")))
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'bootstrap
- (lambda _
- (zero? (system* "autoreconf" "-vfi")))))))
- (inputs
- `(("gnunetgf" ,gnunetgf)
- ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
- ("gnutls" ,gnutls)
- ("libgcrypt" ,libgcrypt)
- ("gtk+" ,gtk+)
- ("libextractor" ,libextractor)
- ("glade3" ,glade3)
- ("qrencode" ,qrencode)
- ("libunique" ,libunique)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("libglade" ,libglade)
- ("autoconf" ,autoconf)
- ("gnu-gettext" ,gnu-gettext)
- ("texinfo" ,texinfo)
- ("automake" ,automake)
- ("libtool" ,libtool)))
- (synopsis "Graphical front-end tools for GNUnet")
- (home-page "https://gnunet.org"))))
-
-;; fuse, pointing to the tests disabled version of gnunet-git
-(define-public gnunet-fuse-git
- (let* ((commit "3503aeff6db6b39b85e13f9483d46d49ce9cec55")
- (revision "3"))
- (package
- (inherit gnunetg)
- ;;(inherit gnunet)
- (name "gnunet-fuse-git")
- (version (package-version gnunetgf))
- ;;(version (package-version gnunet))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gnunet.org/git/gnunet-fuse.git")
- (commit commit)))
- (file-name (string-append name "-" version "-checkout"))
- (sha256
- (base32
- "0sxzppanw2nrjqv1vnyj2jx3ja6gqrg0ibkl5n1fr265cqk5hgc5"))))
- (arguments
- `(#:configure-flags
- (list "--with-qrencode"
- (string-append "--with-gnunet="
- (assoc-ref %build-inputs "gnunetgf"))) ;"gnunet")))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-gnunet-include-path
- (lambda _
- (substitute* "configure.ac"
- (("gnunet/gnunet_util_lib.h")
- "${lookin}/include/gnunet/gnunet_util_lib.h"))
- #t))
- (add-before 'configure 'bootstrap
- (lambda _
- (zero? (system* "autoreconf" "-vfi")))))))
- (inputs
- `(("gnunetgf" ,gnunetgf)))
- ;;`(("gnunet" ,gnunet)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("fuse" ,fuse)
- ("autoconf" ,autoconf)
- ("gnu-gettext" ,gnu-gettext)
- ("automake" ,automake)
- ("libtool" ,libtool)))
- (synopsis "FUSE for GNUnet")
- (home-page "https://gnunet.org"))))
+++ /dev/null
-;;; This file is part of GNUnet.
-;;; Copyright (C) 2017 GNUnet e.V.
-;;;
-;;; GNUnet 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, or (at your
-;;; option) any later version.
-;;;
-;;; GNUnet 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 GNUnet; see the file COPYING. If not, write to the
-;;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;;; Boston, MA 02110-1301, USA.
-
-;; Initially based on Guix commit eb0119efde826590a13973ab928c173780a7f257
-
-(define-module (gnunet packages texlive)
- #:use-module ((guix licenses)
- #:renamer (symbol-prefix-proc 'license:))
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix build-system gnu)
- #:use-module (gnu packages)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages fontutils)
- #:use-module (gnu packages ghostscript)
- #:use-module (gnu packages icu4c)
- #:use-module (gnu packages image)
- #:use-module (gnu packages pdf)
- #:use-module (gnu packages perl)
- #:use-module (gnu packages pkg-config)
- #:use-module (gnu packages python)
- #:use-module (gnu packages compression))
-
-(define texlive-extra-src
- (origin
- (method url-fetch)
- (uri "ftp://tug.org/historic/systems/texlive/2012/texlive-20120701-extra.tar.xz")
- ;;(uri "ftp://tug.org/historic/systems/texlive/2012/texlive-20120701-extra.tar.xz")
- (sha256 (base32
- "0cb8fnv4x281gy5ka779f00ssdmdpjj4x3pkh9j9vq45hrwg3522"))))
-
-(define texlive-texmf-src
- (origin
- (method url-fetch)
- (uri "ftp://tug.org/historic/systems/texlive/2012/texlive-20120701-texmf.tar.xz")
- ;;(uri "ftp://tug.org/historic/systems/texlive/2012/texlive-20120701-texmf.tar.xz")
- (sha256 (base32
- "1fn1dg9k7pnh8a80j23zfkbrfnqyc4c2w4ss30dpkqj490nxsywq"))))
-
-;; Note that right now this does not include security fixes!
-;; FIXME: Needs more fixes, currently this fails building!
-
-(define-public texlive
- (package
- (name "texlive")
- (version "2012")
- (source (origin
- (method url-fetch)
- (uri "ftp://tug.org/historic/systems/texlive/2012/texlive-20120701-source.tar.xz")
- ;;(uri "ftp://tug.org/historic/systems/texlive/2012/texlive-20120701-source.tar.xz")
- (sha256 (base32
- "10bcrdfsqnc6y3gqcb8ndnjy07i5kz63as39irbq4gmcbmyn2rln"))))
- (build-system gnu-build-system)
- (inputs `(("texlive-extra-src" ,texlive-extra-src)
- ("texlive-texmf-src" ,texlive-texmf-src)
- ("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("icu4c" ,icu4c)
- ("ghostscript" ,ghostscript)
- ("libpng" ,libpng)
- ("perl" ,perl)
- ("poppler" ,poppler)
- ("pkg-config" ,pkg-config)
- ;; FIXME: Add interpreters csh, fontforge and ruby,
- ;; once they are available.
- ("python" ,python)
- ("teckit" ,teckit)
- ("t1lib" ,t1lib)
- ("zlib" ,zlib)
- ("zziplib" ,zziplib)))
- (outputs '("out" "data"))
- (arguments
- `(#:out-of-source? #t
- #:configure-flags
- `("--disable-native-texlive-build"
- ;; Although the texmf and texmf-dist data is taken from
- ;; texlive-texmf, setting datarootdir is still useful:
- ;; "make install" creates symbolic links to scripts in this place.
- ,(string-append "--datarootdir=" (assoc-ref %outputs "data"))
- ,(string-append "--infodir=" (assoc-ref %outputs "out") "/share/info")
- ,(string-append "--mandir=" (assoc-ref %outputs "out") "/share/man")
- "--without-x" ; FIXME: Drop as soon as X is available.
- "--with-system-freetype2"
- ;; "--with-system-gd"
- ;; "--with-system-graphite"
- "--with-system-icu"
- "--with-system-libgs"
- "--with-system-libpng"
- "--with-system-poppler"
- "--with-system-t1lib"
- "--with-system-teckit"
- "--with-system-xpdf"
- "--with-system-zlib"
- "--with-system-zziplib")
- #:phases
- (alist-replace
- 'configure
- (lambda* (#:key outputs #:allow-other-keys #:rest args)
- (let ((configure (assoc-ref %standard-phases 'configure)))
- (substitute* "utils/psutils/Makefile.in"
- (("/usr/bin/env perl") (which "perl")))
- (apply configure args)))
- (alist-cons-after
- 'install 'postinst
- (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
- (let ((texlive-extra (assoc-ref inputs "texlive-extra-src"))
- (texlive-texmf (assoc-ref inputs "texlive-texmf-src"))
- (out (assoc-ref outputs "out"))
- (data (assoc-ref outputs "data"))
- (unpack (assoc-ref %standard-phases 'unpack))
- (patch-source-shebangs
- (assoc-ref %standard-phases 'patch-source-shebangs)))
- ;; Create symbolic links for the latex variants and their
- ;; man pages.
- (with-directory-excursion (string-append out "/bin/")
- (for-each symlink
- '("pdftex" "pdftex" "xetex" "luatex")
- '("latex" "pdflatex" "xelatex" "lualatex")))
- (with-directory-excursion (string-append out "/share/man/man1/")
- (symlink "luatex.1" "lualatex.1"))
- ;; Delete texmf and texmf-dist from "data", since they
- ;; will be reinstalled from texlive-texmf.
- (system* "rm" "-r" (string-append data "/texmf"))
- (system* "rm" "-r" (string-append data "/texmf-dist"))
- ;; Unpack texlive-extra and install tlpkg.
- (mkdir "texlive-extra")
- (with-directory-excursion "texlive-extra"
- (apply unpack (list #:source texlive-extra))
- (apply patch-source-shebangs (list #:source texlive-extra))
- (system* "mv" "tlpkg" data)
- (chdir ".."))
- ;; Unpack and install texlive-texmf.
- (mkdir "texlive-texmf")
- (with-directory-excursion "texlive-texmf"
- (apply unpack (list #:source texlive-texmf))
- (apply patch-source-shebangs (list #:source texlive-texmf))
- ;; Register "data" for kpathsea in texmf.cnf.
- (substitute* "texmf/web2c/texmf.cnf"
- (("TEXMFROOT = \\$SELFAUTOPARENT")
- (string-append "TEXMFROOT = " data)))
- (system* "mv" "texmf" data)
- (system* "mv" "texmf-dist" data)
- (chdir ".."))
- ;; texmf.cnf must also be placed in "out", since kpsewhich does
- ;; not know about "data" until it has found this file.
- (mkdir (string-append out "/share/texmf"))
- (mkdir (string-append out "/share/texmf/web2c"))
- (copy-file (string-append data "/texmf/web2c/texmf.cnf")
- (string-append out "/share/texmf/web2c/texmf.cnf"))))
- (alist-cons-after 'patch-shebangs 'texconfig
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- ;; Configure the texlive system; inspired from
- ;; http://slackbuilds.org/repository/13.37/office/texlive/
- (setenv "PATH" (string-append (getenv "PATH") ":" out "/bin"))
- (system* "updmap-sys" "--nohash" "--syncwithtrees")
- (system* "mktexlsr")
- (system* "fmtutil-sys" "--all")))
- %standard-phases)))))
- (synopsis "Tex Live, a package of the TeX typesetting system")
- (description
- "TeX Live provides a comprehensive TeX document production system.
-It includes all the major TeX-related programs, macro packages, and fonts
-that are free software, including support for many languages around the
-world.")
- (license (license:fsf-free "http://tug.org/texlive/copying.html"))
- (home-page "http://www.tug.org/texlive/")))
--- /dev/null
+;;; This file is part of GNUnet.
+;;; Copyright (C) 2016, 2017, 2018 GNUnet e.V.
+;;;
+;;; GNUnet 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, or (at your
+;;; option) any later version.
+;;;
+;;; GNUnet 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 GNUnet; see the file COPYING. If not, write to the
+;;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;;; Boston, MA 02110-1301, USA.
+
+(use-modules
+ (ice-9 popen)
+ (ice-9 match)
+ (ice-9 rdelim)
+ (guix packages)
+ (guix build-system gnu)
+ (guix gexp)
+ ((guix build utils) #:select (with-directory-excursion))
+ (guix git-download)
+ (guix utils) ; current-source-directory
+ (gnu packages)
+ (gnu packages aidc)
+ (gnu packages autotools)
+ (gnu packages backup)
+ (gnu packages base)
+ (gnu packages compression)
+ (gnu packages curl)
+ (gnu packages databases)
+ (gnu packages file)
+ (gnu packages gettext)
+ (gnu packages glib)
+ (gnu packages gnome)
+ (gnu packages gnunet)
+ (gnu packages gnupg)
+ (gnu packages gnuzilla)
+ (gnu packages groff)
+ (gnu packages gstreamer)
+ (gnu packages gtk)
+ (gnu packages guile)
+ (gnu packages image)
+ (gnu packages image-viewers)
+ (gnu packages libidn)
+ (gnu packages libunistring)
+ (gnu packages linux)
+ (gnu packages maths)
+ (gnu packages multiprecision)
+ (gnu packages perl)
+ (gnu packages pkg-config)
+ (gnu packages pulseaudio)
+ (gnu packages python)
+ (gnu packages tex)
+ (gnu packages texinfo)
+ (gnu packages tex)
+ (gnu packages tls)
+ (gnu packages upnp)
+ (gnu packages video)
+ (gnu packages web)
+ (gnu packages xiph)
+ ((guix licenses) #:prefix license:))
+
+(define %source-dir (string-append (current-source-directory)
+ "/../../../"))
+
+(define gnunet-dev-env
+ (let* ((revision "1")
+ (select? (delay (or (git-predicate
+ (string-append (current-source-directory)
+ "/../../../"))
+ source-file?))))
+ (package
+ (inherit gnunet)
+ (name "gnunet-dev-env")
+ (version (string-append "0.11-" revision "." "dev-env"))
+ (source
+ (local-file
+ (string-append (getcwd))
+ #:recursive? #t))
+ (inputs
+ `(("glpk" ,glpk)
+ ("gnurl" ,gnurl)
+ ("gstreamer" ,gstreamer)
+ ("gst-plugins-base" ,gst-plugins-base)
+ ("gnutls/dane" ,gnutls/dane) ;Change to gnutls/dane once it is merged.
+ ("libextractor" ,libextractor)
+ ("libgcrypt" ,libgcrypt)
+ ("libidn" ,libidn)
+ ("libmicrohttpd" ,libmicrohttpd)
+ ("libltdl" ,libltdl)
+ ("libunistring" ,libunistring)
+ ("openssl" ,openssl)
+ ("opus" ,opus)
+ ("pulseaudio" ,pulseaudio)
+ ("sqlite" ,sqlite)
+ ("postgresql" ,postgresql)
+ ("mysql" ,mysql)
+ ("zlib" ,zlib)
+ ("perl" ,perl)
+ ("python-2" ,python-2) ; tests and gnunet-qr
+ ("jansson" ,jansson)
+ ("nss" ,nss)
+ ("glib" ,glib "bin")
+ ("gmp" ,gmp)
+ ("bluez" ,bluez) ; for optional bluetooth feature
+ ("glib" ,glib)
+ ("texlive" ,texlive) ;FIXME: minimize.
+ ("miniupnpc" ,miniupnpc)
+ ("libogg" ,libogg)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("gnu-gettext" ,gnu-gettext)
+ ("which" ,which)
+ ("texinfo" ,texinfo-5) ; Debian stable: 5.2
+ ("libtool" ,libtool)))
+ (outputs '("out" "debug"))
+ (arguments
+ `(#:configure-flags
+ (list (string-append "--with-nssdir=" %output "/lib")
+ ;;"--enable-gcc-hardening"
+ ;;"--enable-linker-hardening"
+ "--enable-logging=verbose"
+ "CFLAGS=-ggdb -O0")
+ #:phases
+ ;; swap check and install phases and set paths to installed bin
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-bin-sh
+ (lambda _
+ (substitute* "bootstrap"
+ (("contrib/pogen.sh") "sh contrib/pogen.sh"))
+ (for-each (lambda (f) (chmod f #o755))
+ (find-files "po" ""))
+ #t))
+ (add-after 'patch-bin-sh 'bootstrap
+ (lambda _
+ (zero? (system* "sh" "bootstrap"))))
+ (delete 'check)
+ ;; XXX: https://gnunet.org/bugs/view.php?id=4619
+ (add-after 'install 'set-path-for-check
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (lib (string-append out "/lib")))
+ (setenv "GNUNET_PREFIX" lib)
+ (setenv "PATH" (string-append (getenv "PATH") ":" bin))
+ (zero? (system* "make" "check")))))))))))
+
+gnunet-dev-env
--- /dev/null
+;;; -*- mode: scheme -*-
+;;; Packages required to develop GNUnet with Guix.
+;;; (See guix package --manifest option for more details on this file).
+
+(use-modules (guix profiles)
+ (gnu packages))
+
+
+(define gnunet-dev-packages
+ (list "glpk"
+ "gnurl"
+ "gstreamer"
+ "gst-plugins-base"
+ "gnutls/dane"
+ "libextractor"
+ "libgcrypt"
+ "libidn"
+ "libunistring"
+ "openssl"
+ "opus"
+ "pulseaudio"
+ "sqlite"
+ "mysql"
+ "postgresql"
+ "zlib"
+ "perl"
+ "jansson"
+ "nss"
+ "glib"
+ "gmp"
+ "glib"
+ "glibc-locales"
+ "bluez"
+ "texlive" ; FIXME: minimize
+ "pkg-config"
+ "autoconf"
+ "automake"
+ "gnu-gettext"
+ "which"
+ "texinfo-5"
+ "libtool"))
+
+
+(map specification->package gnunet-dev-packages)