Bug 445027 - Review Request: dnrd - A caching, forwarding DNS proxy server
Summary: Review Request: dnrd - A caching, forwarding DNS proxy server
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Kevin Fenzi
QA Contact: Fedora Extras Quality Assurance
Depends On:
TreeView+ depends on / blocked
Reported: 2008-05-02 19:19 UTC by Rakesh Pandit
Modified: 2008-08-12 18:25 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2008-08-12 03:01:04 UTC
Type: ---
kevin: fedora-review+
kevin: fedora-cvs+

Attachments (Terms of Use)

Description Rakesh Pandit 2008-05-02 19:19:40 UTC
Spec URL: 


dnrd is a proxying nameserver. It forwards DNS queries to the appropriate nameserver, but can also act as the primary nameserver for a subnet behind a firewall. It also has features such as caching DNS requests, support for DNS servers, cache poisoning prevention, TCP support, etc..

This is my first package submission and I am seeking a sponsor.

Comment 1 Jason Tibbitts 2008-06-06 18:00:59 UTC
This fails to build for me in mock:

+ dos2unix COPYING
/var/tmp/rpm-tmp.50471: line 39: dos2unix: command not found

mock (and hence the Fedora buildsystem) will build packages in a minimal
environment, consisting of a few packages (listed in the Exceptions section of
http://fedoraproject.org/wiki/Packaging/Guidelines#BuildRequires) plus any
packages listed in your BuildRequires:.  This means that if you want to call
something like dos2unix, you need to specify a dependency on it manually:
  BuildRequires: dos2unix
or you can use
  sed -i 's/\r//' COPYING
instead which has no dependencies.

The package builds fine if I make either of those two changes.

It's strongly preferred that if your going to use macro forms like %{__install}
 (on the make install line) that you use them everywhere.  Alternately, just using:
  make install INSTALL="install -p" DESTDIR=$RPM_BUILD_ROOT
works fine and is less typing, although to be honest I don't actually see any
dfference when I change that to:
  make install DESTDIR=$RPM_BUILD_ROOT
Perhaps I'm missing something.

I'm confused about how dnrd itself is to be used.  If it's a system daemon,
shouldn't it have initscripts and such?

The executable will expect to see configuration files in /etc/dnrd, so I'd
expect that this package would provide that directory.  Is it possible to
provide any kind of initial configuration file that would be useful?  Perhaps a
caching-only server if one can be setup without requiring local customization.

Comment 2 Rakesh Pandit 2008-06-16 20:15:39 UTC
>or you can use
>  sed -i 's/\r//' COPYING
>instead which has no dependencies.


>  make install INSTALL="install -p" DESTDIR=$RPM_BUILD_ROOT
>works fine and is less typing, although to be honest I don't actually see any
>dfference when I change that to:
>  make install DESTDIR=$RPM_BUILD_ROOT
>Perhaps I'm missing something.

Done (make install INSTALL="install -p" DESTDIR=$RPM_BUILD_ROOT)

As http://fedoraproject.org/wiki/Packaging/Guidelines#Timestamps
using 'install -p' saves files' timestamps.

Dnrd has to be used with command line arguments, it does not have any
configuration files as such now. It just uses master and blacklist files for
master DNS and blocking respectively.

There are only few values like cache marks, or DNRD chroot directory which are
configurable. No configuration file is supported right now. 

New SPEC: http://rakesh.gnulinuxcentar.org/dnrd.spec
New SRPM: http://rakesh.gnulinuxcentar.org/dnrd-2.20.3-1.fc8.src.rpm

> expect package would provide that directory (/etc/dnrd/)


Rakesh Pandit

Comment 3 Rakesh Pandit 2008-06-17 06:47:03 UTC
dnrd does not resolve dns lookups. It only forwards the requests to an
upstream server. So, we cannot have a default config for
dnrd. User needs to set up upstream DNS server from ISP.

Yes it should have init.d script as it is a daemon 
I will get one init.d script in package ASAP

Rakesh Pandit

Comment 4 Rakesh Pandit 2008-06-17 23:42:20 UTC
>Yes it should have init.d script as it is a daemon 
>I will get one init.d script in package ASAP

Updated with init.d script and an example conf sample file

New SRPM: http://rakesh.gnulinuxcentar.org/dnrd-2.20.3-1.fc8.src.rpm
New SPEC http://rakesh.gnulinuxcentar.org/dnrd.spec

Comment 5 Rakesh Pandit 2008-07-14 17:32:28 UTC
Corrected release number:
SPEC: http://rakesh.fedorapeople.org/spec/dnrd.spec
SRPM: http://rakesh.fedorapeople.org/srpm/dnrd-2.20.3-2.fc8.src.rpm

Comment 6 Kevin Fenzi 2008-07-15 00:17:06 UTC
I would be happy to review this package. Look for a full review in a bit.

Comment 7 Kevin Fenzi 2008-07-15 01:53:06 UTC
OK - Package meets naming and packaging guidelines
OK - Spec file matches base package name.
OK - Spec has consistant macro usage.
OK - Meets Packaging Guidelines.
See below - License
See below - License field in spec matches
See below - License file included in package
OK - Spec in American English
OK - Spec is legible.
OK - Sources match upstream md5sum:
41c9b070aae8ed403fc8c2aac7ab157c  dnrd-2.20.3.tar.gz
41c9b070aae8ed403fc8c2aac7ab157c  dnrd-2.20.3.tar.gz.orig
OK - BuildRequires correct
OK - Package has %defattr and permissions on files is good.
OK - Package has a correct %clean section.
OK - Package has correct buildroot
OK - Package is code or permissible content.
OK - Doc subpackage needed/used.
OK - Packages %doc files don't affect runtime.
OK - Package has rm -rf RPM_BUILD_ROOT at top of %install

OK - Package compiles and builds on at least one arch.
See below - Package has no duplicate files in %files.
OK - Package doesn't own any directories other packages own.
OK - Package owns all the directories it creates.
OK - No rpmlint output.
OK - final provides and requires are sane:


OK - Should build in mock.
OK - Should build on all supported archs
OK - Should have sane scriptlets.
OK - Should have dist tag
OK - Should package latest version


1. There looks to be a slight license issue.
The qid.h file appears to be under just the GPLv2, while everything else is either
GPLv2+ or "Public domain". So, the entire package looks like it will be under GPLv2.
You might however talk to upstream about this and see thats what the intend.
They might have just missed a file in a relicense.

2. You have a file listed twice in %files:
warning: File listed twice: /etc/dnrd/dnrd.conf
You probibly want to make the %{_sysconfdir}/%{name} just use a %dir to only include
the directory there.

Comment 8 Rakesh Pandit 2008-07-15 14:14:41 UTC
1. Fixed 

I discussed with upstream today in mailing list and confirmed that GPLv2 is 
fine for this release. They have corrected it, so that next release has no 

2. Fixed

SPEC: http://rakesh.fedorapeople.org/spec/dnrd.spec
SRPM: http://rakesh.fedorapeople.org/srpm/dnrd-2.20.3-3.fc8.src.rpm

Comment 9 Kevin Fenzi 2008-07-15 22:23:34 UTC
Humm... the spec still shows 'GPLv2+'. That should be 'GPLv2'. ;) 

Comment 11 Kevin Fenzi 2008-07-17 00:25:37 UTC
That solves all the issues I see here, so this package is APPROVED. 

Comment 12 Rakesh Pandit 2008-07-17 02:33:34 UTC
New Package CVS Request
Package Name: dnrd
Short Description: A caching, forwarding DNS proxy server
Owners: rakesh
Branches: F-8 F-9
InitialCC: rakesh
Cvsextras Commits: yes

Comment 13 Kevin Fenzi 2008-07-17 18:25:57 UTC
cvs done.

Comment 14 Fedora Update System 2008-07-18 04:42:24 UTC
dnrd-2.20.3-4.fc8 has been submitted as an update for Fedora 8

Comment 15 Fedora Update System 2008-07-18 04:43:17 UTC
dnrd-2.20.3-4.fc9 has been submitted as an update for Fedora 9

Comment 16 Fedora Update System 2008-07-19 09:43:12 UTC
dnrd-2.20.3-4.fc8 has been pushed to the Fedora 8 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update dnrd'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F8/FEDORA-2008-6534

Comment 17 Fedora Update System 2008-08-12 18:21:38 UTC
dnrd-2.20.3-4.fc8 has been pushed to the Fedora 8 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 18 Fedora Update System 2008-08-12 18:25:16 UTC
dnrd-2.20.3-4.fc9 has been pushed to the Fedora 9 stable repository.  If problems still persist, please make note of it in this bug report.

Note You need to log in before you can comment on or make changes to this bug.