On Sun, Aug 5, 2012 at 3:30 AM, Jakub Wilk <jw...@debian.org> wrote:
>
> * Jason Gerard DeRose <jder...@novacut.com>, 2012-08-04, 18:26:
>>
>>  dget -x
>> http://mentors.debian.net/debian/pool/main/p/pyskein/pyskein_0.7.1-1.dsc

Thanks for taking the time to look this over and give me such detailed
feedback! Notes on my corrections follow:

> Let me see:
>
>> Build-Depends: debhelper (>= 8.9),
>
>
> Out of curiosity, why >= 8.9?

When I started working on this, 8.9 was the version in Debian testing.
But as I don't know if the current package actually works with 8.9, I
changed this to >= 9.20120608, the current version in Debian testing.

Is that correct?

>
>>    python3 (>= 3.2),
>>    python3-dev (>= 3.2),
>
>
> You don't need to build-depend on both, python3-dev would be enough.
> Shouldn't
> that be python3-all-dev though?

Fixed, now Build-Depends on python3-all-dev (>= 3.2.3)

> Also, why 3.2? Upstream README says “you need Python 3.0 or later”.

I did this because Debian testing doesn't contain Python 3.1 or 3.0,
plus I personally have only extensively tested this package under 3.2.

>> X-Python-Version: 3.2
>
>
> This is wrong, X-P-V is for 2.X versions only.

This was a hack to prevent setup.py from getting called with Python2.
Seems the (hopefully) correct fix was to override_dh_auto_clean.

Is my override_dh_auto_clean hack acceptable? From a few examples I
found, this seems to be how people are currently dealing with
Python3-only packages.

>> X-Python3-Version: 3.2
>
>
> Shouldn't that be ">= 3.2"?

Fixed, now I have X-Python3-Version: >= 3.2

>> Depends: python3 (>= 3.2),
>
>
> Don't hardcode the dependency, use ${python3:Depends} instead.

Fixed.

>> Description: PySkein implementation of Skein cryptographic hash algorithm
>
>
> Maybe s/PySkein/Python/?

Agreed, fixed.

>> algorithm, one of the finalists in the NIST SHA-3 Competition.  While
>> originally based on the optimized version of the reference implementation
>> by
>> Doug Whiting, PySkein is now feature complete and offers a pythonic
>> interface,
>
>
> Is the fact it was based on $something in the past really important enough
> to put it in the package description?

Agreed, I removed this sentence.

>> all released as free software under the GNU General Public License.  Its
>> highlights are:
>
>
> If it wasn't free software, it wouldn't be allowed in Debian. No need to
> mention that in the description.

I removed this sentence also.

>> Simple interface following the hash algorithms in the Python standard
>> library
>> (like hashlib.sha1 or hashlib.sha256)
>> .
>> All features of the Skein specification (flexible digest sizes, MAC
>> generation, tree hashing, and various other arguments)
>> .
>> High performance through optimized C implementation (7.1 cycles/byte for
>> sequential hashing and 4.2 cycles/byte for tree hashing on two cores,
>> measured
>> on an Athlon 64 X2)
>> .
>> Threefish, the tweakable block cipher used in Skein, available for
>> encryption
>> and decryption on its own
>
>
> This looks like an itemized lists, except that it doesn't have bullets.
> Looks odd to me.

I didn't realize you could do bullet points in the long description.
It now uses bullet points and I think it looks much nicer.

> You may want to get your descriptions reviewed by debian-l10n-english@ldo.

Okay, thank you.

> The copyright file doesn't document license/copyright status of
> doc/_static/jquery.js. It also doesn't say say where the upstream sources
> were obtained; see Policy §12.5.

I updated the copyright file to use the machine-readable copyright-format/1.0.

It now includes a Source and a Files section for doc/_static/jquery.js

> debian/python3-skein.install is empty. Remove it.

Done.

>> Abstract: Documentation for PySkein in HTML form.
>
>
> One of the features of doc-base is that you can have the same document in
> multiple formats. Mentioning the format in the Abstract field seems weird to
> me.

Fixed

>>        for pyvers in $(shell py3versions -vr); do \
>
>
> Missing “set -e”; see Policy §4.6.

Fixed. I updated this using an example in the Python/AppStyleGuide.

>>                LC_ALL=en_US.UTF-8 python$$pyvers setup.py install \
>>                                --install-layout=deb \
>>                                --root $(CURDIR)/debian/python3-skein; \
>
>
> IIRC “LC_ALL=en_US.UTF-8” is too work around issue 9561. This bug was
> fixed in Python 3.2.3 RC 1, so you might want to just bump version in
> Build-Depends and drop this work-around. Or you may want to use the C.UTF-8
> locale, which is provided by libc-bin (>= 2.13-1).

Fixed. I now Depend on python3-all-dev (>= 3.2.3) and I removed the
hacks I used to work around issue 9561.

>>        dh_auto_build
>
>
> Uh, this looks wrong. dh_auto_* doesn't support building Python 3 modules.
> In fact, I see this in the build log:

Fixed, I removed this and am now only building the sphinx docs in
override_dh_auto_build.

> | Can't exec "pyversions": No such file or directory at
> /usr/share/perl5/Debian/Debhelper/Buildsystem/python_distutils.pm line 120.
> | Use of uninitialized value $python_default in substitution (s///) at
> /usr/share/perl5/Debian/Debhelper/Buildsystem/python_distutils.pm line 121.
> | Use of uninitialized value $python_default in substitution (s///) at
> /usr/share/perl5/Debian/Debhelper/Buildsystem/python_distutils.pm line 122.
>
> The package will FTBFS once #683551 is fixed…
>
> Lintian reports:
>
> W: python3-skein-doc: embedded-javascript-library
> usr/share/doc/python3-skein-doc/html/_static/jquery.js
> W: python3-skein-doc: embedded-javascript-library
> usr/share/doc/python3-skein-doc/html/_static/underscore.js
>
> You may want to use dh_sphinxdoc to fix these.

Fixed. Now I'm using --with=sphinxdoc and python3-skein-doc Depends on
${sphinxdoc:Depends}.

> Lintian also emits:
>
> W: python3-skein: hardening-no-fortify-functions
> usr/lib/python3/dist-packages/_skein.cpython-32mu.so

Apologies, but I don't know where to start on this.

How do I enable this? Does this require a patch to the upstream source code?

Any suggestions?

> blhc confirms it's a true positive:
>
> CPPFLAGS missing (-D_FORTIFY_SOURCE=2): gcc -pthread -DNDEBUG -g -fwrapv
> -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4
> -Wformat -Werror=format-security -fPIC -Isrc -I/usr/include/python3.2mu -c
> src/threefish.c -o build/temp.linux-i686-3.2/src/threefish.o
> CPPFLAGS missing (-D_FORTIFY_SOURCE=2): gcc -pthread -DNDEBUG -g -fwrapv
> -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4
> -Wformat -Werror=format-security -fPIC -Isrc -I/usr/include/python3.2mu -c
> src/_skeinmodule.c -o build/temp.linux-i686-3.2/src/_skeinmodule.o
>
> Last but not least, lintian also emits:
>
> E: python3-skein: python-script-but-no-python-dep usr/bin/skeinsum
>
> This is because /usr/bin/skeinsum has #!/usr/bin/python3.2 shebang, but
> the package depends on python3, which of course doesn't guarantee that
> /usr/bin/python3.2 exists. You probably want to make this shebang
> unversioned.

What's the best way to make the shebang unversioned? I believe calling
setup.py with `python3` rather than `python3.2` would do it, but that
means not looping through `py3versions -r`.

Any suggestions?

> --
> Jakub Wilk

Thanks again for your time!

>
> --
> To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
> listmas...@lists.debian.org
> Archive: http://lists.debian.org/20120805093030.ga1...@jwilk.net
>


--
To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/caczosvhmvwox7pk9+w3qunwqvxccypz8draqxjqynedu2...@mail.gmail.com

Reply via email to