Desperate for deb docs
Ben Scott
dragonhawk at gmail.com
Tue Oct 16 18:24:29 EDT 2007
On 10/16/07, Tyson Sawyer <tyson at j3.org> wrote:
> Where is the equivalent of srpm packages?
Last I looked: There isn't anything properly like an SRPM. Debian
source packages consist of the original, unmodified, upstream.tar.gz
source kit package, along with a single giant patch (diff) file. The
single giant patch file, applied against the corresponding source
tree, would yield a modified source tree, which included a new(er)
"debian" subdirectory. That subdirectory contained control files and
scripts to build and install the .deb binary package.
Last I looked was several years ago, but this is Debian, after all... ;-)
I suppose Debian-originated packages might lack the diff and just
include the "debian" subdirectory in the original source tarball.
Dunno.
> How does one re-build a .deb package?
You grab the source package, untar it. You grab the patch file and
apply it. You run the build tools. I seem to recall there being an
over-abundance of build tools (i.e., there was no one true way, unlike
rpmbuild(8) for RPM). On the other hand, I imagine this did yield
more flexibility in the build process -- with a distribution as large
as Debian's, that's probably needed.
The state of Debian's package building tools always struck me as
somewhat privative/confused compared to RPM. Conversely, Debian had
better distro building tools. Makes sense: Red Hat's stuff was
generally "Internal Use Only" (in nature, if not in fact). Contrast
this with Debian, which applies "Free" to their whole effort, not just
the end product.
I expect, with the success of Fedora, RPM-land is improving in the
distro tools area. And I would expect even dpkg-land has made some
progress by now, too. ;-)
> What if I want to rebuild a package on a different architecture ...
There's an architecture that might use .deb packages but the Debian
distribution *doesn't* support? Come on, Debian is the NetBSD of
Linux distributions. :-) Just use apt-get(1) to install the binary
package from the repository.
> ... or with some minor change?
I assume you modify the modified source tree in place (optionally
modifying the version ID to reflect your local change) and run the
build front-end of your choice. If you want a "source package" (i.e.,
the single giant patch file), you run "diff -u" against the original
Debian-modified tree and the locally-modified Debian-modified tree.
(I've never actually done this, so I could be way off.)
-- Ben
More information about the gnhlug-discuss
mailing list