Sponsor for my package - roadfighter

Paul Wise pabs at debian.org
Sun Apr 3 06:09:11 UTC 2016


On Sat, Apr 2, 2016 at 1:01 AM, Carlos Donizete Froes wrote:

>   http://mentors.debian.net/package/roadfighter
>
> Awaiting reviews, tips, advice or approval of package.

I don't intend to sponsor it, but here are some thoughts:

Please send the patches upstream if you haven't already and mark them
as forwarded using DEP-3 patch headers.

http://dep.debian.net/deps/dep3/

Much of makefile.patch is not really appropriate, you should not
remove the upstream install system but fix it instead. The default
PREFIX should be /usr/local not /usr and debian/rules should override
PREFIX to /usr.

Why does makefile.patch add "-fPIC -Wno-write-strings" to CFLAGS?

The typo change in makefile.patch should be moved to typo.patch.

The description and name for debug.patch seem incorrect to me.

Please send the manual page upstream if you haven't already and mark
it as forwarded using a comment. It is a quite well done manual page,
nice work :)

I suggest wrapping the watch file into two lines.

I suggest wrapping and sorting the debian/ dir so that diffs of it are
more readable:

wrap-and-sort --short-indent --wrap-always --sort-binary-packages
--trailing-comma --verbose

The SDL Graphics Extension (src/sge/) is an embedded code copy and
needs to be packaged separately and removed from the roadfighter
upstream repository and tarballs. Alternatively roadfighter could
switch to a less dead library like SDL_gfx.

https://github.com/flibitijibibo/libSGE
https://sourceforge.net/projects/c-sge/
https://wiki.debian.org/EmbeddedCodeCopies

Please ask upstream to port to SDL2 as SDL1 will eventually go away.

Playing the Ogg files in mplayer gives these warnings for some:

[ogg @ 0x7ff2ace78e00]16 bytes of comment header remain
[ogg @ 0x7ff2ace78e00]Page at 8144 is missing granule
<lots more>

The metadata for these files makes me think that they were illegally
copied from the original proprietary Road Fighter game by Konami:

sound/start.ogg
sound/menu_theme.ogg
sound/levelcomplete.ogg
sound/game_theme.ogg
sound/game_theme2.ogg
sound/gameover.ogg

Some of the game graphics were contain pre-rendered text. This
prevents re-rendering the text using different words or different
fonts and prevents the text from being translated to non-English
languages. Do you know which font upstream used? It would be great if
upstream were to switch to extruding (for the 3D text) and rendering
the text at runtime using SDL_ttf or similar.

Some of the game graphics were done in Photoshop/GIMP, does upstream
distribute the source .PSD/.XCF files, do they keep them secret or did
they delete them? If they distribute them, they should be in the
upstream VCS and tarball. If they keep them secret then they should
release them to the upstream VCS and tarball. If they deleted them
then they probably shouldn't have done that.

I'm not sure including Konami trademarks in the game is a very good idea.

fonts/DroidSerif-BoldItalic.ttf and fonts/tanglewo.ttf are embedded
font copies and needs to be packaged separately (tanglewo.ttf) and
depended on (Droid is in texlive-fonts-extra) instead and removed from
the roadfighter upstream repository and tarballs.

https://wiki.debian.org/EmbeddedCodeCopies

tanglewo.ttf does not have a license so it is probably not legally
distributable by Debian or by upstream. The copyright info only says
all rights reserved. You could probably talk to the upstream author
and get it under a free license.

http://www.nicksfonts.com/info.html
(c) 2000 Nick Curtis. All Rights Reserved. Generated by Fontographer 3.52

Please add some upstream metadata: https://wiki.debian.org/UpstreamMetadata


Automatic checks:

build

src/auxiliar.cpp: In function 'SDL_Surface* load_maskedimage(char*,
char*, char*)':
src/auxiliar.cpp:106:19: warning: converting 'false' to pointer type
'SDL_Surface*' [-Wconversion-null]
   mask==0) return false;
                   ^

src/loadmg2.cpp: In member function 'bool CGame::load_map(char*)':
src/loadmg2.cpp:118:31: warning: format '%s' expects argument of type
'char*', but argument 3 has type 'char (*)[256]' [-Wformat=]
     if (1!=fscanf(fp,"%s",&tmp)) return false;
                               ^
src/loadmg2.cpp:131:20: warning: ignoring return value of 'char*
fgets(char*, int, FILE*)', declared with attribute warn_unused_result
[-Wunused-result]
    fgets(tmp,80,fp);
                    ^

src/playing_state.cpp: In member function 'int CRoadFighter::playing_cycle()':
src/playing_state.cpp:55:33: warning: ignoring return value of 'int
fscanf(FILE*, const char*, ...)', declared with attribute
warn_unused_result [-Wunused-result]
     fscanf(replay_fp,"%u",&seed);

dpkg-shlibdeps: warning: package could avoid a useless dependency if
debian/roadfighter/usr/games/roadfighter was not linked against
libSDL_sound-1.0.so.1 (it uses none of the library's symbols)

lintian

P: roadfighter source: debian-watch-may-check-gpg-signature
P: roadfighter: no-upstream-changelog

check-all-the-things

# Check with upstream where the GIMP XCF source files are.
$ find -type f \( -iname '*.png' -o -iname '*.gif' -o -iname '*.jpg'
-o -iname '*.jpeg' \) -exec grep -iF gimp {} +
Binary file ./build/linux/roadfighter.png matches

$ cme check dpkg
cme: using Dpkg model
loading data
Warning in 'patches:"typo.patch" Synopsis' value '': Empty synopsis
(this can be fixed with 'cme fix' command)
Configuration item 'patches:"typo.patch" Author:0' has a wrong value:
    "uniline" value must not contain embedded newlines (\n)

$ find -type f -iname '*.desktop' -exec desktop-file-validate {} \;
./build/linux/roadfighter.desktop: error: (will be fatal in the
future): value "roadfighter.png" for key "Icon" in group "Desktop
Entry" is an icon name with an extension, but there should be no
extension as described in the Icon Theme Specification if the value is
not an absolute path
./build/linux/roadfighter.desktop: warning: value "Application;Game;"
for key "Categories" in group "Desktop Entry" contains a deprecated
value "Application"

# check if these can be switched to https://
$ grep -rF http: .
Binary file ./readme.txt matches
Binary file ./graphics/disclaimer.jpg matches
Binary file ./graphics/stage6.jpg matches
Binary file ./graphics/konami2.jpg matches
Binary file ./graphics/stage3.jpg matches
Binary file ./graphics/stage4.jpg matches
Binary file ./graphics/stage2.jpg matches
Binary file ./graphics/stage1.jpg matches
Binary file ./graphics/title.jpg matches
Binary file ./graphics/konami1.jpg matches
Binary file ./graphics/stage5.jpg matches
Binary file ./graphics/gameover.jpg matches
Binary file ./src/sge/sge_primitives.cpp matches
Binary file ./src/sge/sge_textpp.h matches
Binary file ./src/sge/sge_tt_text.h matches
Binary file ./src/sge/sge_tt_text.cpp matches
Binary file ./src/sge/sge_textpp.cpp matches
Binary file ./src/sge/sge_bm_text.cpp matches
Binary file ./.pc/typo.patch/src/sge/sge_bm_text.cpp matches
./debian/watch:http://braingames.jorito.net/roadfighter/downloads
roadfighter.src_(\d\S+)\.(?:tgz|tbz2|tar\.(?:gz|bz2|xz))
./debian/copyright:Source: http://roadfighter.jorito.net
./debian/control:Homepage: http://roadfighter.jorito.net

$ find -type f \( -iname '*.c' -o -iname '*.cc' -o -iname '*.cxx' -o
-iname '*.cpp' -o -iname '*.h' -o -iname '*.hh' -o -iname '*.hxx' -o
-iname '*.hpp' \) -exec include-what-you-use {} \;
<lots>

$ find -type d \( -iname .git -o -iname .svn -o -iname .bzr -o -iname
CVS -o -iname .hg -o -iname _darcs -o -iname _FOSSIL_ -o -iname
.sgdrawer \) -prune -o -type f ! \( -iname '*.blend' -o -iname
'*.icns' -o -iname '*.bmp' -o -iname '*.ico' -o -iname '*.png' -o
-iname '*.gif' -o -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.tga'
-o -iname '*.xcf' -o -iname '*.tif' -o -iname '*.tiff' -o -iname
'*.mo' -o -iname '*.gmo' -o -iname '*.gz' -o -iname '*.bz2' -o -iname
'*.xz' -o -iname '*.lz' -o -iname '*.zip' -o -iname '*.tar' -o -iname
'*.deb' -o -iname '*.pdf' -o -iname '*.odt' -o -iname '*.docx' -o
-iname '*.doc' -o -iname '*.torrent' -o -iname '*.pyc' -o -iname
'*.pyo' -o -iname '*.o' -o -iname '*.so' -o -iname '*.so.*' -o -iname
'*.debug' -o -iname '*.wav' -o -iname '*.ogg' -o -iname '*.oga' -o
-iname '*.ogv' -o -iname '*.mid' -o -iname '*.mp3' -o -iname '*.flac'
-o -iname '*.ttf' -o -iname '*.otf' -o -iname '*.fon' -o -iname
'*.pgp' -o -iname '*.gpg' -o -iname '*.dat' \) -exec isutf8 {} +
./readme.txt: line 74, char 1, byte offset 24: invalid UTF-8 code
./src/CRoadFighter.cpp: line 104, char 1, byte offset 32: invalid UTF-8 code
./src/menu_state.cpp: line 55, char 1, byte offset 36: invalid UTF-8 code
./src/auxiliar.cpp: line 110, char 1, byte offset 17: invalid UTF-8 code
./src/sge/sge_primitives.cpp: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_shape.cpp: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_blib.cpp: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_rotation.h: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_rotation.cpp: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_textpp.h: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_tt_text.h: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_tt_text.cpp: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_primitives.h: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_internal.h: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_misc.h: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_textpp.cpp: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_shape.h: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge.h: line 7, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_bm_text.cpp: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_bm_text.h: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_collision.cpp: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_collision.h: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_surface.h: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_misc.cpp: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_blib.h: line 8, char 1, byte offset 30: invalid UTF-8 code
./src/sge/sge_surface.cpp: line 8, char 1, byte offset 30: invalid UTF-8 code


$ find -type f \( -iname '*.ogg' -o -iname '*.oga' -o -iname '*.ogv'
\) -exec ogginfo -q {} + | grep -v '^Processing file ' | cat -s
Negative or zero granulepos (-1) on Vorbis stream outside of headers.
This file was created by a buggy encoder
<lots more>

$ find -type d \( -iname .bzr -o -iname .git -o -iname .hg -o -iname
.svn -o -iname CVS -o -iname RCS -o -iname SCCS -o -iname _MTN -o
-iname _darcs -o -iname .pc -o -iname .cabal-sandbox -o -iname .cdv -o
-iname .metadata -o -iname CMakeFiles -o -iname _build -o -iname
_sgbak -o -iname autom4te.cache -o -iname blib -o -iname cover_db -o
-iname node_modules -o -iname '~.dep' -o -iname '~.dot' -o -iname
'~.nib' -o -iname '~.plst' \) -prune -o -type f ! \( -iname '*.bak' -o
-iname '*.swp' -o -iname '#.*' -o -iname '#*#' -o -iname 'core.*' -o
-iname '*~' -o -iname '*.gif' -o -iname '*.jpg' -o -iname '*.jpeg' -o
-iname '*.png' -o -iname '*.min.js' -o -iname '*.js.map' -o -iname
'*.js.min' -o -iname '*.min.css' -o -iname '*.css.map' -o -iname
'*.css.min' \) -exec spellintian --picky {} +
./src/sge/sge_blib.cpp: halfs -> halves
./src/sge/sge_blib.cpp: completly -> completely

-- 
bye,
pabs

https://wiki.debian.org/PaulWise



More information about the Pkg-games-devel mailing list