Subject: [PATCH] gnu: Add oneko.

From: Timotej Lazar <[email-masked]>
Date: Sat, 26 Jun 2021 21:20:49 +0200

* gnu/packages/toys.scm (oneko): New variable.
---
This adds the oneko version of the original xneko toy. The license
statement seems to be at the end of README (not sure as I can’t read
Japanese), but Debian and FSF agree it’s in the public domain.

`guix lint` complains about a newer version, but the only differences
are a somewhat less broken build system and an additional bitmap of the
BSD daemon, which is trademarked. I opted for this version instead of
basically reverting all changes from the newer one.

Thanks!
Timotej

 gnu/packages/toys.scm | 50 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 49 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/toys.scm b/gnu/packages/toys.scm
index bbd5753841..d396062fe1 100644
--- a/gnu/packages/toys.scm
+++ b/gnu/packages/toys.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2019 Jesse Gibbons <[email-masked]>
-;;; Copyright © 2019, 2020 Timotej Lazar <[email-masked]>
+;;; Copyright © 2019, 2020, 2021 Timotej Lazar <[email-masked]>
 ;;; Copyright © 2020 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2021 Leo Famulari <[email-masked]>
 ;;;
@@ -36,6 +36,54 @@
   #:use-module (guix packages)
   #:use-module (guix utils))
 
+(define-public oneko
+  (package
+    (name "oneko")
+    ;; Identical to version 1.2.sakura.5b but without the trademarked BSD daemon.
+    (version "1.1b.sakura.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://www.daidouji.com/oneko/distfiles/oneko-" version ".tar.gz"))
+       (sha256
+        (base32 "0dh5xr579clq0871pk6m7xfmsa24jk3idgx61k7skl37i40klaa3"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("imake" ,imake)))
+    (inputs
+     `(("libx11" ,libx11)
+       ("libxext" ,libxext)))
+    (arguments
+     `(#:tests? #f ; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _
+             (substitute* "Imakefile"
+               ((" = /bin/") " = ") ; don’t use absolute paths for cp, rm and strip
+               (("\\$\\(DESTDIR\\)/man") "$(DESTDIR)/share/man"))
+             (invoke "xmkmf")
+             (substitute* "Makefile"
+               ;; Fix incorrectly generated compiler flags.
+               (("(CDEBUGFLAGS = ).*" _ front) (string-append front "-O2\n")))
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (string-append out "/share/doc/" ,name)))
+               (mkdir-p (string-append out "/bin"))
+               (mkdir-p (string-append out "/share/man/man1"))
+               (invoke "make" (string-append "DESTDIR=" out) "install")
+               (for-each (lambda (file) (install-file file doc))
+                         (find-files "." "README.*")))
+             #t)))))
+    (home-page "http://www.daidouji.com/oneko/")
+    (synopsis "Cute cat chasing your mouse pointer")
+    (description "Displays a cat or another animated character that chases the
+mouse pointer around the screen while you work.")
+    (license license:public-domain))) ; see https://directory.fsf.org/wiki/Oneko
+
 (define-public sl
   (package
     (name "sl")
-- 
2.32.0