aboutsummaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
authorAntoine Brodin <antoine@FreeBSD.org>2021-01-01 10:11:34 +0000
committerAntoine Brodin <antoine@FreeBSD.org>2021-01-01 10:11:34 +0000
commit26b4c8f71f91d22e081b27814782686edde0c90a (patch)
tree1c321c39372c25d8634e75b5c8e08edc676b296d /emulators
parent548f16bd1a2915f08878b716eed92ff3267e6de2 (diff)
downloadports-26b4c8f71f91d22e081b27814782686edde0c90a.tar.gz
ports-26b4c8f71f91d22e081b27814782686edde0c90a.zip
Revert r559792 to unbreak INDEX and bulk -a
It seems a lot of reverse dependencies were missed With hat: portmgr
Notes
Notes: svn path=/head/; revision=559822
Diffstat (limited to 'emulators')
-rw-r--r--emulators/Makefile3
-rw-r--r--emulators/fceux/Makefile93
-rw-r--r--emulators/fceux/distinfo3
-rw-r--r--emulators/fceux/files/patch-fceux-server_server.cpp11
-rw-r--r--emulators/fceux/files/patch-src_boards_mapinc.h8
-rw-r--r--emulators/fceux/files/patch-src_cheat.cpp11
-rw-r--r--emulators/fceux/pkg-descr11
-rw-r--r--emulators/fceux/pkg-plist106
-rw-r--r--emulators/gem5/Makefile51
-rw-r--r--emulators/gem5/distinfo2
-rw-r--r--emulators/gem5/files/patch-SConstruct39
-rw-r--r--emulators/gem5/files/patch-src_SConscript11
-rw-r--r--emulators/gem5/files/patch-src_mem_physical.cc14
-rw-r--r--emulators/gem5/files/patch-util_term_Makefile11
-rw-r--r--emulators/gem5/pkg-descr5
-rw-r--r--emulators/gem5/pkg-plist108
-rw-r--r--emulators/nonpareil/Makefile44
-rw-r--r--emulators/nonpareil/distinfo2
-rw-r--r--emulators/nonpareil/files/patch-SConstruct86
-rw-r--r--emulators/nonpareil/files/patch-src_SConscript114
-rw-r--r--emulators/nonpareil/files/patch-src_asm.h11
-rw-r--r--emulators/nonpareil/files/patch-src_printer.c10
-rw-r--r--emulators/nonpareil/files/patch-src_proc.c16
-rw-r--r--emulators/nonpareil/files/patch-src_util.c18
-rw-r--r--emulators/nonpareil/files/patch-src_util.h11
-rw-r--r--emulators/nonpareil/pkg-descr7
-rw-r--r--emulators/nonpareil/pkg-plist49
27 files changed, 855 insertions, 0 deletions
diff --git a/emulators/Makefile b/emulators/Makefile
index 733793d3f602..5d51409d36dd 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -35,6 +35,7 @@
SUBDIR += elliott-803
SUBDIR += emu64
SUBDIR += emulationstation
+ SUBDIR += fceux
SUBDIR += fmsx
SUBDIR += frodo
SUBDIR += fs-uae
@@ -43,6 +44,7 @@
SUBDIR += fuse-roms
SUBDIR += fuse-utils
SUBDIR += gbe
+ SUBDIR += gem5
SUBDIR += gens
SUBDIR += gngb
SUBDIR += gngeo
@@ -93,6 +95,7 @@
SUBDIR += mupen64plus-video-z64
SUBDIR += nemu
SUBDIR += nestopia
+ SUBDIR += nonpareil
SUBDIR += o2em
SUBDIR += ods2reader
SUBDIR += open-vm-tools
diff --git a/emulators/fceux/Makefile b/emulators/fceux/Makefile
new file mode 100644
index 000000000000..119df2b80273
--- /dev/null
+++ b/emulators/fceux/Makefile
@@ -0,0 +1,93 @@
+# Created by: HIYAMA Takeshi <gibbon@cocoa.freemail.ne.jp>
+# $FreeBSD$
+
+PORTNAME= fceux
+PORTVERSION= 2.2.3
+PORTREVISION= 10
+CATEGORIES= emulators
+MASTER_SITES= SF/fceultra/Source%20Code/${PORTVERSION}%20src/
+DISTNAME= ${PORTNAME}-${PORTVERSION}.src
+
+MAINTAINER= ports@FreeBSD.org
+COMMENT= Portable NES/Famicom emulator based on Bero's original FCE
+
+LICENSE= GPLv2+
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+RUN_DEPENDS= zenity:x11/zenity
+
+USES= compiler:c++0x desktop-file-utils dos2unix localbase:ldflags \
+ pkgconfig scons:python2 sdl xorg
+USE_SDL= sdl
+USE_XORG= x11
+USE_GNOME+= gdkpixbuf2
+
+WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
+
+CXXFLAGS+= ${CXXFLAGS_${CHOSEN_COMPILER_TYPE}}
+CXXFLAGS_clang= -Wno-c++11-narrowing
+
+OPTIONS_DEFINE= CREATE_AVI DEBUG DOCS FRAMESKIP LOGO LUA OPENGL
+OPTIONS_SINGLE= GUI
+OPTIONS_SINGLE_GUI= GTK2 GTK3
+OPTIONS_DEFAULT= CREATE_AVI FRAMESKIP GTK2 LOGO LUA OPENGL
+
+CREATE_AVI_DESC= Enable avi creation support
+CREATE_AVI_MAKE_ARGS= CREATE_AVI=1
+CREATE_AVI_MAKE_ARGS_OFF= CREATE_AVI=0
+DEBUG_MAKE_ARGS= DEBUG=1
+DEBUG_MAKE_ARGS_OFF= DEBUG=0
+FRAMESKIP_DESC= Enable frameskipping
+FRAMESKIP_MAKE_ARGS= FRAMESKIP=1
+FRAMESKIP_MAKE_ARGS_OFF= FRAMESKIP=0
+GTK2_USES= gnome
+GTK2_USE= GNOME=gtk20
+GTK2_MAKE_ARGS= GTK=1
+GTK2_MAKE_ARGS_OFF= GTK=0
+GTK3_USES= gnome
+GTK3_USE= GNOME=gtk30
+GTK3_MAKE_ARGS= GTK3=1
+GTK3_MAKE_ARGS_OFF= GTK3=0
+LOGO_DESC= Enable a logoscreen when creating avis
+LOGO_LIB_DEPENDS= libgd.so:graphics/gd
+LOGO_MAKE_ARGS= LOGO=1
+LOGO_MAKE_ARGS_OFF= LOGO=0
+LOGO_IMPLIES= CREATE_AVI
+LUA_USES= lua:51
+LUA_MAKE_ARGS= LUA=1 SYSTEM_LUA=1
+LUA_MAKE_ARGS_OFF= LUA=0
+OPENGL_USES= gl
+OPENGL_USE= GL=gl
+OPENGL_MAKE_ARGS= OPENGL=1
+OPENGL_MAKE_ARGS_OFF= OPENGL=0
+
+post-patch:
+ @${REINPLACE_CMD} -e \
+ '/PUBLIC/s|^|#| ; \
+ /CheckLib/s|lua5.1|lua-${LUA_VER}| ; \
+ /LINKFLAGS/s|lua5.1|lua-${LUA_VER}| ; \
+ s|"-ldl"|| ; \
+ s|/usr/include/lua5.1|${LUA_INCDIR}| ; \
+ s|-O2||' ${WRKSRC}/SConstruct
+ @${REINPLACE_CMD} -e \
+ 's|/usr/bin/|| ; \
+ s|/usr/share/|${PREFIX}/share/|' ${WRKSRC}/fceux.desktop
+
+do-install:
+.for i in fceux fceux-net-server
+ ${INSTALL_PROGRAM} ${WRKSRC}/bin/${i} ${STAGEDIR}${PREFIX}/bin
+ ${INSTALL_MAN} ${WRKSRC}/documentation/${i}.6 ${STAGEDIR}${MANPREFIX}/man/man6
+.endfor
+ @${MKDIR} ${STAGEDIR}${DATADIR}
+ ${INSTALL_DATA} ${WRKSRC}/bin/*.lua ${STAGEDIR}${DATADIR}
+ @(cd ${WRKSRC}/output && ${COPYTREE_SHARE} "luaScripts palettes tools" \
+ ${STAGEDIR}${DATADIR})
+ ${INSTALL_DATA} ${WRKSRC}/*.desktop ${STAGEDIR}${DESKTOPDIR}
+ ${INSTALL_DATA} ${WRKSRC}/*.png ${STAGEDIR}${PREFIX}/share/pixmaps
+
+do-install-DOCS-on:
+ @(cd ${WRKSRC}/documentation && ${COPYTREE_SHARE} "TODO-PROJECT Videolog.txt \
+ cheat.html faq fcs.txt fm2.txt protocol.txt snes9x-lua.html tech" \
+ ${STAGEDIR}${DOCSDIR})
+
+.include <bsd.port.mk>
diff --git a/emulators/fceux/distinfo b/emulators/fceux/distinfo
new file mode 100644
index 000000000000..ce0d7bfe13c3
--- /dev/null
+++ b/emulators/fceux/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1488101003
+SHA256 (fceux-2.2.3.src.tar.gz) = 4be6dda9a347f941809a3c4a90d21815b502384adfdd596adaa7b2daf088823e
+SIZE (fceux-2.2.3.src.tar.gz) = 9292792
diff --git a/emulators/fceux/files/patch-fceux-server_server.cpp b/emulators/fceux/files/patch-fceux-server_server.cpp
new file mode 100644
index 000000000000..843c76927a89
--- /dev/null
+++ b/emulators/fceux/files/patch-fceux-server_server.cpp
@@ -0,0 +1,11 @@
+--- fceux-server/server.cpp.orig 2017-02-26 13:33:11 UTC
++++ fceux-server/server.cpp
+@@ -114,7 +114,7 @@ int LoadConfigFile(char *fn)
+ if(fp=fopen(fn,"rb"))
+ {
+ char buf[256];
+- while(fgets(buf, 256, fp) > 0)
++ while(fgets(buf, 256, fp))
+ {
+ if(!strncasecmp(buf,"maxclients",strlen("maxclients")))
+ sscanf(buf,"%*s %d",&ServerConfig.MaxClients);
diff --git a/emulators/fceux/files/patch-src_boards_mapinc.h b/emulators/fceux/files/patch-src_boards_mapinc.h
new file mode 100644
index 000000000000..dc59f0c4b9fb
--- /dev/null
+++ b/emulators/fceux/files/patch-src_boards_mapinc.h
@@ -0,0 +1,8 @@
+--- src/boards/mapinc.h.orig 2017-02-26 13:37:11 UTC
++++ src/boards/mapinc.h
+@@ -9,4 +9,5 @@
+ #include "../cheat.h"
+ #include "../unif.h"
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <string.h>
diff --git a/emulators/fceux/files/patch-src_cheat.cpp b/emulators/fceux/files/patch-src_cheat.cpp
new file mode 100644
index 000000000000..e9e5393a17ae
--- /dev/null
+++ b/emulators/fceux/files/patch-src_cheat.cpp
@@ -0,0 +1,11 @@
+--- src/cheat.cpp.orig 2017-02-26 13:33:11 UTC
++++ src/cheat.cpp
+@@ -216,7 +216,7 @@ void FCEU_LoadGameCheats(FILE *override)
+ }
+
+ FCEU_DispMessage("Cheats file loaded.",0); //Tells user a cheats file was loaded.
+- while(fgets(linebuf,2048,fp)>0)
++ while(fgets(linebuf,2048,fp))
+ {
+ char *tbuf=linebuf;
+ int doc=0;
diff --git a/emulators/fceux/pkg-descr b/emulators/fceux/pkg-descr
new file mode 100644
index 000000000000..996dbda4721a
--- /dev/null
+++ b/emulators/fceux/pkg-descr
@@ -0,0 +1,11 @@
+FCE Ultra is an NTSC and PAL Famicom/NES emulator for various
+platforms. It is based upon Bero's original FCE source code. Current
+features include good PPU, CPU, pAPU, expansion chip, and joystick
+emulation. Also a feature unique to this emulator (at the current time)
+is authentic Game Genie emulation. Save states and snapshot features
+also have been implemented. The VS Unisystem is emulated as well.
+
+FCE Ultra supports iNES format ROM images, UNIF format ROM images,
+headerless and FWNES style FDS disk images, and NSF files.
+
+WWW: http://www.fceux.com/
diff --git a/emulators/fceux/pkg-plist b/emulators/fceux/pkg-plist
new file mode 100644
index 000000000000..e15fb8a55a27
--- /dev/null
+++ b/emulators/fceux/pkg-plist
@@ -0,0 +1,106 @@
+bin/fceux
+bin/fceux-net-server
+man/man6/fceux.6.gz
+man/man6/fceux-net-server.6.gz
+share/applications/fceux.desktop
+%%PORTDOCS%%%%DOCSDIR%%/TODO-PROJECT
+%%PORTDOCS%%%%DOCSDIR%%/Videolog.txt
+%%PORTDOCS%%%%DOCSDIR%%/cheat.html
+%%PORTDOCS%%%%DOCSDIR%%/faq
+%%PORTDOCS%%%%DOCSDIR%%/fcs.txt
+%%PORTDOCS%%%%DOCSDIR%%/fm2.txt
+%%PORTDOCS%%%%DOCSDIR%%/protocol.txt
+%%PORTDOCS%%%%DOCSDIR%%/snes9x-lua.html
+%%PORTDOCS%%%%DOCSDIR%%/tech/cpu/4017.txt
+%%PORTDOCS%%%%DOCSDIR%%/tech/cpu/dmc.txt
+%%PORTDOCS%%%%DOCSDIR%%/tech/cpu/nessound-4th.txt
+%%PORTDOCS%%%%DOCSDIR%%/tech/cpu/nessound.txt
+%%PORTDOCS%%%%DOCSDIR%%/tech/exp/mmc5-e.txt
+%%PORTDOCS%%%%DOCSDIR%%/tech/exp/smb2j.txt
+%%PORTDOCS%%%%DOCSDIR%%/tech/exp/tengen.txt
+%%PORTDOCS%%%%DOCSDIR%%/tech/exp/vrcvi.txt
+%%PORTDOCS%%%%DOCSDIR%%/tech/exp/vrcvii.txt
+%%PORTDOCS%%%%DOCSDIR%%/tech/nsfspec.txt
+%%PORTDOCS%%%%DOCSDIR%%/tech/ppu/2c02 technical operation.txt
+%%PORTDOCS%%%%DOCSDIR%%/tech/ppu/loopy1.txt
+%%PORTDOCS%%%%DOCSDIR%%/tech/ppu/loopy2.txt
+%%PORTDOCS%%%%DOCSDIR%%/tech/readme.now
+%%PORTDOCS%%%%DOCSDIR%%/tech/readme.sound
+%%DATADIR%%/auxlib.lua
+%%DATADIR%%/luaScripts/AVI-HeadsUpDisplay.lua
+%%DATADIR%%/luaScripts/BoulderDash_AmoebaAI.lua
+%%DATADIR%%/luaScripts/BugsBunnyBirthdayBlowout.lua
+%%DATADIR%%/luaScripts/ButtonCount.lua
+%%DATADIR%%/luaScripts/CustomLagIndicator_RvT.lua
+%%DATADIR%%/luaScripts/Excitingbike-speedometeronly.lua
+%%DATADIR%%/luaScripts/Excitingbike.lua
+%%DATADIR%%/luaScripts/FRKfunctions.lua
+%%DATADIR%%/luaScripts/GUI-iup_button.lua
+%%DATADIR%%/luaScripts/GUI-iup_example.lua
+%%DATADIR%%/luaScripts/Galaxian.lua
+%%DATADIR%%/luaScripts/Gradius-BulletHell.lua
+%%DATADIR%%/luaScripts/JumpingFCEUXWindow.lua
+%%DATADIR%%/luaScripts/Luabot.lua
+%%DATADIR%%/luaScripts/Machrider.lua
+%%DATADIR%%/luaScripts/MegamanII-LaserEyes.lua
+%%DATADIR%%/luaScripts/MemoryWatch.lua
+%%DATADIR%%/luaScripts/Multitrack.lua
+%%DATADIR%%/luaScripts/Multitrack2.lua
+%%DATADIR%%/luaScripts/NightmareElmStreet-4Player.lua
+%%DATADIR%%/luaScripts/PunchOutChallenge.lua
+%%DATADIR%%/luaScripts/PunchOutStats.lua
+%%DATADIR%%/luaScripts/PunchOutTraining.lua
+%%DATADIR%%/luaScripts/RBIBaseball.lua
+%%DATADIR%%/luaScripts/Registerfind(CheatSearch).lua
+%%DATADIR%%/luaScripts/Rewinder.lua
+%%DATADIR%%/luaScripts/SMB-AreaScrambler.lua
+%%DATADIR%%/luaScripts/SMB-CompetitionRecorder.lua
+%%DATADIR%%/luaScripts/SMB-HitBoxes.lua
+%%DATADIR%%/luaScripts/SMB-Jetpack.lua
+%%DATADIR%%/luaScripts/SMB-Lives&HPDisplay.lua
+%%DATADIR%%/luaScripts/SMB-Mouse.lua
+%%DATADIR%%/luaScripts/SMB-Snow.lua
+%%DATADIR%%/luaScripts/SMB2U.lua
+%%DATADIR%%/luaScripts/SMB3-RainbowRiding.lua
+%%DATADIR%%/luaScripts/ShowPalette.lua
+%%DATADIR%%/luaScripts/SoundDisplay.lua
+%%DATADIR%%/luaScripts/SoundDisplay2.lua
+%%DATADIR%%/luaScripts/Subtitler.lua
+%%DATADIR%%/luaScripts/TeenageMutantNinjaTurtles.lua
+%%DATADIR%%/luaScripts/UsingLuaBot-Documentation.txt
+%%DATADIR%%/luaScripts/UsingLuaScripting-Documentation.txt
+%%DATADIR%%/luaScripts/UsingLuaScripting-ListofFunctions.txt
+%%DATADIR%%/luaScripts/ZapperDisplay.lua
+%%DATADIR%%/luaScripts/ZapperFun.lua
+%%DATADIR%%/luaScripts/luabot_framework.lua
+%%DATADIR%%/luaScripts/m_utils.lua
+%%DATADIR%%/luaScripts/shapedefs.lua
+%%DATADIR%%/luaScripts/taseditor/InputDisplay_for_Selection.lua
+%%DATADIR%%/luaScripts/taseditor/InvertSelection.lua
+%%DATADIR%%/luaScripts/taseditor/RecordBackwards.lua
+%%DATADIR%%/luaScripts/taseditor/ShowNotes.lua
+%%DATADIR%%/luaScripts/taseditor/Swap1P2P.lua
+%%DATADIR%%/luaScripts/taseditor/TrackNoise.lua
+%%DATADIR%%/luaScripts/tetris.lua
+%%DATADIR%%/luaScripts/vnb.lua
+%%DATADIR%%/luaScripts/x_functions.lua
+%%DATADIR%%/luaScripts/x_interface.lua
+%%DATADIR%%/luaScripts/x_smb1enemylist.lua
+%%DATADIR%%/palettes/ASQ_realityA.pal
+%%DATADIR%%/palettes/ASQ_realityB.pal
+%%DATADIR%%/palettes/BMF_final2.pal
+%%DATADIR%%/palettes/BMF_final3.pal
+%%DATADIR%%/palettes/FCEU-13-default_nitsuja.pal
+%%DATADIR%%/palettes/FCEU-15-nitsuja_new.pal
+%%DATADIR%%/palettes/FCEUX.pal
+%%DATADIR%%/palettes/RP2C03.pal
+%%DATADIR%%/palettes/RP2C04_0001.pal
+%%DATADIR%%/palettes/RP2C04_0002.pal
+%%DATADIR%%/palettes/RP2C04_0003.pal
+%%DATADIR%%/palettes/RP2C04_0004.pal
+%%DATADIR%%/palettes/SONY_CXA2025AS_US.pal
+%%DATADIR%%/palettes/Unsaturated-V6.pal
+%%DATADIR%%/palettes/nestopia_rgb.pal
+%%DATADIR%%/palettes/nestopia_yuv.pal
+%%DATADIR%%/tools/taseditor_patterns.txt
+share/pixmaps/fceux.png
diff --git a/emulators/gem5/Makefile b/emulators/gem5/Makefile
new file mode 100644
index 000000000000..2802be6fc377
--- /dev/null
+++ b/emulators/gem5/Makefile
@@ -0,0 +1,51 @@
+# Created by: Veniamin Gvozdikov <vg@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= gem5
+PORTVERSION= 0.0.${DATE}
+CATEGORIES= emulators
+
+MAINTAINER= ports@FreeBSD.org
+COMMENT= gem5 Simulator System
+
+BUILD_DEPENDS= swig:devel/swig
+
+BROKEN_armv6= fails to link: undefined reference to HDLcd::BUS_OPTIONS_RESETV
+BROKEN_armv7= fails to link: undefined reference to HDLcd::BUS_OPTIONS_RESETV
+BROKEN_i386= does not build
+BROKEN_mips64= fails to build: claims that gcc version 4.6 or newer required
+BROKEN_FreeBSD_11_powerpc64= fails to build: claims that gcc version 4.6 or newer required
+BROKEN_FreeBSD_12_powerpc64= fails to build: claims that gcc version 4.6 or newer required
+
+USES= gmake scons:python2
+
+DATE= 20140422
+USE_GITHUB= yes
+GH_ACCOUNT= CTSRD-CHERI
+GH_TAGNAME= 99d65cc
+
+ALL_TARGET= build/ARM/gem5.opt
+MAKE_ENV= SWIG="${LOCALBASE}/bin/swig"
+
+.include <bsd.port.pre.mk>
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|sys/termios.h|termios.h|' \
+ ${WRKSRC}/src/base/vnc/vncserver.cc \
+ ${WRKSRC}/src/dev/terminal.cc \
+ ${WRKSRC}/util/term/term.c
+
+pre-build:
+ cd ${WRKSRC} && ${GMAKE} -C util/term
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${PREFIX}/${PORTNAME} \
+ ${STAGEDIR}${PREFIX}/${PORTNAME}/ARM
+ (cd ${WRKSRC} && ${COPYTREE_SHARE} configs \
+ ${STAGEDIR}${PREFIX}/${PORTNAME})
+ (cd ${WRKSRC} && ${INSTALL_PROGRAM} build/ARM/gem5.opt \
+ ${STAGEDIR}${PREFIX}/${PORTNAME}/ARM/gem5.opt)
+ (cd ${WRKSRC} && ${INSTALL_PROGRAM} util/term/m5term \
+ ${STAGEDIR}${PREFIX}/bin/m5term)
+
+.include <bsd.port.post.mk>
diff --git a/emulators/gem5/distinfo b/emulators/gem5/distinfo
new file mode 100644
index 000000000000..501feb4fd844
--- /dev/null
+++ b/emulators/gem5/distinfo
@@ -0,0 +1,2 @@
+SHA256 (CTSRD-CHERI-gem5-0.0.20140422-99d65cc_GH0.tar.gz) = 63b4f4a5e266b04396e9732ba64205fd1de22432d3379210d4d4a723dc43329a
+SIZE (CTSRD-CHERI-gem5-0.0.20140422-99d65cc_GH0.tar.gz) = 9007377
diff --git a/emulators/gem5/files/patch-SConstruct b/emulators/gem5/files/patch-SConstruct
new file mode 100644
index 000000000000..7fe253ebda09
--- /dev/null
+++ b/emulators/gem5/files/patch-SConstruct
@@ -0,0 +1,39 @@
+--- SConstruct.orig 2015-04-21 11:32:43.000000000 -0400
++++ SConstruct 2018-03-11 21:17:31.106873000 -0400
+@@ -534,6 +534,9 @@
+ main['LTO_CCFLAGS'] = []
+ main['LTO_LDFLAGS'] = []
+
++# Add pthread
++main.Append(LIBS=['pthread'])
++
+ # According to the readme, tcmalloc works best if the compiler doesn't
+ # assume that we're using the builtin malloc and friends. These flags
+ # are compiler-specific, so we need to set them after we detect which
+@@ -785,13 +788,8 @@
+ swig_flags=Split('-c++ -python -modern -templatereduce $_CPPINCFLAGS')
+ main.Append(SWIGFLAGS=swig_flags)
+
+-# Check for 'timeout' from GNU coreutils. If present, regressions will
+-# be run with a time limit. We require version 8.13 since we rely on
+-# support for the '--foreground' option.
+-timeout_lines = readCommand(['timeout', '--version'],
+- exception='').splitlines()
+-# Get the first line and tokenize it
+-timeout_version = timeout_lines[0].split() if timeout_lines else []
++# It expects GNU timeout, FreeBSD one (on 11.x+) is not compatible
++timeout_version = []
+ main['TIMEOUT'] = timeout_version and \
+ compareVersions(timeout_version[-1], '8.13') >= 0
+
+@@ -922,8 +920,8 @@
+ # version of python, see above for instructions on how to invoke
+ # scons with the appropriate PATH set.
+ #
+- # First we check if python2-config exists, else we use python-config
+- python_config = readCommand(['which', 'python2-config'],
++ # First we check if python2.7-config exists, else we use python-config
++ python_config = readCommand(['which', 'python2.7-config'],
+ exception='').strip()
+ if not os.path.exists(python_config):
+ python_config = readCommand(['which', 'python-config'],
diff --git a/emulators/gem5/files/patch-src_SConscript b/emulators/gem5/files/patch-src_SConscript
new file mode 100644
index 000000000000..50bc9affc724
--- /dev/null
+++ b/emulators/gem5/files/patch-src_SConscript
@@ -0,0 +1,11 @@
+--- src/SConscript.orig 2015-04-21 15:32:43 UTC
++++ src/SConscript
+@@ -165,7 +165,7 @@ class Source(SourceFile):
+ '''specify the source file, and any guards'''
+ super(Source, self).__init__(source, **guards)
+
+- self.Werror = Werror
++ self.Werror = False
+ self.swig = swig
+
+ class PySource(SourceFile):
diff --git a/emulators/gem5/files/patch-src_mem_physical.cc b/emulators/gem5/files/patch-src_mem_physical.cc
new file mode 100644
index 000000000000..a2b568bcb7a0
--- /dev/null
+++ b/emulators/gem5/files/patch-src_mem_physical.cc
@@ -0,0 +1,14 @@
+--- src/mem/physical.cc.orig 2015-04-21 15:32:43 UTC
++++ src/mem/physical.cc
+@@ -62,11 +62,9 @@
+ * host. On OSX the MAP_NORESERVE flag does not exist, so simply make
+ * it 0.
+ */
+-#if defined(__APPLE__)
+ #ifndef MAP_NORESERVE
+ #define MAP_NORESERVE 0
+ #endif
+-#endif
+
+ using namespace std;
+
diff --git a/emulators/gem5/files/patch-util_term_Makefile b/emulators/gem5/files/patch-util_term_Makefile
new file mode 100644
index 000000000000..ac67742092fb
--- /dev/null
+++ b/emulators/gem5/files/patch-util_term_Makefile
@@ -0,0 +1,11 @@
+--- util/term/Makefile.orig 2015-04-22 17:24:04 UTC
++++ util/term/Makefile
+@@ -26,7 +26,7 @@
+ #
+ # Authors: Nathan Binkert
+
+-CC= gcc
++CC= cc
+ CCFLAGS= -g -O0
+
+ default: m5term
diff --git a/emulators/gem5/pkg-descr b/emulators/gem5/pkg-descr
new file mode 100644
index 000000000000..29911213888d
--- /dev/null
+++ b/emulators/gem5/pkg-descr
@@ -0,0 +1,5 @@
+The gem5 simulator is a modular platform for computer system
+architecture research, encompassing system-level architecture
+as well as processor microarchitecture.
+
+WWW: http://www.gem5.org/
diff --git a/emulators/gem5/pkg-plist b/emulators/gem5/pkg-plist
new file mode 100644
index 000000000000..b613858602bc
--- /dev/null
+++ b/emulators/gem5/pkg-plist
@@ -0,0 +1,108 @@
+bin/m5term
+gem5/ARM/gem5.opt
+gem5/configs/boot/ammp.rcS
+gem5/configs/boot/ammp.symbol
+gem5/configs/boot/art.rcS
+gem5/configs/boot/bbench-gb.rcS
+gem5/configs/boot/bbench-ics.rcS
+gem5/configs/boot/bn-app.rcS
+gem5/configs/boot/bonnie.rcS
+gem5/configs/boot/bonnie.symbol
+gem5/configs/boot/bzip.rcS
+gem5/configs/boot/cc1.symbol
+gem5/configs/boot/devtime.rcS
+gem5/configs/boot/equake.rcS
+gem5/configs/boot/equake.symbol
+gem5/configs/boot/gcc.rcS
+gem5/configs/boot/gzip.rcS
+gem5/configs/boot/gzip.symbol
+gem5/configs/boot/hack_back_ckpt.rcS
+gem5/configs/boot/halt.sh
+gem5/configs/boot/iscsi-client.rcS
+gem5/configs/boot/iscsi-server.rcS
+gem5/configs/boot/ls.rcS
+gem5/configs/boot/mcf.rcS
+gem5/configs/boot/mcf.symbol
+gem5/configs/boot/mesa.rcS
+gem5/configs/boot/mesa.symbol
+gem5/configs/boot/micro_ctx.rcS
+gem5/configs/boot/micro_memlat.rcS
+gem5/configs/boot/micro_memlat2mb.rcS
+gem5/configs/boot/micro_memlat8.rcS
+gem5/configs/boot/micro_memlat8mb.rcS
+gem5/configs/boot/micro_stream.rcS
+gem5/configs/boot/micro_streamcopy.rcS
+gem5/configs/boot/micro_streamscale.rcS
+gem5/configs/boot/micro_syscall.rcS
+gem5/configs/boot/micro_tlblat.rcS
+gem5/configs/boot/micro_tlblat2.rcS
+gem5/configs/boot/micro_tlblat3.rcS
+gem5/configs/boot/mutex-test.rcS
+gem5/configs/boot/nat-netperf-maerts-client.rcS
+gem5/configs/boot/nat-netperf-server.rcS
+gem5/configs/boot/nat-netperf-stream-client.rcS
+gem5/configs/boot/nat-spec-surge-client.rcS
+gem5/configs/boot/nat-spec-surge-server.rcS
+gem5/configs/boot/natbox-netperf.rcS
+gem5/configs/boot/natbox-spec-surge.rcS
+gem5/configs/boot/netperf-maerts-client.rcS
+gem5/configs/boot/netperf-rr.rcS
+gem5/configs/boot/netperf-server.rcS
+gem5/configs/boot/netperf-stream-client.rcS
+gem5/configs/boot/netperf-stream-nt-client.rcS
+gem5/configs/boot/netperf-stream-udp-client.rcS
+gem5/configs/boot/netperf-stream-udp-local.rcS
+gem5/configs/boot/nfs-client-dbench.rcS
+gem5/configs/boot/nfs-client-nhfsstone.rcS
+gem5/configs/boot/nfs-client-smallb.rcS
+gem5/configs/boot/nfs-client-tcp-smallb.rcS
+gem5/configs/boot/nfs-client-tcp.rcS
+gem5/configs/boot/nfs-client.rcS
+gem5/configs/boot/nfs-server-nhfsstone.rcS
+gem5/configs/boot/nfs-server.rcS
+gem5/configs/boot/null.rcS
+gem5/configs/boot/ping-client.rcS
+gem5/configs/boot/ping-server.rcS
+gem5/configs/boot/setup
+gem5/configs/boot/spec-surge-client.rcS
+gem5/configs/boot/spec-surge-server.rcS
+gem5/configs/boot/surge-client.rcS
+gem5/configs/boot/surge-server.rcS
+gem5/configs/common/Benchmarks.py
+gem5/configs/common/CacheConfig.py
+gem5/configs/common/Caches.py
+gem5/configs/common/CpuConfig.py
+gem5/configs/common/FSConfig.py
+gem5/configs/common/MemConfig.py
+gem5/configs/common/O3_ARM_v7a.py
+gem5/configs/common/Options.py
+gem5/configs/common/Simulation.py
+gem5/configs/common/SysPaths.py
+gem5/configs/common/cpu2000.py
+gem5/configs/dram/sweep.py
+gem5/configs/example/fs.py
+gem5/configs/example/memcheck.py
+gem5/configs/example/memtest.py
+gem5/configs/example/read_config.py
+gem5/configs/example/ruby_direct_test.py
+gem5/configs/example/ruby_mem_test.py
+gem5/configs/example/ruby_network_test.py
+gem5/configs/example/ruby_random_test.py
+gem5/configs/example/se.py
+gem5/configs/ruby/MESI_Three_Level.py
+gem5/configs/ruby/MESI_Two_Level.py
+gem5/configs/ruby/MI_example.py
+gem5/configs/ruby/MOESI_CMP_directory.py
+gem5/configs/ruby/MOESI_CMP_token.py
+gem5/configs/ruby/MOESI_hammer.py
+gem5/configs/ruby/Network_test.py
+gem5/configs/ruby/Ruby.py
+gem5/configs/splash2/cluster.py
+gem5/configs/splash2/run.py
+gem5/configs/topologies/BaseTopology.py
+gem5/configs/topologies/Cluster.py
+gem5/configs/topologies/Crossbar.py
+gem5/configs/topologies/Mesh.py
+gem5/configs/topologies/MeshDirCorners.py
+gem5/configs/topologies/Pt2Pt.py
+gem5/configs/topologies/Torus.py
diff --git a/emulators/nonpareil/Makefile b/emulators/nonpareil/Makefile
new file mode 100644
index 000000000000..97c16af1887b
--- /dev/null
+++ b/emulators/nonpareil/Makefile
@@ -0,0 +1,44 @@
+# Created by: trasz <trasz@pin.if.uz.zgora.pl>
+# $FreeBSD$
+
+PORTNAME= nonpareil
+PORTVERSION= 0.79
+PORTREVISION= 8
+CATEGORIES= emulators
+MASTER_SITES= http://nonpareil.brouhaha.com/download/
+
+MAINTAINER= ports@FreeBSD.org
+COMMENT= Simulator for many HP calculators
+
+LICENSE= GPLv2
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
+ libfreetype.so:print/freetype2 \
+ libpng.so:graphics/png
+
+USES= bison gnome pkgconfig scons:python2 sdl
+USE_GNOME= cairo gdkpixbuf2 gtk20 libxml2
+USE_SDL= sdl
+
+PORTDOCS= CREDITS DEBUGGING README TODO
+
+OPTIONS_DEFINE= DOCS
+
+post-patch:
+ @${REINPLACE_CMD} -e \
+ 's|%%CFLAGS%%|${CFLAGS}| ; \
+ s|%%CC%%|${CC}|' ${WRKSRC}/src/SConscript
+ @${REINPLACE_CMD} -E \
+ "s|('/usr/local')|\1,PathVariable.PathAccept|" ${WRKSRC}/SConstruct
+ @${REINPLACE_CMD} -e \
+ 's|<stdint.h>|<inttypes.h>|g' ${WRKSRC}/src/*.[cly]
+
+post-install:
+ @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/*
+
+post-install-DOCS-on:
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/emulators/nonpareil/distinfo b/emulators/nonpareil/distinfo
new file mode 100644
index 000000000000..0ddfccbde9f9
--- /dev/null
+++ b/emulators/nonpareil/distinfo
@@ -0,0 +1,2 @@
+SHA256 (nonpareil-0.79.tar.gz) = 3bcb2f9a829a4cad003f84a42c6f0e31a7bf527e634aea9cf13e370b6c175841
+SIZE (nonpareil-0.79.tar.gz) = 4761552
diff --git a/emulators/nonpareil/files/patch-SConstruct b/emulators/nonpareil/files/patch-SConstruct
new file mode 100644
index 000000000000..48263e69f1e4
--- /dev/null
+++ b/emulators/nonpareil/files/patch-SConstruct
@@ -0,0 +1,86 @@
+--- SConstruct.orig 2008-08-24 00:37:34 UTC
++++ SConstruct
+@@ -24,28 +24,28 @@ release = '0.79' # should get from a file, and use on
+ conf_file = 'nonpareil.conf'
+
+ #-----------------------------------------------------------------------------
+-# Options
++# Variables
+ #-----------------------------------------------------------------------------
+
+-opts = Options (conf_file)
++opts = Variables (conf_file)
+
+-opts.AddOptions (EnumOption ('host',
++opts.AddVariables (EnumVariable ('host',
+ help = 'host build platform',
+ allowed_values = ('posix', 'win32'),
+ default = 'posix',
+ ignorecase = 1),
+
+- EnumOption ('target',
++ EnumVariable ('target',
+ help = 'execution target platform',
+ allowed_values = ('posix', 'win32'),
+ default = 'posix',
+ ignorecase = 1),
+
+- PathOption ('prefix',
++ PathVariable ('prefix',
+ 'installation path prefix',
+ '/usr/local'),
+
+- # Don't use PathOption for other paths, because we don't
++ # Don't use PathVariable for other paths, because we don't
+ # require the directories to preexist.
+ ('bindir',
+ 'path for executable files (default is $prefix/bin)',
+@@ -59,25 +59,25 @@ opts.AddOptions (EnumOption ('host',
+ 'installation virtual root directory (for packaging)',
+ ''),
+
+- BoolOption ('debug',
++ BoolVariable ('debug',
+ help = 'compile for debugging',
+ default = 1),
+
+ # Feature switches:
+
+- BoolOption ('has_debugger_gui',
++ BoolVariable ('has_debugger_gui',
+ help = 'enable debugger GUI interface',
+ default = 0),
+
+- BoolOption ('has_debugger_cli',
++ BoolVariable ('has_debugger_cli',
+ help = 'enable debugger command-line interface',
+ default = 0),
+
+- BoolOption ('use_tcl',
++ BoolVariable ('use_tcl',
+ help = 'use Tcl as debug command interpreter (only when debugger CLI is enabled)',
+ default = 1), # only if has_debugger_cli
+
+- BoolOption ('use_readline',
++ BoolVariable ('use_readline',
+ help = 'use Readline library for command editing and history (only when debugger CLI is enabled)',
+ default = 1)) # only if has_debugger_cli
+
+@@ -235,7 +235,7 @@ SConscript (['rom/SConscript',
+ # host platform code
+ #-----------------------------------------------------------------------------
+
+-native_env = env.Copy ()
++native_env = env.Clone ()
+ native_env ['build_target_only'] = 0
+ SConscript ('src/SConscript',
+ build_dir = 'build/' + env ['host'],
+@@ -256,7 +256,7 @@ SConscript ('asm/SConscript',
+ #-----------------------------------------------------------------------------
+
+ if (env ['host'] != env ['target']):
+- cross_build_env = env.Copy ()
++ cross_build_env = env.Clone ()
+ cross_build_env ['build_target_only'] = 1
+ SConscript ('src/SConscript',
+ build_dir = 'build/' + env ['target'],
diff --git a/emulators/nonpareil/files/patch-src_SConscript b/emulators/nonpareil/files/patch-src_SConscript
new file mode 100644
index 000000000000..70c2dcb70b08
--- /dev/null
+++ b/emulators/nonpareil/files/patch-src_SConscript
@@ -0,0 +1,114 @@
+--- src/SConscript.orig 2008-08-24 00:37:18 UTC
++++ src/SConscript
+@@ -41,16 +41,11 @@ sdl_pkg_config_cmd = 'sdl-config --cflags --libs'
+
+ build_env.Append (CPPPATH = ['.'])
+ build_env.Append (CPPPATH = ['#/build/common']) # generated includes
+-build_env.Append (CCFLAGS = ['-Wall'])
++build_env.Append (CCFLAGS = "%%CFLAGS%%")
+ build_env.Append (YACCFLAGS = [ '-d', '-v' ])
++build_env.Replace (CC = '%%CC%%')
+
+-if build_env ['debug'] :
+- build_env.Append (CCFLAGS = ['-g'])
+-else:
+- build_env.Append (CCFLAGS = ['-O2'])
+-
+ if cross and ming and build_target_only:
+- build_env.Replace (CC = '/usr/local/mingw/bin/i586-mingw32msvc-gcc')
+ build_env.Append (CCFLAGS = ['-mms-bitfields'])
+ build_env.Append (CPPPATH = ['/usr/local/gtkwin/include']) # libpng
+ build_env.Append (CPPPATH = ['/usr/local/gtkwin/SDL-1.2.8/include'])
+@@ -79,7 +74,7 @@ state_io_srcs = Split ("""state_write.c state_read.c""
+ state_io_objs = [build_env.Object(src) for src in state_io_srcs];
+ state_io_packages = "gtk+-2.0 gdk-2.0 gdk-pixbuf-2.0 glib-2.0 libxml-2.0"
+
+-release_env = build_env.Copy (CPPDEFINES = [('NONPAREIL_RELEASE', build_env ['RELEASE'])])
++release_env = build_env.Clone (CPPDEFINES = [('NONPAREIL_RELEASE', build_env ['RELEASE'])])
+ common_objs.append (release_env.Object ('release.c'))
+
+ build_env.ParseConfig(pkg_config_cmd + state_io_packages)
+@@ -89,7 +84,7 @@ build_env.ParseConfig(pkg_config_cmd + state_io_packag
+ #-----------------------------------------------------------------------------
+
+ if build_env ['build_target_only'] == 0:
+- str2png_env = build_env.Copy ()
++ str2png_env = build_env.Clone ()
+
+ str2png_env.Append (CPPDEFINES = [('DEFAULT_PATH', 'image')])
+
+@@ -196,7 +191,7 @@ if build_env ['build_target_only'] == 0:
+ #-----------------------------------------------------------------------------
+
+ if not build_target_only:
+- title_env = native_env.Copy (STR2PNG_STRING = 'NONPAREIL',
++ title_env = native_env.Clone (STR2PNG_STRING = 'NONPAREIL',
+ STR2PNG_OPTS = '-x 40 -y 44 -m 10')
+
+ title_env.STR2PNG (target = 'nonpareil_title',
+@@ -205,7 +200,7 @@ if not build_target_only:
+ native_env.PNG2C (target = '#build/common/nonpareil_title_png.c',
+ source = 'nonpareil_title.png')
+
+- rgoose_env = native_env.Copy (STR2PNG_STRING = '.',
++ rgoose_env = native_env.Clone (STR2PNG_STRING = '.',
+ STR2PNG_OPTS = '-x 40 -y 44')
+
+ rgoose_env.STR2PNG (target = 'rgoose',
+@@ -214,7 +209,7 @@ if not build_target_only:
+ native_env.PNG2C (target = '#build/common/rgoose_png.c',
+ source = 'rgoose.png')
+
+- lgoose_env = native_env.Copy (STR2PNG_STRING = ',',
++ lgoose_env = native_env.Clone (STR2PNG_STRING = ',',
+ STR2PNG_OPTS = '-x 40 -y 44')
+
+ lgoose_env.STR2PNG (target = 'lgoose',
+@@ -235,7 +230,7 @@ if not build_target_only:
+ # nonpareil
+ #-----------------------------------------------------------------------------
+
+-nonpareil_env = build_env.Copy ()
++nonpareil_env = build_env.Clone ()
+
+ nonpareil_srcs = Split ("""proc.c glib_async_queue_source.c
+ about.c goose.c pixbuf_util.c
+@@ -284,9 +279,9 @@ nonpareil_env.ParseConfig (pkg_config_cmd + nonpareil_
+ if (not ming) or (cross and not build_target_only):
+ nonpareil_env.ParseConfig (sdl_pkg_config_cmd)
+
+-csim_env = nonpareil_env.Copy ()
++csim_env = nonpareil_env.Clone ()
+ if not ming:
+- csim_env.Append (CPPDEFINES = [('DEFAULT_PATH', build_env ['libdir'])])
++ csim_env.Append (CPPDEFINES = [('DEFAULT_PATH' + build_env ['libdir'])])
+
+ if build_env ['target'] == 'win32':
+ csim_env.Append (CPPDEFINES = [('SHAPE_DEFAULT', "false")])
+@@ -296,7 +291,7 @@ if build_env ['has_debugger_gui']:
+
+ if build_env ['has_debugger_cli']:
+ csim_env.Append (CPPDEFINES = [('HAS_DEBUGGER_CLI', 1)])
+- debugger_cli_env = csim_env.Copy ()
++ debugger_cli_env = csim_env.Clone ()
+ if build_env ['use_tcl']:
+ debugger_cli_env.Append (CPPDEFINES = [('USE_TCL', 1)])
+ nonpareil_env.Append (LIBS = 'tcl')
+@@ -325,7 +320,7 @@ nonpareil = nonpareil_env.Program (target = 'nonpareil
+ # udis
+ #-----------------------------------------------------------------------------
+
+-udis_env = build_env.Copy ()
++udis_env = build_env.Clone ()
+
+ udis_srcs = Split ("""dis.c""")
+
+@@ -336,7 +331,7 @@ udis = udis_env.Program (target = 'udis',
+ # nsim_conv
+ #-----------------------------------------------------------------------------
+
+-nsim_conv_env = build_env.Copy ()
++nsim_conv_env = build_env.Clone ()
+
+ nsim_conv_srcs = Split ("""nsim_conv.c
+ state_read_nsim.c state_write_nsim.c""")
diff --git a/emulators/nonpareil/files/patch-src_asm.h b/emulators/nonpareil/files/patch-src_asm.h
new file mode 100644
index 000000000000..6bedaf1394c8
--- /dev/null
+++ b/emulators/nonpareil/files/patch-src_asm.h
@@ -0,0 +1,11 @@
+--- src/asm.h.orig 2008-08-24 00:37:18 UTC
++++ src/asm.h
+@@ -22,7 +22,7 @@ MA 02111, USA.
+
+ extern int arch;
+
+-int pass;
++extern int pass;
+ extern int lineno;
+ extern int errors;
+
diff --git a/emulators/nonpareil/files/patch-src_printer.c b/emulators/nonpareil/files/patch-src_printer.c
new file mode 100644
index 000000000000..8fd36a9f860b
--- /dev/null
+++ b/emulators/nonpareil/files/patch-src_printer.c
@@ -0,0 +1,10 @@
+--- src/printer.c.orig 2008-08-24 00:37:18 UTC
++++ src/printer.c
+@@ -29,6 +29,7 @@ MA 02111, USA.
+ #include <gtk/gtk.h>
+
+ #include <png.h>
++#include <zlib.h>
+
+ #include "util.h"
+ #include "display.h"
diff --git a/emulators/nonpareil/files/patch-src_proc.c b/emulators/nonpareil/files/patch-src_proc.c
new file mode 100644
index 000000000000..7e5dcc549165
--- /dev/null
+++ b/emulators/nonpareil/files/patch-src_proc.c
@@ -0,0 +1,16 @@
+--- src/proc.c.orig 2008-08-24 00:37:18 UTC
++++ src/proc.c
+@@ -352,7 +352,13 @@ bool sim_read_object_file (sim_t *sim, c
+ // Microsoft freopen() isn't compliant with the C standard, which allows
+ // NULL for the filename if you're reopening an existing file handle.
+ #else
++ // XXX: for some reason this does not work.
++#if 0
+ f = freopen (NULL, "r", f);
++#else
++ fclose(f);
++ f = fopen(fn, "rb");
++#endif
+ #endif
+ if (! f)
+ {
diff --git a/emulators/nonpareil/files/patch-src_util.c b/emulators/nonpareil/files/patch-src_util.c
new file mode 100644
index 000000000000..b2de6dbf3909
--- /dev/null
+++ b/emulators/nonpareil/files/patch-src_util.c
@@ -0,0 +1,18 @@
+--- src/util.c.orig 2008-08-24 00:37:18 UTC
++++ src/util.c
+@@ -130,6 +130,7 @@ void realloc_strcpy (char **dest, char *
+ }
+
+
++#if 0
+ // strlcpy will copy as much of src into dest as it can, up to one less than
+ // the maximum length of dest specified by the argument l. Unlike strncpy(),
+ // strlcpy() will always leave dest NULL-terminated on return.
+@@ -139,6 +140,7 @@ char *strlcpy (char *dest, const char *s
+ dest [l - 1] = '\0';
+ return dest;
+ }
++#endif
+
+
+ // strlncpy will copy up to n characters from src to dest, but not more than
diff --git a/emulators/nonpareil/files/patch-src_util.h b/emulators/nonpareil/files/patch-src_util.h
new file mode 100644
index 000000000000..547729926f27
--- /dev/null
+++ b/emulators/nonpareil/files/patch-src_util.h
@@ -0,0 +1,11 @@
+--- src/util.h.orig 2008-08-24 00:37:18 UTC
++++ src/util.h
+@@ -56,7 +56,7 @@ void realloc_strcpy (char **dest, char *
+ // strlcpy will copy as much of src into dest as it can, up to one less than
+ // the maximum length of dest specified by the argument l. Unlike strncpy(),
+ // strlcpy() will always leave dest NULL-terminated on return.
+-char *strlcpy (char *dest, const char *src, size_t l);
++//char *strlcpy (char *dest, const char *src, size_t l);
+
+
+ // strlncpy will copy up to n characters from src to dest, but not more than
diff --git a/emulators/nonpareil/pkg-descr b/emulators/nonpareil/pkg-descr
new file mode 100644
index 000000000000..63453174461c
--- /dev/null
+++ b/emulators/nonpareil/pkg-descr
@@ -0,0 +1,7 @@
+Nonpareil is a high-fidelity simulator for calculators. It currently
+supports many HP calculators models introduced between 1972 and
+1982. Simulation fidelity is achieved through the use of the actual
+microcode of the calculators, thus in most cases the simulation
+behavior exactly matches that of the real calculator.
+
+WWW: http://nonpareil.brouhaha.com/
diff --git a/emulators/nonpareil/pkg-plist b/emulators/nonpareil/pkg-plist
new file mode 100644
index 000000000000..eea031930166
--- /dev/null
+++ b/emulators/nonpareil/pkg-plist
@@ -0,0 +1,49 @@
+bin/modutil
+bin/nonpareil
+bin/uasm
+lib/nonpareil/21.kml
+lib/nonpareil/21.obj
+lib/nonpareil/21.png
+lib/nonpareil/25.kml
+lib/nonpareil/25.obj
+lib/nonpareil/25.png
+lib/nonpareil/32e.kml
+lib/nonpareil/32e.obj
+lib/nonpareil/32e.png
+lib/nonpareil/33c.kml
+lib/nonpareil/33c.obj
+lib/nonpareil/33c.png
+lib/nonpareil/34c.kml
+lib/nonpareil/34c.obj
+lib/nonpareil/34c.png
+lib/nonpareil/35.kml
+lib/nonpareil/35.lst
+lib/nonpareil/35.obj
+lib/nonpareil/35.png
+lib/nonpareil/37e.kml
+lib/nonpareil/37e.obj
+lib/nonpareil/37e.png
+lib/nonpareil/38c.kml
+lib/nonpareil/38c.obj
+lib/nonpareil/38c.png
+lib/nonpareil/38e.kml
+lib/nonpareil/38e.obj
+lib/nonpareil/41cv.kml
+lib/nonpareil/41cv.mod
+lib/nonpareil/41cv.png
+lib/nonpareil/41cx.kml
+lib/nonpareil/41cx.mod
+lib/nonpareil/45.kml
+lib/nonpareil/45.lst
+lib/nonpareil/45.obj
+lib/nonpareil/45.png
+lib/nonpareil/55.kml
+lib/nonpareil/55.lst
+lib/nonpareil/55.obj
+lib/nonpareil/55.png
+lib/nonpareil/80.kml
+lib/nonpareil/80.lst
+lib/nonpareil/80.obj
+lib/nonpareil/80.png
+lib/nonpareil/82143a.mod
+lib/nonpareil/82182a.mod