unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* Need help packaging IUP (part 1: IM)
@ 2023-03-20 22:44 Ekaitz Zarraga
  2023-03-20 22:59 ` Felix Lechner via
  2023-03-21 12:25 ` Reza Housseini
  0 siblings, 2 replies; 6+ messages in thread
From: Ekaitz Zarraga @ 2023-03-20 22:44 UTC (permalink / raw)
  To: help-guix\@gnu.org

Hi,

I'm trying to package IUP (https://www.tecgraf.puc-rio.br/iup/) and I'm already stuck on the first package :)

They have a pretty wild general Makefile but I think I'm managing to deal with it.

The main problem I have now is the RUNPATH is not set properly. If I keep the RUNPATH validation phase it fails.

I tried several ways to add it but I didn't manage to fix it.

I leave my current package description below.

Thanks for your help!

Cheers,
Ekaitz


PS: Also, anyone has a suggestion on how can I transform the phases to turn then something like:
(add-build-phase "im_jp2") => (add-before build' build-im_jp2 (lambda _ (invoke ...)))
I tried with a simple function but the the quoting killed all my hopes and I'm not good with macros (yet).

---

(define-module (iup)
  #:use-module (guix packages)
  #:use-module (guix gexp)
  #:use-module (gnu packages)
  #:use-module ((gnu packages base) #:prefix base:)
  #:use-module (gnu packages algebra)
  #:use-module (gnu packages commencement)
  #:use-module (gnu packages gl)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages fontutils)
  #:use-module (gnu packages glib)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages image)
  #:use-module (gnu packages lua)
  #:use-module (gnu packages xorg)
  #:use-module (guix download)
  #:use-module (guix build utils)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system cmake)
  #:use-module ((guix licenses) #:prefix license:))

(define-public im
  (package
    (name "im")
    (version "3.15")
    (source (origin
              (method url-fetch)
              (uri (string-append
                     "https://sourceforge.net/projects/imtoolkit/files/"
                     version "/Docs%20and%20Sources/im-" version
                     "_Sources.tar.gz"))
              (sha256
                (base32 "1c5p8j7sw3r7kmkd4qa49zmh3dlp5zszp2sagi71aqjq84pngp40"))))

    (inputs (list base:which
                  libpng
                  fftw
                  fftwf))
    (build-system gnu-build-system)
    (arguments
      (list
        #:tests? #f
        #:validate-runpath? #f ;; FIXME: Fix the runpath!!
        #:phases
        #~(modify-phases %standard-phases
            (add-before 'configure 'set-ldflags
              ;; FIXME: LDFLAGS don't work, so the runpath is broken
              (lambda _
                (setenv "LDFLAGS" (string-append "-Wl,-rpath=" #$output "/lib"))))
            (delete 'configure)
            ;; Left lua-related libs out of the mix for the moment as they
            ;; have some build errors and I don't need them yet.
            (add-before 'build 'cd
                        (lambda _
                          (chdir "src")))
            (add-before 'build 'build-im
                        (lambda _
                          (invoke "make" "im")))
            (add-before 'build 'build-im-jp2
                        (lambda _
                          (invoke "make" "im_jp2")))
            (add-before 'build 'build-im-process
                        (lambda _
                          (invoke "make" "im_process")))
            (add-before 'build 'build-im-process-omp
                        (lambda _
                          (invoke "make" "im_process_omp")))
            (add-before 'build 'build-im-fftw3
                        (lambda _
                          (invoke "make" "im_fftw3")))
            (delete 'build)
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
                (let* ((include (string-append #$output "/include"))
                       (lib (string-append #$output "/lib")))
                  (mkdir-p include)
                  (mkdir-p lib)
                  (copy-recursively "../include" include)
                  (invoke "find" "../lib" "-exec" "cp" "{}" lib ";")))))))
    (home-page "https://www.tecgraf.puc-rio.br/im")
    (synopsis "IM is a toolkit for image representation, storage, capture and
processing")
    (description "The main goal of the library is to provide a simple API and
abstraction of imaging for scientific applications. The most popular file
formats are supported: TIFF, BMP, PNG, JPEG, GIF and AVI. Image representation
includes scientific data types, and about a hundred Image Processing operations
are available.")
    (license license:expat)))



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

end of thread, other threads:[~2023-03-21 16:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-20 22:44 Need help packaging IUP (part 1: IM) Ekaitz Zarraga
2023-03-20 22:59 ` Felix Lechner via
2023-03-21 12:25 ` Reza Housseini
2023-03-21 12:45   ` Ekaitz Zarraga
2023-03-21 15:43     ` Ekaitz Zarraga
2023-03-21 16:01       ` Reza Housseini

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).