Re: Ports/Source Issues
On Mon, 19 Jul 1999, Brent Fulgham wrote:
# Based on the discussion we've been having to date, I think one
# of the first things we need to do is develop a policy regarding
# how Debian should work a "ports" methodology into its existing
This is essentially what the ports collection does for FreeBSD.
You can use it to build packages from source and manage packages
to some extent. What you are talking about (forgive me for
being a Debian newbie) is putting together an automated .deb
build tree. You have something similar to this already right?
Is it up somewhere the rest of us could poke at it and see
what it does and doesn't do already?
# My initial thought is that we should base such an animal on
# Debian's existing source+diff methods, with perhaps a bit more
# checking for system requirements (libraries, tools, etc.) This
# would allow us to eventually allow dselect/apt to administer
# a set of binary and source packages on a BSD (and even Linux)
How are dependencies currently handled? If I grab the source
and diffs and build a program myself will all the dependencies
be sucked in, built, and installed for me? Do they get sucked
in as .debs or will they also be built from source?
# I am invisioning a system that could maintain version and
# dependency information about the entire state of the system
# even if some of the system was binary installed, and some
# consisted of source packages.
Shouldn't the source package and binary package be separate?
I mean if I install the source package it doesn't mean other
packages can use the binaries from it until I've actually
built and installed what it produces, which is much different
than me having installed the source for it. Correct?
Would your proposed method of building from source install
the necessary package management cruft somewhere during the
build process for the binary package it just installed?
# Hamish, this might dovetail well with some recent traffic on
# Debian-devel asking about optimized-compiles for various
# architectures. Certain packages could be distributed as
# binary or source -- with the source version doing a self-
# compile on the user's machine. This would allow users to
# "twist knobs" (as Steve Price puts it ;) ) and customize things
# to their liking.
What would also be nice is to have all the source stuff together
in one place so that the strong-willed, sick individuals among
us, could pull them all down at one time as builds the one we
want and use the rest for reference as we create new ones. :)
# This could be a real advantage for both BSD and Debian GNU/Linux,
# and would perhaps be the first "fruit" of this effort.
Though not perfect you might want to take a look at the file
/usr/ports/Mk/bsd.port.mk on a FreeBSD machine. This is all
the logic to build from source and build a package too if you
type 'make package' for all of the ports in FreeBSD's tree.
It is a make(1) script that calls the package creation tool
(pkg_create) as part of the do-package target. Changing the
package tool used should be as easy as changing the values of
PKG_CMD and PKG_ARGS to more appropriate ones. It will be much
easier to play with on a FreeBSD machine because it requires
bmake to work. I suppose you could hack it up to work with
gmake, but it wouldn't be pretty.
Has anyone with .deb expertise and a FreeBSD box actually tried
the port I sent out earlier today? If someone could walk me
through what it takes to build a .deb I could fix the .mk file
above to DTRT and post an example or two of what I think you're
after. Would that help?