Page MenuHomeFreeBSD

add devel/renpy port
ClosedPublic

Authored by jbeich on Jan 21 2015, 4:58 PM.

Details

Reviewers
bapt
flo
Group Reviewers
games
Commits
rP378363: Add new port devel/renpy
Summary

Add new port devel/renpy

PR: 195768
nReviewed by: games (amdmi3, earlier version)
Approved by: flo (mentor, earlier version)
Approved by: bapt (mentor)

Ren'Py is a visual novel engine that helps you use words, images, and
sounds to tell stories with the computer. These can be both visual
novels and life simulation games. The easy to learn script language
allows you to efficiently write large visual novels, while its Python
scripting is enough for complex simulation games.

WWW: http://www.renpy.org/

Test Plan

poudriere logs are attached to the bug. Otherwise,

$ renpy
<click on Launch Project>
<click Start Game in new window>

If BGM from the tutorial doesn't start playing then something have gone wrong.

Diff Detail

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

Event Timeline

jbeich updated this revision to Diff 3295.Jan 21 2015, 4:58 PM
jbeich retitled this revision from to add devel/renpy port.
jbeich updated this object.
jbeich edited the test plan for this revision. (Show Details)
jbeich added a reviewer: flo.

Asking games if they approve, mainly category directory and CATEGORIES of the port.

jbeich updated this revision to Diff 3318.Jan 22 2015, 7:49 AM

Added additional categories to .desktop file:

Development;Game; -> Development;IDE;Game;AdventureGame;
AMDmi3 added a subscriber: AMDmi3.EditedJan 22 2015, 10:59 AM

Nice! I've been thinking of porting this just recently.

At the first glance:

  • Use RUN/BUILD_DEPENDS=${PYGAME}. For some reason it's defined in python.mk, better use it.
  • Use COPYTREE_SHARE instead of chained TAR's in installation. .orig files may be removed in post-patch if that's needed
  • Better depend on a binary, not a package version (e.g. BUILD_DEPENDS=cython:${PORTSDIR}/lang/cython, same for dejavu

will do more thorough testing now. Categories look good.

jbeich updated this revision to Diff 3325.Jan 22 2015, 1:48 PM

Fixed consistency issues pointed out by @AMDmi3. More poudriere logs:
http://slexy.org/view/s2qO8pc0HN (9.3R i386)
http://slexy.org/view/s2rYSrT7DY (10.0R amd64)
http://slexy.org/view/s21z97TdmP (no -P)

I guess the following is an artifact from USES=python vs. LOCALBASE!=PREFIX.

====>> Error: Files or directories left over:
@dir /prefix
@dir /prefix/renpy-6.18.3
jbeich updated this object.Jan 22 2015, 1:54 PM

Leftovers are probably poudiere problem, it may even be that -P is broken. I have leftover @dir /prefix with any other port.

I've missed another nit: it'd be nice to silence post-extract and post-patch. Otherwise this seems good.

I haven't run this yet, so a question: you list IDE in .desktop categories, does it really fit under that category? And can you confirm it finds systemwide bistream vera without problems?

flo accepted this revision.Jan 22 2015, 7:13 PM
flo edited edge metadata.

Approved, once @AMDmi3's notes are resolved.

This revision is now accepted and ready to land.Jan 22 2015, 7:13 PM
jbeich updated this object.Jan 22 2015, 11:43 PM
jbeich edited edge metadata.
jbeich updated this revision to Diff 3334.Jan 22 2015, 11:47 PM
jbeich edited edge metadata.
In D1577#12, @AMDmi3 wrote:

I've missed another nit: it'd be nice to silence post-extract and
post-patch. Otherwise this seems good.

The approach isn't without disadvantages:

  • if post-extract fails the failed command won't be seen in the logs
  • adding - make(1) command prefix or -f for rm(1) may hide the issue when upstream renames/removes the font files

I haven't run this yet, so a question: you list IDE in .desktop
categories, does it really fit under that category?

No editor but the launcher is close, see

http://www.renpy.org/static/t1000.jpg
http://www.renpy.org/static/6.15.jpg

which I haven't tested enough unlike the engine

                         ERROR
       While creating a new project, an error occured:
  Traceback (most recent call last):
  File "launcher/game/interface.rpy", line 345, in error_handling
    yield
  File "launcher/game/new_project.rpy", line 118, in <module>
    with open(fn, "wb") as f:
IOError: [Errno 13] Permission denied: u'/home/foo/renpy/test/game/options.rpy'

Holding off review to investigate while updating the rest.

http://slexy.org/view/s2sAvDUrgR (9.3R i386)

And can you confirm it finds systemwide bistream vera without
problems?

I did confirm renpy tutorials and D1601 work fine within |poudriere jail -s|.
Not sure how renpy figures out where to find DejaVuSans.ttf without
fontconfig but if I deinstall the font the following happens.

$ renpy
Exception("Could not find font 'DejaVuSans.ttf'.",)

Full traceback:
...

However, there're more bundled fonts:

$ find . -name '*.ttf' | sed 's,.*/,,' | sort -u
DejaVuSans.ttf         # x11-fonts/dejavu, Bitstream & Arev
DroidSansFallback.ttf  # x11-fonts/droid-fonts-ttf, APACHE20
MTLc3m.ttf             # japanese/font-motoya-al, APACHE20
NanumGothic.ttf        # korean/nanumfonts-ttf, OFL11
Quicksand-Bold.ttf     # no port, OFL11
Quicksand-Regular.ttf  # no port, OFL11
Roboto-Light.ttf       # x11-fonts/roboto-fonts-ttf, APACHE20
Roboto-Regular.ttf     # x11-fonts/roboto-fonts-ttf, APACHE20

Better leave systemization for later and just populate LICENSE.

This revision now requires review to proceed.Jan 22 2015, 11:47 PM
jbeich planned changes to this revision.Jan 22 2015, 11:47 PM

The approach isn't without disadvantages:

  • if post-extract fails the failed command won't be seen in the logs
  • adding - make(1) command prefix or -f for rm(1) may hide the issue when upstream renames/removes the font files

Silent extractin and patchin is common practice in ports. There's no real problem as there's only single commands in each target, and failures there are always reproducible. And I do not suggest to add -f to rm, so it'll still fail.

I haven't run this yet, so a question: you list IDE in .desktop
categories, does it really fit under that category?

No editor but the launcher is close, see
http://www.renpy.org/static/t1000.jpg
http://www.renpy.org/static/6.15.jpg

Doesn't look like an IDE for me.

I did confirm renpy tutorials and D1601 work fine within |poudriere jail -s|.
Not sure how renpy figures out where to find DejaVuSans.ttf without
fontconfig but if I deinstall the font the following happens.

$ renpy
Exception("Could not find font 'DejaVuSans.ttf'.",)
Full traceback:
...

Then it's probably fine.

However, there're more bundled fonts:

$ find . -name '*.ttf' | sed 's,.*/,,' | sort -u
DejaVuSans.ttf         # x11-fonts/dejavu, Bitstream & Arev
DroidSansFallback.ttf  # x11-fonts/droid-fonts-ttf, APACHE20
MTLc3m.ttf             # japanese/font-motoya-al, APACHE20
NanumGothic.ttf        # korean/nanumfonts-ttf, OFL11
Quicksand-Bold.ttf     # no port, OFL11
Quicksand-Regular.ttf  # no port, OFL11
Roboto-Light.ttf       # x11-fonts/roboto-fonts-ttf, APACHE20
Roboto-Regular.ttf     # x11-fonts/roboto-fonts-ttf, APACHE20

Better leave systemization for later and just populate LICENSE.

Yep, in this case just using bundled fonts would probably be easier.

jbeich updated this revision to Diff 3423.Jan 25 2015, 8:47 AM
jbeich edited edge metadata.

Refreshed logs:
http://slexy.org/view/s2vOfC9Zqi (10.0R amd64)
http://slexy.org/view/s2Kj3a8GSx (10.0R amd64, inverted options)

In D1577#17, @jbeich wrote:
                         ERROR
       While creating a new project, an error occured:
  Traceback (most recent call last):
  File "launcher/game/interface.rpy", line 345, in error_handling
    yield
  File "launcher/game/new_project.rpy", line 118, in <module>
    with open(fn, "wb") as f:
IOError: [Errno 13] Permission denied: u'/home/foo/renpy/test/game/options.rpy'

Oh, self-inflicted damage. COPYTREE_SHARE by default disables owner
writable bit which led to a side effect of being unable to edit
templates after they were copied with shutil.copytree().

Build distributionsBroken. This launcher command requires SDK tarball with prebuilt RenPy and its dependencies for a trinity of Windows, Mac, Linux. Stuff like lib/windows-i686/dxwebsetup.exe would make LICENSE really murky. As a workaround one can install devel/renpy, then extract the SDK and launch renpy.py from there. Note, OpenBSD ports, PkgSrc, Gentoo, Aur, Debian use only source tarball.
In D1577#21, @AMDmi3 wrote:

I haven't run this yet, so a question: you list IDE in .desktop
categories, does it really fit under that category?

No editor but the launcher is close, see
http://www.renpy.org/static/t1000.jpg
http://www.renpy.org/static/6.15.jpg

Doesn't look like an IDE for me.

OK, changed to Development;Game;AdventureGame;.

jbeich updated this object.Feb 1 2015, 2:25 PM
jbeich added a reviewer: bapt.
jbeich added a comment.Feb 1 2015, 2:39 PM

Game engines (unlike content) may not need to block on games review. I'll wait a few more days and land anyway with:

Reviewed by:	games (amdmi3, earlier version)
Approved by:	flo (mentor, earlier version)
Approved by:	bapt (mentor)
bapt accepted this revision.Feb 1 2015, 3:13 PM
bapt edited edge metadata.
This revision is now accepted and ready to land.Feb 1 2015, 3:13 PM
jbeich closed this revision.Feb 3 2015, 6:43 PM
jbeich updated this revision to Diff 3615.

Closed by commit rP378363 (authored by @jbeich).