diff mbox

gnu: Add schismtracker.

Message ID 87r38sg1h6.fsf@openmailbox.org
State New
Headers show

Commit Message

Kei Yamashita Sept. 9, 2016, 10:19 p.m. UTC
For those who love making tracks, X11 or not!

If someone could look over this (and build it, please!), that would be
nice. :-)
From 91dbcb5c61de4b4b45f85b3bad8cf9e713c564b0 Mon Sep 17 00:00:00 2001
From: Kei Kebreau <kei@openmailbox.org>
Date: Fri, 9 Sep 2016 18:16:12 -0400
Subject: [PATCH] gnu: Add schismtracker.

* gnu/packages/music.scm (schismtracker): New variable.
---
 gnu/packages/music.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

Comments

Marius Bakke Sept. 10, 2016, 7:34 a.m. UTC | #1
Kei Kebreau <kei@openmailbox.org> writes:

> For those who love making tracks, X11 or not!
>
> If someone could look over this (and build it, please!), that would be
> nice. :-)

Thanks for this package! See comments below.

> From 91dbcb5c61de4b4b45f85b3bad8cf9e713c564b0 Mon Sep 17 00:00:00 2001
> From: Kei Kebreau <kei@openmailbox.org>
> Date: Fri, 9 Sep 2016 18:16:12 -0400
> Subject: [PATCH] gnu: Add schismtracker.
>
> * gnu/packages/music.scm (schismtracker): New variable.
> ---
>  gnu/packages/music.scm | 40 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 40 insertions(+)
>
> diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
> index 88743aa..7c11771 100644
> --- a/gnu/packages/music.scm
> +++ b/gnu/packages/music.scm
> @@ -1638,6 +1638,46 @@ for improved Amiga ProTracker 2/3 compatibility.")
>      ;; 'src/milkyplay' is under Modified BSD, the rest is under GPL3 or later.
>      (license (list license:bsd-3 license:gpl3+))))
>  
> +(define-public schismtracker
> +  (package
> +    (name "schismtracker")
> +    (version "20160521")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append
> +                    "https://github.com/" name "/" name "/archive/"
> +                    version ".tar.gz"))
> +              (file-name (string-append name "-" version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "0c6r24wm3rldm4j8cskl9xnixj3rwi3lnrhckw5gv43wpy6h4jcz"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'autoconf
> +           (lambda _ (zero? (system* "autoreconf" "-vfi"))))
> +         (add-before 'configure 'link-libm
> +           (lambda _ (setenv "LIBS" "-lm"))))))

I believe this should end with a #t, as the return value of setenv is
unspecified.

> +    (native-inputs
> +     `(("autoconf" ,autoconf)
> +       ("automake" ,automake)))
> +    (inputs
> +     `(("alsa-lib" ,alsa-lib) ; for asound dependency
> +       ("libx11" ,libx11)
> +       ("libxext" ,libxext)
> +       ("python" ,python-2)

Python is only used for building some documentation, so it can be moved
to native-inputs. Is there any reason for using python-2?

> +       ("sdl" ,sdl)))
> +    (home-page "http://schismtracker.org")
> +    (synopsis "Impulse Tracker clone")

I think this should be more generic. The tagline from github works
pretty well: "Oldschool sample-based music composition tool".

The rest LGTM. But! The package records build time in version.c. I
managed to make it reproducible by adding a phase like this:

          (add-before 'build 'make-reproducible
            (lambda _
              ;; Remove use of __DATE__ and __TIME__ for reproducibility.
              (substitute* "schism/version.c"
                (("Schism Tracker built %s %s.*$")
                 (string-append "Schism Tracker version " ,version "\");")))
              #t))

Please add that substitution somewhere. Can you send an updated patch?

Thanks!
Marius

> +    (description
> +     "Schism Tracker is a reimplementation of Impulse Tracker, a program used to
> +create high quality music without the requirements of specialized, expensive
> +equipment, and with a unique \"finger feel\" that is difficult to replicate in
> +part.  The player is based on a highly modified version of the ModPlug engine,
> +with a number of bugfixes and changes to improve IT playback.")
> +    (license license:gpl2+)))
> +
>  (define-public moc
>    (package
>      (name "moc")
> -- 
> 2.10.0
Ludovic Courtès Sept. 10, 2016, 12:55 p.m. UTC | #2
Marius Bakke <mbakke@fastmail.com> skribis:

> Kei Kebreau <kei@openmailbox.org> writes:

[...]

>> +    (home-page "http://schismtracker.org")
>> +    (synopsis "Impulse Tracker clone")
>
> I think this should be more generic. The tagline from github works
> pretty well: "Oldschool sample-based music composition tool".

+1

> The rest LGTM. But! The package records build time in version.c. I
> managed to make it reproducible by adding a phase like this:
>
>           (add-before 'build 'make-reproducible
>             (lambda _
>               ;; Remove use of __DATE__ and __TIME__ for reproducibility.
>               (substitute* "schism/version.c"
>                 (("Schism Tracker built %s %s.*$")
>                  (string-append "Schism Tracker version " ,version "\");")))
>               #t))

I would suggest making it a ‘snippet’ instead, as we usually do in such
cases.

Thanks Kei & Marius!

Ludo’.
diff mbox

Patch

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 88743aa..7c11771 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1638,6 +1638,46 @@  for improved Amiga ProTracker 2/3 compatibility.")
     ;; 'src/milkyplay' is under Modified BSD, the rest is under GPL3 or later.
     (license (list license:bsd-3 license:gpl3+))))
 
+(define-public schismtracker
+  (package
+    (name "schismtracker")
+    (version "20160521")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/" name "/" name "/archive/"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0c6r24wm3rldm4j8cskl9xnixj3rwi3lnrhckw5gv43wpy6h4jcz"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'autoconf
+           (lambda _ (zero? (system* "autoreconf" "-vfi"))))
+         (add-before 'configure 'link-libm
+           (lambda _ (setenv "LIBS" "-lm"))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib) ; for asound dependency
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("python" ,python-2)
+       ("sdl" ,sdl)))
+    (home-page "http://schismtracker.org")
+    (synopsis "Impulse Tracker clone")
+    (description
+     "Schism Tracker is a reimplementation of Impulse Tracker, a program used to
+create high quality music without the requirements of specialized, expensive
+equipment, and with a unique \"finger feel\" that is difficult to replicate in
+part.  The player is based on a highly modified version of the ModPlug engine,
+with a number of bugfixes and changes to improve IT playback.")
+    (license license:gpl2+)))
+
 (define-public moc
   (package
     (name "moc")