unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH 3/4] gnu: Add xfig.
@ 2014-10-10 18:19 Eric Bavier
  2014-10-11 22:01 ` Ludovic Courtès
  2014-10-12 21:34 ` Mark H Weaver
  0 siblings, 2 replies; 7+ messages in thread
From: Eric Bavier @ 2014-10-10 18:19 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: 0003-gnu-Add-xfig.patch --]
[-- Type: text/x-diff, Size: 6874 bytes --]

From fca4924a98e06ec0d2877b14f074515a2a970605 Mon Sep 17 00:00:00 2001
From: Eric Bavier <bavier@member.fsf.org>
Date: Fri, 10 Oct 2014 13:10:42 -0500
Subject: [PATCH 3/4] gnu: Add xfig.

* gnu/packages/xfig.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
---
 gnu-system.am         |    1 +
 gnu/packages/xfig.scm |  131 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 132 insertions(+)
 create mode 100644 gnu/packages/xfig.scm

diff --git a/gnu-system.am b/gnu-system.am
index 1e875be..6028527 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -257,6 +257,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/which.scm			\
   gnu/packages/wordnet.scm			\
   gnu/packages/wv.scm				\
+  gnu/packages/xfig.scm				\
   gnu/packages/xiph.scm				\
   gnu/packages/xlockmore.scm			\
   gnu/packages/xml.scm				\
diff --git a/gnu/packages/xfig.scm b/gnu/packages/xfig.scm
new file mode 100644
index 0000000..7cb2258
--- /dev/null
+++ b/gnu/packages/xfig.scm
@@ -0,0 +1,131 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
+;;;
+;;; 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 xorg)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages groff)
+  #:use-module (gnu packages compression))
+
+(define-public xfig
+  (package
+    (name "xfig")
+    (version "3.2.5c")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://sourceforge/mcj/mcj-source/xfig."
+                          version ".full.tar.gz"))
+      (sha256
+       (base32
+        "1yd1jclvw5w3ja4jjzr1ysbn8iklh88wq84jn9d1gavrbfbqyqpa"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("imake" ,imake)
+       ("makedepend" ,makedepend)
+       ("groff" ,groff)))               ;for creating some doc
+    (inputs
+     `(("libxaw3d" ,libxaw3d)
+       ;; Requires libjpeg>=9a, otherwise jmorecfg.h define an enum FALSE that
+       ;; conflicts with the FALSE macro from X11/Intrinsic.h
+       ("libjpeg"  ,libjpeg)
+       ("libpng"   ,libpng)
+       ("libxpm"   ,libxpm)
+       ("libx11"   ,libx11)
+       ("libxmu"   ,libxmu)
+       ("libxt"    ,libxt)
+       ("zlib"     ,zlib)))
+    (arguments
+     `(#:tests? #f
+       #:phases
+       (alist-replace
+        'configure
+        (lambda* (#:key inputs outputs #:allow-other-keys)
+          (let ((imake (assoc-ref inputs "imake"))
+                (out   (assoc-ref outputs "out")))
+           (substitute* "Imakefile"
+             (("XCOMM (BINDIR = )[[:graph:]]*" _ front)
+              (string-append front out "/bin"))
+             (("(PNGLIBDIR = )[[:graph:]]*" _ front)
+              (string-append front (assoc-ref inputs "libpng") "/lib"))
+             (("(PNGINC = -I)[[:graph:]]*" _ front)
+              (string-append front (assoc-ref inputs "libpng") "/include"))
+             (("(JPEGLIBDIR = )[[:graph:]]*" _ front)
+              (string-append front (assoc-ref inputs "libjpeg") "/lib"))
+             (("(JPEGINC = -I)[[:graph:]]*" _ front)
+              (string-append front (assoc-ref inputs "libjpeg") "/include"))
+             (("(ZLIBDIR = )[[:graph:]]*" _ front)
+              (string-append front (assoc-ref inputs "zlib") "/lib"))
+             (("(XPMLIBDIR = )[[:graph:]]*" _ front)
+              (string-append front (assoc-ref inputs "libxpm") "/lib"))
+             (("(XPMINC = -I)[[:graph:]]*" _ front)
+              (string-append front (assoc-ref inputs "libxpm") "/include"))
+             (("(XFIGLIBDIR = )[[:graph:]]*" _ front)
+              (string-append front out "/lib"))
+             (("(XFIGDOCDIR = )[[:graph:]]*" _ front)
+              (string-append front out "/share/doc"))
+             (("XCOMM USEINLINE") "USEINLINE"))
+           ;; The -a argument is required in order to pick up the correct paths
+           ;; to several X header files.
+           (zero? (system* "xmkmf" "-a"))
+           ;; Reset some variables that are inherited from imake templates
+           (substitute* "Makefile"
+             ;; This imake variable somehow remains undefined
+             (("DefaultGcc2AMD64Opt") "-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)))))
+        (alist-cons-after
+         'install 'install/libs
+         (lambda _
+           (zero? (system* "make" "install.libs")))
+         (alist-cons-after
+          'install 'install/doc
+          (lambda _
+            (begin
+              ;; The Doc/xfig_man.html file is expected by the install.html
+              ;; target, but is not present in the tarball, so generate it.
+              (use-modules (ice-9 popen))
+              (let* ((in  (open-pipe* OPEN_READ
+                                      "groff" "-mandoc" "-Thtml"
+                                      "Doc/xfig.man"))
+                     (out (open-output-file "Doc/xfig_man.html")))
+                (begin
+                  (dump-port in out)
+                  (close-pipe in)
+                  (close-port out)))
+              (zero? (system* "make" "install.doc"))))
+          %standard-phases)))))
+    (home-page "http://xfig.org/")
+    (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)))
-- 
1.7.9.5


[-- Attachment #2: Type: text/plain, Size: 17 bytes --]


-- 
Eric Bavier

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 3/4] gnu: Add xfig.
  2014-10-10 18:19 [PATCH 3/4] gnu: Add xfig Eric Bavier
@ 2014-10-11 22:01 ` Ludovic Courtès
  2014-10-12 21:34 ` Mark H Weaver
  1 sibling, 0 replies; 7+ messages in thread
From: Ludovic Courtès @ 2014-10-11 22:01 UTC (permalink / raw)
  To: Eric Bavier; +Cc: guix-devel

Eric Bavier <ericbavier@gmail.com> skribis:

> From fca4924a98e06ec0d2877b14f074515a2a970605 Mon Sep 17 00:00:00 2001
> From: Eric Bavier <bavier@member.fsf.org>
> Date: Fri, 10 Oct 2014 13:10:42 -0500
> Subject: [PATCH 3/4] gnu: Add xfig.
>
> * gnu/packages/xfig.scm: New file.
> * gnu-system.am (GNU_SYSTEM_MODULES): Add it.

Nice, looks good.

Ludo’.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 3/4] gnu: Add xfig.
  2014-10-10 18:19 [PATCH 3/4] gnu: Add xfig Eric Bavier
  2014-10-11 22:01 ` Ludovic Courtès
@ 2014-10-12 21:34 ` Mark H Weaver
  2014-10-13  6:23   ` John Darrington
  1 sibling, 1 reply; 7+ messages in thread
From: Mark H Weaver @ 2014-10-12 21:34 UTC (permalink / raw)
  To: Eric Bavier; +Cc: guix-devel

Hi Eric,

Eric Bavier <ericbavier@gmail.com> writes:

> From fca4924a98e06ec0d2877b14f074515a2a970605 Mon Sep 17 00:00:00 2001
> From: Eric Bavier <bavier@member.fsf.org>
> Date: Fri, 10 Oct 2014 13:10:42 -0500
> Subject: [PATCH 3/4] gnu: Add xfig.

Hydra reports that xfig only builds successfully on x86_64.  It fails on
i686 and mips64el.  Can you investigate?

http://hydra.gnu.org/job/gnu/master/xfig-3.2.5c.i686-linux
http://hydra.gnu.org/job/gnu/master/xfig-3.2.5c.mips64el-linux

      Mark

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 3/4] gnu: Add xfig.
  2014-10-12 21:34 ` Mark H Weaver
@ 2014-10-13  6:23   ` John Darrington
  2014-10-13 15:17     ` Eric Bavier
  0 siblings, 1 reply; 7+ messages in thread
From: John Darrington @ 2014-10-13  6:23 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: guix-devel

On Sun, Oct 12, 2014 at 05:34:34PM -0400, Mark H Weaver wrote:
     
     Eric Bavier <ericbavier@gmail.com> writes:
     
     > From fca4924a98e06ec0d2877b14f074515a2a970605 Mon Sep 17 00:00:00 2001
     > From: Eric Bavier <bavier@member.fsf.org>
     > Date: Fri, 10 Oct 2014 13:10:42 -0500
     > Subject: [PATCH 3/4] gnu: Add xfig.
     
     Hydra reports that xfig only builds successfully on x86_64.  It fails on
     i686 and mips64el.  Can you investigate?
     
     
Looking at the mass of subsitions in xfig, it seems to me that xfig is fighting 
against imake.   In particular I see that imake sets the PROJECT_ROOT to /gnu/store/*imake/
which is wrong for every package except Imake itself.

It has been a few years since I used imake, but I seem to remember there was the
possibility to have a "vendor" specific control file.  In our case Guix is the 
vendor, so perhaps we should have a guix.cf file in imake.  However, since this 
would have to be provided by each package which uses imake.  Perhaps it would be
better to have a imake-build-system which generated it dynamically.

J'





-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 3/4] gnu: Add xfig.
  2014-10-13  6:23   ` John Darrington
@ 2014-10-13 15:17     ` Eric Bavier
  2014-10-13 19:27       ` John Darrington
  2014-10-14 21:58       ` Mark H Weaver
  0 siblings, 2 replies; 7+ messages in thread
From: Eric Bavier @ 2014-10-13 15:17 UTC (permalink / raw)
  To: John Darrington; +Cc: guix-devel


John Darrington writes:

> Looking at the mass of subsitions in xfig, it seems to me that xfig is
> fighting against imake.

I would rather say that it's filling in the holes in imake's system
knowledge.

> It has been a few years since I used imake, but I seem to remember
> there was the possibility to have a "vendor" specific control file.
> In our case Guix is the vendor, so perhaps we should have a guix.cf
> file in imake.

That sounds like a nice solution.

> Perhaps it would be better to have a imake-build-system which
> generated it dynamically.

I was trying to avoid this until there was a need from more packages.
I'm not familiar with many projects that still use imake, but it appears
you might be, with your xboing patch ;)

Btw, I did push a change to xfig and transfig that should let them build
for i686 (which I tested locally now) and mips (which I don't have the
means to check locally).

-- 
Eric Bavier

Please avoid sending me Word or PowerPoint attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 3/4] gnu: Add xfig.
  2014-10-13 15:17     ` Eric Bavier
@ 2014-10-13 19:27       ` John Darrington
  2014-10-14 21:58       ` Mark H Weaver
  1 sibling, 0 replies; 7+ messages in thread
From: John Darrington @ 2014-10-13 19:27 UTC (permalink / raw)
  To: Eric Bavier; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1595 bytes --]

Without having looked at xfig in detail, I think you might be able to 
avoid many of your substitutions to the Imakefile if you pass 
-DProjectRoot= to xmkmf 

If necessary, you can also pass -DLocalRulesFile= to define a makefile
containing  extra rules.

J'

On Mon, Oct 13, 2014 at 10:17:55AM -0500, Eric Bavier wrote:
     
     I would rather say that it's filling in the holes in imake's system
     knowledge.
     
     > It has been a few years since I used imake, but I seem to remember
     > there was the possibility to have a "vendor" specific control file.
     > In our case Guix is the vendor, so perhaps we should have a guix.cf
     > file in imake.
     
     That sounds like a nice solution.
     
     > Perhaps it would be better to have a imake-build-system which
     > generated it dynamically.
     
     I was trying to avoid this until there was a need from more packages.
     I'm not familiar with many projects that still use imake, but it appears
     you might be, with your xboing patch ;)
     
     Btw, I did push a change to xfig and transfig that should let them build
     for i686 (which I tested locally now) and mips (which I don't have the
     means to check locally).
     
     -- 
     Eric Bavier
     
     Please avoid sending me Word or PowerPoint attachments.
     See http://www.gnu.org/philosophy/no-word-attachments.html

-- 
PGP Public key ID: 1024D/2DE827B3 
fingerprint = 8797 A26D 0854 2EAB 0285  A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 3/4] gnu: Add xfig.
  2014-10-13 15:17     ` Eric Bavier
  2014-10-13 19:27       ` John Darrington
@ 2014-10-14 21:58       ` Mark H Weaver
  1 sibling, 0 replies; 7+ messages in thread
From: Mark H Weaver @ 2014-10-14 21:58 UTC (permalink / raw)
  To: Eric Bavier; +Cc: guix-devel

Eric Bavier <ericbavier@gmail.com> writes:
> Btw, I did push a change to xfig and transfig that should let them build
> for i686 (which I tested locally now) and mips (which I don't have the
> means to check locally).

This fixed the issue, and xfig now builds on all three of our platforms.

    Thanks!
      Mark

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-10-14 21:59 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-10 18:19 [PATCH 3/4] gnu: Add xfig Eric Bavier
2014-10-11 22:01 ` Ludovic Courtès
2014-10-12 21:34 ` Mark H Weaver
2014-10-13  6:23   ` John Darrington
2014-10-13 15:17     ` Eric Bavier
2014-10-13 19:27       ` John Darrington
2014-10-14 21:58       ` Mark H Weaver

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).