[bug#76545,v3] gnu: mame: Update to 0.276.
Commit Message
* gnu/packages/emulators.scm (mame): Update to 0.276.
[source]: Add modules for cut and scandir. Preserve the minimum set of
third-party libraries.
[arguments]<#:make-flags>: Remove unnecessary flags.
<#:phases>: Add a phase to use all possible system libraries instead of
listing them piece wise.
[native-inputs]: Add nasm.
[inputs]: Replace lua with lua-5.4. Add zstd:lib.
Change-Id: I650a008461d69e5a39ba6a12e7140aa785dc0298
---
v3: Update to 0.276. Remove old comment. Do not try to use C++ Lua as it is
not packaged in Guix yet.
gnu/packages/emulators.scm | 63 ++++++++++++++++++++++++++------------
1 file changed, 43 insertions(+), 20 deletions(-)
base-commit: 5735c278e16517d9be5e26235fe68dea9bae3527
Comments
Am Dienstag, dem 01.04.2025 um 09:04 +0200 schrieb Nicolas Goaziou:
> * gnu/packages/emulators.scm (mame): Update to 0.276.
> [source]: Add modules for cut and scandir. Preserve the minimum set
> of third-party libraries.
> [arguments]<#:make-flags>: Remove unnecessary flags.
> <#:phases>: Add a phase to use all possible system libraries instead
> of listing them piece wise.
> [native-inputs]: Add nasm.
> [inputs]: Replace lua with lua-5.4. Add zstd:lib.
>
> Change-Id: I650a008461d69e5a39ba6a12e7140aa785dc0298
> ---
>
> v3: Update to 0.276. Remove old comment. Do not try to use C++ Lua
> as it is not packaged in Guix yet.
I keep wanting to try this patch, but haven't yet succeeded in building
the package. (This may very well be a "my machine" problem, as the
build seems to require quite a lot of resources.) In any case, it
lexically LGTM.
Cheers
Hello,
Liliana Marie Prikler <liliana.prikler@gmail.com> writes:
> Am Dienstag, dem 01.04.2025 um 09:04 +0200 schrieb Nicolas Goaziou:
>> * gnu/packages/emulators.scm (mame): Update to 0.276.
>> [source]: Add modules for cut and scandir. Preserve the minimum set
>> of third-party libraries.
>> [arguments]<#:make-flags>: Remove unnecessary flags.
>> <#:phases>: Add a phase to use all possible system libraries instead
>> of listing them piece wise.
>> [native-inputs]: Add nasm.
>> [inputs]: Replace lua with lua-5.4. Add zstd:lib.
>>
>> Change-Id: I650a008461d69e5a39ba6a12e7140aa785dc0298
>> ---
>>
>> v3: Update to 0.276. Remove old comment. Do not try to use C++ Lua
>> as it is not packaged in Guix yet.
> I keep wanting to try this patch, but haven't yet succeeded in building
> the package. (This may very well be a "my machine" problem, as the
> build seems to require quite a lot of resources.) In any case, it
> lexically LGTM.
Alas, this package doesn’t build yet. At this point, I’m not even sure
about the error, only that it is related to Lua. For the record, the
failure log can be found there:
<https://bordeaux.guix.gnu.org/build/9b1cb885-0466-4ae1-829b-9edbe91064d7/log>.
I certainly would appreciate some help if anyone wants to have a look
into it.
Regards,
@@ -6,7 +6,7 @@
;;; Copyright © 2015, 2018, 2023 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2017-2025 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2017, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
@@ -3026,7 +3026,7 @@ (define-public libticalcs2
(define-public mame
(package
(name "mame")
- (version "0.252")
+ (version "0.276")
(source
(origin
(method git-fetch)
@@ -3035,33 +3035,54 @@ (define-public mame
(commit (apply string-append "mame" (string-split version #\.)))))
(file-name (git-file-name name version))
(sha256
- (base32 "07qhcm1v47sy2wj30nx3cbhvcbgki0cl83gabr0miiw60fhgyn6j"))
- (modules '((guix build utils)))
+ (base32 "1npjb5n03gchprnz61br0b0sprvwylkhygla3z84xklzd11y678d"))
+ (modules '((ice-9 ftw)
+ (srfi srfi-26)
+ (guix build utils)))
(snippet
- ;; Remove bundled libraries.
- '(begin
- (with-directory-excursion "3rdparty"
- (for-each delete-file-recursively
- '("asio" "expat" "glm" "libflac" "libjpeg" "lua"
- "portaudio" "portmidi" "pugixml" "rapidjson" "SDL2"
- "SDL2-override" "sqlite3" "utf8proc" "zlib")))))))
+ ;; Remove most bundled libraries.
+ ;;
+ ;; XXX: Some of the preserved the libraries below ship with Guix, but
+ ;; may prove difficult to un-bundle.
+ #~(with-directory-excursion "3rdparty"
+ (let ((keep (list "." ".."
+ "asmjit"
+ "bgfx"
+ "bimg"
+ "bx"
+ "genie"
+ "linenoise"
+ "lsqlite3"
+ "lua-linenoise"
+ "lua-zlib"
+ "luafilesystem"
+ "lzma"
+ "minimp3"
+ "nanosvg"
+ "softfloat"
+ "softfloat3"
+ "sol2"
+ "wdlfft"
+ "ymfm")))
+ (for-each delete-file-recursively
+ (scandir "." (negate (cut member <> keep)))))))))
(build-system gnu-build-system)
(arguments
(list
#:make-flags
- #~(cons*
+ #~(list
;; A 'strict-overflow' error pops up on i686 so disable '-Werror'.
"NOWERROR=1"
(string-append "QT_HOME=" #$(this-package-input "qtbase"))
- (string-append "SDL_INI_PATH=" #$output "/share/mame/ini")
- (map (lambda (lib)
- (string-append "USE_SYSTEM_LIB_" (string-upcase lib) "=1"))
- '("asio" "expat" "flac" "glm" "jpeg" "lua" "portaudio" "portmidi"
- "pugixml" "rapidjson" "sqlite3" "utf8proc" "zlib")))
+ (string-append "SDL_INI_PATH=" #$output "/share/mame/ini"))
#:tests? #f ;no test in regular release
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
+ (add-before 'build 'use-system-libraries
+ (lambda _
+ (substitute* "makefile"
+ (("# +(USE_SYSTEM_LIB)" _ option) option))))
(add-after 'build 'build-documentation
(lambda _ (invoke "make" "-C" "docs" "man" "info")))
(replace 'install
@@ -3164,7 +3185,8 @@ (define-public mame
Keywords=Game;Emulator;Arcade;~%"
executable)))))))))
(native-inputs
- (list pkg-config
+ (list nasm
+ pkg-config
python-sphinx
python-sphinxcontrib-svg2pdfconverter
texinfo))
@@ -3178,7 +3200,7 @@ (define-public mame
libjpeg-turbo
libxi
libxinerama
- lua
+ lua-5.4
portaudio
portmidi
pugixml
@@ -3189,7 +3211,8 @@ (define-public mame
(sdl-union (list sdl2 sdl2-ttf))
sqlite
utf8proc
- zlib))
+ zlib
+ `(,zstd "lib")))
(home-page "https://www.mamedev.org")
(synopsis "Multi-purpose emulation framework")
(description "MAME's purpose is to preserve decades of software