New port: arx-libertatis

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

New port: arx-libertatis

Thomas Frohwein
Hi,

Attached is a port of Arx Libertatis, an open source port of the engine for the
first-person role-playing game Arx Fatalis by Arkane Studios.

From Wikipedia:

Arx Fatalis (Latin for "fatal fortress") is set on a world whose sun has failed,
forcing the above-ground creatures to take refuge in subterranean caverns. The
action in Arx Fatalis takes place in one of these large caves, where inhabitants
from all races such as Trolls, Goblins, Dwarves, Humans, etc. have made their
homes on various levels of the cave. The player awakens inside a prison cell
and, after making his escape, eventually discovers his mission is to subvert and
imprison the God of Destruction, Akbaa, who is trying to manifest itself in Arx.

Some comments on the port:

- compilation with proper data/user/config dirs is flawed and never worked in
  any acceptable way, which is why the port now has a wrapper script that
  passes them as command line arguments
- portcheck and make port-lib-depends pass
- runs with the gog.com version after fixing the case of some filenames.
- Instructions where to put game files and adjust case are in README
- advice and fixes from bcallah@

arx-libertatis.tgz (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: New port: arx-libertatis

Jonathan Gray-11
On Sat, Mar 03, 2018 at 05:26:33PM -0800, Thomas Frohwein wrote:

> Hi,
>
> Attached is a port of Arx Libertatis, an open source port of the engine for the
> first-person role-playing game Arx Fatalis by Arkane Studios.
>
> >From Wikipedia:
>
> Arx Fatalis (Latin for "fatal fortress") is set on a world whose sun has failed,
> forcing the above-ground creatures to take refuge in subterranean caverns. The
> action in Arx Fatalis takes place in one of these large caves, where inhabitants
> from all races such as Trolls, Goblins, Dwarves, Humans, etc. have made their
> homes on various levels of the cave. The player awakens inside a prison cell
> and, after making his escape, eventually discovers his mission is to subvert and
> imprison the God of Destruction, Akbaa, who is trying to manifest itself in Arx.
>
> Some comments on the port:
>
> - compilation with proper data/user/config dirs is flawed and never worked in
>   any acceptable way, which is why the port now has a wrapper script that
>   passes them as command line arguments
> - portcheck and make port-lib-depends pass
> - runs with the gog.com version after fixing the case of some filenames.
> - Instructions where to put game files and adjust case are in README
> - advice and fixes from bcallah@

This doesn't build here

Create /usr/ports/packages/amd64/all/ArxLibertatis-1.1.2-r1.tgz
Creating package ArxLibertatis-1.1.2-r1
checksumming|***********************************                          | 57%
Error: /usr/ports/pobj/ArxLibertatis-1.1.2-r1/fake-amd64/usr/local/%D/bin/update-desktop-database does not exist
Error: /usr/ports/pobj/ArxLibertatis-1.1.2-r1/fake-amd64/usr/local/%D/bin/update-desktop-database does not exist
Error: duplicate item in packing-list /usr/local/%D/bin/update-desktop-database
Fatal error: can't continue

The README would be better linking to
http://wiki.arx-libertatis.org/Getting_the_game_data
as that also covers getting the data from steam and the demo.

Could you explain why you are using ~/.local/share/arx/datadir ?
Shouldn't this rather be $PREFIX/share/arx/datadir

http://wiki.arx-libertatis.org/Data_directories
states that the datadir is read-only and gives defaults outside
of home directories.

Reply | Threaded
Open this post in threaded view
|

Re: New port: arx-libertatis

Thomas Frohwein
On Sun, Mar 04, 2018 at 02:10:53PM +1100, Jonathan Gray wrote:
> This doesn't build here
>
> Create /usr/ports/packages/amd64/all/ArxLibertatis-1.1.2-r1.tgz
> Creating package ArxLibertatis-1.1.2-r1
> checksumming|***********************************                          | 57%
> Error: /usr/ports/pobj/ArxLibertatis-1.1.2-r1/fake-amd64/usr/local/%D/bin/update-desktop-database does not exist
> Error: /usr/ports/pobj/ArxLibertatis-1.1.2-r1/fake-amd64/usr/local/%D/bin/update-desktop-database does not exist
> Error: duplicate item in packing-list /usr/local/%D/bin/update-desktop-database
> Fatal error: can't continue

My bad, I misinterpreted a portcheck message. After updating PLIST this is gone
on my testing and builds fine again.

> The README would be better linking to
> http://wiki.arx-libertatis.org/Getting_the_game_data
> as that also covers getting the data from steam and the demo.

Actually this page here got more detailed and pertinent instructions IMO:

http://wiki.arx-libertatis.org/Installing_the_game_data_under_Linux

I linked to it in the README. Turns out that data can be either in datadir or
the userdir (see bottom of the linked webpage) per ustream instructions. README
now mentions both alternatives.

Is there a preferred location for read-only game data? I know that some of the
games in our ports put their data in ~/.local/share, like openjk, openxcom...

>
> Could you explain why you are using ~/.local/share/arx/datadir ?
> Shouldn't this rather be $PREFIX/share/arx/datadir
>
> http://wiki.arx-libertatis.org/Data_directories
> states that the datadir is read-only and gives defaults outside
> of home directories.

see above

Updated tarball attached.

arx-libertatis.tgz (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: New port: arx-libertatis

Jonathan Gray-11
On Sat, Mar 03, 2018 at 08:06:46PM -0800, Thomas Frohwein wrote:

> On Sun, Mar 04, 2018 at 02:10:53PM +1100, Jonathan Gray wrote:
> > This doesn't build here
> >
> > Create /usr/ports/packages/amd64/all/ArxLibertatis-1.1.2-r1.tgz
> > Creating package ArxLibertatis-1.1.2-r1
> > checksumming|***********************************                          | 57%
> > Error: /usr/ports/pobj/ArxLibertatis-1.1.2-r1/fake-amd64/usr/local/%D/bin/update-desktop-database does not exist
> > Error: /usr/ports/pobj/ArxLibertatis-1.1.2-r1/fake-amd64/usr/local/%D/bin/update-desktop-database does not exist
> > Error: duplicate item in packing-list /usr/local/%D/bin/update-desktop-database
> > Fatal error: can't continue
>
> My bad, I misinterpreted a portcheck message. After updating PLIST this is gone
> on my testing and builds fine again.

Builds here.  Though I suspect the package name 'ArxLibertatis' should
match the port directory name 'arx-libertatis'.

The package should also not include a hyphen in the version string as
that will confuse the package tools when doing comparisons.

1.1.2-r1 may map to 1.1.2pl1 (1.1.2 patch level 1) if I read
packages-specs(7) correctly as there was a 1.1.2 release prior to r1.

>
> > The README would be better linking to
> > http://wiki.arx-libertatis.org/Getting_the_game_data
> > as that also covers getting the data from steam and the demo.
>
> Actually this page here got more detailed and pertinent instructions IMO:
>
> http://wiki.arx-libertatis.org/Installing_the_game_data_under_Linux
>
> I linked to it in the README. Turns out that data can be either in datadir or
> the userdir (see bottom of the linked webpage) per ustream instructions. README
> now mentions both alternatives.
>
> Is there a preferred location for read-only game data? I know that some of the
> games in our ports put their data in ~/.local/share, like openjk, openxcom...

$PREFIX/share/game/ is what I'd expect.  At least with quake games
they tend to look in multiple places ~/ first then a shared directory.

>
> >
> > Could you explain why you are using ~/.local/share/arx/datadir ?
> > Shouldn't this rather be $PREFIX/share/arx/datadir
> >
> > http://wiki.arx-libertatis.org/Data_directories
> > states that the datadir is read-only and gives defaults outside
> > of home directories.
>
> see above
>
> Updated tarball attached.

The manual page is not installed into the right place.

$ man arx
man: No entry for arx in the manual.

The arx-install-data script the installing under linux page references
isn't installed into $PREFIX/bin not sure if that is desirable.
Same with arxsavetool/arxunpak.

Reply | Threaded
Open this post in threaded view
|

Re: New port: arx-libertatis

Thomas Frohwein
On Sun, Mar 04, 2018 at 05:31:31PM +1100, Jonathan Gray wrote:
> 1.1.2-r1 may map to 1.1.2pl1 (1.1.2 patch level 1) if I read
> packages-specs(7) correctly as there was a 1.1.2 release prior to r1.

I looked through packages. There are a few packages with pl0 (apvlv,
inotify-tools, and xarchiver) and since we also start with v0 and p0, I set this
to arx-libertatis-1.1.2pl0.

> The manual page is not installed into the right place.

Now the man pages are in the right place. I set up a do-install target and now
everything should be in the right place. The arx-install-data script runs
(but not with '--gui' which IMO is expendable).

I reinstalled it with the arx-install-data tool from gog.com and it works, so
I adjusted the readme to refer to this script

I updated PLIST again because update-desktop-database should really be in
there AFAIU. Not sure if the @cwd /usr/local is needed, but it seemed safer to
put it in there. Built it again and ran it without any issues.

> The arx-install-data script the installing under linux page references
> isn't installed into $PREFIX/bin not sure if that is desirable.

Installed it there and it works. See above.

> Same with arxsavetool/arxunpak.

I tested both (arxsavetool only with the 'view' action) and they work so I
added them to $PREFIX/bin

arx-libertatis.tgz (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: New port: arx-libertatis

Stuart Henderson
On 2018/03/04 11:05, Thomas Frohwein wrote:
> On Sun, Mar 04, 2018 at 05:31:31PM +1100, Jonathan Gray wrote:
> > 1.1.2-r1 may map to 1.1.2pl1 (1.1.2 patch level 1) if I read
> > packages-specs(7) correctly as there was a 1.1.2 release prior to r1.
>
> I looked through packages. There are a few packages with pl0 (apvlv,
> inotify-tools, and xarchiver) and since we also start with v0 and p0, I set this
> to arx-libertatis-1.1.2pl0.

the number after pl usually maps directly to something from upstream,
I'd go for:

GH_ACCOUNT =    arx
GH_PROJECT =    ArxLibertatis
GH_TAGNAME =    1.1.2-r1
PKGNAME = arx-libertatis-${GH_TAGNAME:S/-r/pl/}

> I updated PLIST again because update-desktop-database should really be in
> there AFAIU. Not sure if the @cwd /usr/local is needed, but it seemed safer to
> put it in there. Built it again and ran it without any issues.

@cwd does nothing here. It's used for rare cases where you have some
files under one PREFIX and other files under another directory in the same
package (most common for files installed to /var/www where there's also
a pkg-readme file).

: -option(USE_QT4 "Use Qt 4 if available" ON)
: +option(USE_QT4 "Use Qt 4 if available" OFF)

CONFIGURE_ARGS= -DUSE_QT4=OFF

Reply | Threaded
Open this post in threaded view
|

Re: New port: arx-libertatis

Marc Espie-2
On Mon, Mar 05, 2018 at 08:53:05AM +0000, Stuart Henderson wrote:

> On 2018/03/04 11:05, Thomas Frohwein wrote:
> > On Sun, Mar 04, 2018 at 05:31:31PM +1100, Jonathan Gray wrote:
> > > 1.1.2-r1 may map to 1.1.2pl1 (1.1.2 patch level 1) if I read
> > > packages-specs(7) correctly as there was a 1.1.2 release prior to r1.
> >
> > I looked through packages. There are a few packages with pl0 (apvlv,
> > inotify-tools, and xarchiver) and since we also start with v0 and p0, I set this
> > to arx-libertatis-1.1.2pl0.
>
> the number after pl usually maps directly to something from upstream,
> I'd go for:

See packages-specs(7)

version knows how to handle standard suffixes rcN, betaN, preN, plN
with the usual upstream semantics (release candidate, beta, pre-release,
patch-level)

As opposed to EPOCH and REVISION, which map to pN vN and are specific to
OpenBSD.

Reply | Threaded
Open this post in threaded view
|

Re: New port: arx-libertatis

Thomas Frohwein
In reply to this post by Stuart Henderson
Thanks Stuart and Marc - I adjusted the port based on your comments.
pl0 -> pl1, CONFIGURE_ARGS+= -DUSE_QT4=OFF, @cwd is gone

New version attached.

On Mon, Mar 05, 2018 at 08:53:05AM +0000, Stuart Henderson wrote:

> On 2018/03/04 11:05, Thomas Frohwein wrote:
> > On Sun, Mar 04, 2018 at 05:31:31PM +1100, Jonathan Gray wrote:
> > > 1.1.2-r1 may map to 1.1.2pl1 (1.1.2 patch level 1) if I read
> > > packages-specs(7) correctly as there was a 1.1.2 release prior to r1.
> >
> > I looked through packages. There are a few packages with pl0 (apvlv,
> > inotify-tools, and xarchiver) and since we also start with v0 and p0, I set this
> > to arx-libertatis-1.1.2pl0.
>
> the number after pl usually maps directly to something from upstream,
> I'd go for:
>
> GH_ACCOUNT =    arx
> GH_PROJECT =    ArxLibertatis
> GH_TAGNAME =    1.1.2-r1
> PKGNAME = arx-libertatis-${GH_TAGNAME:S/-r/pl/}
>
> > I updated PLIST again because update-desktop-database should really be in
> > there AFAIU. Not sure if the @cwd /usr/local is needed, but it seemed safer to
> > put it in there. Built it again and ran it without any issues.
>
> @cwd does nothing here. It's used for rare cases where you have some
> files under one PREFIX and other files under another directory in the same
> package (most common for files installed to /var/www where there's also
> a pkg-readme file).
>
> : -option(USE_QT4 "Use Qt 4 if available" ON)
> : +option(USE_QT4 "Use Qt 4 if available" OFF)
>
> CONFIGURE_ARGS= -DUSE_QT4=OFF
>

arx-libertatis.tgz (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: New port: arx-libertatis

Thomas Frohwein-2
ping

same port as 1.5 months ago, except that I also set -DUSE_QT5=OFF.
Still compiles and runs.

On Sat, Mar 10, 2018 at 10:50:03AM -0800, Thomas Frohwein wrote:

> Thanks Stuart and Marc - I adjusted the port based on your comments.
> pl0 -> pl1, CONFIGURE_ARGS+= -DUSE_QT4=OFF, @cwd is gone
>
> New version attached.
>
> On Mon, Mar 05, 2018 at 08:53:05AM +0000, Stuart Henderson wrote:
> > On 2018/03/04 11:05, Thomas Frohwein wrote:
> > > On Sun, Mar 04, 2018 at 05:31:31PM +1100, Jonathan Gray wrote:
> > > > 1.1.2-r1 may map to 1.1.2pl1 (1.1.2 patch level 1) if I read
> > > > packages-specs(7) correctly as there was a 1.1.2 release prior to r1.
> > >
> > > I looked through packages. There are a few packages with pl0 (apvlv,
> > > inotify-tools, and xarchiver) and since we also start with v0 and p0, I set this
> > > to arx-libertatis-1.1.2pl0.
> >
> > the number after pl usually maps directly to something from upstream,
> > I'd go for:
> >
> > GH_ACCOUNT =    arx
> > GH_PROJECT =    ArxLibertatis
> > GH_TAGNAME =    1.1.2-r1
> > PKGNAME = arx-libertatis-${GH_TAGNAME:S/-r/pl/}
> >
> > > I updated PLIST again because update-desktop-database should really be in
> > > there AFAIU. Not sure if the @cwd /usr/local is needed, but it seemed safer to
> > > put it in there. Built it again and ran it without any issues.
> >
> > @cwd does nothing here. It's used for rare cases where you have some
> > files under one PREFIX and other files under another directory in the same
> > package (most common for files installed to /var/www where there's also
> > a pkg-readme file).
> >
> > : -option(USE_QT4 "Use Qt 4 if available" ON)
> > : +option(USE_QT4 "Use Qt 4 if available" OFF)
> >
> > CONFIGURE_ARGS= -DUSE_QT4=OFF
> >


arx-libertatis.tgz (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: New port: arx-libertatis

Brian Callahan-3

On 04/26/18 21:46, Thomas Frohwein wrote:
> ping
>
> same port as 1.5 months ago, except that I also set -DUSE_QT5=OFF.
> Still compiles and runs.

It's missing NO_TEST=Yes but otherwise I'm happy with this.
ok for me to import, or will take oks for import.

~Brian

> On Sat, Mar 10, 2018 at 10:50:03AM -0800, Thomas Frohwein wrote:
>> Thanks Stuart and Marc - I adjusted the port based on your comments.
>> pl0 -> pl1, CONFIGURE_ARGS+= -DUSE_QT4=OFF, @cwd is gone
>>
>> New version attached.
>>
>> On Mon, Mar 05, 2018 at 08:53:05AM +0000, Stuart Henderson wrote:
>>> On 2018/03/04 11:05, Thomas Frohwein wrote:
>>>> On Sun, Mar 04, 2018 at 05:31:31PM +1100, Jonathan Gray wrote:
>>>>> 1.1.2-r1 may map to 1.1.2pl1 (1.1.2 patch level 1) if I read
>>>>> packages-specs(7) correctly as there was a 1.1.2 release prior to r1.
>>>> I looked through packages. There are a few packages with pl0 (apvlv,
>>>> inotify-tools, and xarchiver) and since we also start with v0 and p0, I set this
>>>> to arx-libertatis-1.1.2pl0.
>>> the number after pl usually maps directly to something from upstream,
>>> I'd go for:
>>>
>>> GH_ACCOUNT =    arx
>>> GH_PROJECT =    ArxLibertatis
>>> GH_TAGNAME =    1.1.2-r1
>>> PKGNAME = arx-libertatis-${GH_TAGNAME:S/-r/pl/}
>>>
>>>> I updated PLIST again because update-desktop-database should really be in
>>>> there AFAIU. Not sure if the @cwd /usr/local is needed, but it seemed safer to
>>>> put it in there. Built it again and ran it without any issues.
>>> @cwd does nothing here. It's used for rare cases where you have some
>>> files under one PREFIX and other files under another directory in the same
>>> package (most common for files installed to /var/www where there's also
>>> a pkg-readme file).
>>>
>>> : -option(USE_QT4 "Use Qt 4 if available" ON)
>>> : +option(USE_QT4 "Use Qt 4 if available" OFF)
>>>
>>> CONFIGURE_ARGS= -DUSE_QT4=OFF
>>>
>

Reply | Threaded
Open this post in threaded view
|

Re: New port: arx-libertatis

Thomas Frohwein-2
*ping*
Now with NO_TEST=Yes

> It's missing NO_TEST=Yes but otherwise I'm happy with this.
> ok for me to import, or will take oks for import.

arx-libertatis.tgz (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: New port: arx-libertatis

Stuart Henderson
On 2018/05/05 10:09, Thomas Frohwein wrote:
> *ping*
> Now with NO_TEST=Yes
>
> > It's missing NO_TEST=Yes but otherwise I'm happy with this.
> > ok for me to import, or will take oks for import.


No game files to test, but port looks good, OK sthen to import