[Bug 222355] "make check-plist" can overflow sed's line buffer

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Fri Sep 15 17:19:51 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=222355

            Bug ID: 222355
           Summary: "make check-plist" can overflow sed's line buffer
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: Ports Framework
          Assignee: portmgr at FreeBSD.org
          Reporter: asomers at FreeBSD.org
                CC: freebsd-ports-bugs at FreeBSD.org

"make check-plist" generates a long sed command.  For some ports, this command
is so long that it overflows sed's line buffer, sized to _POSIX2_LINE_MAX
(currently 2048 characters).  An example port that demonstrates this problem is
www/rubygem-passenger.  Running "make check-plist" will print this error:

sed: 1: "s!^/usr/local/!!g;  s!l ...": unterminated regular expression

The full sed command is:

sed $'s!^/usr/local/!!g; 
s!lib/ruby/gems/2\\.3/specifications/passenger-5\\.1\\.8\\.gemspec!%%GEM_SPEC%%!g;
 s!lib/ruby/gems/2\\.3/cache/passenger-5\\.1\\.8\\.gem!%%GEM_CACHE%%!g; 
s!lib/ruby/vendor_ruby/2\\.3/amd64-freebsd11!%%RUBY_VENDORARCHLIBDIR%%!g; 
s!lib/ruby/site_ruby/2\\.3/amd64-freebsd11!%%RUBY_SITEARCHLIBDIR%%!g; 
s!lib/ruby/gems/2\\.3/gems/passenger-5\\.1\\.8!%%GEM_LIB_DIR%%!g; 
s!lib/ruby/gems/2\\.3/doc/passenger-5\\.1\\.8!%%GEM_DOC_DIR%%!g; 
s!lib/ruby/gems/2\\.3/specifications!%%SPEC_DIR%%!g; 
s!share/examples/ruby23/passenger!%%RUBY_MODEXAMPLESDIR%%!g; 
s!lib/ruby/gems/2\\.3/extensions!%%EXT_DIR%%!g; 
s!lib/ruby/2\\.3/amd64-freebsd11!%%RUBY_ARCHLIBDIR%%!g; 
s!share/doc/ruby23/passenger!%%RUBY_MODDOCDIR%%!g; 
s!share/examples/passenger!%%EXAMPLESDIR%%!g; 
s!lib/ruby/vendor_ruby/2\\.3!%%RUBY_VENDORLIBDIR%%!g; 
s!lib/ruby/gems/2\\.3/cache!%%CACHE_DIR%%!g; 
s!lib/ruby/site_ruby/2\\.3!%%RUBY_SITELIBDIR%%!g; 
s!lib/ruby/gems/2\\.3/gems!%%GEMS_DIR%%!g; 
s!share/examples/ruby23!%%RUBY_EXAMPLESDIR%%!g; 
s!lib/ruby/gems/2\\.3/doc!%%DOC_DIR%%!g; 
s!share/ri/2\\.3/system!%%RUBY_RIDIR%%!g;  s!share/doc/passenger!%%DOCSDIR%%!g;
 s!share/ri/2\\.3/site!%%RUBY_SITERIDIR%%!g; 
s!lib/ruby/gems/2\\.3!%%GEMS_BASE_DIR%%!g; 
s!share/doc/ruby23!%%RUBY_DOCDIR%%!g;  s!libexec/apache24!%%APACHEMODDIR%%!g; 
s!include/apache24!%%APACHEINCLUDEDIR%%!g;  s!share/passenger!%%DATADIR%%!g; 
s!passenger-5\\.1\\.8!%%PORT%%!g;  s!passenger-5\\.1\\.8!%%GEM_NAME%%!g; 
s!amd64-freebsd11!%%RUBY_ARCH%%!g;  s!www/passenger!%%WWWDIR%%!g; 
s!etc/passenger!%%ETCDIR%%!g;  s!passenger\\.so!%%AP_MODULE%%!g; 
s!lib/ruby/2\\.3!%%RUBY_LIBDIR%%!g;  s!etc/apache24!%%APACHEETCDIR%%!g; 
s!passenger!%%AP_NAME%%!g;  s!ruby23!%%RUBY_NAME%%!g; 
s!5\\.1\\.8!%%PORTVERSION%%!g;  s!2\\.3\\.4!%%RUBY_VERSION%%!g; 
s!2\\.3!%%RUBY_VER%%!g;  s!24!%%APACHE_VERSION%%!g;  s!23!%%RUBY_SUFFIX%%!g; 
s!23!%%RUBY_SHLIBVER%%!g;  s!23!%%RUBY_DEFAULT_SUFFIX%%!g; 
s!-A!%%AP_MOD_EN%%!g; s,^, at dir ,; \t    /%%DOCSDIR%%/s!^!%%PORTDOCS%%!g;
/%%EXAMPLESDIR%%/s!^!%%PORTEXAMPLES%%!g; /^%%PORTDOCS%%/d; \t    /^@dir
share\\/licenses/d;'

I think the best solution would be to split up that command into multiple
smaller commands, but I don't know that part of ports well enough to do it
myself.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the freebsd-ports-bugs mailing list