From d8c159f544acedaf33feca3045a35e773377e599 Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Thu, 26 Sep 2019 09:30:44 -0700 Subject: Initial commit --- PKGBUILD | 50 ++++++++++++++++++++++++ scons-python3.patch | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 158 insertions(+) create mode 100644 PKGBUILD create mode 100644 scons-python3.patch diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..fbe01af --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,50 @@ +# Maintainer: jc_gargma +# Maintainer (Arch): Alexander F Rødseth +# Contriutor (Arch): Eric Belanger +# Contributor (Arch): Jo Christian Bergskås + +# # I maintain this because: +# Arch version lacks additional optimization and hardening flags + +pkgname=fceux +pkgver=2.2.3 +pkgrel=3.2 +url='http://www.fceux.com/' +pkgdesc='Fast and ultra-compatible NES/Famicom emulator' +arch=('x86_64') +license=('GPL') +depends=('sdl' 'gtk2' 'gd') +makedepends=('scons' 'mesa-libgl' 'glu') +source=("https://downloads.sourceforge.net/project/fceultra/Source%20Code/$pkgver%20src/$pkgname-$pkgver.src.tar.gz" scons-python3.patch) +sha256sums=('4be6dda9a347f941809a3c4a90d21815b502384adfdd596adaa7b2daf088823e' + 'ba1828375e00b4a2076311f5ee1802a42d52eb1ef93b358a45459d475c55e6b9') + +prepare() { + cd $pkgname-$pkgver + patch -p1 -i ../scons-python3.patch +} + +build() { + export CFLAGS="$CFLAGS -O3 -flto=4 -fPIE" + export CXXFLAGS="$CXXFLAGS -O3 -flto=4 -fPIE" + export LDFLAGS="$LDFLAGS,-pie" + scons -j4 -C "$pkgname-$pkgver" +} + +package() { + cd "$pkgname-$pkgver" + + scons install -i --prefix="$pkgdir/usr" + + install -d "$pkgdir/usr/share/doc/$pkgname" + cp -r documentation/* "$pkgdir/usr/share/doc/$pkgname/" + install -Dm644 changelog.txt "$pkgdir/usr/share/doc/$pkgname/" + + # desktop shortcut + install -Dm644 "$pkgname.desktop" \ + "$pkgdir/usr/share/applications/$pkgname.desktop" + install -Dm644 "$pkgname.png" \ + "$pkgdir/usr/share/pixmaps/$pkgname.png" + + rm -f "$pkgdir/usr/share/$pkgname/"*.dll +} diff --git a/scons-python3.patch b/scons-python3.patch new file mode 100644 index 0000000..d3be48d --- /dev/null +++ b/scons-python3.patch @@ -0,0 +1,108 @@ +--- fceux-2.2.3/SConstruct.orig 2019-07-26 18:04:29.368573309 +0000 ++++ fceux-2.2.3/SConstruct 2019-07-26 18:04:31.975265342 +0000 +@@ -46,30 +46,30 @@ + # Default compiler flags: + env.Append(CCFLAGS = ['-Wall', '-Wno-write-strings', '-Wno-sign-compare']) + +-if os.environ.has_key('PLATFORM'): ++if os.environ.get('PLATFORM'): + env.Replace(PLATFORM = os.environ['PLATFORM']) +-if os.environ.has_key('CC'): ++if os.environ.get('CC'): + env.Replace(CC = os.environ['CC']) +-if os.environ.has_key('CXX'): ++if os.environ.get('CXX'): + env.Replace(CXX = os.environ['CXX']) +-if os.environ.has_key('WINDRES'): ++if os.environ.get('WINDRES'): + env.Replace(WINDRES = os.environ['WINDRES']) +-if os.environ.has_key('CFLAGS'): ++if os.environ.get('CFLAGS'): + env.Append(CCFLAGS = os.environ['CFLAGS'].split()) +-if os.environ.has_key('CXXFLAGS'): ++if os.environ.get('CXXFLAGS'): + env.Append(CXXFLAGS = os.environ['CXXFLAGS'].split()) +-if os.environ.has_key('CPPFLAGS'): ++if os.environ.get('CPPFLAGS'): + env.Append(CPPFLAGS = os.environ['CPPFLAGS'].split()) +-if os.environ.has_key('LDFLAGS'): ++if os.environ.get('LDFLAGS'): + env.Append(LINKFLAGS = os.environ['LDFLAGS'].split()) +-if os.environ.has_key('PKG_CONFIG_PATH'): ++if os.environ.get('PKG_CONFIG_PATH'): + env['ENV']['PKG_CONFIG_PATH'] = os.environ['PKG_CONFIG_PATH'] +-if not os.environ.has_key('PKG_CONFIG_PATH') and env['PLATFORM'] == 'darwin': ++if not os.environ.get('PKG_CONFIG_PATH') and env['PLATFORM'] == 'darwin': + env['ENV']['PKG_CONFIG_PATH'] = "/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig" +-if os.environ.has_key('PKG_CONFIG_LIBDIR'): ++if os.environ.get('PKG_CONFIG_LIBDIR'): + env['ENV']['PKG_CONFIG_LIBDIR'] = os.environ['PKG_CONFIG_LIBDIR'] + +-print "platform: ", env['PLATFORM'] ++print ("platform: ", env['PLATFORM']) + + # compile with clang + if env['CLANG']: +@@ -103,18 +103,18 @@ + assert conf.CheckLibWithHeader('z', 'zlib.h', 'c', 'inflate;', 1), "please install: zlib" + if env['SDL2']: + if not conf.CheckLib('SDL2'): +- print 'Did not find libSDL2 or SDL2.lib, exiting!' ++ print ('Did not find libSDL2 or SDL2.lib, exiting!') + Exit(1) + env.Append(CPPDEFINES=["_SDL2"]) + env.ParseConfig('pkg-config sdl2 --cflags --libs') + else: + if not conf.CheckLib('SDL'): +- print 'Did not find libSDL or SDL.lib, exiting!' ++ print ('Did not find libSDL or SDL.lib, exiting!') + Exit(1) + env.ParseConfig('sdl-config --cflags --libs') + if env['GTK']: + if not conf.CheckLib('gtk-x11-2.0'): +- print 'Could not find libgtk-2.0, exiting!' ++ print ('Could not find libgtk-2.0, exiting!') + Exit(1) + # Add compiler and linker flags from pkg-config + config_string = 'pkg-config --cflags --libs gtk+-2.0' +@@ -153,7 +153,7 @@ + env.Append(CCFLAGS = ["-I/usr/include/lua"]) + lua_available = True + if lua_available == False: +- print 'Could not find liblua, exiting!' ++ print ('Could not find liblua, exiting!') + Exit(1) + else: + env.Append(CCFLAGS = ["-Isrc/lua/src"]) +@@ -167,7 +167,7 @@ + gd = conf.CheckLib('gd', autoadd=1) + if gd == 0: + env['LOGO'] = 0 +- print 'Did not find libgd, you won\'t be able to create a logo screen for your avis.' ++ print ('Did not find libgd, you won\'t be able to create a logo screen for your avis.') + + if env['OPENGL'] and conf.CheckLibWithHeader('GL', 'GL/gl.h', 'c', autoadd=1): + conf.env.Append(CCFLAGS = "-DOPENGL") +@@ -181,8 +181,8 @@ + if env['FRAMESKIP']: + env.Append(CPPDEFINES = ['FRAMESKIP']) + +-print "base CPPDEFINES:",env['CPPDEFINES'] +-print "base CCFLAGS:",env['CCFLAGS'] ++print ("base CPPDEFINES:",env['CPPDEFINES']) ++print ("base CCFLAGS:",env['CCFLAGS']) + + if env['DEBUG']: + env.Append(CPPDEFINES=["_DEBUG"], CCFLAGS = ['-g', '-O0']) +--- fceux-2.2.3/src/SConscript.orig 2019-07-26 18:08:11.297535443 +0000 ++++ fceux-2.2.3/src/SConscript 2019-07-26 18:08:33.857781956 +0000 +@@ -33,7 +33,7 @@ + platform_files = SConscript('drivers/sdl/SConscript') + file_list.append(platform_files) + +-print env['LINKFLAGS'] ++print (env['LINKFLAGS']) + + if env['PLATFORM'] == 'win32': + fceux = env.Program('fceux.exe', file_list) + -- cgit v1.2.1