[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: pdebuild-cross fixes in wook-shed branch



On Tue, 14 Sep 2010 02:28:12 +0100
Wookey <wookey@wookware.org> wrote:

> I found some bugs in xapt yesterday and have fixed them. I've put them
> in a 'wook-shed' branch of emdebian-crush as I've diverged a fair way
> from trunk.

Problems:

0: i18n support

Moving xapt to a new binary package does not mean changing the
textdomain because the textdomain is the name of the .mo file and a
single po/ directory can only generate a single .mo file per language.
If the textdomain IS changed, the install location must also change and
the .mo files must be put into the correct package - the lowest package
in the dependency chain of all packages which have strings which are
translated in the .mo files.

That then means that either xapt or pdebuild-cross must depend on a
package providing these .mo files OR the PO files are split apart and
every call for translations has to made FOUR times to cover the program
output translations and the manpage translations. It's bad enough with
two calls because translators often get confused and put the wrong PO
file into a bug report with the wrong description/title or end up
working on the same file as someone else instead of one file each.
There is no way I'll accept a change that doubles the translation
workload. There is also no way that the Ubuntu package can work as a
localised package with the changes in the branch. Migrate the current
PO files to check.

./usr/share/locale/it/LC_MESSAGES/pdebuild-cross.mo

Change po/Makevars DOMAIN if pdebuild-cross will always have a strict
dependency on the binary:Version of xapt or create a -common package.

1: use feature "switch"

I'd much rather use simple if() {} elsif () {} else {} layout. It's
easier to debug within perl. It's no slower. Unlike C, perl doesn't
take longer to compare strings than it does to compare identifiers.

2: please commit the change to remove lsb-release

3: force-yes - NO. Use the actual no-auth support in apt, not the
--force-yes sledgehammer. (See the multistrap code for code to turn
off SecureApt.) This is a complete deal breaker - I will not upload code
using --force-yes merely to disable SecureApt.

4: update ? Added to the usageversion output but no internal support
and I don't think there should be such support either. Please remove.
(This has also been translated, so use (cd po; intltool-update -r) and
then commit the modified PO files.)

5: A00pbuilder-cross-hook
system ("apt-get -y install apt-cross xapt
libparse-debianchangelog-perl realpath");

That line means that pdebuild-cross will need a strict dependency on
xapt to get the i18n support working OR we create another NEW package
(now is the time to do it) of xapt-common which depends on nothing.
This would prevent pdebuild-cross indirectly depending on dpkg-cross,
it could just depend on xapt-common (= ${source:Version})

6: lintian errors in changelog.
(dch -a will always sort those out.)

7: xapt could do with bash_completion support (pdebuild-cross too,
actually).

8: temporary files in SVN:
doc/pdebuild-cross/man/man1/pdebuild-cross-create.1

I've committed the PO files and adjusted to put the xapt.mo files into
the xapt package but I think xapt-common could be a better idea (just
tweak the Makefile install rule). I've also committed the changelog
fixes and dependency version in control.

> * xapt uses --force-yes so that it works in the presence of
> unauthenticated repositories. Without this it installs nothing. This
> was previously not set when cross-installing. I don't understand why,
> but there may be an issue here. 

There is - use the normal apt support for disabling SecureApt, not
--force*. -o Apt::Get::AllowUnauthenticated=true

> * xapt prints the apt commands it is going to execute so one can
> debug effectively. 

Probably needs to be behind a --verbose option as it is only for debug.
 
> * xapt has been put back in its own package. It doesn't really work
> in practice as part of pdebuild-cross. In order to ensure it is
> installed in the build chroot it needs to be an installable package.
> The existing code trying to copy it out of
> /usr/share/pdebuild-cross/xapt doesn't work unless pdebuild-cross is
> installed in the chroot and that seems confusing and excessive. That
> should only be installed outside the chroot. Having a seaparate
> package is neat and works nicely without copying files about. 

See above. This change is incomplete.

-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/

Attachment: pgp8S6ZYVJFze.pgp
Description: PGP signature


Reply to: