unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#67134] [PATCH] gnu: Add camelia-girls
@ 2023-11-12 19:20 Rikard Nordgren
  2023-11-12 22:45 ` Liliana Marie Prikler
  0 siblings, 1 reply; 5+ messages in thread
From: Rikard Nordgren @ 2023-11-12 19:20 UTC (permalink / raw)
  To: 67134; +Cc: hrn

* gnu/packages/games.scm (camlia-girls): New variable.

Change-Id: I6bf6f85cd4578b7ce4ec6ebdd7a8c342fa5dbd4c
---
 gnu/packages/games.scm | 86 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 86 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 8313c02754..4e396f3ba1 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -231,6 +231,7 @@ (define-module (gnu packages games)
   #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (guix build-system qt)
+  #:use-module (guix build-system renpy)
   #:use-module (guix build-system scons)
   #:use-module (guix build-system trivial)
   #:use-module ((srfi srfi-1) #:hide (zip))
@@ -999,6 +1000,91 @@ (define-public bzflag
     ;; The game is dual-licensed.
     (license (list license:lgpl2.1 license:mpl2.0))))
 
+(define-public camelia-girls
+  (package
+    (name "camelia-girls")
+    (version "0.561")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://codeberg.org/rikardn/cameliagirls.git")
+             (commit "1285aa1261f57545d81cc0194432bd6fe6f7fe44")))
+       (sha256
+        (base32 "1yq9gx2zh71c99w1pfvkv5isgm4pd3hjlixcn5vhk1l1f9f7mfc7"))
+       (file-name (git-file-name name version))
+       (snippet '(begin
+                   ;; Remove bundled dependencies.
+                   (delete-file "game/fonts/DejaVuSansMono-Bold.ttf")
+                   (delete-file "game/fonts/DejaVuSerif-BoldItalic.ttf")))))
+    (build-system renpy-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'install 'unbundle-fonts
+                    (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (let* ((font-name-bold "DejaVuSansMono-Bold.ttf")
+                             (font-name-bi "DejaVuSerif-BoldItalic.ttf")
+                             (font-path-bold (string-append (assoc-ref inputs
+                                                             "font-dejavu")
+                                              "/share/fonts/truetype/"
+                                              font-name-bold))
+                             (font-path-bi (string-append (assoc-ref inputs
+                                                           "font-dejavu")
+                                            "/share/fonts/truetype/"
+                                            font-name-bi))
+                             (target-bold (string-append (assoc-ref outputs
+                                                                    "out")
+                                           "/share/renpy/fonts/"
+                                           font-name-bold))
+                             (target-bi (string-append (assoc-ref outputs
+                                                                  "out")
+                                                       "/share/renpy/fonts/"
+                                                       font-name-bi)))
+                        (symlink font-path-bold target-bold)
+                        (symlink font-path-bi target-bi))))
+
+                  (add-after 'install-desktop-file 'install-desktop-icon
+                    (lambda* (#:key inputs outputs #:allow-other-keys)
+                      (let* ((out (assoc-ref outputs "out"))
+                             (game-name "CameliaGirls")
+                             (desktop-path (string-append out
+                                            "/share/applications/" game-name
+                                            ".desktop"))
+                             (icon-dir (string-append out
+                                        "/share/icons/hicolor/128x128/apps"))
+                             (orig-icon-name "icon-high.png")
+                             (new-icon-name (string-append game-name
+                                                           "-icon.png"))
+                             (orig-icon-path (string-append icon-dir "/"
+                                                            orig-icon-name))
+                             (new-icon-path (string-append icon-dir "/"
+                                                           new-icon-name)))
+                        (let ((output-port (open-file desktop-path "a")))
+                          (display (string-append "Icon=" game-name "-icon")
+                                   output-port)
+                          (newline output-port)
+                          (close output-port))
+                        (substitute* desktop-path
+                          (("^Name=")
+                           (string-append "Name=" game-name)))
+                        (mkdir-p icon-dir)
+                        (install-file orig-icon-name icon-dir)
+                        (rename-file orig-icon-path new-icon-path)))))))
+
+    (inputs (list font-dejavu))
+    (home-page "https://codeberg.org/rikardn/cameliagirls")
+    (synopsis
+     "Slice-of-life visual novel featuring the student body of Camelia Academy")
+    (description
+     "CameliaGirls: @@CameliaGirls or Cewek Cewek Camelia is a visual novel
+that follows the life of a transfer student as she begins her new life at the
+all-girl Camelia Academy.  The game is highly dialog-driven, but also
+incorporates visual gags, reminiscent of the Anime style that inspires it.
+The script and interface is translated to English, Indonesian, Spanish,
+German and French.  The game consists of two acts and the story is
+unfinished.")
+    (license license:cc-by-sa3.0)))
+
 (define-public cataclysm-dda
   (package
     (name "cataclysm-dda")

base-commit: c9361460dece1dbc3d2645ad3e5c79e85a2bf183
-- 
2.39.2





^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [bug#67134] [PATCH] gnu: Add camelia-girls
  2023-11-12 19:20 [bug#67134] [PATCH] gnu: Add camelia-girls Rikard Nordgren
@ 2023-11-12 22:45 ` Liliana Marie Prikler
  2023-11-15 20:07   ` hrn
  0 siblings, 1 reply; 5+ messages in thread
From: Liliana Marie Prikler @ 2023-11-12 22:45 UTC (permalink / raw)
  To: Rikard Nordgren, 67134

Am Sonntag, dem 12.11.2023 um 19:20 +0000 schrieb Rikard Nordgren:
> * gnu/packages/games.scm (camlia-girls): New variable.
> 
> Change-Id: I6bf6f85cd4578b7ce4ec6ebdd7a8c342fa5dbd4c
> ---
>  gnu/packages/games.scm | 86
> ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 86 insertions(+)
> 
> diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
> index 8313c02754..4e396f3ba1 100644
> --- a/gnu/packages/games.scm
> +++ b/gnu/packages/games.scm
> @@ -231,6 +231,7 @@ (define-module (gnu packages games)
>    #:use-module (guix build-system perl)
>    #:use-module (guix build-system python)
>    #:use-module (guix build-system qt)
> +  #:use-module (guix build-system renpy)
>    #:use-module (guix build-system scons)
>    #:use-module (guix build-system trivial)
>    #:use-module ((srfi srfi-1) #:hide (zip))
> @@ -999,6 +1000,91 @@ (define-public bzflag
>      ;; The game is dual-licensed.
>      (license (list license:lgpl2.1 license:mpl2.0))))
>  
> +(define-public camelia-girls
> +  (package
> +    (name "camelia-girls")
> +    (version "0.561")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://codeberg.org/rikardn/cameliagirls.git")
> +             (commit "1285aa1261f57545d81cc0194432bd6fe6f7fe44")))
> +       (sha256
> +        (base32
> "1yq9gx2zh71c99w1pfvkv5isgm4pd3hjlixcn5vhk1l1f9f7mfc7"))
> +       (file-name (git-file-name name version))
> +       (snippet '(begin
Use #~ instead of ': The former also allows you to pull in other
packages, should you ever need to.
> +                   ;; Remove bundled dependencies.
> +                   (delete-file "game/fonts/DejaVuSansMono-
> Bold.ttf")
> +                   (delete-file "game/fonts/DejaVuSerif-
> BoldItalic.ttf")))))
> +    (build-system renpy-build-system)
> +    (arguments
> +     `(#:phases (modify-phases %standard-phases
Same as above, prefer (list #:phases #~(...))
> +                  (add-after 'install 'unbundle-fonts
> +                    (lambda* (#:key inputs outputs #:allow-other-
> keys)
> +                      (let* ((font-name-bold "DejaVuSansMono-
> Bold.ttf")
> +                             (font-name-bi "DejaVuSerif-
> BoldItalic.ttf")
> +                             (font-path-bold (string-append (assoc-
> ref inputs
> +                                                             "font-
> dejavu")
> +                                             
> "/share/fonts/truetype/"
> +                                              font-name-bold))
> +                             (font-path-bi (string-append (assoc-ref
> inputs
> +                                                           "font-
> dejavu")
> +                                            "/share/fonts/truetype/"
> +                                            font-name-bi))
Prefer search-input-file.
> +                             (target-bold (string-append (assoc-ref
> outputs
> +                                                                   
> "out")
> +                                           "/share/renpy/fonts/"
> +                                           font-name-bold))
> +                             (target-bi (string-append (assoc-ref
> outputs
> +                                                                 
> "out")
> +                                                      
> "/share/renpy/fonts/"
> +                                                       font-name-
> bi)))
> +                        (symlink font-path-bold target-bold)
> +                        (symlink font-path-bi target-bi))))
Instead of symlinking, hard-code the file name where it's used?
> +
> +                  (add-after 'install-desktop-file 'install-desktop-
> icon
> +                    (lambda* (#:key inputs outputs #:allow-other-
> keys)
> +                      (let* ((out (assoc-ref outputs "out"))
> +                             (game-name "CameliaGirls")
> +                             (desktop-path (string-append out
> +                                            "/share/applications/"
> game-name
> +                                            ".desktop"))
> +                             (icon-dir (string-append out
> +                                       
> "/share/icons/hicolor/128x128/apps"))
> +                             (orig-icon-name "icon-high.png")
> +                             (new-icon-name (string-append game-name
> +                                                           "-
> icon.png"))
> +                             (orig-icon-path (string-append icon-dir
> "/"
> +                                                            orig-
> icon-name))
> +                             (new-icon-path (string-append icon-dir
> "/"
> +                                                           new-icon-
> name)))
> +                        (let ((output-port (open-file desktop-path
> "a")))
> +                          (display (string-append "Icon=" game-name
> "-icon")
> +                                   output-port)
> +                          (newline output-port)
> +                          (close output-port))
We have a dedicated procedure for generating .desktop files.  Use that.
> +                        (substitute* desktop-path
> +                          (("^Name=")
> +                           (string-append "Name=" game-name)))
> +                        (mkdir-p icon-dir)
> +                        (install-file orig-icon-name icon-dir)
> +                        (rename-file orig-icon-path new-icon-
> path)))))))
> +
> +    (inputs (list font-dejavu))
> +    (home-page "https://codeberg.org/rikardn/cameliagirls")
> +    (synopsis
> +     "Slice-of-life visual novel featuring the student body of
> Camelia Academy")
> +    (description
> +     "CameliaGirls: @@CameliaGirls or Cewek Cewek Camelia is a
> visual novel
> +that follows the life of a transfer student as she begins her new
> life at the
> +all-girl Camelia Academy.  The game is highly dialog-driven, but
> also
> +incorporates visual gags, reminiscent of the Anime style that
> inspires it.
> +The script and interface is translated to English, Indonesian,
> Spanish,
> +German and French.  The game consists of two acts and the story is
> +unfinished.")
> +    (license license:cc-by-sa3.0)))
> +
The credits are, as far as I can see, a little unclear about some
included assets – I only see some Wikimedia links, and that's it.  I'd
be happy to be proven wrong, though, we desperately need a package to
make use of renpy-build-system :)

Cheers

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [bug#67134] [PATCH] gnu: Add camelia-girls
  2023-11-12 22:45 ` Liliana Marie Prikler
@ 2023-11-15 20:07   ` hrn
  2023-11-15 20:58     ` Liliana Marie Prikler
  0 siblings, 1 reply; 5+ messages in thread
From: hrn @ 2023-11-15 20:07 UTC (permalink / raw)
  To: Liliana Marie Prikler; +Cc: 67134

Thanks for reviewing!

>    +       (snippet '(begin

> Use #~ instead of ': The former also allows you to pull in other
> packages, should you ever need to.

Ok I'll test.

>    +     `(#:phases (modify-phases %standard-phases

> Same as above, prefer (list #:phases #~(...))

Ok will try, I thought it was the other way around.

>    +                             (font-path-bi (string-append 
> (assoc-ref
>    inputs
>    +                                                           "font-
>    dejavu")
>    +                                            
> "/share/fonts/truetype/"
>    +                                            font-name-bi))

> Prefer search-input-file.

Ok, sounds better.

>    +                        (symlink font-path-bi target-bi))))

> Instead of symlinking, hard-code the file name where it's used?

Symlinking avoids changing the source files. Isn't that better?

> We have a dedicated procedure for generating .desktop files.  Use that.

I would have used that if it wasn't for the builder already having 
created the
desktop file. I didn't want to change the builder so I ended up with 
this solution. In
case the builder can do more automatically in the future we can remove 
the extra code.
Or do you want me to overwrite the desktop file created by the builder 
entirely?


> The credits are, as far as I can see, a little unclear about some
> included assets – I only see some Wikimedia links, and that's it.  I'd
> be happy to be proven wrong, though, we desperately need a package to
> make use of renpy-build-system :)

I checked the licenses to the best of my best ability from the 
information in license.txt.
The in game credits with more detailed license information can be found 
in the
games/scripts/credits?.txt.




^ permalink raw reply	[flat|nested] 5+ messages in thread

* [bug#67134] [PATCH] gnu: Add camelia-girls
  2023-11-15 20:07   ` hrn
@ 2023-11-15 20:58     ` Liliana Marie Prikler
  2023-11-28 19:11       ` hrn
  0 siblings, 1 reply; 5+ messages in thread
From: Liliana Marie Prikler @ 2023-11-15 20:58 UTC (permalink / raw)
  To: hrn; +Cc: 67134

Am Mittwoch, dem 15.11.2023 um 20:07 +0000 schrieb hrn:
> Thanks for reviewing!
> 
> >    +       (snippet '(begin
> 
> > Use #~ instead of ': The former also allows you to pull in other
> > packages, should you ever need to.
> 
> Ok I'll test.
> 
> >    +     `(#:phases (modify-phases %standard-phases
> 
> > Same as above, prefer (list #:phases #~(...))
> 
> Ok will try, I thought it was the other way around.
> 
> >    +                             (font-path-bi (string-append 
> > (assoc-ref
> >    inputs
> >    +                                                          
> > "font-
> >    dejavu")
> >    +                                            
> > "/share/fonts/truetype/"
> >    +                                            font-name-bi))
> 
> > Prefer search-input-file.
> 
> Ok, sounds better.
> 
> >    +                        (symlink font-path-bi target-bi))))
> 
> > Instead of symlinking, hard-code the file name where it's used?
> 
> Symlinking avoids changing the source files. Isn't that better?
Hard-coding avoids "copying" the data, even if it's just a symlink.

> > We have a dedicated procedure for generating .desktop files.  Use
> > that.
> 
> I would have used that if it wasn't for the builder already having 
> created the desktop file. I didn't want to change the builder so I
> ended up with this solution.  In case the builder can do more
> automatically in the future we can remove the extra code.
> Or do you want me to overwrite the desktop file created by the
> builder entirely?
You can (replace 'install-desktop-file (lambda* (...) ...)) instead. 
Alternatively, you can extend the builder to also pass the keys you
need; as hinted at, there are currently no packages using renpy-build-
system, so it's not causing any rebuilds. 

> > The credits are, as far as I can see, a little unclear about some
> > included assets – I only see some Wikimedia links, and that's it. 
> > I'd be happy to be proven wrong, though, we desperately need a
> > package to make use of renpy-build-system :)
> 
> I checked the licenses to the best of my best ability from the 
> information in license.txt.
> The in game credits with more detailed license information can be
> found in the games/scripts/credits?.txt.
It is these credits that I'm talking about.  IIUC, the assets that
aren't mentioned explicitly, have unclear licensing :)

Cheers

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [bug#67134] [PATCH] gnu: Add camelia-girls
  2023-11-15 20:58     ` Liliana Marie Prikler
@ 2023-11-28 19:11       ` hrn
  0 siblings, 0 replies; 5+ messages in thread
From: hrn @ 2023-11-28 19:11 UTC (permalink / raw)
  To: Liliana Marie Prikler; +Cc: 67134

>> I checked the licenses to the best of my best ability from the
>> information in license.txt.
>> The in game credits with more detailed license information can be
>> found in the games/scripts/credits?.txt.
> It is these credits that I'm talking about.  IIUC, the assets that
> aren't mentioned explicitly, have unclear licensing :)


Turns out I wasn't thorough enough with checking the licenses of the 
assets. I found some music files that are under a CC-NC-ND license which 
is not acceptable.

It is unfortunately a common situation in games that are advertised as 
free or open source software to have some files under a non-free 
license. Thanks for pushing for a deeper look.

Being stubborn, I will go through all assets and see if the non-free 
ones could be replaced with something similar or otherwise removed.




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-11-28 19:13 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-12 19:20 [bug#67134] [PATCH] gnu: Add camelia-girls Rikard Nordgren
2023-11-12 22:45 ` Liliana Marie Prikler
2023-11-15 20:07   ` hrn
2023-11-15 20:58     ` Liliana Marie Prikler
2023-11-28 19:11       ` hrn

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).