Source Packages and Rebuilding from Source
Gustavo Niemeyer
gustavo at niemeyer.net
Tue Mar 14 06:52:35 PST 2006
Hello Darrin,
> I was doing a little dreaming this morning.
>
> >From what I understand, apt and native rpm solve the install problem by
> looking for a graph like so:
>
> apache 1.3-3
> libc6 2.5.6-9
> libapache1.3 1.3-3
> apache 1.3-3
>
> Smart improves on this by turning each entry into a tuple and then just
> looking for a graph:
>
> apache 1.3-3 INSTALL
> lighttpd 3.2-30 REMOVE
> libc6 2.5.6-9 INSTALL
> libapache1.3 1.3-3 INSTALL
> apache 1.3-3 INSTALL
I'm not sure if you understand how it works, and meant something else,
or if you really meant that this "graph" is how they define what to
install. I ask because, in fact, the graph that represent relations
is a bit more involved than that in both cases.
> So I was wondering, could smart be made to find a graph like this?
>
> apache 1.3-3 INSTALL
> lighttpd 3.2-30 REMOVE
> libc6 2.5.6-9 INSTALL
> apache 1.3-3 BUILD # <- source package
> libapache1.3 1.3-2.rebuilt.1 INSTALL
> apache 1.3-2.rebuilt.1 INSTALL
Smart is flexible enough to support whatever operation the backend
has to do to achieve the installation of packages. There's an obvious
but sometimes missed point about this though: to satisfy dependencies
Smart needs information about them.
So, in the case above, Smart has to figure out that these packages are
needed *before* building the package. RPM and DPKG both compute that
information at build time, so the standard package/repository format
doesn't allow you to do this.
--
Gustavo Niemeyer
http://niemeyer.net
More information about the Smart
mailing list