mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 13:28:12 -05:00
gnu: Add Tux Paint.
* gnu/packages/games.scm (tuxpaint): New variable. * gnu/packages/patches/tuxpaint-stamps-path.patch: New patch. * gnu/local.mk (dist_patch_DATA): Add it.
This commit is contained in:
parent
23319ed674
commit
9b1ada4e81
3 changed files with 103 additions and 2 deletions
|
@ -803,6 +803,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/tophat-build-with-later-seqan.patch \
|
||||
%D%/packages/patches/torsocks-dns-test.patch \
|
||||
%D%/packages/patches/totem-debug-format-fix.patch \
|
||||
%D%/packages/patches/tuxpaint-stamps-path.patch \
|
||||
%D%/packages/patches/unzip-CVE-2014-8139.patch \
|
||||
%D%/packages/patches/unzip-CVE-2014-8140.patch \
|
||||
%D%/packages/patches/unzip-CVE-2014-8141.patch \
|
||||
|
|
|
@ -57,9 +57,11 @@ (define-module (gnu packages games)
|
|||
#:use-module (gnu packages fribidi)
|
||||
#:use-module (gnu packages game-development)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gperf)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages libcanberra)
|
||||
|
@ -69,6 +71,7 @@ (define-module (gnu packages games)
|
|||
#:use-module (gnu packages icu4c)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages netpbm)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages xorg)
|
||||
|
@ -93,9 +96,7 @@ (define-module (gnu packages games)
|
|||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages tcl)
|
||||
#:use-module (gnu packages fribidi)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system haskell)
|
||||
#:use-module (guix build-system cmake)
|
||||
|
@ -2530,3 +2531,78 @@ (define-public chromium-bsu
|
|||
;; Clarified Artistic License for everything but sound, which is covered
|
||||
;; by the Expat License.
|
||||
(license (list license:clarified-artistic license:expat))))
|
||||
|
||||
(define-public tuxpaint
|
||||
(package
|
||||
(name "tuxpaint")
|
||||
(version "0.9.22") ;keep VER_DATE below in sync
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/tuxpaint/tuxpaint/"
|
||||
version "/tuxpaint-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qrbrdck9yxpcg3si6jb9i11w8lw9h4hqad0pfaxgyiniqpr7gca"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Remove win32 directory which contains binary dll's and the
|
||||
;; deprecated visualc directory.
|
||||
(for-each delete-file-recursively '("win32" "visualc"))
|
||||
(substitute* "Makefile"
|
||||
;; Do not rely on $(GPERF) being an absolute file name
|
||||
(("\\[ -x \\$\\(GPERF\\) \\]")
|
||||
"$(GPERF) --version >/dev/null 2>&1"))))
|
||||
(patches (search-patches "tuxpaint-stamps-path.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("gperf" ,gperf)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("cairo" ,cairo)
|
||||
("fribidi" ,fribidi)
|
||||
("gettext" ,gnu-gettext)
|
||||
("libpng" ,libpng)
|
||||
("librsvg" ,librsvg)
|
||||
("libpaper" ,libpaper)
|
||||
("netpbm" ,netpbm)
|
||||
("sdl" ,(sdl-union (list sdl sdl-mixer sdl-ttf sdl-image)))))
|
||||
;; TODO: Use system fonts rather than those in data/fonts
|
||||
(arguments
|
||||
`(#:make-flags `("VER_DATE=2014-08-23"
|
||||
"GPERF=gperf" "CC=gcc"
|
||||
"SDL_PCNAME=sdl SDL_image SDL_mixer SDL_ttf"
|
||||
,(string-append "PREFIX=" %output)
|
||||
"GNOME_PREFIX=$(PREFIX)"
|
||||
"COMPLETIONDIR=$(PREFIX)/etc/bash_completion.d")
|
||||
#:tests? #f ;No tests
|
||||
#:phases (modify-phases %standard-phases
|
||||
(delete 'configure) ;no configure phase
|
||||
(add-after 'install 'fix-import
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(net (assoc-ref inputs "netpbm"))
|
||||
(tpi (string-append out "/bin/tuxpaint-import")))
|
||||
(substitute* tpi
|
||||
;; Point to installation prefix so that the default
|
||||
;; configure file is found.
|
||||
(("/usr/local") out))
|
||||
;; tuxpaint-import uses a bunch of programs from
|
||||
;; netpbm, so make sure it knows where those are
|
||||
(wrap-program tpi
|
||||
`("PATH" ":" prefix
|
||||
(,(string-append net "/bin"))))))))))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "TUXPAINT_STAMPS_PATH")
|
||||
(files '("share/tuxpaint/stamps")))))
|
||||
(home-page "http://www.tuxpaint.org")
|
||||
(synopsis "Drawing software for children")
|
||||
(description
|
||||
"Tux Paint is a free drawing program designed for young children (kids
|
||||
ages 3 and up). It has a simple, easy-to-use interface; fun sound effects;
|
||||
and an encouraging cartoon mascot who helps guide children as they use the
|
||||
program. It provides a blank canvas and a variety of drawing tools to help
|
||||
your child be creative.")
|
||||
(license license:gpl2+)))
|
||||
|
|
24
gnu/packages/patches/tuxpaint-stamps-path.patch
Normal file
24
gnu/packages/patches/tuxpaint-stamps-path.patch
Normal file
|
@ -0,0 +1,24 @@
|
|||
--- tuxpaint-0.9.22/src/tuxpaint.c
|
||||
+++ tuxpaint-0.9.22/src/tuxpaint.c
|
||||
@@ -7474,11 +7474,21 @@
|
||||
static void load_stamps(SDL_Surface * screen)
|
||||
{
|
||||
char *homedirdir = get_fname("stamps", DIR_DATA);
|
||||
+ char *stamps_path = getenv("TUXPAINT_STAMPS_PATH");
|
||||
|
||||
default_stamp_size = compute_default_scale_factor(1.0);
|
||||
|
||||
load_stamp_dir(screen, homedirdir);
|
||||
load_stamp_dir(screen, DATA_PREFIX "stamps");
|
||||
+ /* Load any stamps in TUXPAINT_STAMPS_PATH */
|
||||
+ if (stamps_path) {
|
||||
+ char *token;
|
||||
+ token = strtok(stamps_path, ":");
|
||||
+ while (token != NULL) {
|
||||
+ load_stamp_dir(screen, token);
|
||||
+ token = strtok(NULL, ":");
|
||||
+ }
|
||||
+ }
|
||||
#ifdef __APPLE__
|
||||
load_stamp_dir(screen, "/Library/Application Support/TuxPaint/stamps");
|
||||
#endif
|
Loading…
Reference in a new issue