Aleksey Rybalkin wrote: > On Fri, May 03, 2013 at 09:54:42PM -0500, Bruce Dubbs wrote: >> I'm going to write a program to automatically identify out of date >> packages for LFS. Has anyone already done such a beast? >> >> Has anyone else looked at this? > > Hi. I wrote something like that not long ago. Here some ideas you > might find helpful: > > 1. Lots of packages use git tagging for new versions, so if you have > local git clone, you can periodically pull and check for new tags. I > use alias like that for sorting tags by date (works only for > annotated tags -- not every project uses them): > > [alias] > sorted-tags = for-each-ref --sort='*authordate' --format='%(tag)' > refs/tags > Without alias it can be used like that from the root of git cloned > tree: > git for-each-ref --sort='*authordate' --format='%(tag)' refs/tags
I'd prefer to not be quite so bleeding edge. Waiting unto there is a tarball in the distribution directory seems to be a better fit for us. > 2. The most reliable way I found to compare verions is using coreutils > sort (newer versions have -V flag for sorting versions): > > BIGGER=`echo -e "$1\n$2" | sort -V | head -n 1` This is nice. I wasn't aware of that capability but I'll use it. > 3. I also found checking package versions in testing branches of other > distributions quite handy. Arch Linux testing branch is particulary > easy to work with. I periodically pull from these two repositories: > > git://projects.archlinux.org/svntogit/packages.git > git://projects.archlinux.org/svntogit/community.git > > Parsing versions from these repositories is trivial -- just sourcing > sh scripts and checking ${pkgver}. One caveat -- not everything is up > to date in Arch Linux testing (but mostly everything, they are quite > quick to update), so you need to use other sources too. That's a consideration. I'm going to try to go direct to the distribution directories, but I'll keep this in mind. > 4. Some projects use special "announce" mailing lists to announce new > versions, like gnu-announce for example. These mailing lists can be > used manually alongside automated scripted version checking. I know, but sometime the announcement is quite late. > As for parsing file listings -- I thought about that, but think it is > less reliable and more clunky way than everything above combined. Not sure it's less reliable, but I agree it's clunky. > The code for my version checker is in my git: > https://github.com/alekseyrybalkin/kiin/blob/master/kiin > The code is not very well organized, but you can lookup > "prepare-check-updates", "check-updates" and "vercomp" strings. > I check git tags for linux and linux-stable versions (to check other > packages is in my TODO-list) and Arch Linux community/core repos. I'll take a look. Thanks. -- Bruce -- http://linuxfromscratch.org/mailman/listinfo/lfs-dev FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page