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

Re: Simple Debian Package Creation?



Hi,

I know both the deb (Debian developer) and the rpm (at work) side..

Am Mittwoch, 3. November 2004 17:47 schrieb Zach Garner:
> First:
>   1. The sheer number of helper scripts, with layers and layers of
> scripts built on top of each other is really confusing.

You don't need to use them... mostly what you need is just dh_* from 
debhelper. Each one has its own purpose. Many people don't need them all...

>   2. The number of files that I have to create within the /debian
> directory is difficult to deal with, and having to create the /debian
> directory within my application directory and being forced to name my
> application directory according to debian rules is very irritating.

You don't need to do that manally. dh_make gives you a template. You need to 
adjust that a bit, though, for your needs...

>   3. Most of the package creation scripts (I'm refering explicitly to
> dh_make which is supposed to be the proper way of creating a package, as
> discussed in the New Maintainer's Guide) expect that you are building a
> traditional unix application, that's written in C, has ./configure and a
> Makefile. All we are doing in most of our packages is installing some
> files. Why can't that be simple?

Because most stuff *is* ./configure; make; make install

If you have a stuff which is not that way and just needs putting files around, 
just do it. No one tells you you have to stick exactly with dh_makes 
template. you just can use cp, install or whatever to install the files into 
the proper debian/foo/usr/... directories...

> I feel that RPM creation is better here. One command ('rpmbuild') is
> used. One file, the <package>.spec file, is needed with different
> sections for each part. I can keep my rpm packaging files any where I
> want it, and I don't have to have my application directory conform to

You can have that with debian/* too. Just stick them somewhere and copy it 
into your pristine source if needed. No one tells you that debian/ has to be 
in your source tarball, it even is discouraged...

> any debian rules.

the foo-0.1 is a convention. if your stuff doesn't follow it it is broken. I 
don't see anyhow how it is bad to name a directory foo-version.

And: You *could* use a random directory name later after dh_install 
(dh_install needs to get the info it puts into the template from somehwre). 
YOu'll get warnings and your poackage probably won't be Debian policy 
compliant (.dsc/.diff.gz/.orig.tar.gz) but it would work.

dh_make is a tool for people building debs mainly for the dist. There are some 
policies which *are* to follow...

>
> Why can't debian package building be as simple as 'dpkg-create
> foo.spec'?

That's what dh_make does. Packaging is more than just using a template...

> Second, why can't I create packages with standard unix commands? Why
> can't I say something like:
>   $ tar cvzf data.tgz myapplication/*
>   $ tar czvf control.tgz control
>   $ tar czvf mypackage-0.1.deb data.tgz control.tgz

man ar, man tar, man deb

you *could* do that manually, read man deb for the exact structure - as deb 
ist just an ar archive with two tar archives and one file. But it is *far* 
easier to get a package right with the "normal" way...

> My main complaint here, is that we really want to be able to build the
> debian packages from any developer workstation. Since we don't impose
> operating system requirements on developers, we can't expect debian to
> be on all workstations.

You can't do that with rpm either. You need rpm installed anyhow.
Same with debian.

Regards,

Rene
-- 
 .''`.  René Engelhard -- Debian GNU/Linux Developer
 : :' : http://www.debian.org | http://people.debian.org/~rene/
 `. `'  rene@debian.org | GnuPG-Key ID: 248AEB73
   `-   Fingerprint: 41FA F208 28D4 7CA5 19BB  7AD9 F859 90B0 248A EB73



Reply to: