From 5f6f4a63ae65132329da6e199b98a475b034cee2 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Fri, 15 Mar 2013 21:17:54 +0100 Subject: various small changes, most in translators --- hurd/translator/cvsfs.mdwn | 18 +++++++++++++----- hurd/translator/gopherfs.mdwn | 2 +- hurd/translator/netio.mdwn | 2 +- hurd/translator/nfs.mdwn | 2 +- hurd/translator/procfs.mdwn | 1 - hurd/translator/smbfs.mdwn | 16 ++++++++++++++++ hurd/translator/tarfs.mdwn | 2 +- hurd/translator/unionfs.mdwn | 7 +++++-- hurd/translator/wishlist_1.mdwn | 4 +--- hurd/translator/wishlist_2.mdwn | 20 ++++---------------- 10 files changed, 43 insertions(+), 31 deletions(-) create mode 100644 hurd/translator/smbfs.mdwn (limited to 'hurd/translator') diff --git a/hurd/translator/cvsfs.mdwn b/hurd/translator/cvsfs.mdwn index f5f1a9e0..03b49219 100644 --- a/hurd/translator/cvsfs.mdwn +++ b/hurd/translator/cvsfs.mdwn @@ -21,10 +21,13 @@ would be to check out the whole tree and deleting it after using. ## Step by Step process in installing cvsfs -Download and prepare the source files from the CVS repositiory and build them. +Download and prepare the source files from the [[source_repositories/incubator]] +repository and build them. - $ cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/hurdextras co cvsfs - $ cd cvsfs/ + $ git clone git://git.savannah.gnu.org/hurd/incubator.git + $ cd incubator/ + $ git branch -t cvsfs origin/cvsfs/master + $ git checkout cvsfs $ autoreconf -i $ ./configure $ make @@ -35,10 +38,10 @@ Set up the translator and start grazing. $ mkdir -p cvsfs_test $ settrans -a cvsfs_test /hurd/cvsfs cvs.sourceforge.net /cvsroot/projectname modulename -Example to mount the cvsfs module on hurdextras to a local directory. +Example to mount the memfs module on hurdextras to a local directory. $ mkdir cvs.d - $ settrans -ac cvs.d/cvsfs /hurd/cvsfs cvs.savannah.nongnu.org sources/hurdextras cvsfs + $ settrans -ac cvs.d/cvsfs /hurd/cvsfs cvs.savannah.nongnu.org sources/hurdextras memfs Now change to that directory and start using ls, emacs, and whatever you feel like. :-) @@ -50,3 +53,8 @@ Happy Hacking. * * + +### Old version at Berlios + +A read-only version has been written by Stefan Siegl and was available at +[Berlios](http://cvs.berlios.de/cgi-bin/viewcvs.cgi/cvsfs4hurd/cvsfs/). diff --git a/hurd/translator/gopherfs.mdwn b/hurd/translator/gopherfs.mdwn index 6c32430f..53e3ef4e 100644 --- a/hurd/translator/gopherfs.mdwn +++ b/hurd/translator/gopherfs.mdwn @@ -13,4 +13,4 @@ License|/fdl]]."]]"""]] # Source -incubator, gopherfs/master +[[source_repositories/incubator]], gopherfs/master diff --git a/hurd/translator/netio.mdwn b/hurd/translator/netio.mdwn index aca9cd69..dce7897f 100644 --- a/hurd/translator/netio.mdwn +++ b/hurd/translator/netio.mdwn @@ -14,4 +14,4 @@ filesystem. # Source -incubator, netio/master +[[source_repositories/incubator]], netio/master diff --git a/hurd/translator/nfs.mdwn b/hurd/translator/nfs.mdwn index 81372204..8e33a55b 100644 --- a/hurd/translator/nfs.mdwn +++ b/hurd/translator/nfs.mdwn @@ -10,7 +10,7 @@ License|/fdl]]."]]"""]] Translator acting as a NFS client. -Only NFSv2/v3 is currentl supported. +Only NFSv2/v3 is currently supported. [[!tag open_issue_hurd]]There are a few unmerged changes on a former GSoC project's topic-branch. diff --git a/hurd/translator/procfs.mdwn b/hurd/translator/procfs.mdwn index cccce0b7..492f9510 100644 --- a/hurd/translator/procfs.mdwn +++ b/hurd/translator/procfs.mdwn @@ -37,7 +37,6 @@ Testing it is as simple as this: $ git clone git://git.savannah.gnu.org/hurd/procfs.git $ cd procfs/ - $ git checkout master $ make $ settrans -ca proc procfs --compatible $ ls -l proc/ diff --git a/hurd/translator/smbfs.mdwn b/hurd/translator/smbfs.mdwn new file mode 100644 index 00000000..85a28a2b --- /dev/null +++ b/hurd/translator/smbfs.mdwn @@ -0,0 +1,16 @@ +[[!meta copyright="Copyright © 2013 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +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]]."]]"""]] + +`smbfs` is a virtual filesystem allowing you to mount Samba shares. + + +# Source + +[[source_repositories/incubator]], smbfs/master diff --git a/hurd/translator/tarfs.mdwn b/hurd/translator/tarfs.mdwn index e25e3255..06fda5c7 100644 --- a/hurd/translator/tarfs.mdwn +++ b/hurd/translator/tarfs.mdwn @@ -22,4 +22,4 @@ stores. # Source -incubator, tarfs/master +[[source_repositories/incubator]], tarfs/master diff --git a/hurd/translator/unionfs.mdwn b/hurd/translator/unionfs.mdwn index 2b692cf9..2bebf32d 100644 --- a/hurd/translator/unionfs.mdwn +++ b/hurd/translator/unionfs.mdwn @@ -9,6 +9,8 @@ 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]]."]]"""]] +[[!tag stable_URL]] + # `unionfs` *Unionfs allows you to simply union one directory or translator into another one, so you see the files of both of them side by side.* @@ -154,7 +156,8 @@ the *mountee* at 0. * [FUSE page about `unionfs`](http://sourceforge.net/apps/mediawiki/fuse/index.php?title=UnionFileSystems) - * [Linux' overlay file system proposal, - 2010-09-20](http://thread.gmane.org/gmane.linux.kernel/1038413) + * Linux' overlay file system proposals: + [2010-09-20](http://thread.gmane.org/gmane.linux.kernel/1038413), + [2013-03-12](http://lkml.indiana.edu/hypermail/linux/kernel/1303.1/02231.html). How is this different? diff --git a/hurd/translator/wishlist_1.mdwn b/hurd/translator/wishlist_1.mdwn index 36290883..04e7ecac 100644 --- a/hurd/translator/wishlist_1.mdwn +++ b/hurd/translator/wishlist_1.mdwn @@ -9,8 +9,6 @@ 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]]."]]"""]] -* [[devfs]] - * FUSE(fuse.sourceforge.net/) compatilbility library. : just modify FUSE apps a and compile little to work as translator :-) * File Finder. (uses find, grep, a combination or a custom command (htdig, mp3 info) @@ -56,7 +54,7 @@ is included in the section entitled * Flexi-acls * First of all - Can this be done? : A translator bound to a directory must be able to access the contents of the directory which would have been accessible in the absence of the translator.. - * This will enable to wirte translators that can implement custom "Access Control Lists". Just imagine having advanced ACLs even if underlying FileSystem is dumb! Imagine changing the type of ACLs implemented with Just two commands - one to unattach previous translator and the next to attach a different ACL translator! The ACLs themselves may be stored in a different directory + * This will enable to write translators that can implement custom "Access Control Lists". Just imagine having advanced ACLs even if underlying FileSystem is dumb! Imagine changing the type of ACLs implemented with Just two commands - one to unattach previous translator and the next to attach a different ACL translator! The ACLs themselves may be stored in a different directory * The translator manager! * Some translators will need to be inserted automatically - like for eg: hardware drivers .. diff --git a/hurd/translator/wishlist_2.mdwn b/hurd/translator/wishlist_2.mdwn index 77f39644..ab4d26ea 100644 --- a/hurd/translator/wishlist_2.mdwn +++ b/hurd/translator/wishlist_2.mdwn @@ -12,7 +12,7 @@ A translator which produces a directory of \*.wav files when you have an audio C This translator could be a sub-directory of the Audio\_cdfs translator and it would translate the \*.wav files into Ogg Vorbis/MP3 format. -## CDDB +## CDDB Of course it would be a lot nicer if the above two translators didn't name their files something worthless like track001.ogg. So we would want a translator which would hook up with a database on the web and produce meaningful file names. @@ -24,15 +24,7 @@ A cryptographic/steganographic seem like a nice match with the concept of user-l All of the empty space on your drive is now being wasted. Why not have a revision control translator which tracks changes to your documents? See also [this guy](http://www.linuxjournal.com/article.php?sid=5976). And then you'd do something like `cd /time-machine/2003/sept/14/` to see what your system looked like on the 14th of septempber 2003. -## CVSFS - -See [cvsFS for Linux](http://cvsfs.sourceforge.net/). This provides a package which presents the CVS contents as mountable file system. It allows to view the versioned files as like they were ordinary files on a disk. There is also a possibility to check in/out some files for editing. A read-only version has been written by Stefan Siegl and is available at [Berlios](http://cvs.berlios.de/cgi-bin/viewcvs.cgi/cvsfs4hurd/cvsfs/). - -## tar and gzip - -Rumor has it that they are on the way. Actually, a tar + gzip/bzip2 translator does exist (although it hasn't been used much...) : see [the Hurdextras project](http://savannah.nongnu.org/projects/hurdextras/) on Savannah. - -## ROM +## ROM How about a translator which makes it look like you can write to read only media (like CDs), or change files which I don't have permission to change. This translator would make it seem like you could copy files to places where you normally couldn't. Think about combining this translator with the ftp translator and the tar and gzip translators. (cd /ftp/gnu.org/gnome.tar.gz/writes\_allowed; make install). It could be that unionfs does this very thing. @@ -88,7 +80,7 @@ Am I off my rocker, or does an IMAP/POP translator sound like a good idea? It wo *Definitely: Copy my email in there to send it.* -- [[ArneBab|community/weblogs/ArneBab]] -## UUEncode +## UUEncode How about a UUEncode translator for those places you can only store ASCII. Combine this with a NNTP translator and store your data in someone's Usenet archive. Or since, (as far as I know), there are no size limitations on file names in the Hurd, why not have a filesystem translator whose underlying store is a file name. (Now ls becomes cat). @@ -171,14 +163,10 @@ A [bridging](http://bridge.sourceforge.net/faq.html) translator could improve th Perhaps Linux's bridging code and [utilities](http://bridge.sourceforge.net/) can be ported (or glued in) or code from one of the BSDs. -## SSH translator +## SSH translator Presenting remote file systems through SSH similar to what gnome-vfs does. -## SMB translator - -Presenting remote file systems through Samba similar to what gnome-vfs does. Guiseppe Scrivano has worked on this and smbfs is available at [hurdextras](http://savannah.nongnu.org/cgi-bin/viewcvs/hurdextras/smbfs/). - ## Crontab translator Presenting a user's crontab in a filesystem where cron entries are files. -- cgit v1.2.3 From 7674ea1101a508e65b59b717d549c30b81c8a18e Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Fri, 15 Mar 2013 23:38:52 +0100 Subject: more changes --- hurd/building.mdwn | 13 +++++------ hurd/translator/cvsfs.mdwn | 6 +----- source_repositories/incubator.mdwn | 44 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 11 deletions(-) (limited to 'hurd/translator') diff --git a/hurd/building.mdwn b/hurd/building.mdwn index c0d5648c..623e7c0a 100644 --- a/hurd/building.mdwn +++ b/hurd/building.mdwn @@ -28,7 +28,7 @@ git](http://savannah.gnu.org/git/?group=hurd): $ apt-get source hurd -Please see the Debian [[running/debian/FAQ]] before using `apt-get source`. +Please see the Debian [[FAQ]] before using `apt-get source`. The unpacked source tree is around 20 MiB, and the build tree (configured with `--disable-profile`) is around 100 MiB. @@ -54,12 +54,12 @@ package: Change into the directory with the downloaded / unpacked Hurd sources, e.g. - $ cd hurd-[TODO] + $ cd hurd-VERSION If you want to work on the sources before building them, it's advisable to first apply the patches the Debian hurd package additionally contains: - $ debian/rules apply-patches + $ debian/rules patch Then edit and change whatever files you want and finally start the build process with @@ -75,13 +75,14 @@ The Hurd has to be built in a separate directory: $ mkdir hurd-build $ cd hurd-build - $ [...]/hurd-[TODO]/configure --disable-profile + $ [...]/hurd-VERSION/configure --disable-profile $ make $ make install Notice that `make install` will install the Hurd in `/`, not in `/usr/local/` -or `/local/`, so your current Hurd servers will be replaced. [TODO: how to -install somewhere else.] +or `/local/`, so your current Hurd servers will be replaced. +To install to a different location, specify `--prefix=PREFIX` as `configure` +parameter, e.g. `--prefix=/usr` (as done when having a real `/usr`). By default profiling versions of all the libraries and code are generated but this is useless in most of the cases, so we disable them by specifying diff --git a/hurd/translator/cvsfs.mdwn b/hurd/translator/cvsfs.mdwn index 03b49219..bef481a2 100644 --- a/hurd/translator/cvsfs.mdwn +++ b/hurd/translator/cvsfs.mdwn @@ -22,12 +22,8 @@ would be to check out the whole tree and deleting it after using. ## Step by Step process in installing cvsfs Download and prepare the source files from the [[source_repositories/incubator]] -repository and build them. +repository, branch `cvsfs/master`; then build them: - $ git clone git://git.savannah.gnu.org/hurd/incubator.git - $ cd incubator/ - $ git branch -t cvsfs origin/cvsfs/master - $ git checkout cvsfs $ autoreconf -i $ ./configure $ make diff --git a/source_repositories/incubator.mdwn b/source_repositories/incubator.mdwn index 51f64c17..0243b597 100644 --- a/source_repositories/incubator.mdwn +++ b/source_repositories/incubator.mdwn @@ -10,3 +10,47 @@ License|/fdl]]."]]"""]] There is a repository for *this*, and *that*, and *everything* -- the *incubator*: . + +As the `README` file in the `master` branch says, the development of the +various software happens in separate branches. + +## Handling branches with `git-new-workdir` + +`git-new-workdir` is a contrib script provided with the git distribution +(on Debian systems, in `/usr/share/doc/git/contrib/workdir/git-new-workdir`); +it allows to create a new subrepository of a git repository, tracking one of +its branches, usually as a subdirectory of the current repository. + +The advantage of using it for `incubator` is that only one clone is needed, +and it can be possible to work simultaneously on many branches (instead of +only on the current branch of that clone). +The drawback is that updating a subrepository requires updating its branch +on the main clone first. + +Let's start checking out the `incubator` repository: + + $ git clone git://git.savannah.gnu.org/hurd/incubator.git + $ cd incubator/ + +Assuming we now want to follow the development of the `tarfs/master` branch: +we follow this branch: + + $ git branch -t tarfs/master origin/tarfs/master + +Then now setup a local subrepository `tarfs` following it; we will create it +as subdirectory of `incubator` (first parameter for `git-new-workdir`) for +simplicity, but can be created anywhere else: + + $ git-new-workdir . tarfs tarfs/master + +After this, a new `tarfs` subdirectory appears, which represents the +`tarfs/master` branch. You can normally work on this new repository as usual. + +As said earlier, updating `tarfs` requires fetching/pulling in `incubator` +first: + + $ cd incubator/ + incubator$ git pull/fetch + incubator$ cd tarfs/ + tarfs$ git pull/fetch + -- cgit v1.2.3 From e54db727e9d92128b8df23a0dcf7daeab4976936 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sat, 16 Mar 2013 18:16:08 +0100 Subject: merge the two translator wishlist pages into a single one --- hurd/translator.mdwn | 3 +- hurd/translator/wishlist.mdwn | 320 ++++++++++++++++++++++++++++++++++++++++ hurd/translator/wishlist_1.mdwn | 127 ---------------- hurd/translator/wishlist_2.mdwn | 189 ------------------------ 4 files changed, 321 insertions(+), 318 deletions(-) create mode 100644 hurd/translator/wishlist.mdwn delete mode 100644 hurd/translator/wishlist_1.mdwn delete mode 100644 hurd/translator/wishlist_2.mdwn (limited to 'hurd/translator') diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index c70279f7..b04a5944 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -134,12 +134,11 @@ The [[concept|concepts]] of translators creates its own problems, too: # Translator Wishlists - * [[wishlist_1]] - * [[wishlist_2]] * [[open_issues/network_file_system_by_just_forwarding_RPCs]] * [[libguestfs]] * [[devfs]] * [[emailfs]] -- email as a filesystem + * [[general wishlist of stuff not listed above|wishlist]] # Internally diff --git a/hurd/translator/wishlist.mdwn b/hurd/translator/wishlist.mdwn new file mode 100644 index 00000000..70af27f2 --- /dev/null +++ b/hurd/translator/wishlist.mdwn @@ -0,0 +1,320 @@ +[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +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]]."]]"""]] + +## Introduction + +The idea behind file system translators is a powerful concept which hasn't recieved much attention in the mainstream computing world. So here is a list of interesting translators I've been able to dream up. I'm sure there are many more ideas floating around out there, so add them to the list! + +The [ferris project](http://witme.sourceforge.net/libferris.web/features.html) has some great ideas and code in the area of userspace dynamic filesystems, as has the [FUSE project](http://fuse.sourceforge.net/). + +## FUSE ([fuse.sourceforge.net](http://fuse.sourceforge.net)) compatibility library + +Just modify FUSE apps a and compile little to work as translator :-) + +## File Finder (uses find, grep, a combination or a custom command (htdig, mp3 info) + * Files found will be available under one directory and then can be used like a normal directory + * usefull to generate Albums, Share only resulting files over the et, etc.. + * The filefinder can be scheduled or can be connected over some ipc like dbus to the VFS system if any to keep a watch for new files. + +## GNOKII, BitPim and openobex as translators + * grep through your SMSs! + * share your addressbook! + * "Attach" that funny SMS/MMS to your email. + * "svn commit" your joke collection :-D + +## Real Language Translator [[br]] + + $ cat /usr/translator/de-en/usr/share/doc/something.txt + +this should take `/usr/share/doc/something.txt`, submit it to google's website and bring back results. + +## Mozilla Bookmarks = del.ici.ous + +Need more explanation? ;-) + +## + * having a directory structure for a file can allow to "svn commit" the hnb document in a more "node-safe" manner, thus allowing multiple people to work on the same hnb document. + * This must be fairly easy as HNB can already export to XML and XMLfs already exists. + +## DavFS + +Just setup a 'WebDav share' as a directory. The implementation of the protocol is already available in nautilus and konqueror. + +## Compiled form of your project + * you have your project in /somedir/project with source in /somedir/project/src .. /somedir/project/bin should always have the compiled version.. is it possible? + * The source has to have a MakeFile. + * creating /somedir/project/bin-somearch should aotomatically crosscompile + * Seems feasible for a small project. + +## Report generation FrameWork - an idea to be hugged by app developers..not kernel developers. + * You have financial data in some Spreadsheet like format in /yourFinance directory + * You add report templates to /yourFinance/repTemplates + * Once you save data in /yourFinance the next cat /yourFinance/reports/areportname will give you an uptodate report. + * This will be usefull for any purpose including serving by static page web servers, sharing over samba/nfs/ftp etc.! + * The advantage is any save to the spreadsheet will update the report.. not just from one software. + +## SVN (Subversion) + * like [[cvsfs]]. /svndir/version/version-no should automatically have subversion + * I think it is nice to write a generalised version control system framework library which will help in writing version control translators and other tools easily. + +## Flexi-acls + * First of all - Can this be done? : A translator bound to a directory must be able to access the contents of the directory which would have been accessible in the absence of the translator.. + * This will enable to write translators that can implement custom "Access Control Lists". Just imagine having advanced ACLs even if underlying FileSystem is dumb! Imagine changing the type of ACLs implemented with Just two commands - one to unattach previous translator and the next to attach a different ACL translator! The ACLs themselves may be stored in a different directory + +## The translator manager! + * Some translators will need to be inserted automatically - like for eg: hardware drivers .. + * Each hardware translator will pubish its capabilities. + * The "top" translator will query the capabilities of different hardware and match capabilities with the "slave" translators. That is it's only Job. + * The control is then handed over to the slave translator. + * The ranking not only looks who can handle the "most" capabilites of the hardware. If it finds that multiple translators can handle the same hardware, It will use other parameters to choose between them.. like may be the size in memory? The revision date? Stability (inferred from version number)? And to go to the extreme, the profiling data of the driver ;-P + * Advantage : The best driver wins! + +### An example -- skip it if you understood the above :-) + * You have a driver that can handle VGA + SVGA + Super3d acceleration + Particle graphics + Works for nvidea card. + * You have a driver that can handle SVGA + VGA . + * You have a driver that can handle VGA. + * Case 1: Your card: A VGA card with some extra fonts.. + * First the VGA driver will be quireied .. ok can handle essential capability. + * Next SVGA driver: can handle but has extra module.. unnecassary weight . + * The Nvidia driver: can handle , but again unnecassary weight : ruled out. + * Winner : VGA driver: + * Case 2: Your card An SVGA card: + * First the VGA driver will be quireied .. ok can handle one essential capability. + * Next SVGA driver: can handle essential and one extra capability no extra weight.. + * The Nvidia driver: can handle , but unnecassary weight : ruled out. + * Winner : SVGA driver.. + * Case 3 : You have an VGA .. but no VGA driver .. then the SVGA driver would win. + +## Sound Server + * /ahsa - stands for Advanced HURD sound architecture :-) Just a temporary name .. for fun. + * /ahsa/out - directory wich will hold "plug"s where apllications come and join the server .. see below. + * /ahsa/out/mixer - main mixer + * /ahsa/out/nextfree - the file when "cat"ed gives the number of the next free plug + * /ahsa/plugins/ - info about available plugins + * /ahsa/out/[1..n]/ - dynamically generated directories for applications to plug on.. + * /ahsa/out/[1..n]/data this is where you should do a "cat somerawsoundfile>/ahsa/out/`cat /ahsa/nextfree`/data" + * /ahsa/out/[1..n]/plugins - the plugin stack .. volume is also a plugin.. + * /ahsa/out/[1..n]/plugins/[1..m]/ - echo "plugin param1 param2 param3" > /ahsa/out/[1..n]/plugins/`cat /ahsa/out/[1..n]/plugins/nextfree`/add + * /ahsa/out/[1..n]/plugins/[1..m]/params/{param1.. paramn} + * /ahsa/out/[1..n]/data.out - can be catted to get data processed through the server + * /ahsa/in - similar to /ahsa/out .. with except for an extra file to choose input devices. + * /ahsa/devs/{1..n} - devices detected .. can be dynamic .. there are usb soundcards and and midi devices. + * /ahsa/out/[1..n]/plugins/[1..m]/0/params/dev + * Dont get tempted for :/ahsa/out/[1..n]/params/{rate, channels, and other stuff} + * that goes into /ahsa/out/[1..n]/plugins/0/params if /ahsa/out/[1..n]/plugins/0/detected == "headerless audio" + * There are a lot more things I can continue about the "sound server" .. The Ideas simply dont seem to exhaust.. + * Some features/advantages + * set output's translator plugin as ordinary text -- have text to speech conversion done by sound server! + * Create and apply plugin presets by simply copying directories! + * Me getting dizzy thinking of the zillion more advantages. + * If you are really doing some ordinary output , all you need to do is "cat" data into next free "plug" and everything will be autodetected including the format of the data and sent to the final sound "merge"r + * Dizzy ... + +## /usr/share/menu !!!! extension for package management idea + * cat mymenuitem.menu >> /usr/share/menu/menu + * cat /usr/share/menu/debian/kde ... :-) + +## Spam/Malware Control + * `/usr/antimalware/` - put your mail here.. it will automatically be scanned. when finished it will vanish from here ... + * `/usr/antimalware/clean` - ... and pop out from here + * `/usr/antimalware/malware` - ... or here. + +## NetDevice + * !JustImagine(tm)... settrans -ac /netdevices /hurd/netdevfs - [ host | net ] + * One can access device files remotely + * This could be acheived by allowing translators talk to one another over a network + * This will need translators to catch and handle ioctls (if there is such a thing in HURD). + * The device server which will listen to requests from the translators can be run even on a Linux machine!!! + * !JustImagine(tm)... accessing the crwriter/webcam on that GNU/Linux machine on the network using cdrecord of your local hurd machine! + * !JustImagine(tm)... running GNU/HURD on a minimalistic GNU/Linux(but with all the drivers) through a specially modified and optimised Qemu. The device server runs on the host machine, and the client translators access over the virtual network created by Qemu. You got most of the drivers for free! + +## Emacs File VFS + * I came to know from my Emacs loving friend that there are lots of VFS handlers in Emacs.. I was wondering if there can be translator which can tap into these Emacs VFS handlers. + +## Audiocdfs + +A translator which produces a directory of \*.wav or \*.ogg files when you have an audio CD in the drive. + +## CDDB + +Of course it would be a lot nicer if the above translator didn't name its files something worthless like track001.ogg. So we would want a translator which would hook up with a database on the web and produce meaningful file names. + +## Crypto + +A cryptographic/steganographic seem like a nice match with the concept of user-land file systems. I like the idea of something like `settrans -a /secure stegfs --mpeg file001.mpg` + +## Revision control + +All of the empty space on your drive is now being wasted. Why not have a revision control translator which tracks changes to your documents? See also [this guy](http://www.linuxjournal.com/article.php?sid=5976). And then you'd do something like `cd /time-machine/2003/sept/14/` to see what your system looked like on the 14th of septempber 2003. + +## ROM + +How about a translator which makes it look like you can write to read only media (like CDs), or change files which I don't have permission to change. This translator would make it seem like you could copy files to places where you normally couldn't. Think about combining this translator with the ftp translator and the tar and gzip translators. (`cd /ftp/gnu.org/gnome.tar.gz/writes\_allowed; make install`). It could be that [[unionfs]] does this very thing. + +## Super\_FIFO + +It's like a named pipe which is smart enough to start a process everytime something new tries to read from it. For example, let's say I have a script that reads in a JPEG image and spits out a smaller thumbnail \*.jpg to STDOUT. With a standard fifo (`mknod -p fifo`) this would almost works (`script big.jpg > fifo`). But what if there are two processes trying to read the fifo at once? Ick. And of course the standard way only works once without rerunning the command. I'm not quite sure what the syntax should look like, but I'm sure someone out there has a great idea waiting to happen. + +## Perl + +Perl is a wonderful language for hacking together something useful in a short amount of time. No concept is complete without being able to use it in a perl one-liner. And that goes for Hurd translators too. Right? + + #!/usr/bin/perl + use Hurd::translator; + + #file named "two" can produce an endless supply of twos, etc. (a la /dev/zero) + my $i=0; + for $filename ([zero one two three four]) + { + $libtrivfsread_codehash{$filename}= + sub{ $num_bytes=shift; my $data=$i; return chr($data) x $num_bytes; }; + #that's a hash of references to closures + $i++; + } + translator_startup(); + +A Perl translator has been started by [John Edwin Tobey](http://john-edwin-tobey.org/Hurd/) (pith). + +## Source code + +Here's a crazy thought. How about a translator for source code. You have a C source file like `hello.c` which is your normal everyday file. But there's a translator sitting underneath, so when you `cd hello.c` you get a directory with files like `main()` which represent the subroutines in `hello.c`. And of course you should be able to edit/remove those and have it modify the original source. + +## Libraries + +Here's an [idea](http://www.circlemud.org/~jelson/software/fusd/docs/node13.html) from the people making [userspace drivers in Linux](http://www.circlemud.org/~jelson/software/fusd/): + +* "One particularly interesting application of FUSD that we've found very useful is as a way to let regular user-space libraries export device file APIs. For example, imagine you had a library which factored large composite numbers. Typically, it might have a C interface--say, a function called `int *factorize(int bignum)`. With FUSD, it's possible to create a device file interface--say, a device called `/dev/factorize` to which clients can `write(2)` a big number, then `read(2)` back its factors. + +* This may sound strange, but device file APIs have at least three advantages + over a typical library API. First, it becomes much more language + independent--any language that can make [[system call]]s can access the + factorization library. Second, the factorization code is running in a + different address space; if it crashes, it won't crash or corrupt the + caller. Third, and most interestingly, it is possible to use `select(2)` to + wait for the factorization to complete. `select(2)` would make it easy for a + client to factor a large number while remaining responsive to other events + that might happen in the meantime. In other words, FUSD allows normal + user-space libraries to integrate seamlessly with UNIX's existing, + POSIX-standard event notification interface: `select(2)`." + +## Mail + +Am I off my rocker, or does an IMAP/POP translator sound like a good idea? It would make your remote mail servers look like local ones. Or what about a translator that makes a mbox format mail spool look like a directory. Can anyone think of a good use for an SMTP translator? + +*Definitely: Copy my email in there to send it.* -- [[ArneBab|community/weblogs/ArneBab]] + +## UUEncode + +How about a UUEncode translator for those places you can only store ASCII. Combine this with a NNTP translator and store your data in someone's Usenet archive. Or since, (as far as I know), there are no size limitations on file names in the Hurd, why not have a filesystem translator whose underlying store is a file name. (Now ls becomes cat). + +## Computation + +This is from the revenge of the command-line department. Make a directory translator whose contents are a result of the computation specified in the directory name. Here's an example... + + $ settrans -a /comp /hurd/computationfs + $ cd "/comp/3+4" + $ ls -l + total 0 + -rw-r--r-- 1 nobody users 0 Oct 16 11:41 7 + $ + $ cd "/comp/sqrt(2)" + $ ls -l + total 0 + -rw-r--r-- 1 nobody users 0 Oct 16 11:42 1.4142135623731 + $ + +...etc. Now think about your favorite GUI HTML editor and using File->Open on the following directory name, ``"/comp/for i in $( find / -name *.html ); do ln -s $i `basename $i`;done"`` Which would produce a directory listing with soft links to all of the \*.html files on your system. You could have all of the comforts of the shell from within that little File->Open dialog box. + +## Other + +Just found Wolfgang J�hrling's translator [wishlist](http://www.8ung.at/shell/trans.html). + +## Bochs + +A translator which works with [Bochs](http://bochs.sourceforge.net/) disk images would be nice. + +## Rollover + +A translator that uses a circular buffer to store log files. The translated node only contains the last N (mega,kilo)bytes. + +## Birthday + +A translator that provides an interface into the birthday program. + +You can cat your calendar, eg. bd/calendar/today bd/calendar/this-week or bd/calendar/this-month. + +And you could write new events into files located in bd/events/DATE/event-name. + +DATE is of the format the birthday expects DD/MM/YYYY. + +The contents of the file are any or none of the following birthday options: ann (An anniversary), bd (A birthday), ev (Some other event), wN (Warn N days in advance of date), toDATE (Event lasts until this DATE), forDAYS (Event runs for DAYS). + +You can optionally just edit the bd/birthdays file if you want to edit the configuration file by hand. It might make sense to write changes from bd/birthdays into ~/.birthdays. + + $ settrans -c bd /hurd/birthday -f ~/.birthdays + $ ls bd/ + birthdays calendar events + $ find bd -print + bd + bd/calendar + bd/calendar/daily + bd/calendar/this-week + bd/calendar/this-month + bd/events + bd/birthdays + $ + +## LVM + +A translator to access block devices from Linux's [Logical Volume Management](http://www.tldp.org/HOWTO/LVM-HOWTO/) would be an useful addition. + + # settrans -cap /dev/VolumeGroup0 /hurd/lvm /dev/PhysicalVolume0 /dev/PhysicalVolume1 ... + # ls /dev/VolumeGroup0/ + home + var + # settrans -cap /home /hurd/ext2fs /dev/VolumeGroup0/home + # settrans -cap /var /hurd/ext2fs /dev/VolumeGroup0/var + +Probably both [LVM2](http://sourceware.org/lvm2/) and the [Device-mapper](http://sourceware.org/dm/) need to be ported. + +## bridging translator + +A [bridging](http://bridge.sourceforge.net/faq.html) translator could improve the Hurd's networking facilities. + + # settrans -cap /dev/br0 /hurd/bridge -i eth0 -i eth1 ... + # settrans -cap /servers/socket/2 /hurd/pfinet -i /dev/br0 -a ... -g ... -m ... + +Perhaps Linux's bridging code and [utilities](http://bridge.sourceforge.net/) can be ported (or glued in) or code from one of the BSDs. + +## SSH translator + +Presenting remote file systems through SSH similar to what gnome-vfs does. + +## Crontab translator + +Presenting a user's crontab in a filesystem where cron entries are files. + +## globlink + +Firmlink to a file according to a filename matching pattern. When a file goes away, the next file that is matched is automatically linked to. + + $ settrans -ac libfoo.so /hurd/globlink '/lib/libfoo*' + +## alphabetfs + +Organize a large group of files by their first letter. Present one subdirectory for each letter in the alphabet. + +## fsysoptsctl + +Send an fsysopts command to a set of translators. When you have a directory full of translators and you want to send each of them the same runtime option, this translator can do it for you. + + $ settrans -ac all /hurd/fsysoptsctl '/tmp/mystuff/*' + $ fsysopts all --update diff --git a/hurd/translator/wishlist_1.mdwn b/hurd/translator/wishlist_1.mdwn deleted file mode 100644 index 04e7ecac..00000000 --- a/hurd/translator/wishlist_1.mdwn +++ /dev/null @@ -1,127 +0,0 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, -Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -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]]."]]"""]] - -* FUSE(fuse.sourceforge.net/) compatilbility library. : just modify FUSE apps a and compile little to work as translator :-) - -* File Finder. (uses find, grep, a combination or a custom command (htdig, mp3 info) - * Files found will be available under one directory and then can be used like a normal directory - * usefull to generate Albums, Share only resulting files over the et, etc.. - * The filefinder can be scheduled or can be connected over some ipc like dbus to the VFS system if any to keep a watch for new files. - -* GNOKII, BitPim and openobex as translators - * grep through your SMSs! - * share your addressbook! - * "Attach" that funny SMS/MMS to your email. - * "svn commit" your joke collection :-D - -* Real Language Translator [[br]] - * cat /usr/translator/de-en/usr/share/doc/something.txt should take /usr/share/doc/something.txt , submit it to google's website and bring back results. - -* Mozilla Bookmarks = del.ici.ous - * Need more explanation ? ;-) - -* - * having a directory structure for a file can allow to "svn commit" the hnb document in a more "node-safe" manner, thus allowing multiple people to work on the same hnb document. - * This must be fairly easy as HNB can already export to XML and XMLfs already exists. - -* DavFS - * Just setup a 'WebDav share' as a directory. The implimentation of the protocol is already available in nautilus and konqueror. - -* Compiled form of your project - * you have your project in /somedir/project with source in /somedir/project/src .. /somedir/project/bin should always have the compiled version.. is it possible? - * The source has to have a MakeFile. - * creating /somedir/project/bin-somearch should aotomatically crosscompile - * Seems feasible for a small project. - -* Report generation FrameWork - an idea to be hugged by app developers..not kernel developers. - * You have financial data in some Spreadsheet like format in /yourFinance directory - * You add report templates to /yourFinance/repTemplates - * Once you save data in /yourFinance the next cat /yourFinance/reports/areportname will give you an uptodate report. - * This will be usefull for any purpose including serving by static page web servers, sharing over samba/nfs/ftp etc.! - * The advantage is any save to the spreadsheet will update the report.. not just from one software. - -* SVN (Subversion suite) - * like [[cvsfs]]. /svndir/version/version-no should automatically have subversion - * I think it is nice to write a generalised version control system framework library which will help in writing version control translators and other tools easily. - -* Flexi-acls - * First of all - Can this be done? : A translator bound to a directory must be able to access the contents of the directory which would have been accessible in the absence of the translator.. - * This will enable to write translators that can implement custom "Access Control Lists". Just imagine having advanced ACLs even if underlying FileSystem is dumb! Imagine changing the type of ACLs implemented with Just two commands - one to unattach previous translator and the next to attach a different ACL translator! The ACLs themselves may be stored in a different directory - -* The translator manager! - * Some translators will need to be inserted automatically - like for eg: hardware drivers .. - * Each hardware translator will pubish its capabilities. - * The "top" translator will query the capabilities of different hardware and match capabilities with the "slave" translators. That is it's only Job. - * The control is then handed over to the slave translator. - * The ranking not only looks who can handle the "most" capabilites of the hardware. If it finds that multiple translators can handle the same hardware, It will use other parameters to choose between them.. like may be the size in memory? The revision date? Stability (inferred from version number)? And to go to the extreme, the profiling data of the driver ;-P - * Advantage : The best driver wins! - -* An eg. Skip it if you understood the above :-): - * You have a driver that can handle VGA + SVGA + Super3d acceleration + Particle graphics + Works for nvidea card. - * You have a driver that can handle SVGA + VGA . - * You have a driver that can handle VGA. - * Case 1: Your card: A VGA card with some extra fonts.. - * First the VGA driver will be quireied .. ok can handle essential capability. - * Next SVGA driver: can handle but has extra module.. unnecassary weight . - * The Nvidia driver: can handle , but again unnecassary weight : ruled out. - * Winner : VGA driver: - * Case 2: Your card An SVGA card: - * First the VGA driver will be quireied .. ok can handle one essential capability. - * Next SVGA driver: can handle essential and one extra capability no extra weight.. - * The Nvidia driver: can handle , but unnecassary weight : ruled out. - * Winner : SVGA driver.. - * Case 3 : You have an VGA .. but no VGA driver .. then the SVGA driver would win. - -* Sound Server - * /ahsa - stands for Advanced HURD sound architecture :-) Just a temporary name .. for fun. - * /ahsa/out - directory wich will hold "plug"s where apllications come and join the server .. see below. - * /ahsa/out/mixer - main mixer - * /ahsa/out/nextfree - the file when "cat"ed gives the number of the next free plug - * /ahsa/plugins/ - info about available plugins - * /ahsa/out/[1..n]/ - dynamically generated directories for applications to plug on.. - * /ahsa/out/[1..n]/data this is where you should do a "cat somerawsoundfile>/ahsa/out/`cat /ahsa/nextfree`/data" - * /ahsa/out/[1..n]/plugins - the plugin stack .. volume is also a plugin.. - * /ahsa/out/[1..n]/plugins/[1..m]/ - echo "plugin param1 param2 param3" > /ahsa/out/[1..n]/plugins/`cat /ahsa/out/[1..n]/plugins/nextfree`/add - * /ahsa/out/[1..n]/plugins/[1..m]/params/{param1.. paramn} - * /ahsa/out/[1..n]/data.out - can be catted to get data processed through the server - * /ahsa/in - similar to /ahsa/out .. with except for an extra file to choose input devices. - * /ahsa/devs/{1..n} - devices detected .. can be dynamic .. there are usb soundcards and and midi devices. - * /ahsa/out/[1..n]/plugins/[1..m]/0/params/dev - * Dont get tempted for :/ahsa/out/[1..n]/params/{rate, channels, and other stuff} - * that goes into /ahsa/out/[1..n]/plugins/0/params if /ahsa/out/[1..n]/plugins/0/detected == "headerless audio" - * There are a lot more things I can continue about the "sound server" .. The Ideas simply dont seem to exhaust.. - * Some features/advantages - * set output's translator plugin as ordinary text -- have text to speech conversion done by sound server! - * Create and apply plugin presets by simply copying directories! - * Me getting dizzy thinking of the zillion more advantages. - * If you are really doing some ordinary output , all you need to do is "cat" data into next free "plug" and everything will be autodetected including the format of the data and sent to the final sound "merge"r - * Dizzy ... - -* /usr/share/menu !!!! extension for package management idea .. - * cat mymenuitem.menu >> /usr/share/menu/menu - * cat /usr/share/menu/debian/kde ... :-) - -* Spam/Malware Control - * /usr/antimalware/ - put your mail here.. it will automatically be scanned. when finished it will vanish from here .. - * /usr/antimalware/clean - ... and pop out from here - * /usr/antimalware/malware - or here. - -* NetDevice - * !JustImagine(tm)... settrans -ac /netdevices /hurd/netdevfs - [ host | net ] - * One can access device files remotely - * This could be acheived by allowing translators talk to one another over a network - * This will need translators to catch and handle ioctls (if there is such a thing in HURD). - * The device server which will listen to requests from the translators can be run even on a Linux machine!!! - * !JustImagine(tm)... accessing the crwriter/webcam on that GNU/Linux machine on the network using cdrecord of your local hurd machine! - * !JustImagine(tm)... running GNU/HURD on a minimalistic GNU/Linux(but with all the drivers) through a specially modified and optimised Qemu. The device server runs on the host machine, and the client translators access over the virtual network created by Qemu. You got most of the drivers for free! - -* Emacs File VFS - * I came to know from my Emacs loving friend that there are lots of VFS handlers in Emacs.. I was wondering if there can be translator which can tap into these Emacs VFS handlers. diff --git a/hurd/translator/wishlist_2.mdwn b/hurd/translator/wishlist_2.mdwn deleted file mode 100644 index ab4d26ea..00000000 --- a/hurd/translator/wishlist_2.mdwn +++ /dev/null @@ -1,189 +0,0 @@ -## Introduction - -The idea behind file system translators is a powerful concept which hasn't recieved much attention in the mainstream computing world. So here is a list of interesting translators I've been able to dream up. I'm sure there are many more ideas floating around out there, so add them to the list! - -The [ferris project](http://witme.sourceforge.net/libferris.web/features.html) has some great ideas and code in the area of userspace dynamic filesystems, as has the [FUSE project](http://fuse.sourceforge.net/). - -## Audio\_cdfs - -A translator which produces a directory of \*.wav files when you have an audio CD in the drive. - -## Ogg - -This translator could be a sub-directory of the Audio\_cdfs translator and it would translate the \*.wav files into Ogg Vorbis/MP3 format. - -## CDDB - -Of course it would be a lot nicer if the above two translators didn't name their files something worthless like track001.ogg. So we would want a translator which would hook up with a database on the web and produce meaningful file names. - -## Crypto - -A cryptographic/steganographic seem like a nice match with the concept of user-land file systems. I like the idea of something like `settrans -a /secure stegfs --mpeg file001.mpg` - -## Revision control - -All of the empty space on your drive is now being wasted. Why not have a revision control translator which tracks changes to your documents? See also [this guy](http://www.linuxjournal.com/article.php?sid=5976). And then you'd do something like `cd /time-machine/2003/sept/14/` to see what your system looked like on the 14th of septempber 2003. - -## ROM - -How about a translator which makes it look like you can write to read only media (like CDs), or change files which I don't have permission to change. This translator would make it seem like you could copy files to places where you normally couldn't. Think about combining this translator with the ftp translator and the tar and gzip translators. (cd /ftp/gnu.org/gnome.tar.gz/writes\_allowed; make install). It could be that unionfs does this very thing. - -## Super\_FIFO - -It's like a named pipe which is smart enough to start a process everytime something new tries to read from it. For example, let's say I have a script that reads in a JPEG image and spits out a smaller thumbnail \*.jpg to STDOUT. With a standard fifo (`mknod -p fifo`) this would almost works (`script big.jpg > fifo`). But what if there are two processes trying to read the fifo at once? Ick. And of course the standard way only works once without rerunning the command. I'm not quite sure what the syntax should look like, but I'm sure someone out there has a great idea waiting to happen. - -## Perl - -Perl is a wonderful language for hacking together something useful in a short amount of time. No concept is complete without being able to use it in a perl one-liner. And that goes for Hurd translators too. Right? - - #!/usr/bin/perl - use Hurd::translator; - - #file named "two" can produce an endless supply of twos, etc. (a la /dev/zero) - my $i=0; - for $filename ([zero one two three four]) - { - $libtrivfsread_codehash{$filename}= - sub{ $num_bytes=shift; my $data=$i; return chr($data) x $num_bytes; }; - #that's a hash of references to closures - $i++; - } - translator_startup(); - -A Perl translator has been started by [John Edwin Tobey](http://john-edwin-tobey.org/Hurd/) (pith). - -## Source code - -Here's a crazy thought. How about a translator for source code. You have a C source file like `hello.c` which is your normal everyday file. But there's a translator sitting underneath, so when you `cd hello.c` you get a directory with files like `main()` which represent the subroutines in `hello.c`. And of course you should be able to edit/remove those and have it modify the original source. - -## Libraries - -Here's an [idea](http://www.circlemud.org/~jelson/software/fusd/docs/node13.html) from the people making [userspace drivers in Linux](http://www.circlemud.org/~jelson/software/fusd/): - -* "One particularly interesting application of FUSD that we've found very useful is as a way to let regular user-space libraries export device file APIs. For example, imagine you had a library which factored large composite numbers. Typically, it might have a C interface--say, a function called `int *factorize(int bignum)`. With FUSD, it's possible to create a device file interface--say, a device called `/dev/factorize` to which clients can `write(2)` a big number, then `read(2)` back its factors. - -* This may sound strange, but device file APIs have at least three advantages - over a typical library API. First, it becomes much more language - independent--any language that can make [[system call]]s can access the - factorization library. Second, the factorization code is running in a - different address space; if it crashes, it won't crash or corrupt the - caller. Third, and most interestingly, it is possible to use `select(2)` to - wait for the factorization to complete. `select(2)` would make it easy for a - client to factor a large number while remaining responsive to other events - that might happen in the meantime. In other words, FUSD allows normal - user-space libraries to integrate seamlessly with UNIX's existing, - POSIX-standard event notification interface: `select(2)`." - -## Mail - -Am I off my rocker, or does an IMAP/POP translator sound like a good idea? It would make your remote mail servers look like local ones. Or what about a translator that makes a mbox format mail spool look like a directory. Can anyone think of a good use for an SMTP translator? - -*Definitely: Copy my email in there to send it.* -- [[ArneBab|community/weblogs/ArneBab]] - -## UUEncode - -How about a UUEncode translator for those places you can only store ASCII. Combine this with a NNTP translator and store your data in someone's Usenet archive. Or since, (as far as I know), there are no size limitations on file names in the Hurd, why not have a filesystem translator whose underlying store is a file name. (Now ls becomes cat). - -## Computation - -This is from the revenge of the command-line department. Make a directory translator whose contents are a result of the computation specified in the directory name. Here's an example... - - $ settrans -a /comp /hurd/computationfs - $ cd "/comp/3+4" - $ ls -l - total 0 - -rw-r--r-- 1 nobody users 0 Oct 16 11:41 7 - $ - $ cd "/comp/sqrt(2)" - $ ls -l - total 0 - -rw-r--r-- 1 nobody users 0 Oct 16 11:42 1.4142135623731 - $ - -...etc. Now think about your favorite GUI HTML editor and using File->Open on the following directory name, ``"/comp/for i in $( find / -name *.html ); do ln -s $i `basename $i`;done"`` Which would produce a directory listing with soft links to all of the \*.html files on your system. You could have all of the comforts of the shell from within that little File->Open dialog box. - -## Other - -Just found Wolfgang J�hrling's translator [wishlist](http://www.8ung.at/shell/trans.html). - -## Bochs - -A translator which works with [Bochs](http://bochs.sourceforge.net/) disk images would be nice. - -## Rollover - -A translator that uses a circular buffer to store log files. The translated node only contains the last N (mega,kilo)bytes. - -## Birthday - -A translator that provides an interface into the birthday program. - -You can cat your calendar, eg. bd/calendar/today bd/calendar/this-week or bd/calendar/this-month. - -And you could write new events into files located in bd/events/DATE/event-name. - -DATE is of the format the birthday expects DD/MM/YYYY. - -The contents of the file are any or none of the following birthday options: ann (An anniversary), bd (A birthday), ev (Some other event), wN (Warn N days in advance of date), toDATE (Event lasts until this DATE), forDAYS (Event runs for DAYS). - -You can optionally just edit the bd/birthdays file if you want to edit the configuration file by hand. It might make sense to write changes from bd/birthdays into ~/.birthdays. - - $ settrans -c bd /hurd/birthday -f ~/.birthdays - $ ls bd/ - birthdays calendar events - $ find bd -print - bd - bd/calendar - bd/calendar/daily - bd/calendar/this-week - bd/calendar/this-month - bd/events - bd/birthdays - $ - -## LVM - -A translator to access block devices from Linux's [Logical Volume Management](http://www.tldp.org/HOWTO/LVM-HOWTO/) would be an useful addition. - - # settrans -cap /dev/VolumeGroup0 /hurd/lvm /dev/PhysicalVolume0 /dev/PhysicalVolume1 ... - # ls /dev/VolumeGroup0/ - home - var - # settrans -cap /home /hurd/ext2fs /dev/VolumeGroup0/home - # settrans -cap /var /hurd/ext2fs /dev/VolumeGroup0/var - -Probably both [LVM2](http://sourceware.org/lvm2/) and the [Device-mapper](http://sourceware.org/dm/) need to be ported. - -## bridging translator - -A [bridging](http://bridge.sourceforge.net/faq.html) translator could improve the Hurd's networking facilities. - - # settrans -cap /dev/br0 /hurd/bridge -i eth0 -i eth1 ... - # settrans -cap /servers/socket/2 /hurd/pfinet -i /dev/br0 -a ... -g ... -m ... - -Perhaps Linux's bridging code and [utilities](http://bridge.sourceforge.net/) can be ported (or glued in) or code from one of the BSDs. - -## SSH translator - -Presenting remote file systems through SSH similar to what gnome-vfs does. - -## Crontab translator - -Presenting a user's crontab in a filesystem where cron entries are files. - -## globlink - -Firmlink to a file according to a filename matching pattern. When a file goes away, the next file that is matched is automatically linked to. - - $ settrans -ac libfoo.so /hurd/globlink '/lib/libfoo*' - -## alphabetfs - -Organize a large group of files by their first letter. Present one subdirectory for each letter in the alphabet. - -## fsysoptsctl - -Send an fsysopts command to a set of translators. When you have a directory full of translators and you want to send each of them the same runtime option, this translator can do it for you. - - $ settrans -ac all /hurd/fsysoptsctl '/tmp/mystuff/*' - $ fsysopts all --update -- cgit v1.2.3 From 103b31f914fa69f6aef26ba198472b07aeeb3889 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sat, 16 Mar 2013 19:17:26 +0100 Subject: start writing something about libfuse --- faq/fuse_support.mdwn | 16 ++++++++++++++++ hurd.mdwn | 2 ++ hurd/libfuse.mdwn | 29 +++++++++++++++++++++++++++++ hurd/translator/wishlist.mdwn | 4 ---- 4 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 faq/fuse_support.mdwn create mode 100644 hurd/libfuse.mdwn (limited to 'hurd/translator') diff --git a/faq/fuse_support.mdwn b/faq/fuse_support.mdwn new file mode 100644 index 00000000..3a442427 --- /dev/null +++ b/faq/fuse_support.mdwn @@ -0,0 +1,16 @@ +[[!meta copyright="Copyright © 2013 Free Software Foundation, +Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +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="Does Hurd support FUSE?"]] + +There is a start of work on implementing a [[FUSE|hurd/libfuse]] library on Hurd; +currently, it still does provide all the functionalities needed to make +FUSE filesystems compile or work correctly, so it is not generally usable yet. diff --git a/hurd.mdwn b/hurd.mdwn index d5dd7e4f..fb41e24b 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -94,6 +94,8 @@ in the *unstable* branch of the Debian archive. * [[libihash]] * [[libthreads]] * [[libpthread]] +* In-development Libraries + * [[libfuse]] * [[IO_Path]] * [[Porting]] * [[Debugging]] diff --git a/hurd/libfuse.mdwn b/hurd/libfuse.mdwn new file mode 100644 index 00000000..b85cbd30 --- /dev/null +++ b/hurd/libfuse.mdwn @@ -0,0 +1,29 @@ +[[!meta copyright="Copyright © 2013 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +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]]."]]"""]] + +`libfuse` is an Hurd-specific implementation of [FUSE](http://fuse.sourceforge.net). + +The implementation takes advantage of the [[translators|translator]] facilities +of Hurd: this means that applications that implement a FUSE filesystem, when +compiled against libfuse-hurd, become translators to be set with usual `settrans` +etc. + + +# Status + +* Only part of the API is implemented + * lowlevel API not implemented + * Options handling not implemented +* Supports the compatibility level 25 (while current libfuse 2.9.x provides 26) + + +# Source + +[[source_repositories/incubator]], libfuse/master. diff --git a/hurd/translator/wishlist.mdwn b/hurd/translator/wishlist.mdwn index 70af27f2..18e46685 100644 --- a/hurd/translator/wishlist.mdwn +++ b/hurd/translator/wishlist.mdwn @@ -15,10 +15,6 @@ The idea behind file system translators is a powerful concept which hasn't recie The [ferris project](http://witme.sourceforge.net/libferris.web/features.html) has some great ideas and code in the area of userspace dynamic filesystems, as has the [FUSE project](http://fuse.sourceforge.net/). -## FUSE ([fuse.sourceforge.net](http://fuse.sourceforge.net)) compatibility library - -Just modify FUSE apps a and compile little to work as translator :-) - ## File Finder (uses find, grep, a combination or a custom command (htdig, mp3 info) * Files found will be available under one directory and then can be used like a normal directory * usefull to generate Albums, Share only resulting files over the et, etc.. -- cgit v1.2.3 From 3882a856d6f6acc5e9ace1b0ef0390fc00a9ea43 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlyLVajq_XluZ1wvTunv9vbM_kx1H0nd6Q" Date: Sat, 16 Mar 2013 23:38:51 +0100 Subject: --- hurd/translator/ext2fs.mdwn | 2 ++ 1 file changed, 2 insertions(+) (limited to 'hurd/translator') diff --git a/hurd/translator/ext2fs.mdwn b/hurd/translator/ext2fs.mdwn index 65361ff4..bc43644f 100644 --- a/hurd/translator/ext2fs.mdwn +++ b/hurd/translator/ext2fs.mdwn @@ -138,6 +138,8 @@ small backend stores, like floppy devices. breaks performance on the hurd and 30 seems like a reasonable amount (better than 5 at least) +That would be a nice improvement, but only after writeback throttling is implemented. + # Documentation -- cgit v1.2.3 From a3c7449641e79aa838cbfd0a7fb4831b009f455f Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlyLVajq_XluZ1wvTunv9vbM_kx1H0nd6Q" Date: Sat, 16 Mar 2013 23:42:15 +0100 Subject: --- hurd/translator/ext2fs/page_cache.mdwn | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'hurd/translator') diff --git a/hurd/translator/ext2fs/page_cache.mdwn b/hurd/translator/ext2fs/page_cache.mdwn index e8a964ed..c129a98e 100644 --- a/hurd/translator/ext2fs/page_cache.mdwn +++ b/hurd/translator/ext2fs/page_cache.mdwn @@ -29,3 +29,7 @@ This is not at all specific to ext2fs, so should be integrated elsewhere. memory? Tekk_: yes awesome. I was worried :) + +Actually, ext2fs doesn't contain its page cache (the virtual and physical +memory counters do not take the cache size into account). But it must allocate +descriptors for the cached content. -- cgit v1.2.3 From c3f20f232d70e7131f0d6c5580df3b497b751e70 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawlyLVajq_XluZ1wvTunv9vbM_kx1H0nd6Q" Date: Sat, 16 Mar 2013 23:48:12 +0100 Subject: --- hurd/translator/pfinet/ipv6.mdwn | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) (limited to 'hurd/translator') diff --git a/hurd/translator/pfinet/ipv6.mdwn b/hurd/translator/pfinet/ipv6.mdwn index 42ee3c55..826467da 100644 --- a/hurd/translator/pfinet/ipv6.mdwn +++ b/hurd/translator/pfinet/ipv6.mdwn @@ -57,21 +57,6 @@ Quite the same, but with static IPv6 address assignment: Amongst other things, support for [[IOCTL]]s is missing. -## IRC, freenode, #hurd, 2012-12-10 - -[[!tag open_issue_hurd]] - - looks like pfinet -G option doesn't work - if someone is interested in fixing this (it concerns static IPv6 - routing) - youpi: have you ever successfully used pfinet with global - statically configured ipv6 addresses ? - never tried - ok - i'd like to set this up on my VMs but it looks bugged :/ - i can't manage to set correctly set the gateway - - ### IRC, freenode, #hurd, 2012-12-12 hm, pfinet seems not to support ipv6 well at all :( @@ -136,6 +121,8 @@ Amongst other things, support for [[IOCTL]]s is missing. ok, enabling ALLMULTI was enough to fix it you can ping6 2001:910:1059:2:5054:00ff:fe12:3456 :) +Indeed, IPv6 now works properly, and the very machine hosting this wiki +(darnassus.sceen.net) can be reached with that protocol. ## IRC, freenode, #hurd, 2013-01-13 -- cgit v1.2.3 From 1b548be2ad91bc07b2a596950eab5020fc026070 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sun, 17 Mar 2013 13:34:24 +0100 Subject: misc changes --- faq/running/off.mdwn | 12 +++++++----- faq/running/slash_usr_symlink.mdwn | 2 +- hurd.mdwn | 4 +++- hurd/libfuse.mdwn | 6 +++++- hurd/libthreads.mdwn | 4 ++++ hurd/translator.mdwn | 3 +++ hurd/translator/tmpfs.mdwn | 5 +++-- hurd/translator/tmpfs/discussion.mdwn | 2 -- hurd/translator/wishlist.mdwn | 2 +- 9 files changed, 27 insertions(+), 13 deletions(-) (limited to 'hurd/translator') diff --git a/faq/running/off.mdwn b/faq/running/off.mdwn index 48e6bcc7..eb2a6d1c 100644 --- a/faq/running/off.mdwn +++ b/faq/running/off.mdwn @@ -8,14 +8,16 @@ 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="shutdown does not work, How am I supposed to shut my Hurd system down?"]] +[[!meta title="shutdown does not work, how am I supposed to shut my Hurd system down?"]] The GNU/Hurd does not use SYSV runlevels, so commands like - $ shutdown -h now + # shutdown -h now -will not work. Simply use the equivalent shortcut +will not work. Simply use the equivalent shortcuts - $ halt + # halt + # reboot -which is provided natively on GNU/Hurd, instead of from SYSV runlevels. +to respectively shutdown and reboot Hurd, provided natively, +instead of from SYSV runlevels. diff --git a/faq/running/slash_usr_symlink.mdwn b/faq/running/slash_usr_symlink.mdwn index 5c47f4e1..5c70e54a 100644 --- a/faq/running/slash_usr_symlink.mdwn +++ b/faq/running/slash_usr_symlink.mdwn @@ -17,4 +17,4 @@ Today, we like to use different partitions for these two spaces. The Hurd throws this historical garbage away. We think that we have found a more flexible solution called union filesystems, which allow to create virtual filesystems which are the union of several other filesystems. However, support -for union filesystems is still in early development. +for union filesystems is [[still in early development|hurd/translator/unionfs]]. diff --git a/hurd.mdwn b/hurd.mdwn index fb41e24b..f005bd6b 100644 --- a/hurd.mdwn +++ b/hurd.mdwn @@ -92,10 +92,12 @@ in the *unstable* branch of the Debian archive. * [[libnetfs]] -- short introductory material * [[libdiskfs]] * [[libihash]] - * [[libthreads]] * [[libpthread]] + * [[libfshelp]] * In-development Libraries * [[libfuse]] +* Discontinued Libraries + * [[libthreads]] * [[IO_Path]] * [[Porting]] * [[Debugging]] diff --git a/hurd/libfuse.mdwn b/hurd/libfuse.mdwn index b85cbd30..bc6a9d4a 100644 --- a/hurd/libfuse.mdwn +++ b/hurd/libfuse.mdwn @@ -8,7 +8,10 @@ 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]]."]]"""]] -`libfuse` is an Hurd-specific implementation of [FUSE](http://fuse.sourceforge.net). +[[!tag stable_URL]] + +`libfuse` is an Hurd-specific implementation of [FUSE](http://fuse.sourceforge.net), +initially written by Stefan Siegl. The implementation takes advantage of the [[translators|translator]] facilities of Hurd: this means that applications that implement a FUSE filesystem, when @@ -21,6 +24,7 @@ etc. * Only part of the API is implemented * lowlevel API not implemented * Options handling not implemented + * CUSE lowlevel not supported (compatibility level 29) * Supports the compatibility level 25 (while current libfuse 2.9.x provides 26) diff --git a/hurd/libthreads.mdwn b/hurd/libthreads.mdwn index c8d819d4..87ed4b71 100644 --- a/hurd/libthreads.mdwn +++ b/hurd/libthreads.mdwn @@ -10,6 +10,10 @@ License|/fdl]]."]]"""]] `libthreads` a.k.a. C threads. +**Note**: since Hurd migrated to [[libpthread]] as threading library, +the development and usage of libpthread has been discontinued. + + # Internals diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index b04a5944..9bcdbcc5 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -131,6 +131,9 @@ The [[concept|concepts]] of translators creates its own problems, too: * [xmlfs](http://www.nongnu.org/hurdextras/#xmlfs) * [mboxfs](http://www.nongnu.org/hurdextras/#mboxfs) +Some of the above could be moved from hurdextras to [[source_repositories/incubator]], +see the [[status page|open_issues/hurdextras]]. + # Translator Wishlists diff --git a/hurd/translator/tmpfs.mdwn b/hurd/translator/tmpfs.mdwn index 626fad86..43216f76 100644 --- a/hurd/translator/tmpfs.mdwn +++ b/hurd/translator/tmpfs.mdwn @@ -20,5 +20,6 @@ system|ext2fs]] on it, having a real `tmpfs` is better, as it need not deal with the additional block-level indirection layer that `ext2` (or any other disk-based file system) imposes. -However, `tmpfs` is not working correctly at the moment, see the [[discussion]] -sub-pages. There is a [[!FF_project 271]][[!tag bounty]] on this task. +`tmpfs` generally works, although it requires root permissions for file content; +see the [[discussion]] sub-pages for the past and current issues. +There is a [[!FF_project 271]][[!tag bounty]] on this task. diff --git a/hurd/translator/tmpfs/discussion.mdwn b/hurd/translator/tmpfs/discussion.mdwn index 7d75edf5..01bf74ab 100644 --- a/hurd/translator/tmpfs/discussion.mdwn +++ b/hurd/translator/tmpfs/discussion.mdwn @@ -18,8 +18,6 @@ License|/fdl]]."]]"""]] * [[!GNU_Savannah_bug 26751]] - * [[!GNU_Savannah_bug 32755]] - # [[Maksym_Planeta]] diff --git a/hurd/translator/wishlist.mdwn b/hurd/translator/wishlist.mdwn index 18e46685..fe8b6798 100644 --- a/hurd/translator/wishlist.mdwn +++ b/hurd/translator/wishlist.mdwn @@ -11,7 +11,7 @@ is included in the section entitled ## Introduction -The idea behind file system translators is a powerful concept which hasn't recieved much attention in the mainstream computing world. So here is a list of interesting translators I've been able to dream up. I'm sure there are many more ideas floating around out there, so add them to the list! +The idea behind file system translators is a powerful concept which hasn't recieved much attention in the mainstream computing world. So here is a list of interesting translators people dream up. We are sure there are many more ideas floating around out there, so add them to the list! The [ferris project](http://witme.sourceforge.net/libferris.web/features.html) has some great ideas and code in the area of userspace dynamic filesystems, as has the [FUSE project](http://fuse.sourceforge.net/). -- cgit v1.2.3 From 18fdac0f9c911e25d45ebfcfb5e52ccd56071c16 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sun, 17 Mar 2013 16:24:35 +0100 Subject: misc changes --- faq/0-still_useful.mdwn | 2 +- faq/help.mdwn | 2 +- faq/running/xserver-common.mdwn | 9 +++++++-- faq/support/2_gib_partition_limit.mdwn | 2 +- hurd/translator.mdwn | 4 ++-- hurd/translator/examples.mdwn | 17 +++++++++-------- hurd/translator/hello.mdwn | 6 +++--- hurd/translator/mboxfs.mdwn | 9 +++++++++ hurd/translator/xmlfs.mdwn | 6 ++++++ 9 files changed, 39 insertions(+), 18 deletions(-) (limited to 'hurd/translator') diff --git a/faq/0-still_useful.mdwn b/faq/0-still_useful.mdwn index 96ea6f32..85608fe3 100644 --- a/faq/0-still_useful.mdwn +++ b/faq/0-still_useful.mdwn @@ -30,7 +30,7 @@ various servers are designed for this sort of modification. > $ cd /ftp://ftp.debian.org/debian > $ ls > -> personnal filesystem +> personal filesystem > > $ dd < /dev/zero > myspace.img bs=1M count=1024 > $ mke2fs myspace.img diff --git a/faq/help.mdwn b/faq/help.mdwn index 44e16d6b..8352dbfe 100644 --- a/faq/help.mdwn +++ b/faq/help.mdwn @@ -10,4 +10,4 @@ is included in the section entitled [[!meta title="How can I help?"]] -Please see the [contributing page](http://www.gnu.org/software/hurd/contributing.html) +Please see the [[contributing page|contributing]]. diff --git a/faq/running/xserver-common.mdwn b/faq/running/xserver-common.mdwn index 460c6e55..68058641 100644 --- a/faq/running/xserver-common.mdwn +++ b/faq/running/xserver-common.mdwn @@ -11,5 +11,10 @@ License|/fdl]]."]]"""]] [[!meta title="Normal users can't start X"]] -You need to run `dpkg-reconfigure x11-common` and select `Anybody` for -starting X as there is no way to detect console users currently. +This happens because currently there is no way to detect console users. + +On Debian GNU/Hurd systems, you need to run + + # dpkg-reconfigure x11-common + +and select `Anybody` for starting X. diff --git a/faq/support/2_gib_partition_limit.mdwn b/faq/support/2_gib_partition_limit.mdwn index 3315cc08..8d921b07 100644 --- a/faq/support/2_gib_partition_limit.mdwn +++ b/faq/support/2_gib_partition_limit.mdwn @@ -8,7 +8,7 @@ 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="Is there still a 2 GiB Partition Limit ?"]] +[[!meta title="Is there still a 2 GiB Partition Limit?"]] The 2 GiB limit has been removed in Debian GNU/Hurd. diff --git a/hurd/translator.mdwn b/hurd/translator.mdwn index 9bcdbcc5..d4eaf950 100644 --- a/hurd/translator.mdwn +++ b/hurd/translator.mdwn @@ -128,8 +128,8 @@ The [[concept|concepts]] of translators creates its own problems, too: * [pith](http://www.nongnu.org/hurdextras/#pith) * [pptop](http://www.nongnu.org/hurdextras/#pptop) * [run](http://www.nongnu.org/hurdextras/#run) -* [xmlfs](http://www.nongnu.org/hurdextras/#xmlfs) -* [mboxfs](http://www.nongnu.org/hurdextras/#mboxfs) +* [[xmlfs]] +* [[mboxfs]] Some of the above could be moved from hurdextras to [[source_repositories/incubator]], see the [[status page|open_issues/hurdextras]]. diff --git a/hurd/translator/examples.mdwn b/hurd/translator/examples.mdwn index ee766fbf..190b26ae 100644 --- a/hurd/translator/examples.mdwn +++ b/hurd/translator/examples.mdwn @@ -10,7 +10,8 @@ is included in the section entitled ## Setting up translators - HowTo -Translators can be got from hurd-extras +Additional translators can be got from [[source_repositories/incubator]], +or [hurd-extras](http://www.nongnu.org/hurdextras/). cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/hurdextras co @@ -36,7 +37,7 @@ or ftp$ cd ftp.fr.debian.org ftp/ftp.fr.debian.org $ ls -* tarfs translator (needs uatime fix, 2010-08-25 → [git repo](http://github.com/giselher/tarfs)) +* [[tarfs]] translator You can use tarfs to mount (almost) any tar file (currently broken, 2010-08-25): @@ -52,14 +53,14 @@ You can even use it to create new tar files: This is not as fast as `tar czvf newfile.tar.gz all my files`, but at least it's more original. ;) -* cvsfs translator +* [[cvsfs]] translator $ settrans -ac cvsfs_testing /hurd/cvsfs cvs.savannah.nongnu.org /sources/hurdextras $ cd cvsfs_testing -* pfinet translator -- configuring your network interface +* [[pfinet]] translator -- configuring your network interface @@ -77,17 +78,17 @@ This is not as fast as `tar czvf newfile.tar.gz all my files`, but at least it's $ settrans -ac /cdrom /hurd/iso9660fs /dev/ -* ext2fs translator -- 'mounting' an ext2fs partition +* [[ext2fs]] translator -- 'mounting' an ext2fs partition $ settrans -ac /linux /hurd/ext2fs /dev/ -* unionfs translator +* [[unionfs]] translator To join "foo/" "bar/" and "baz/" in the directory "quux/", just do: $ settrans -capfg quux/ /hurd/unionfs foo/ bar/ baz/ -If you want to join even quux/ contents in the union itself, add -u as a translator argument. -You can add filesystems at run-time with the fsysopts command. +If you want to join even quux/ contents in the union itself, add `-u` as a translator argument. +You can add filesystems at run-time with the `fsysopts` command. diff --git a/hurd/translator/hello.mdwn b/hurd/translator/hello.mdwn index bd56cd76..440e1774 100644 --- a/hurd/translator/hello.mdwn +++ b/hurd/translator/hello.mdwn @@ -8,7 +8,7 @@ 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]]."]]"""]] -The *hello* translator is an example of a simple [[libtrivfs]]-based one-node +The `hello` translator is an example of a simple [[libtrivfs]]-based one-node [[translator]]. It is shipped as part of the [[Hurd source code -repository|source_repositories]], and exists in a single-threaded and a -multi-threaded variant. +repository|source_repositories]], and exists in a single-threaded (`hello.c`) +and a multi-threaded (`hello-mt.c`) variant. diff --git a/hurd/translator/mboxfs.mdwn b/hurd/translator/mboxfs.mdwn index e357294f..4ffcaab6 100644 --- a/hurd/translator/mboxfs.mdwn +++ b/hurd/translator/mboxfs.mdwn @@ -8,4 +8,13 @@ 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]]."]]"""]] +`mboxfs` is a translator meant to help people sorting emails. +It parses mailboxes in order to create a directory hierarchy representing +the contents of the mailbox. +Thus, you can sort emails per recipient, senders, date, and much more. +It supports attachments (put in a separate *attach* directory). + + +# Source + diff --git a/hurd/translator/xmlfs.mdwn b/hurd/translator/xmlfs.mdwn index 769c43ce..f57b9f2f 100644 --- a/hurd/translator/xmlfs.mdwn +++ b/hurd/translator/xmlfs.mdwn @@ -8,4 +8,10 @@ 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]]."]]"""]] +`xmlfs` is a translator that provides access to XML documents through the +filesystem. + + +# Source + -- cgit v1.2.3