bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#28159: Updater needs to support HTTP(S) servers


From: Ludovic Courtès
Subject: bug#28159: Updater needs to support HTTP(S) servers
Date: Wed, 23 Aug 2017 23:30:35 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)

Hartmut Goebel <address@hidden> skribis:

> Am 22.08.2017 um 10:57 schrieb Ludovic Courtès:
>> So I would suggest picking one updater, say kde, and implementing it
>> using whatever metadata can be retrieved from kde.org.
>
> I'm not sure if I understood what you mean with "whatever metadata can
> be retrieved from kde.org".

I mean using package metadata provided by kde.org (maybe they have a
JSON representation of the package graph or something?), or the ‘ls-lR’
files at worst.

> By change, download.kde.org indeed provides a "ls-lR" and "ls-lR.bz"
> file at the top-level. I was not aware of this up to just now. Using
> this might be an option (It is lagging a bit, though I think this is
> acceptable. From what I've ssen I guess it is generated each hour if
> some file changed.)

Sounds good.

> So for kde we might find a simpler solution. But in the long-run IMHO we
> need a simple html parser.

In some cases yes, but maybe not in all cases.  I also suspect that
something that attempts to extract the latest release number from a home
page may be brittle.

> I'm not skilled enough in scheme/guile to write such a parser, sorry.

This can be done along these lines:

--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> ,use(sxml simple)
scheme@(guile-user)> ,use(web client)
scheme@(guile-user)> ,use(sxml match)
scheme@(guile-user)> (define page (xml->sxml (call-with-values 
                                                 (lambda ()
                                                   (http-get 
"http://www.gnu.org/software/guix/guix.html"; #:streaming? #t))
                                               (lambda (response port)
                                                 port))))
--8<---------------cut here---------------end--------------->8---

… where ‘page’ is the SXML representation of the web page.  The
difficulty is to browse this page (using ‘match’ or ‘sxml-match’.)

HTH,
Ludo’.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]