Bug#782847: RFS: endless-sky/0.7.9-1 [ITP]

2015-04-24 Thread Michael Zahniser

On 04/19/2015 01:40 AM, Paul Wise wrote:

I don't intend to sponsor this but here are some further comments:


I've addressed most of the comments on the initial package, and uploaded 
a new version.  To access further information about this package, please 
visit the following URL:


  http://mentors.debian.net/package/endless-sky

Alternatively, one can download the package with dget using this command:

  dget -x 
http://mentors.debian.net/debian/pool/main/e/endless-sky/endless-sky_0.7.10-1.dsc


More information about Endless Sky can be obtained from 
https://endless-sky.github.io.


Changes since the last upload:
  * Build system should now import environment variables, e.g. for 
hardening.

  * Creative Commons licenses are now included.
  * Updated standards version to 3.9.6.
  * No longer requires SSE support.
  * Ran wrap-and-sort on the debian files.
  * Links switched from http to https whenever possible.
  * Added a README.sources giving a link to the source files for artwork.
  * Moved the source code files into a separate source/ directory.
  * When run, shows errors in a message box, not just the terminal.
  * Made the OpenGL 3.0 requirement explicit in the package description.
  * Addressed warnings from codespell, cppcheck, flawfinder, and 
scan-build.

  * Dependencies now list multiple options for libpng and libjpeg-turbo.
  * Various bug fixes and usability improvements.


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#782847: RFS: endless-sky/0.7.9-1 [ITP]

2015-04-19 Thread Nils Dagsson Moskopp
Michael Zahniser mzahni...@gmail.com writes:

 I agree that having the source for all the graphics available for 
 anyone to view or modify is important. But I can't just export from 
 Blender files: for the 3D images, I touched them up by hand in GIMP 
 after rendering them, adding texture, scuff marks, color variation, and 
 random shadows and highlights. That was to make them look dirty and worn 
 rather than pristine and artificial. Similarly, a lot of the photos have 
 been retouched, e.g. shifting the colors to make them look more like 
 alien landscapes.

 That means that the source files include many large GIMP files, and 
 add up to over 3 GB. That's large enough that I think it's better for 
 the image source files to be available separately rather than including 
 them in the main source distribution. (I could add a line to the read-me 
 giving a link to the current location (Google drive) of those files.)

I predict that Google Drive can and will go down sooner than you think,
with little advance warning. You should never rely on services provided
by an entity with a history of breaking running systems like Google. See
http://web.archive.org/web/20071020051936/http://iq.org/#Selfdestructingpaper:

  A spy opens an envelope. Inside is a thin sheet of paper with a
  cryptic message. After it is read the paper spontaneously bursts into
  flames.

 The message is the communicable distillation of your hopes, dreams and
 imagination. The paper is the internet. The internet is self
 destructing paper. A place where anything written is soon destroyed by
 rapacious competition and the only preservation is to forever copy
 writing from sheet to sheet faster than they can burn.

 If it's worth writing, it's worth keeping. If it can be kept, it might
 be worth writing. Would your store your brain in a startup company's
 vat? If you store your writing on a 3rd party site like blogger,
 livejournal or even on your own site, but in the complex format used
 by blog/wiki software de jour you will lose it forever as soon as
 hypersonic wings of internet labor flows direct people's energies
 elsewhere. For most information published on the internet, perhaps
 that is not a moment to soon, but how can the muse of originality soar
 when immolating transience brushes every feather?

-- 
Nils Dagsson Moskopp // erlehmann
http://dieweltistgarnichtso.net


pgp3DisJ3fJch.pgp
Description: PGP signature


Bug#782847: RFS: endless-sky/0.7.9-1 [ITP]

2015-04-19 Thread Michael Zahniser
Thanks for the feedback, Paul! That codespell program is a really 
helpful tool that I had not known about before.


The build process does print all the build commands, and would also 
print compiler warnings (at the -Wall level) if there were any. Is that 
sufficient, or are you saying I need the g++ -v option that prints 
dozens of lines of information for each file that it compiles?


I agree that having the source for all the graphics available for 
anyone to view or modify is important. But I can't just export from 
Blender files: for the 3D images, I touched them up by hand in GIMP 
after rendering them, adding texture, scuff marks, color variation, and 
random shadows and highlights. That was to make them look dirty and worn 
rather than pristine and artificial. Similarly, a lot of the photos have 
been retouched, e.g. shifting the colors to make them look more like 
alien landscapes.


That means that the source files include many large GIMP files, and 
add up to over 3 GB. That's large enough that I think it's better for 
the image source files to be available separately rather than including 
them in the main source distribution. (I could add a line to the read-me 
giving a link to the current location (Google drive) of those files.)


-Michael



On 04/19/2015 01:40 AM, Paul Wise wrote:

On Sun, Apr 19, 2015 at 4:33 AM, James Cowgill wrote:

On Sat, 2015-04-18 at 14:31 -0400, Michael Zahniser wrote:

Dear mentors,

I am looking for a sponsor for my package endless-sky.


Here are some comments:


I don't intend to sponsor this but here are some further comments:

As you are upstream too, please read through these documents:

https://wiki.debian.org/UpstreamGuide
http://www.freedesktop.org/wiki/Games/Upstream/

Personally I would choose any build system other than scons; I would
recommend autotools or cmake.

The debian/endless-sky.install files can be reduced to this:

debian/endless-sky.install
usr/games
usr/share/applications
usr/share/man
usr/share/icons

debian/control:

I'd suggest running `wrap-and-sort -sa` so that diffs of
debian/control are more readable.

Firefox/Iceweasel say the homepage is insecure as it mixes http
content into a http page. If you change the links to images to https
instead of http that should fix it.

images/asteroid/ images/outfit/ images/planet/station*.png images/ship
endless-sky.iconset/ look like they were automatically rendered from
3D models. It would be a good idea to include the 3D models in the
source code. Bonus points for removing the automatically rendered
images from the VCS and source code zip file and having them rendered
from the 3D model at build time.

images/font/ubuntu*r.png, images/_menu/title.png and images/label look
like they are text rendered from fonts. It would be much better to
render these from TrueType/OpenType fonts at runtime, as this would
enable translators to convert the user-interface to their language. If
you don't want to do that, then these images should be rendered at
build time. If the fonts are in Debian you should depend (or
build-depend) on them, if they are not then they should be packaged
separately.

Personally I would have done the cropping/editing for images/land/*
and images/scene automatically at build time, in case you want to
adjust the cropping/effects in the future or make them higher
resolution.

Some files in images/ui/ say they were produced in Inkscape. If you
didn't throw away the SVG files, please include them in the source.
Bonus points for removing the automatically rendered images from the
VCS and source code zip file and having them rendered from the SVG
files at build time.

Some files in images/land/ say they were produced in the GIMP. If you
didn't throw away the XCF files, please include them in the source.
Bonus points for removing the automatically rendered images from the
VCS and source code zip file and having them rendered from the XCF
files at build time.

You might want to move the *.cpp files to a src/ or source/ directory.

I'd suggest using https in URLs where possible. Everything except the
libjpeg-turbo and sourceforge links and probably the URLs in the plist
files should work with https.

The build process should be verbose (print all the commands and
compiler output) but is not.

The game crashes on my system:

$ endless-sky
#version 120
uniform vec2 scale;
uniform vec2 position;
uniform int glyph;
in vec2 vert;
in vec2 corner;
out vec2 texCoord;
void main() {
   texCoord = vec2((glyph + corner.x) / 96.f, corner.y);
   gl_Position = vec4((vert + position) * scale, 0, 1);
}
0:5(1): error: `in' qualifier in declaration of `vert' only valid for
function parameters in GLSL 1.20
0:6(1): error: `in' qualifier in declaration of `corner' only valid
for function parameters in GLSL 1.20
0:7(1): error: `out' qualifier in declaration of `texCoord' only valid
for function parameters in GLSL 1.20
Shader compilation failed.
terminate called without an active exception
Aborted (core 

Bug#782847: RFS: endless-sky/0.7.9-1 [ITP]

2015-04-19 Thread Paul Wise
On Mon, Apr 20, 2015 at 1:00 AM, Michael Zahniser wrote:

 The build process does print all the build commands, and would also print
 compiler warnings (at the -Wall level) if there were any. Is that
 sufficient, or are you saying I need the g++ -v option that prints dozens of
 lines of information for each file that it compiles?

Hmm, I deleted the build log already but from memory I couldn't see
any compiler commands in the output.

 I agree that having the source for all the graphics available for anyone
 to view or modify is important. But I can't just export from Blender files:
 for the 3D images, I touched them up by hand in GIMP after rendering them,
 adding texture, scuff marks, color variation, and random shadows and
 highlights. That was to make them look dirty and worn rather than pristine
 and artificial. Similarly, a lot of the photos have been retouched, e.g.
 shifting the colors to make them look more like alien landscapes.

 That means that the source files include many large GIMP files, and add up
 to over 3 GB. That's large enough that I think it's better for the image
 source files to be available separately rather than including them in the
 main source distribution. (I could add a line to the read-me giving a link
 to the current location (Google drive) of those files.)

What you have written here is interesting information, it would be
great if you could mention it in more detail in the README or another
file in git.

I'm guessing you didn't record exactly the steps in GIMP that you
took? Personally I would have tried to script the editing to allow for
easy adjustment in future. Without having seen the source files, I'm
not sure what further advice to give, but depending on the situation
it might be possible to reduce the size using different formats.

I agree this is a lot of data and probably couldn't be uploaded to
Debian. There is a vague plan for a way to fix that but it isn't
coming any time soon.

https://wiki.debconf.org/wiki/Miniconf-UK/2013/data.debian.org
https://dsa.debian.org/hardware-wishlist/

Please do add information about how to get the source files for the images.

Like Nils, I too would suggest adding more mirrors of the source files
for the images, a torrent site and archive.org at minimum and possibly
also Amazon S3/Glacier, sourceforge and any other sites you can think
of. It might also be interesting to look at IPFS.

http://ipfs.io/

If you haven't already, it might be a good idea to put the source
files for the images into git-annex to track where the mirrors are and
detect bit-rot. You could push the git-annex repo to github.

-- 
bye,
pabs

https://wiki.debian.org/PaulWise


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#782847: RFS: endless-sky/0.7.9-1 [ITP]

2015-04-18 Thread Michael Zahniser

Package: sponsorship-requests
Severity: wishlist

  Dear mentors,

  I am looking for a sponsor for my package endless-sky.

 * Package name: endless-sky
   Version : 0.7.9-1
   Upstream Author : Michael Zahniser mzahni...@gmail.com
 * URL : http://endless-sky.github.io
 * License : GPL-3+, CC-BY-SA-3.0, CC-BY-SA-4.0
   Section : games

  It builds these binary packages:

endless-sky - Space exploration and combat game.
endless-sky-data - Data files for Endless Sky.

  To access further information about this package, please visit the 
following URL:


  http://mentors.debian.net/package/endless-sky


  Alternatively, one can download the package with dget using this command:

dget -x 
http://mentors.debian.net/debian/pool/main/e/endless-sky/endless-sky_0.7.9-1.dsc


  More information about endless-sky can be obtained from 
http://endless-sky.github.io .


  Changes since the last upload:

  * Initial release. (Closes: #782846)


  Regards,
   Michael Zahniser


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#782847: RFS: endless-sky/0.7.9-1 [ITP]

2015-04-18 Thread James Cowgill
On Sat, 2015-04-18 at 14:31 -0400, Michael Zahniser wrote:
Dear mentors,
 
I am looking for a sponsor for my package endless-sky.

Here are some comments:

build:
The build passes -msse4.1 to g++. This will fail on non-x86 arches and
produce binaries which don't work without sse 4.1 processors on x86
arches.

debian/control:
libjpeg-turbo8-dev does not exist in debian, try libjpeg-dev
Latest standards version is 3.9.6

debian/copyright:
You need copies of CC-BY-SA-3.0 and CC-BY-3.0

debian/rules:
You should not hardcode -j4 in the rules file. Use the value given in
DEB_BUILD_OPTIONS 'parallel' instead (see policy 4.9.1).

Lintian output:
W: endless-sky: hardening-no-relro usr/games/endless-sky
I: endless-sky: hardening-no-fortify-functions usr/games/endless-sky
I: endless-sky: description-synopsis-might-not-be-phrased-properly
I: endless-sky: hyphen-used-as-minus-sign usr/share/man/man6/endless-sky.6.gz:7
I: endless-sky: desktop-entry-lacks-keywords-entry 
usr/share/applications/endless-sky.desktop
I: endless-sky-data: description-synopsis-might-not-be-phrased-properly
P: endless-sky: no-upstream-changelog
P: endless-sky-data: no-upstream-changelog

The warning should be fixed. That one is usually caused by the build
system ignoring custom CFLAGS/CXXFLAGS/etc. The others would be nice to
fix as well but are not essential.

Otherwise, the package looks good - I'm not a DD though so I can't
upload the package for you when it's done.

Thanks,
James


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


Bug#782847: RFS: endless-sky/0.7.9-1 [ITP]

2015-04-18 Thread Michael Zahniser

Thanks for the quick feedback!

If SSE 4.1 is not acceptable, is it possible to at least depend on SSE 
3? I use some SSE intrinsics to optimize geometric calculations. Should 
I modify the code so those instructions are used only if a special 
command line option is given? That would mean all the official packages 
would be un-optimized, even though all i386 and amd64 processors from 
the last decade support SSE 3.


For libjpeg, right now I use the JCS_EXT_BGRA option (converting to 
32-bit BGRA color when decoding JPEGs). The reason I specified 
libpeg-turbo is because other libjpeg implementations may not include 
that extension. (But, I see that libjpeg-turbo is the default 
implementation of libjpeg on Debian, anyway.) Is it safe to just specify 
plain libjpeg as the dependency?


-Michael



On 04/18/2015 04:33 PM, James Cowgill wrote:

On Sat, 2015-04-18 at 14:31 -0400, Michael Zahniser wrote:

Dear mentors,

I am looking for a sponsor for my package endless-sky.


Here are some comments:

build:
The build passes -msse4.1 to g++. This will fail on non-x86 arches and
produce binaries which don't work without sse 4.1 processors on x86
arches.

debian/control:
libjpeg-turbo8-dev does not exist in debian, try libjpeg-dev
Latest standards version is 3.9.6

debian/copyright:
You need copies of CC-BY-SA-3.0 and CC-BY-3.0

debian/rules:
You should not hardcode -j4 in the rules file. Use the value given in
DEB_BUILD_OPTIONS 'parallel' instead (see policy 4.9.1).

Lintian output:
W: endless-sky: hardening-no-relro usr/games/endless-sky
I: endless-sky: hardening-no-fortify-functions usr/games/endless-sky
I: endless-sky: description-synopsis-might-not-be-phrased-properly
I: endless-sky: hyphen-used-as-minus-sign usr/share/man/man6/endless-sky.6.gz:7
I: endless-sky: desktop-entry-lacks-keywords-entry 
usr/share/applications/endless-sky.desktop
I: endless-sky-data: description-synopsis-might-not-be-phrased-properly
P: endless-sky: no-upstream-changelog
P: endless-sky-data: no-upstream-changelog

The warning should be fixed. That one is usually caused by the build
system ignoring custom CFLAGS/CXXFLAGS/etc. The others would be nice to
fix as well but are not essential.

Otherwise, the package looks good - I'm not a DD though so I can't
upload the package for you when it's done.

Thanks,
James




--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#782847: RFS: endless-sky/0.7.9-1 [ITP]

2015-04-18 Thread James Cowgill
On Sat, 2015-04-18 at 18:02 -0400, Michael Zahniser wrote:
 Thanks for the quick feedback!
 
 If SSE 4.1 is not acceptable, is it possible to at least depend on SSE 
 3? I use some SSE intrinsics to optimize geometric calculations. Should 
 I modify the code so those instructions are used only if a special 
 command line option is given? That would mean all the official packages 
 would be un-optimized, even though all i386 and amd64 processors from 
 the last decade support SSE 3.

Nope you can't assume SSE 3 is present. You can only assume SSE 2 and
only on amd64 (not i386). If you want to use something newer, you can
use a command line option like you said, or do runtime cpu detection.

 For libjpeg, right now I use the JCS_EXT_BGRA option (converting to 
 32-bit BGRA color when decoding JPEGs). The reason I specified 
 libpeg-turbo is because other libjpeg implementations may not include 
 that extension. (But, I see that libjpeg-turbo is the default 
 implementation of libjpeg on Debian, anyway.) Is it safe to just specify 
 plain libjpeg as the dependency?

Ah I didn't know you used that - you can use libjpeg62-turbo-dev if you
specifically want libjpeg-turbo.

James

 On 04/18/2015 04:33 PM, James Cowgill wrote:
  On Sat, 2015-04-18 at 14:31 -0400, Michael Zahniser wrote:
  Dear mentors,
 
  I am looking for a sponsor for my package endless-sky.
 
  Here are some comments:
 
  build:
  The build passes -msse4.1 to g++. This will fail on non-x86 arches and
  produce binaries which don't work without sse 4.1 processors on x86
  arches.
 
  debian/control:
  libjpeg-turbo8-dev does not exist in debian, try libjpeg-dev
  Latest standards version is 3.9.6
 
  debian/copyright:
  You need copies of CC-BY-SA-3.0 and CC-BY-3.0
 
  debian/rules:
  You should not hardcode -j4 in the rules file. Use the value given in
  DEB_BUILD_OPTIONS 'parallel' instead (see policy 4.9.1).
 
  Lintian output:
  W: endless-sky: hardening-no-relro usr/games/endless-sky
  I: endless-sky: hardening-no-fortify-functions usr/games/endless-sky
  I: endless-sky: description-synopsis-might-not-be-phrased-properly
  I: endless-sky: hyphen-used-as-minus-sign 
  usr/share/man/man6/endless-sky.6.gz:7
  I: endless-sky: desktop-entry-lacks-keywords-entry 
  usr/share/applications/endless-sky.desktop
  I: endless-sky-data: description-synopsis-might-not-be-phrased-properly
  P: endless-sky: no-upstream-changelog
  P: endless-sky-data: no-upstream-changelog
 
  The warning should be fixed. That one is usually caused by the build
  system ignoring custom CFLAGS/CXXFLAGS/etc. The others would be nice to
  fix as well but are not essential.
 
  Otherwise, the package looks good - I'm not a DD though so I can't
  upload the package for you when it's done.
 
  Thanks,
  James
 



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


Bug#782847: RFS: endless-sky/0.7.9-1 [ITP]

2015-04-18 Thread Paul Wise
On Sun, Apr 19, 2015 at 4:33 AM, James Cowgill wrote:
 On Sat, 2015-04-18 at 14:31 -0400, Michael Zahniser wrote:
Dear mentors,

I am looking for a sponsor for my package endless-sky.

 Here are some comments:

I don't intend to sponsor this but here are some further comments:

As you are upstream too, please read through these documents:

https://wiki.debian.org/UpstreamGuide
http://www.freedesktop.org/wiki/Games/Upstream/

Personally I would choose any build system other than scons; I would
recommend autotools or cmake.

The debian/endless-sky.install files can be reduced to this:

debian/endless-sky.install
usr/games
usr/share/applications
usr/share/man
usr/share/icons

debian/control:

I'd suggest running `wrap-and-sort -sa` so that diffs of
debian/control are more readable.

Firefox/Iceweasel say the homepage is insecure as it mixes http
content into a http page. If you change the links to images to https
instead of http that should fix it.

images/asteroid/ images/outfit/ images/planet/station*.png images/ship
endless-sky.iconset/ look like they were automatically rendered from
3D models. It would be a good idea to include the 3D models in the
source code. Bonus points for removing the automatically rendered
images from the VCS and source code zip file and having them rendered
from the 3D model at build time.

images/font/ubuntu*r.png, images/_menu/title.png and images/label look
like they are text rendered from fonts. It would be much better to
render these from TrueType/OpenType fonts at runtime, as this would
enable translators to convert the user-interface to their language. If
you don't want to do that, then these images should be rendered at
build time. If the fonts are in Debian you should depend (or
build-depend) on them, if they are not then they should be packaged
separately.

Personally I would have done the cropping/editing for images/land/*
and images/scene automatically at build time, in case you want to
adjust the cropping/effects in the future or make them higher
resolution.

Some files in images/ui/ say they were produced in Inkscape. If you
didn't throw away the SVG files, please include them in the source.
Bonus points for removing the automatically rendered images from the
VCS and source code zip file and having them rendered from the SVG
files at build time.

Some files in images/land/ say they were produced in the GIMP. If you
didn't throw away the XCF files, please include them in the source.
Bonus points for removing the automatically rendered images from the
VCS and source code zip file and having them rendered from the XCF
files at build time.

You might want to move the *.cpp files to a src/ or source/ directory.

I'd suggest using https in URLs where possible. Everything except the
libjpeg-turbo and sourceforge links and probably the URLs in the plist
files should work with https.

The build process should be verbose (print all the commands and
compiler output) but is not.

The game crashes on my system:

$ endless-sky
#version 120
uniform vec2 scale;
uniform vec2 position;
uniform int glyph;
in vec2 vert;
in vec2 corner;
out vec2 texCoord;
void main() {
  texCoord = vec2((glyph + corner.x) / 96.f, corner.y);
  gl_Position = vec4((vert + position) * scale, 0, 1);
}
0:5(1): error: `in' qualifier in declaration of `vert' only valid for
function parameters in GLSL 1.20
0:6(1): error: `in' qualifier in declaration of `corner' only valid
for function parameters in GLSL 1.20
0:7(1): error: `out' qualifier in declaration of `texCoord' only valid
for function parameters in GLSL 1.20
Shader compilation failed.
terminate called without an active exception
Aborted (core dumped)

Automated checks:

https://anonscm.debian.org/cgit/collab-maint/check-all-the-things.git

$ codespell --quiet-level=3
lots of spelling errors

$ cme check dpkg
...
Warning in 'control source Build-Depends:2' value 'g++ (=4.6)':
unnecessary versioned dependency: g++ = 4.6. Debian has squeeze -
4:4.4.5-1; wheezy - 4:4.6.3-8; wheezy - 4:4.7.2-1; jessie -
4:4.9.2-2; sid - 4:4.9.2-2; experimental - 4:4.9.2-7; experimental
- 4:5-3;
Warning in 'control source Build-Depends:4' value 'libpng12-dev': This
dependency is deprecated and should be replaced with libpng-dev. See
BTS 650601 for details
Warning in 'control source Build-Depends:5' value
'libjpeg-turbo8-dev': package libjpeg-turbo8-dev is unknown. Check for
typos if not a virtual package.
Warning in 'control source Standards-Version' value '3.9.5': Current
standards version is 3.9.6
...

$ cppcheck -j1 --quiet -f . | grep -vF 'cppcheck: error: could not
find or open any of the paths given.'
[DrawList.cpp:100]: (error) Member variable 'clip' is initialized by itself.
[Point.cpp:250]: (error) Member variable 'v' is initialized by itself.
[Ship.cpp:90]: (error) Possible null pointer dereference: gov

$ fdupes -q -r .
./debian/copyright
./copyright

./images/projectile/skylance+.png
./images/effect/quarg anti missile+0.png

./images/star/g0.png