2013/3/26 Jeremy Evans <jer...@openbsd.org>:
> On 03/26 10:02, Stuart Henderson wrote:
>> On 2013/03/26 13:48, Vadim Zhukov wrote:
>> > 2013/3/26 Stuart Henderson <s...@spacehopper.org>:
>> > > On 2013/03/26 13:35, Vadim Zhukov wrote:
>> > >> This allows to fix more stuff, e.g.:
>> > >>
>> > >> #!/usr/bin/ruby => #!/usr/local/bin/ruby19
>> > >>
>> > >> Used to fix stuff in texlive_base.
>> > >>
>> > >> This needs to go through a full bulk build first. Landry? :)
>> > >>
>> > >>
>> > >> Index: ruby.port.mk
>> > >> ===================================================================
>> > >> RCS file: /cvs/ports/lang/ruby/ruby.port.mk,v
>> > >> retrieving revision 1.60
>> > >> diff -u -p -r1.60 ruby.port.mk
>> > >> --- ruby.port.mk      20 Mar 2013 19:13:50 -0000      1.60
>> > >> +++ ruby.port.mk      26 Mar 2013 09:32:08 -0000
>> > >> @@ -252,7 +252,8 @@ TEST_DEPENDS+=    ${MODRUBY_RSPEC_DEPENDS}
>> > >>  TEST_DEPENDS+=       ${MODRUBY_RSPEC2_DEPENDS}
>> > >>  .endif
>> > >>
>> > >> -MODRUBY_RUBY_ADJ=    perl -pi -e 's,/usr/bin/env ruby,${RUBY},'
>> > >> +MODRUBY_RUBY_ADJ=    perl -pi -e 's,/usr/bin/env ruby,${RUBY},;' \
>> > >> +                              -e 's,/usr/bin/ruby([\s]+.*)?,${RUBY}\1,'
>> > >>  MODRUBY_ADJ_FILES?=
>> > >>  .if !empty(MODRUBY_ADJ_FILES)
>> > >>  MODRUBY_ADJ_REPLACE= for pat in ${MODRUBY_ADJ_FILES:QL}; do \
>> > >>
>> > >
>> > > Do we want to restrict this to the first lines in the file, like in 
>> > > tcl.port.mk?
>> >
>> > Well, MOD_ADJ_FILES is already different from other modules enough: it
>> > accepts file name patterns searched through the whole WRKSRC instead
>> > of just file names/patterns. But I don't want to fix that for now.
>> >
>> > I'm doubt this will cost more speed: ruby files are usually small, and
>> > I/O is slow itself. But I could not prove myself with numbers. Anyway,
>> > this is how things are working now, so more changes should be done
>> > separately...
>>
>> My thought is not so much about speed, it's about patching unexpected
>> instances of the text. I do wonder why it isn't restricted to #! lines too
>> actually.
>
> FWIW, sthen, you did OK it when it went in (ruby.port.mk r1.28). :)
>
> I'm concerned about unexpected changes as well.  python.port.mk
> restricts the change to the first line, and that is probably a wise
> decision.  Maybe we should make ruby.port.mk more similar to
> python.port.mk:
>
> MODRUBY_RUBY_ADJ =        perl -pi \
>                 -e '$$. == 1 && s|^.*env ruby.*$$|\#!${RUBY}|;' \
>                 -e '$$. == 1 && s|^.*bin/ruby.*$$|\#!${RUBY}|;' \
>                 -e 'close ARGV if eof;'
>
> I looked at tcl.port.mk, and they have something slightly more complex,
> which does not change just the shebang lines, but also some exec calls
> in the first 30 lines.  I don't think we want that for ruby.

Personally I (or, more technically, my ports) will be fine either
way... Thinking about generic framework for such handling, but don't
hold your breath (at least until weekend).

>> A bulk build won't detect whether this changes packages (and so requiring
>> a REVISION bump).
>
> Correct.  All ports that use MODRUBY_ADJ_FILES need to have their WRKSRC
> scanned to see if this causes changes.  I can probably do that analysis
> later today.

--
  WBR,
  Vadim Zhukov

Reply via email to