gnu: Add doxygen.

* gnu/packages/doxygen.scm: New file.
* gnu/packages/patches/doxygen-test.patch,
  gnu/packages/patches/doxygen-tmake.patch: New files.
* gnu-system.am (GNU_SYSTEM_MODULES, dist_patch_DATA): Register the new files.
master
Andreas Enge 2014-04-25 00:03:36 +02:00
parent c0412fedf8
commit 436d4d1fbb
4 changed files with 140 additions and 0 deletions

View File

@ -61,6 +61,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/ddrescue.scm \
gnu/packages/dictionaries.scm \
gnu/packages/docbook.scm \
gnu/packages/doxygen.scm \
gnu/packages/dwm.scm \
gnu/packages/ed.scm \
gnu/packages/elf.scm \
@ -271,6 +272,8 @@ dist_patch_DATA = \
gnu/packages/patches/diffutils-gets-undeclared.patch \
gnu/packages/patches/dmd-getpw.patch \
gnu/packages/patches/dmd-tests-longer-sleeps.patch \
gnu/packages/patches/doxygen-test.patch \
gnu/packages/patches/doxygen-tmake.patch \
gnu/packages/patches/emacs-configure-sh.patch \
gnu/packages/patches/findutils-absolute-paths.patch \
gnu/packages/patches/flac-fix-memcmp-not-declared.patch \

75
gnu/packages/doxygen.scm Normal file
View File

@ -0,0 +1,75 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
;;;
;;; 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 doxygen)
#:use-module ((guix licenses) #:select (gpl3+))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
#:use-module (gnu packages perl)
#:use-module (gnu packages xml)
#:use-module (gnu packages python))
(define-public doxygen
(package
(name "doxygen")
(version "1.8.7")
(source (origin
(method url-fetch)
(uri (string-append "http://ftp.stack.nl/pub/users/dimitri/"
name "-" version ".src.tar.gz"))
(sha256
(base32
"1ng3dv5fninhfi2fj75ghkr5jwsl653fxv2sxhaswj11x2vcdsn6"))
(patches (list (search-patch "doxygen-tmake.patch")
(search-patch "doxygen-test.patch")))))
(build-system gnu-build-system)
;; The presence of graphviz is checked, but it does not seem to influence
;; the output: Even after adding it as an input, no reference to it is
;; retained. It might be an option to add it as a propagated input,
;; only so that it becomes installed in the user profile.
(native-inputs
`(("bison" ,bison)
("flex" ,flex)
("libxml2" ,libxml2) ; provides xmllint for the tests
("perl" ,perl) ; for the tests
("python" ,python-2))) ; for creating the documentation
(arguments
`(#:test-target "test"
#:phases
(alist-replace
'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; do not pass "--enable-fast-install", which makes the
;; configure process fail
(zero? (system*
"./configure"
"--prefix" out))))
%standard-phases)))
(home-page "http://www.stack.nl/~dimitri/doxygen/")
(synopsis "tool for generating documentation from annotated sources")
(description "Doxygen is the de facto standard tool for generating
documentation from annotated C++ sources, but it also supports other popular
programming languages such as C, Objective-C, C#, PHP, Java, Python,
IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl,
and to some extent D.")
(license gpl3+)))

View File

@ -0,0 +1,38 @@
Modify the expected outcome of test 012 so that it passes when bibtex is
not in the path, as we do not wish to add texlive as an input just for this
test.
diff -u -r doxygen-1.8.7.orig/testing/012/citelist.xml doxygen-1.8.7/testing/012/citelist.xml
--- doxygen-1.8.7.orig/testing/012/citelist.xml 2014-04-24 23:43:34.000000000 +0200
+++ doxygen-1.8.7/testing/012/citelist.xml 2014-04-24 23:49:43.000000000 +0200
@@ -4,17 +4,6 @@
<compoundname>citelist</compoundname>
<title>Bibliography</title>
<detaileddescription>
- <para>
- <variablelist>
- <varlistentry>
- <term><anchor id="_1CITEREF_knuth79"/>[1]</term>
- </varlistentry>
- <listitem>
- <para>Donald<nonbreakablespace/>E. Knuth. <emphasis>Tex and Metafont, New Directions in Typesetting</emphasis>. American Mathematical Society and Digital Press, Stanford, 1979.</para>
- <para/>
- </listitem>
- </variablelist>
- </para>
</detaileddescription>
</compounddef>
</doxygen>
diff -u -r doxygen-1.8.7.orig/testing/012/indexpage.xml doxygen-1.8.7/testing/012/indexpage.xml
--- doxygen-1.8.7.orig/testing/012/indexpage.xml 2014-04-24 23:43:34.000000000 +0200
+++ doxygen-1.8.7/testing/012/indexpage.xml 2014-04-24 23:44:05.000000000 +0200
@@ -4,7 +4,7 @@
<compoundname>index</compoundname>
<title>My Project</title>
<detaileddescription>
- <para>See <ref refid="citelist_1CITEREF_knuth79" kindref="member">[1]</ref> for more info. </para>
+ <para>See <ref refid="citelist_1CITEREF_knuth79" kindref="member">knuth79</ref> for more info. </para>
</detaileddescription>
</compounddef>
</doxygen>
Nur in doxygen-1.8.7/testing: test_output_012.

View File

@ -0,0 +1,24 @@
Fix the `check_unix' function, which looks for `/bin/uname' to determine
whether we're on a Unix-like system.
Taken from nixpkgs.
--- doxygen-1.5.8/tmake/bin/tmake 2008-12-06 14:16:20.000000000 +0100
+++ doxygen-1.5.8/tmake/bin/tmake 2009-03-05 11:29:55.000000000 +0100
@@ -234,17 +234,7 @@ sub tmake_verb {
#
sub check_unix {
- my($r);
- $r = 0;
- if ( -f "/bin/uname" ) {
- $r = 1;
- (-f "\\bin\\uname") && ($r = 0);
- }
- if ( -f "/usr/bin/uname" ) {
- $r = 1;
- (-f "\\usr\\bin\\uname") && ($r = 0);
- }
- return $r;
+ return 1;
}