Hi Jonathan - many thanks for taking the time to offer such thorough
advice. 

> 1. Where is the upstream source?
> --------------------------------
> 
> Running "uscan --force-download" produces
> 
> |  uscan warning: In debian/watch,
> |    no matching hrefs for watch line
> |    
> http://rephial.org/downloads/3.2/angband-([0-9]\.[0-9]\.[0-9][a-z]?)\-src\.tar\.gz
> 
> and no upstream tarball.

Thank you for the catch - upstream has changed its naming convention and
no longer uses the -src part of the name. I have amended debian/watch
accordingly. (I assume the line "opts=dversionmangle=s/\-src$// \" was
supposed to deal with this change, but somehow fails to do so.)

>   debian/copyright says the upstream sources
> were obtained from
> 
> |  git://github.com/angband/angband.git

This is the upstream master from which my git repo on alioth is
mirrored. I have changed this to refer to the official download named in
the watch file.

> debian/rules get-orig-source says
> 
> | cd debian//.. &&                                        \
> |           uscan --verbose --rename --destdir debian/../.. || true
> | -- Scanning for watchfiles in .
> | -- Found watchfile in ./debian
> | -- In debian/watch, processing watchfile line:
> |    opts=dversionmangle=s/\-src$// 
> http://rephial.org/downloads/3.2/angband-([0-9]\.[0-9]\.[0-9][a-z]?)\-src\.tar\.gz
> | uscan warning: In debian/watch,
> |   no matching hrefs for watch line
> |   
> http://rephial.org/downloads/3.2/angband-([0-9]\.[0-9]\.[0-9][a-z]?)\-src\.tar\.gz
> | -- Scan finished
> 
> I would have expected the first two to get a pristine upstream tarball,
> the third to produce a repacked one if necessary (e.g., if building from
> a snapshot).

All three should now get the same tarball, though in my tests,
debian/rules get-orig-source says

cd debian//.. &&                                        \
          uscan --verbose --rename --destdir debian/../.. || true
-- Scanning for watchfiles in .
-- Found watchfile in ./debian
-- In debian/watch, processing watchfile line:
   opts=dversionmangle=s/\-src$//
http://rephial.org/downloads/3.2/angband-([0-9]\.[0-9]\.[0-9][a-z]?)\.tar\.gz
-- Found the following matching hrefs:
     angband-3.2.0.tar.gz
Newest version on remote site is 3.2.0, local version is 3.2.0
 => Package is up to date
-- Scan finished

... but doesn't actually download anything, even when no orig.tar.gz is
present. Ho hum.

> 2. Cleaning up
> --------------
> 
> | $ debian/rules clean
> | ====== making target CLN-common [new prereqs: ]======
> | ====== making target CLN-common [new prereqs: ]======
> | test ! -f Makefile || /usr/bin/make distclean
> | make[1]: Entering directory `/tmp/angband'
> | mk/buildsys.mk:21: mk/extra.mk: No such file or directory
> | mk/buildsys.mk:381: mk/sinclude.mk: No such file or directory
> | make[1]: *** No rule to make target `mk/sinclude.mk'.  Stop.
> | make[1]: Leaving directory `/tmp/angband'
> | make: [CLN-common] Error 2 (ignored)
> | ====== making target CLN-indep [new prereqs: CLN-common]======
> | ====== making target clean-indep [new prereqs: CLN-indep]======
> | ====== making target CLN-arch [new prereqs: CLN-common]======
> | ====== making target CLEAN/angband [new prereqs: CLN-arch]======
> | ====== making target CLEAN/angband [new prereqs: ]======
> | rm -rf /tmp/angband/debian/angband
> | ====== making target clean-arch [new prereqs: CLN-arch angband]======
> | ====== making target clean [new prereqs: clean-indep clean-arch]======
> | test -f Makefile && /usr/bin/make distclean
> | make[1]: Entering directory `/tmp/angband'
> | mk/buildsys.mk:21: mk/extra.mk: No such file or directory
> | mk/buildsys.mk:381: mk/sinclude.mk: No such file or directory
> | make[1]: *** No rule to make target `mk/sinclude.mk'.  Stop.
> | make[1]: Leaving directory `/tmp/angband'
> | make: [clean] Error 2 (ignored)
> | rm -f   debian/files debian/buildinfo debian/substvars angband 
> config.status config.log aclocal.m4 src/autoconf.h src/autoconf.h.in 
> mk/extra.mk mk/sinclude.mk 
> | rm -rf /tmp/angband/debian/clean debian/stamp autom4te.cache debian/stamp
> | rm -f core TAGS                                              \
> |                `find . ! -regex '.*/\.git/.*' ! -regex '.*/\{arch\}/.*'     
>  \
> |                        ! -regex '.*/CVS/.*'   ! -regex '.*/\.arch-ids/.*'   
>  \
> |                        ! -regex '.*/\.svn/.*'                               
>  \
> |                    \( -name '*.orig' -o -name '*.rej' -o -name '*~'       
> -o \
> |                       -name '*.bak'  -o -name '#*#'   -o -name '.*.orig'  
> -o \
> |                       -name '.*.rej' -o -name '.SUMS' \)                    
>  \
> |                 -print`
> 
> It looks alarming (why does cleaning up produce errors?) but probably
> okay.

It is because debian/rules clean calls make distclean more than once.
Upstream's build system produces these errors if make distclean is
called a second time. These two files (extra.mk and sinclude.mk) are
produced by configure, and are not part of the source archive. They need
to be deleted in distclean, so I do not think there is a way to prevent
this error.

> 3. The build
> ------------
> 
> | $ debian/rules build
> [...]
> | checking for stat... yes
> | checking if make supports SysV-style inclusion... yes
> | checking for make silent include syntax... gnu
> | make[2]: Entering directory `/tmp/angband'
> | make[2]: *** No rule to make target `conftest.mk'.  Stop.
> | make[2]: Leaving directory `/tmp/angband'
> | checking for initscr in -lcurses  ... yes
> 
> What is this about?

I don't see this error at all:

checking if make supports SysV-style inclusion... yes
checking for make silent include syntax... gnu
checking for initscr in -lcurses  ... yes
checking for initscr in -lncurses ... yes

> [...]
> | Successfully compiled option.c.
> | parser.c: In function ‘parser_parse’:
> | parser.c:228:8: warning: variable ‘iline’ set but not used 
> [-Wunused-but-set-variable]
> 
> The build is remarkably light on warnings, but there are some warnings
> like this when building with gcc 4.6.

We (upstream) ensure that all compiler warnings are removed prior to
release - but I think there are a couple which only show up in newer
versions of gcc. I don't see this one or any others with gcc 4:4.5.2-2.

> [...]
> | dpkg -l gcc 'libc*' binutils ldso make dpkg-dev | \
> |           awk '$1 == "ii" { printf("%s-%s\n", $2, $3) }' > \
> |            debian/buildinfo
> | No packages found matching ldso.
> 
> This looks harmless but crufty --- checking snapshot.debian.org for
> ldso only turns up a package in Debian 0.93R6.  "dpkg-query -W"
> might be more convenient than parsing "dpkg-query -l" output.

This line in local.mk clearly hasn't been updated in a long time. Maybe
since before dpkg-query was written? I have removed ldso from this line.

> | $ git status -s
> |  M debian
> | $ cd debian
> | $ git status -s
> | ?? buildinfo
> | ?? stamp/
> 
> It seems that debian/ does not have a .gitignore.  I can write one if
> you'd like.

I've added a .gitignore for the debian/ submodule - thanks for reminding
me.

> 4. Building the binary packages
> -------------------------------
> 
> | $ fakeroot debian/rules binary
> [...]
> | $ dpkg-shlibdeps       /tmp/angband/debian/angband/usr/games/angband 
> | dpkg-shlibdeps: warning: dependency on libfontconfig.so.1 could be avoided 
> if "/tmp/angband/debian/angband/usr/games/angband" were not uselessly linked 
> against it (they use none of its symbols).
> [ etc ]
> 
> There are lots of warnings like that.  Intended?

No, but when I first adopted the package (mid-2009) I tried to remove
the unnecessary dependencies on libsm6 and libice6, and everything
broke, so I left them. I will have another go now I know a little
more ...

> 5. The build-time dependencies
> ------------------------------
> 
> | Build-Depends: autoconf, automake | automaken, cvs,
> |  libncurses5-dev | libncurses-dev | ncurses-dev,
> |  libsdl1.2-dev | libsdl-dev, libsdl-mixer1.2-dev,
> |  libsdl-gfx1.2-dev, libsdl-image1.2-dev, libsdl-ttf2.0-dev,
> |  libsdl-net1.2-dev, libglade2-dev
> | # depending on cvs sucks, but gettext needs it without depending on it,
> | # and autoreconf calls autopoint from gettext, which uses a CVS repo in
> | # a tar ball. See Bug#506022 and Bug#508230 
> 
> Isn't there an autopoint package nowadays?

There is, but it depends on git or git-core and conflicts with gettext.
I wonder if it will be possible to depend merely on gettext now.

> It might make sense to test with automake1.4 installed the automake
> alternative set to point at it, to see if "Build-Conflicts: automake1.4"
> is needed.

Ok, will do - thanks.

> 6. The run-time dependencies
> ----------------------------
> 
> | Recommends: xfonts-base, angband-audio
> 
> Where can I find this angband-audio package?  Policy §2.2.1 says

It's also waiting at mentors.debian.net (but you knew that, I'm
guessing ;-)). I have downgraded this to Suggests. IMO "Recommends"
should not be part of something defined as "requires" in that para, but
I do what I'm told. 

I will upload a new version to m.d.n this weekend. Thanks again for your
help. 

Regards,

Chris




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

Reply via email to