(name . guix-patches@gnu.org)(address . guix-patches@gnu.org)
- Con 1 Feb 2022 18:36
- Con 11 Feb 2022 07:51
- Jon 11 Feb 2022 08:05
- Con 12 Feb 2022 01:30
- Mon 12 Feb 2022 10:54
- Mon 12 Feb 2022 11:11
- Mon 12 Feb 2022 12:35
- Mon 12 Feb 2022 13:17
- Mon 12 Feb 2022 14:31
- Con 13 Feb 2022 00:45
- Con 27 Feb 2022 01:19
- Mon 27 Feb 2022 11:52
Add Visualboyadvance-m
C
Bump
(name . 53704@debbugs.gnu.org)(address . 53704@debbugs.gnu.org)
Q8Y0dERv2B2HRxgdbxZuAlQWe77wcC_de78ypfLnBLGBdYluR-9C-oDOI9nIFbosyWQHmhpYc34qSIGZHaLIoLYoutn3Qeb1_JOgzv9r0tQ=@protonmail.com
J
33CA9DF7-1E9D-410D-9775-61825B56A0DF@lepiller.eu
Your patch looks good, though I haven't tested yet. In your synopsis, it's "an emulator", not "a emulator". The patches should contain author information. Did you create them yourself? Did you get them from somewhere else?
The gcc patch could be replaced with a phase that substitutes cc for gcc.
You need to add the patches to gnu/local.mk.
Thanks!
On February 11, 2022 7:51:31 AM GMT+01:00, Charles via Guix-patches via <guix-patches@gnu.org> wrote:
Toggle quote (5 lines)
>Is there any chance this can get merged? If there is something wrong with the package, I am happy to fix it.
>
>
>
>
Attachment: file
C
(name . Julien Lepiller)(address . julien@lepiller.eu)(name . 53704@debbugs.gnu.org)(address . 53704@debbugs.gnu.org)
3c9dxjEeXYXD76uUQgjwTlqZOtOb7IFb8FX50AHQoH9bc-bapcr6kxnaouHjVYd3CaIPjKPiuUwZ6tx6VW-YRPKUMri5i_mLx4du5ux81a8=@protonmail.com
Thanks for the review, Julien. Here is a new patch that includes your suggestions.
------- Original Message -------
On Friday, February 11th, 2022 at 1:05 AM, Julien Lepiller <julien@lepiller.eu> wrote:
Toggle quote (11 lines)
> Your patch looks good, though I haven't tested yet. In your synopsis, it's "an emulator", not "a emulator". The patches should contain author information. Did you create them yourself? Did you get them from somewhere else?
>
> The gcc patch could be replaced with a phase that substitutes cc for gcc.
>
> You need to add the patches to gnu/local.mk.
>
> Thanks!
>
> On February 11, 2022 7:51:31 AM GMT+01:00, Charles via Guix-patches via <guix-patches@gnu.org> wrote:
>
> > Is there any chance this can get merged? If there is something wrong with the package, I am happy to fix it.
From 3b03ca688dd33091d4e43754eaf3c74ad00cbd10 Mon Sep 17 00:00:00 2001
From: Charles <charles.b.jackson@protonmail.com>
Date: Tue, 1 Feb 2022 10:36:06 -0600
Subject: [PATCH] gnu: emulators: Add visualboyadvance-m.
* gnu/packages/emulators.scm (visualboyadvance-m): New variable.
* gnu/packages/patches/visualboyadvance-m-fix-rpath.patch: New patch.
---
gnu/local.mk | 1 +
gnu/packages/emulators.scm | 53 +++++++++++++++++++
.../visualboyadvance-m-fix-rpath.patch | 25 +++++++++
3 files changed, 79 insertions(+)
create mode 100644 gnu/packages/patches/visualboyadvance-m-fix-rpath.patch
Toggle diff (117 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 1b08b40b9c..5e6bceedfb 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1960,6 +1960,7 @@ dist_patch_DATA = \
%D%/packages/patches/vinagre-newer-freerdp.patch \
%D%/packages/patches/vinagre-newer-rdp-parameters.patch \
%D%/packages/patches/virglrenderer-CVE-2017-6386.patch \
+ %D%/packages/patches/visualboyadvance-m-fix-rpath.patch \
%D%/packages/patches/vsearch-unbundle-cityhash.patch \
%D%/packages/patches/vte-CVE-2012-2738-pt1.patch \
%D%/packages/patches/vte-CVE-2012-2738-pt2.patch \
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 9ec73bc11f..ae4c395d78 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2022 Charles Jackson <charles.b.jackson@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -814,6 +815,58 @@ (define-public sameboy
from an emulator---from save states to scaling filters.")
(license license:expat)))
+(define-public visualboyadvance-m
+ (package
+ (name "visualboyadvance-m")
+ (version "2.1.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/visualboyadvance-m/visualboyadvance-m/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1kgpbvng3c12ws0dy92zc0azd94h0i3j4vm7b67zc8mi3pqsppdg"))
+ (patches (search-patches "visualboyadvance-m-fix-rpath.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:build-type "Release"
+ #:tests? #f
+ #:configure-flags
+ (list "-DENABLE_SSP=ON"
+ "-DENABLE_ONLINEUPDATES=OFF"
+ (string-append "-DCMAKE_PREFIX_PATH="
+ (assoc-ref %build-inputs "wxwidgets")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'set-c-compiler
+ (lambda _
+ (substitute* "cmake/HostCompile.cmake"
+ ((" cc ") " gcc "))))
+ (add-before 'configure 'set-home
+ (lambda _ (setenv "HOME" (getcwd)))))))
+ (native-inputs (list
+ gettext-minimal
+ nasm
+ pkg-config
+ zip))
+ (inputs (list
+ ffmpeg
+ gtk+
+ libpng
+ mesa
+ openal
+ sdl2
+ sfml
+ wxwidgets
+ zlib))
+ (home-page "https://vba-m.com/")
+ (synopsis "Performant Nintendo Gameboy emulator")
+ (description "Visual Boy Advance M is an emulator of the Game Boy, Game Boy
+Color, and Game Boy Advance handheld game consoles.")
+ (license license:gpl2+)))
+
(define-public mupen64plus-core
(package
(name "mupen64plus-core")
diff --git a/gnu/packages/patches/visualboyadvance-m-fix-rpath.patch b/gnu/packages/patches/visualboyadvance-m-fix-rpath.patch
new file mode 100644
index 0000000000..9116f35b2a
--- /dev/null
+++ b/gnu/packages/patches/visualboyadvance-m-fix-rpath.patch
@@ -0,0 +1,25 @@
+From 6ec4f4224aa360d5c233941148465ad1c8c77f33 Mon Sep 17 00:00:00 2001
+From: Charles Jackson <charles.b.jackson@protonmail.com>
+Date: Mon, 31 Jan 2022 23:24:17 -0600
+Subject: [PATCH] Fix rpath
+
+---
+ CMakeLists.txt | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 010c9b0e..3a959b59 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -610,9 +610,6 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL Clang)
+
+ set(MY_C_LINKER_FLAGS ${MY_C_LINKER_FLAGS} -Wl,-allow-multiple-definition)
+
+- if(CMAKE_PREFIX_PATH)
+- list(GET CMAKE_PREFIX_PATH 0 prefix_path_first)
+- set(MY_C_LINKER_FLAGS ${MY_C_LINKER_FLAGS} "-Wl,-rpath-link=${prefix_path_first}/lib")
+- endif()
++ set(MY_C_LINKER_FLAGS ${MY_C_LINKER_FLAGS} "-Wl,-rpath,$ENV{LIBRARY_PATH}")
+ endif()
+
+ # set linker flags
\ No newline at end of file
--
2.34.0
M
(name . 53704@debbugs.gnu.org)(address . 53704@debbugs.gnu.org)
d392fcdcd39da3e7152a4d0cfeb01c4f5d974e8d.camel@telenet.be
Charles via Guix-patches via schreef op za 12-02-2022 om 00:30 [+0000]:
Toggle quote (2 lines)
> + ((" cc ") " gcc "))))
This needs to be TARGET-gcc when cross-compiling, use cc-for-target:
((" cc ") (string-append " " ,(cc-for-target) " "))
Greetings,
Maxime.
M
(name . 53704@debbugs.gnu.org)(address . 53704@debbugs.gnu.org)
e4e32603383f594edc6cac29121d96bdd3a71a88.camel@telenet.be
Charles via Guix-patches via schreef op za 12-02-2022 om 00:30 [+0000]:
Toggle quote (3 lines)
> ++ set(MY_C_LINKER_FLAGS ${MY_C_LINKER_FLAGS} "-Wl,-
> rpath,$ENV{LIBRARY_PATH}")
When cross-compiling, CROSS_LIBRARY_PATH needs to be used instead.
Usually, fiddling with rpaths manually is unnecessary, Guix does
that automatically in most situations. I'll look into this.
Greetings,
Maxime.
M
(name . 53704@debbugs.gnu.org)(address . 53704@debbugs.gnu.org)
708d9f2b29e09f3906d36ecefc8c273bb589d1b4.camel@telenet.be
Charles via Guix-patches via schreef op za 12-02-2022 om 00:30 [+0000]:
Toggle quote (14 lines)
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url
> "https://github.com/visualboyadvance-m/visualboyadvance-m/")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> "1kgpbvng3c12ws0dy92zc0azd94h0i3j4vm7b67zc8mi3pqsppdg"))
> + (patches (search-patches "visualboyadvance-m-fix-
> rpath.patch"))))
The iniparser package is bundled in src/common/iniparser.c and
src/common/iniparser.h.
A part of a variant of zlib is in src/common/memgzio.c and
src/common/memgzio.h. I think it's ok in this case, since it appears
to be modified for use in visualboyadvance-m. However, the license of
zlib needs to be respected:
/* gzio.c -- IO on .gz files
* Copyright (C) 1995-2002 Jean-loup Gailly.
* For conditions of distribution and use, see copyright notice in
zlib.h
*
* Compile this file with -DNO_DEFLATE to avoid the compression code.
*/
I don't see zlib.h anywhere and the zlib license requires preserving
the license notice:
3. This notice may not be removed or altered from any source
distribution.
There is another problem: the version in visualboyadvance-m is old
(2002, according to the copyright line) while there have been
quite a few bugfixes since then (https://www.zlib.net/ChangeLog.txt).
Another bundled library: src/common/dictionary.c and
src/common/dictionary.h.
There is also src/filters/bilinear.cpp which is extracted from Exult
(GPL2+ licensed), but it appears that the copyright+license header was
not preserved, while preserving that is a requirement of the GPL IIUC?
The files in src/filters/xBRZ are GPL3 licensed, so 'license:gpl2+'
in the package definition seems inaccurate. It is unclear of GPL3-only
or GPL3-or-later was meant.
The file src/gba/debugger-expr-lex.cpp and src/gba/debugger-expr-
yacc.cpp are generated by flex and Bison, can they be generated during
the build?
libretro is bundled in src/libretro, can it be unbundled?
src/expr.cpp and src/expr.cpp.h are generated files, not source code.
A part of glibc is bundled in src/sdl/getopt1.c, src/sdl/getopt.c
and src/sdl/getopt.h.
wxwidgets is bundled in src/wx.
Greetings,
Maxime.
M
(name . 53704@debbugs.gnu.org)(address . 53704@debbugs.gnu.org)
7cfb03127755815b9a55beeccbccbbda2f4d553d.camel@telenet.be
Maxime Devos schreef op za 12-02-2022 om 12:35 [+0100]:
Toggle quote (2 lines)
> wxwidgets is bundled in src/wx.
Nevermind, it's only wxwidgets-related, not wxwidgets itself.
Greetings,
Maxime.
M
(name . 53704@debbugs.gnu.org)(address . 53704@debbugs.gnu.org)
11a5c7052c3f76dcf41fc614fed551ee019c1f96.camel@telenet.be
Hi,
I've modified the package definition and patch a bit to
make it simpler (visualboyadvance-m-fix-rpath.patch now only removed
things), cross-compilable (it uses cc-for-target instead of hardcoding
"gcc" and LIBRARY_PATH is unused) and avoid using constructs that
are being deprecated (%build-inputs --> this-package-input).
The list+local-file will have to be replaced by search-patches.
Cross-compilation is untested because gtk+ cannot currently be
cross-compiled.
It seems to work, at least the application starts, I don't have any VBA
games to test it with.
Greetings,
Maxime.
(use-modules (guix packages) (gnu packages gettext)
(guix git-download)
(guix search-paths)
(gnu packages)
(guix gexp)
(guix utils)
(guix build-system cmake)
(gnu packages audio)
(gnu packages cmake)
(gnu packages assembly)
(gnu packages pkg-config)
(gnu packages compression)
(gnu packages wxwidgets)
(gnu packages game-development)
(gnu packages sdl)
(gnu packages video)
(gnu packages gtk)
(gnu packages image)
(gnu packages gl)
((guix licenses) #:prefix license:))
(define-public visualboyadvance-m
(package
(name "visualboyadvance-m")
(version "2.1.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/visualboyadvance-m/visualboyadvance-m/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1kgpbvng3c12ws0dy92zc0azd94h0i3j4vm7b67zc8mi3pqsppdg"))
(patches (list (local-file "visualboyadvance-m-fix-rpath.patch")))))
(build-system cmake-build-system)
(arguments
(list #:build-type
"Release"
#:tests?
#f ;no tests
#:configure-flags
#~(list "-DENABLE_SSP=ON" "-DENABLE_ONLINEUPDATES=OFF"
(string-append "-DCMAKE_PREFIX_PATH="
#$(this-package-input "wxwidgets")))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'set-c-compiler
(lambda _
(substitute* "cmake/HostCompile.cmake"
((" cc ") (string-append " "
#$(cc-for-target) " "))))))))
(native-inputs (list gettext-minimal nasm pkg-config zip))
(inputs (list ffmpeg
gtk+
libpng
mesa
openal
sdl2
sfml
wxwidgets
zlib))
(home-page "https://vba-m.com/")
(synopsis "Performant Nintendo Gameboy emulator")
(description
"Visual Boy Advance M is an emulator of the Game Boy, Game Boy
Color, and Game Boy Advance handheld game consoles.")
(license license:gpl2+)))
visualboyadvance-m
From 6ec4f4224aa360d5c233941148465ad1c8c77f33 Mon Sep 17 00:00:00 2001
From: Charles Jackson <charles.b.jackson@protonmail.com>
Date: Mon, 31 Jan 2022 23:24:17 -0600
Subject: [PATCH] Fix rpath
---
CMakeLists.txt | 4 ----
1 file changed, 0 insertions(+), 4 deletions(-)
Toggle diff (15 lines)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 010c9b0e..3a959b59 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -610,9 +610,5 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL Clang)
set(MY_C_LINKER_FLAGS ${MY_C_LINKER_FLAGS} -Wl,-allow-multiple-definition)
- if(CMAKE_PREFIX_PATH)
- list(GET CMAKE_PREFIX_PATH 0 prefix_path_first)
- set(MY_C_LINKER_FLAGS ${MY_C_LINKER_FLAGS} "-Wl,-rpath-link=${prefix_path_first}/lib")
- endif()
endif()
# set linker flags
C
(name . Maxime Devos)(address . maximedevos@telenet.be)
PnC6IbPuiD_UZsr3th_oYjtMiMOlliw1yggefJgsdLLPPOQiJMkGK1CTYi468yxGVYU-i8EXnH4nL5aGWA1duDKb-pYQNDTfp00_WYYMiTA=@protonmail.com
Thanks for the review, Maxime! That is a lot of stuff I did not know about. Your new version of the patch works for me except for the (list (local-file part which I think should be (search-patches.
What should I do about the library code duplication and licensing issues? Should I bring it upu with the project maintainers?
------- Original Message -------
On Saturday, February 12th, 2022 at 7:31 AM, Maxime Devos <maximedevos@telenet.be> wrote:
Toggle quote (25 lines)
> Hi,
>
> I've modified the package definition and patch a bit to
>
> make it simpler (visualboyadvance-m-fix-rpath.patch now only removed
>
> things), cross-compilable (it uses cc-for-target instead of hardcoding
>
> "gcc" and LIBRARY_PATH is unused) and avoid using constructs that
>
> are being deprecated (%build-inputs --> this-package-input).
>
> The list+local-file will have to be replaced by search-patches.
>
> Cross-compilation is untested because gtk+ cannot currently be
>
> cross-compiled.
>
> It seems to work, at least the application starts, I don't have any VBA
>
> games to test it with.
>
> Greetings,
>
> Maxime.
C
(name . Maxime Devos)(address . maximedevos@telenet.be)
RBGJFtvDTk9JmTGo8XnzKIgOOs47NN1-vIPIw89E7Z5UnqVLoqiSgZVs4GcbEpVT1qHmqPOGcWwI2SG-1sDMu05Eie3G1qb_BA9g1hrZfO0=@protonmail.com
What are the next steps for this project? Do the licensing issues make it not allowed to be in guix?
------- Original Message -------
On Saturday, February 12th, 2022 at 5:45 PM, Charles <charles.b.jackson@protonmail.com> wrote:
Toggle quote (33 lines)
> Thanks for the review, Maxime! That is a lot of stuff I did not know about. Your new version of the patch works for me except for the (list (local-file part which I think should be (search-patches.
>
> What should I do about the library code duplication and licensing issues? Should I bring it upu with the project maintainers?
>
> ------- Original Message -------
>
> On Saturday, February 12th, 2022 at 7:31 AM, Maxime Devos maximedevos@telenet.be wrote:
>
> > Hi,
> >
> > I've modified the package definition and patch a bit to
> >
> > make it simpler (visualboyadvance-m-fix-rpath.patch now only removed
> >
> > things), cross-compilable (it uses cc-for-target instead of hardcoding
> >
> > "gcc" and LIBRARY_PATH is unused) and avoid using constructs that
> >
> > are being deprecated (%build-inputs --> this-package-input).
> >
> > The list+local-file will have to be replaced by search-patches.
> >
> > Cross-compilation is untested because gtk+ cannot currently be
> >
> > cross-compiled.
> >
> > It seems to work, at least the application starts, I don't have any VBA
> >
> > games to test it with.
> >
> > Greetings,
> >
> > Maxime.
M
(name . Charles)(address . charles.b.jackson@protonmail.com)
85167753b13aacf05c386807262813743d4f0d6e.camel@telenet.be
Charles schreef op za 12-02-2022 om 23:45 [+0000]:
Toggle quote (3 lines)
> What should I do about the library code duplication and licensing issues?
> Should I bring it upu with the project maintainers?
The licensing should be brought up with the project maintainers.
The unbundling can be brought up with the maintainers, while probably
they will keep bundling, perhaps they could support some
"-DUSE_SYSTEM_ZLIB" kind of configure flags.
If upstream is unresponsive or keeps bundling, it may be possible to
unbundle it in Guix itself even though upstream bundles.
Greetings,
Maxime
?