what next for the pkg_install rewrite
swell.k at gmail.com
Mon Aug 30 07:33:48 UTC 2010
Bapt <bapt at freebsd.org> writes:
> On Fri, Aug 20, 2010 at 02:09:59PM +0200, Julien Laffaye wrote:
>> On Fri, Aug 20, 2010 at 12:00 PM, Ivan Voras <ivoras at freebsd.org> wrote:
>> > > 2. XML is a bad idea. Great in theory, wonderful in my browser, but a
>> > > bloated plaintext file with a lot of complexity. I would prefer a
>> > > database solution that could be dumped to a simple text file format if
>> > > needed.
>> > XML, at least in my proposal, would not be used for the system package
>> > database, but would replace (either in part or all with a single file)
>> > today's "+" files in the packages, together with other purposes where
>> > some metadata transfer is required.
>> > That said, I would also be happy with other self-described formats
>> > like JSON. XML is the front runner because it's more standard
>> > (industry standard, whether someone likes this fact or not!) and there
>> > is already a parser in base.
>> The pro of XML here is that we have a parser in base, The con is its
>> verbosity. But anyway the manifest is not meant to be human readable.
>> Nevertheless, I prefer JSON, because it's less complex than XML and we can
>> have a parser/emiter in a single 500SLOC .c file.
>> And it looks sexier than XML, eh : http://pastebin.com/8hzPSSJC
> +1 for JSON, XML would have been interesting if we add a validating parser in
> base which would have help us to verify the package integrity, but expat isn't a
> good validating parser. writting a json parser/emiter is easy, and there already
> exists tons of BSDL friendly license JSON parser. For exemple we could import
> yajl (BSDL) into base or use cJSON (MIT) which consist in one simple C + header
We can as well use Lua tables to store package database. Their syntax is
close to JSON.
Besides, I think it's better to divorce ports from base so that pkg_*
tools can evolve faster and are not limited to dependencies from base.
The only thing we'd need to leave in base is smth like pkg_bootstrap.
IMO, this chicken and egg problem is getting quite annoying.
More information about the freebsd-ports