Re: Issue about adapting japanese/ruby-mecab to new options framework
From: Jason Helfman j...@freebsd.org Subject: Re: Issue about adapting japanese/ruby-mecab to new options framework Date: Sun, 27 Jan 2013 11:40:04 -0800 You could look at setting OPTIONSFILE in the ports Makefile, itself. For instance, this is set in net/rubygem-net-ssh. Although this may not be the exact entry, this is an example you can work with to get it to work as it should. OPTIONSFILE?= ${PORT_DBDIR}/rubygem-${PORTNAME}/options From: Scot Hetzel swhet...@gmail.com Subject: Re: Issue about adapting japanese/ruby-mecab to new options framework Date: Sun, 27 Jan 2013 13:41:00 -0600 You could add OPTIONSFILE to japanese/ruby-mecab/Makefile as: OPTIONSFILE= ${PORT_DBDIR}/ruby-mecab/options This way it will always find it's own options file. When following line is added in japanese/ruby-mecab/Makefile, options dialog doesn't displayed only once: OPTIONSFILE=${PORT_DBDIR}/ja-ruby-mecab/options But when following line is added, it displayed every time: OPTIONSFILE= ${PORT_DBDIR}/ja-${RUBY_PKGNAMEPREFIX}${PORTNAME}/options Does it mean RUBY_PKGNAMEPREFIX cannot be used to assign OPTIONSFILE? If answer is yes then the former is best solution. But if possible I would like to reflect the version of ruby on OPTIONSFILE. --- Yasuhiro KIMURA ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Issue about adapting japanese/ruby-mecab to new options framework
On Sun, Jan 27, 2013 at 9:15 AM, Yasuhiro KIMURA y...@utahime.org wrote: Hello all, I adapted japanese/ruby-mecab to new options framework and sent following PR. http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/175258 But after submitting I found a issue that options setting dialog is always displayed even if options save file is already created. According to the output of 'make' with '-d' option, following things seem to happen: 1. PKGNAMEPREFIX variable is assigned to ja- and that causes OPTIONSFILE variable to be expanded to /var/db/ports/ja-mecab/options. 2. /var/db/ports/ja-mecab/options is included as options save file. 3. PKGNAMEPREFIX is re-assigned to ja-ruby19- and that causes OPTIONFILE to be expanded to /var/db/ports/ja-ruby-mecab/options. 4. Options dialog is invoked and result is saved to /var/db/ports/ja-ruby-mecab/options. 5. Since input and output files of options setting are different, dialog is displayed every time 'make' is invoked. And below is detail: 01. RUBY_DEFAULT_VER is assigned to 1.9 in /etc/make.conf of my machine. 02. PORTNAME is assigned to mecab in japanese/ruby-mecab/Makefile. 03. PKGNAMEPREFIX is assigned to ja- in japanese/Makefile.inc. 04. PORT_DBDIR is assigned to /var/db/ports in Mk/bsd.port.mk. 05. UNIQUENAME is assigned to ${PKGNAMEPREFIX}${PORTNAME} in Mk/bsd.port.mk. 06. OPTIONSFILE is assigned to ${PORT_DBDIR}/${UNIQUENAME}/options in Mk/bsd.options.mk. 07. Check is done if ${OPTIONSFILES} exists in Mk/bsd.options.mk. At this point ${OPTIONSFILES} is expanded to /var/db/ports/ja-mecab/options. So file named /var/db/ports/ja-mecab/options is checked. Since japanese/ruby-mecab is depend on japanese/mecab, this file usually exists. So this file is included as saved options file of japanese/ruby-mecab. 08. PKGNAMEPREFIX is assigned with expansion (':=' is used) to ${PKGNAMEPREFIX}${RUBY_PKGNAMEPREFIX} in japanese/ruby-mecab/Makefile. 09. RUBY_RELVERSION is assigned to 1.9.3 in Mk/bsd.ruby.mk. 10. RUBY_PATCHLEVEL is assigned to 327 in Mk/bsd.ruby.mk. 11. RUBY_VERSION is assigned to ${RUBY_RELVERSION}.${RUBY_PATCHLEVEL} in Mk/bsd.ruby.mk. 12. RUBY_VER is assigned to ${RUBY_VERSION:C/([[:digit:]]+\.[[:digit:]]+).*/\1/} in Mk/bsd.ruby.mk. 13. RUBY_SUFFIX is assigned to ${RUBY_VER:S/.//} in Mk/bsd.ruby.mk. 14. RUBY_PKGNAMEPREFIX is assigned to ruby${RUBY_SUFFIX}- in Mk/ bsd.ruby.mk. 15. /usr/bin/dialog is invoked to show options setting dialog. 16. Result of step 15 is saved to ${OPTIONSFILE}. At this point ${OPTIONSFILE} is expanded to /var/db/ports/ja-ruby19-mecab/options. So file named /var/db/ports/ja-ruby19-mecab/options is created and options setting is saved to it. 17. Now options settings are saved to /var/db/ports/ja-ruby19-mecab/options at step 16, and it is different from the file included at step 07. So it cause step 01 to 16 to be repeated every time 'make' is invoked. And now, how should I fix this issue? Is it possible to fix it by only patching japanese/ruby-mecab/Makefile? Or are some changes of Mk/bsd.*.mk needed? Any suggestion is welcome. Best regards. --- Yasuhiro KIMURA You could look at setting OPTIONSFILE in the ports Makefile, itself. For instance, this is set in net/rubygem-net-ssh. Although this may not be the exact entry, this is an example you can work with to get it to work as it should. OPTIONSFILE?= ${PORT_DBDIR}/rubygem-${PORTNAME}/options -jgh ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org
Re: Issue about adapting japanese/ruby-mecab to new options framework
On Sun, Jan 27, 2013 at 11:15 AM, Yasuhiro KIMURA y...@utahime.org wrote: Hello all, I adapted japanese/ruby-mecab to new options framework and sent following PR. http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/175258 But after submitting I found a issue that options setting dialog is always displayed even if options save file is already created. According to the output of 'make' with '-d' option, following things seem to happen: 1. PKGNAMEPREFIX variable is assigned to ja- and that causes OPTIONSFILE variable to be expanded to /var/db/ports/ja-mecab/options. 2. /var/db/ports/ja-mecab/options is included as options save file. 3. PKGNAMEPREFIX is re-assigned to ja-ruby19- and that causes OPTIONFILE to be expanded to /var/db/ports/ja-ruby-mecab/options. 4. Options dialog is invoked and result is saved to /var/db/ports/ja-ruby-mecab/options. 5. Since input and output files of options setting are different, dialog is displayed every time 'make' is invoked. And below is detail: 01. RUBY_DEFAULT_VER is assigned to 1.9 in /etc/make.conf of my machine. 02. PORTNAME is assigned to mecab in japanese/ruby-mecab/Makefile. 03. PKGNAMEPREFIX is assigned to ja- in japanese/Makefile.inc. 04. PORT_DBDIR is assigned to /var/db/ports in Mk/bsd.port.mk. 05. UNIQUENAME is assigned to ${PKGNAMEPREFIX}${PORTNAME} in Mk/bsd.port.mk. 06. OPTIONSFILE is assigned to ${PORT_DBDIR}/${UNIQUENAME}/options in Mk/bsd.options.mk. 07. Check is done if ${OPTIONSFILES} exists in Mk/bsd.options.mk. At this point ${OPTIONSFILES} is expanded to /var/db/ports/ja-mecab/options. So file named /var/db/ports/ja-mecab/options is checked. Since japanese/ruby-mecab is depend on japanese/mecab, this file usually exists. So this file is included as saved options file of japanese/ruby-mecab. 08. PKGNAMEPREFIX is assigned with expansion (':=' is used) to ${PKGNAMEPREFIX}${RUBY_PKGNAMEPREFIX} in japanese/ruby-mecab/Makefile. 09. RUBY_RELVERSION is assigned to 1.9.3 in Mk/bsd.ruby.mk. 10. RUBY_PATCHLEVEL is assigned to 327 in Mk/bsd.ruby.mk. 11. RUBY_VERSION is assigned to ${RUBY_RELVERSION}.${RUBY_PATCHLEVEL} in Mk/bsd.ruby.mk. 12. RUBY_VER is assigned to ${RUBY_VERSION:C/([[:digit:]]+\.[[:digit:]]+).*/\1/} in Mk/bsd.ruby.mk. 13. RUBY_SUFFIX is assigned to ${RUBY_VER:S/.//} in Mk/bsd.ruby.mk. 14. RUBY_PKGNAMEPREFIX is assigned to ruby${RUBY_SUFFIX}- in Mk/bsd.ruby.mk. 15. /usr/bin/dialog is invoked to show options setting dialog. 16. Result of step 15 is saved to ${OPTIONSFILE}. At this point ${OPTIONSFILE} is expanded to /var/db/ports/ja-ruby19-mecab/options. So file named /var/db/ports/ja-ruby19-mecab/options is created and options setting is saved to it. 17. Now options settings are saved to /var/db/ports/ja-ruby19-mecab/options at step 16, and it is different from the file included at step 07. So it cause step 01 to 16 to be repeated every time 'make' is invoked. And now, how should I fix this issue? Is it possible to fix it by only patching japanese/ruby-mecab/Makefile? Or are some changes of Mk/bsd.*.mk needed? Any suggestion is welcome. You could add OPTIONSFILE to japanese/ruby-mecab/Makefile as: OPTIONSFILE=${PORT_DBDIR}/ruby-mecab/options This way it will always find it's own options file. Scot -- DISCLAIMER: No electrons were maimed while sending this message. Only slightly bruised. ___ freebsd-ports@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to freebsd-ports-unsubscr...@freebsd.org