[Distutils] bdist_deb in stdeb

Gerry Reno greno at verizon.net
Tue Sep 29 01:11:59 CEST 2009

Andrew Straw wrote:
> Gerry Reno wrote:
>> Andrew Straw wrote:
>>> Gerry Reno wrote:
>>>> What if stdeb only had the command 'bdist_deb' and had no other
>>>> command.
>>> I will not remove the "sdist_dsc" command from stdeb. I believe that the
>>> ability to produce debian source packages is much more important that
>>> the ability to produce binary packages which only target a single
>>> architecture and version of Debian/Ubuntu. "bdist_deb" is just a trivial
>>> add-on to that saving a couple lines of typing which may be helpful to
>>> people who aren't familiar with those lines. But I see the .dsc and
>>> associated files as much more useful as the compiled .deb files.
>> LMAO.  Dang it.  I am not suggesting or implying that you should
>> remove the 'sdist_dsc' command.  I'm trying to illustrate that the
>> commandA-opts are just that and nothing more: commandA-opts.  And
>> whatever part of the build/install process that they apply to, then
>> the commandA can use them for WHATEVER purpose.  Which means that
>> since 'bdist_deb' calls 'sdist_dsc' it is perfectly ok to allow all
>> 'sdist_dsc' options to be passed into the 'bdist_deb' command which
>> can then pass them along to 'sdist_dsc'.  'bdist_deb' is a SUPERSET of
>> 'sdist_dsc'.
> I see -- you want to pass-through the options to sdist_dsc. Fine,
> implement this in a patch and I'll accept it.
Oh sure, I get to have all the fun.

>>> For setting environment variables this way, they cannot be separated by
>>> a semicolon
>> The environment variables are not individually separated by a
>> semicolon.  The WHOLE shell script environment variable declaration
>> statement needs to be separated from the install line statement.
>> Simple demonstration of the problem with the 'echo' statement
>> simulating the 'install' statement:
>> $ a='123' b='456' echo test $a $b
>> test
>> $ a='123' b='456'; echo test $a $b
>> test 123 456
> Passing to a subprocess is different. We're passing to a subprocess:
> $ a='123' python -c "import os; print os.environ['a']"
> 123
> $ a='123'; python -c "import os; print os.environ['a']"
> Traceback (most recent call last):
>   File "<string>", line 1, in <module>
>   File "/usr/lib/python2.6/UserDict.py", line 22, in __getitem__
>     raise KeyError(key)
> KeyError: 'a'
Ok, I see what is happening.  In order for the env vars to be available 
to both the line itself AND to the subprocess it has to be declared as 
exported like this:

export a='123' b='456'; python -c "import os; print os.environ['a']" && 
echo $b

Now it will work both ways.


More information about the Distutils-SIG mailing list