Subject: Re: [PATCH] gnu: Add oneko.

From: Leo Prikler <[email-masked]>
Date: Sun, 27 Jun 2021 14:45:45 +0200

Am Samstag, den 26.06.2021, 21:20 +0200 schrieb Timotej Lazar:
> * 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.
基本的にＰＤＳですが、バグ修正や機能拡張は（こっそりでもいいですから）私（[email-masked]）に教えて下さいね。
バージョンアップもするつもりです。
With my limited Japanese knowledge, this roughly translates to:
"It's basically PDS[1], but if it's about bug fixes or enhancements[2],
please write tell me ([email-masked]).  I also plan to do version
updates."

[1] probably means public domain software
[2] the bracket expression（こっそりでもいいですから）roughly translates to "because
it's also fine if you do it silently", basically meaning it's also fine
if you fix bugs/enhance the program without telling Kato.

Based on the above, I think both Debian and the FSF are correct in
assuming, that *the code* is 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.
This, however, seems to be an odd choice to me, particularly because
the "sakura" variant already adds characters that are owned by CLAMP.

『カードキャプターさくら』およびそのキャラクターは CLAMP の著作物です。
ただしそのキャラクターは同人誌等における利用が容認されています。 
CLAMP 学園電子分校（http://www.clamp.f-2.co.jp/）をご参照ください。

This roughly translates to

"Cardcaptor Sakura" and it's characters are owned by CLAMP.
However, it is acceptable to use those characters in Doujin[1] work.
Please see CLAMP 学園電子分校[2]（http://www.clamp.f-2.co.jp/）

[1] Japanese media companies are generally lax when it comes to enforce
their IPs against fans of their work, i.e. against doujins.  A
comparable scenario exists in the BBC tacitly allowing Doctor Who
fanfiction.  However, this does not always make them compatible with
free software – ZUN, the creator of Touhou, for instance disallows
commercial reuse without his approval.
[2] It's a proper name, and I'm not attempting to translate it.

Since the site mentioned appears to be currently down, I'll have to do
a little deeper dive to see whether it's actually safe to keep the
Cardcaptor Sakura characters.  However, this does call into the
question whether we can really pin a version that is safe from all
those legally dangerous bits.  I think it is probably safer to use the
same version as Debian (i.e. the currently latest IIUC) and apply the
same patch as Debian here.

Regards,
Leo
> 
>  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")