commit 68ac7613b20d7a61c27af52f29f6151912f785b294a797808d03a001e319cd37 Author: Adrian Schröter Date: Wed Feb 26 12:00:11 2025 +0100 Sync from SUSE:SLFO:Main cmark revision 7d722180823bb0ec1d1ad839172b79cc diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/cmark-0.31.0.tar.gz b/cmark-0.31.0.tar.gz new file mode 100644 index 0000000..2b12c07 --- /dev/null +++ b/cmark-0.31.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbcb8f8c03b5af33fcfcf11a74e9499f20a9043200b8552f78a6e8ba76e04d11 +size 251922 diff --git a/cmark.changes b/cmark.changes new file mode 100644 index 0000000..9336fe1 --- /dev/null +++ b/cmark.changes @@ -0,0 +1,700 @@ +------------------------------------------------------------------- +Mon Apr 1 10:50:27 UTC 2024 - Jianhua Lu + +- update to 0.31.0 + * Update to 0.31.2 spec.txt. + * Treat unicode Symbols like Punctuation, as per the 0.31 spec. + * Add a new function to `utf8.h`: + `int cmark_utf8proc_is_punctuation_or_symbol(int32_t uc)`. + The old `cmark_utf8proc_is_punctuation` has been kept for + now, but it is no longer used. + * Add new exported function `cmark_parser_new_with_mem_into_root` + (API change) (John Ericson). + * Avoid repeated `language-` in info string (commonmark/commonmark.js#277). + * Fix quadratic behavior in `S_insert_emph` (Nick Wellnhofer). + Fixes part of GHSA-66g8-4hjf-77xh. + * Fix quadratic behavior in `check_open_blocks` (Nick Wellnhofer). + Fixes part of GHSA-66g8-4hjf-77xh. + * Track underscore bottom separately mod 3, like asterisk (Michael + Howell). This was already implemented correctly for asterisks, + but not for underscore. + * Use `fwrite` instead of `printf` to print results in main (#523). + This avoids a massive slowdown in MSYS2. + * commonmark writer: less aggressive escaping for `!` (#131). + * Update libFuzzer build (Nick Wellnhofer): + + Move fuzzing files into their own directory. + + Use libFuzzer the modern way by compiling and linking with + `-fsanitize=fuzzer(-no-link)` without requiring `LIB_FUZZER_PATH`. + + Update the `libFuzzer` rule in Makefile and the README.md. + * CMake build changes (Saleem Abdulrasool). + + Inline multiple variables in CMake, following CMake recommendations. + + Simplify the version computation. + + Remove the `CMARK_STATIC` and `CMARK_SHARED` options as one of the two + must be enabled always as the cmark executable depends on the library. + Instead of having a custom flag to discern between the + library type, use the native CMake option `BUILD_SHARED_LIBS`, + allowing the user to control which library to build. This matches + CMake recommendations to only build a single copy of the library. + + Introduce an author warning for the use of `CMARK_SHARED` and + `CMARK_STATIC` to redirect the author of the dependent package to + `BUILD_SHARED_LIBS`. + + Permit incremental linking on Windows. Although incremental linking + does introduce padding in the binary for incremental links, that + should not matter for release mode builds in theory as `/OPT:REF` + and `/OPT:ICF` will trigger full links, which is the default in + release mode. + + Hoist the CMake module inclusion to the top level. + + Minor tweaks for speeding up the configure phase. + Restructure the file layout to place the custom modules into the + `cmake/modules` directory that is the common layout for CMake based + projects. + + Squelch C4232 warnings on MSVC builds. + + Remove check for `__builtin_expect`. Use `__has_builtin` to check + at compile time if the feature is supported. + This macro is supported by both clang and GCC (as of 10). + In the case that the compiler in use is not new enough, we still + provide the fallback so that the code will compile but without the + additional hints for the branch probability. `config.h` has been + removed from the code base as it is no longer needed. + + Remove `/TP` usage on MSVC and replace `CMARK_INLINE` with `inline`. + These were workarounds for pre-VS2015 compilers, which are no longer + supported. + + Hoist the C visibility settings to top level + + Clean up C4267 warnings on MSVC builds. + + Remove some compiler compatibility checks that are no longer + needed because VS 2013 is no longer supported (#498). + + Adjust the policy to silence warnings on MSVC builds + CMake 3.15+ remove `/W3` from the language flags under MSVC with + CMP0092. Set the policy to new to avoid the D9025 warning. + + Reflow some text to match CMake documentation style + + Use generator expression for path computation. + + Use CMake to propagate `CMARK_STATIC_DEFINE`. + + Clean up an obsoleted variable (NFC). + + Hoist the policy settings. Policy settings may impact how + `project` functions. They should be set immediately after + `cmake_minimum_required` (which implicitly sets policies). + Use the `POLICY` check to see if a policy is defined rather + than using a version check. + + Replace `CMARK_TESTS` with CMake sanctioned `BUILD_TESTING`. + + Correct typo and adjust command invocation. Use the proper + generator expression for the python interpreter and adjust + a typo in the component name. + + Add an upgrade path for newer CMake. + CMake 3.12 deprecated `FindPythonInterp`, and with CMake 3.27, were + obsoleted with CMP0148. Add a version check and switch to the new + behaviour to allow building with newer releases. + * Fix regex syntax warnings in `pathological_tests.py` (Nick Wellnhofer). + * `test/cmark.py`: avoid star imports (Jakub Wilk). + * `spec_tests.py`: Add option to generate fuzz corpus (Nick Wellnhofer). + Add an option `--fuzz-corpus` that writes the test cases to separate + files including the options header, so they can be used as seed corpus + for fuzz testing. + * Fix some cmark.3 man rendering issues so we can do a clean regen + (John Ericson). + * Update Windows compilation instructions (Pomax, #525). + +------------------------------------------------------------------- +Sat Mar 18 09:20:15 UTC 2023 - Andreas Stieger + +- update to 0.30.3: + * CVE-2023-22486: quadratic complexity bug with repeated `![[]()` + (boo#1207674) + * Allow declarations with no space, as per spec + * Set `enumi*` counter correctly in LaTeX output + * Allow ` + +- Fix dependencies. + cmark-targets-*.cmake creates a 'cmark::cmark_exe' target. The + cmark executable is required. + +------------------------------------------------------------------- +Fri Oct 8 08:59:08 UTC 2021 - Ondřej Súkup + +- update to 0.30.2 + * Fix parsing of emphasis before links (#424, Nick Wellnhofer). + Fixes a regression introduced with commit ed0a4bf. + * Update to Unicode 14.0 (data-man). + * Add `~` to safe href character set (#394, frogtile). + * Update CMakeLists.txt (Saleem Abdulrasool). Bump the minimum required + CMake to 3.7. Imperatively define output name for static library. + * Fix install paths in libcmark.pc (Sebastián Mancilla). + `CMAKE_INSTALL_` can be relative or absolute path, so it is wrong to + prefix CMAKE_INSTALL_PREFIX because if CMAKE_INSTALL_ is set to an + absolute path it will result in a malformed path with two absolute paths + joined together. Instead, use `CMAKE_INSTALL_FULL_` from + GNUInstallDirs. + * Properly indent block-level contents of list items in man (#258). + This handles nested lists as well as items with multiple paragraphs. + The change requires addition of a new field block_number_in_list_item + to cmark_renderer, but this does not change the public API. + * Fix quadratic behavior when parsing emphasis (#389, Nick + Wellnhofer). Delimiters can be deleted, so store delimiter positions + instead of pointers in `openers_bottom`. Besides causing undefined + behavior when reading a dangling pointer, this could also result + in quadratic behavior when parsing emphasis. + * Fix quadratic behavior when parsing smart quotes (#388, Nick Wellnhofer). + Remove matching smart quote delimiters. Otherwise, the same opener + could be found over and over, preventing the `openers_bottom` + optimization from kicking in and leading to quadratic behavior when + processing lots of quotes. + * Modify CMake configuration so that the project can be built with + older versions of CMake (#384, Saleem Abdulrasool). (In 0.30.0, + some features were used that require CMake >= 3.3.) The cost of this + backwards compatibility is that developers must now explicitly invoke + `cmark_add_compile_options` when a new compilation target is added. + * Remove a comma at the end of an enumerator list, which was flagged + by clang as a C++11 extension. + * make_man_page.py: use absolute path with CDLL. This avoids the error + "file system relative paths not allowed in hardened programs." + * Include cmark version in cmark(3) man page (instead of LOCAL). + +------------------------------------------------------------------- +Mon Jun 21 06:45:39 UTC 2021 - Ondřej Súkup + +- update to 0.30.0 + * Use official 0.30 spec.txt. + * Add `cmark_get_default_mem_allocator()` (#330). API change: this + adds a new exported function in cmark.h. + * Fix #383. An optimization we used for emphasis parsing was + too aggressive, causing us to miss some emphasis that was legal + according to the spec. We fix this by indexing the `openers_bottom` + table not just by the type of delimiter and the length of the + closing delimiter mod 3, but by whether the closing delimiter + can also be an opener. (The algorithm for determining emphasis + matching depends on all these factors.) Add regression test. + * Fix quadratic behavior with inline HTML (#299, Nick Wellnhofer). + Repeated starting sequences like `. + * Add needed include in `blocks.c`. + * Fix unnecessary variable assignment. + * Skip UTF-8 BOM if present at beginning of buffer (#334). + * Fix URL check in `is_autolink` (Nick Wellnhofer). In a recent commit, + the check was changed to `strcmp`, but we really have to use `strncmp`. + * Fix null pointer deref in `is_autolink` (Nick Wellnhofer). + Introduced by a recent commit. Found by OSS-Fuzz. + * Rearrange struct cmark_node (Nick Wellnhofer). Introduce multi-purpose + data/len members in struct cmark_node. This is mainly used to store + literal text for inlines, code and HTML blocks. + Move the content strbuf for blocks from `cmark_node` to `cmark_parser`. + When finalizing nodes that allow inlines (paragraphs and headings), + detach the strbuf and store the block content in the node's data/len + members. Free the block content after processing inlines. + Reduces size of struct `cmark_node` by 8 bytes. + * Improve packing of `struct cmark_list` (Nick Wellnhofer). + * Use C string instead of chunk in a number of contexts (Nick Wellnhofer, + #309). The node struct never references memory of other nodes now. + Node accessors don't have to check for delayed creation of C strings, + so parsing and iterating all literals using the public API should + actually be faster than before. These changes also reduce the size + of `struct cmark_node`. + * Add casts for MSVC10 (from kivikakk in cmark-cfm). + * commonmark renderer: better escaping in smart mode. When + `CMARK_OPT_SMART` is enabled, we escape literal `-`, `.`, and quote + characters when needed to avoid their being "smartified." + * Add options field to `cmark_renderer`. + * commonmark.c - use `size_t` instead of `int`. + * Include `string.h` in `cmark-fuzz.c`. + * Fix #220 (hash collisions for references) (Vicent Marti via cmark-gfm). + Reimplemented reference storage as follows: + 1. New references are always inserted at the end of a linked list. This + is an O(1) operation, and does not check whether an existing (duplicate) + reference with the same label already exists in the document. + 2. Upon the first call to `cmark_reference_lookup` (when it is expected + that no further references will be added to the reference map), the + linked list of references is written into a fixed-size array. + 3. The fixed size array can then be efficiently sorted in-place in O(n + log n). This operation only happens once. We perform this sort in a + _stable_ manner to ensure that the earliest link reference in the + document always has preference, as the spec dictates. To accomplish + this, every reference is tagged with a generation number when initially + inserted in the linked list. + 4. The sorted array is then compacted in O(n). Since it was sorted in a + stable way, the first reference for each label is preserved and the + duplicates are removed, matching the spec. + 5. We can now simply perform a binary search for the current + `cmark_reference_lookup` query in O(log n). Any further lookup calls + will also be O(log n), since the sorted references table only needs to + be generated once. + The resulting implementation is notably simple (as it uses standard + library builtins `qsort` and `bsearch`), whilst performing better than + the fixed size hash table in documents that have a high number of + references and never becoming pathological regardless of the input. + * Comment out unused function `cmark_strbuf_cstr` in `buffer.h`. + * Re-add `--safe` command-line option as a no-op (#344), for backwards + compatibility. + * Update to Unicode 13.0 + * Generate and install cmake-config file (Reinhold Gschweicher). + Add full cmake support. The project can either be used with + `add_subdirectory` or be installed into the system (or some other + directory) and be found with `find_package(cmark)`. In both cases the + cmake target `cmark::cmark` and/or `cmark::cmark_static` is all that + is needed to be linked. Previously the `cmarkConfig.cmake` file + was generated, but not installed. As additional bonus of generation + by cmake we get a generated `cmake-config-version.cmake` file for + `find_package()` to search for the same major version. + The generated config file is position independent, allowing the + installed directory to be copied or moved and still work. + The following four files are generated and installed: + `lib/cmake/cmark/cmark-config.cmake`, + `lib/cmake/cmark/cmark-config-version.cmake`, + `lib/cmake/cmark/cmark-targets.cmake`, + `lib/cmake/cmark/cmark-targets-release.cmake`. + * Adjust the MinGW paths for MinGW64 (Daniil Baturin). + * Fix CMake generator expression checking for MSVC (Nick Wellnhofer). + * Fix `-Wconst-qual` warning (Saleem Abdulrasool). This enables building + with `/Zc:strictString` with MSVC as well. + * Improve and modernize cmake build (Saleem Abdulrasool). + + Build: add exports targets for build tree usage (#307). + + Uuse target properties for include paths. + + Remove the unnecessary execute permission on CMakeLists.txt. + + Reduce property computation in CMake. + + Use `CMAKE_INCLUDE_CURRENT_DIRECTORY`. + + Improve man page installation. + + Only include `GNUInstallDirs` once. + + Replace `add_compile_definitions` with `add_compile_options` + since the former was introduced in 3.12 (#321). + + Cleanup CMake (#319). + + Inline a variable. + + Use `LINKER_LANGUAGE` property for C++ runtime. + + Use CMake to control C standard. + + Use the correct variable. + + Loosen the compiler check + + Hoist shared flags to top-level CMakeLists + + Remove duplicated flags. + + Use `add_compile_options` rather than modify `CMAKE_C_FLAGS`. + + Hoist sanitizer flags to global state. + + Hoist `-fvisibilty` flags to top-level. + + Hoist the debug flag handling. + + Hoist the profile flag handling. + + Remove incorrect variable handling. + + Remove unused CMake includes. + * Remove "-rdynamic" flag for static builds (#300, Eric Pruitt). + * Fixed installation on other than Ubuntu GNU/Linux distributions + (Vitaly Zaitsev). + * Link executable with static or shared library (Nick Wellnhofer). + If `CMARK_STATIC` is on (default), link the executable with the static + library. This produces exactly the same result as compiling the library + sources again and linking with the object files. + If `CMARK_STATIC` is off, link the executable with the shared library. + This wasn't supported before and should be the preferred way to + package cmark on Linux distros. + Building only a shared library and a statically linked executable + isn't supported anymore but this doesn't seem useful. + * Reintroduce version check for MSVC /TP flag (Nick Wellnhofer). + The flag is only required for old MSVC versions. + * normalize.py: use `html.escape` instead of `cgi.escape` (#313). + * Fix pathological_tests.py on Windows (Nick Wellnhofer). + When using multiprocessing on Windows, the main program must be + guarded with a `__name__` check. + * Remove useless `__name__` check in test scripts (Nick Wellnhofer). + * Add CIFuzz (Leo Neat). + * cmark.1 - Document --unsafe instead of --safe (#332). + * cmark.1: remove docs for `--normalize` which no longer exists (#332). + * Add lint target to Makefile. + * Add uninstall target to Makefile. + * Update benchmarks (#338). + * Fix typo in documentation (Tim Gates). + * Increase timeout for pathological tests to avoid CI failure. + * Update the Racket wrapper with the safe -> unsafe flag change (Eli + Barzilay). + +------------------------------------------------------------------- +Fri May 14 08:38:18 UTC 2021 - Simon Lees + +- %cmake_build is now the recommended way to build cmake projects + +------------------------------------------------------------------- +Tue Aug 6 09:15:08 UTC 2019 - Ondřej Súkup + +- update to 0.29.0 + * Update spec to 0.29. + * Make rendering safe by default (#239, #273). + Adds `CMARK_OPT_UNSAFE` and make `CMARK_OPT_SAFE` a no-op (for API + compatibility). The new default behavior is to suppress raw HTML and + potentially dangerous links. The `CMARK_OPT_UNSAFE` option has to be set + explicitly to prevent this. + **NOTE:** This change will require modifications in bindings for cmark + and in most libraries and programs that use cmark. + Borrows heavily from @kivikakk's patch in github/cmark-gfm#123. + * Add sourcepos info for inlines (Yuki Izumi). + * Disallow more than 32 nested balanced parens in a link (Yuki Izumi). + * Resolve link references before creating setext header. + A setext header line after a link reference should not + create a header, according to the spec. + * commonmark renderer: improve escaping. + URL-escape special characters when escape mode is URL, and not otherwise. + Entity-escape control characters (< 0x20) in non-literal escape modes. + * render: only emit actual newline when escape mode is LITERAL. + For markdown content, e.g., in other contexts we want some + kind of escaping, not a literal newline. + * Update code span normalization to conform with spec change. + * Allow empty `<>` link destination in reference link. + * Remove leftover includes of `memory.h` (#290). + * A link destination can't start with `<` unless it is + an angle-bracket link that also ends with `>` (#289). + (If your URL really starts with `<`, URL-escape it.) + * Allow internal delimiter runs to match if both have lengths that are + multiples of 3. See commonmark/commonmark#528. + * Include `references.h` in `parser.h` (#287). + * Fix `[link]()`. + * Use hand-rolled scanner for thematic break (see #284). + Keep track of the last position where a thematic break + failed to match on a line, to avoid rescanning unnecessarily. + * Rename `ends_with_blank_line` with `S_` prefix. + * Add `CMARK_NODE__LAST_LINE_CHECKED` flag (#284). + Use this to avoid unnecessary recursion in `ends_with_blank_line`. + * In `ends_with_blank_line`, call `S_set_last_line_blank` + to avoid unnecessary repetition (#284). Once we settle whether a list + item ends in a blank line, we don't need to revisit this in considering + parent list items. + * Disallow unescaped `(` in parenthesized link title. + * Copy line/col info straight from opener/closer (Ashe Connor). + We can't rely on anything in `subj` since it's been modified while parsing + the subject and could represent line info from a future line. This is + simple and works. + * `render.c`: reset `last_breakable` after cr. Fixes jgm/pandoc#5033. + * Fix a typo in `houdini_href_e.c` (Felix Yan). + * commonmark writer: use `~~~` fences if info string contains backtick. + This is needed for round-trip tests. + * Update scanners for new info string rules. + * Add XSLT stylesheet to convert cmark XML back to Commonmark + (Nick Wellnhofer, #264). Initial version of an XSLT stylesheet that + converts the XML format produced by `cmark -t xml` back to Commonmark. + * Check for whitespace before reference title (#263). + * Bump CMake to version 3 (Jonathan Müller). + * Build: Remove deprecated call to `add_compiler_export_flags()` + (Jonathan Müller). It is deprecated in CMake 3.0, the replacement is to + set the `CXX_VISIBILITY_PRESET` (or in our case `C_VISIBILITY_PRESET`) and + `VISIBILITY_INLINES_HIDDEN` properties of the target. We're already + setting them by setting the CMake variables anyway, so the call can be + removed. + * Build: only attempt to install MSVC system libraries on Windows + (Saleem Abdulrasool). Newer versions of CMake attempt to query the system + for information about the VS 2017 installation. Unfortunately, this query + fails on non-Windows systems when cross-compiling: + `cmake_host_system_information does not recognize VS_15_DIR`. + CMake will not find these system libraries on non-Windows hosts anyways, + and we were silencing the warnings, so simply omit the installation when + cross-compiling to Windows. + * Simplify code normalization, in line with spec change. + * Implement code span spec changes. These affect both parsing and writing + commonmark. + * Add link parsing corner cases to regressions (Ashe Connor). + * Add `xml:space="preserve"` in XML output when appropriate + (Nguyễn Thái Ngọc Duy). + (For text, code, code_block, html_inline and html_block tags.) + * Removed meta from list of block tags. Added regression test. + See commonmark/CommonMark#527. + * `entity_tests.py` - omit noisy success output. + * `pathological_tests.py`: make tests run faster. + Commented out the (already ignored) "many references" test, which + times out. Reduced the iterations for a couple other tests. + * `pathological_tests.py`: added test for deeply nested lists. + * Optimize `S_find_first_nonspace`. We were needlessly redoing things we'd + already done. Now we skip the work if the first nonspace is greater than + the current offset. This fixes pathological slowdown with deeply nested + lists (#255). For N = 3000, the time goes from over 17s to about 0.7s. + Thanks to Martin Mitas for diagnosing the problem. + * Allow spaces in link destination delimited with pointy brackets. + * Adjust max length of decimal/numeric entities. + See commonmark/CommonMark#487. + * Fix inline raw HTML parsing. + This fixes a recently added failing spec test case. Previously spaces + were being allowed in unquoted attribute values; no we forbid them. + * Don't allow list markers to be indented >= 4 spaces. + See commonmark/CommonMark#497. + * Check for empty buffer when rendering (Phil Turnbull). + For empty documents, `->size` is zero so + `renderer.buffer->ptr[renderer.buffer->size - 1]` will cause an + out-of-bounds read. Empty buffers always point to the global + `cmark_strbuf__initbuf` buffer so we read `cmark_strbuf__initbuf[-1]`. + * Also run API tests with `CMARK_SHARED=OFF` (Nick Wellnhofer). + * Rename roundtrip and entity tests (Nick Wellnhofer). + Rename the tests to reflect that they use the library, not the + executable. + * Generate export header for static-only build (#247, Nick Wellnhofer). + * Fuzz width parameter too (Phil Turnbull). Allow the `width` parameter to + be generated too so we get better fuzz-coverage. + * Don't discard empty fuzz test-cases (Phil Turnbull). We currently discard + fuzz test-cases that are empty but empty inputs are valid markdown. This + improves the fuzzing coverage slightly. + * Fixed exit code for pathological tests. + * Add allowed failures to `pathological_tests.py`. + This allows us to include tests that we don't yet know how to pass. + * Add timeout to `pathological_tests.py`. + Tests must complete in 8 seconds or are errors. + * Add more pathological tests (Martin Mitas). + These tests target the issues #214, #218, #220. + * Use pledge(2) on OpenBSD (Ashe Connor). + * Update the Racket wrapper (Eli Barzilay). + * Makefile: For afl target, don't build tests. + +------------------------------------------------------------------- +Fri Nov 3 16:07:37 UTC 2017 - mimi.vx@gmail.com + +- update to 0.28.3 + * -smart: open quote can never occur right after ] or ) + * Include GNUInstallDirs in src/CMakeLists.txt + * Fix quadratic behavior in finalize + * Don't use CMAKE_INSTALL_LIBDIR to create libcmark.pc + - drop cmark-install_libdir_is_abs.patch + +------------------------------------------------------------------- +Fri Sep 29 11:06:13 UTC 2017 - dimstar@opensuse.org + +- Add cmark-install_libdir_is_abs.patch: CMAKE_INSTALL_LIBDIR is an + absolute path (if -DLIBDIR=%{_libdir} is being passed. + +------------------------------------------------------------------- +Thu Sep 21 20:37:44 UTC 2017 - mimi.vx@gmail.com + +- update to 0.28.0 + * Update spec. + * Use unsigned integer when shifting + * Avoid memcpy'ing NULL pointers + * DeMorgan simplification of some tests in emphasis parser. + * Fixed undefined shift in commonmark writer + * latex writer: fix memory overflow + * Check for NULL pointer in get_link_type + * Move fuzzing dictionary into single file + * Reset bytes after UTF8 proc + * Don't scan past an EOL + * Document cases where `get_` functions return `NULL` + * Properly handle backslashes in link destinations + * Fixed `cmark_node_get_list_start` to return 0 for bullet lists, + as documented + * Use `CMARK_NO_DELIM` for bullet lists + * Fixed code for freeing delimiter stack + * Removed abort outside of conditional (typo). + * Removed coercion in error message when aborting from buffer. + * Print message to stderr when we abort due to memory demands + * `libcmark.pc`: use `CMAKE_INSTALL_LIBDIR` + * Fixed buffer overflow error in `S_parser_feed` + * Update emphasis parsing for spec change. + * Fixes for the LaTeX renderer + + Don't double-output the link in latex-rendering. + + Prevent ligatures in dashes sensibly when rendering latex. + `\-` is a hyphenation, so it doesn't get displayed at all. + * Added a test for NULL when freeing `subj->last_delim`. + * Cleaned up setting of lower bounds for openers. + * Fix #178, quadratic parsing bug. Add pathological test. + * Slight improvement of clarity of logic in emph matching. + * Fix "multiple of 3" determination in emph/strong parsing. + * Correctly initialize chunk in S_process_line + * Added 'make newbench'. + * `scanners.c` generated with re2c 0.16 + * `scanners.re` - fixed warnings; use `*` for fallback. + * Fixed some warnings in `scanners.re`. + * Update CaseFolding to latest + * Allow balanced nested parens in link destinations + * Allocate enough bytes for backticks array. + * Inlines: Ensure that the delimiter stack is freed in subject. + * Fixed pathological cases with backtick code spans: + - Removed recursion in scan_to_closing_backticks + - Added an array of pointers to potential backtick closers + to subject + - This array is used to avoid traversing the subject again + when we've already seen all the potential backtick closers. + - Added a max bound of 1000 for backtick code span delimiters. + - Added pathological test case. + * Remove redundant cmake_minimum_required + * Make shared and static libraries optional + * Added support for built-in `${LIB_SUFFIX}` feature + * Add Makefile target and harness to fuzz with libFuzzer + * Advertise `--validate-utf8` in usage information + * Makefile: use warnings with re2c. + +------------------------------------------------------------------- +Sun Nov 20 10:21:44 UTC 2016 - mimi.vx@gmail.com + +- update to 0.27.1 +* Set policy for CMP0063 to avoid a warning +* Use VERSION_GREATER to clean up cmake version test + +------------------------------------------------------------------- +Fri Nov 18 22:44:10 UTC 2016 - mimi.vx@gmail.com + +- update to 0.27.0 +* Fix CMAKE_C_VISIBILITY_PRESET for cmake versions greater than 1.8 +* Fix for non-matching entities +* Modified print_delimiters (commented out) so it compiles again. +* make format: don't change order of includes. +* Changed logic for null/eol checks + only check once for "not at end of line" + check for null before we check for newline characters (the previous + patch would fail for NULL + CR) +* Fix by not advancing past both \0 and \n +* Add test for NUL-LF sequence +* Fix memory leak in list parsing +* Use cmark_mem to free where used to alloc +* Allow a shortcut link before a +* Allow tabs after setext header line +* Don't let URI schemes start with spaces. +* Fixed h2..h6 HTML blocks +* Autolink scheme can contain digits +* Fix nullary function declarations in cmark.h + +------------------------------------------------------------------- +Sun Oct 16 15:47:56 UTC 2016 - mpluskal@suse.com + +- Use current cmake macros + +------------------------------------------------------------------- +Wed Aug 31 14:00:14 UTC 2016 - mpluskal@suse.com + +- Fix building with different release types set via cmake + +------------------------------------------------------------------- +Sat Jul 16 18:58:24 UTC 2016 - mimi.vx@gmail.com + +- update to 0.26.1 +* Removed unnecessary typedef that caused build failure on some platforms. +* Use $(MAKE) in Makefile instead of hardcoded make + +------------------------------------------------------------------- +Sat Jul 16 08:12:31 UTC 2016 - mimi.vx@gmail.com + +- update to 0.26.0 +* Implement spec changes for list items: + + Empty list items cannot interrupt paragraphs. + + Ordered lists cannot interrupt paragraphs unless they start with 1. + + Removed "two blank lines break out of a list" feature. +* Fix sourcepos for blockquotes. +* Fix sourcepos for atx headers). +* Fix ATX headers and thematic breaks to allow tabs as well as spaces. +* Fix chunk_set_cstr with suffix of current string +* Export targets on installation +* Fix cmake warning about CMP0048 +* commonmark renderer: Ensure we don't have a blank line before a code block when + it's the first thing in a list item. +* Change parsing of strong/emph in response to spec changes. process_emphasis now + gets better results in corner cases. The change is this: when considering + matches between an interior delimiter run (one that can open and can close) + and another delimiter run, we require that the sum of the lengths of the two + delimiter runs mod 3 is not 0. +* Ported Robin Stocker's changes to link parsing in jgm/CommonMark#101. This uses + a separate stack for brackets, instead of putting them on the delimiter stack. + This avoids the need for looking through the delimiter stack for + the next bracket. +* cmark_reference_lookup: Return NULL if reference is null string. +* Fix character type detection in commonmark.c + + Implement cmark_isalpha. + + Check for ASCII character before implicit cast to char. + + Use internal ctype functions in commonmark.c. +* Better documentation of memory-freeing responsibilities. in cmark.h and + its man page +* Use library functions to insert nodes in emphasis/link processing. Previously we + did this manually, which introduces many places where errors can creep in. +* Correctly handle list marker followed only by spaces. Previously when a list + marker was followed only by spaces, cmark expected the following content to be + indented by the same number of spaces. But in this case we should treat the + line just like a blank line and set list padding accordingly. +* Fixed a number of issues relating to line wrapping. + + Extend CMARK_OPT_NOBREAKS to all renderers and add --nobreaks. + + Do not autowrap, regardless of width parameter, if CMARK_OPT_NOBREAKS is set. + + Fixed CMARK_OPT_HARDBREAKS for LaTeX and man renderers. + + Ensure that no auto-wrapping occurs if CMARK_OPT_NOBREAKS is enabled, or if + output is CommonMark and CMARK_OPT_HARDBREAKS is enabled. +* Set stdin to binary mode on Windows +* Add library option to render softbreaks as spaces. Note that the NOBREAKS option + is HTML-only +* renderer: no_linebreaks instead of no_wrap. We generally want this option to + prohibit any breaking in things like headers (not just wraps, but softbreaks). +* Coerce realurllen to int. This is an alternate solution for pull request, which + introduced a new warning on the comparison. +* Remove unused variable link_text. +* Improved safety checks in buffer. +* Add new interface allowing specification of custom memory allocator for nodes. + Added cmark_node_new_with_mem, cmark_parser_new_with_mem, cmark_mem to API. +* Reduce storage size for nodes by using bit flags instead of separate booleans. +* cmake: Global handler for OOM situations. +* Add tests for memory exhaustion. +* Document in man page and public header that one should use the same memory + allocator for every node in a tree. +* Fix ctypes in Python FFI calls (Nick Wellnhofer). This didn't cause problems + so far because all types are 32-bit on 32-bit systems and arguments are passed + in registers on x86-64. The wrong types could cause crashes on other + platforms, though. +* Remove spurious failures in roundtrip tests. In the commonmark writer we separate + lists, and lists and indented code, using a dummy HTML comment. + So in evaluating the round-trip tests, we now strip out these comments. + We also normalize HTML to avoid issues having to do with line breaks. +* Added to_commonmark in test/cmark.py (for round-trip tests). +* spec_test.py - parameterize do_test with converter. +* spec_tests.py: exit code is now sum of failures and errors. This ensures that + a failing exit code will be given when there are errors, not just with failures. +* Fixed round trip tests. Previously they actually ran cmark instead of + the round-trip version, since there was a bug in setting the ROUNDTRIP variable. +* Added new roundtrip_tests.py. This replaces the old use of simple shell scripts. + It is much faster, and more flexible. (We will be able to do custom + normalization and skip certain tests.) +* Fix leak in api_test. +* Makefile: have leakcheck stop on first error instead of going through all + the formats and options and probably getting the same output. +* Add regression tests. + +------------------------------------------------------------------- +Tue Mar 29 12:41:20 UTC 2016 - mimi.vx@gmail.com + +- update to 0.25.2 + +------------------------------------------------------------------- +Sun Oct 18 18:28:18 UTC 2015 - kgronlund@suse.com + +- Initial package for version 0.22.0 + diff --git a/cmark.spec b/cmark.spec new file mode 100644 index 0000000..ed1d757 --- /dev/null +++ b/cmark.spec @@ -0,0 +1,100 @@ +# +# spec file for package cmark +# +# Copyright (c) 2023 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define libname libcmark0_31_0 +Name: cmark +Version: 0.31.0 +Release: 0 +Summary: CommonMark parsing and rendering library and program in C +License: BSD-2-Clause AND MIT AND CC-BY-SA-4.0 +Group: Productivity/Text/Utilities +URL: https://github.com/jgm/cmark +Source: https://github.com/jgm/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz +BuildRequires: cmake >= 3.7 +BuildRequires: gcc-c++ +BuildRequires: pkgconfig + +%description +`cmark` is the C reference implementation of CommonMark, +a rationalized version of Markdown syntax with a spec. + +It provides a shared library (`libcmark`) with functions for parsing +CommonMark documents to an abstract syntax tree (AST), manipulating +the AST, and rendering the document to HTML, groff man, LaTeX, +CommonMark, or an XML representation of the AST. It also provides a +command-line program (`cmark`) for parsing and rendering CommonMark +documents. + +%package -n %{libname} +Summary: CmmonMark parsing and rendering library +Group: System/Libraries + +%description -n %{libname} +It provides a shared library (`libcmark`) with functions for parsing +CommonMark documents to an abstract syntax tree (AST), manipulating +the AST, and rendering the document to HTML, groff man, LaTeX, +CommonMark, or an XML representation of the AST. It also provides a +command-line program (`cmark`) for parsing and rendering CommonMark +documents. + +%package devel +Summary: Development files for cmark library +Group: Development/Libraries/C and C++ +Requires: %{libname} = %{version}-%{release} +# The CMake config files define a target for the executable. +Requires: %{name} = %{version} + +%description devel +This package provides the development files for cmark. + +%prep +%setup -q + +%build +%cmake -DCMARK_TESTS=OFF -DCMARK_STATIC=OFF +%cmake_build + +%install +%cmake_install + +%post -n %{libname} -p /sbin/ldconfig +%postun -n %{libname} -p /sbin/ldconfig + +%files +%license COPYING +%{_bindir}/cmark +%{_mandir}/man1/cmark.1%{?ext_man} + +%files -n %{libname} +%license COPYING +%{_libdir}/libcmark.so.%{version} + +%files devel +%license COPYING +%{_includedir}/cmark.h +%{_includedir}/cmark_export.h +%{_includedir}/cmark_version.h +%{_libdir}/libcmark.so +%{_libdir}/pkgconfig/libcmark.pc +%{_mandir}/man3/cmark.3%{?ext_man} +%dir %{_libdir}/cmake/cmark +%{_libdir}/cmake/cmark/cmark*.cmake + +%doc README.md + +%changelog