Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 May 2014 17:34:41 +0300
From:      Zaro Korchev <zkorchev@mail.bg>
To:        David Chisnall <theraven@theravensnest.org>
Cc:        soc-status@freebsd.org, Eitan Adler <eadler@FreeBSD.org>, jonathan@FreeBSD.org
Subject:   Re: [Machine readable output from userland utilities] report
Message-ID:  <15BC1D7C-B909-48DB-AB6D-FF0F0F9C2B0A@mail.bg>
In-Reply-To: <4890861C-FC91-445D-AE9B-31CD5FDFD0A9@theravensnest.org>
References:  <8D1B686D-1AAA-4E07-9270-E42699110561@mail.bg> <4890861C-FC91-445D-AE9B-31CD5FDFD0A9@theravensnest.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi David

I removed the GPL code from the repository.

I considered using libucl and libnv. The problem with libucl is that it =
does not support streamed output so, after a discussion with my mentors, =
I decided to implement this prototype version using YAJL. This is not a =
final decision but that's what I'm using at the moment.
I may use libnv soon - I just haven't had need for it yet. It has one =
limitation that I'm concerned about - it does not support arrays (the =
only supported composite data type is key, value pairs).


Zaro

Le 26 May 2014 =E0 13:34, David Chisnall a =E9crit :

> Hi Zaro,
>=20
> A few comments - hopefully your mentors can chime in with a bit more:
>=20
> Your repo appears to contain GNU coreutils, which is not part of the =
FreeBSD base system and is GPLv3 code, so for legal reasons a lot of =
FreeBSD developers can't look at it and most shouldn't if they are =
planning on working on any similar parts of the FreeBSD system.  I =
believe that the socsvn server is isolated from the main svn repository, =
but putting GPLv3 code in any FreeBSD svn server can open the project to =
liability, so I would ask you to remove it as soon as possible.
>=20
> Second, your SOL appears to be using yajl.  This project was intended =
to use libucl and libnv as the human-readable and binary serialization =
mechanisms, as those are already present in the base system.  Have you =
spent any time yet looking at them?  Are there limitations in their APIs =
and the structures that they can represent?
>=20
> David
>=20
> On 26 May 2014, at 00:09, Zaro Korchev <zkorchev@mail.bg> wrote:
>=20
>> This week I made a simple design for the project and implemented JSON =
output for an example application.
>>=20
>> I made research on several libraries that I may use for my project. I =
designed a simple API for structured output. At the moment I call it SOL =
(Structured Output Library). I'm open to better name suggestions :)
>>=20
>> The API is in no way final. I will change it as issues arise in the =
future.
>>=20
>> I have a prototype version of ls that uses the API to output JSON. =
There are still some issues to resolve but the modified ls is basically =
working.
>> The code is accessible in the GSoC 2014 repository:
>> https://socsvn.freebsd.org/socsvn/soc2014/zkorchev/
>>=20
>> here are two examples:
>>=20
>> ls /
>> =
["COPYRIGHT","bin","boot","dev","entropy","etc","home","lib","libexec","me=
dia","mnt","proc","rescue","root","sbin","sys","tmp","usr","var"]
>>=20
>> ls -l /
>> =
[{"mode":"-r--r--r--","nlink":1,"user":"root","group":"root","size":6201,"=
time":"Jan 17 =
00:41","name":"COPYRIGHT"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","g=
roup":"root","size":1024,"time":"Jan 17 =
00:40","name":"bin"},{"mode":"drwxr-xr-x","nlink":8,"user":"root","group":=
"root","size":1024,"time":"Mar 18 =
20:42","name":"boot"},{"mode":"dr-xr-xr-x","nlink":12,"user":"root","group=
":"root","size":512,"time":"May 23 =
15:22","name":"dev"},{"mode":"-rw-------","nlink":1,"user":"root","group":=
"root","size":4096,"time":"May 23 =
15:22","name":"entropy"},{"mode":"drwxr-xr-x","nlink":21,"user":"root","gr=
oup":"root","size":2048,"time":"May 22 =
18:51","name":"etc"},{"mode":"lrwxr-xr-x","nlink":1,"user":"root","group":=
"root","size":8,"time":"Mar 18 =
17:37","name":"home","link":"usr/home"},{"mode":"drwxr-xr-x","nlink":3,"us=
er":"root","group":"root","size":1536,"time":"Jan 17 =
00:40","name":"lib"},{"mode":"drwxr-xr-x","nlink":3,"user":"root","group":=
"root","size":512,"time":"Mar 18 17:28","name":"libe
>> =
xec"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","group":"root","size":5=
12,"time":"Jan 17 =
00:39","name":"media"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","group=
":"root","size":512,"time":"Jan 17 =
00:39","name":"mnt"},{"mode":"dr-xr-xr-x","nlink":2,"user":"root","group":=
"root","size":512,"time":"Jan 17 =
00:39","name":"proc"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","group"=
:"root","size":2560,"time":"Jan 17 =
00:40","name":"rescue"},{"mode":"drwxr-xr-x","nlink":7,"user":"root","grou=
p":"root","size":512,"time":"May 23 =
17:53","name":"root"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","group"=
:"root","size":2560,"time":"Jan 17 =
00:41","name":"sbin"},{"mode":"lrwxr-xr-x","nlink":1,"user":"root","group"=
:"root","size":11,"time":"Jan 17 =
00:42","name":"sys","link":"usr/src/sys"},{"mode":"drwxrwxrwt","nlink":6,"=
user":"root","group":"root","size":512,"time":"May 23 =
17:51","name":"tmp"},{"mode":"drwxr-xr-x","nlink":17,"user":"root","group"=
:"root","size":512,"time":"Mar 18 17:37","name":"usr
>> =
"},{"mode":"drwxr-xr-x","nlink":24,"user":"root","group":"root","size":512=
,"time":"May 23 15:22","name":"var"}]
>>=20
>> As I implemented this example modified version of ls, I got some =
ideas about where problems can arise in the future and I got some =
insight on how I can approach to solve them.
>>=20
>>=20
>> Zaro
>> _______________________________________________
>> soc-status@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/soc-status
>> To unsubscribe, send any mail to "soc-status-unsubscribe@freebsd.org"
>=20
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15BC1D7C-B909-48DB-AB6D-FF0F0F9C2B0A>