Hi Daniel

Thank you very much for your feedback. I try to comment, although most of what you are discussing comes from the decisions made by bbraun in the first revision of the patch. So we should wait for his comments too.

On 28.09.2004, at 18:36, Daniel Macks wrote:

Some thoughts on patch #5:

Our .deb repository is built with %p=/sw. If that is not how a user
has configured his fink, even a .deb present in apt-cache is not
usable.

That is a very good point and i didn't think of that problem. Both new patches at the end now check for $basepath and don't download .debs if it isn't '/sw'.

In PkgVersion::apt_fetch, you appear to download the .deb to
$basepath/fink/debs. Is our apt-get hacked to know to look there, does
one have to first run "scanpackages" or some such? Reason I ask is
that it feels confusing that one would use fink "to download the .deb
from the apt repository" but then apt doesn't automatically see
it.

You are right. I just discussed it with akh too. And apt-get does indeed not know about these debs. Also, 'fink scanpackages' doesn't help here, since this path is not in '/sw/etc/apt/sources.list'. Adding a extra line there doesn't seem wise either.

So, that means that 'fink -b install foo', 'fink remove foo' 'apt-get install foo' does download the foo.deb twice into two different locations, which seems stupid.

Also, that means you're mixing downloaded and locally-built
.deb. That could make it hard to debug user problems, since one could
not determine whose .deb-building broke. Would be better to download
to apt's location?

Yes, i (and akh too...) guess so. Especially since 'fink install foo' seems to look into '/sw/var/cache/apt/archives/' too. E.g. 'fink install foo' will generate a 'dpkg -i /sw/var/cache/apt/archives/foo.deb'.

So that seems like a valid option. Are we missing anything here?

Patch rev 8 does implement the downloading into /sw/var/cache/apt/archives.

Also in that method, you first try to download the .deb, and then if
that fails you symlink the one in apt's location.

No, i think you misread that. We only try to symlink if the download succeeded. These download methods have strange return codes in fink... ;)

Why not look for the
already-downloaded file first, and only download if it's not already
present? The symlink call needs some error checking. But why symlink
at all, given that you also hack PkgVersion::find_debfile to look in
apt's cache?

The error checking was missing and is now added. Also, the symlinking was wrong completely. It is now fixed in path #7

That find_debfile check for an apt .deb should only happen
if user sets --use-binary-dist.

The whole sub where the check is happening is only executed when --use-binary-dist is enabled. Or am i missing something here? I am not sure what you mean.


Anyway, added to that mail are two patches:

#7 implements all enhancements described here and downloads the debs into /sw/fink/debs with a symlink to it in /sw/var/cache/apt/archives/.

#8 also has all changes but downloads the debs into /sw/var/cache/apt/archives/ directly, without any symlinking needed.

Both versions seem to work fine here. What shall we implement? I think we need some advice here... and testing, of cause!

Thanks for any help,
Chris.

Attachment: fink_apt_get7.patch
Description: Binary data




Attachment: fink_apt_get8.patch
Description: Binary data

Reply via email to