From owner-freebsd-ports@FreeBSD.ORG Sun Jan 27 17:17:14 2013 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 9B197894 for ; Sun, 27 Jan 2013 17:17:14 +0000 (UTC) (envelope-from yasu@utahime.org) Received: from gate.utahime.jp (gate.utahime.jp [183.180.29.210]) by mx1.freebsd.org (Postfix) with ESMTP id 484B7CBE for ; Sun, 27 Jan 2013 17:17:13 +0000 (UTC) Received: from eastasia.home.utahime.org (eastasia.home.utahime.org [192.168.174.1]) by gate.utahime.jp (Postfix) with ESMTP id 3B16561F9D; Mon, 28 Jan 2013 02:17:12 +0900 (JST) Received: from eastasia.home.utahime.org (localhost [127.0.0.1]) by localhost-backdoor.home.utahime.org (Postfix) with ESMTP id 0E2AC4E62C; Mon, 28 Jan 2013 02:17:12 +0900 (JST) Received: from localhost (rolling.home.utahime.org [192.168.174.6]) by eastasia.home.utahime.org (Postfix) with ESMTPA id D43354E61C; Mon, 28 Jan 2013 02:17:11 +0900 (JST) Date: Mon, 28 Jan 2013 02:15:33 +0900 (JST) Message-Id: <20130128.021533.335602238.yasu@utahime.org> To: freebsd-ports@freebsd.org Subject: Issue about adapting japanese/ruby-mecab to new options framework From: Yasuhiro KIMURA X-Mailer: Mew version 6.5 on Emacs 24.2 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Jan 2013 17:17:14 -0000 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