diff options
Diffstat (limited to 'app-emulation/dosemu')
9 files changed, 276 insertions, 0 deletions
diff --git a/app-emulation/dosemu/Manifest b/app-emulation/dosemu/Manifest new file mode 100644 index 000000000000..b6a8ad9e302b --- /dev/null +++ b/app-emulation/dosemu/Manifest @@ -0,0 +1,10 @@ +AUX dosemu-1.4.1_pre20091009-dash.patch 395 BLAKE2B fac8321f3067e9fb6b242862db5178e534492535f4750fd8e986ecb52342c883fb1f0d240c2ff4ac583995c19e6052c03723895def1fcb40787623203aaa2f88 SHA512 a520a6e71d7852035cf61e554cf0e9a10a61ffb1c908d7818507516f1674f59a30c46e47bf246c9113b03a0932b97e5f8cba12d69366466ea3f9b952742ae2cf +AUX dosemu-1.4.1_pre20130107-fix-inline.patch 560 BLAKE2B 015ac356542cf8cdcb8de6e1f6441704bf2d89eafdba2a2f1a54ff7069bc49393b7e86ab20bb433c34eeaaada43c3cb437ed31f9fbc5ec6fa28832a23921dff3 SHA512 66f3e9a119fb0f80d311d46af6e980ce2f519f389317391746805b875eaecf2f0f714f726e2d6306345c7f68c3e2b2432f8adb16a72a51faf49067ac618e1424 +AUX dosemu-1.4.1_pre20130107-flex-2.6.3.patch 463 BLAKE2B d4bc8b47ce97742b0f162a0d03f9347a420ccd8c5d6dbcc92907cdb00654c73ebfaf5b108fd6ed4fb7528d4f254c7e125bc70292cce7634cb04baad27cade69d SHA512 51674b60fb341f56c7120a9349c9890a9770cdef524ae3ccf6795769fde31823b2b57aaaafd6111c236550c16caf53246773dda1cd71639887ffaa7093d95cc0 +AUX dosemu-1.4.1_pre20130107-fortify.patch 1961 BLAKE2B ec1e9a8d78ac041c33ae4b4c534a028fa47fc84b8383183006b2830cf28d1a4c227324d2dd0f6aa07c138fbbe3fb991d3ad76012ccd85da973c65b851d965f50 SHA512 90a5dbc6b00d2b13086c15997cf056e1a54721518a76a85425c7adb6d859782e26391c28386e847fd914a01f0c243615c21c1317a58c19ed9603133e0256971a +AUX dosemu-1.4.1_pre20130107-ia16-ldflags.patch 1787 BLAKE2B a265263de5ccb12df7224343daba5d43786d7f522ae071057105e710d9cfab384a7020c0cdbb305f9da57ecf5ed8ae745ebf115f3cd0b370962e7054dc6690dc SHA512 53fe8b40bc57a2459dcd16d3fba9d81d1cdab498232afe0c19f612737861f88b2f98c584d4fa1a4548e273a38fc17d254f890a64f3112cb0433d7679e7afcdb3 +AUX dosemu-1.4.1_pre20130107-no-glibc.patch 559 BLAKE2B 93ba50a5acda4b0b556e5393c34babe0b9172a8c9c1b168432f454ff120673496d279496d76821eda49886aaa998244bd411d4db6b465517712c4f6683d2850d SHA512 c53e3f7ed1b7a74e1112ea5507d0912ef1d16ff657aa5a03132f6b4c35ddb638ecde40ef554254f429316ffd74fc2d8afb59548d97547eeed231c80c0c057eed +DIST dosemu-1.4.1_pre20130107.zip 2767256 BLAKE2B 068c38108257b83d046682d4e9bda6f2da84195cff3aa5eb73764e88ba48bd415a6af9fa1b57059dee12ddd75b379df730fe6957014b554cc13b12ac029eed8d SHA512 eb8dcb914a74b235f2b37ff4dd5c1c84b4916ff195c7bf76cdbe6a4d5e6247c57297eef0c579f219ff7f475e727d66fa5a0f314da46d79cc97a0d794e9ad5864 +DIST dosemu-freedos-1.0-bin.tgz 1205628 BLAKE2B e88a23b14cf1ccccb4f648b3c3af39330d8af29940e228b951cc7e48595f9838236066b67f841328e75ee7aee18f9e7814ea33382bb48902ca7947806b646852 SHA512 d0c4235ceac55de63ce5f72e51b7d57a82b8104f4bf2df6f4dc25c9889d3337b40d75665c2dfc98492ec7123e0959a725f5c7579e145895024bd80a07036e3bd +EBUILD dosemu-1.4.1_pre20130107-r5.ebuild 2523 BLAKE2B 8736c113bcaaf4444ea1b1bdd092df51d5373712d0e1acaeebcd5edc6b93d2806eabf7ad972a16e4ec5da97137d63148d874a76fff6179251db8e78832c2887f SHA512 c97e280a0f90c30678676cba12ed7942e0012722e0909f5552671dc10efd32cfc7eb36d2a7bdb53b3c859eca41790a65b25a4b82e3efea0bbe881de39fb321ed +MISC metadata.xml 432 BLAKE2B 06cd4821f41961fdcf266bb1175ee118cd181d17c3b38508e2a30dbbfab9e5cb02608e2b8e5af905abc24718d410a24d112c073fd6ee460b33d904c975358a61 SHA512 da0538836dc326d714141ab6c7b9f00bc1604fa5b51df7d9d548a8e3d889072b3ee8890a25705e2a7c2c1c31645c0b9af85ce6a2d1e4aa142a4d83a08fd6f9d8 diff --git a/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild b/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild new file mode 100644 index 000000000000..4f7a7c37c07a --- /dev/null +++ b/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild @@ -0,0 +1,103 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit autotools eutils flag-o-matic pax-utils toolchain-funcs + +P_FD="dosemu-freedos-1.0-bin" +COMMIT="15cfb41ff20a052769d753c3262c57ecb050ad71" + +DESCRIPTION="DOS Emulator" +HOMEPAGE="http://www.dosemu.org/" +SRC_URI="mirror://sourceforge/dosemu/${P_FD}.tgz + https://sourceforge.net/code-snapshots/git/d/do/dosemu/code.git/dosemu-code-${COMMIT}.zip -> ${P}.zip" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="-* amd64 x86" +IUSE="X svga gpm debug alsa sndfile fluidsynth" + +RDEPEND="X? ( x11-libs/libX11 + x11-libs/libXxf86vm + x11-libs/libXau + x11-libs/libXext + x11-libs/libXdmcp + x11-apps/xset + x11-apps/xlsfonts + x11-apps/bdftopcf + x11-apps/mkfontdir ) + svga? ( media-libs/svgalib ) + gpm? ( sys-libs/gpm ) + alsa? ( media-libs/alsa-lib ) + sndfile? ( media-libs/libsndfile ) + fluidsynth? ( media-sound/fluidsynth + media-sound/fluid-soundfont ) + media-libs/libsdl + >=sys-libs/slang-1.4" + +DEPEND="${RDEPEND} + X? ( x11-base/xorg-proto ) + >=sys-devel/autoconf-2.57" + +S="${WORKDIR}/${PN}-code-${COMMIT}" + +PATCHES=( + "${FILESDIR}"/${P}-fortify.patch + "${FILESDIR}"/${PN}-1.4.1_pre20091009-dash.patch + "${FILESDIR}"/${P}-no-glibc.patch + "${FILESDIR}"/${P}-flex-2.6.3.patch + "${FILESDIR}"/${P}-ia16-ldflags.patch + "${FILESDIR}"/${P}-fix-inline.patch +) + +src_prepare() { + default + + # Has problems with -O3 on some systems + replace-flags -O[3-9] -O2 + + # This one is from media-sound/fluid-soundfont (bug #479534) + sed "s,/usr/share/soundfonts/default.sf2,${EPREFIX}/usr/share/sounds/sf2/FluidR3_GM.sf2,"\ + -i src/plugin/fluidsynth/mid_o_flus.c || die + + eautoreconf +} + +src_configure() { + # workaround binutils ld.gold bug #618366 + local nopie_flag= + if tc-enables-pie; then + if gcc-specs-pie; then + # before gcc got upstream support for '-no-pie' + nopie_flag=-nopie + else + nopie_flag=-no-pie + fi + fi + + econf $(use_with X x) \ + $(use_with svga svgalib) \ + $(use_enable debug) \ + $(use_with gpm) \ + $(use_with alsa) \ + $(use_with sndfile) \ + $(use_with fluidsynth) \ + --with-fdtarball="${DISTDIR}"/${P_FD}.tgz \ + --sysconfdir="${EPREFIX}"/etc/dosemu/ \ + --with-docdir="${EPREFIX}"/usr/share/doc/${PF} \ + IA16_LDFLAGS_EXTRA=${nopie_flag} +} + +src_compile() { + emake AR=$(tc-getAR) +} + +src_install() { + default + + # r - randmmap: dosemu tries to get address mapping + # exactly where asked, loops otherwise. + # m - allow RWX mapping: as it's an emulator / code loader + pax-mark -mr "${ED}/usr/bin/dosemu.bin" +} diff --git a/app-emulation/dosemu/files/dosemu-1.4.1_pre20091009-dash.patch b/app-emulation/dosemu/files/dosemu-1.4.1_pre20091009-dash.patch new file mode 100644 index 000000000000..c48712e68661 --- /dev/null +++ b/app-emulation/dosemu/files/dosemu-1.4.1_pre20091009-dash.patch @@ -0,0 +1,10 @@ +Dash does not support 'echo -n' and breaks default config sourcing. +diff --git a/default-configure b/default-configure +index 9e4b78b..a749f63 100755 +--- a/default-configure ++++ b/default-configure +@@ -30,3 +30,3 @@ done + CONF=`cat $CONF_FILE` +-CONF=`echo -n "$CONF"| sed '/^config {/d' | sed '/^}/d' | tr '\n' ' ' ` ++CONF=`printf "%s" "$CONF"| sed '/^config {/d' | sed '/^}/d' | tr '\n' ' ' ` + diff --git a/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-fix-inline.patch b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-fix-inline.patch new file mode 100644 index 000000000000..9a515941b812 --- /dev/null +++ b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-fix-inline.patch @@ -0,0 +1,14 @@ +diff --git a/src/dosext/sound/sound.c b/src/dosext/sound/sound.c +index f33f78f..f429362 100644 +--- a/src/dosext/sound/sound.c ++++ b/src/dosext/sound/sound.c +@@ -173,3 +173,3 @@ void sb_cms_write (ioport_t port, Bit8u value); + +-inline void sb_mixer_register_write (Bit8u value); ++static inline void sb_mixer_register_write (Bit8u value); + void sb_mixer_data_write (Bit8u value); +@@ -840,3 +840,3 @@ void sb_cms_write (ioport_t port, Bit8u value) + +-inline void sb_mixer_register_write (Bit8u value) ++static inline void sb_mixer_register_write (Bit8u value) + { diff --git a/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-flex-2.6.3.patch b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-flex-2.6.3.patch new file mode 100644 index 000000000000..de5b00b783cf --- /dev/null +++ b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-flex-2.6.3.patch @@ -0,0 +1,15 @@ +https://bugs.gentoo.org/604610 + +New flex seems to define yywrap even for non-yywrap lexers. +diff --git a/src/base/init/lexer.l.in b/src/base/init/lexer.l.in +index aeaa2e2..9e42ddf 100644 +--- a/src/base/init/lexer.l.in ++++ b/src/base/init/lexer.l.in +@@ -810,7 +810,2 @@ static void enter_includefile(char * fname) + +- +-#ifdef yywrap +- error "yywrap defined elsewere, need our own one" +-#endif +- + int yywrap(void) /* this gets called at EOF of a parsed file */ diff --git a/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-fortify.patch b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-fortify.patch new file mode 100644 index 000000000000..5daa4e9fee41 --- /dev/null +++ b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-fortify.patch @@ -0,0 +1,48 @@ +From ff9bea065f4cc6068dcb8d6ea9423105305ca590 Mon Sep 17 00:00:00 2001 +From: Sergei Trofimovich <slyfox@gentoo.org> +Date: Mon, 5 Aug 2013 13:03:21 +0300 +Subject: [PATCH] src/tools/tools86.c: fix stack buffer overflow in + 'change_aout' + +Detected by gcc: + +gcc -std=gnu99 -c -MP -MMD -I../../src/include -I../../src/plugin/include -Wall -Wstrict-prototypes -Wmissing-declarations -Wnested-externs -fno-strict-aliasing -pipe -O2 -fomit-frame-pointer -o tools86.o tools86.c +In file included from /usr/include/stdio.h:937:0, + from tools86.c:98: + In function 'fread', + inlined from 'change_aout.constprop.1' at tools86.c:174:12, + inlined from 'main' at tools86.c:391:18: + /usr/include/bits/stdio2.h:293:2: warning: call to '__fread_chk_warn' declared with attribute warning: fread called with bigger size * nmemb than length of destination buffer [enabled by default] + return __fread_chk_warn (__ptr, __bos0 (__ptr), __size, __n, __stream); + ^ +Gentoo-bug: http://bugs.gentoo.org/343577 +Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> +--- + src/tools/tools86.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/tools/tools86.c b/src/tools/tools86.c +index 141610d..35a0b96 100644 +--- a/src/tools/tools86.c ++++ b/src/tools/tools86.c +@@ -137,7 +137,7 @@ struct bsd_header { /* a.out header */ + #endif + + #ifdef __linux__ +-static int header_ld86out_to_gnuasout(struct bsd_header *bsd, struct gnu_header *gnu) ++static int header_ld86out_to_gnuasout(const struct bsd_header *bsd, struct gnu_header *gnu) + { + if (bsd->a_magic[0] != 0x01 || bsd->a_magic[1] != 0x03 || + bsd->a_flags != 0x00 || bsd->a_cpu != 0x10) return -1; +@@ -171,7 +171,7 @@ static int change_aout(char *objfile, int update_symtable) + return errno; + } + #ifdef __linux__ +- if (fread(&bsd,sizeof(gnu),1,f) != 1 ) { ++ if (fread(&bsd,sizeof(bsd),1,f) != 1 ) { + fclose(f); + return -1; + } +-- +1.8.3.2 + diff --git a/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-ia16-ldflags.patch b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-ia16-ldflags.patch new file mode 100644 index 000000000000..f8c05622571c --- /dev/null +++ b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-ia16-ldflags.patch @@ -0,0 +1,44 @@ +Add a @IA16_LDFLAGS_EXTRA@ environment variable +to be able to pass through -no-pie. + +It's a workaround for binutils ld.gold bug: +https://bugs.gentoo.org/618366 +diff --git a/Makefile.conf.in b/Makefile.conf.in +index cd4b34d..cc29931 100644 +--- a/Makefile.conf.in ++++ b/Makefile.conf.in +@@ -55,2 +55,3 @@ ALL_LDFLAGS:=@DOSEMU_LDFLAGS@ ${LDFLAGS} + DOSBIN_LDFLAGS:=@DOSBIN_LDFLAGS@ ++IA16_LDFLAGS_EXTRA:=@IA16_LDFLAGS_EXTRA@ + LIBS:=@LIBS@ +diff --git a/configure.ac b/configure.ac +index 0f06f57..a86208e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -604,2 +604,3 @@ AC_SUBST(X_LIBS) + AC_SUBST(X_CFLAGS) ++AC_SUBST(IA16_LDFLAGS_EXTRA) + +diff --git a/src/commands/Makefile b/src/commands/Makefile +index 3139b85..c5c4607 100644 +--- a/src/commands/Makefile ++++ b/src/commands/Makefile +@@ -56,3 +56,3 @@ dosbin: $(COM1) $(COM2) $(SYS) + $(D)/%.sys: %.o +- $(LD) $(ALL_LDFLAGS) -Wl,-Ttext,0,-e,_start16,--oformat,binary -nostdlib -s -o $@ $< ++ $(LD) $(ALL_LDFLAGS) -Wl,-Ttext,0,-e,_start16,--oformat,binary -nostdlib -s $(IA16_LDFLAGS_EXTRA) -o $@ $< + chmod -x $@ +@@ -60,3 +60,3 @@ $(D)/%.sys: %.o + $(D)/%.com: %.o +- $(LD) $(ALL_LDFLAGS) -Wl,-Ttext,100,-e,_start16,--oformat,binary -nostdlib -s -o $@ $< ++ $(LD) $(ALL_LDFLAGS) -Wl,-Ttext,100,-e,_start16,--oformat,binary -nostdlib -s $(IA16_LDFLAGS_EXTRA) -o $@ $< + chmod -x $@ +diff --git a/src/plugin/commands/Makefile b/src/plugin/commands/Makefile +index 48f49d5..d3a5667 100644 +--- a/src/plugin/commands/Makefile ++++ b/src/plugin/commands/Makefile +@@ -57,3 +57,3 @@ $(STUBFULL): $(D)/generic.com ./mkcomstub + $(D)/%.com: %.o +- $(LD) $(ALL_LDFLAGS) -Wl,-Ttext,0x100,-e,_start16,--oformat,binary -nostdlib -s -o $@ $< ++ $(LD) $(ALL_LDFLAGS) -Wl,-Ttext,0x100,-e,_start16,--oformat,binary -nostdlib -s $(IA16_LDFLAGS_EXTRA) -o $@ $< + chmod -x $@ diff --git a/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-no-glibc.patch b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-no-glibc.patch new file mode 100644 index 000000000000..7c5b8a50a094 --- /dev/null +++ b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-no-glibc.patch @@ -0,0 +1,18 @@ +The check has no AC_MGS_RESULT finish helper +and gets called as + set `` +on gcc-6 which clutters ./configure output. + +One of fallouts of https://bugs.gentoo.org/598798 +diff --git a/configure.ac b/configure.ac +index 34a7f71..0f06f57 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -574,7 +574,2 @@ if test "$GCC" = "yes" ; then + +- AC_MSG_CHECKING(for glibc...) +- set `printf '%b\n' '#include <features.h>\nXXAaZZ __GLIBC__'|${CC-cc} -E -|awk '/XXAaZZ/ {print $2}'` +- if test "$1" = "__GLIBC__"; then +- AC_MSG_ERROR([Sorry, you need glibc.]) +- fi + fi diff --git a/app-emulation/dosemu/metadata.xml b/app-emulation/dosemu/metadata.xml new file mode 100644 index 000000000000..02fe93487b16 --- /dev/null +++ b/app-emulation/dosemu/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>slyfox@gentoo.org</email> + <name>Sergei Trofimovich</name> + </maintainer> + <use> + <flag name="fluidsynth">use <pkg>media-sound/fluidsynth</pkg> for MIDI emulation</flag> + </use> + <upstream> + <remote-id type="sourceforge">dosemu</remote-id> + </upstream> +</pkgmetadata> |