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