Page MenuHomeFreeBSD

add devel/rlvm port
ClosedPublic

Authored by jbeich on Jan 28 2015, 8:09 AM.

Details

Summary

Add new port devel/rlvm

PR: 195964
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/

Testing how far I can swim on mentor approval alone.
Test Plan

poudriere testport logs:
http://slexy.org/view/s2ELgxAkre (8.4R amd64)
http://slexy.org/view/s2tcodQLUe (9.3R i386)
http://slexy.org/view/s2068diqIV (10.0R amd64)
http://slexy.org/view/s20tW0QyQi (10.1R i386)
http://slexy.org/view/s20fjxHhdu (8.4R amd64, inverted options)

And played a game with it:

$ poudriere jail -sj 93i386
$ env -i TERM=$TERM DISPLAY=$DISPLAY /usr/sbin/jexec 93i386-default sh
...
$ rlvm /path/to/Clannad_Eng

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

jbeich retitled this revision from to add devel/rlvm port.Jan 28 2015, 8:09 AM
jbeich updated this object.
jbeich edited the test plan for this revision. (Show Details)
jbeich added a reviewer: bapt.
jbeich updated this revision to Diff 3475.
bapt edited edge metadata.Jan 28 2015, 8:43 AM
bapt accepted this revision.

I also see a .desktop file have you check the port won't need a run dep on desktop-file-utils?
If you add DEVELOPER=yes in your make.conf a bit of QA checks are run after the stage phase they will tell you of you need or not the desktop-file-utils.

Usually it is a good idea to add DEVELOPER=yes in the poudriere's make.conf as well as pkg will become a bit more strict

devel/rlvm/Makefile
35 ↗(On Diff #3475)

This is creative but hey why not :)

40 ↗(On Diff #3475)

This is known to be buggy our ld(1), and every ld(1) (a bit less on newer ld(1)), I will trust you on having tested the final binary making sure it is linked properly to the right libs
In particular what you have to care about is to ensure the link to pthread if any is kept (this is mandatory if the binary dlopen an shared object linked to pthread) also note that this issue have been fixed in head and will be merged soon to 10 if not merged yet

55 ↗(On Diff #3475)

to be exact COMPILER_TYPE is defined in pre.mk when USES are evaluated (COMPILER_TYPE is defined by USES=compiler aka Mk/Uses/compiler.mk

This revision is now accepted and ready to land.Jan 28 2015, 8:43 AM
In D1696#3, @bapt wrote:

I also see a .desktop file have you check the port won't need a run dep on desktop-file-utils?
If you add DEVELOPER=yes in your make.conf a bit of QA checks are run after the stage phase they will tell you of you need or not the desktop-file-utils.
Usually it is a good idea to add DEVELOPER=yes in the poudriere's make.conf as well as pkg will become a bit more strict

Is poudriere testport not enough?

	# We will handle DEVELOPER for testing when appropriate
	if grep -q '^DEVELOPER=' ${dst_makeconf}; then
		msg_warn "DEVELOPER=yes ignored from make.conf. Use 'bulk -t' or 'testport' for testing instead."
		sed -i '' '/^DEVELOPER=/d' ${dst_makeconf}
	fi
devel/rlvm/Makefile
35 ↗(On Diff #3475)

I've borrowed the idea from other ports.

  • devel/gdb
  • textproc/htmldoc
40 ↗(On Diff #3475)

I think you're referring to rS276630 et al. In this case, libpthread satisfies references made by a header from libboost_thread.

$ nm -D =rlvm | fgrep pthread
                 U pthread_mutex_destroy
                 U pthread_mutex_init
                 U pthread_mutex_lock
                 U pthread_mutex_unlock

Otherwise, see TEST PLAN. devel/rlvm doesn't install shared libs, so no need for -Wl,-z,defs.

55 ↗(On Diff #3475)

COMPILER_TYPE is also defined by any Makefile that pulls bsd.own.mk, or via bsd.port.mk. I'm trying to keep XXX in sync with other ports (e.g. security/afl) to ease discovering.

-D_GLIBCXX_USE_C99 should be harmless for clang/libc++, so let's add unconditionally.

jbeich edited edge metadata.Jan 30 2015, 8:15 AM
jbeich updated this revision to Diff 3533.
  • add DOCS to option selection [1]
  • get rid of .pre.mk include [2]
  • expand japanese font selection [1]
  • drop unnecessary g modifier for sed(1)

http://slexy.org/view/s20cCwxIR0 (10.1R i386, DOCS=off, all fonts selected) [1]
http://slexy.org/view/s2TDw9dm6o (8.4R amd64, -D_GLIBCXX_USE_C99 consumer) [2]

$ portlint -AC
WARN: devel/rlvm/pkg-plist: [10]: installing gettext translation files, please define USES[+]=gettext as appropriate
WARN: Makefile: possible use of absolute pathname "/usr/share".
0 fatal errors and 2 warnings found.
This revision now requires review to proceed.Jan 30 2015, 8:15 AM
jbeich edited edge metadata.Jan 30 2015, 8:16 AM
jbeich updated this revision to Diff 3534.

Oops, missed devel/Makefile for --update.

jbeich updated this revision to Diff 3535.Jan 30 2015, 8:31 AM

Oops, s/MULTI/GROUP/ for easier testing but only one font can be used.

const char* ja_platform_fonts[] = {
    // We should prefer fonts that we've verified work over whatever the default
    // system font is.
    "/usr/local/lib/X11/fonts/TrueType/mona.ttf",
    "/usr/local/lib/X11/fonts/TTF/sazanami-gothic.ttf",
    "/usr/local/lib/X11/fonts/TTF/kochi-gothic-subst.ttf",
    "/usr/local/lib/X11/fonts/TTF/kochi-gothic.ttf",
...
    NULL};

http://slexy.org/view/s2CRE6Qd0o (10.1R i386, default = no japanese fonts)

bapt edited edge metadata.Jan 30 2015, 12:13 PM
bapt accepted this revision.
This revision is now accepted and ready to land.Jan 30 2015, 12:13 PM
jbeich closed this revision.Jan 30 2015, 1:20 PM
jbeich updated this revision to Diff 3537.

Closed by commit rP378150 (authored by @jbeich).