Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Jan 2015 13:19:38 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r378150 - in head/devel: . rlvm rlvm/files
Message-ID:  <201501301319.t0UDJchk027710@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Fri Jan 30 13:19:37 2015
New Revision: 378150
URL: https://svnweb.freebsd.org/changeset/ports/378150
QAT: https://qat.redports.org/buildarchive/r378150/

Log:
  Add new port devel/rlvm
  
  PR:		195964
  Differential Revision:	https://reviews.freebsd.org/D1696
  Reviewed by:	bapt
  Approved by:	bapt (mentor)
  
  rlvm is a Free Software reimplementation of VisualArt's KK's RealLive
  interpreter, used in the games Kanon, Air, CLANNAD, Planetarian,
  Tomoyo After and Little Busters, among many others.
  
  WWW: http://www.elliotglaysher.org/rlvm/

Added:
  head/devel/rlvm/
  head/devel/rlvm/Makefile   (contents, props changed)
  head/devel/rlvm/distinfo   (contents, props changed)
  head/devel/rlvm/files/
  head/devel/rlvm/files/extra-patch-disable-nls   (contents, props changed)
  head/devel/rlvm/files/extra-patch-disable-test   (contents, props changed)
  head/devel/rlvm/files/patch-SConscript.luarlvm   (contents, props changed)
  head/devel/rlvm/files/patch-SConstruct   (contents, props changed)
  head/devel/rlvm/files/patch-src_systems_sdl_sdl__graphics__system.cc   (contents, props changed)
  head/devel/rlvm/files/patch-system-test-deps   (contents, props changed)
  head/devel/rlvm/files/patch-test_medium__object__promotion.cc   (contents, props changed)
  head/devel/rlvm/files/patch-vendor_xclannad_wavfile.cc   (contents, props changed)
  head/devel/rlvm/pkg-descr   (contents, props changed)
  head/devel/rlvm/pkg-plist   (contents, props changed)
Modified:
  head/devel/Makefile

Modified: head/devel/Makefile
==============================================================================
--- head/devel/Makefile	Fri Jan 30 12:42:12 2015	(r378149)
+++ head/devel/Makefile	Fri Jan 30 13:19:37 2015	(r378150)
@@ -4265,6 +4265,7 @@
     SUBDIR += replay
     SUBDIR += rhtvision
     SUBDIR += rlog
+    SUBDIR += rlvm
     SUBDIR += rlwrap
     SUBDIR += roboctl
     SUBDIR += robodoc

Added: head/devel/rlvm/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/rlvm/Makefile	Fri Jan 30 13:19:37 2015	(r378150)
@@ -0,0 +1,108 @@
+# $FreeBSD$
+
+PORTNAME=	rlvm
+PORTVERSION=	0.14
+CATEGORIES=	devel games
+
+MAINTAINER=	jbeich@FreeBSD.org
+COMMENT=	RealLive virtual machine clone
+
+LICENSE=	GPLv2 GPLv3 MIT
+LICENSE_COMB=	multi
+
+BUILD_DEPENDS=	${LOCALBASE}/include/utf8.h:${PORTSDIR}/devel/utf8cpp
+LIB_DEPENDS=	libvorbisfile.so:${PORTSDIR}/audio/libvorbis \
+		libboost_serialization.so:${PORTSDIR}/devel/boost-libs \
+		libguichan.so:${PORTSDIR}/devel/guichan \
+		libGLEW.so:${PORTSDIR}/graphics/glew \
+		libjpeg.so:${PORTSDIR}/graphics/jpeg \
+		libpng.so:${PORTSDIR}/graphics/png \
+		libsmpeg.so:${PORTSDIR}/multimedia/smpeg
+RUN_DEPENDS=	${LOCALBASE}/lib/X11/fonts/dejavu/DejaVuSans.ttf:${PORTSDIR}/x11-fonts/dejavu
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	eglaysher
+GH_TAGNAME=	release-${PORTVERSION}
+GH_COMMIT=	b88bfe0
+
+USES=		compiler:c++11-lib pkgconfig scons
+USE_GL=		yes
+USE_GNOME=	gtk20
+USE_SDL=	image mixer ttf
+EXCLUDE=	GLEW SDL_image SDL_mixer SDL_ttf gmock gtest guichan \
+		luabind utf8cpp # leaving only pygame, xclannad, *.cpp
+EXTRACT_AFTER_ARGS=${EXCLUDE:S,^,--exclude vendor/,}
+MAKE_ARGS=	VERBOSE=1
+INSTALLS_ICONS=	yes
+PORTDOCS=	AUTHORS.TXT NEWS.TXT README.md STATUS.TXT notes
+
+CFLAGS+=	-D_GLIBCXX_USE_C99 # XXX ports/193528
+LDFLAGS+=	-Wl,--as-needed # avoid overlinking (gtk deps)
+
+OPTIONS_DEFINE=	DEBUG DOCS NLS TEST
+OPTIONS_GROUP=	JAPANESE_FONT
+OPTIONS_GROUP_JAPANESE_FONT=KOCHI MONA SAZANAMI
+OPTIONS_SUB=	yes
+
+JAPANESE_FONT_DESC=msgothic.ttc alternatives with verified metrics (unless --font)
+KOCHI_DESC=	kochi-gothic-subst.ttf from japanese/font-kochi
+KOCHI_RUN_DEPENDS=${LOCALBASE}/lib/X11/fonts/TTF/kochi-gothic-subst.ttf:${PORTSDIR}/japanese/font-kochi
+MONA_DESC=	mona.ttf from japanese/monafonts-ttf
+MONA_RUN_DEPENDS=${LOCALBASE}/lib/X11/fonts/TrueType/mona.ttf:${PORTSDIR}/japanese/monafonts-ttf
+SAZANAMI_DESC=	sazanami-gothic.ttf from japanese/font-sazanami
+SAZANAMI_RUN_DEPENDS=${LOCALBASE}/lib/X11/fonts/TTF/sazanami-gothic.ttf:${PORTSDIR}/japanese/font-sazanami
+
+DEBUG_MAKE_ARGS_OFF=--release
+NLS_USES=	gettext
+NLS_EXTRA_PATCHES_OFF=${FILESDIR}/extra-patch-disable-nls
+TEST_USES=	lua:51
+TEST_BUILD_DEPENDS=googletest>=1.7.0:${PORTSDIR}/devel/googletest \
+		googlemock>=1.7.0:${PORTSDIR}/devel/googlemock \
+		luabind>0:${PORTSDIR}/devel/luabind
+TEST_EXTRA_PATCHES_OFF=${FILESDIR}/extra-patch-disable-test
+
+.include <bsd.port.options.mk>
+
+post-patch:
+	@${GREP} -Flr 'utf8cpp/' ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} \
+		-i .bak.utf8cpp -e 's,utf8cpp/,,'
+# Default to TTF/ subdir where japanese/ fonts are often installed
+	@${GREP} -Flr '/usr/share' ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} \
+		-i .bak.paths \
+		-e 's,/usr/share,${PREFIX}/share,' \
+		-e 's,share/fonts,lib/X11/fonts,' \
+		-e 's,truetype/ttf-dejavu,dejavu,' \
+		-e 's,truetype/mona,TrueType,' \
+		-e 's,truetype/[^/"]*,TTF,'
+
+pre-install:
+.if ${PORT_OPTIONS:MTEST}
+	(cd ${WRKSRC} && build/${PORTNAME}_unittests)
+.endif
+
+do-install:
+	${INSTALL_PROGRAM} ${WRKSRC}/build/${PORTNAME} \
+		${STAGEDIR}${PREFIX}/bin
+	${INSTALL_MAN} ${WRKSRC}/debian/${PORTNAME}.6 \
+		${STAGEDIR}${MAN6PREFIX}/man/man6
+	${INSTALL_DATA} ${WRKSRC}/src/platforms/gtk/${PORTNAME}.desktop \
+		${STAGEDIR}${DESKTOPDIR}
+	@(cd ${WRKSRC}/resources && for f in */${PORTNAME}.png; do \
+		${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/$${f%/*}x$${f%/*}/apps; \
+		${INSTALL_DATA} -v $$f \
+			${STAGEDIR}${PREFIX}/share/icons/hicolor/$${f%/*}x$${f%/*}/apps; \
+	done)
+.if ${PORT_OPTIONS:MNLS}
+	(cd ${WRKSRC}/build/locale && ${COPYTREE_SHARE} \
+		. ${STAGEDIR}${PREFIX}/share/locale)
+.endif
+.if ${PORT_OPTIONS:MDOCS}
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+. for f in ${PORTDOCS:Nnotes}
+	${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR}
+. endfor
+	(cd ${WRKSRC}/doc && ${COPYTREE_SHARE} \
+		notes ${STAGEDIR}${DOCSDIR})
+.endif
+
+.include <bsd.port.mk>

Added: head/devel/rlvm/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/rlvm/distinfo	Fri Jan 30 13:19:37 2015	(r378150)
@@ -0,0 +1,2 @@
+SHA256 (rlvm-0.14.tar.gz) = a50a22016cbf87b0ed4d26a14e687c4540b01a2cf836a7f1471c0a9b50ebd8d5
+SIZE (rlvm-0.14.tar.gz) = 1933830

Added: head/devel/rlvm/files/extra-patch-disable-nls
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/rlvm/files/extra-patch-disable-nls	Fri Jan 30 13:19:37 2015	(r378150)
@@ -0,0 +1,22 @@
+--- SConstruct~
++++ SConstruct
+@@ -38,9 +38,6 @@ env = Environment(
+   CPPDEFINES = [
+     "HAVE_CONFIG_H",
+ 
+-    # We use gettext for translations.
+-    "ENABLE_NLS",
+-
+     # This prevents conflicts between SDL and GLEW. I shouldn't have to do
+     # this, but the SDL_opengl.h and glew.h differ in const correctness...
+     "NO_SDL_GLEXT"
+@@ -410,9 +407,3 @@ if GetOption("coverage"):
+                  variant_dir="$BUILD_DIR/",
+                  duplicate=0,
+                  exports='env')
+-
+-# In addition to all that, we also want to build the translation files.
+-env.Command("build/locale/ja/LC_MESSAGES/rlvm.mo",
+-            "po/ja.po",
+-            ["mkdir -p build/locale/ja/LC_MESSAGES/",
+-             "msgfmt -o build/locale/ja/LC_MESSAGES/rlvm.mo po/ja.po"])

Added: head/devel/rlvm/files/extra-patch-disable-test
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/rlvm/files/extra-patch-disable-test	Fri Jan 30 13:19:37 2015	(r378150)
@@ -0,0 +1,27 @@
+--- SConstruct~
++++ SConstruct
+@@ -387,24 +387,6 @@ else:
+                  duplicate=0,
+                  exports='env')
+ 
+-# Copy the platform independent SEEN.TXT files to output (we no longer depend
+-# on rldev because I can no longer reliably compile it).
+-env.SConscript("test/SConscript.rlc",
+-               variant_dir="build/test",
+-               duplicate=0,
+-               exports='env')
+-
+-# Build the rlvmTests binary that uses those SEEN.TXT files.
+-env.SConscript("SConscript.test",
+-               variant_dir="$BUILD_DIR/",
+-               duplicate=0,
+-               exports='env')
+-
+-env.SConscript("SConscript.luarlvm",
+-               variant_dir="$BUILD_DIR/",
+-               duplicate=0,
+-               exports='env')
+-
+ if GetOption("coverage"):
+   env.SConscript("SConscript.coverage",
+                  variant_dir="$BUILD_DIR/",

Added: head/devel/rlvm/files/patch-SConscript.luarlvm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/rlvm/files/patch-SConscript.luarlvm	Fri Jan 30 13:19:37 2015	(r378150)
@@ -0,0 +1,20 @@
+--- SConscript.luarlvm~
++++ SConscript.luarlvm
+@@ -31,7 +31,7 @@ config = test_env.Configure()
+ # Building the luaRlvm test harness requires having lua installed; if we do
+ # have lua installed, go ahead and use it, but don't really worry if this fails
+ # since end users don't use this binary.
+-if config.CheckLibWithHeader('lua5.1', 'lua5.1/lua.h', 'cpp'):
++if config.CheckLibWithHeader('lua-5.1', 'lua51/lua.h', 'cpp'):
+   env['BUILD_LUA_TESTS'] = True
+ else:
+   print "Not building luaRlvm. (Don't worry, it's only a testing tool!)"
+@@ -50,7 +50,7 @@ script_machine_files = [
+ ]
+ 
+ if env['BUILD_LUA_TESTS'] == True:
+-  test_env.Append(CPPPATH = [ "/usr/include/lua5.1" ] )
++  test_env.Append(CPPPATH = [ env['ENV']['LUA_INCDIR'] ] )
+ 
+   # Build our included copy of luabind.
+   test_env.BuildSubcomponent("luabind")

Added: head/devel/rlvm/files/patch-SConstruct
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/rlvm/files/patch-SConstruct	Fri Jan 30 13:19:37 2015	(r378150)
@@ -0,0 +1,81 @@
+--- SConstruct~
++++ SConstruct
+@@ -19,7 +19,12 @@ AddOption('--fullstatic', action='store_
+ 
+ # Set libraries used by all configurations and all binaries in rlvm.
+ env = Environment(
++  ENV=os.environ,
+   tools = ["default", "rlvm"],
++  **dict((k, v.split()) for k, v in ARGUMENTS.iteritems())
++)
++
++env.Append(
+ 
+   LIBS = ["z"],
+ 
+@@ -87,13 +91,6 @@ else:
+ if GetOption("fullstatic"):
+   env["FULL_STATIC_BUILD"] = True
+ 
+-# Auto select the number of processors
+-if os.path.exists('/proc'):
+-  cpus = len([l for l in open('/proc/cpuinfo') if l.startswith('processor\t')])
+-else:
+-  cpus = 1
+-env.SetOption('num_jobs', cpus + 1)
+-
+ # Use timestamps change, followed by MD5 for speed
+ env.Decider('MD5-timestamp')
+ 
+@@ -277,11 +274,15 @@ if not config.CheckGuichan():
+   print "(Using included copy of guichan)"
+   subcomponents.append("guichan")
+ 
++# Get the configuration from sdl and freetype
++env.ParseConfig("sdl-config --cflags")
++env.ParseConfig("freetype-config --cflags --libs")
++
+ # Really optional libraries that jagarl's file loaders take advantage of if on
+ # the system.
+ config.CheckLibWithHeader('png', 'png.h', "cpp")
+-config.CheckLibWithHeader('jpeg', 'jpeglib.h', "cpp")
+-config.CheckLibWithHeader('mad', 'mad.h', "cpp")
++config.CheckLibWithHeader('jpeg', 'jconfig.h', "cpp")
++config.CheckLibWithHeader('smpeg', 'smpeg/smpeg.h', "cpp")
+ 
+ env = config.Finish()
+ 
+@@ -291,10 +292,6 @@ env = config.Finish()
+ if env['PLATFORM'] == 'darwin':
+   env.Append(LIBS=["SDL", "intl", "iconv"])
+ 
+-# Get the configuration from sdl and freetype
+-env.ParseConfig("sdl-config --cflags")
+-env.ParseConfig("freetype-config --cflags --libs")
+-
+ #########################################################################
+ ## Building subcomponent functions
+ #########################################################################
+@@ -314,7 +311,6 @@ if GetOption('release'):
+   # Now add release optimizations to the environment
+   env.Append(
+     CPPFLAGS = [
+-      "-Os",
+       "-DNDEBUG",
+       "-DBOOST_DISABLE_ASSERTS"
+     ]
+@@ -360,13 +356,7 @@ elif GetOption('pprof'):
+              "profiler"]
+   )
+ else:
+-  # Add debugging flags to all binaries here
+-  env.Append(
+-    CPPFLAGS = [
+-      "-g",
+-      "-O0"
+-    ]
+-  )
++  pass
+ 
+ # Cross platform core of rlvm. Produces librlvm.a and libsystem_sdl.a
+ env.SConscript("SConscript",

Added: head/devel/rlvm/files/patch-src_systems_sdl_sdl__graphics__system.cc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/rlvm/files/patch-src_systems_sdl_sdl__graphics__system.cc	Fri Jan 30 13:19:37 2015	(r378150)
@@ -0,0 +1,20 @@
+--- src/systems/sdl/sdl_graphics_system.cc~
++++ src/systems/sdl/sdl_graphics_system.cc
+@@ -32,7 +32,7 @@
+ #include <SDL/SDL.h>
+ #include <SDL/SDL_opengl.h>
+ 
+-#if defined(__linux__)
++#if !defined(__APPLE__)
+ #include <SDL/SDL_image.h>
+ #endif
+ 
+@@ -244,7 +244,7 @@ SDLGraphicsSystem::SDLGraphicsSystem(Sys
+ 
+   SetWindowTitle();
+ 
+-#if defined(__linux__)
++#if !defined(__APPLE__)
+   // We only set the icon on linux because OSX will use the icns file
+   // automatically and this doesn't look too awesome.
+   SDL_Surface* icon = IMG_Load("/usr/share/icons/hicolor/48x48/apps/rlvm.png");

Added: head/devel/rlvm/files/patch-system-test-deps
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/rlvm/files/patch-system-test-deps	Fri Jan 30 13:19:37 2015	(r378150)
@@ -0,0 +1,24 @@
+--- SConscript.luarlvm~
++++ SConscript.luarlvm
+@@ -52,8 +52,7 @@ script_machine_files = [
+ if env['BUILD_LUA_TESTS'] == True:
+   test_env.Append(CPPPATH = [ env['ENV']['LUA_INCDIR'] ] )
+ 
+-  # Build our included copy of luabind.
+-  test_env.BuildSubcomponent("luabind")
++  test_env.Append(LIBS = ["luabind"])
+ 
+   test_env.RlvmProgram("lua_rlvm", ['test/lua_rlvm.cc', script_machine_files],
+                        use_lib_set = ["SDL", "LUA"],
+--- SConscript.test~
++++ SConscript.test
+@@ -23,8 +23,7 @@ test_env.Append(CPPPATH = ["#/test"])
+ # We need to build gtest/gmock always. Downstream distributors: if you comment
+ # this out and add a ParseConfig, make sure to do it here in |test_env| instead
+ # of one of the environments that could link gtest into the main rlvm binary.
+-test_env.BuildSubcomponent("gtest")
+-test_env.BuildSubcomponent("gmock")
++test_env.Append(LIBS = ["gtest", "gmock"])
+ 
+ test_case_files = [
+   "test/test_system/test_machine.cc",

Added: head/devel/rlvm/files/patch-test_medium__object__promotion.cc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/rlvm/files/patch-test_medium__object__promotion.cc	Fri Jan 30 13:19:37 2015	(r378150)
@@ -0,0 +1,19 @@
+To workaround the following error
+
+  unknown file: Failure
+  C++ exception with description "ExpressionPiece::GetStringValue() invalid on this object" thrown in the test body.
+  [  FAILED  ] MediumObjectPoromotion/PromotionTest.BgLayerPromotion/49, where GetParam() = ("recMulti", 1, (3, "\"file\"$\xFF\0\0\0\0$\xFF\xFF\0\0\0"), true) (1 ms)
+
+--- test/medium_object_promotion.cc~
++++ test/medium_object_promotion.cc
+@@ -246,10 +246,6 @@ std::vector<PromotionData> data = {
+                     0,
+                     TestMachine::Arg("file", 0),
+                     SHOULD_PROMOTE_BG),
+-    std::make_tuple("recMulti",
+-                    1,
+-                    TestMachine::Arg("file", 0, 255),
+-                    SHOULD_PROMOTE_BG),
+     std::make_tuple("grpOpen",
+                     0,
+                     TestMachine::Arg("file", 0),

Added: head/devel/rlvm/files/patch-vendor_xclannad_wavfile.cc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/rlvm/files/patch-vendor_xclannad_wavfile.cc	Fri Jan 30 13:19:37 2015	(r378150)
@@ -0,0 +1,22 @@
+--- vendor/xclannad/wavfile.cc~
++++ vendor/xclannad/wavfile.cc
+@@ -23,6 +23,10 @@
+  *
+ */
+ 
++#ifdef HAVE_CONFIG_H
++#  include "config.h"
++#endif
++
+ #include        <stdarg.h>
+ #include  	<stdio.h>
+ #include  	<stdlib.h>
+@@ -738,7 +742,7 @@ void MP3FILE::Seek(int count) {
+ 	} while(pimpl->status != MP3FILE_impl::DONE && pimpl->write_pointer < pimpl->write_data_len);
+ 	return;
+ }
+-#elif USE_SMPEG
++#elif HAVE_LIBSMPEG
+ #include<smpeg/smpeg.h>
+ 
+ struct MP3FILE_impl {

Added: head/devel/rlvm/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/rlvm/pkg-descr	Fri Jan 30 13:19:37 2015	(r378150)
@@ -0,0 +1,5 @@
+rlvm is a Free Software reimplementation of VisualArt's KK's RealLive
+interpreter, used in the games Kanon, Air, CLANNAD, Planetarian,
+Tomoyo After and Little Busters, among many others.
+
+WWW: http://www.elliotglaysher.org/rlvm/

Added: head/devel/rlvm/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/rlvm/pkg-plist	Fri Jan 30 13:19:37 2015	(r378150)
@@ -0,0 +1,10 @@
+bin/rlvm
+man/man6/rlvm.6.gz
+share/applications/rlvm.desktop
+share/icons/hicolor/128x128/apps/rlvm.png
+share/icons/hicolor/16x16/apps/rlvm.png
+share/icons/hicolor/24x24/apps/rlvm.png
+share/icons/hicolor/256x256/apps/rlvm.png
+share/icons/hicolor/32x32/apps/rlvm.png
+share/icons/hicolor/48x48/apps/rlvm.png
+%%NLS%%share/locale/ja/LC_MESSAGES/rlvm.mo



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201501301319.t0UDJchk027710>