scons icon indicating copy to clipboard operation
scons copied to clipboard

Package builder cannot build Deb files

Open bdbaddog opened this issue 8 years ago • 0 comments

This issue was originally created at: 2010-05-22 00:17:59. This issue was reported by: russel.

russel said at 2010-05-22 00:17:59

The package builder can build RPMs but not Debs, this is a bug since Debian and Ubuntu work with Debs.

bdbaddog said at 2010-05-22 17:20:42

This is an enhancement request. There never was a .deb builder, the doc doesn't indicate there is one.

You're requesting new functionality.

gregnoel said at 2010-06-05 19:51:30

Bug party triage. Gary, who was the student who wrote the package builder? If he's still around and willing to undertake this enhancement, please assign this issue to him and set the milestone and priority to 2.1 p3. Otherwise, we'll review it again at the next bug party.

garyo said at 2010-06-14 20:09:22

Philipp; it's been a while since we've seen you around the SCons community, but perhaps you'd be willing to advise on the creation of a .deb packager based on your SCons GSoC 2006 work?

russel said at 2010-06-14 23:37:55

Building a deb for a pure Python system is I believe relatively straightforward since it just means copying the right bits of the source to the right place. The main complication is ensuring things are installed for each installed version of Python -- as I understand it, this means copying to the shared area and making links. As soon as there are any extensions, using C, C++, Pyrex, Cython, etc. things become a little more complex since a C compilation is required.

There is though the isue of using apt/aptitude/synaptic/. . . which requires loading of a deb in a repository. For Ubuntu this is relatively easy to hadle since anyone can create a PPA on Launchpad and create deb specific to each version of Ubuntu. There is already a SCons project and development team (Steven and I are the current members) and it should be easy to create the PPA, and not complex to create the deb builds given the knowledge from an earlier framework.

The material in the debian directory appears to be such a framework and looks as though it should just work to build an arbitrary stand-alone deb file. However, it assumes the version is 0.97, which implies it hasn't been updated or used in quite a while -- I just treid it and it doesn't work :-( The person named as the Debian packager is wrong, or at least not compatible with the listing at packages.debian.org. Of course packagers usually maintain their own packaging stuff and do not rely on upstream source. So it may be that the debian directory in the SCons source is redundant.

BTW the permissions on the files in the debian directory are wrong debian/rules at least needs execute permission.

russel said at 2010-06-14 23:41:00

Arrghhh... pressed submit too soon, the incorrect comment about debian/rules file is wrong, the permissions as they are are fine.

I should also note that using debhelper fails due to a missing setup.py file.

russel said at 2010-06-14 23:44:02

sed s/incorrect// < $PREVIOUS_COMMENT

russel said at 2010-06-14 23:56:30

I just created a PPA for the SCons team on Launchpad and tried to build the source package to upload but it seems that it really wants to build vesion 0.97 (i.e. there is a discontinuity between how the SCons distributions are build and how the debs are built -- is the same true for the RPMs?) and it assumes Steven Knight is doing the building of the source package!

I'll create a separate Bazaar branch of a builder (Bazaar, Mercurial and Git all have extra tools for building debs from control files held in branches/clones). I'll contact the named SCons Debian packages and see what they do.

gregnoel said at 2010-06-26 23:51:46

Russel, I want to be clear about what you are proposing as the scope of this issue. You start with one thing and then jump to another without transition, so I'm just not sure what you want.

If you are proposing that the Package() builder be enhanced to provide a .deb packager, that would be a very good thing. In theory, that would allow us to start providing a .deb of SCons itself again, a good thing. (In practice, we've had the .rpm packager in Package() for a couple of years now, but the SCons build still hand-crafts the steps.)

On the other hand, if you are proposing to re-enable the building of a .deb as a part of the SCons build process, that's a good thing, but it doesn't match either the title or the initial comment. I don't know why we stopped building .debs, but I believe it's an Ubuntu VM where the SCons builds are done, so it ought to have all the needed bits.

On the gripping hand, if you are proposing is to extend the Package() builder so that it could use third-party packagers, and then demonstrate how it works by creating a third-party .deb packager and use it to package SCons, that would be a great thing. I don't think we'd want to take Package() out of the core, but there are far more packagers than we could ever support, and a way to allow third parties to fill that gap would be extremely beneficial.

(If you are proposing something else, I missed it and you should try to clarify what you want.)

It's also not clear if you want to undertake this yourself and this issue is to let us know what you want to do, or if you want us to try to find someone who could do it and this issue is the statement of work. It makes a difference.

Tks.

gregnoel said at 2010-07-16 04:57:12

Bug party triage. No response from Russel, so moving this to future.

russel said at 2010-07-18 10:20:10

Apologies for jumping around: too much writing and not enough reviewing and re-writing before pressing submit.

Point one is that whatever SCons infrastructure there is for creating RPMs there should be analogous infrastructure for creating Debs. Everything else either follows or should be a separate issue.

I guess the right way forward is for me to do some work with code rather than try and write here. This may mean both a feature branch of the SCons core and a separate tool or some combination of both. Either way only after some coding effort will the answers to your questions about functionality present themselves.

bdbaddog avatar Jan 02 '18 14:01 bdbaddog