have any of you tried out Homebrew? http://mxcl.github.com/homebrew/

it's like Appupdater or apt-get for OS X, a package manager that downloads
source & compiles it.

it's really cool. one issue tho is there's an army of guys (manually it
seems?) updating the "Formula" (Ruby files) that describe each app when a
new version comes out. so there's some lag, like any package management
with maintainers that have to do manual updates.

I think this is an opportunity for metalink to automate this process.
anyone familiar w/ Ruby that might be interested? that way it could fit in
w/ the existing Homebrew stuff.

anyways, one possible way would be to add metalink to the Formula (the one
for curl's included at the end of msg)

  metalink 'http://curl.haxx.se/metalink.cgi?curl=tar.gz'

then the process would be:

download the metalink from similarly autoupdated addresses when new
versions of (for instance) aria2 and libmetalink come out
  hb already uses curl (Library/Homebrew/download_strategy.rb)
get the app's version in the version element of the metalink XML.
if version's greater than what's in the Formula, update the url and hash

what do you think? seems relatively simple.

other metalink-related opportunities:

they'd like to support torrent downloads. -> a Formula for aria2 is already
provided, I guess torrents would need a custom download strategy (see
Specifying the Download Strategy section at
https://github.com/mxcl/homebrew/wiki/Formula-Cookbook )

the curl metalink has a PGP signature. curl + GPGME? that would be better
than the hashes.

-----


require 'formula'

class Curl < Formula
  homepage 'http://curl.haxx.se/'
  url 'http://curl.haxx.se/download/curl-7.27.0.tar.gz'
  sha256 '8cbad34e58608f0e959fe16c7c987e57f5f3dec2c92d1cebb0678f9d668a6867'

  keg_only :provided_by_osx,
            "The libcurl provided by Leopard is too old for CouchDB to use."

  option 'with-ssh', 'Build with scp and sftp support'
  option 'with-libmetalink', 'Build with Metalink support'

  depends_on 'pkg-config' => :build
  depends_on 'libssh2' if build.include? 'with-ssh'
  depends_on 'libmetalink' if build.include? 'with-libmetalink'

  def install
    args = %W[
      --disable-debug
      --disable-dependency-tracking
      --prefix=#{prefix}
    ]

    args << "--with-libssh2" if build.include? 'with-ssh'
    args << "--with-libmetalink" if build.include? 'with-libmetalink'

    system "./configure", *args
    system "make install"
  end
end

-- 
(( Anthony Bryan ... Metalink [ http://www.metalinker.org ]
  )) Easier, More Reliable, Self Healing Downloads

-- 
You received this message because you are subscribed to the Google Groups 
"Metalink Discussion" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/metalink-discussion?hl=en.

Reply via email to