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

Attachment: ruby-rexml.tar.gz
Description: application/tar-gz

Reply via email to