Subject: [bug#37170] Acknowledgement ([PATCH] gnu: Add opencsg.)

From: Steve Sprang <[email-masked]>
Date: Thu, 29 Aug 2019 13:44:19 -0700

Here's an updated patch. Switched from url-fetch to git-fetch and
fixed lint complaints.

On Fri, Aug 23, 2019 at 5:26 PM GNU bug Tracking System
<[email-masked]> wrote:
>
> Thank you for filing a new bug report with debbugs.gnu.org.
>
> This is an automatically generated reply to let you know your message
> has been received.
>
> Your message is being forwarded to the package maintainers and other
> interested parties for their attention; they will reply in due course.
>
> Your message has been sent to the package maintainer(s):
>  [email-masked]
>
> If you wish to submit further information on this problem, please
> send it to [email-masked].
>
> Please do not send mail to [email-masked] unless you wish
> to report a problem with the Bug-tracking system.
>
> --
> 37170: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=37170
> GNU Bug Tracking System
> Contact [email-masked] with problems
From 76a898ef18a9d2cee77bbb1bae3fc1878d6bd1c3 Mon Sep 17 00:00:00 2001
From: Steve Sprang <[email-masked]>
Date: Fri, 23 Aug 2019 15:38:42 -0700
Subject: [PATCH] gnu: Add opencsg.

* gnu/packages/graphics.scm (opencsg): New variable.
---
 gnu/packages/graphics.scm | 41 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index ee56dae54e..1f1871d4ed 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -13,6 +13,7 @@
 ;;; Copyright © 2018 Kei Kebreau <[email-masked]>
 ;;; Copyright © 2019 Mark H Weaver <[email-masked]>
 ;;; Copyright © 2019 Carlo Zancanaro <[email-masked]>
+;;; Copyright © 2019 Steve Sprang <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1018,3 +1019,43 @@ requirements.")
 performance subdivision surface (subdiv) evaluation on massively parallel CPU
 and GPU architectures.")
     (license license:asl2.0)))
+
+(define-public opencsg
+  (let ((dot-to-dash (lambda (c) (if (char=? c #\.) #\- c))))
+    (package
+      (name "opencsg")
+      (version "1.4.2")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/floriankirsch/OpenCSG.git")
+               (commit (string-append "opencsg-"
+                                      (string-map dot-to-dash version)
+                                      "-release"))))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "00m4vs6jn3scqczscc4591l1d6zg6anqp9v1ldf9ymf70rdyvm7m"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (replace 'configure
+             (lambda* (#:key outputs #:allow-other-keys)
+               (substitute* "src/Makefile"
+                 (("/usr/local") (assoc-ref outputs "out")))
+               #t))
+           (add-before 'build 'skip-example
+             (lambda _ (chdir "src") #t)))))
+      (inputs
+       `(("glew" ,glew)
+         ("freeglut" ,freeglut)))
+      (synopsis "Library for rendering Constructive Solid Geometry (CSG)")
+      (description
+       "OpenCSG is a library for rendering Constructive Solid Geometry (CSG) using
+OpenGL.  CSG is an approach for modeling complex 3D-shapes using simpler ones.
+For example, two shapes can be combined by uniting them, by intersecting them,
+or by subtracting one shape from the other.")
+      (home-page "http://www.opencsg.org/")
+      (license license:gpl2))))
-- 
2.23.0