]>
git.ipfire.org Git - pakfire.git/log
Michael Tremer [Fri, 31 May 2019 05:25:27 +0000 (06:25 +0100)]
libpakfire: parser: Move namespaces into parsers
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 05:24:07 +0000 (06:24 +0100)]
libpakfire: parser: Add missing const
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 05:12:02 +0000 (06:12 +0100)]
libpakfire: parser: Avoid passing empty parsers up from the bottom
Instead we pass NULL around and only create an empty parser
when we really need to.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 05:08:32 +0000 (06:08 +0100)]
libpakfire: parser: Handle else statements
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 04:44:24 +0000 (05:44 +0100)]
libpakfire: parser: Remove some duplicated code
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 04:36:56 +0000 (05:36 +0100)]
libpakfire: parser: Handle package
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 04:30:27 +0000 (05:30 +0100)]
libpakfire: parser: Handle scripts
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 04:27:08 +0000 (05:27 +0100)]
libpakfire: parser: Handle templates
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 04:26:36 +0000 (05:26 +0100)]
libpakfire: parser: Allow nested blocks
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 03:45:58 +0000 (04:45 +0100)]
libpakfire: parser: Merge parsers from all rules
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 03:22:12 +0000 (04:22 +0100)]
libpakfire: parser: Dump state of parser after parse
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 03:01:38 +0000 (04:01 +0100)]
libpakfire: parser: Remove some accidentially committed code
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 02:46:34 +0000 (03:46 +0100)]
libpakfire: parser: Leave parser untouched if a file could not be successfully parsed
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 02:40:21 +0000 (03:40 +0100)]
libpakfire: parser: Move back to an LR parser
We do not need a GLR parser any more because our syntax is no
longer ambiguous and therefore we can have a smaller parser.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 02:39:17 +0000 (03:39 +0100)]
libpakfire: parser: Handle if statements
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 31 May 2019 02:36:10 +0000 (03:36 +0100)]
libpakfire: parser: Break search when namespace is empty
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 May 2019 15:32:02 +0000 (16:32 +0100)]
libpakfire: parser: Rename pakfire_parser_add_declaration() to set
This is what the function really does and it now also
updates values correctly.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 May 2019 15:24:13 +0000 (16:24 +0100)]
libpakfire: parser: Fix logging of replacements
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 May 2019 15:21:31 +0000 (16:21 +0100)]
libpakfire: parser: Cleanup stripping namespaces
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 May 2019 14:29:43 +0000 (15:29 +0100)]
libpakfire: parser: Move our own code to out own library
Only the untidy flex/bison stuff remains in its own library.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 May 2019 14:26:27 +0000 (15:26 +0100)]
libpakfire: parser: Move logic into the C file
The bison file was getting very messy and the parser is large
enough to have its own object with ref counting.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 22 May 2019 09:11:02 +0000 (10:11 +0100)]
parser: Attempt to implement expanding variables
This seems to work (kind of), but there are so many bugs in the other
code that it is hard to tell.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 17 May 2019 17:30:09 +0000 (18:30 +0100)]
libpakfire: parser: Add compatibility for older pakfire files
This patch moves the keyword handling out of the parser and puts
it into the lexer where the "define" keyword is added where it is
needed.
That way, we have a clear definition of a clean syntax without
any shift/reduce or reduce/reduce errors, but remain compatible
to the current pakfire files.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Tue, 14 May 2019 07:35:27 +0000 (08:35 +0100)]
Makefile: Enable makefile test again
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 12 May 2019 13:01:35 +0000 (14:01 +0100)]
builder: Download transaction and run it
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 12 May 2019 12:04:09 +0000 (13:04 +0100)]
libpakfire: Support groups
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 11 May 2019 16:34:33 +0000 (17:34 +0100)]
libpakfire: Refactor group handling
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 29 Apr 2019 22:50:09 +0000 (23:50 +0100)]
builder: Remove old architecture classes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 29 Apr 2019 22:49:41 +0000 (23:49 +0100)]
http: Handle Bad Request errors
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 29 Apr 2019 22:39:57 +0000 (23:39 +0100)]
tests: Disable makefile test because this file cannot be parsed, yet
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 29 Apr 2019 22:22:29 +0000 (23:22 +0100)]
libpakfire: parser: Use end rule for closing blocks
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 29 Apr 2019 22:20:51 +0000 (23:20 +0100)]
libpakfire: parser: Drop thing rule
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 29 Apr 2019 22:19:41 +0000 (23:19 +0100)]
libpakfire: parser: Allow top rule to be empty
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 15 Mar 2019 05:21:22 +0000 (05:21 +0000)]
libpakfire: parser: Make empty lines an empty string and not NULL
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 15 Mar 2019 05:16:21 +0000 (05:16 +0000)]
libpakfire: parser: Add keyword rule which allows keywords to be words
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 15 Mar 2019 04:46:57 +0000 (04:46 +0000)]
Revert "libpakfire: parser: Make one rule for DEFINE"
This reverts commit
4d48274edd83f8e6f65f0528744d3b7671f9aae7 .
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 15 Mar 2019 04:43:41 +0000 (04:43 +0000)]
libpakfire: parser: Rename T_NEWLINE to T_EOL
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 15 Mar 2019 04:42:33 +0000 (04:42 +0000)]
libpakfire: parser: Add T_ prefix to all tokens
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 15 Mar 2019 04:36:19 +0000 (04:36 +0000)]
libpakfire: parser: Drop unused TAB token
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 15 Mar 2019 04:35:29 +0000 (04:35 +0000)]
libpakfire: parser: Make one rule for DEFINE
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 15 Mar 2019 04:08:30 +0000 (04:08 +0000)]
libpakfire: parser: Hack for IF in variable values
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 15 Mar 2019 04:02:40 +0000 (04:02 +0000)]
libpakfire: parser: Remove all whitespace processing
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Fri, 15 Mar 2019 03:54:50 +0000 (03:54 +0000)]
libpakfire: parser: Allow more special characters
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Mar 2019 14:12:47 +0000 (14:12 +0000)]
libpakfire: parser: Handle appending variables
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Mar 2019 13:51:02 +0000 (13:51 +0000)]
libpakfire: parser: Remove quotes around quoted strings
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Mar 2019 13:45:53 +0000 (13:45 +0000)]
libpakfire: parser: Parse if statements
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Mar 2019 13:45:25 +0000 (13:45 +0000)]
libpakfire: parser: Change parser type to GLR
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Mar 2019 06:00:32 +0000 (06:00 +0000)]
libpakfire: parser: Regard quoted strings as one word
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Mar 2019 05:57:16 +0000 (05:57 +0000)]
libpakfire: parser: Add missing ;
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Mar 2019 05:43:54 +0000 (05:43 +0000)]
libpakfire: parser: Scan for if and ==
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Mar 2019 05:29:55 +0000 (05:29 +0000)]
libpakfire: parser: Make grammar more clear on leading whitespace for assignments in a block
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Mar 2019 05:04:47 +0000 (05:04 +0000)]
libpakfire: parser: Make operators left-associative
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Mar 2019 04:57:47 +0000 (04:57 +0000)]
libpakfire: parser: values can be empty (just whitespace)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Mar 2019 04:56:35 +0000 (04:56 +0000)]
libpakfire: parser: Make define optional
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Mar 2019 04:46:27 +0000 (04:46 +0000)]
libpakfire: parser: Move whitespace handling to variable/value
This removes more shift/reduce and reduce/reduce errors
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Mar 2019 04:38:45 +0000 (04:38 +0000)]
libpakfire: parser: Curly brackets are special characters, too
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Thu, 14 Mar 2019 04:35:49 +0000 (04:35 +0000)]
libpakfire: parser: Lines can already be empty (but must be ended by newline)
This resolves another ambiguity in the parser
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Mar 2019 14:46:33 +0000 (14:46 +0000)]
libpakfire: parser: Allow variable assignments outside of blocks
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Mar 2019 14:41:37 +0000 (14:41 +0000)]
libpakfire: parser: Make empty line rule more simple
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Mar 2019 14:34:01 +0000 (14:34 +0000)]
tests: Add test for parser
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Mar 2019 14:32:59 +0000 (14:32 +0000)]
libpakfire: parser: Add convenience function to parse from FILE*
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Mar 2019 14:31:23 +0000 (14:31 +0000)]
libpakfire: util: Write function to read file into buffer
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Mar 2019 13:23:17 +0000 (13:23 +0000)]
Pass architecture to the Pakfire module as a string instead of Arch object
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Mar 2019 13:14:08 +0000 (13:14 +0000)]
libpakfire: parser: Enable debug mode
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Wed, 13 Mar 2019 13:08:19 +0000 (13:08 +0000)]
libpakfire: archive: Return extra error code when no signatures exist
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 11 Mar 2019 17:35:14 +0000 (17:35 +0000)]
libpakfire: gpgme must be initialized before loading data into memory
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 11 Mar 2019 17:33:16 +0000 (17:33 +0000)]
libpakfire: Add more debugging to archive verification
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 11 Mar 2019 10:39:05 +0000 (10:39 +0000)]
libpakfire: parser: Include parser.h in scanner.l
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 11 Mar 2019 10:34:53 +0000 (10:34 +0000)]
libpakfire: parser: Return the declarations
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 11 Mar 2019 10:29:25 +0000 (10:29 +0000)]
libpakfire: parser: Dynamically allocate declarations
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 11 Mar 2019 10:22:58 +0000 (10:22 +0000)]
libpakfire: parser: Remove static declaration of Pakfire object
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 11 Mar 2019 10:10:15 +0000 (10:10 +0000)]
libpakfire: parser: Explicitely allow empty lines between assignments
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 11 Mar 2019 10:05:43 +0000 (10:05 +0000)]
libpakfire: parser: Do not allow words to be empty (removes a shift/reduce error)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 11 Mar 2019 10:02:07 +0000 (10:02 +0000)]
libpakfire: parser: assignments and block assigments are the same thing
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Mon, 11 Mar 2019 10:00:13 +0000 (10:00 +0000)]
libpakfire: parser: Make top declaration more simple
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 10 Mar 2019 18:17:40 +0000 (18:17 +0000)]
libpakfire: parser: Add block prefix to declaration name
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 10 Mar 2019 18:05:20 +0000 (18:05 +0000)]
libpakfire: parser: Store declared variables in a long list
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 10 Mar 2019 16:59:44 +0000 (16:59 +0000)]
libpakfire: parser: Concat lines and words
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 10 Mar 2019 16:45:29 +0000 (16:45 +0000)]
libpakfire: parser: Set empty values to NULL
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 10 Mar 2019 16:43:37 +0000 (16:43 +0000)]
libpakfire: parser: Allow parsing block assignments
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sun, 10 Mar 2019 16:29:09 +0000 (16:29 +0000)]
libpakfire: parser: Replace VARIABLE/VALUE tokens with WORD
This is more generic although it allows any variable name
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 21:00:48 +0000 (21:00 +0000)]
libpakfire: parser: Read variable assignments
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 19:21:34 +0000 (19:21 +0000)]
libpakfire: parser: Move operators before the value matching rule
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 19:20:40 +0000 (19:20 +0000)]
libpakfire: parser: Values can be any sort of string
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 19:18:54 +0000 (19:18 +0000)]
libpakfire: parser: Increase indentation
No functional changes
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 19:18:21 +0000 (19:18 +0000)]
libpakfire: parser: Move keywords before variable matches
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 19:17:09 +0000 (19:17 +0000)]
libpakfire: parser: Variables must begin with a letter and may have digits and underscores
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 19:10:15 +0000 (19:10 +0000)]
libpakfire: parser: Ignore any empty lines
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 19:04:25 +0000 (19:04 +0000)]
libpakfire: parser: Use handle for whitespace
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 19:01:47 +0000 (19:01 +0000)]
libpakfire: parser: Ignore all lines with comments
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 19:01:19 +0000 (19:01 +0000)]
libpakfire: parser: Increase line number on newline
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 18:53:33 +0000 (18:53 +0000)]
libpakfire: parser: Use our own logging mechanism for error messages
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 18:50:57 +0000 (18:50 +0000)]
libpakfire: parser: Show line number in error message
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 18:46:00 +0000 (18:46 +0000)]
libpakfire: parser: Log data that we parse
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 18:21:09 +0000 (18:21 +0000)]
libpakfire: Fix header declarations in parser.h
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 18:18:20 +0000 (18:18 +0000)]
libpakfire: Remove extra whitespace
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 18:15:37 +0000 (18:15 +0000)]
Add libpakfire-parser
This library is now a prototype for a bison/flex parser
of the package metadata.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 17:04:09 +0000 (17:04 +0000)]
testsuite: Make archive test compile
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 17:01:42 +0000 (17:01 +0000)]
testsuite: Pakfire context needs to be initialized to set the logging function
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Michael Tremer [Sat, 9 Mar 2019 15:45:01 +0000 (15:45 +0000)]
Prepare build system to use bison & flex
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>