[rumpkernel/rumprun] db58bf: Replace jsmn parser with jsoncvt

  • From: GitHub <noreply@xxxxxxxxxx>
  • To: rumpkernel-builds@xxxxxxxxxxxxx
  • Date: Wed, 10 Feb 2016 02:39:18 -0800

  Branch: refs/heads/mato-wip-rumprun-config
  Home:   https://github.com/rumpkernel/rumprun
  Commit: db58bf852cd3e048573da7997aba4141f863f532
      
https://github.com/rumpkernel/rumprun/commit/db58bf852cd3e048573da7997aba4141f863f532
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun
    R include/bmk-core/jsmn.h
    A include/rumprun-base/json.h
    M lib/libbmk_core/Makefile
    R lib/libbmk_core/jsmn.c
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  Replace jsmn parser with jsoncvt

In preparation for refactoring the rumprun configuration spec, replace
the jsmn parser with jsoncvt.

Summary of commit:

- jsmn.h, jsmn.c removed from bmk-core
- json.h added to librumprun-base, see comments at top of file for
  modifications made to upstream source
- config.c rewritten to use the new parser
- rumprun script tweaked to generate slightly more valid JSON

No functional changes intended. Minimal testing with tests/runtests.sh
kvm passes.


  Commit: f246d0cd9da58cfb96902247a87d3c9c7b3a7952
      
https://github.com/rumpkernel/rumprun/commit/f246d0cd9da58cfb96902247a87d3c9c7b3a7952
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: handle_rc: We want the item, not the parent


  Commit: c53192219bf44e8610a9c96fb28295b624c63055
      
https://github.com/rumpkernel/rumprun/commit/c53192219bf44e8610a9c96fb28295b624c63055
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun

  Log Message:
  -----------
  rumprun: Missing json_finish in xen


  Commit: 104aa6245b1e3b71d2f5d5669b4cdafeeff25352
      
https://github.com/rumpkernel/rumprun/commit/104aa6245b1e3b71d2f5d5669b4cdafeeff25352
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun
    M doc/config.md
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: Deprecate 'cmdline' in favour of 'rc'


  Commit: f2bba5087e2f0a9ed42b36ebf89d448f27bac493
      
https://github.com/rumpkernel/rumprun/commit/f2bba5087e2f0a9ed42b36ebf89d448f27bac493
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: jexpect() should abort, not warn


  Commit: e34672c4e2ff28db905da4f8ee8dd75a3c1efc12
      
https://github.com/rumpkernel/rumprun/commit/e34672c4e2ff28db905da4f8ee8dd75a3c1efc12
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun
    M doc/config.md
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: Refactor 'env' to use key/value pairs

Refactor the 'env' key in the config spec to be an object of key/value
pairs rather than individual strings. Also use setenv() rather than
putenv() in the implementation.


  Commit: 7162e1da83f3a4a8f5f5a368e170306f9c421d12
      
https://github.com/rumpkernel/rumprun/commit/7162e1da83f3a4a8f5f5a368e170306f9c421d12
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun

  Log Message:
  -----------
  rumprun: Remove harmless cruft from json_store_rc

Snuck in while editing too quickly...


  Commit: 52142f4ad50e0a079b82a6d104d71bc30cc95c06
      
https://github.com/rumpkernel/rumprun/commit/52142f4ad50e0a079b82a6d104d71bc30cc95c06
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: Refactor to use common object handling

This allows us to re-use handle_object() for handling nested objects.
Also, ignore unknown keys in config rather than aborting, on the
assumption that we might have been passed a newer config.


  Commit: 82fa14d43cf058466296182e203a2a1500cb90f4
      
https://github.com/rumpkernel/rumprun/commit/82fa14d43cf058466296182e203a2a1500cb90f4
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun
    M doc/config.md
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: Refactor net{} configuration


  Commit: a19345b991798cfe07d98d08fd8ab16fc442c2cd
      
https://github.com/rumpkernel/rumprun/commit/a19345b991798cfe07d98d08fd8ab16fc442c2cd
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: Add comment about handle_object() being inefficient


  Commit: ab666f94798b61c5c3d5582bdaa7c95114bf6dcc
      
https://github.com/rumpkernel/rumprun/commit/ab666f94798b61c5c3d5582bdaa7c95114bf6dcc
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun
    M doc/config.md
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: Refactor blk{}

Split blk{} into blk{} (configure block devices) and mount{} (mount
filesystems).


  Commit: ee54cad8a184242454e49ea9e5acdc776f8f1aae
      
https://github.com/rumpkernel/rumprun/commit/ee54cad8a184242454e49ea9e5acdc776f8f1aae
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: Fix blk.etfs confusion


  Commit: ea6294857a99f92d57f665989bade7f0b20b826a
      
https://github.com/rumpkernel/rumprun/commit/ea6294857a99f92d57f665989bade7f0b20b826a
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun

  Log Message:
  -----------
  config: Fix interfaces{}.'create' for Xen


  Commit: b62ad181c8cef16a292c0e9034eba1c49fde43fd
      
https://github.com/rumpkernel/rumprun/commit/b62ad181c8cef16a292c0e9034eba1c49fde43fd
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun

  Log Message:
  -----------
  rumprun: Fix json_store_xen_blkspec


  Commit: 4bc9665060abe576e99c79abe18d94f958c6c3c3
      
https://github.com/rumpkernel/rumprun/commit/4bc9665060abe576e99c79abe18d94f958c6c3c3
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun
    M lib/librumprun_tester/rumprun_tester.c

  Log Message:
  -----------
  config: Fix Xen block device naming

Might as well follow NetBSD userspace here and use /dev/xbdX.


  Commit: 45315be6924f4eefa800c6861ea513f768782b27
      
https://github.com/rumpkernel/rumprun/commit/45315be6924f4eefa800c6861ea513f768782b27
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun
    M doc/config.md
    M platform/xen/rumphyper_bio.c

  Log Message:
  -----------
  config: xen: Use 'blkfront:' as ETFS prefix instead of 'XENBLK_'

Given that the ETFS key is now part of the public interface, use
'blkfront:' as the prefix for Xen block devices rather than 'XENBLK_'.
Also, improve the documentation of XBD device configuration.


  Commit: 8abd52694357da58ad1a9d774f25d929a4e39a30
      
https://github.com/rumpkernel/rumprun/commit/8abd52694357da58ad1a9d774f25d929a4e39a30
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun
    M doc/config.md
    M lib/librumprun_base/config.c
    M lib/librumprun_base/rumprun.c

  Log Message:
  -----------
  config: Support for tmpfs

Add support for a "source" of "tmpfs" to mount{}. To keep existing
behaviour, the rumprun script will always include a tmpfs.


  Commit: 7924bcbc546b816db51f08fcd49e97dfa76777d4
      
https://github.com/rumpkernel/rumprun/commit/7924bcbc546b816db51f08fcd49e97dfa76777d4
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: Fix iso-root for EC2


  Commit: 95cd90894e4f420196d9a5f0bcf4396efc37669e
      
https://github.com/rumpkernel/rumprun/commit/95cd90894e4f420196d9a5f0bcf4396efc37669e
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: Clean up addbin()

No functional change intended.


  Commit: 435f1e7633fec252877f81bf6f35ef6f08250d0a
      
https://github.com/rumpkernel/rumprun/commit/435f1e7633fec252877f81bf6f35ef6f08250d0a
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun
    M doc/config.md
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: rc[].argv[] -> rc[].args[]

Makes it clear that these are the arguments, with going into C-land
semantics of argv.


  Commit: 0a982c37ace5d5148a70f16c7fd5e5e52e169b82
      
https://github.com/rumpkernel/rumprun/commit/0a982c37ace5d5148a70f16c7fd5e5e52e169b82
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: Check for strdup failures


  Commit: 03a4b21a98070ed569a1b4f1281b26e1e1295bc3
      
https://github.com/rumpkernel/rumprun/commit/03a4b21a98070ed569a1b4f1281b26e1e1295bc3
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M doc/config.md
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: Complete specification

Add examples and clear up remaning TODO/FIXME items in spec.


  Commit: a9a8745cb0846c33daa2a7adbd97a00b0655f2e7
      
https://github.com/rumpkernel/rumprun/commit/a9a8745cb0846c33daa2a7adbd97a00b0655f2e7
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M doc/config.md
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: Support configuring DNS resolver


  Commit: bbec56b88c438f6e2cda268052324e73546cfc4a
      
https://github.com/rumpkernel/rumprun/commit/bbec56b88c438f6e2cda268052324e73546cfc4a
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: Don't bomb if nameservers OR search is missing


  Commit: efb1e4c9590fd51ab58fbce30da0288ea17a4868
      
https://github.com/rumpkernel/rumprun/commit/efb1e4c9590fd51ab58fbce30da0288ea17a4868
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: Initialize tmpfs_args correctly


  Commit: b73897d90b06ad7046354072f7ecb611d032e89c
      
https://github.com/rumpkernel/rumprun/commit/b73897d90b06ad7046354072f7ecb611d032e89c
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M doc/config.md
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: "runmode" improvements

- use "bg" and "pipe" instead of "&" and "|"
- allow user to explicitly specify "fg"


  Commit: c54ec11099b4cd7205d7713ddc2497828b6b1397
      
https://github.com/rumpkernel/rumprun/commit/c54ec11099b4cd7205d7713ddc2497828b6b1397
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M doc/config.md
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: use "", "&", "|" for runmode

See discussion on rumpkernel-users, use of familiar &/| for runmode
allows for extending to support more flexible file descriptor
manipulation.


  Commit: e75ae005c573b7ae89afbf76ac544cf5ca347cd3
      
https://github.com/rumpkernel/rumprun/commit/e75ae005c573b7ae89afbf76ac544cf5ca347cd3
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M app-tools/rumprun
    M app-tools/rumprun-bake.in
    M doc/config.md
    M include/rumprun-base/config.h
    M lib/librumprun_base/config.c
    M lib/librumprun_base/main.c
    M lib/librumprun_base/rumprun.c

  Log Message:
  -----------
  config: "rc" sync with spec discussion, multibake improvements

Summary of commit:
- sync with the ongoing spec discussion:
  - args[] -> argv[]
  - remove ordering constraint for rc[]
- remove ordering constraint in implementation:
  - rumprun-bake generates a list of binaries baked into the unikernel
    at bake time
  - config consumes this list and builds rumprun_execs from it
- special binname of "*" is needed for backward compatibility with the
  rumprun launch script


  Commit: 15811c63e3be61f51ae7c09bba281b3a84521a25
      
https://github.com/rumpkernel/rumprun/commit/15811c63e3be61f51ae7c09bba281b3a84521a25
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-10 (Wed, 10 Feb 2016)

  Changed paths:
    M doc/config.md
    M lib/librumprun_base/config.c

  Log Message:
  -----------
  config: "rc": improve case where no rc[] or configuration is passed

Per discussion on the mailing list.


Compare: 
https://github.com/rumpkernel/rumprun/compare/1cd1b36d864b...15811c63e3be

Other related posts:

  • » [rumpkernel/rumprun] db58bf: Replace jsmn parser with jsoncvt - GitHub