minetest.scm 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694
  1. ;;; Copyright © 2014, 2015, 2016 David Thompson <dthompson2@worcester.edu>
  2. ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
  3. ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
  4. ;;; Copyright © 2015, 2019 Mark H Weaver <mhw@netris.org>
  5. ;;; Copyright © 2016, 2017, 2018, 2019 Kei Kebreau <kkebreau@posteo.net>
  6. ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
  7. ;;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
  8. ;;; Copyright © 2021 Trevor Hass <thass@okstate.edu>
  9. ;;; Copyright © 2020, 2021 Leo Prikler <leo.prikler@student.tugraz.at>
  10. ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
  11. ;;; This file is part of GNU Guix.
  12. ;;;
  13. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  14. ;;; under the terms of the GNU General Public License as published by
  15. ;;; the Free Software Foundation; either version 3 of the License, or (at
  16. ;;; your option) any later version.
  17. ;;;
  18. ;;; GNU Guix is distributed in the hope that it will be useful, but
  19. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  20. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  21. ;;; GNU General Public License for more details.
  22. ;;;
  23. ;;; You should have received a copy of the GNU General Public License
  24. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  25. (define-module (gnu packages minetest)
  26. #:use-module (gnu packages)
  27. #:use-module (gnu packages audio)
  28. #:use-module (gnu packages base)
  29. #:use-module (gnu packages curl)
  30. #:use-module (gnu packages fontutils)
  31. #:use-module (gnu packages games)
  32. #:use-module (gnu packages gettext)
  33. #:use-module (gnu packages gl)
  34. #:use-module (gnu packages image)
  35. #:use-module (gnu packages lua)
  36. #:use-module (gnu packages multiprecision)
  37. #:use-module (gnu packages ncurses)
  38. #:use-module (gnu packages pkg-config)
  39. #:use-module (gnu packages serialization)
  40. #:use-module (gnu packages sqlite)
  41. #:use-module (gnu packages xiph)
  42. #:use-module (gnu packages xorg)
  43. #:use-module (guix packages)
  44. #:use-module (guix git-download)
  45. #:use-module (guix build-system cmake)
  46. #:use-module (guix build-system copy)
  47. #:use-module (guix build-system trivial)
  48. #:use-module (guix build-system minetest)
  49. #:use-module ((guix licenses) #:prefix license:))
  50. (define-public minetest
  51. (package
  52. (name "minetest")
  53. (version "5.4.1")
  54. (source (origin
  55. (method git-fetch)
  56. (uri (git-reference
  57. (url "https://github.com/minetest/minetest")
  58. (commit version)))
  59. (file-name (git-file-name name version))
  60. (sha256
  61. (base32
  62. "062ilb7s377q3hwfhl8q06vvcw2raydz5ljzlzwy2dmyzmdcndb8"))
  63. (modules '((guix build utils)))
  64. (patches
  65. (search-patches
  66. "minetest-add-MINETEST_MOD_PATH.patch"))
  67. (snippet
  68. '(begin
  69. ;; Delete bundled libraries.
  70. (delete-file-recursively "lib")
  71. #t))))
  72. (build-system cmake-build-system)
  73. (arguments
  74. `(#:configure-flags
  75. (list "-DRUN_IN_PLACE=0"
  76. "-DENABLE_FREETYPE=1"
  77. "-DENABLE_GETTEXT=1"
  78. "-DENABLE_SYSTEM_JSONCPP=TRUE"
  79. (string-append "-DIRRLICHT_INCLUDE_DIR="
  80. (assoc-ref %build-inputs "irrlicht")
  81. "/include/irrlicht")
  82. (string-append "-DCURL_INCLUDE_DIR="
  83. (assoc-ref %build-inputs "curl")
  84. "/include/curl"))
  85. #:phases
  86. (modify-phases %standard-phases
  87. (add-after 'unpack 'patch-sources
  88. (lambda* (#:key inputs #:allow-other-keys)
  89. (substitute* "src/filesys.cpp"
  90. ;; Use store-path for "rm" instead of non-existing FHS path.
  91. (("\"/bin/rm\"")
  92. (string-append "\"" (assoc-ref inputs "coreutils") "/bin/rm\"")))
  93. (substitute* "src/CMakeLists.txt"
  94. ;; Let minetest binary remain in build directory.
  95. (("set\\(EXECUTABLE_OUTPUT_PATH .*\\)") ""))
  96. (substitute* "src/unittest/test_servermodmanager.cpp"
  97. ;; do no override MINETEST_SUBGAME_PATH
  98. (("(un)?setenv\\(\"MINETEST_SUBGAME_PATH\".*\\);")
  99. "(void)0;"))
  100. (setenv "MINETEST_SUBGAME_PATH"
  101. (string-append (getcwd) "/games")) ; for check
  102. #t))
  103. (replace 'check
  104. (lambda* (#:key tests? #:allow-other-keys)
  105. ;; Thanks to our substitutions, the tests should also run
  106. ;; when invoked on the target outside of `guix build'.
  107. (when tests?
  108. (setenv "HOME" "/tmp")
  109. (invoke "src/minetest" "--run-unittests")))))))
  110. (native-search-paths
  111. (list (search-path-specification
  112. (variable "MINETEST_SUBGAME_PATH")
  113. (files '("share/minetest/games")))
  114. (search-path-specification
  115. (variable "MINETEST_MOD_PATH")
  116. (files '("share/minetest/mods")))))
  117. (native-inputs
  118. `(("pkg-config" ,pkg-config)))
  119. (inputs
  120. `(("coreutils" ,coreutils)
  121. ("curl" ,curl)
  122. ("freetype" ,freetype)
  123. ("gettext" ,gettext-minimal)
  124. ("gmp" ,gmp)
  125. ("irrlicht" ,irrlicht)
  126. ("jsoncpp" ,jsoncpp)
  127. ("libjpeg" ,libjpeg-turbo)
  128. ("libpng" ,libpng)
  129. ("libogg" ,libogg)
  130. ("libvorbis" ,libvorbis)
  131. ("libxxf86vm" ,libxxf86vm)
  132. ("luajit" ,luajit)
  133. ("mesa" ,mesa)
  134. ("ncurses" ,ncurses)
  135. ("openal" ,openal)
  136. ("sqlite" ,sqlite)))
  137. (propagated-inputs
  138. `(("minetest-data" ,minetest-data)))
  139. (synopsis "Infinite-world block sandbox game")
  140. (description
  141. "Minetest is a sandbox construction game. Players can create and destroy
  142. various types of blocks in a three-dimensional open world. This allows
  143. forming structures in every possible creation, on multiplayer servers or as a
  144. single player. Mods and texture packs allow players to personalize the game
  145. in different ways.")
  146. (home-page "https://www.minetest.net/")
  147. (license license:lgpl2.1+)))
  148. (define minetest-data
  149. (package
  150. (name "minetest-data")
  151. (version (package-version minetest))
  152. (source (origin
  153. (method git-fetch)
  154. (uri (git-reference
  155. (url "https://github.com/minetest/minetest_game")
  156. (commit version)))
  157. (file-name (git-file-name name version))
  158. (sha256
  159. (base32
  160. "0i45lbnikvgj9kxdp0yphpjjwjcgp4ibn49xkj78j5ic1s9n8jd4"))))
  161. (build-system trivial-build-system)
  162. (native-inputs
  163. `(("source" ,source)))
  164. (arguments
  165. `(#:modules ((guix build utils))
  166. #:builder (begin
  167. (use-modules (guix build utils))
  168. (let ((install-dir (string-append
  169. %output
  170. "/share/minetest/games/minetest_game")))
  171. (mkdir-p install-dir)
  172. (copy-recursively
  173. (assoc-ref %build-inputs "source")
  174. install-dir)
  175. #t))))
  176. (synopsis "Main game data for the Minetest game engine")
  177. (description
  178. "Game data for the Minetest infinite-world block sandbox game.")
  179. (home-page "https://www.minetest.net/")
  180. (license license:lgpl2.1+)))
  181. (define-public (minetest-topic topic-id)
  182. "Return an URL (as a string) pointing to the forum topic with
  183. numeric identifier TOPIC-ID on the official Minetest forums."
  184. (string-append "https://forum.minetest.net/viewtopic.php?t="
  185. (number->string topic-id)))
  186. (define-public minetest-basic-materials
  187. (package
  188. (name "minetest-basic-materials")
  189. ;; Upstream uses dates as version numbers.
  190. (version "2021-01-30")
  191. (source
  192. (origin
  193. (method git-fetch)
  194. (uri (git-reference
  195. (url "https://gitlab.com/VanessaE/basic_materials.git")
  196. (commit "e72665b2ed98d7be115779a32d35e6d9ffa231bd")))
  197. (sha256
  198. (base32 "0v6l3lrjgshy4sccjhfhmfxc3gk0cdy73qb02i9wd2vw506v5asx"))
  199. (file-name (git-file-name name version))))
  200. (build-system minetest-mod-build-system)
  201. (home-page (minetest-topic 21000))
  202. (synopsis "Some \"basic\" materials and items for other Minetest mods to use")
  203. (description
  204. "The Minetest mod \"basic_materials\" provides a small selection of
  205. \"basic\" materials and items that other mods should use when possible -- things
  206. like steel bars and chains, wire, plastic strips and sheets, and more.")
  207. (license
  208. (list license:cc-by-sa4.0 license:lgpl3))
  209. (properties `((upstream-name . "VanessaE/basic_materials")))))
  210. (define-public minetest-coloredwood
  211. (package
  212. (name "minetest-coloredwood")
  213. ;; Upstream uses dates as version numbers.
  214. (version "2021-04-14-1")
  215. (source
  216. (origin
  217. (method git-fetch)
  218. (uri (git-reference
  219. (url "https://gitlab.com/VanessaE/coloredwood")
  220. (commit "be4df6fc889419155bed8638bbb752493e78cbd5")))
  221. (sha256
  222. (base32 "1swirfk6b4xfbiwv8adyw5yl2lyfpp8ymfipzq9ivyvmif8nl3ki"))
  223. (file-name (git-file-name name version))))
  224. (build-system minetest-mod-build-system)
  225. (propagated-inputs
  226. `(("minetest-unifieddyes" ,minetest-unifieddyes)))
  227. (home-page (minetest-topic 2411))
  228. (synopsis "Painted wood in Minetest")
  229. (description
  230. "This Minetest mod provides hundreds of colours of wood and fences to
  231. Minetest, using Unified Dyes. If the \"moreblocks\" mod is active,
  232. coloured and cut wood shapes are provided as well.")
  233. (license
  234. ;; LGPL for code, CC-BY-SA for textures
  235. (list license:cc-by-sa4.0 license:lgpl3))
  236. (properties `((upstream-name . "VanessaE/coloredwood")))))
  237. (define-public minetest-ethereal
  238. ;; ContentDB release 2021-07-28 is slightly ahead of the
  239. ;; initial version 1.29 -- i.e., some released changes have been
  240. ;; made to version 1.29 without a corresponding version bump.
  241. (let ((commit "7670c1da9274901f57f6682384af2b3bae005a86")
  242. (revision "0"))
  243. (package
  244. (name "minetest-ethereal")
  245. (version (git-version "1.29" revision commit))
  246. (source
  247. (origin
  248. (method git-fetch)
  249. (uri (git-reference
  250. (url "https://notabug.org/TenPlus1/ethereal")
  251. (commit commit)))
  252. (sha256
  253. (base32 "1hal8bq4fydsip7s8rqz4vlaaqy9rhzxmryd0j2qnqm9286yjgkk"))
  254. (file-name (git-file-name name version))))
  255. (build-system minetest-mod-build-system)
  256. (home-page (minetest-topic 14638))
  257. (synopsis "The Ethereal mod adds many new biomes to Minetest")
  258. (description
  259. "The Ethereal Minetest mod uses the v7 map generator to add many new
  260. biomes to the world. It adds new trees, plants, food items, tweaks and some
  261. special items, intending to make an interesting adventure.")
  262. ;; CC0: some textures
  263. (license (list license:cc0 license:expat))
  264. (properties `((upstream-name . "TenPlus1/ethereal"))))))
  265. (define-public minetest-homedecor-modpack
  266. (package
  267. (name "minetest-homedecor-modpack")
  268. ;; Upstream doesn't tag releases, so use the release title from
  269. ;; ContentDB as version.
  270. (version "2021-03-27-1")
  271. (source
  272. (origin
  273. (method git-fetch)
  274. (uri (git-reference
  275. (url "https://gitlab.com/VanessaE/homedecor_modpack")
  276. (commit "9ffe2b7d691133e1a067546574fbe7364fd02f32")))
  277. (sha256
  278. (base32 "1lfajqvc2adf9hqskghky4arccqzpjw4i9a01hv4qcckvivm04ag"))
  279. (file-name (git-file-name name version))))
  280. (build-system minetest-mod-build-system)
  281. (propagated-inputs
  282. `(("minetest-basic-materials" ,minetest-basic-materials)
  283. ("minetest-unifieddyes" ,minetest-unifieddyes)))
  284. (home-page (minetest-topic 2041))
  285. (synopsis "Home decor mod for Minetest")
  286. (description
  287. ;; TRANSLATORS: ‘homedecor’ is the name is the name of a Minetest mod
  288. ;; and should not be translated.
  289. "The homedecor Minetest mod provides a large seleection of items that
  290. might be found inside and around homes, such as sofas, chairs, tables, fences
  291. and a variety of other stuff.")
  292. (license
  293. (list license:cc-by-sa4.0 license:lgpl3))
  294. (properties `((upstream-name . "VanessaE/homedecor_modpack")))))
  295. (define-public minetest-mesecons
  296. ;; The release on ContentDB does not have its own version number.
  297. (let ((commit "db5879706d04d3480bc4863ce0c03fa73e5f10c7")
  298. (revision "0"))
  299. (package
  300. (name "minetest-mesecons")
  301. (version (git-version "1.2.1" revision commit))
  302. (source
  303. (origin
  304. (method git-fetch)
  305. (uri (git-reference
  306. (url "https://github.com/minetest-mods/mesecons")
  307. (commit commit)))
  308. (sha256
  309. (base32 "04m9s9l3frw1lgki41hgvjsw2zkrvfv0sy750b6j12arzb3lv645"))
  310. (file-name (git-file-name name version))))
  311. (build-system minetest-mod-build-system)
  312. (home-page "https://mesecons.net")
  313. (synopsis
  314. "Digital circuitry for Minetest, including wires, buttons and lights")
  315. (description
  316. "Mesecons is a mod for Minetest implementing various items related
  317. to digital circuitry, such as wires, buttons, lights and programmable
  318. controllers. Among other things, there are also pistons, solar panels,
  319. pressure plates and note blocks.
  320. Mesecons has a similar goal to Redstone in Minecraft, but works in its own way,
  321. with different rules and mechanics.")
  322. ;; LGPL for code, CC-BY-SA for textures.
  323. ;; The README.md and COPYING.txt disagree about the "+" in license:lgpl3+.
  324. ;; For now, assume README.md is correct. Upstream has been asked to
  325. ;; correct the inconsistency:
  326. ;; <https://github.com/minetest-mods/mesecons/issues/575>.
  327. (license (list license:lgpl3+ license:cc-by-sa3.0))
  328. (properties `((upstream-name . "Jeija/mesecons"))))))
  329. (define-public minetest-mineclone
  330. (package
  331. (name "minetest-mineclone")
  332. (version "0.71.0")
  333. (source (origin
  334. (method git-fetch)
  335. (uri (git-reference
  336. (url "https://git.minetest.land/Wuzzy/MineClone2")
  337. (commit version)))
  338. (file-name (git-file-name name version))
  339. (sha256
  340. (base32
  341. "0qm809dqvxc7pa1cr9skmglq9vrbq5hhm4c4m5yi46ldh1v96dgf"))))
  342. (build-system copy-build-system)
  343. (arguments
  344. `(#:install-plan
  345. '(("." "share/minetest/games/mineclone"))))
  346. (synopsis "Minecraft clone based on Minetest engine")
  347. (description
  348. "MineClone is a Minetest subgame, that aims to recreate Minecraft as
  349. closely as the engine allows.")
  350. (home-page "https://content.minetest.net/packages/Wuzzy/mineclone2/")
  351. (license license:gpl3+)))
  352. (define-public minetest-mobs
  353. (package
  354. (name "minetest-mobs")
  355. ;; Upstream does not tag release, so use the ContentDB release
  356. ;; title instead.
  357. (version "2021-07-22")
  358. (source
  359. (origin
  360. (method git-fetch)
  361. (uri (git-reference
  362. (url "https://notabug.org/TenPlus1/mobs_redo")
  363. (commit "9f46182bb4b1a390f9a140bc2b443f3cda702332")))
  364. (sha256
  365. (base32 "026kqjis4lipgskjivb3jh9ris3iz80vy2q1jvgxhxmfghjjzp4j"))
  366. (file-name (git-file-name name version))))
  367. (build-system minetest-mod-build-system)
  368. (home-page (minetest-topic 9917))
  369. (synopsis "Mob library for Minetest mods, for animals, monsters etc.")
  370. (description
  371. "This Minetest mod provides an API for adding mods (moving entities
  372. like animals and monsters), but does not include any mobs itself. To actually
  373. add some mobs, a mod like e.g. @code{mobs_animal} provided by the
  374. @code{minetest-mobs-animal} package needs to be enabled.")
  375. ;; CC0: mob_swing.ogg
  376. ;; CC-BY 3.0: mob_spell.ogg
  377. ;; Expat: everything else
  378. (license (list license:expat license:cc0 license:cc-by3.0))
  379. (properties `((upstream-name . "TenPlus1/mobs")))))
  380. (define-public minetest-mobs-animal
  381. (package
  382. (name "minetest-mobs-animal")
  383. ;; Upstream does not use version numbers, so use the release title
  384. ;; from ContentDB instead;
  385. (version "2021-07-24")
  386. (source
  387. (origin
  388. (method git-fetch)
  389. (uri (git-reference
  390. (url "https://notabug.org/TenPlus1/mobs_animal")
  391. (commit "c2fa3e300c79c7dd80b6fe91a8b5082bb6b3d934")))
  392. (sha256
  393. (base32 "1j719f079ia9vjxrmjrcj8s6jvaz5kgs1r4dh66z8ql6s70kx7vh"))
  394. (file-name (git-file-name name version))))
  395. (build-system minetest-mod-build-system)
  396. (propagated-inputs
  397. `(("minetest-mobs" ,minetest-mobs)))
  398. (home-page "https://notabug.org/TenPlus1/mobs_animal")
  399. (synopsis "Add animals to Minetest")
  400. (description
  401. "This Minetest mod adds various animals to Minetest, such as bees,
  402. bunnies, chickens, cows, kittens, rats, sheep, warthogs, penguins and pandas.")
  403. ;; CC0: some textures and sounds
  404. (license (list license:cc0 license:expat))
  405. (properties `((upstream-name . "TenPlus1/mobs_animal")))))
  406. (define-public minetest-pipeworks
  407. (package
  408. (name "minetest-pipeworks")
  409. ;; Upstream uses dates as version numbers.
  410. (version "2021-04-14-1")
  411. (source
  412. (origin
  413. (method git-fetch)
  414. (uri (git-reference
  415. (url "https://gitlab.com/VanessaE/pipeworks")
  416. (commit "db6d1bd9c109e1e543b97cc3fa8a11400da23bcd")))
  417. (sha256
  418. (base32 "1flhcnf17dn1v86kcg47a1n4cb0lybd11ncxrkxn3wmf10ibsrm0"))
  419. (file-name (git-file-name name version))))
  420. (build-system minetest-mod-build-system)
  421. (propagated-inputs
  422. `(("minetest-basic-materials" ,minetest-basic-materials)))
  423. (home-page (minetest-topic 2155))
  424. (synopsis "Pipes, item-transport tubes and related devices for Minetest")
  425. (description
  426. "Pipeworks is a mod for Minetest implementing 3D pipes and tubes for
  427. transporting liquids and items and some related devices. Pipes and tubes can
  428. go horizontally or vertically. Item tubes can also be used for sorting items
  429. and extracting items from chests or putting items in chests. Autocrafters can
  430. automatically follow craft recipes to make new items and can be fed by item
  431. tubes. Deployers can place items in the world as a player would. Node
  432. breakers simulate a player punching a node.")
  433. ;; CC-BY-SA for textures, LGPL for code
  434. (license (list license:cc-by-sa4.0 license:lgpl3))
  435. (properties `((upstream-name . "VanessaE/pipeworks")))))
  436. (define-public minetest-technic
  437. (package
  438. (name "minetest-technic")
  439. ;; Upstream doesn't keep version numbers, so use the release
  440. ;; date on ContentDB instead.
  441. (version "2021-04-15")
  442. (source
  443. (origin
  444. (method git-fetch)
  445. (uri (git-reference
  446. (url "https://github.com/minetest-mods/technic")
  447. (commit "1c219487d3f4dd03c01ff9aa1f298c7c18c7e189")))
  448. (sha256
  449. (base32 "1k9hdgzp7jnhsk6rgrlrv1lr5xrmh8ln4wv6r25v6f0fwbyj57sf"))
  450. (file-name (git-file-name name version))))
  451. (build-system minetest-mod-build-system)
  452. (propagated-inputs
  453. `(("minetest-pipeworks" ,minetest-pipeworks)
  454. ("minetest-basic-materials" ,minetest-basic-materials)))
  455. (home-page (minetest-topic 2538))
  456. (synopsis "Machinery and automation for Minetest")
  457. (description
  458. "This Minetest mod adds machinery and automation to Minetest.
  459. It adds various ores that can be processed for constructing various
  460. machinery, such as power generators, force field emitters, quarries
  461. and a workshop for repairing tools. Most machines are electrically
  462. powered.")
  463. ;; CC BY-SA 3.0: some texture
  464. ;; WTFPL: some textures
  465. ;; CC BY-SA3.0: some textures
  466. ;; CC BY-SA4.0: some sounds
  467. (license (list license:lgpl2.1+ license:cc-by-sa3.0 license:cc-by-sa4.0
  468. license:wtfpl2))
  469. (properties `((upstream-name . "RealBadAngel/technic")))))
  470. (define-public minetest-throwing
  471. ;; The latest release on ContentDB is ahead of the latet
  472. ;; tagged commit.
  473. (let ((commit "31f0cf5f868673dc82f24ddc432b45c9cd282d27")
  474. (revision "0"))
  475. (package
  476. (name "minetest-throwing")
  477. (version (git-version "1.1" revision commit))
  478. (source
  479. (origin
  480. (method git-fetch)
  481. (uri (git-reference
  482. (url "https://github.com/minetest-mods/throwing")
  483. (commit commit)))
  484. (sha256
  485. (base32 "1s5kkr6rxxv2dhbbjzv62gw1s617hnpjavw1v9fv11v3mgigdfjb"))
  486. (file-name (git-file-name name version))))
  487. (build-system minetest-mod-build-system)
  488. (home-page (minetest-topic 16365))
  489. (synopsis "API for throwing things in Minetest")
  490. (description
  491. "This Minetest mod provides an API for registering throwable things and
  492. throwing things like arrows. However, this mod does not provide an actual
  493. arrow and bow, but @code{minetest-throwing-arrows} does.")
  494. (license license:mpl2.0)
  495. (properties `((upstream-name . "Palige/throwing"))))))
  496. (define-public minetest-throwing-arrows
  497. ;; There is only one tagged commit (version 1.1),
  498. ;; there are no releases on ContentDB and the latest
  499. ;; commit has a compatibility fix for Minetest 5.4.0-dev.
  500. (let ((commit "059cc897af0aebfbd2c54ac5588f2b842f44f159")
  501. (revision "0"))
  502. (package
  503. (name "minetest-throwing-arrows")
  504. (version (git-version "1.1" revision commit))
  505. (source
  506. (origin
  507. (method git-fetch)
  508. (uri (git-reference
  509. (url "https://github.com/minetest-mods/throwing_arrows")
  510. (commit commit)))
  511. (sha256
  512. (base32 "0m2pmccpfxn878zd00pmrpga2h6gknz4f3qprck0fq94mksmwqs3"))
  513. (file-name (git-file-name name version))))
  514. (build-system minetest-mod-build-system)
  515. (propagated-inputs
  516. `(("minetest-throwing" ,minetest-throwing)))
  517. (home-page (minetest-topic 16365))
  518. (synopsis "Arrows and bows for Minetest")
  519. (description
  520. ;; TRANSLATORS: "throwing" is the name of a Minetest mod and should
  521. ;; not be translated.
  522. "This mod adds arrows and bows to Minetest. It is a compatible
  523. replacement for the throwing mod by PilzAdam that uses the throwing API.")
  524. (license license:mpl2.0))))
  525. (define-public minetest-worldedit
  526. (package
  527. (name "minetest-worldedit")
  528. (version "1.3")
  529. (source
  530. (origin
  531. (method git-fetch)
  532. (uri (git-reference
  533. (url "https://github.com/Uberi/Minetest-WorldEdit")
  534. (commit "2f26fb76459c587868199160b9d7b5d6d7852e50")))
  535. (sha256
  536. (base32 "0lsvihkixi2na1b0vmml9vwgs0g24hqqshl73ffhkzh6jsq4cagq"))
  537. (file-name (git-file-name name version))))
  538. (build-system minetest-mod-build-system)
  539. (home-page (minetest-topic 572))
  540. (synopsis "In-game world editor for Minetest")
  541. (description
  542. "WorldEdit is a mod for Minetest. It allows for creating various
  543. geometric shapes and copying regions. It can also export and import regions
  544. to and from the file system.")
  545. (license license:agpl3)
  546. (properties `((upstream-name . "sfan5/worldedit")))))
  547. (define-public minetest-unifieddyes
  548. (package
  549. (name "minetest-unifieddyes")
  550. ;; Upstream uses dates as version numbers.
  551. (version "2021-04-20-1")
  552. (source
  553. (origin
  554. (method git-fetch)
  555. (uri (git-reference
  556. (url "https://gitlab.com/VanessaE/unifieddyes")
  557. (commit "ff3b2d30fa0df5c7181fdd401b989de6271c3bb3")))
  558. (sha256
  559. (base32 "0rba9n192xcpmxwnq7ixb6mn32gkpic247j3w4mwinrqcyscacsv"))
  560. (file-name (git-file-name name version))))
  561. (build-system minetest-mod-build-system)
  562. (propagated-inputs
  563. `(("minetest-basic-materials" ,minetest-basic-materials)))
  564. (home-page (minetest-topic 2178))
  565. (synopsis
  566. "Unified Dyes expands the standard dye set of Minetest to up to 256 colours")
  567. (description "The purpose of this mod originally was to supply a complete
  568. set of colours for Minetest mod authors to use for colourised nodes or
  569. reference in recipes. Since the advent of the default dyes mod in the standard
  570. Minetest game, this mod has become an extension of the default mod an a library
  571. for general colour handling.")
  572. (license license:gpl2+)
  573. (properties `((upstream-name . "VanessaE/unifieddyes")))))
  574. (define-public minetest-unified-inventory
  575. (package
  576. (name "minetest-unified-inventory")
  577. ;; Upstream doesn't keep version numbers, so use the release title
  578. ;; on ContentDB instead.
  579. (version "2021-03-25-1")
  580. (source
  581. (origin
  582. (method git-fetch)
  583. (uri (git-reference
  584. (url "https://github.com/minetest-mods/unified_inventory")
  585. (commit "c044f5e3b08f0c68ab028d757b2fa63d9a1b0370")))
  586. (sha256
  587. (base32 "198g945gzbfl0kps46gwjw0c601l3b3wvn4c7dw8manskri1jr4g"))
  588. (file-name (git-file-name name version))))
  589. (build-system minetest-mod-build-system)
  590. (home-page (minetest-topic 12767))
  591. (synopsis "Replace the default inventory in Minetest and add a crafting guide")
  592. (description
  593. "The Unified Inventory Minetest mod relaces the default survival an
  594. creative inventory. It includes a node, item and tool browser, a crafting
  595. guide, a trash and refill slot for creative mode, bags and waypoints for keeping
  596. track of important locations.")
  597. ;; CC-BY: some textures and icons
  598. ;; CC-BY-SA: some textures and icons
  599. ;; LGLPL2.1+: code and some textures
  600. ;; GPL2+: some textures
  601. ;; GPL3: bags.lua
  602. ;; GFDL: some icons
  603. ;; public domain, CC0: some icons
  604. (license (list license:gpl3 license:gpl2+ license:lgpl2.1+ license:cc-by3.0
  605. license:cc-by4.0 license:cc-by-sa3.0 license:public-domain
  606. license:cc0 license:fdl1.2+))
  607. (properties `((upstream-name . "RealBadAngel/unified_inventory")))))
  608. (define-public minetest-advtrains
  609. (package
  610. (name "minetest-advtrains")
  611. (version "2.3.1")
  612. (source
  613. (origin
  614. (method git-fetch)
  615. (uri (git-reference
  616. (url "https://git.bananach.space/advtrains.git")
  617. (commit (string-append "release-" version))))
  618. (sha256
  619. (base32 "1ijqlchh269jpvmgmdmdvy3nsnk0bszkvvcqk6vaysvxam695ggw"))
  620. (file-name (git-file-name name version))))
  621. (build-system minetest-mod-build-system)
  622. (home-page "http://advtrains.de/")
  623. (synopsis "Adds good-looking, realistic trains with realistic rails")
  624. (description
  625. "This mod features realistic trains and various equipment for railways,
  626. with a focus on automated train operation. This package contains no actual
  627. trains, please use @code{minetest-basic-trains}.
  628. Main features:
  629. @itemize
  630. @item
  631. almost-realistic tracks with actual curves and switches;
  632. @item
  633. railway signals, controllable by various means;
  634. @item
  635. ATC: simple, command-like automatic train control;
  636. @item
  637. LuaATC: Powerful Lua-scripted automatic train operation (requires some
  638. programming knowledge);
  639. @item
  640. an interlocking system, featuring track sections, routes and automatic
  641. stopping before signals.
  642. @end itemize")
  643. (license (list license:cc-by-sa3.0 license:agpl3+))
  644. (properties `((upstream-name . "orwell/advtrains")))))
  645. (define-public minetest-basic-trains
  646. (package
  647. (name "minetest-basic-trains")
  648. (version "1.0.1")
  649. (source
  650. (origin
  651. (method git-fetch)
  652. (uri (git-reference
  653. (url "http://git.bananach.space/basic_trains.git/")
  654. (commit
  655. "d44c410f7c2a7202ee68b66fc50febae89e0c5dc")))
  656. (sha256
  657. (base32
  658. "0vvzndj48kgdz2bfgivfm217sbmc2lmxpp2mispcy7byn4i26prx"))
  659. (file-name (git-file-name name version))))
  660. (build-system minetest-mod-build-system)
  661. (propagated-inputs
  662. `(("minetest-advtrains" ,minetest-advtrains)))
  663. (home-page
  664. "http://advtrains.de/wiki/doku.php?id=usage:trains:basic_trains")
  665. (synopsis "Collection of basic trains for the Advanced Trains mod")
  666. (description
  667. "This modpack contains the trains which were the ``default'' trains in
  668. advtrains up to version 2.2.1.")
  669. (license (list license:cc-by-sa3.0 license:agpl3+))
  670. (properties `((upstream-name . "orwell/basic_trains")))))