[rumpkernel/rumprun] 8bc4d9: Replace jsmn parser with jsoncvt

  • From: GitHub <noreply@xxxxxxxxxx>
  • To: rumpkernel-builds@xxxxxxxxxxxxx
  • Date: Wed, 17 Feb 2016 02:50:41 -0800

  Branch: refs/heads/mato-wip-rumprun-config
  Home:   https://github.com/rumpkernel/rumprun
  Commit: 8bc4d9f24b7de6c3ca2c5287a291d930932dcb20
      
https://github.com/rumpkernel/rumprun/commit/8bc4d9f24b7de6c3ca2c5287a291d930932dcb20
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: 680ba7b5fd1bc7f71bf5fb32aead028c7c066d39
      
https://github.com/rumpkernel/rumprun/commit/680ba7b5fd1bc7f71bf5fb32aead028c7c066d39
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 Feb 2016)

  Changed paths:
    M lib/librumprun_base/config.c

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


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

  Changed paths:
    M app-tools/rumprun

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


  Commit: e0f89d449f3d464dd078a02815beb763747e40a0
      
https://github.com/rumpkernel/rumprun/commit/e0f89d449f3d464dd078a02815beb763747e40a0
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: 3f7b16ee2417802d3211d1dc5ad6bdbbd0b5d8b1
      
https://github.com/rumpkernel/rumprun/commit/3f7b16ee2417802d3211d1dc5ad6bdbbd0b5d8b1
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 Feb 2016)

  Changed paths:
    M lib/librumprun_base/config.c

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


  Commit: 932771c7726d6a2ccce2999ffbcf864c04b0f178
      
https://github.com/rumpkernel/rumprun/commit/932771c7726d6a2ccce2999ffbcf864c04b0f178
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: 92a0d39eb0e48c0802a597049f3c3135f55ccb69
      
https://github.com/rumpkernel/rumprun/commit/92a0d39eb0e48c0802a597049f3c3135f55ccb69
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: ac58ab0ff32c01284786b1cbb5253423e998bddb
      
https://github.com/rumpkernel/rumprun/commit/ac58ab0ff32c01284786b1cbb5253423e998bddb
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: 21d8ede89e627519b6caab427a8c22b641a2cc51
      
https://github.com/rumpkernel/rumprun/commit/21d8ede89e627519b6caab427a8c22b641a2cc51
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: a2c47762592574653b591f85afcb76000372b58d
      
https://github.com/rumpkernel/rumprun/commit/a2c47762592574653b591f85afcb76000372b58d
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 Feb 2016)

  Changed paths:
    M lib/librumprun_base/config.c

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


  Commit: a2b01b72284976de4d31a093ed4d22f76f2544fc
      
https://github.com/rumpkernel/rumprun/commit/a2b01b72284976de4d31a093ed4d22f76f2544fc
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: 56a22795141137faf040d45fb3207a58d1682226
      
https://github.com/rumpkernel/rumprun/commit/56a22795141137faf040d45fb3207a58d1682226
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 Feb 2016)

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

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


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

  Changed paths:
    M app-tools/rumprun

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


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

  Changed paths:
    M app-tools/rumprun

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


  Commit: 3cbe24dba8e4964cdb97c4477c560d42424084d7
      
https://github.com/rumpkernel/rumprun/commit/3cbe24dba8e4964cdb97c4477c560d42424084d7
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: c1d77e8998c24145551cbfbfc5b39040e9318942
      
https://github.com/rumpkernel/rumprun/commit/c1d77e8998c24145551cbfbfc5b39040e9318942
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: 4ebfa99f080bc878c57f229ef82a49ab23d8234d
      
https://github.com/rumpkernel/rumprun/commit/4ebfa99f080bc878c57f229ef82a49ab23d8234d
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: 6f5e59c9c8c73f7d304bc35ef6026bf3e8616129
      
https://github.com/rumpkernel/rumprun/commit/6f5e59c9c8c73f7d304bc35ef6026bf3e8616129
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 Feb 2016)

  Changed paths:
    M lib/librumprun_base/config.c

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


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

  Changed paths:
    M lib/librumprun_base/config.c

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

No functional change intended.


  Commit: d15af492ee043ce40a5fb385bda1c14bb747bb15
      
https://github.com/rumpkernel/rumprun/commit/d15af492ee043ce40a5fb385bda1c14bb747bb15
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: 5753158c60459c575a9d9ab5470807f66e561fc0
      
https://github.com/rumpkernel/rumprun/commit/5753158c60459c575a9d9ab5470807f66e561fc0
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 Feb 2016)

  Changed paths:
    M lib/librumprun_base/config.c

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


  Commit: 307c887698f813f02a4b103f270825fe2ebf5439
      
https://github.com/rumpkernel/rumprun/commit/307c887698f813f02a4b103f270825fe2ebf5439
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: 96102913a07487c11e5f952cf9c66a963240c91e
      
https://github.com/rumpkernel/rumprun/commit/96102913a07487c11e5f952cf9c66a963240c91e
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 Feb 2016)

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

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


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

  Changed paths:
    M lib/librumprun_base/config.c

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


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

  Changed paths:
    M lib/librumprun_base/config.c

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


  Commit: 51e709c7f9a4840df27e6f70ad4f5049643a09da
      
https://github.com/rumpkernel/rumprun/commit/51e709c7f9a4840df27e6f70ad4f5049643a09da
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: 4d326e269242bc6e7bc84623a7821254b33ea636
      
https://github.com/rumpkernel/rumprun/commit/4d326e269242bc6e7bc84623a7821254b33ea636
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: 1baff5ffd19f20162e04d3db232c4f88d68978eb
      
https://github.com/rumpkernel/rumprun/commit/1baff5ffd19f20162e04d3db232c4f88d68978eb
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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: 14e7f4093f9af1ff775313ef202680c0f36d356b
      
https://github.com/rumpkernel/rumprun/commit/14e7f4093f9af1ff775313ef202680c0f36d356b
  Author: Martin Lucina <mato@xxxxxxxxxxxxx>
  Date:   2016-02-17 (Wed, 17 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/15811c63e3be...14e7f4093f9a

Other related posts:

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