From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Kost Subject: Re: [PATCH] gnu: Add Red Eclipse. Date: Tue, 26 Apr 2016 13:22:33 +0300 Message-ID: <87eg9sd5zq.fsf@gmail.com> References: <20160423022054.16f7aeb7@openmailbox.org> <571B21C8.3050100@gmx.net> <20160423074645.545cb512@openmailbox.org> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:49397) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1av08a-0004dO-38 for guix-devel@gnu.org; Tue, 26 Apr 2016 06:22:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1av08W-00020W-PB for guix-devel@gnu.org; Tue, 26 Apr 2016 06:22:36 -0400 Received: from mail-lf0-x241.google.com ([2a00:1450:4010:c07::241]:36661) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1av08V-00020R-Fz for guix-devel@gnu.org; Tue, 26 Apr 2016 06:22:32 -0400 Received: by mail-lf0-x241.google.com with SMTP id y84so1544914lfc.3 for ; Tue, 26 Apr 2016 03:22:31 -0700 (PDT) In-Reply-To: <20160423074645.545cb512@openmailbox.org> (Kei Yamashita's message of "Sat, 23 Apr 2016 07:46:45 -0400") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Kei Yamashita Cc: guix-devel@gnu.org 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-" 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