Re: gar2vcheck

William Immerman <[email protected]> Mon, 20 Feb 2006 13:10:11 -0500
Newsgroups gmane.linux.bbc.general
Message-ID <[email protected]>
Sokar--

Let me take a crack at answering your concerns:

Starting with the last, first:

>
> And as an aside... this is probably a conversation that should be on
> the devel list... but maybe I'm just picky...
>

You're right, and I'd be happy to either stop posting or redirect to 
another list, but this and the associated lists have not been very 
active lately, and I was interested in getting feedback from whoever 
was actually involved now. Also, the original motivation was to answer 
a question you asked on this list:

> And also a question:  Is there an 'easier way' to monitor when an
> update to a package that we use comes out?  (other than the down list
> alphabetical thing i am doing now)  Cause its definitely not a small #
> of packages, and subscribing to all those devel lists (some of which
> don't have an 'announce' list, or a 'list' at all) would just be a
> damn nightmare.

I should have done a better job separating the offer to help with 
vcheck/gar2vcheck questions from other musings about a gar-related 
project of interest to (perhaps only) me.

I'll try to answer your specific concerns about the version checking 
below, but keep in mind that these are separable from the other 
speculative ideas I raised.

Let me try to answer some of your other concerns:

First, vcheck is not suitable for unattended naive fetching of all 
upstream packages; it has been extremely useful to me in doing exactly 
what you've asked in your question, which is to greatly reduce the 
effort in monitoring updates to packages I follow. I 'm currently using 
it to actively follow and download when changed over 80 diverse 
open-source packages with a single command line and a few minutes per 
day. I could make it a cron job and reduce that to no time or effort on 
my part. The price is configuring it carefully when you first begin 
tracking the package, and updating if an upstream site so fully 
reconfigures that your configuration fails. Most of the time, once you 
get it right, it stays stable through continued version updates. 
gar2vcheck is even less suitable for completely automated use; it is a 
starting point for generating a syntactically correct vcheck 
configuration that may work for some packages.

With that in mind:

On Saturday, February 18, 2006, at 04:14  PM, Sokar Someone wrote:

> I have some concerns about the gar2vcheck thing, maybe someone can
> address them...
>
> How do we handle the following:
> sourceforge (the current bane of my existence)

sourceforge is a pain in the neck. I have lots of sites I follow 
successfully that are sourceforge projects, though. I see, for 
instance, that for net-snmp, I use
URL = http://prdownloads.sourceforge.net/net-snmp
but then need an explicit download spec:
dlexplicit = 
http://easynews.dl.sourceforge.net/net-snmp/net-snmp-__RAWVER__.tar.gz
Most of the sourceforge projects and files can be done similarly: find 
the version from the project page, then find a valid, reliable 
sourceforge mirror from their list and use the version info discovered 
automatically in the first step to program the download.

For ease of configuration, I try to stay away from dlexplicit, but it 
is often the only way to (a) bypass interactive web pages and (b) 
download a family of files of the same version (e.g., a gpg signature 
and the associated tarball...).

Again, it's only painful the first time, and each similar site can be 
done analogously. Also, you'd have the same issues maintaining the 
upstream info in gar by hand, but wouldn't have any chance of its 
maintaining itself over simple version updates....

>
> websites that have been hijacked and now send you a garbage file of
> the version that you request

I haven't had this problem in years of using vcheck. I do choose the 
packages I follow carefully. When vcheck tells me it's updated my 
archive, I go to the web/ftp site myself to look at the announcement, 
the changelog, etc. to confirm that it's a worthwhile change. Since my 
vcheck configuration is set up to add to my archive, not overwrite 
older versions, I can always blow away a non-useful or malicious 
download before opening... The manual checking of the web site means 
that you wouldn't save much time the first time around when most of the 
packages updated, but would be safer, and then you'd begin saving huge 
amounts of time subsequently as the newly updated packages change 
relatively infrequently, and you'd only need to check out changed 
packages, and those only if you were interested in updating.

>
> people who have changed their versioning scheme

Can be a problem. Rarely...usually the more mature, solid open-source 
projects have a well-established versioning scheme. On the rare 
occasion I've run into problems, there are symptoms...for instance 
vcheck errors on that package start mounting up, and I investigate and 
find that the site is still up but has been so reorganized as to 
require manual configuration change. I don't, but could and should save 
my vcheck config to CVS whenever it requires such manual intervention.

>
> also is there a way we could go through and check for new / changed
> dependencies?  (of course this would involve changing the makefiles to
> include minimum version #'s of the depends, maybe on a comment line?)

Not that I'm aware of...we could look into extracting dependency info 
and building the vcheck config to look at coordinated sets of projects. 
On the other hand, if you just regularly update the (g)archive, then it 
really isn't a dependency issue...all the required versions of 
dependencies will be available from the local archive when needed. I 
don't know how to determine what those dependencies would be 
automatically, though. I guess the 2 most likely options are: leave the 
known dependencies alone unless building the package fails or the 
documentation instructs a change, or update the version of all 
dependencies to the latest available in the archive, and try to build...

>
> And if we do try to do all this automation are we going to have
> 'verified' versions of the garchive that we know will build (at least
> 1 person from the devel team has gotten it to build w/o much trouble)
> and 'use at your own risk' versions that someone can use if they want
> an update we haven't 'verified' yet?

That's part of the missing piece I was asking about. I know that the 
vcheck/gar2vcheck combination can be a useful tool to apply manually 
when the project needs simple version updating to freshen. I think it 
would be simple to have a gar parameter that would allow a 
user/developer/package maintainer to optimistically try to update one 
or more packages, and try to build an "alpha" version from the 
automatically updated files. I think that such versions should never be 
baselined until they've been successfully built, tested, and moved to 
the head/baseline by the package owner or other authorized developer. 
Still, seems like a useful tool to have to have a shot at efficiently 
updating all those packages that have been orphaned by their original 
owners...

>
> Also, am i detecting a want to fork this in to a 'bbc sized' build and
> a 'how ever big you want' build?  Or is this just a user option to put
> out there for the automated builds?

The rest of my rambling had to do with a particular use/interest of 
mine, and as you pointed out, it has more to do with gar development 
than lnx--bbc. It's my own observation that while the goal of having 
the bbc-sized image is nice, and the distribution has always been 
well-implemented, it may be of increasingly less interest as people 
have broadband connections to download lots of nice liveCDs with lots 
of tools, etc. The build system, however, is of particular and enduring 
interest to me, personally. For example, I just read yesterday of a 
small distribution that implements the open-source PBX, Asterix, on a 
read-only system (compact flash based). In order to do this, the 
developer hacked up Gentoo at some considerable effort, to remove 
packages and customize so it'd run from read-only media. I think gar 
could easily evolve into a nice way to quickly generate such a 
distribution from a common set of packages with little additional 
effort. This is not directly related to version updating and archiving 
but motivates my interest in having a more general, traceable, easily 
updated archive.

Bottom line on vcheck: very useful, not automatic, work in configuring 
per package, but then works well, no longer maintained by author
Bottom line on gar2vcheck- my hack, of questionable utility, not 
automatic, may be useful for generating vcheck config starting point 
from gar tree, I'd be willing to work some more on it to make it work 
better, easier to automatically update vcheck config without losing 
hand written customizations, if it will get used...

Thanks,
Bill