[PATCH] gnu: Add openctm

  • Done
  • quality assurance status badge
Details
2 participants
  • Ekaitz Zarraga
  • Ludovic Courtès
Owner
unassigned
Submitted by
Ekaitz Zarraga
Severity
normal
E
E
Ekaitz Zarraga wrote on 14 May 2020 17:01
(name . guix-patches@gnu.org)(address . guix-patches@gnu.org)
bKZAOAq-6m4jrMZ2n9srov0UyzxMkvTsXGb-uYqvZ5MeRohC6CuHxbVgysKWrjPVFlXLivv8y_z6m2NdHLRyEAQTW3lBaRybgx9p1Kj29RE=@elenq.tech
Hi,

Adding OpenCTM as discussed here:


Regards,
Ekaitz
---

From 8bbac5bccdb0b2fd5ffa8fe1e2dec25a6a359810 Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <ekaitz@elenq.tech>
Date: Thu, 14 May 2020 16:55:32 +0200
Subject: [PATCH] gnu: Add openctm

* gnu/packages/engineering.scm (openctm): New Variable.
---
gnu/packages/engineering.scm | 59 ++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)

Toggle diff (81 lines)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 172f8481eb..e3e346b1e9 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -38,6 +39,7 @@
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
+ #:use-module (guix svn-download)
#:use-module (guix monads)
#:use-module (guix store)
#:use-module (guix utils)
@@ -2533,3 +2535,60 @@ without any changes. And programmers that are familiar with the magellan API
can continue using it with a free library without the restrictions of the
official SDK.")
(license license:bsd-3)))
+
+(define-public openctm
+ (let ((revision 603))
+ ; Previous versions don't compile, they need to link libGL and libGLU.
+ ; Fixed in this revision.
+ (package
+ (name "openctm")
+ (version (number->string revision))
+ (source
+ (origin
+ (method svn-fetch)
+ (uri
+ (svn-reference
+ (url "https://svn.code.sf.net/p/openctm/code/trunk")
+ (revision revision)))
+ (sha256
+ (base32 "01wb70m48xh5gwhv60a5brv4sxl0i0rh038w32cgnlxn5x86s9f1"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("mesa" ,mesa)
+ ("glu" ,glu)
+ ("glut" ,freeglut)
+ ("gtk" ,gtk+-2)
+ ("pkg-config" ,pkg-config)))
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases
+ %standard-phases
+ (replace
+ 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (rename-file "Makefile.linux" "Makefile") ; Use linux Makefile
+ (let ((out (assoc-ref outputs "out")))
+ ; Create output directories
+ (mkdir-p (string-append out "/lib"))
+ (mkdir-p (string-append out "/include"))
+ (mkdir-p (string-append out "/bin"))
+ ; Fix rpath
+ (substitute* "tools/Makefile.linux"
+ (("-rpath,\\.")
+ (string-append "-rpath," out "/lib/"))
+ (("\\/usr\\/local")
+ out))
+ ; Set right output
+ (substitute* "Makefile"
+ (("\\/usr\\/lib")
+ (string-append out "/lib"))
+ (("\\/usr\\/local")
+ out))))))))
+ (synopsis "3D triangle mesh format and related tools and libraries")
+ (description "OpenCTM is a file format, a software library and a tool set
+for compression of 3D triangle meshes. The geometry is compressed to a
+fraction of comparable file formats (3DS, STL, COLLADA...), and the format is
+accessible through a simple API")
+ (license license:zlib)
+ (home-page "http://openctm.sourceforge.net/"))))
--
2.26.1
L
L
Ludovic Courtès wrote on 15 May 2020 12:12
(name . Ekaitz Zarraga)(address . ekaitz@elenq.tech)(address . 41263-done@debbugs.gnu.org)
87eerltskn.fsf@gnu.org
Hi,

Ekaitz Zarraga <ekaitz@elenq.tech> skribis:

Toggle quote (7 lines)
>>From 8bbac5bccdb0b2fd5ffa8fe1e2dec25a6a359810 Mon Sep 17 00:00:00 2001
> From: Ekaitz Zarraga <ekaitz@elenq.tech>
> Date: Thu, 14 May 2020 16:55:32 +0200
> Subject: [PATCH] gnu: Add openctm
>
> * gnu/packages/engineering.scm (openctm): New Variable.

Applied with the cosmetic changes below, mostly indentation (consider
running ./etc/indent-code.el as mentioned in the manual).

Thanks!

Ludo’.
Toggle diff (98 lines)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index e3e346b1e9..190632436b 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -2538,53 +2538,52 @@ official SDK.")
(define-public openctm
(let ((revision 603))
- ; Previous versions don't compile, they need to link libGL and libGLU.
- ; Fixed in this revision.
+ ;; Previous versions don't compile, they need to link libGL and libGLU.
+ ;; Fixed in this revision.
(package
(name "openctm")
- (version (number->string revision))
+ (version (string-append "1.0.3." (number->string revision)))
(source
- (origin
- (method svn-fetch)
- (uri
- (svn-reference
- (url "https://svn.code.sf.net/p/openctm/code/trunk")
- (revision revision)))
- (sha256
- (base32 "01wb70m48xh5gwhv60a5brv4sxl0i0rh038w32cgnlxn5x86s9f1"))))
+ (origin
+ (method svn-fetch)
+ (uri (svn-reference
+ (url "https://svn.code.sf.net/p/openctm/code/trunk")
+ (revision revision)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32 "01wb70m48xh5gwhv60a5brv4sxl0i0rh038w32cgnlxn5x86s9f1"))))
(build-system gnu-build-system)
(native-inputs
- `(("mesa" ,mesa)
- ("glu" ,glu)
- ("glut" ,freeglut)
- ("gtk" ,gtk+-2)
- ("pkg-config" ,pkg-config)))
+ `(("mesa" ,mesa)
+ ("glu" ,glu)
+ ("glut" ,freeglut)
+ ("gtk" ,gtk+-2)
+ ("pkg-config" ,pkg-config)))
(arguments
- `(#:tests? #f
- #:phases
- (modify-phases
- %standard-phases
- (replace
- 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (rename-file "Makefile.linux" "Makefile") ; Use linux Makefile
- (let ((out (assoc-ref outputs "out")))
- ; Create output directories
- (mkdir-p (string-append out "/lib"))
- (mkdir-p (string-append out "/include"))
- (mkdir-p (string-append out "/bin"))
- ; Fix rpath
- (substitute* "tools/Makefile.linux"
- (("-rpath,\\.")
- (string-append "-rpath," out "/lib/"))
- (("\\/usr\\/local")
- out))
- ; Set right output
- (substitute* "Makefile"
- (("\\/usr\\/lib")
- (string-append out "/lib"))
- (("\\/usr\\/local")
- out))))))))
+ `(#:tests? #f ;no tests
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (rename-file "Makefile.linux" "Makefile")
+ (let ((out (assoc-ref outputs "out")))
+ ;; Create output directories.
+ (mkdir-p (string-append out "/lib"))
+ (mkdir-p (string-append out "/include"))
+ (mkdir-p (string-append out "/bin"))
+ ;; Fix rpath.
+ (substitute* "tools/Makefile.linux"
+ (("-rpath,\\.")
+ (string-append "-rpath," out "/lib/"))
+ (("/usr/local")
+ out))
+ ;; Set right output.
+ (substitute* "Makefile"
+ (("/usr/lib")
+ (string-append out "/lib"))
+ (("\\/usr\\/local")
+ out))
+ #t))))))
(synopsis "3D triangle mesh format and related tools and libraries")
(description "OpenCTM is a file format, a software library and a tool set
for compression of 3D triangle meshes. The geometry is compressed to a
Closed
E
E
Ekaitz Zarraga wrote on 15 May 2020 19:44
(name . Ludovic Courtès)(address . ludo@gnu.org)(name . 41263-done@debbugs.gnu.org)(address . 41263-done@debbugs.gnu.org)
VcHHTIcvlf4MhOrQVfQrQcIEVdEK8845BDK0xS5IcKke98TZ76Hnas2lS0GORkZnk9J-ypB_G95dXI4xOKd5l4zZK87ar6C1yoQCUjTNhb0=@elenq.tech
Hi,

??????? Original Message ???????
On Friday, May 15, 2020 12:12 PM, Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (19 lines)
> Hi,
>
> Ekaitz Zarraga ekaitz@elenq.tech skribis:
>
> > > From 8bbac5bccdb0b2fd5ffa8fe1e2dec25a6a359810 Mon Sep 17 00:00:00 2001
> > > From: Ekaitz Zarraga ekaitz@elenq.tech
> > > Date: Thu, 14 May 2020 16:55:32 +0200
> > > Subject: [PATCH] gnu: Add openctm
> >
> > * gnu/packages/engineering.scm (openctm): New Variable.
> >
>
> Applied with the cosmetic changes below, mostly indentation (consider
> running ./etc/indent-code.el as mentioned in the manual).
>
> Thanks!
>
> Ludo’.

Thanks for the help Ludo (and the motivation!).

I was wondering about if it's worth to separate the package in multiple outputs like: GUI for openctm files, openctm library and so on, as described here:

It has like a `tools` part and a `lib` part I'd say. Does it make sense for this package?
It would avoid using GTK in the library part I think.

I never did this before but looks like an option to reduce the package size (total: 830.2 MiB reported by guix size O_O).

Opinions?

Thanks!
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 41263@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 41263
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch