all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Alex Kost <alezost@gmail.com>
To: Kei Yamashita <kei@openmailbox.org>
Cc: guix-devel@gnu.org
Subject: Re: [PATCH] gnu: Add Red Eclipse.
Date: Tue, 26 Apr 2016 13:22:33 +0300	[thread overview]
Message-ID: <87eg9sd5zq.fsf@gmail.com> (raw)
In-Reply-To: <20160423074645.545cb512@openmailbox.org> (Kei Yamashita's message of "Sat, 23 Apr 2016 07:46:45 -0400")

Kei Yamashita (2016-04-23 14:46 +0300) wrote:

Thanks, this is very impressive work!!  I don't have any significant
notes, so if there will be no other comments, I'm going to fix them and
commit this patch.

[...]
> +(define-public redeclipse
> +  (let ((data-sources
> +         '(("acerspyro" "0gxxr6nbac918b49x1cp72nw951hqm5m4iyi2shb1612ly384w8q")
> +           ("actors" "1jq9q82m6nx07nwpb5cnpdcwa33jrcgg0j2yir8zk6zpnxdmp0il")
> +           ("appleflap" "1cn41c6xs68l88rmphqh4rlsh6h04xnkkvklxdpqpvvr4zlsmi85")
> +           ("blendbrush" "0wjbgnniirl9arv274m8mpdqbbq7d09g0pq1z9dl56sazmbk5yy0")
> +           ("caustics" "0gxv1pqhi6c27mqi9mwqyfnzv9rq5sva1vgxhb9ljh231rmkdc15")
> +           ("crosshairs" "0vlyhd10mly2qnjpwvss9ani7dg3v2njpf7457ilx7fk9a3hlbkk")
> +           ("elyvisions" "0s0l77rd9fd09imvj05pwcz4bqrn3j8qsw8prv5pi5bqa50mbn19")
> +           ("fonts" "0apn8j9lf43nmnidq1f0azhrr1n896g7si4djbix1bwll6ild0mq")
> +           ("freezurbern" "0y60s3g8v8bl2m6pk2yr9fzl67ymv821x6l2f9hszzydlcjwlscn")
> +           ("john" "1lmwn0r7qpyac2qrnkv9llhsbyzqpgr27hxq2qn1rfbq12fja0ld")
> +           ("jojo" "0sh3ricqlqw868a0mz2n9iw7lhp650pysd2wkcdizhcmw2hlayx9")
> +           ("jwin" "1r459jhxx64j3vdw886ypkm6zg0yg6cr2qark54i1zdskjhp762k")
> +           ("luckystrike" "08xq87crcz0jq45q1g6p8h4xrm1bcqzd019zp7n0f9c3p9j6al91")
> +           ("maps" "1f0hqh8mbd4nzqi4hja4k5f380nszhx8igajg5ini4p9cp39x9vi")
> +           ("mayhem" "1hn9jp64aiz8k6p2nxyg82h2nc8fadgghzhrm26y7i4bz9xwxacm")
> +           ("mikeplus64" "1kj2zznxykgm3f1h1fvd8xzim5f292lyh96l2gj5km1nynzjmaap")
> +           ("misc" "1phmzjs5rmika3568b7jb6ywbsi40r711rhg8cbsflllcp7hdidf")
> +           ("nobiax" "08in9c24m2pq7x371q10ny4q3l1l3zb8m029iypy2lx9gr99i7hm")
> +           ("particles" "0wcd3s6vhrjknffnfqrcpkcqk1r01f1fiz6q7n4srhpdv3i4d6vm")
> +           ("philipk" "1s0kmap8iv5sddanrhycblskj3ywvz9xg2m11f6vnfy108palkga")
> +           ("projectiles" "0xdhrs9rsncd1f88s5igdbfksli7h0irg5jdbj6p2a3rgdzb3gnj")
> +           ("props" "1sbh3a94pmzic78bil0dvdh4fd8s6gh52f77jdram3w0gwv79x3r")
> +           ("skyboxes" "0hy95a6ps0fk4cq8j6pjipk8rnsjna9bm0ly2l373gbshlfg6zgi")
> +           ("sounds" "1pnyd7acm19sj1k1cy9hq3n3dnzzaiak7j5f0h7fikiybq5rdk7b")
> +           ("textures" "0gxfnc4xm0kp3pd7lhd4yy1dqq00g727h21l64nyiw2b2d6n1755")
> +           ("torley" "1cri5mf8ls8mvpn1x1p9hacyg9ibilaiz07gqv2hl2q8ww5xc1s6")
> +           ("trak" "0xyk5z59kn9ym9n5fdcrwhqig6gjcjgnrgi9rqbbai713w9vpsbq")
> +           ("ulukai" "0ziv9c4inmza40mas1w9dp048y6f646x00bs7kqv33hd1snbg3v3")
> +           ("unnamed" "0hm291k9azilnp0m04zhm52vml1rhxk1z4l74v66spbikr6s2zdx")
> +           ("vanities" "1qbc2v67kdrlvq10miw3dfmg3j9w9bq1hgqrzjcbph0l4gra1ndw")
> +           ("vegetation" "13928yw0wflcj620cmp8rqwplaw8508f3j4zi32vxida1ksz6xn0")
> +           ("weapons" "1ghn6nfcnd5lyl8dnj22csldvf9hrb32wjzpab4sjjz3iyv0zmr3")
> +           ("wicked" "0q9badvg6ix5rhl05s83kw2v6a49jpnbkqk4ls89qahaddfagi8g"))))
> +    (package
> +      (name "redeclipse")

I would name the package "red-eclipse", but it probably doesn't matter.

> +      (version "1.5.3")
> +      (source (origin
> +                (method url-fetch)
> +                (uri (string-append "https://github.com/red-eclipse/base"
> +                                    "/archive/v" version ".tar.gz"))
> +                (file-name (string-append name "-" version))
                                                             ^^^^^^
                   (file-name (string-append name "-" version ".tar.gz"))

> +                (sha256
> +                 (base32
> +                  "1y0jv5lz69zisiw8sd5z9a9v21zc83by1sx9b7dly78ngif4gc4l"))))
> +      (build-system gnu-build-system)
> +      (arguments
> +       `(#:tests? #f ; no check target
> +         #:make-flags (list "CC=gcc" "-Csrc"
> +                            (string-append "INSTDIR="
> +                                           (assoc-ref %outputs "out") "/bin"))
> +         #:phases (modify-phases %standard-phases
> +                    (add-after 'unpack 'unpack-data
> +                      (lambda* (#:key inputs #:allow-other-keys)
> +                        (delete-file-recursively "data")
> +                        (mkdir "data")
> +                        (for-each (lambda (name)
> +                                   (system* "tar" "-xvf"
> +                                            (assoc-ref inputs name)
> +                                            "-Cdata"
> +                                            "--transform"
> +                                            (string-append "s/"
> +                                                           name "-1.5.3/"
> +                                                           name "/")))
> +                        (list ,@(map car data-sources)))))

This (for-each ...) is not properly indented.

> +                    (delete 'configure) ; no configure script
> +                    (add-after 'set-paths 'set-sdl-paths
> +                      (lambda* (#:key inputs #:allow-other-keys)
> +                        (setenv "CPATH"
> +                                (string-append (assoc-ref inputs "sdl-union")
> +                                               "/include/SDL"))))
> +                    (add-after 'install 'copy-data
> +                      (lambda* (#:key inputs #:allow-other-keys)
> +                        (copy-recursively "config" (string-append
> +                                                    %output
> +                                                    "/config"))
> +                        (copy-recursively "data" (string-append
> +                                                  %output
> +                                                  "/data"))))
> +                    (add-after
> +                        'copy-data 'wrap-program

It is more good-looking to move this line to the previous one.

> +                      (lambda* (#:key inputs outputs #:allow-other-keys)
> +                        (let* ((out (assoc-ref outputs "out"))
> +                               (bin (string-append out "/bin")))
> +                          (with-directory-excursion bin
> +                            (rename-file "redeclipse_linux"
> +                                         ".redeclipse_linux-real")
> +                            (rename-file "redeclipse_server_linux"
> +                                         ".redeclipse_server_linux-real")
> +                            (call-with-output-file "redeclipse_linux"
> +                              (lambda (port)
> +                                (format port "#!~a/bin/sh
> +# Run the thing from its home, otherwise it just bails out.
> +cd \"~a\"
> +exec -a \"$0\" ~a/.redeclipse_linux-real~%"
> +                                        (assoc-ref inputs "bash") ;implicit input
> +                                        (string-append out)
> +                                        (string-append bin))))
> +                            (call-with-output-file "redeclipse_server_linux"
> +                              (lambda (port)
> +                                (format port "#!~a/bin/sh
> +# Run the thing from its home, otherwise it just bails out.
> +cd \"~a\"
> +exec -a \"$0\" ~a/.redeclipse_server_linux-real~%"
> +                                        (assoc-ref inputs "bash") ;implicit input
> +                                        (string-append out)
> +                                        (string-append bin))))
> +                            (chmod "redeclipse_linux" #o555)
> +                            (chmod "redeclipse_server_linux" #o555))))))))
> +      (native-inputs `(("pkg-config" ,pkg-config)))
> +      (inputs
> +       `(("curl" ,curl)
> +         ("glu" ,glu)
> +         ("sdl-union" ,(sdl-union))
> +         ;; Create origin records for the many separate data packages.
> +         ,@(map (match-lambda
> +                  ((name hash)
> +                   (list name
> +                         (origin
> +                           (method url-fetch)
> +                           (uri (string-append "https://github.com/red-eclipse/"
> +                                               name "/archive/v" version ".tar.gz"))
> +                           (sha256 (base32 hash))
> +                           (file-name (string-append name "-" version ".tar.gz"))))))
> +                data-sources)))


I'm afraid this is not reliable.  I mean that all these data sources
have the same "v1.5.3" tags.  I doubt that once there will be a new
release of the base repository, they also will tag all the data repos to
the new version.

I think it's OK to do it like this for now, but if the mentioned problem
will happen after the next release, we'll have to change this method
(probably by making private "red-eclipse-<NAME>" packages for all data
NAMEs).

> +      (home-page "http://redeclipse.net/")
> +      (synopsis "Arena shooter derived from the Cube 2 engine")
> +      (description
> +       "Red Eclipse is an open-source arena shooter, created from the Cube2
> +engine.  Offering an innovative parkour system and distinct but all potent
> +weapons, Red Eclipse provides fast paced and accessible gameplay.")
> +
> +      ;; License information available in detail at the following link:
> +      ;; http://redeclipse.net/wiki/License
> +      (license (list license:expat
> +                     license:zlib
> +                     license:cc-by-sa3.0
> +                     license:cc-by3.0
> +                     license:cc0)))))

-- 
Alex

  reply	other threads:[~2016-04-26 10:22 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-23  6:20 [PATCH] gnu: Add Red Eclipse Kei Yamashita
2016-04-23  7:18 ` Florian Paul Schmidt
2016-04-23 11:46   ` Kei Yamashita
2016-04-26 10:22     ` Alex Kost [this message]
2016-04-27 12:14       ` Ludovic Courtès
2016-04-28 15:52         ` Alex Kost
2016-05-02 10:38       ` Andreas Enge
2016-05-03 16:10         ` Kei Yamashita
2016-05-03 17:54           ` Andreas Enge
2016-05-03 19:08           ` Alex Kost
2016-05-03 19:23             ` Andreas Enge
2016-05-04  8:32               ` Alex Kost
2016-05-03 19:09         ` Alex Kost
2016-05-03 19:24           ` Albin
2016-05-03 19:29             ` Andreas Enge
2016-05-04  8:27             ` Alex Kost

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87eg9sd5zq.fsf@gmail.com \
    --to=alezost@gmail.com \
    --cc=guix-devel@gnu.org \
    --cc=kei@openmailbox.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.