Hello, the attached patch adds a game the source code of which has almost disappeared... So lots of annoying little things to change. I do it (mostly) in a build phase right now; should I rather use a patch?
The one thing that bothers me is the lack of license: Debian claims it is gpl2+ and included the package in previous editions; the source code itself has no hint of a license, the website from archive.org speaks of "free cross- platform open source" without further detail. Actually Debian at http://metadata.ftp-master.debian.org/changelogs/main/e/einstein/unstable_copyright also gives an author; so at some point in time in some galaxy, more information must have been available... There is actually more info in a Debian bug report! https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=289339 It points to the following page: http://www.babichev.info/en/projects/index.html Looking at: http://web.archive.org/web/20150222180355/http://www.babichev.info/en/projects/index.html "(...) Einstein (...) All software published under the terms of GNU General Public License." Following the link leads to here: http://web.archive.org/web/20150221145051/http://www.gnu.org/licenses/gpl.html So is this okay to include under gpl3+? (In which case I would update the patch and also add a pointer to http://web.archive.org/web/20150222180355/http://www.babichev.info/en/projects/index.html). Andreas
>From 0261d4b0a587f402f76d83ccddf97b2cf70a03e0 Mon Sep 17 00:00:00 2001 From: Andreas Enge <andr...@enge.fr> Date: Sat, 27 Feb 2016 17:21:04 +0100 Subject: [PATCH] gnu: Add einstein. * gnu/packages/games.scm (einstein): New variable. * gnu/packages/patches/einstein-install.patch: New file. * gnu-system.am (dist_patch_DATA): Register patch. --- gnu-system.am | 1 + gnu/packages/games.scm | 68 ++++++++++++++++++++++++++++- gnu/packages/patches/einstein-install.patch | 21 +++++++++ 3 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/einstein-install.patch diff --git a/gnu-system.am b/gnu-system.am index 6ccca12..5fff3e8 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -454,6 +454,7 @@ dist_patch_DATA = \ gnu/packages/patches/doxygen-test.patch \ gnu/packages/patches/duplicity-piped-password.patch \ gnu/packages/patches/duplicity-test_selection-tmp.patch \ + gnu/packages/patches/einstein-install.patch \ gnu/packages/patches/elfutils-tests-ptrace.patch \ gnu/packages/patches/emacs-constants-lisp-like.patch \ gnu/packages/patches/emacs-exec-path.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 991fa24..0fe669d 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2014, 2015 Ludovic Courtès <l...@gnu.org> ;;; Copyright © 2014, 2015 Sou Bunnbu <iyzs...@gmail.com> ;;; Copyright © 2014, 2015 Mark H Weaver <m...@netris.org> -;;; Copyright © 2015 Andreas Enge <andr...@enge.fr> +;;; Copyright © 2015, 2016 Andreas Enge <andr...@enge.fr> ;;; Copyright © 2015 David Hashe <david.ha...@dhashe.com> ;;; Copyright © 2015 Christopher Allan Webber <cweb...@dustycloud.org> ;;; Copyright © 2015 Ricardo Wurmus <rek...@elephly.net> @@ -47,6 +47,7 @@ #:use-module (gnu packages audio) #:use-module (gnu packages avahi) #:use-module (gnu packages boost) + #:use-module (gnu packages fonts) #:use-module (gnu packages fribidi) #:use-module (gnu packages game-development) #:use-module (gnu packages gettext) @@ -1917,3 +1918,68 @@ Catan. It can be played on a local network, on the internet, and with AI players.") (home-page "http://pio.sourceforge.net/") (license license:gpl2+))) + +(define-public einstein + (package + (name "einstein") + (version "2.0") + (source (origin + (method url-fetch) + (uri (string-append "http://http.debian.net/debian/pool/main/e/" + "einstein/einstein_2.0.dfsg.2.orig.tar.gz")) + (sha256 + (base32 + "1hxrlv6n8py48j487i6wbb4n4vd55w0na69r7ccmmr9vmrsw5mlk")) + (patches (list (search-patch "einstein-install.patch"))))) + (build-system gnu-build-system) + (inputs + `(("freetype" ,freetype) + ("sdl" ,sdl) + ("sdl-mixer" ,sdl-mixer) + ("sdl-ttf" ,sdl-ttf) + ("zlib" ,zlib))) + (native-inputs + `(("font-dejavu" ,font-dejavu))) + (arguments + `(#:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (dejavu (string-append (assoc-ref inputs "font-dejavu") + "/share/fonts/truetype/DejaVuSans.ttf"))) + (substitute* "Makefile" + (("PREFIX=/usr/local") (string-append "PREFIX=" out))) + ;; Replace proprietary fonts by free one. + ;; The font is copied during the compile phase into a resources + ;; file, so we need to make the ttf file available. + (symlink dejavu "res/DejaVuSans.ttf") + (substitute* (find-files "." "\\.(cpp|descr)$") + (("laudcn2.ttf") "DejaVuSans.ttf") + (("luximb.ttf") "DejaVuSans.ttf") + (("nova.ttf") "DejaVuSans.ttf")) + ;; Fix compilation with current gcc. + (substitute* (find-files "." "\\.(cpp|h)$") + (("SDL_mixer.h") "SDL/SDL_mixer.h") + (("SDL_ttf.h") "SDL/SDL_ttf.h")) + (substitute* + '("convert.h" "mkres/convert.h") + (("iostream") "iostream>\n#include <typeinfo")) + (substitute* + '("mkres/main.cpp" "mkres/compressor.cpp" "mkres/unicode.cpp" + "unicode.cpp") + (("exceptions.h") "exceptions.h\"\n#include \"string.h")) + #t)))))) + (synopsis "Logic puzzle game") + (description "The goal of this logic game is to open all cards in a 6x6 +grid, using a number of hints as to their relative position. The game idea +is attributed to Albert Einstein.") + ;; The original home page has disappeared. + (home-page (string-append "http://web.archive.org/web/20120521062745/" + "http://games.flowix.com/en/index.html")) + ;; License according to + ;; http://metadata.ftp-master.debian.org/changelogs/main/e/einstein/unstable_copyright + ;; The source code is a DFSG-sanitized tarball and does not contain any + ;; license information. + (license license:gpl2+))) diff --git a/gnu/packages/patches/einstein-install.patch b/gnu/packages/patches/einstein-install.patch new file mode 100644 index 0000000..23584d0 --- /dev/null +++ b/gnu/packages/patches/einstein-install.patch @@ -0,0 +1,21 @@ +Adapted from the 13_makefile.diff patch in Debian. + +diff -u -r einstein-2.0.orig/Makefile einstein-2.0/Makefile +--- einstein-2.0.orig/Makefile 2005-09-25 23:20:30.000000000 +0200 ++++ einstein-2.0/Makefile 2016-02-27 17:18:23.844490088 +0100 +@@ -49,10 +49,14 @@ + + + $(TARGET): $(OBJECTS) ++ cd mkres && make ++ cd res && ../mkres/mkres --source resources.descr --output ../einstein.res + $(CXX) $(LNFLAGS) $(OBJECTS) -o $(TARGET) + + clean: + rm -f $(OBJECTS) core* *core $(TARGET) *~ ++ cd res && rm -f einstein.res ++ cd mkres && make clean + + depend: + @makedepend $(SOURCES) 2> /dev/null + -- 2.6.3