summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjc_gargma <jc_gargma@iserlohn-fortress.net>2022-07-07 21:00:39 -0700
committerjc_gargma <jc_gargma@iserlohn-fortress.net>2022-07-07 21:00:39 -0700
commit4659b02952495fe48badd61d069300f0dab30dcc (patch)
tree97a0e821296c5eb69eebce98c06c54eee0db6045
parentMore optimizations. (diff)
downloaddesmume-4659b02952495fe48badd61d069300f0dab30dcc.tar.xz
Updated to 0.9.13
-Yes, this is the first new release in seven years.
-rw-r--r--PKGBUILD54
-rw-r--r--gcc6_fixes.patch59
-rw-r--r--gcc7_fixes.patch18
3 files changed, 27 insertions, 104 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 8794e37..f9223e0 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -12,48 +12,48 @@
# Contributor (Arch): Asher256 <achrafcherti at gmail dot com>
# # I maintain this because:
+# Arch version is out of date
# Arch version lacks additional optimization and hardening flags
pkgname=desmume
-pkgver=0.9.11
-pkgrel=8.2
+pkgver=0.9.13
+_pkgver=0_9_13
+pkgrel=1
pkgdesc="Nintendo DS emulator"
arch=('x86_64')
url="https://desmume.org/"
license=('GPL')
-depends=('desktop-file-utils' 'libpcap' 'soundtouch' 'alsa-lib' 'glu' 'sdl' 'gtk2' 'zziplib')
-makedepends=('intltool' 'mesa' 'clang')
-source=("https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
- gcc6_fixes.patch
- gcc7_fixes.patch)
-sha256sums=('3ab34ba6cc009566245025c1dd94bf449b6a1b416d24387cb42e183c78e38896'
- 'dfb25d204253ca1dad2218e54760c81872c1df0b70c12067591a6578159b9aef'
- 'b8f419f5286c1ee08f824250cabc7f4984a572f55db8182070b0bf3235134d1f')
-
-prepare() {
- cd "$srcdir/$pkgname-$pkgver"
-
- # Fix build
- patch -Np1 -i ../gcc6_fixes.patch
- patch -Np1 -i ../gcc7_fixes.patch
-
-
- # See https://bugs.archlinux.org/task/35086 and
- # https://sourceforge.net/tracker/?func=detail&aid=3612768&group_id=164579&atid=832291
- sed -i 's/@GETTEXT_PACKAGE@/desmume/' po/Makefile.in.in
-}
+# # For some reason this breaks compiling. "error: C++ compiler cannot create executables"
+# # But old-fashioned raw injection of -flto=auto via export doesn't.
+#options=(lto)
+depends=('desktop-file-utils' 'libpcap' 'soundtouch' 'alsa-lib' 'glu' 'sdl2' 'gtk2' 'zziplib')
+makedepends=('intltool' 'mesa')
+source=(${pkgname}-${pkgver}.tar.gz::"https://github.com/TASEmulators/${pkgname}/archive/refs/tags/release_${_pkgver}.tar.gz")
+sha256sums=('7e513f3112ac2955bd0951bc00a94f10220999b036745bde5ac01eb524e05b57')
+b2sums=('d63ed03801a15a3429c12b05da4ff2e4ea851a7dc307d4a4e02b6a0f74b2c4fab3a27ff14f6c563c9b84a827bb7d7db3083884154049cf8a8ffd5df6aa310e5c')
build() {
- cd "$srcdir/$pkgname-$pkgver"
- export CFLAGS="$CFLAGS -O3 -fstack-protector-all -flto=auto -fPIE -fuse-linker-plugin -minline-all-stringops"
- export CXXFLAGS="$CXXFLAGS -O3 -fstack-protector-all -flto=auto -fPIE -fuse-linker-plugin -minline-all-stringops"
+ cd "$srcdir/${pkgname}-release_${_pkgver}/${pkgname}/src/frontend/posix/"
+
+ # Prevents build failure
+ CXXFLAGS+=" -Wno-error=format-security"
+
+ # Upstream suggested
+ export CFLAGS="$CFLAGS -fuse-linker-plugin -minline-all-stringops"
+ export CXXFLAGS="$CXXFLAGS -fuse-linker-plugin -minline-all-stringops"
+
+ # General optimizations
+ export CFLAGS="$CFLAGS -O3 -fstack-protector-all -flto=auto -fPIE"
+ export CXXFLAGS="$CXXFLAGS -O3 -fstack-protector-all -flto=auto -fPIE"
export LDFLAGS="$LDFLAGS,-pie"
+
+ autoreconf -i
./configure --prefix=/usr --enable-wifi --enable-openal
make
}
package() {
- cd "$srcdir/$pkgname-$pkgver"
+ cd "$srcdir/${pkgname}-release_${_pkgver}/${pkgname}/src/frontend/posix/"
make DESTDIR="$pkgdir/" install
}
diff --git a/gcc6_fixes.patch b/gcc6_fixes.patch
deleted file mode 100644
index 6eb9576..0000000
--- a/gcc6_fixes.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From: zeromus
-Origin: upstream, https://sourceforge.net/p/desmume/code/5514, https://sourceforge.net/p/desmume/code/5517, https://sourceforge.net/p/desmume/code/5430
-Subject: fix GCC6 issues
-Bug: https://sourceforge.net/p/desmume/bugs/1570/
-Bug-Debian: http://bugs.debian.org/811691
-
-Index: desmume/src/MMU_timing.h
-===================================================================
---- desmume/src/MMU_timing.h (revision 5513)
-+++ desmume/src/MMU_timing.h (revision 5517)
-@@ -155,8 +155,8 @@
- enum { ASSOCIATIVITY = 1 << ASSOCIATIVESHIFT };
- enum { BLOCKSIZE = 1 << BLOCKSIZESHIFT };
- enum { TAGSHIFT = SIZESHIFT - ASSOCIATIVESHIFT };
-- enum { TAGMASK = (u32)(~0 << TAGSHIFT) };
-- enum { BLOCKMASK = ((u32)~0 >> (32 - TAGSHIFT)) & (u32)(~0 << BLOCKSIZESHIFT) };
-+ enum { TAGMASK = (u32)(~0U << TAGSHIFT) };
-+ enum { BLOCKMASK = ((u32)~0U >> (32 - TAGSHIFT)) & (u32)(~0U << BLOCKSIZESHIFT) };
- enum { WORDSIZE = sizeof(u32) };
- enum { WORDSPERBLOCK = (1 << BLOCKSIZESHIFT) / WORDSIZE };
- enum { DATAPERWORD = WORDSIZE * ASSOCIATIVITY };
-Index: desmume/src/ctrlssdl.cpp
-===================================================================
---- desmume/src/ctrlssdl.cpp (revision 5513)
-+++ desmume/src/ctrlssdl.cpp (revision 5517)
-@@ -200,7 +200,7 @@
- break;
- case SDL_JOYAXISMOTION:
- /* Dead zone of 50% */
-- if( (abs(event.jaxis.value) >> 14) != 0 )
-+ if( ((u32)abs(event.jaxis.value) >> 14) != 0 )
- {
- key = ((event.jaxis.which & 15) << 12) | JOY_AXIS << 8 | ((event.jaxis.axis & 127) << 1);
- if (event.jaxis.value > 0) {
-@@ -370,7 +370,7 @@
- Note: button constants have a 1bit offset. */
- case SDL_JOYAXISMOTION:
- key_code = ((event->jaxis.which & 15) << 12) | JOY_AXIS << 8 | ((event->jaxis.axis & 127) << 1);
-- if( (abs(event->jaxis.value) >> 14) != 0 )
-+ if( ((u32)abs(event->jaxis.value) >> 14) != 0 )
- {
- if (event->jaxis.value > 0)
- key_code |= 1;
-Index: desmume/src/wifi.cpp
-===================================================================
---- desmume/src/wifi.cpp (revision 5429)
-+++ desmume/src/wifi.cpp (revision 5430)
-@@ -320,9 +320,9 @@
-
- #if (WIFI_LOGGING_LEVEL >= 1)
- #if WIFI_LOG_USE_LOGC
-- #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) LOGC(8, "WIFI: "__VA_ARGS__);
-+ #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) LOGC(8, "WIFI: " __VA_ARGS__);
- #else
-- #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) printf("WIFI: "__VA_ARGS__);
-+ #define WIFI_LOG(level, ...) if(level <= WIFI_LOGGING_LEVEL) printf("WIFI: " __VA_ARGS__);
- #endif
- #else
- #define WIFI_LOG(level, ...) {}
diff --git a/gcc7_fixes.patch b/gcc7_fixes.patch
deleted file mode 100644
index a4934ff..0000000
--- a/gcc7_fixes.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-From e1f7039f1b06add4fb75b2f8774000b8f05574af Mon Sep 17 00:00:00 2001
-From: rogerman <rogerman@users.sf.net>
-Date: Mon, 17 Aug 2015 21:15:04 +0000
-Subject: Fix bug with libfat string handling.
-
-diff --git a/src/utils/libfat/directory.cpp b/src/utils/libfat/directory.cpp
-index 765d7ae5..b6d7f01f 100644
---- a/src/utils/libfat/directory.cpp
-+++ b/src/utils/libfat/directory.cpp
-@@ -139,7 +139,7 @@ static size_t _FAT_directory_mbstoucs2 (ucs2_t* dst, const char* src, size_t len
- int bytes;
- size_t count = 0;
-
-- while (count < len-1 && src != '\0') {
-+ while (count < len-1 && *src != '\0') {
- bytes = mbrtowc (&tempChar, src, MB_CUR_MAX, &ps);
- if (bytes > 0) {
- *dst = (ucs2_t)tempChar;