Bug#701137: pybuild using skip-build=1 for distutils breaks distutils-extra i18n

2013-02-24 Thread Steve Langasek
On Fri, Feb 22, 2013 at 09:52:38AM +0100, Piotr Ożarowski wrote:
> > So it seems to me that passing 'skip-build=1' by default is an interface
> > change that should be reverted, to maximize compatibility with existing 
> > build
> > systems.

> You do realize it's a bug in distutils/setuptools/distribute and not in
> pybuild, right?

No, I don't realize that all.  Distutils etc. may not be well designed, but
the bug here is that pybuild is passing a non-default option that's
incompatible with existing uses.  I don't see how that's a distutils
problem.  OTOH, I also don't know why pybuild is passing skip-build=1,
except as an optimization?

> All I can do is to add yet another workaround (.pydistutils.cfg one is
> already a dirty hack). I'm not sure if I want to, I'd rather suggest you
> to add to debian/rules:

>   export PYBUILD_INSTALL_ARGS=build

> or use PYBUILD_BEFORE_INSTALL / --before-install

> Do you know how many packages it affects? Maybe it's worth making the
> build longer if that's what many upstream authors rely on (I wouldn't be
> surprised to be honest - distutils is a mess)

There are 39 packages in unstable that build-depend on
python-distutils-extra, and it looks like about half of them use build_i18n.
The build_icons and build_help classes are also affected.

So depending on why skip-build=1 is being set, it's possible that it's not
worth pybuild being compatible out-of-the-box with distutils-extra.  But it
would be nice if the universal python builder could handle this case.

-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
Ubuntu Developerhttp://www.debian.org/
slanga...@ubuntu.com vor...@debian.org


signature.asc
Description: Digital signature


Bug#701137: pybuild using skip-build=1 for distutils breaks distutils-extra i18n

2013-02-22 Thread Piotr Ożarowski
[Steve Langasek, 2013-02-22]
> Package: python3
> Version: 3.3.0-2
> Severity: normal
> 
> pybuild's distutils support assembles a .pydistutils.cfg that includes the
> following:
> 
> [install]
> {...}
> skip-build=1
> 
> This is incompatible with build_i18n from distutils-extras, which relies on
> being called from the install target in order to extend the data_files list:
> 
> data_files = self.distribution.data_files
> [...]
> for po_file in glob.glob("%s/*.po" % self.po_dir):
> [...]
> data_files.append((targetpath, (mo_file,)))
> 
> This doesn't work when build_i18n is never called from the install target -
> as is the case when skip-build=1 is passed.
> 
> So it seems to me that passing 'skip-build=1' by default is an interface
> change that should be reverted, to maximize compatibility with existing build
> systems.

You do realize it's a bug in distutils/setuptools/distribute and not in
pybuild, right?

All I can do is to add yet another workaround (.pydistutils.cfg one is
already a dirty hack). I'm not sure if I want to, I'd rather suggest you
to add to debian/rules:

  export PYBUILD_INSTALL_ARGS=build

or use PYBUILD_BEFORE_INSTALL / --before-install

Do you know how many packages it affects? Maybe it's worth making the
build longer if that's what many upstream authors rely on (I wouldn't be
surprised to be honest - distutils is a mess)


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



Bug#701137: pybuild using skip-build=1 for distutils breaks distutils-extra i18n

2013-02-21 Thread Steve Langasek
Package: python3
Version: 3.3.0-2
Severity: normal

pybuild's distutils support assembles a .pydistutils.cfg that includes the
following:

[install]
{...}
skip-build=1

This is incompatible with build_i18n from distutils-extras, which relies on
being called from the install target in order to extend the data_files list:

data_files = self.distribution.data_files
[...]
for po_file in glob.glob("%s/*.po" % self.po_dir):
[...]
data_files.append((targetpath, (mo_file,)))

This doesn't work when build_i18n is never called from the install target -
as is the case when skip-build=1 is passed.

So it seems to me that passing 'skip-build=1' by default is an interface
change that should be reverted, to maximize compatibility with existing build
systems.


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