From owner-freebsd-ports-bugs@FreeBSD.ORG Sat Nov 12 00:00:40 2011 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7AD52106566B for ; Sat, 12 Nov 2011 00:00:40 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 5FDA88FC14 for ; Sat, 12 Nov 2011 00:00:40 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id pAC00elJ071771 for ; Sat, 12 Nov 2011 00:00:40 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id pAC00dWr071753; Sat, 12 Nov 2011 00:00:39 GMT (envelope-from gnats) Date: Sat, 12 Nov 2011 00:00:39 GMT Message-Id: <201111120000.pAC00dWr071753@freefall.freebsd.org> To: freebsd-ports-bugs@FreeBSD.org From: Hilko Meyer Cc: Subject: Re: ports/162447: net/isc-dhcp41-server: starting with rc-script fails X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Hilko Meyer List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Nov 2011 00:00:40 -0000 The following reply was made to PR ports/162447; it has been noted by GNATS. From: Hilko Meyer To: Douglas Thrift Cc: bug-followup@FreeBSD.org Subject: Re: ports/162447: net/isc-dhcp41-server: starting with rc-script fails Date: Sat, 12 Nov 2011 00:57:33 +0100 ----=_djdrb75k8jt6f308j24merm59c6nhmvoo4.MFSBCHJLHS Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Douglas Thrift schrieb: >Hello, > >It does not look like you have attached the correct patch? Could you >please reply with the correct patch? Hi, I looked at the problem again and I think I know what happens. The relevant parts of the rc-script are: start_precmd=3Ddhcpd_precmd restart_precmd=3D"dhcpd_checkconfig" dhcpd_precmd () { setup_umask setup_chroot setup_chuser setup_leases setup_flags } dhcpd_checkconfig () { local rc_flags_mod setup_flags rc_flags_mod=3D"$rc_flags" # Eliminate '-q' flag if it is present case "$rc_flags" in *-q*) rc_flags_mod=3D`echo "${rc_flags}" | sed -Ee 's/(^-q | -q | -q$)//'` ;; esac if ! ${command} -t -q ${rc_flags_mod}; then err 1 "`${command} -t ${rc_flags_mod}` Configuration file sanity check failed" fi } I used > /usr/local/etc/rc.d/isc-dhcpd restart when dhcpd wasn't running and the chroot was empty. If I understand it correctly it can't work, because in the rc-script dhcpd_checkconfig () is executed before dhcpd_precmd () where the chroot is created. But if dhcpd is called with the -chroot option it looks in the chroot for the config file. So, I think the solution is to strip out the '-chroot' with an extended sed expression so that dhcpd -t ${rc_flags_mod} will always test the config file that will be copied to the chroot. I've attached a patch with a modified sed expression. Tested here. Please review with care. My sed fu isn't too strong. ;-) Another thing I noticed is that dhcpd_checkconfig is only called by 'isc-dhcpd restart', not by 'isc-dhcpd start'. Moving the call of dhcpd_checkconfig to dhcpd_precmd. I've attached a second patch with this. Position in dhcpd_precmd was chosen arbitrary. If dhcpd_checkconfig is called after setup_chroot it isn't necessary to change the sed expression to fix my problem. Nevertheless I think both fixes should be combined. bye, Hilko ----=_djdrb75k8jt6f308j24merm59c6nhmvoo4.MFSBCHJLHS Content-Type: application/octet-stream; name=isc-dhcpd-diff.1 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=isc-dhcpd-diff.1 LS0tIGlzYy1kaGNwZC5vcmlnCTIwMTEtMTEtMTEgMTk6MjY6MDcuMDAwMDAwMDAwICswMTAwCisr KyBpc2MtZGhjcGQuMQkyMDExLTExLTExIDE5OjI4OjI0LjAwMDAwMDAwMCArMDEwMApAQCAtNDkz LDcgKzQ5Myw3IEBACiAJcmNfZmxhZ3NfbW9kPSIkcmNfZmxhZ3MiCiAgICAgICAgICMgRWxpbWlu YXRlICctcScgZmxhZyBpZiBpdCBpcyBwcmVzZW50CiAJY2FzZSAiJHJjX2ZsYWdzIiBpbgotCSot cSopCXJjX2ZsYWdzX21vZD1gZWNobyAiJHtyY19mbGFnc30iIHwgc2VkIC1FZSAncy8oXi1xIHwg LXEgfCAtcSQpLy8nYCA7OworCSotcSopCXJjX2ZsYWdzX21vZD1gZWNobyAiJHtyY19mbGFnc30i IHwgc2VkIC1FZSAncy8oXi1xIHwgLXEgfCAtcSR8LWNocm9vdCBbXC9hLXowLTldKykvL2cnYCA7 OwogCWVzYWMKICAgICAgICAgaWYgISAke2NvbW1hbmR9IC10IC1xICR7cmNfZmxhZ3NfbW9kfTsg dGhlbgogICAgICAgICAgICAgICAgIGVyciAxICJgJHtjb21tYW5kfSAtdCAke3JjX2ZsYWdzX21v ZH1gIENvbmZpZ3VyYXRpb24gZmlsZSBzYW5pdHkgY2hlY2sgZmFpbGVkIgo= ----=_djdrb75k8jt6f308j24merm59c6nhmvoo4.MFSBCHJLHS Content-Type: application/octet-stream; name=isc-dhcpd-diff.2 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=isc-dhcpd-diff.2 LS0tIGlzYy1kaGNwZC5vcmlnCTIwMTEtMTEtMTEgMTk6MjY6MDcuMDAwMDAwMDAwICswMTAwCisr KyBpc2MtZGhjcGQuMgkyMDExLTExLTExIDE5OjI5OjA5LjAwMDAwMDAwMCArMDEwMApAQCAtNDc5 LDYgKzQ3OSw3IEBACiAJc2V0dXBfY2h1c2VyCiAJc2V0dXBfbGVhc2VzCiAJc2V0dXBfZmxhZ3MK KwlkaGNwZF9jaGVja2NvbmZpZwogfQogCiBkaGNwZF9wb3N0Y21kICgpCkBAIC01MTgsNyArNTE5 LDYgQEAKIGV2YWwgInJlcXVpcmVkX2ZpbGVzPVwkeyR7bmFtZX1fY29uZn0iCiBzdGFydF9wcmVj bWQ9ZGhjcGRfcHJlY21kCiBzdG9wX3Bvc3RjbWQ9ZGhjcGRfcG9zdGNtZAotcmVzdGFydF9wcmVj bWQ9ImRoY3BkX2NoZWNrY29uZmlnIgogdW5pbnN0YWxsX2NtZD1kaGNwZF91bmluc3RhbGwKIGV4 dHJhX2NvbW1hbmRzPSJ1bmluc3RhbGwiCiAK ----=_djdrb75k8jt6f308j24merm59c6nhmvoo4.MFSBCHJLHS--