Date: Mon, 28 Jan 2013 02:15:33 +0900 (JST) From: Yasuhiro KIMURA <yasu@utahime.org> To: freebsd-ports@freebsd.org Subject: Issue about adapting japanese/ruby-mecab to new options framework Message-ID: <20130128.021533.335602238.yasu@utahime.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130128.021533.335602238.yasu>