diff options
author | antrik <antrik@users.sf.net> | 2009-03-18 18:27:26 +0100 |
---|---|---|
committer | antrik <antrik@users.sf.net> | 2009-03-18 19:23:04 +0100 |
commit | 17bf94b83943d013574855b50cbf452e52c4ef56 (patch) | |
tree | 0272f230606d9db89dfbe14ff92c4775960a4661 /community/gsoc/project_ideas | |
parent | a0891d42f7d5ba585e787fbf2a8a0a720ee4ff15 (diff) |
Properly write up download backends GSoC task
Replace the placeholder with a proper task description, and uncomment it
in the main list.
Diffstat (limited to 'community/gsoc/project_ideas')
-rw-r--r-- | community/gsoc/project_ideas/apt_ftpfs.mdwn | 87 |
1 files changed, 35 insertions, 52 deletions
diff --git a/community/gsoc/project_ideas/apt_ftpfs.mdwn b/community/gsoc/project_ideas/apt_ftpfs.mdwn index 8c862360..aa4823de 100644 --- a/community/gsoc/project_ideas/apt_ftpfs.mdwn +++ b/community/gsoc/project_ideas/apt_ftpfs.mdwn @@ -8,57 +8,40 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU_Free_Documentation_License|/fdl]]."]]"""]] -[[meta title="Have Debian's apt use ftpfs"]] +[[meta title="Use Internet Protocol Translators (ftpfs etc.) as Backends for Other Programs"]] -\#hurd [[IRC]] channel, 2009-03-13. +The Hurd design faciliates splitting up large applications into independent, +generic components, which can be easily combined in different contexts, by +moving common functionality into separate Hurd servers (translators), +accessible trough filesystem interfaces and/or specialized RPC interfaces. - <tschwinge> By the way: I had another GSoC idea: - <tschwinge> (a) make ftpfs / httpfs unsable enough for... - <tschwinge> (b) have Debian's apt / whetever not use a direct ftp / http - connection, but instead use /ftp/ftp.debian.org/whatever etc. - <tschwinge> (c) Make unionfs unsable enough, so that it can be used - together with nfs (or whatever) to sarve as a cache for /ftp/. - <antrik> uhm... you mean all of this as a single GSoC project? - <antrik> indeed I have the intention of turning ftpfs/httpfs into something - that can be used by other tools instead of a library - <antrik> but that requires them to grow completely new interfaces, making - them suitable for interactive use - <antrik> you are right though that this would be a nice GSoC project... no - idea why I never thought of it in this context - <tschwinge> I think I proposed this idea already some months ago on some - mailing list. - <tschwinge> I don't think it's too much work. - <tschwinge> Or why do you think? - <antrik> it is considerable work - <antrik> it requires implementing a non-trivial, directory based FS - interface - <tschwinge> (c), OK, but why (a) and (b)? - <antrik> also, I'd probably reimplement them on top of libcurl... no need - to maintain our own wheels :-) - <tschwinge> That for sure, yes. But for starterst, we can just take ftpfs - as it is. - <antrik> I think I explained the issues in some past discussion, though I - don't remember where it was - <tschwinge> And just teach apt to open /ftp/... instead of calling whatever - function to retrieve a ftp file. - <antrik> you want progress tracking for one - <antrik> you want the client to see redirects - <antrik> (OK, that might not be necessary for apt-get... it would be - necessary for other use cases like a web browser, though) - <antrik> you want proper error handlin - <tschwinge> http://thread.gmane.org/gmane.os.hurd.bugs/16575/focus=16795 - <antrik> none of this can be expressed by opening a single virtual file - <antrik> it would require adding a completely new interface, either using - custom RPCs, or a directory with several virtual files for various - aspects of the interaction - <antrik> (I prefer the latter variant, though I guess some people would - argue in favour of the former :-) ) - <antrik> anyways, I'll add it to the list - <tschwinge> OK, I see. Nevertheless, don't you think that a more simple - implementation of my idea (also leaving out (c) for now) wouldn't be a - suitable GSoC project? - <antrik> apt-get is probably quite a good example use case for this, so you - are probably right that it would be useful to develop this together - <antrik> (I'll leave out (c) though -- I would consider it a distinct - project. we can place a followup task once (a)+(b) is done :-) ) - <tschwinge> Yes, sure. +Download protocols like FTP, HTTP, BitTorrent etc. are very good candidates for +this kind of modularization: a program could simply use the download +functionality by accessing FTP, HTTP etc. translators. + +There is already an ftpfs traslator in the Hurd tree, as well as a [httpfs +translator on hurdextras](http://www.nongnu.org/hurdextras/#httpfs); however, +these are only suitable for very simple use cases: they just provide the actual +file contents downloaded from the URL, but no additional status information +that are necessary for interactive use. (Progress indication, error codes, HTTP +redirects etc.) + +A new interface providing all this additional information (either as an +extension to the existing translators, or as distinct translators) is required +to make such translators usable as backends for programs like apt-get for +example. + +The goal of this project is to design a suitable interface, implement it for at +least one download protocol, and adapt apt-get (or some other program) to use +this as a backend. + +This task requires some design skills and some knowlegde of internet protocols, +to create a suitable interface. Translator programming knowledge will have to +be obtained while implementing it. + +It is not an easy task, but it shouldn't pose any really hard problems either. + +Possible mentors: Olaf Buddenhagen (antrik) + +Exercise: Make some improvement to one of the existing download translators -- +httpfs in particular is known to be buggy. |