[gpm] splitted libgpm and gpmd, 9p, ...

Nico Schottelius nico-gpm@schottelius.org
Mon Jun 2 15:31:20 CEST 2008

Hello Enrico,

Enrico Weigelt [Mon, Jun 02, 2008 at 12:41:41PM +0200]:
> * Nico Schottelius <nico-gpm@schottelius.org> wrote:
> > Enrico Weigelt [Mon, May 26, 2008 at 09:55:52PM +0200]:
> > >     svn://nibiru.metux.de/public/gpm/
> > 
> > Must confess that I personally would prefer git over svn, so merging
> > stuff back would be easier (and no, I do not consider git-svn as
> > something useful, if one mainly uses git, because merges break in svn
> > and get rebased).
> [...git / svn]
> Maybe you could give me an quick howto for git ?

Imho git is really easy, once one understood the model of a
decentralized system.

In general you do:

[git-init somehow *(1)]
[refresh-tree *(2)]
git-add file # that was changed
git-commit -m "what I did"
[publish changes *(3)]

*(1): either git-init for new project or git-clone:
   git-clone http://unix.schottelius.org/git/gpm 

*(2): git-fetch (updates database) and
      git-merge origin/name (like git-merge origin/gpm-2-dev)
*(3): You don't need write access in the central repo, just publish
      your stuff under some url, so I can pull it:

      host=yourserver            # server you can ssh to
      dir=public_html/gpm.git    # subdir you have write access to
      remotename=aname           # git name for the remote place

      # for my system it is:

      rsync -av .git/ $host:$dir
      git-remote add $remotename git+ssh://$host/$dir
      git-fetch $remotename
      git-push $remotename  # should say: Everything up-to-date

So actually you need one line to clone gpm via git and four lines to
publish it.

I can recommened http://cworth.org/hgbook-git/tour/ for instance to get
used with git.

In fact, I am currently saying once you get used to git, understood its
principles and why branches are extremly cool stuff, you'll most likely
dislike many of the 'heavy and old' vcs. But that's just my personal

> > Perhaps you can explain why 9P could be interesting for people and
> > how to use it -> so maybe you get more hands / eyes on that idea.
> Well, the first point is that internal status and runtime configuration
> can now be accessed via a simple filesystem interface. Not special 
> protocol and tools needed - just mount it (my mc-9p has an 9p vfs :))
> and use plain file io. With 9P it's completely network agnostic.

Sounds nice.

> The next step is an 9P-based event interface (a bit like linux-evdev,
> but purely text-based and network agnostic), which just sends the input 
> events (not only mouse) line per line. No special protocol needed,
> a read loop and a bunch of strcmp() and sscanf() will be enough.

I would advise against sscanf(), as it makes error prone coding quite

> One day this new interface should completely replace the current 
> gpm protocol, so libgpm isn't really necessary for many apps anymore.

I am not sure, whether this will happen (though actually it may), but I
would be interested in your plans about integration in the mainline of

In my opinion you should base your work on the gpm-2-* branches, add a
configure option --enable-9p and put your stuff below src/9p/.

That way it could be easy to integrate 9p support into upstream gpm.

I am not sure, whether it will soon be possible to integrate it into
a gpm-2 release, perhaps it's a better feature for gpm3...

But anyway, I am interested in your ideas of merging your stuff back to
the mainline (if you are interested in that) and not breaking stuff ;-)



Think about Free and Open Source Software (FOSS).

PGP: BFE4 C736 ABE5 406F 8F42  F7CF B8BE F92A 9885 188C
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.linux.it/pipermail/gpm/attachments/20080602/5c9ea7de/attachment.pgp 

More information about the gpm mailing list