From 54c2eed89f3036c39e6594aa10774cff605a5f8f Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Fri, 17 Apr 2020 17:10:59 +0200 Subject: update to 0.7.0 drop patches merged upstream open https://github.com/jbboehr/handlebars.c/issues/81 _hardened_ldflags break build --- .gitignore | 2 + compat_reports/0.6.4_to_0.8.0/compat_report.html | 860 +++++++++++++++++++ libhandlebars-check.patch | 996 ----------------------- libhandlebars-gcc10.patch | 21 - libhandlebars.spec | 23 +- libhandlebars.xml | 88 ++ 6 files changed, 963 insertions(+), 1027 deletions(-) create mode 100644 compat_reports/0.6.4_to_0.8.0/compat_report.html delete mode 100644 libhandlebars-check.patch delete mode 100644 libhandlebars-gcc10.patch create mode 100644 libhandlebars.xml diff --git a/.gitignore b/.gitignore index 1ab5c4f..01f0400 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ +clog package-*.xml *.tgz +*.tar.bz2 *.tar.gz *.tar.xz *.tar.xz.asc diff --git a/compat_reports/0.6.4_to_0.8.0/compat_report.html b/compat_reports/0.6.4_to_0.8.0/compat_report.html new file mode 100644 index 0000000..48a708f --- /dev/null +++ b/compat_reports/0.6.4_to_0.8.0/compat_report.html @@ -0,0 +1,860 @@ + + + + + + + + + +libhandlebars: 0.6.4 to 0.8.0 compatibility report + + + +

API compatibility report for the libhandlebars library between 0.6.4 and 0.8.0 versions on x86_64

+ +
+
+ Binary
Compatibility
+ Source
Compatibility
+
+

Test Info


+ + + + + + + +
Library Namelibhandlebars
Version #10.6.4
Version #20.8.0
Archx86_64
GCC Version9
SubjectBinary Compatibility
+

Test Results


+ + + + + + +
Total Header Files26
Total Libraries1
Total Symbols / Types246 / 123
Compatibility98%
+

Problem Summary


+ + + + + + + + + + +
SeverityCount
Added Symbols-4
Removed SymbolsHigh0
Problems with
Data Types
High0
Medium1
Low0
Problems with
Symbols
High1
Medium1
Low0
Problems with
Constants
Low0
Other Changes
in Constants
-1
+ +

Added Symbols  4 


+handlebars_ast_printer.h, libhandlebars.so.5.2.0
+handlebars_ast_to_string ( struct handlebars_context* context, struct handlebars_ast_node* ast_node )
+
+handlebars_partial_loader.h, libhandlebars.so.5.2.0
+handlebars_value_get_std_partial_loader_handlers ( )
+handlebars_value_partial_loader_ctor ( struct handlebars_context* context, struct handlebars_string* base_path, struct handlebars_string* extension )
+
+handlebars_string.h, libhandlebars.so.5.2.0
+handlebars_str_replace ( struct handlebars_context* context, struct handlebars_string const* string, char const* search, size_t search_len, char const* replacement, size_t replacement_len )
+
+to the top
+ +

Problems with Symbols, High Severity  1 


+handlebars.lex.h, libhandlebars.so.5.1.0
+ +[+] handlebars_yy__scan_bytes ( char const* bytes, yy_size_t len, yyscan_t yyscanner )  1  +
+ +
+to the top
+ +

Problems with Data Types, Medium Severity  1 


+handlebars.lex.h
+ +[+] struct yy_buffer_state  1  +
+ + +
+to the top
+ +

Problems with Symbols, Medium Severity  1 


+handlebars.lex.h, libhandlebars.so.5.1.0
+ +[+] handlebars_yy_get_leng ( yyscan_t yyscanner )  1  +
+ +
+to the top
+ +

Other Changes in Constants  1 


+handlebars_compiler.h
+ +[+] handlebars_compiler_flag_mustache_style_lambdas +
+ + +
+to the top
+

Header Files  26 


+
+handlebars.h
+handlebars.lex.h
+handlebars.tab.h
+handlebars_ast.h
+handlebars_ast_helpers.h
+handlebars_ast_list.h
+handlebars_ast_printer.h
+handlebars_cache.h
+handlebars_compiler.h
+handlebars_config.h
+handlebars_helpers.h
+handlebars_map.h
+handlebars_memory.h
+handlebars_opcode_printer.h
+handlebars_opcode_serializer.h
+handlebars_opcodes.h
+handlebars_private.h
+handlebars_scanners.h
+handlebars_stack.h
+handlebars_string.h
+handlebars_token.h
+handlebars_utils.h
+handlebars_value.h
+handlebars_value_handlers.h
+handlebars_vm.h
+handlebars_whitespace.h
+
+
to the top
+

Libraries  1 


+
+libhandlebars.so.5.1.0
+
+
to the top
+


+

Test Info


+ + + + + + +
Library Namelibhandlebars
Version #10.6.4
Version #20.8.0
Archx86_64
SubjectSource Compatibility
+

Test Results


+ + + + + + +
Total Header Files26
Total Libraries1
Total Symbols / Types814 / 190
Compatibility100%
+

Problem Summary


+ + + + + + + + + + +
SeverityCount
Added Symbols-4
Removed SymbolsHigh0
Problems with
Data Types
High0
Medium0
Low1
Problems with
Symbols
High0
Medium0
Low2
Problems with
Constants
Low4
Other Changes
in Constants
-1
+ +

Added Symbols  4 


+handlebars_ast_printer.h
+handlebars_ast_to_string ( struct handlebars_context* context, struct handlebars_ast_node* ast_node )
+
+handlebars_partial_loader.h
+handlebars_value_get_std_partial_loader_handlers ( )
+handlebars_value_partial_loader_ctor ( struct handlebars_context* context, struct handlebars_string* base_path, struct handlebars_string* extension )
+
+handlebars_string.h
+handlebars_str_replace ( struct handlebars_context* context, struct handlebars_string const* string, char const* search, size_t search_len, char const* replacement, size_t replacement_len )
+
+to the top
+ +

Problems with Data Types, Low Severity  1 


+handlebars.lex.h
+ +[+] struct yy_buffer_state  1  +
+ + +
+to the top
+ +

Problems with Symbols, Low Severity  2 


+handlebars.lex.h
+ +[+] handlebars_yy__scan_bytes ( char const* bytes, yy_size_t len, yyscan_t yyscanner )  1  +
+ + +[+] handlebars_yy_get_leng ( yyscan_t yyscanner )  1  +
+ +
+to the top
+ +

Problems with Constants, Low Severity  4 


+handlebars_config.h
+ +[+] HANDLEBARS_VERSION_INT +
+ + + +[+] HANDLEBARS_VERSION_MINOR +
+ + + +[+] HANDLEBARS_VERSION_PATCH +
+ + + +[+] HANDLEBARS_VERSION_STRING +
+ + +
+to the top
+ +

Other Changes in Constants  1 


+handlebars_compiler.h
+ +[+] handlebars_compiler_flag_mustache_style_lambdas +
+ + +
+to the top
+

Header Files  26 


+
+handlebars.h
+handlebars.lex.h
+handlebars.tab.h
+handlebars_ast.h
+handlebars_ast_helpers.h
+handlebars_ast_list.h
+handlebars_ast_printer.h
+handlebars_cache.h
+handlebars_compiler.h
+handlebars_config.h
+handlebars_helpers.h
+handlebars_map.h
+handlebars_memory.h
+handlebars_opcode_printer.h
+handlebars_opcode_serializer.h
+handlebars_opcodes.h
+handlebars_private.h
+handlebars_scanners.h
+handlebars_stack.h
+handlebars_string.h
+handlebars_token.h
+handlebars_utils.h
+handlebars_value.h
+handlebars_value_handlers.h
+handlebars_vm.h
+handlebars_whitespace.h
+
+
to the top
+

Libraries  1 


+
+libhandlebars.so.5.1.0
+
+
to the top
+



+ +
+ + diff --git a/libhandlebars-check.patch b/libhandlebars-check.patch deleted file mode 100644 index 7780862..0000000 --- a/libhandlebars-check.patch +++ /dev/null @@ -1,996 +0,0 @@ -Adapted for 0.6.4 using upstream patch - - - -From e1b94ca3e4bfda19914230720e4f43a47114a850 Mon Sep 17 00:00:00 2001 -From: John Boehr -Date: Tue, 10 Dec 2019 21:54:57 -0800 -Subject: [PATCH] Fix issue with newer versions of libcheck - ---- - tests/test_cache.c | 16 ++++++++ - tests/test_opcode_printer.c | 28 +++++++++++--- - tests/test_opcodes.c | 56 ++++++++++++++------------- - tests/test_string.c | 76 +++++++++++++++++++++++++++++++++++++ - tests/test_token.c | 36 +++++++++++------- - tests/test_value.c | 4 ++ - 6 files changed, 170 insertions(+), 46 deletions(-) - -diff -up ./tests/test_cache.c.newcheck ./tests/test_cache.c ---- ./tests/test_cache.c.newcheck 2020-02-19 16:17:30.602476530 +0100 -+++ ./tests/test_cache.c 2020-02-19 16:18:51.212075794 +0100 -@@ -210,35 +210,44 @@ static void execute_reset_test(struct ha - } - - START_TEST(test_simple_cache_gc) -+{ - struct handlebars_cache * cache = handlebars_cache_simple_ctor(context); - execute_gc_test(cache); - handlebars_cache_dtor(cache); -+} - END_TEST - - START_TEST(test_simple_cache_reset) -+{ - struct handlebars_cache * cache = handlebars_cache_simple_ctor(context); - execute_reset_test(cache); - handlebars_cache_dtor(cache); -+} - END_TEST - - #ifdef HAVE_LIBLMDB - START_TEST(test_lmdb_cache_gc) -+{ - char tmp[256]; - snprintf(tmp, 256, "%s/%s", getenv("TMPDIR") ?: "/tmp", "handlebars-lmdb-cache-test.mdb"); - struct handlebars_cache * cache = handlebars_cache_lmdb_ctor(context, tmp); - execute_gc_test(cache); - handlebars_cache_dtor(cache); -+} - END_TEST - - START_TEST(test_lmdb_cache_reset) -+{ - char tmp[256]; - snprintf(tmp, 256, "%s/%s", getenv("TMPDIR") ?: "/tmp", "handlebars-lmdb-cache-test.mdb"); - struct handlebars_cache * cache = handlebars_cache_lmdb_ctor(context, tmp); - execute_reset_test(cache); - handlebars_cache_dtor(cache); -+} - END_TEST - #else - START_TEST(test_lmdb_cache_error) -+{ - jmp_buf buf; - char tmp[256]; - snprintf(tmp, 256, "%s/%s", getenv("TMPDIR") ?: "/tmp", "handlebars-lmdb-cache-test.mdb"); -@@ -250,19 +259,24 @@ START_TEST(test_lmdb_cache_error) - - struct handlebars_cache * cache = handlebars_cache_lmdb_ctor(context, tmp); - ck_assert(0); -+} - END_TEST - #endif - - START_TEST(test_mmap_cache_gc) -+{ - struct handlebars_cache * cache = handlebars_cache_mmap_ctor(context, 2097152, 2053); - execute_gc_test(cache); - handlebars_cache_dtor(cache); -+} - END_TEST - - START_TEST(test_mmap_cache_reset) -+{ - struct handlebars_cache * cache = handlebars_cache_mmap_ctor(context, 2097152, 2053); - execute_gc_test(cache); - handlebars_cache_dtor(cache); -+} - END_TEST - - Suite * parser_suite(void) -diff -up ./tests/test_opcode_printer.c.newcheck ./tests/test_opcode_printer.c ---- ./tests/test_opcode_printer.c.newcheck 2017-07-18 03:21:21.000000000 +0200 -+++ ./tests/test_opcode_printer.c 2020-02-19 16:17:30.602476530 +0100 -@@ -38,6 +38,7 @@ - - - START_TEST(test_operand_print_append_null) -+{ - struct handlebars_operand op; - struct handlebars_string * string; - handlebars_operand_set_null(&op); -@@ -45,9 +46,11 @@ START_TEST(test_operand_print_append_nul - ck_assert_ptr_ne(NULL, string); - ck_assert_str_eq("[NULL]", string->val); - handlebars_talloc_free(string); -+} - END_TEST - - START_TEST(test_operand_print_append_boolean) -+{ - struct handlebars_operand op; - struct handlebars_string * string; - handlebars_operand_set_boolval(&op, 1); -@@ -55,9 +58,11 @@ START_TEST(test_operand_print_append_boo - ck_assert_ptr_ne(NULL, string); - ck_assert_str_eq("[BOOLEAN:1]", string->val); - handlebars_talloc_free(string); -+} - END_TEST - - START_TEST(test_operand_print_append_long) -+{ - struct handlebars_operand op; - struct handlebars_string * string; - handlebars_operand_set_longval(&op, 2358); -@@ -65,9 +70,11 @@ START_TEST(test_operand_print_append_lon - ck_assert_ptr_ne(NULL, string); - ck_assert_str_eq("[LONG:2358]", string->val); - handlebars_talloc_free(string); -+} - END_TEST - - START_TEST(test_operand_print_append_string) -+{ - struct handlebars_operand op; - struct handlebars_string * string; - struct handlebars_opcode * opcode = handlebars_opcode_ctor(context, handlebars_opcode_type_nil); -@@ -76,10 +83,13 @@ START_TEST(test_operand_print_append_str - ck_assert_ptr_ne(NULL, string); - ck_assert_str_eq("[STRING:baz]", string->val); - handlebars_talloc_free(string); -+} - END_TEST - - START_TEST(test_operand_print_append_array) -+{ - // @todo -+} - END_TEST - - START_TEST(test_opcode_print_1) -@@ -94,6 +104,7 @@ START_TEST(test_opcode_print_1) - END_TEST - - START_TEST(test_opcode_print_2) -+{ - struct handlebars_opcode * opcode = handlebars_opcode_ctor(context, handlebars_opcode_type_get_context); - char * expected = "getContext[LONG:2358]"; - struct handlebars_string * string; -@@ -102,9 +113,11 @@ START_TEST(test_opcode_print_2) - ck_assert_str_eq(expected, string->val); - handlebars_talloc_free(opcode); - handlebars_talloc_free(string); -+} - END_TEST - - START_TEST(test_opcode_print_3) -+{ - struct handlebars_opcode * opcode = handlebars_opcode_ctor(context, handlebars_opcode_type_invoke_helper); - char * expected = "invokeHelper[LONG:123][STRING:baz][LONG:456]"; - struct handlebars_string * string; -@@ -117,9 +130,11 @@ START_TEST(test_opcode_print_3) - ck_assert_str_eq(expected, string->val); - handlebars_talloc_free(opcode); - handlebars_talloc_free(string); -+} - END_TEST - - START_TEST(test_opcode_print_4) -+{ - struct handlebars_opcode * opcode = handlebars_opcode_ctor(context, handlebars_opcode_type_lookup_on_context); - char * expected = "lookupOnContext[LONG:123][STRING:baz][LONG:456][STRING:bat]"; - struct handlebars_string * string; -@@ -133,13 +148,14 @@ START_TEST(test_opcode_print_4) - ck_assert_str_eq(expected, string->val); - handlebars_talloc_free(opcode); - handlebars_talloc_free(string); -+} - END_TEST - - - Suite * parser_suite(void) - { - Suite * s = suite_create("Opcode Printer"); -- -+ - REGISTER_TEST_FIXTURE(s, test_operand_print_append_null, "Operand Print Append (null)"); - REGISTER_TEST_FIXTURE(s, test_operand_print_append_boolean, "Operand Print Append (boolean)"); - REGISTER_TEST_FIXTURE(s, test_operand_print_append_long, "Operand Print Append (long)"); -@@ -149,7 +165,7 @@ Suite * parser_suite(void) - REGISTER_TEST_FIXTURE(s, test_opcode_print_2, "Opcode Print (2)"); - REGISTER_TEST_FIXTURE(s, test_opcode_print_3, "Opcode Print (3)"); - REGISTER_TEST_FIXTURE(s, test_opcode_print_4, "Opcode Print (4)"); -- -+ - return s; - } - -@@ -160,13 +176,13 @@ int main(void) - int error; - - talloc_set_log_stderr(); -- -+ - // Check if memdebug enabled - memdebug = getenv("MEMDEBUG") ? atoi(getenv("MEMDEBUG")) : 0; - if( memdebug ) { - talloc_enable_leak_report_full(); - } -- -+ - // Set up test suite - Suite * s = parser_suite(); - SRunner * sr = srunner_create(s); -@@ -177,12 +193,12 @@ int main(void) - number_failed = srunner_ntests_failed(sr); - srunner_free(sr); - error = (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; -- -+ - // Generate report for memdebug - if( memdebug ) { - talloc_report_full(NULL, stderr); - } -- -+ - // Return - return error; - } -diff -up ./tests/test_opcodes.c.newcheck ./tests/test_opcodes.c ---- ./tests/test_opcodes.c.newcheck 2017-07-18 03:21:21.000000000 +0200 -+++ ./tests/test_opcodes.c 2020-02-19 16:17:30.602476530 +0100 -@@ -37,10 +37,10 @@ - START_TEST(test_opcode_ctor) - { - struct handlebars_opcode * opcode = handlebars_opcode_ctor(context, handlebars_opcode_type_append); -- -+ - ck_assert_ptr_ne(NULL, opcode); - ck_assert_int_eq(handlebars_opcode_type_append, opcode->type); -- -+ - handlebars_talloc_free(opcode); - } - END_TEST -@@ -76,7 +76,7 @@ START_TEST(test_opcode_readable_type) - const char * actual = handlebars_opcode_readable_type(_RTYPE_MK(type)); \ - ck_assert_str_eq(expected, actual); \ - } while(0) -- -+ - _RTYPE_TEST(nil, nil); - _RTYPE_TEST(ambiguous_block_value, ambiguousBlockValue); - _RTYPE_TEST(append, append); -@@ -86,33 +86,33 @@ START_TEST(test_opcode_readable_type) - _RTYPE_TEST(push_context, pushContext); - _RTYPE_TEST(push_hash, pushHash); - _RTYPE_TEST(resolve_possible_lambda, resolvePossibleLambda); -- -+ - _RTYPE_TEST(get_context, getContext); - _RTYPE_TEST(push_program, pushProgram); -- -+ - _RTYPE_TEST(append_content, appendContent); - _RTYPE_TEST(assign_to_hash, assignToHash); - _RTYPE_TEST(block_value, blockValue); - _RTYPE_TEST(push, push); - _RTYPE_TEST(push_literal, pushLiteral); - _RTYPE_TEST(push_string, pushString); -- -+ - _RTYPE_TEST(invoke_partial, invokePartial); - _RTYPE_TEST(push_id, pushId); - _RTYPE_TEST(push_string_param, pushStringParam); -- -+ - _RTYPE_TEST(invoke_ambiguous, invokeAmbiguous); -- -+ - _RTYPE_TEST(invoke_known_helper, invokeKnownHelper); -- -+ - _RTYPE_TEST(invoke_helper, invokeHelper); -- -+ - _RTYPE_TEST(lookup_on_context, lookupOnContext); -- -+ - _RTYPE_TEST(lookup_data, lookupData); -- -+ - _RTYPE_TEST(invalid, invalid); -- -+ - ck_assert_str_eq("invalid", handlebars_opcode_readable_type(13434534)); - } - END_TEST -@@ -120,7 +120,7 @@ END_TEST - START_TEST(test_operand_set_null) - { - struct handlebars_operand op; -- -+ - handlebars_operand_set_null(&op); - ck_assert_int_eq(handlebars_operand_type_null, op.type); - ck_assert_int_eq(0, op.data.boolval); -@@ -132,7 +132,7 @@ END_TEST - START_TEST(test_operand_set_boolval) - { - struct handlebars_operand op; -- -+ - handlebars_operand_set_boolval(&op, 1); - ck_assert_int_eq(handlebars_operand_type_boolean, op.type); - ck_assert_int_eq(1, op.data.boolval); -@@ -142,11 +142,11 @@ END_TEST - START_TEST(test_operand_set_longval) - { - struct handlebars_operand op; -- -+ - handlebars_operand_set_longval(&op, 12); - ck_assert_int_eq(handlebars_operand_type_long, op.type); - ck_assert_int_eq(12, op.data.longval); -- -+ - handlebars_operand_set_longval(&op, -65); - ck_assert_int_eq(handlebars_operand_type_long, op.type); - ck_assert_int_eq(-65, op.data.longval); -@@ -158,7 +158,7 @@ START_TEST(test_operand_set_stringval) - struct handlebars_operand op; - struct handlebars_opcode * opcode = handlebars_opcode_ctor(context, handlebars_opcode_type_nil); - struct handlebars_string * string = handlebars_string_ctor(context, HBS_STRL("bar")); -- -+ - handlebars_operand_set_stringval(context, opcode, &op, string); - - ck_assert_int_eq(handlebars_operand_type_string, op.type); -@@ -190,6 +190,7 @@ END_TEST - */ - - START_TEST(test_operand_set_arrayval) -+{ - struct handlebars_operand op; - struct handlebars_opcode * opcode = handlebars_opcode_ctor(context, handlebars_opcode_type_nil); - const char * strs[] = { -@@ -208,9 +209,11 @@ START_TEST(test_operand_set_arrayval) - for( ptr1 = strs, ptr2 = op.data.array.array; *ptr1 /*|| *ptr2*/; ptr1++, ptr2++ ) { - ck_assert_str_eq(*ptr1, ptr2->string->val); - } -+} - END_TEST - - START_TEST(test_operand_set_arrayval_string) -+{ - struct handlebars_string * strings[5]; - struct handlebars_opcode * opcode = handlebars_opcode_ctor(context, handlebars_opcode_type_invalid); - -@@ -232,16 +235,17 @@ START_TEST(test_operand_set_arrayval_str - for( ptr1 = strings, ptr2 = opcode->op1.data.array.array; *ptr1 /* || *ptr2*/; ptr1++, ptr2++ ) { - ck_assert_str_eq((*ptr1)->val, ptr2->string->val); - } -+} - END_TEST - - Suite * parser_suite(void) - { - Suite * s = suite_create("Opcodes"); -- -+ - REGISTER_TEST_FIXTURE(s, test_opcode_ctor, "Constructor"); - REGISTER_TEST_FIXTURE(s, test_opcode_ctor_failed_alloc, "Constructor (failed alloc)"); - REGISTER_TEST_FIXTURE(s, test_opcode_readable_type, "Readable Type"); -- -+ - REGISTER_TEST_FIXTURE(s, test_operand_set_null, "Set operand null"); - REGISTER_TEST_FIXTURE(s, test_operand_set_boolval, "Set operand boolval"); - REGISTER_TEST_FIXTURE(s, test_operand_set_longval, "Set operand longval"); -@@ -249,8 +253,8 @@ Suite * parser_suite(void) - //REGISTER_TEST_FIXTURE(s, test_operand_set_stringval_failed_alloc, "Set operand stringval (failed alloc)"); - REGISTER_TEST_FIXTURE(s, test_operand_set_arrayval, "Set operand arrayval"); - REGISTER_TEST_FIXTURE(s, test_operand_set_arrayval_string, "operand_set_arrayval_string"); -- -- -+ -+ - return s; - } - -@@ -261,13 +265,13 @@ int main(void) - int error; - - talloc_set_log_stderr(); -- -+ - // Check if memdebug enabled - memdebug = getenv("MEMDEBUG") ? atoi(getenv("MEMDEBUG")) : 0; - if( memdebug ) { - talloc_enable_leak_report_full(); - } -- -+ - // Set up test suite - Suite * s = parser_suite(); - SRunner * sr = srunner_create(s); -@@ -278,12 +282,12 @@ int main(void) - number_failed = srunner_ntests_failed(sr); - srunner_free(sr); - error = (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; -- -+ - // Generate report for memdebug - if( memdebug ) { - talloc_report_full(NULL, stderr); - } -- -+ - // Return - return error; - } -diff -up ./tests/test_string.c.newcheck ./tests/test_string.c ---- ./tests/test_string.c.newcheck 2017-07-18 03:21:21.000000000 +0200 -+++ ./tests/test_string.c 2020-02-19 16:17:30.602476530 +0100 -@@ -33,167 +33,210 @@ - - - START_TEST(test_handlebars_string_hash) -+{ - #if ULONG_MAX <= 4294967295 - ck_assert_uint_eq(3127933309, handlebars_string_hash(HBS_STRL("foobar\xFF"))); - #else - ck_assert_uint_eq(229466050689405, handlebars_string_hash(HBS_STRL("foobar\xFF"))); - #endif -+} - END_TEST - - START_TEST(test_handlebars_strnstr_1) -+{ - const char string[] = ""; - const char * res = handlebars_strnstr(HBS_STRL(string), HBS_STRL("")); - ck_assert_ptr_eq(res, NULL); -+} - END_TEST - - START_TEST(test_handlebars_strnstr_2) -+{ - const char string[] = "abcdefgh"; - const char * res = handlebars_strnstr(HBS_STRL(string), HBS_STRL("def")); - ck_assert_ptr_eq(res, string + 3); -+} - END_TEST - - START_TEST(test_handlebars_strnstr_3) -+{ - const char string[] = "a\0bcdefgh"; - const char * res = handlebars_strnstr(HBS_STRL(string), HBS_STRL("def")); - ck_assert_ptr_eq(res, string + 4); -+} - END_TEST - - START_TEST(test_handlebars_strnstr_4) -+{ - const char string[] = "abcdefgh"; - const char * res = handlebars_strnstr(string, 4, HBS_STRL("fgh")); - ck_assert_ptr_eq(res, NULL); -+} - END_TEST - - START_TEST(test_handlebars_strnstr_5) -+{ - const char string[] = "[foo\\\\]"; - const char * res = handlebars_strnstr(HBS_STRL(string), HBS_STRL("\\]")); - ck_assert_ptr_eq(res, string + 5); -+} - END_TEST - - START_TEST(test_handlebars_string_reduce_1) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("abcdef")); - input = handlebars_str_reduce(input, HBS_STRL("bcd"), HBS_STRL("qq")); - ck_assert_str_eq("aqqef", input->val); - handlebars_talloc_free(input); -+} - END_TEST - - START_TEST(test_handlebars_string_reduce_2) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("")); - input = handlebars_str_reduce(input, HBS_STRL("a"), HBS_STRL("")); - ck_assert_str_eq("", input->val); - handlebars_talloc_free(input); -+} - END_TEST - - START_TEST(test_handlebars_string_reduce_3) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("QQQ")); - input = handlebars_str_reduce(input, HBS_STRL("Q"), HBS_STRL("W")); - ck_assert_str_eq("WWW", input->val); - handlebars_talloc_free(input); -+} - END_TEST - - START_TEST(test_handlebars_string_addcslashes_1) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("")); - struct handlebars_string * actual = handlebars_string_addcslashes(context, input, HBS_STRL("")); - ck_assert_str_eq("", actual->val); - ck_assert_ptr_ne(input, actual); - handlebars_talloc_free(input); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_addcslashes_2) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("\ttest\rlines\n")); - struct handlebars_string * actual = handlebars_string_addcslashes(context, input, HBS_STRL("\r\n\t")); - ck_assert_str_eq("\\ttest\\rlines\\n", actual->val); - ck_assert_ptr_ne(input, actual); - handlebars_talloc_free(input); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_addcslashes_3) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("amazing biscuit circus")); - struct handlebars_string * actual = handlebars_string_addcslashes(context, input, HBS_STRL("abc")); - ck_assert_str_eq("\\am\\azing \\bis\\cuit \\cir\\cus", actual->val); - ck_assert_ptr_ne(input, actual); - handlebars_talloc_free(input); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_addcslashes_4) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("kaboemkara!")); - struct handlebars_string * actual = handlebars_string_addcslashes(context, input, HBS_STRL("")); - ck_assert_str_eq("kaboemkara!", actual->val); - ck_assert_ptr_ne(input, actual); - handlebars_talloc_free(input); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_addcslashes_5) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("foobarbaz")); - struct handlebars_string * actual = handlebars_string_addcslashes(context, input, HBS_STRL("bar")); - ck_assert_str_eq("foo\\b\\a\\r\\b\\az", actual->val); - ck_assert_ptr_ne(input, actual); - handlebars_talloc_free(input); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_addcslashes_6) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("\a\v\b\f\x3")); - struct handlebars_string * actual = handlebars_string_addcslashes(context, input, HBS_STRL("\a\v\b\f\x3")); - ck_assert_str_eq("\\a\\v\\b\\f\\003", actual->val); - ck_assert_ptr_ne(input, actual); - handlebars_talloc_free(input); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_stripcslashes_1) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("\\n\\r")); - struct handlebars_string * actual = handlebars_string_stripcslashes(input); - ck_assert_str_eq("\n\r", actual->val); - ck_assert_ptr_eq(input, actual); - handlebars_talloc_free(input); -+} - END_TEST - - START_TEST(test_handlebars_string_stripcslashes_2) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("\\065\\x64")); - struct handlebars_string * actual = handlebars_string_stripcslashes(input); - ck_assert_str_eq("5d", actual->val); - ck_assert_ptr_eq(input, actual); - handlebars_talloc_free(input); -+} - END_TEST - - START_TEST(test_handlebars_string_stripcslashes_3) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("")); - struct handlebars_string * actual = handlebars_string_stripcslashes(input); - ck_assert_str_eq("", actual->val); - ck_assert_ptr_eq(input, actual); - handlebars_talloc_free(input); -+} - END_TEST - - START_TEST(test_handlebars_string_stripcslashes_4) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("\\{")); - struct handlebars_string * actual = handlebars_string_stripcslashes(input); - ck_assert_str_eq("{", actual->val); - ck_assert_ptr_eq(input, actual); - handlebars_talloc_free(input); -+} - END_TEST - - START_TEST(test_handlebars_string_stripcslashes_5) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("\\a\\t\\v\\b\\f\\\\")); - struct handlebars_string * actual = handlebars_string_stripcslashes(input); - ck_assert_str_eq("\a\t\v\b\f\\", actual->val); - ck_assert_ptr_eq(input, actual); - handlebars_talloc_free(input); -+} - END_TEST - - START_TEST(test_handlebars_string_stripcslashes_6) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("\\x3")); - struct handlebars_string * actual = handlebars_string_stripcslashes(input); - ck_assert_str_eq("\x3", actual->val); - ck_assert_ptr_eq(input, actual); - handlebars_talloc_free(input); -+} - END_TEST - - START_TEST(test_handlebars_string_stripcslashes_7) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("\\0test")); - struct handlebars_string * actual = handlebars_string_stripcslashes(input); - ck_assert_str_eq("", actual->val); -@@ -203,67 +246,87 @@ START_TEST(test_handlebars_string_stripc - ck_assert_int_eq(0, actual->val[5]); - ck_assert_ptr_eq(input, actual); - handlebars_talloc_free(input); -+} - END_TEST - - START_TEST(test_handlebars_string_asprintf) -+{ - struct handlebars_string * actual = handlebars_string_asprintf(context, "|%d|%c|%s|", 148, 56, "1814"); - ck_assert_str_eq(actual->val, "|148|8|1814|"); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_asprintf_append) -+{ - struct handlebars_string * input = handlebars_string_ctor(context, HBS_STRL("PREFIX")); - input = handlebars_string_asprintf_append(context, input, "|%d|%c|%s|", 148, 56, "1814"); - ck_assert_str_eq(input->val, "PREFIX|148|8|1814|"); - handlebars_talloc_free(input); -+} - END_TEST - - START_TEST(test_handlebars_string_htmlspecialchars_1) -+{ - struct handlebars_string * actual = handlebars_string_htmlspecialchars(context, HBS_STRL("&")); - ck_assert_str_eq("&", actual->val); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_htmlspecialchars_2) -+{ - struct handlebars_string * actual = handlebars_string_htmlspecialchars(context, HBS_STRL("<")); - ck_assert_str_eq("<", actual->val); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_htmlspecialchars_3) -+{ - struct handlebars_string * actual = handlebars_string_htmlspecialchars(context, HBS_STRL(">")); - ck_assert_str_eq(">", actual->val); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_htmlspecialchars_4) -+{ - struct handlebars_string * actual = handlebars_string_htmlspecialchars(context, HBS_STRL("'")); - ck_assert_str_eq("'", actual->val); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_htmlspecialchars_5) -+{ - struct handlebars_string * actual = handlebars_string_htmlspecialchars(context, HBS_STRL("\"")); - ck_assert_str_eq(""", actual->val); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_htmlspecialchars_6) -+{ - struct handlebars_string * actual = handlebars_string_htmlspecialchars(context, HBS_STRL("a&bd\'e\"f")); - ck_assert_str_eq("a&b<c>d'e"f", actual->val); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_implode_1) -+{ - struct handlebars_string ** parts = handlebars_talloc_array(context, struct handlebars_string *, 1); - parts[0] = NULL; - struct handlebars_string * actual = handlebars_string_implode(context, HBS_STRL("!!!"), parts); - ck_assert_str_eq(actual->val, ""); - handlebars_talloc_free(parts); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_implode_2) -+{ - struct handlebars_string ** parts = handlebars_talloc_array(context, struct handlebars_string *, 3); - parts[0] = handlebars_string_ctor(context, HBS_STRL("one")); - parts[1] = handlebars_string_ctor(context, HBS_STRL("two")); -@@ -272,54 +335,67 @@ START_TEST(test_handlebars_string_implod - ck_assert_str_eq(actual->val, "one!two"); - handlebars_talloc_free(parts); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_handlebars_string_ltrim_1) -+{ - struct handlebars_string * in = handlebars_string_ctor(context, HBS_STRL(" \n \r test ")); - struct handlebars_string * ret = handlebars_string_ltrim(in, HBS_STRL(" \t\r\n")); - ck_assert_str_eq(ret->val, "test "); - ck_assert_ptr_eq(in, ret); - handlebars_talloc_free(in); -+} - END_TEST - - START_TEST(test_handlebars_string_ltrim_2) -+{ - struct handlebars_string * in = handlebars_string_ctor(context, HBS_STRL("\n ")); - struct handlebars_string * ret = handlebars_string_ltrim(in, HBS_STRL(" \t")); - ck_assert_str_eq(ret->val, "\n "); - ck_assert_ptr_eq(in, ret); - handlebars_talloc_free(in); -+} - END_TEST - - START_TEST(test_handlebars_string_ltrim_3) -+{ - struct handlebars_string * in = handlebars_string_ctor(context, HBS_STRL("")); - struct handlebars_string * ret = handlebars_string_ltrim(in, HBS_STRL("")); - ck_assert_str_eq(ret->val, ""); - ck_assert_ptr_eq(in, ret); - handlebars_talloc_free(in); -+} - END_TEST - - START_TEST(test_handlebars_string_rtrim_1) -+{ - struct handlebars_string * in = handlebars_string_ctor(context, HBS_STRL("test \n \r ")); - struct handlebars_string * ret = handlebars_string_rtrim(in, HBS_STRL(" \t\r\n")); - ck_assert_str_eq(ret->val, "test"); - ck_assert_ptr_eq(in, ret); - handlebars_talloc_free(in); -+} - END_TEST - - START_TEST(test_handlebars_string_rtrim_2) -+{ - struct handlebars_string * in = handlebars_string_ctor(context, HBS_STRL("\n")); - struct handlebars_string * ret = handlebars_string_rtrim(in, HBS_STRL(" \v\t\r\n")); - ck_assert_str_eq(ret->val, ""); - ck_assert_ptr_eq(in, ret); - handlebars_talloc_free(in); -+} - END_TEST - - START_TEST(test_handlebars_string_rtrim_3) -+{ - struct handlebars_string * in = handlebars_string_ctor(context, HBS_STRL("")); - struct handlebars_string * ret = handlebars_string_rtrim(in, HBS_STRL("")); - ck_assert_str_eq(ret->val, ""); - ck_assert_ptr_eq(in, ret); - handlebars_talloc_free(in); -+} - END_TEST - - Suite * parser_suite(void) -diff -up ./tests/test_token.c.newcheck ./tests/test_token.c ---- ./tests/test_token.c.newcheck 2017-07-18 03:21:21.000000000 +0200 -+++ ./tests/test_token.c 2020-02-19 16:17:30.603476525 +0100 -@@ -38,13 +38,13 @@ START_TEST(test_token_ctor) - { - struct handlebars_string * string = handlebars_string_ctor(context, HBS_STRL("{{")); - struct handlebars_token * token = handlebars_token_ctor(HBSCTX(parser), OPEN, string); -- -+ - ck_assert_ptr_ne(NULL, token); - ck_assert_ptr_ne(NULL, token->string); - ck_assert_int_eq(OPEN, token->token); - ck_assert_str_eq(token->string->val, "{{"); - ck_assert_uint_eq(sizeof("{{") - 1, token->string->len); -- -+ - handlebars_token_dtor(token); - } - END_TEST -@@ -85,9 +85,9 @@ START_TEST(test_token_get_type) - { - struct handlebars_string * string = handlebars_string_ctor(context, HBS_STRL("{{")); - struct handlebars_token * token = handlebars_token_ctor(context, OPEN, string); -- -+ - ck_assert_int_eq(OPEN, handlebars_token_get_type(token)); -- -+ - handlebars_token_dtor(token); - } - END_TEST -@@ -99,7 +99,7 @@ START_TEST(test_token_get_text) - - ck_assert_str_eq("{{", handlebars_token_get_text(token)->val); - ck_assert_uint_eq(sizeof("{{") - 1, handlebars_token_get_text(token)->len); -- -+ - handlebars_token_dtor(token); - } - END_TEST -@@ -113,7 +113,7 @@ START_TEST(test_token_readable_type) - const char * actual = handlebars_token_readable_type(str); \ - ck_assert_str_eq(expected, actual); \ - } while(0) -- -+ - _RTYPE_TEST(BOOLEAN); - _RTYPE_TEST(CLOSE); - _RTYPE_TEST(CLOSE_RAW_BLOCK); -@@ -140,7 +140,7 @@ START_TEST(test_token_readable_type) - _RTYPE_TEST(SEP); - _RTYPE_TEST(STRING); - ck_assert_str_eq("UNKNOWN", handlebars_token_readable_type(-1)); -- -+ - // Added in v3 - _RTYPE_TEST(CLOSE_BLOCK_PARAMS); - _RTYPE_TEST(OPEN_BLOCK_PARAMS); -@@ -163,7 +163,7 @@ START_TEST(test_token_reverse_readable_t - int actual = handlebars_token_reverse_readable_type(actual_str); \ - ck_assert_int_eq(expected, actual); \ - } while(0) -- -+ - _RTYPE_REV_TEST(BOOLEAN); - _RTYPE_REV_TEST(CLOSE); - _RTYPE_REV_TEST(CLOSE_RAW_BLOCK); -@@ -190,7 +190,7 @@ START_TEST(test_token_reverse_readable_t - _RTYPE_REV_TEST(SEP); - _RTYPE_REV_TEST(STRING); - ck_assert_int_eq(-1, handlebars_token_reverse_readable_type("UNKNOWN")); -- -+ - // Added in v3 - _RTYPE_REV_TEST(CLOSE_BLOCK_PARAMS); - _RTYPE_REV_TEST(OPEN_BLOCK_PARAMS); -@@ -204,33 +204,40 @@ START_TEST(test_token_reverse_readable_t - END_TEST - - START_TEST(test_token_print) -+{ - struct handlebars_string * string = handlebars_string_ctor(context, HBS_STRL("{{")); - struct handlebars_token * tok = handlebars_token_ctor(context, OPEN, string); - struct handlebars_string * actual = handlebars_token_print(context, tok, 0); - ck_assert_str_eq("OPEN [{{] ", actual->val); - handlebars_talloc_free(tok); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_token_print2) -+{ - struct handlebars_string * string = handlebars_string_ctor(context, HBS_STRL("this\nis\ra\ttest")); - struct handlebars_token * tok = handlebars_token_ctor(context, CONTENT, string); - struct handlebars_string * actual = handlebars_token_print(context, tok, 0); - ck_assert_str_eq("CONTENT [this\\nis\\ra\\ttest] ", actual->val); - handlebars_talloc_free(tok); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_token_print3) -+{ - struct handlebars_string * string = handlebars_string_ctor(context, HBS_STRL("this\nis\ra\ttest")); - struct handlebars_token * tok = handlebars_token_ctor(context, CONTENT, string); - struct handlebars_string * actual = handlebars_token_print(context, tok, handlebars_token_print_flag_newlines); - ck_assert_str_eq("CONTENT [this\\nis\\ra\\ttest]\n", actual->val); - handlebars_talloc_free(tok); - handlebars_talloc_free(actual); -+} - END_TEST - - START_TEST(test_token_print_failed_alloc) -+{ - #if HANDLEBARS_MEMORY - struct handlebars_string * string = handlebars_string_ctor(context, HBS_STRL("tok1")); - struct handlebars_token * tok = handlebars_token_ctor(context, CONTENT, string); -@@ -251,12 +258,13 @@ START_TEST(test_token_print_failed_alloc - #else - fprintf(stderr, "Skipped, memory testing functions are disabled\n"); - #endif -+} - END_TEST - - Suite * parser_suite(void) - { - Suite * s = suite_create("Token"); -- -+ - REGISTER_TEST_FIXTURE(s, test_token_ctor, "Constructor"); - REGISTER_TEST_FIXTURE(s, test_token_ctor_failed_alloc, "Constructor (failed alloc)"); - REGISTER_TEST_FIXTURE(s, test_token_dtor, "Destructor"); -@@ -279,13 +287,13 @@ int main(void) - int error; - - talloc_set_log_stderr(); -- -+ - // Check if memdebug enabled - memdebug = getenv("MEMDEBUG") ? atoi(getenv("MEMDEBUG")) : 0; - if( memdebug ) { - talloc_enable_leak_report_full(); - } -- -+ - // Set up test suite - Suite * s = parser_suite(); - SRunner * sr = srunner_create(s); -@@ -296,12 +304,12 @@ int main(void) - number_failed = srunner_ntests_failed(sr); - srunner_free(sr); - error = (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE; -- -+ - // Generate report for memdebug - if( memdebug ) { - talloc_report_full(NULL, stderr); - } -- -+ - // Return - return error; - } -diff -up ./tests/test_value.c.newcheck ./tests/test_value.c ---- ./tests/test_value.c.newcheck 2017-07-18 03:21:21.000000000 +0200 -+++ ./tests/test_value.c 2020-02-19 16:17:30.603476525 +0100 -@@ -438,6 +438,7 @@ START_TEST(test_convert) - END_TEST - - START_TEST(test_json_parse_error) -+{ - jmp_buf buf; - - if( handlebars_setjmp_ex(context, &buf) ) { -@@ -450,9 +451,11 @@ START_TEST(test_json_parse_error) - - handlebars_value_from_json_string(context, "{\"key\":1"); - ck_assert_msg(0, "Parse error should have longjmp'd"); -+} - END_TEST - - START_TEST(test_yaml_parse_error) -+{ - jmp_buf buf; - - if( handlebars_setjmp_ex(context, &buf) ) { -@@ -465,6 +468,7 @@ START_TEST(test_yaml_parse_error) - - handlebars_value_from_yaml_string(context, "---\n'"); - ck_assert_msg(0, "Parse error should have longjmp'd"); -+} - END_TEST - - Suite * parser_suite(void) diff --git a/libhandlebars-gcc10.patch b/libhandlebars-gcc10.patch deleted file mode 100644 index f687156..0000000 --- a/libhandlebars-gcc10.patch +++ /dev/null @@ -1,21 +0,0 @@ -From d936e6364b3b86c913258be1248fa530ce75e2f0 Mon Sep 17 00:00:00 2001 -From: Remi Collet -Date: Wed, 19 Feb 2020 15:52:43 +0100 -Subject: [PATCH] fix multiple definition - ---- - tests/utils.h | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/tests/utils.h b/tests/utils.h -index 5515e93..1ccbb2e 100644 ---- a/tests/utils.h -+++ b/tests/utils.h -@@ -67,7 +67,6 @@ - #endif - - struct handlebars_value; --const int MOD_ADLER; - - typedef void (*scan_directory_cb)(char * filename); - diff --git a/libhandlebars.spec b/libhandlebars.spec index 185822d..0446634 100644 --- a/libhandlebars.spec +++ b/libhandlebars.spec @@ -6,8 +6,12 @@ # # Please, preserve the changelog entries # + +# Workaround to https://github.com/jbboehr/handlebars.c/issues/81 +%global _hardened_ldflags %nil + %global libname libhandlebars -%global gh_commit 9863359d28fa57cabe5494a00453ff12e8581d56 +%global gh_commit 91c94d0264c3cd2f0544876ca35cb2dc70b98ad1 %global gh_short %(c=%{gh_commit}; echo ${c:0:7}) %global gh_owner jbboehr %global gh_project handlebars.c @@ -23,8 +27,8 @@ %global mspec_project spec Name: %{libname} -Version: 0.6.4 -Release: 4%{?dist} +Version: 0.7.0 +Release: 1%{?dist} Summary: Handlebars C library License: LGPLv2+ @@ -33,11 +37,6 @@ Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_ Source1: https://github.com/%{hspec_owner}/%{hspec_project}/archive/%{hspec_commit}/%{hspec_project}-%{hspec_short}.tar.gz Source2: https://github.com/%{mspec_owner}/%{mspec_project}/archive/%{mspec_commit}/%{mspec_project}-%{mspec_short}.tar.gz -# For GCC 10 -Patch0: %{libname}-gcc10.patch -# Fox new check library -Patch1: %{libname}-check.patch - BuildRequires: gcc BuildRequires: autoconf BuildRequires: automake @@ -83,8 +82,6 @@ This package provides handlebarsc command line tool split off %{libname}. %prep %setup -qn %{gh_project}-%{gh_commit} -a1 -a2 -%patch0 -p1 -b .gcc10 -%patch1 -p1 -b .newcheck mkdir spec mv %{hspec_project}-%{hspec_commit} spec/handlebars @@ -130,6 +127,12 @@ make test %changelog +* Fri Apr 17 2020 Remi Collet - 0.7.0-1 +- update to 0.7.0 +- drop patches merged upstream +- open https://github.com/jbboehr/handlebars.c/issues/81 + _hardened_ldflags break build + * Wed Feb 19 2020 Remi Collet - 0.6.4-4 - add fix for GCC 10 from https://github.com/jbboehr/handlebars.c/pull/76 diff --git a/libhandlebars.xml b/libhandlebars.xml new file mode 100644 index 0000000..22dc92f --- /dev/null +++ b/libhandlebars.xml @@ -0,0 +1,88 @@ + + + + + + + + + +0.8.0 + + + + +/usr/include/handlebars.h +/usr/include/handlebars.lex.h +/usr/include/handlebars.tab.h +/usr/include/handlebars_ast.h +/usr/include/handlebars_ast_helpers.h +/usr/include/handlebars_ast_list.h +/usr/include/handlebars_ast_printer.h +/usr/include/handlebars_cache.h +/usr/include/handlebars_compiler.h +/usr/include/handlebars_config.h +/usr/include/handlebars_helpers.h +/usr/include/handlebars_map.h +/usr/include/handlebars_memory.h +/usr/include/handlebars_opcode_printer.h +/usr/include/handlebars_opcode_serializer.h +/usr/include/handlebars_opcodes.h +/usr/include/handlebars_partial_loader.h +/usr/include/handlebars_private.h +/usr/include/handlebars_scanners.h +/usr/include/handlebars_stack.h +/usr/include/handlebars_string.h +/usr/include/handlebars_token.h +/usr/include/handlebars_utils.h +/usr/include/handlebars_value.h +/usr/include/handlebars_value_handlers.h +/usr/include/handlebars_vm.h +/usr/include/handlebars_whitespace.h + + + + +/usr/lib64/libhandlebars.so + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit