parsav  Check-in [afae276b2f]

Overview
Comment:rip out json-c, replace with mjson
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: afae276b2f5614c05a79a885ea7e883b979af6303eeb5e14960ead9977714e57
User & Date: lexi on 2021-01-29 21:14:57
Other Links: manifest | tags
Context
2021-06-22
15:18
various bug fixes, minor additions, more silliness check-in: 45a6e815b1 user: lexi tags: trunk
2021-01-29
21:14
rip out json-c, replace with mjson check-in: afae276b2f user: lexi tags: trunk
2021-01-28
02:50
fix more dumb leaks check-in: 4ce1aab090 user: lexi tags: trunk
Changes

Modified config.lua from [f9545a425d] to [52297260cd].

   254    254   			if not found then
   255    255   				me.linkargs[#me.linkargs+1] = sw
   256    256   			end
   257    257   		end
   258    258   	end
   259    259   end
   260    260   
   261         -pkg('mbedtls')
   262         -pkg('mongoose')
   263         -pkg('json-c')
   264         -pkg('libc')
   265         -pkg('libpq')
          261  +for k in pairs(fallback) do pkg(k) end
   266    262   
   267    263   return conf

Modified makefile from [51cc28542c] to [5b41282a82].

    25     25   clean:
    26     26   	rm parsav parsav.o $(images) $(styles)
    27     27   
    28     28   install: parsav
    29     29   	mkdir $(prefix)/bin
    30     30   	cp $< $(prefix)/bin/
    31     31   
    32         -dep: dep.mbedtls dep.mongoose dep.json-c
           32  +dep: dep.mbedtls dep.mongoose dep.mjson
    33     33   dep.mbedtls: lib/mbedtls/library/libmbedtls.a \
    34     34   	lib/mbedtls/library/libmbedcrypto.a \
    35     35   	lib/mbedtls/library/libmbedx509.a
    36     36   dep.mongoose: lib/mongoose/libmongoose.a
    37         -dep.json-c: lib/json-c/libjson-c.a
           37  +dep.mjson: lib/mjson/libmjson.a
    38     38   
    39         -static-libs = lib/json-c/libjson-c.a \
           39  +static-libs = lib/mjson/libmjson.a \
    40     40   		      lib/mongoose/libmongoose.a \
    41     41   		      lib/mbedtls/library/libmbedx509.a \
    42     42   		      lib/mbedtls/library/libmbedcrypto.a \
    43     43   		      lib/mbedtls/library/libmbedtls.a
    44     44   
    45     45   dist-kind ?= o
    46     46   parsav-dist = parsav-$(dist-kind)dist-$(version)
................................................................................
    49     49   	cp -u $^ $(parsav-dist)/
    50     50   	tar cf   $(parsav-dist){.tar,}
    51     51   	xz -c9e  $(parsav-dist).tar > $@
    52     52   	rm -r    $(parsav-dist){.tar,}
    53     53   
    54     54   lib:
    55     55   	mkdir $@
           56  +
           57  +lib%.a %.a: %.o
           58  +	ar rcs $@ $<
           59  +	ranlib $@ # bsd-ism
           60  +
    56     61   # generate a shim static library so mongoose cooperates
    57     62   # with the build apparatus. note that parsav is designed
    58     63   # to be fronted by a real web server like nginx if SSL
    59     64   # is to be used, so we don't turn on SSL in mongoose
    60         -lib/mongoose/libmongoose.a: lib/mongoose lib/mongoose/mongoose.c lib/mongoose/mongoose.h
    61         -	$(CC) -c $</mongoose.c -o lib/mongoose/mongoose.o \
           65  +lib/mongoose/mongoose.o: lib/mongoose/mongoose.c lib/mongoose/mongoose.h lib/mongoose
           66  +	$(CC) -c $< -o lib/mongoose/mongoose.o \
    62     67   		-DMG_ENABLE_THREADS=1 \
    63     68   		-DMG_ENABLE_IPV6=1 \
    64     69   		-DMG_ENABLE_HTTP_WEBDAV=1 \
    65     70   		-DMG_ENABLE_HTTP_WEBSOCKET=0
    66         -	ar rcs $@ lib/mongoose/*.o
    67         -	ranlib $@
    68     71   
    69         -lib/json-c/Makefile: lib/json-c lib/json-c/CMakeLists.txt
    70         -	cd $< && cmake .
    71         -lib/json-c/libjson-c.a: lib/json-c/Makefile
    72         -	$(MAKE) -C lib/json-c
           72  +lib/mjson/mjson.o: lib/mjson/src/mjson.c lib/mjson/src/mjson.h lib/mjson
           73  +	$(CC) -c $< -o lib/mjson/mjson.o \
           74  +		-DMJSON_MAX_DEPTH=16 \
           75  +		-DMJSON_ENABLE_BASE64=0 \
           76  +		-DMJSON_ENABLE_RPC=0
           77  +
    73     78   lib/mbedtls/library/%.a: lib/mbedtls 
    74     79   	$(MAKE) -C lib/mbedtls/library $*.a
    75     80   
    76     81   ifeq ($(dl), git)
    77     82   clone = git clone --depth 1 # save time
    78     83   ensurelib = mkdir -p lib && cd lib
    79     84   lib/mongoose: 
    80     85   	$(ensurelib) && $(clone) https://github.com/cesanta/mongoose.git
           86  +lib/mjson: 
           87  +	$(ensurelib) && $(clone) https://github.com/cesanta/mjson.git
    81     88   lib/mbedtls: 
    82     89   	$(ensurelib) && $(clone) https://github.com/ARMmbed/mbedtls.git
    83         -lib/json-c: 
    84         -	$(ensurelib) && $(clone) https://github.com/json-c/json-c.git
    85     90   else
    86     91   lib/%: lib/%.tar.gz
    87     92   	$(ensurelib) && tar zxf $*.tar.gz
    88     93   	mv lib/$$(tar tf $< | head -n1) $@
    89     94   
    90     95   ifeq ($(dl), wget)
    91     96       dlfile = mkdir -p $(dir $@) && wget "$1" -O "$@"
................................................................................
    93     98   
    94     99   ifeq ($(dl), curl)
    95    100       dlfile = mkdir -p $(dir $@) && curl "$1" -o "$@"
    96    101   endif
    97    102   
    98    103   lib/mongoose.tar.gz:
    99    104   	$(call dlfile,https://api.github.com/repos/cesanta/mongoose/tarball/master)
          105  +lib/mjson.tar.gz:
          106  +	$(call dlfile,https://api.github.com/repos/cesanta/mjson/tarball/master)
   100    107   lib/mbedtls.tar.gz:
   101    108   	$(call dlfile,https://api.github.com/repos/ARMmbed/mbedtls/tarball/master)
   102         -lib/json-c.tar.gz:
   103         -	$(call dlfile,https://api.github.com/repos/json-c/json-c/tarball/master)
   104    109   endif

Modified parsav.t from [584b173afe] to [9e243d4979].

   434    434   lib.err = lib.loadlib('mbedtls','mbedtls/error.h')
   435    435   lib.rsa = lib.loadlib('mbedtls','mbedtls/rsa.h')
   436    436   lib.pk = lib.loadlib('mbedtls','mbedtls/pk.h')
   437    437   lib.md = lib.loadlib('mbedtls','mbedtls/md.h')
   438    438   lib.b64 = lib.loadlib('mbedtls','mbedtls/base64.h')
   439    439   lib.net = lib.loadlib('mongoose','mongoose.h')
   440    440   lib.pq = lib.loadlib('libpq','libpq-fe.h')
   441         -lib.jc = lib.loadlib('json-c','json.h')
          441  +lib.jc = lib.loadlib('mjson','mjson.h')
   442    442   
   443    443   lib.load {
   444    444   	'mem', 'math', 'str', 'file', 'crypt', 'ipc';
   445    445   	'http', 'html', 'session', 'tpl', 'store', 'acl';
   446    446   
   447    447   	'mime'; -- mimetype database & whitelist
   448    448   	'smackdown'; -- md-alike parser

Modified pkgdata.lua from [85c9cc69e8] to [dbac8681c6].

     6      6   		libs = {'mbedtls', 'mbedcrypto', 'mbedx509'};
     7      7   		osvars = {
     8      8   			linux_nixos = { -- lacks a *.pc on nixos systems
     9      9   				prefix = sthunk('nix', 'path-info', 'nixos.mbedtls');
    10     10   			}
    11     11   		};
    12     12   		vars = { builddir = '/library', srcincdir = '/include' };
    13         -	};
    14         -	['json-c'] = {
    15         -		osvars = {
    16         -			linux_nixos = {
    17         -				prefix = sthunk('nix','path-info','nixos.json_c');
    18         -			};
    19         -		};
    20         -		vars = {
    21         -			builddir = '';
    22         -			incsuffix = '/json-c'; -- only used when path generated from prefix
    23         -		}
    24     13   	};
    25     14   	mongoose = { vars = { builddir = '' } };
           15  +	mjson = { vars = { builddir = '', srcincdir = '/src' } };
    26     16   	libpq = {
    27     17   		osvars = {
    28     18   			linux_nixos = {
    29     19   				prefix = sthunk('nix', 'path-info', 'nixos.postgresql.lib');
    30     20   				incdir = function()
    31     21   					local a = {'nix', 'path-info', 'nixos.postgresql'}
    32     22   					return (util.exec(a)) .. '/include';