Here's a diff to update textproc/ruby-kramdown to 2.4.0. However, I found the port to be fairly broken since rexml was removed from the Ruby standard library in Ruby 3.0. There were already comments in the port related to this. We either need to add a port for rexml, or we should remove kramdown.
The test framework shipped with Kramdown is somewhat broken; this includes a patch to update them so that more of them pass, but there are still some failures. OKs to update kramdown and import rexml, or alternatively to remove kramdown? I recommend removal. kramdown is a pure ruby port that doesn't benefit from being packaged, IMO. Thanks, Jeremy Index: Makefile =================================================================== RCS file: /cvs/ports/textproc/ruby-kramdown/Makefile,v retrieving revision 1.15 diff -u -p -u -p -r1.15 Makefile --- Makefile 11 Mar 2022 20:03:28 -0000 1.15 +++ Makefile 1 Sep 2023 20:22:07 -0000 @@ -1,6 +1,6 @@ COMMENT= fast, pure Ruby Markdown parser -DISTNAME= kramdown-2.3.1 +DISTNAME= kramdown-2.4.0 CATEGORIES= textproc @@ -9,14 +9,15 @@ HOMEPAGE= https://kramdown.gettalong.org # MIT PERMIT_PACKAGE= Yes -# After Ruby 3.0 is added to ports tree -#RUN_DEPENDS= textproc/ruby-rexml +RUN_DEPENDS= textproc/ruby-rexml,${MODRUBY_FLAVOR} MODULES= lang/ruby CONFIGURE_STYLE=ruby gem +TEST_DEPENDS = ${RUN_DEPENDS} \ + textproc/ruby-rouge,${MODRUBY_FLAVOR} MODRUBY_TEST= ruby -MODRUBY_TEST_TARGET = ${WRKSRC}/test/run_tests.rb +MODRUBY_TEST_TARGET = -C ${WRKSRC} -Ku -v -I lib test/run_tests.rb .include <bsd.port.mk> Index: distinfo =================================================================== RCS file: /cvs/ports/textproc/ruby-kramdown/distinfo,v retrieving revision 1.7 diff -u -p -u -p -r1.7 distinfo --- distinfo 18 Mar 2021 08:40:41 -0000 1.7 +++ distinfo 1 Sep 2023 20:21:43 -0000 @@ -1,2 +1,2 @@ -SHA256 (kramdown-2.3.1.gem) = Wek4z6QqPWFpspVyf+CcTJHXQjNsj70QQlKfTbZkq0k= -SIZE (kramdown-2.3.1.gem) = 122368 +SHA256 (kramdown-2.4.0.gem) = ti5by9bqIMemcw67sqEHI3hW4U8pzr9bEMh2zBokgcU= +SIZE (kramdown-2.4.0.gem) = 122368 Index: patches/patch-_metadata =================================================================== RCS file: patches/patch-_metadata diff -N patches/patch-_metadata --- patches/patch-_metadata 11 Mar 2022 20:03:28 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,15 +0,0 @@ -Don't require runtime dependency on rexml, not needed -in Ruby 2.5-2.7 where it is in stdlib. - -Index: .metadata ---- .metadata.orig -+++ .metadata -@@ -17,7 +17,7 @@ dependencies: - - - ">=" - - !ruby/object:Gem::Version - version: '0' -- type: :runtime -+ type: :development - prerelease: false - version_requirements: !ruby/object:Gem::Requirement - requirements: Index: patches/patch-test_run_tests_rb =================================================================== RCS file: /cvs/ports/textproc/ruby-kramdown/patches/patch-test_run_tests_rb,v retrieving revision 1.3 diff -u -p -u -p -r1.3 patch-test_run_tests_rb --- patches/patch-test_run_tests_rb 11 Mar 2022 20:03:28 -0000 1.3 +++ patches/patch-test_run_tests_rb 1 Sep 2023 20:20:09 -0000 @@ -3,19 +3,24 @@ Fix tests so they run. Index: test/run_tests.rb --- test/run_tests.rb.orig +++ test/run_tests.rb -@@ -32,9 +32,9 @@ Dir[arg].each {|f| fwidth = [fwidth, f.length + 10].ma +@@ -32,15 +32,19 @@ Dir[arg].each {|f| fwidth = [fwidth, f.length + 10].ma html_file = file.sub('.text', '.html') opts_file = file.sub('.text', '.options') opts_file = File.join(File.dirname(file), 'options') unless File.exist?(opts_file) - options = File.exist?(opts_file) ? YAML.safe_load(File.read(opts_file)) : {auto_ids: false, footnote_nr: 1} - doc = Kramdown::Document.new(File.read(file), options) ++ unless File.exist?(html_file) ++ puts 'SKIPPED' ++ next ++ end begin -+ options = File.exist?(opts_file) ? YAML.safe_load(File.read(opts_file)) : {auto_ids: false, footnote_nr: 1} ++ options = File.exist?(opts_file) ? YAML.safe_load(File.read(opts_file), permitted_classes: [Symbol]) : {auto_ids: false, footnote_nr: 1, permitted_classes: [Symbol]} + doc = Kramdown::Document.new(File.read(file), options) assert_equal(File.read(html_file), doc.to_html) puts 'PASSED' - rescue StandardError -@@ -42,5 +42,5 @@ Dir[arg].each {|f| fwidth = [fwidth, f.length + 10].ma +- rescue StandardError ++ rescue StandardError, LoadError + puts ' FAILED' puts $!.message if $VERBOSE puts $!.backtrace if $DEBUG end
ruby-rexml.tar.gz
Description: application/tar-gz