On Tue, Oct 23, 2012 at 1:06 PM, Neil M. <[email protected]> wrote: > A couple of things on that. > > Firstly, Zero Install seems to have an architecture already designed to do > that (compile and install) for multiple platforms. Their main website > seems to be down at the moment but Wikipedia has a good overview here: > > https://en.wikipedia.org/wiki/Zero_Install > > Secondly Appupdater has the capability to run arbitrary commands to > "install" a product, so this could include the compile instructions or a > ruby script (for example) to compile/install as well. > > The main differences are that Zero Install is source oriented and has a > more robust XML format (but no Metalink), Appupdater is oriented to > distributing binaries and of course already has Metalink support. > Appupdater may have issues figuring out what is installed if the hashes > differ when compiled on different systems for whatever reason, but multiple > hashes for a particular compiled file is allowed. > > I think really the issue with package managers is that they all have their > own formats for the data and metadata, if we can express that independently > in some type of XML we can easily generate whatever data formats are needed > to be backward compatible. ZeroInstall+Metalink+Appupdater parts should be > a good start.
the first part of what I'm talking about and what the Gentoo package maintainer was looking for is basically a command line program which checks for new versions of programs. all it would do is download some Metalinks from a list of addresses, and alert if there was a new version. $version-check aria2: 1.15.1 -> 1.15.2 curl: 7.27.0 -> 7.28.0 libmetalink: 0.1 -> 0.1.2 it could be run once a day, week, etc. now package maintainers would know to update their packages. as part of the packaging process, the next step could be specific to Appupdater, Homebrew, Fedora, Gentoo, etc... and download/verify the source & do a test build (we won't worry about that). the only problem is only curl has automated metalink [1] as part of their release process. but, we can start w/ that, add aria2 & libmetalink as a demo & show that other programs could do the same. [1] http://curl.haxx.se/metalink.cgi?curl=tar.gz and using <version>7.28.0</version> from it. > On Tue, 23 Oct 2012 00:13:31 -0700, Anthony Bryan <[email protected]> > wrote: >> I can test on a mac. but I was talking to Donnie Berkholz from Gentoo, >> and they would be interested in a generic tool that does this (& said >> that it would be helpful for many other packagers & distributions), so >> maybe a proof of concept (Python?) for the generic version would be a >> good start, then maybe adapt it to homebrew? >> >> On Sun, Oct 21, 2012 at 1:44 PM, Bram Neijt <[email protected]> wrote: >>> Seem simple enough, however I don't have a Mac so I don't see me >>> testing this in any sensible manner. >>> >>> Anybody with a Mac ready to give it a try? Maybe I can help with >>> interpreting compiler output. >>> >>> Greets, >>> >>> Bram >>> >>> On Mon, Oct 15, 2012 at 4:41 AM, Anthony Bryan <[email protected]> >>> wrote: >>>> 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. >>> >>> -- >>> 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. >>> >> >> >> >> -- >> (( 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. > -- (( 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.
