[pacman-dev] [PATCH] compute package download size outside _alpm_sync_prepare

Nagy Gabor ngaba at bibl.u-szeged.hu
Thu Mar 25 12:26:53 CET 2010


I like this patch. Sometimes (-Sp, for example) it is needless to
compute this info, so this little speed-up is one more minor argument
for on-demand download-size computing.

> Here is a patch to resolve FS#18769. I created a new INFRQ/infolevel to
> describe package download size, so that it could be lazily calculated
> like most of the other package info. This differs slightly from most of
> the other infolevels, which correspond to information actually read by
> _alpm_db_read and alpm_pkg_load. However, I felt it better to do it this
> way than setting the download size to -1 for invalid, as this would make
> it the only field in pmpkg_t that needs to be initialized to something
> other than 0.

I also came up with these two possible solutions earlier, see 5. here:
Now I also think that infolevel is better.

> It is also possible that the download size will be reported incorrectly
> if a package download size is read, and then that same package is
> downloaded with alpm_fetch_pkgurl. However, this is better than the
> present situation where download sizes aren't reported at all, and
> furthermore this is unlikely since alpm_fetch_pkgurl would probably not
> be used to download a package that is in the repositories.

I agree, alpm_fetch_pkgurl is not used by alpm. Moreover, in my opinion
(see also the thread above), our download code is quite messy. That's
why this is needed:

+			for(j = trans->add; j; j = j->next) {
+				j->infolevel &= ~INFRQ_DSIZE;
+				j->download_size = 0;
+			}

Clearly we should somehow restructure our download code to handle


More information about the pacman-dev mailing list