~ruther/guix-local

436d4d1fbb425c26d716e9f789f1284ec088cc86 — Andreas Enge 12 years ago c0412fe
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.
M gnu-system.am => gnu-system.am +3 -0
@@ 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	\

A gnu/packages/doxygen.scm => gnu/packages/doxygen.scm +75 -0
@@ 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+)))

A gnu/packages/patches/doxygen-test.patch => gnu/packages/patches/doxygen-test.patch +38 -0
@@ 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.

A gnu/packages/patches/doxygen-tmake.patch => gnu/packages/patches/doxygen-tmake.patch +24 -0
@@ 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;
 }