Bug#979592: RFS: openrct2/0.3.3+dfsg-1 [ITP] -- Open-source re-implementation of RollerCoaster Tycoon 2

2021-03-22 Thread Andrius Merkys
On 2021-03-23 02:08, Mathias Gibbens wrote:
> On Tue, 2021-03-16 at 12:57 +0200, Andrius Merkys wrote:
>> On 2021-03-15 19:28, Mathias Gibbens wrote:
 I have reviewed your packaging, and saw libcurl4-openssl-dev
 among
 the build dependencies. Do you know what does openrct2 need it
 for?
 My concern here is that in-game network access/downloads may
 interfere with Debian policies.
>>>
>>>   Grepping through the code, it appears that openrct2 uses the
>>> libcurl
>>> dependency primarily in two places. The first is to automatically
>>> download missing objects referenced in a scenario or save game.
>>> There's
>>> a vibrant community of openrct2 fans who create custom scenery
>>> objects,
>>> and it looks like this is a helper to fetch missing custom objects.
>>> I've not gotten into this aspect of the game, so I haven't
>>> personally
>>> used it. The second place libcurl is used is in support of
>>> multiplayer
>>> connection making.
>>>
>>>   Both of these only happen when the end-user is running the
>>> program,
>>> so I think that shouldn't run afoul of Policy. (I know network
>>> access
>>> during build is verboten, which is why there's an
>>> override_dh_auto_configure in d/rules and corresponding component
>>> source tars [more below].)
>>
>> Thanks for checking this out. Both use cases are indeed not violating
>> the policy.
>>
>> However, we need to make sure the downloader for missing objects
>> knows
>> the right place to put them. It must not attempt writing outside
>> user's
>> home directory.
> 
>   Yes, by default openrct2 places all config, save games, objects, etc
> in ~/.config/OpenRCT2/. It also respects the XDG_CONFIG_HOME
> environment variable.

Good then. Thanks for confirming.

 I fail to build the package as of
 e6e4103971b570a179ef5a59a709c24b2fcc5d68 on clean sid chroot with
 the
 following error log (only the last lines):

 [snip]

 Any ideas what might have gone wrong?
>>>
>>>   This is the first package I've created that contains multiple
>>> upstream tarballs as described in uscan(1). The normal openrct2
>>> build
>>> downloads a handful of pre-generated metadata (the "objects"
>>> component
>>> tarball) and custom scenarios for the opening sequence (the "title-
>>> sequences" component tarball) at build time, but we can't do that
>>> in
>>> Debian. So I added them as additional sources. The error you're
>>> seeing
>>> indicates that for some reason they aren't being properly extracted
>>> into the source directory prior to starting the build.
>>
>> Indeed, this must be the problem on my side, due to incorrectly
>> created
>> upstream tarball. I admit I know very little about multiple upstream
>> tarballs (MUTs).
>>
>> However, in this case it looks like the split of the MUT to
>> individual
>> source packages would make sense. They seem to have version numbers
>> on
>> their own, and I notice no signs in them being released in a
>> lockstep.
>> For example, it might happen that at some point objects or
>> title-sequences are released more often that the main game, and
>> bumping
>> Debian version of the MUT just to update the components will become
>> tedious. What do you think about splitting?
> 
>   It would certainly be easy enough to split the components out into
> three distinct source packages:
> 
> openrct2
> openrct2-objects
> openrct2-title-sequences
> 
>   And then have openrct2 depend on the other two to properly bring in
> all the required bits of the program.

I would suggest exactly the same.

>   I set things up using MUTs to try to reflect upstream's build process
> as closely as possible, but as you point out having three distinct
> packages will allow more flexibility when updating in the future.
> 
>   My only question would be if having three different packages would
> make the RFS process any harder, and if I should then file two more RFS
> bugs for the two new source packages.

I do not think this would make RFS process any harder. As the releases
of these three packages do not happen in a lockstep, you would probably
want to upload the MUT whenever any of them is released anyway. MUT
might save extra RFSes in case of simultaneous release, but I do not
think this is worth optimizing for.

In practice, instead of filing RFSes I used to ping my initial
sponsor(s) with a list of packages I want to get uploaded. RFS is a
formal request, but I see people directly mailing packaging teams with
requests for uploads. And maybe at some point you will become a DD and
will be able to upload packages yourself.

>   Thanks for helping me build a better package(s)!

Thank you for working on openrct!

Best wishes,
Andrius



Bug#979592: RFS: openrct2/0.3.3+dfsg-1 [ITP] -- Open-source re-implementation of RollerCoaster Tycoon 2

2021-03-22 Thread Mathias Gibbens
On Tue, 2021-03-16 at 12:57 +0200, Andrius Merkys wrote:
> Hi Mathias,
> 
> On 2021-03-15 19:28, Mathias Gibbens wrote:
> > > I have reviewed your packaging, and saw libcurl4-openssl-dev
> > > among
> > > the build dependencies. Do you know what does openrct2 need it
> > > for?
> > > My concern here is that in-game network access/downloads may
> > > interfere with Debian policies.
> > 
> >   Grepping through the code, it appears that openrct2 uses the
> > libcurl
> > dependency primarily in two places. The first is to automatically
> > download missing objects referenced in a scenario or save game.
> > There's
> > a vibrant community of openrct2 fans who create custom scenery
> > objects,
> > and it looks like this is a helper to fetch missing custom objects.
> > I've not gotten into this aspect of the game, so I haven't
> > personally
> > used it. The second place libcurl is used is in support of
> > multiplayer
> > connection making.
> > 
> >   Both of these only happen when the end-user is running the
> > program,
> > so I think that shouldn't run afoul of Policy. (I know network
> > access
> > during build is verboten, which is why there's an
> > override_dh_auto_configure in d/rules and corresponding component
> > source tars [more below].)
> 
> Thanks for checking this out. Both use cases are indeed not violating
> the policy.
> 
> However, we need to make sure the downloader for missing objects
> knows
> the right place to put them. It must not attempt writing outside
> user's
> home directory.

  Yes, by default openrct2 places all config, save games, objects, etc
in ~/.config/OpenRCT2/. It also respects the XDG_CONFIG_HOME
environment variable.

> 
> > > I believe uploads to unstable are discouraged only for packages
> > > already in testing, so targeting unstable here should be OK.
> > 
> >   OK, I've switched back to unstable and staged it locally. I'll
> > bundle
> > that with any other changes that come from the package review
> > process
> > before openrct2 gets uploaded to NEW.
> 
> Good, thanks.
> 
> > > I fail to build the package as of
> > > e6e4103971b570a179ef5a59a709c24b2fcc5d68 on clean sid chroot with
> > > the
> > > following error log (only the last lines):
> > > 
> > > [snip]
> > > 
> > > Any ideas what might have gone wrong?
> > 
> >   This is the first package I've created that contains multiple
> > upstream tarballs as described in uscan(1). The normal openrct2
> > build
> > downloads a handful of pre-generated metadata (the "objects"
> > component
> > tarball) and custom scenarios for the opening sequence (the "title-
> > sequences" component tarball) at build time, but we can't do that
> > in
> > Debian. So I added them as additional sources. The error you're
> > seeing
> > indicates that for some reason they aren't being properly extracted
> > into the source directory prior to starting the build.
> 
> Indeed, this must be the problem on my side, due to incorrectly
> created
> upstream tarball. I admit I know very little about multiple upstream
> tarballs (MUTs).
> 
> However, in this case it looks like the split of the MUT to
> individual
> source packages would make sense. They seem to have version numbers
> on
> their own, and I notice no signs in them being released in a
> lockstep.
> For example, it might happen that at some point objects or
> title-sequences are released more often that the main game, and
> bumping
> Debian version of the MUT just to update the components will become
> tedious. What do you think about splitting?

  It would certainly be easy enough to split the components out into
three distinct source packages:

openrct2
openrct2-objects
openrct2-title-sequences

  And then have openrct2 depend on the other two to properly bring in
all the required bits of the program.

  I set things up using MUTs to try to reflect upstream's build process
as closely as possible, but as you point out having three distinct
packages will allow more flexibility when updating in the future.

  My only question would be if having three different packages would
make the RFS process any harder, and if I should then file two more RFS
bugs for the two new source packages.

> 
> >   I personally use lxc containers which I can quickly spin up to
> > get a
> > clean minimal build environment, and the following commands build
> > the
> > openrct2 package for me:
> > 
> >dget -x 
> > https://mentors.debian.net/debian/pool/main/o/openrct2/openrct2_0.3.3+dfsg-1.dsc
> > dpkg-source -x openrct2_0.3.3+dfsg-1.dsc
> > cd openrct2-0.3.3+dfsg/
> > debuild
> > 
> >   I know there's several additional tools for building packages
> > (like
> > pbuilder), but I haven't really had a strong need to get those
> > working
> > due to my use of lxc.
> 
> I see. I have no knowledge about lxc builder, but somehow I imagine
> that
> it should have the same build sequence.
> 
> Best,
> Andrius
> 

  Thanks for helping me build a better package(s)!

Mathias


signature.asc
Description: Th

Bug#979592: RFS: openrct2/0.3.3+dfsg-1 [ITP] -- Open-source re-implementation of RollerCoaster Tycoon 2

2021-03-16 Thread Andrius Merkys
Hi Mathias,

On 2021-03-15 19:28, Mathias Gibbens wrote:
>> I have reviewed your packaging, and saw libcurl4-openssl-dev among
>> the build dependencies. Do you know what does openrct2 need it for?
>> My concern here is that in-game network access/downloads may
>> interfere with Debian policies.
> 
>   Grepping through the code, it appears that openrct2 uses the libcurl
> dependency primarily in two places. The first is to automatically
> download missing objects referenced in a scenario or save game. There's
> a vibrant community of openrct2 fans who create custom scenery objects,
> and it looks like this is a helper to fetch missing custom objects.
> I've not gotten into this aspect of the game, so I haven't personally
> used it. The second place libcurl is used is in support of multiplayer
> connection making.
> 
>   Both of these only happen when the end-user is running the program,
> so I think that shouldn't run afoul of Policy. (I know network access
> during build is verboten, which is why there's an
> override_dh_auto_configure in d/rules and corresponding component
> source tars [more below].)

Thanks for checking this out. Both use cases are indeed not violating
the policy.

However, we need to make sure the downloader for missing objects knows
the right place to put them. It must not attempt writing outside user's
home directory.

>> I believe uploads to unstable are discouraged only for packages
>> already in testing, so targeting unstable here should be OK.
> 
>   OK, I've switched back to unstable and staged it locally. I'll bundle
> that with any other changes that come from the package review process
> before openrct2 gets uploaded to NEW.

Good, thanks.

>> I fail to build the package as of
>> e6e4103971b570a179ef5a59a709c24b2fcc5d68 on clean sid chroot with the
>> following error log (only the last lines):
>>
>> [snip]
>>
>> Any ideas what might have gone wrong?
> 
>   This is the first package I've created that contains multiple
> upstream tarballs as described in uscan(1). The normal openrct2 build
> downloads a handful of pre-generated metadata (the "objects" component
> tarball) and custom scenarios for the opening sequence (the "title-
> sequences" component tarball) at build time, but we can't do that in
> Debian. So I added them as additional sources. The error you're seeing
> indicates that for some reason they aren't being properly extracted
> into the source directory prior to starting the build.

Indeed, this must be the problem on my side, due to incorrectly created
upstream tarball. I admit I know very little about multiple upstream
tarballs (MUTs).

However, in this case it looks like the split of the MUT to individual
source packages would make sense. They seem to have version numbers on
their own, and I notice no signs in them being released in a lockstep.
For example, it might happen that at some point objects or
title-sequences are released more often that the main game, and bumping
Debian version of the MUT just to update the components will become
tedious. What do you think about splitting?

>   I personally use lxc containers which I can quickly spin up to get a
> clean minimal build environment, and the following commands build the
> openrct2 package for me:
> 
>dget -x 
> https://mentors.debian.net/debian/pool/main/o/openrct2/openrct2_0.3.3+dfsg-1.dsc
> dpkg-source -x openrct2_0.3.3+dfsg-1.dsc
> cd openrct2-0.3.3+dfsg/
> debuild
> 
>   I know there's several additional tools for building packages (like
> pbuilder), but I haven't really had a strong need to get those working
> due to my use of lxc.

I see. I have no knowledge about lxc builder, but somehow I imagine that
it should have the same build sequence.

Best,
Andrius



Bug#979592: RFS: openrct2/0.3.3+dfsg-1 [ITP] -- Open-source re-implementation of RollerCoaster Tycoon 2

2021-03-15 Thread Mathias Gibbens
Hi Andrius,

  Thanks for your feedback! To answer your questions:

> I have reviewed your packaging, and saw libcurl4-openssl-dev among
> the build dependencies. Do you know what does openrct2 need it for?
> My concern here is that in-game network access/downloads may
> interfere with Debian policies.

  Grepping through the code, it appears that openrct2 uses the libcurl
dependency primarily in two places. The first is to automatically
download missing objects referenced in a scenario or save game. There's
a vibrant community of openrct2 fans who create custom scenery objects,
and it looks like this is a helper to fetch missing custom objects.
I've not gotten into this aspect of the game, so I haven't personally
used it. The second place libcurl is used is in support of multiplayer
connection making.

  Both of these only happen when the end-user is running the program,
so I think that shouldn't run afoul of Policy. (I know network access
during build is verboten, which is why there's an
override_dh_auto_configure in d/rules and corresponding component
source tars [more below].)

> I believe uploads to unstable are discouraged only for packages
> already in testing, so targeting unstable here should be OK.

  OK, I've switched back to unstable and staged it locally. I'll bundle
that with any other changes that come from the package review process
before openrct2 gets uploaded to NEW.

> I fail to build the package as of
> e6e4103971b570a179ef5a59a709c24b2fcc5d68 on clean sid chroot with the
> following error log (only the last lines):
> 
> [snip]
> 
> Any ideas what might have gone wrong?

  This is the first package I've created that contains multiple
upstream tarballs as described in uscan(1). The normal openrct2 build
downloads a handful of pre-generated metadata (the "objects" component
tarball) and custom scenarios for the opening sequence (the "title-
sequences" component tarball) at build time, but we can't do that in
Debian. So I added them as additional sources. The error you're seeing
indicates that for some reason they aren't being properly extracted
into the source directory prior to starting the build.

  I personally use lxc containers which I can quickly spin up to get a
clean minimal build environment, and the following commands build the
openrct2 package for me:

   dget -x 
https://mentors.debian.net/debian/pool/main/o/openrct2/openrct2_0.3.3+dfsg-1.dsc
dpkg-source -x openrct2_0.3.3+dfsg-1.dsc
cd openrct2-0.3.3+dfsg/
debuild

  I know there's several additional tools for building packages (like
pbuilder), but I haven't really had a strong need to get those working
due to my use of lxc.

Mathias


signature.asc
Description: This is a digitally signed message part


Bug#979592: RFS: openrct2/0.3.3+dfsg-1 [ITP] -- Open-source re-implementation of RollerCoaster Tycoon 2

2021-03-15 Thread Andrius Merkys
Hi again,

I fail to build the package as of
e6e4103971b570a179ef5a59a709c24b2fcc5d68 on clean sid chroot with the
following error log (only the last lines):

find ./debian -name libopenrct2.a -delete
find ./debian -empty -type d -delete
make[1]: Leaving directory '/<>'
   dh_install
dh_install: warning: Cannot find (any matches for) "objects/*" (tried in
., debian/tmp)

dh_install: warning: openrct2-data missing files: objects/*
dh_install: warning: Cannot find (any matches for) "title-sequences/*"
(tried in ., debian/tmp)

dh_install: warning: openrct2-data missing files: title-sequences/*
dh_install: error: missing files, aborting
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit
status 2

Any ideas what might have gone wrong?

Best,
Andrius



Bug#979592: RFS: openrct2/0.3.3+dfsg-1 [ITP] -- Open-source re-implementation of RollerCoaster Tycoon 2

2021-03-15 Thread Andrius Merkys
Hi Mathias,

Thank you for an interesting ITP. It would be nice to have openrct2 in
Debian.

I have reviewed your packaging, and saw libcurl4-openssl-dev among the
build dependencies. Do you know what does openrct2 need it for? My
concern here is that in-game network access/downloads may interfere with
Debian policies.

On 2021-03-13 20:21, Mathias Gibbens wrote:
>   Upstream released v0.3.3 earlier today, and I have updated my
> packaging accordingly. Additionally, I updated the distribution to
> experimental, as the bullseye freeze is in full swing.

I believe uploads to unstable are discouraged only for packages already
in testing, so targeting unstable here should be OK.

Best,
Andrius



Bug#979592: RFS: openrct2/0.3.3+dfsg-1 [ITP] -- Open-source re-implementation of RollerCoaster Tycoon 2

2021-03-13 Thread Mathias Gibbens
retitle 979592 RFS: openrct2/0.3.3+dfsg-1 [ITP] -- Open-source 
re-implementation of RollerCoaster Tycoon 2
thanks

  Upstream released v0.3.3 earlier today, and I have updated my
packaging accordingly. Additionally, I updated the distribution to
experimental, as the bullseye freeze is in full swing.

  As usual, you can download my package with

dget -x 
https://mentors.debian.net/debian/pool/main/o/openrct2/openrct2_0.3.3+dfsg-1.dsc

  Changes since the previous upload can also be viewed on salsa:
https://salsa.debian.org/gibmat/openrct2/-/commit/e6e4103971b570a179ef5a59a709c24b2fcc5d68

Thanks,
Mathias


signature.asc
Description: This is a digitally signed message part