[Distutils] bdist_deb in stdeb

Olof Bjarnason olof.bjarnason at gmail.com
Mon Sep 28 22:13:22 CEST 2009

2009/9/28 Andrew Straw <strawman at astraw.com>:
> Olof Bjarnason wrote:
>> 2009/9/28 Olof Bjarnason <olof.bjarnason at gmail.com>:
>>> 2009/9/28 Andrew Straw <strawman at astraw.com>:
>>>> Gerry Reno wrote:
>>>>> Olof Bjarnason wrote:
>>>>>>> Ok, the commands behave like makefile rules, once run they don't run
>>>>>>> again.
>>>>>>> But there are still several issues here:
>>>>>>> Remember that I said that my goal with 'bdist_deb' was for users to
>>>>>>> have a
>>>>>>> SINGLE command to generate a .deb.
>>>>>>> What needs to be achieved is for a command like this:
>>>>>>> $ python setup.py  bdist_deb
>>>>>>> OR
>>>>>>> $ python setup.py  bdist_deb
>>>>>>> --ignore-single-version-externally-managed
>>>>>>> to be possible.  'bdist_deb' would call sdist_dsc internally with the
>>>>>>> necessary args WITHOUT having to explicitly put 'sdist_dsc' on the
>>>>>>> command
>>>>>>> line.
>>>>>> This would be _exactly_ what I'm looking for :)
>>>>> I know.  I've had many of my users requesting exactly the same thing
>>>>> as well and I've been pursuing this for months now and when I got a
>>>>> 'bdist_deb' working with stdeb I knew I was getting close.  It just
>>>>> needs a little more tweeking and I think we'll have it.  Let's wait
>>>>> and see what Andrew says here.
>>>> I don't understand what you're waiting on me for at this point.
>>>> Olaf -- as I understand it -- you need to work with Ubuntu 9.04. I just
>>>> released stdeb 0.4 which supports this "bdist_deb" and doesn't pass the
>>>> --single-version-externally-managed option anyway and therefore doesn't
>>>> support the "--ignore-single-version-externally-managed" option. I don't
>>>> understand why you need to pass
>>>> "--ignore-single-version-externally-managed". "python setup.py
>>>> bdist_deb" should work for you. Please report with specific information
>>>> about expected and actual behavior if things are not working to your
>>>> desire (taking care to read the, admittedly minimal, documentation in
>>>> README.rst).
>>> I tried "stdeb_run_setup", it got me a lot of files (and directories)
>>> although no .deb file.
>>> Also tried "python setup.py bdist_deb" and ".. sdist_deb". Didn't work.
>>> What is the command line I'm supposed to run in the setup.py directory?
>> OK I came a little further apt-get:ing debhelper and python-all-dev,
>> then issuing
>> sudo python -c "import stdeb; execfile('setup.py')" bdist_deb
>> .. but it ended with this:
>> Compatibility mode: using detected XS-Python-Version.
>>    dh_scrollkeeper
>>    dh_usrlocal
>>    dh_link
>>    dh_compress
>>    dh_fixperms
>>    dh_strip
>>    dh_makeshlibs
>>    dh_shlibdeps
>>    dh_installdeb
>>    dh_gencontrol
>>    dh_md5sums
>>    dh_builddeb
>> varning, "debian/python-fortressdefender/DEBIAN/control" innehåller
>> användardefinierat fält "Python-Version"
>> dpkg-deb - fel: (upstream) version ("dev") innehåller inga siffror
>> dpkg-deb: 1 fel i kontrollfilen
>> dh_builddeb: command returned error code 512
>> make: *** [binary] Fel 1
>> dpkg-buildpackage: misslyckades: fakeroot debian/rules binary
>> returnerade felkod 2
>> Traceback (most recent call last):
>>   File "<string>", line 1, in <module>
>>   File "setup.py", line 42, in <module>
>>     scripts = ["bin/fortressdefender"],
>>   File "/usr/lib/python2.6/distutils/core.py", line 152, in setup
>>     dist.run_commands()
>>   File "/usr/lib/python2.6/distutils/dist.py", line 975, in run_commands
>>     self.run_command(cmd)
>>   File "/usr/lib/python2.6/distutils/dist.py", line 995, in run_command
>>     cmd_obj.run()
>>   File "build/bdist.linux-x86_64/egg/stdeb/command/bdist_deb.py", line
>> 40, in run
>>   File "build/bdist.linux-x86_64/egg/stdeb/util.py", line 73, in process_command
>>   File "build/bdist.linux-x86_64/egg/stdeb/util.py", line 31, in check_call
>> stdeb.util.CalledProcessError: 2
> please do:
> sudo apt-get install build-essential
> sudo apt-get install fakeroot

Did both, added no package to my system.

(I guess you are intending to supply a stdeb.deb in the future to fix
all dependencies ;) ?

It would be slick with a script that did this command line:

sudo python -c "import stdeb; execfile('setup.py')" bdist_deb)

I'm going to bed over here. Attaching the whole dump of the above command line.

> And try again.
> -Andrew

-------------- next part --------------
olof at olof-desktop:~/prj/fd/fortressdefender$ sudo python -c "import stdeb; execfile('setup.py')" bdist_deb
['Constants.py', 'Point.py', 'SoundPlayer.py', 'Entity.py', 'FixY.py', 'CloseActionTrigger.py', 'setup.py', 'MouseEventHandler.py', 'FakeDrawer.py', 'RunAllUnitTests.py', 'Spring.py', 'Colors.py', 'Drawer.py', 'Ball.py', 'Run.pyw']
running bdist_deb
running sdist_dsc
running egg_info
writing fortressdefender.egg-info/PKG-INFO
writing top-level names to fortressdefender.egg-info/top_level.txt
writing dependency_links to fortressdefender.egg-info/dependency_links.txt
warning: manifest_maker: standard file '-c' not found
reading manifest file 'fortressdefender.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'fortressdefender.egg-info/SOURCES.txt'
/usr/local/lib/python2.6/dist-packages/stdeb-0.4-py2.6.egg/stdeb/util.py:630: UserWarning: working around Debian #548392, changing XS-Python-Version: to 'current'
CALLING dpkg-source -b fortressdefender-dev fortressdefender_dev.orig.tar.gz (in dir deb_dist)
dpkg-source: info: använder källkodsformatet "1.0"
dpkg-source: info: bygger fortressdefender med befintlig fortressdefender_dev.orig.tar.gz
dpkg-source: info: bygger fortressdefender i fortressdefender_dev-1.diff.gz
dpkg-source: info: bygger fortressdefender i fortressdefender_dev-1.dsc

More information about the Distutils-SIG mailing list