Fedora Account System
Red Hat Associate
Red Hat Customer
Spec Name or Url: http://files.hadess.net/redhat/perso/spec/nss-mdns.spec SRPM Name or Url: http://files.hadess.net/redhat/perso/source/nss-mdns-0.6-1.src.rpm Description: nss-mdns is a plugin for the GNU Name Service Switch (NSS) functionality of the GNU C Library (glibc) providing host name resolution via Multicast DNS (aka Zeroconf, aka Apple Rendezvous), effectively allowing name resolution by common Unix/Linux programs in the ad-hoc mDNS domain .local. nss-mdns provides client functionality only, which means that you have to run a mDNS responder daemon seperately from nss-mdns if you want to register the local host name via mDNS (e.g. HOWL).
Updated to 0.7: http://files.hadess.net/redhat/perso/source/nss-mdns-0.7-1.src.rpm http://files.hadess.net/redhat/perso/spec/nss-mdns.spec
Can't connect to host when I tried to download the files. Do you have somewhere else where they can be found?
Should be available again.
Would be nice to have this in FC! Any reason why its not in core/extras?
(In reply to comment #4) > Would be nice to have this in FC! > Any reason why its not in core/extras? It has not been reviewed for inclusion in Fedora Extras yet.
Build failed on x86_64 + mv /var/tmp/nss-mdns-0.7-1-buildroot/usr/lib/ /var/tmp/nss-mdns-0.7-1-buildroot/ mv: cannot stat `/var/tmp/nss-mdns-0.7-1-buildroot/usr/lib/': No such file or directory Macros can help with this. Also replace /lib
Fixed in: http://files.hadess.net/redhat/perso/spec/nss-mdns.spec http://files.hadess.net/redhat/perso/source/nss-mdns-0.7-2.src.rpm
One of the requirements to get this included from Ulrich was that lookups are never done directly by the nss-mdns plugin, and only through avahi where it would be cached. I posted a patch for that to Lennart, as well as support for links to generate the text documentation. I would need to update the package when a new version of nss-mdns is released.
(In reply to comment #8) > One of the requirements to get this included from Ulrich was that lookups are > never done directly by the nss-mdns plugin, and only through avahi where it > would be cached. Lennart fixed this properly in nss-mdns 0.8 Pancrazio `Ezio' de Mauro <pdemauro> also wrote a Perl script that will be more solid than the previous scriptlets to add and remove the mdnsminimal and mdns lines from /etc/nsswitch.conf http://files.hadess.net/redhat/perso/spec/nss-mdns.spec and http://files.hadess.net/redhat/perso/source/nss-mdns-0.8-2.src.rpm
Some links on the previous conversation: https://www.redhat.com/archives/fedora-devel-list/2005-November/msg00805.html https://www.redhat.com/archives/fedora-devel-list/2005-December/msg00249.html
Readding Chris' blocker
The original discussion on GMane, easier to follow. http://article.gmane.org/gmane.linux.redhat.fedora.devel/30633
rpmlint: W: nss-mdns summary-not-capitalized glibc plugin for .local name resolution W: nss-mdns summary-not-capitalized glibc plugin for .local name resolution Ignore, keep glibc. E: nss-mdns shlib-with-non-pic-code /lib64/libnss_mdns.so.2 E: nss-mdns shlib-with-non-pic-code /lib64/libnss_mdns6_minimal.so.2 E: nss-mdns shlib-with-non-pic-code /lib64/libnss_mdns6.so.2 E: nss-mdns shlib-with-non-pic-code /lib64/libnss_mdns4_minimal.so.2 E: nss-mdns shlib-with-non-pic-code /lib64/libnss_mdns4.so.2 E: nss-mdns shlib-with-non-pic-code /lib64/libnss_mdns_minimal.so.2 I don't know enough linker-fu to fix this. E: nss-mdns non-executable-script /usr/libexec/nss-mdns-set.pl 0644 chmod +x W: nss-mdns percent-in-%post W: nss-mdns percent-in-%preun Eh? Probably the %{_libexec} W: nss-mdns dangerous-command-in-%post mv W: nss-mdns dangerous-command-in-%preun mv W: nss-mdns one-line-command-in-%postun /sbin/ldconfig
On second thought others can probably do this review better and get it through. Resetting to FE-NEW. Anybody CCed want to review this?
I would be happy to review this, with the understanding that I have no hope in hell of actually testing it properly. However, it would be nice to see some response to the issues in comment #13. Also the URLs to the spec and src.rpm don't seem to be working.
I can't download the srpm, could you fix this ?
When trying this out on x86_64, I found that installing the 64-bit version and changing the nsswitch file to use nss-mdns would break 32-bit name lookup. I'm guessing that the 32-bit version is definitely required to be installed when the 64-bit version is? How would the build system allow for this? Requires: %{name}.i386 ?
A bit outdated, but packages are there now: http://www.hadess.net/tmp/nss-mdns/
Got following errors while installing: -- begin dump -- [wahjava@chatteau SPECS]$ sudo rpm -ivh ../RPMS/i686/nss-mdns-0.8-2.i686.rpm Password: Preparing... ########################################### [100%] 1:nss-mdns ########################################### [100%] /var/tmp/rpm-tmp.58781: line 3: fg: no job control error: %post(nss-mdns-0.8-2.i686) scriptlet failed, exit status 1 [wahjava@chatteau SPECS]$ sudo rpm -ivh ../RPMS/x86_64/nss-mdns-0.8-2.x86_64.rpm Preparing... ########################################### [100%] 1:nss-mdns ########################################### [100%] /var/tmp/rpm-tmp.91686: line 3: fg: no job control error: %post(nss-mdns-0.8-2.x86_64) scriptlet failed, exit status 1 -- end dump --
(In reply to comment #19) > Got following errors while installing: > -- begin dump -- > [wahjava@chatteau SPECS]$ sudo rpm -ivh ../RPMS/i686/nss-mdns-0.8-2.i686.rpm > Password: > Preparing... ########################################### [100%] > 1:nss-mdns ########################################### [100%] > /var/tmp/rpm-tmp.58781: line 3: fg: no job control > error: %post(nss-mdns-0.8-2.i686) scriptlet failed, exit status 1 > [wahjava@chatteau SPECS]$ sudo > rpm -ivh ../RPMS/x86_64/nss-mdns-0.8-2.x86_64.rpm > Preparing... ########################################### [100%] > 1:nss-mdns ########################################### [100%] > /var/tmp/rpm-tmp.91686: line 3: fg: no job control > error: %post(nss-mdns-0.8-2.x86_64) scriptlet failed, exit status 1 > -- end dump -- Could you please try to re-run the rpm command with -vvv to see what exact command it's running, and try to run the command by hand? I believe it's because it's trying to update your nsswitch.conf, and can't parse it.
-- begin dump -- [root@lap0 ~]# wget http://www.hadess.net/tmp/nss-mdns/nss-mdns-0.8-2.i386.rpm --23:42:08-- http://www.hadess.net/tmp/nss-mdns/nss-mdns-0.8-2.i386.rpm Resolving www.hadess.net... 216.243.209.211 Connecting to www.hadess.net|216.243.209.211|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 26115 (26K) [application/x-rpm] Saving to: `nss-mdns-0.8-2.i386.rpm' 100%[===================================================================================>] 26,115 13.1K/s in 1.9s 23:42:11 (13.1 KB/s) - `nss-mdns-0.8-2.i386.rpm' saved [26115/26115] [root@lap0 ~]# rpm -ivvv nss-mdns-0.8-2.i386.rpm D: ============== nss-mdns-0.8-2.i386.rpm D: Expected size: 26115 = lead(96)+sigs(180)+pad(4)+data(25835) D: Actual size: 26115 D: nss-mdns-0.8-2.i386.rpm: Header SHA1 digest: OK (2af72aea32fdac6af75793ad98824d0e916d8a17) D: added binary package [0] D: found 0 source and 1 binary packages D: opening db environment /var/lib/rpm/Packages joinenv D: opening db index /var/lib/rpm/Packages rdonly mode=0x0 D: locked db index /var/lib/rpm/Packages D: ========== +++ nss-mdns-0.8-2 i386/linux 0x1 D: opening db index /var/lib/rpm/Depends create mode=0x0 D: opening db index /var/lib/rpm/Basenames rdonly mode=0x0 D: opening db index /var/lib/rpm/Pubkeys rdonly mode=0x0 D: read h# 35 Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 D: Requires: /bin/sh YES (db files) D: Requires: /bin/sh YES (cached) D: Requires: /bin/sh YES (cached) D: opening db index /var/lib/rpm/Providename rdonly mode=0x0 D: read h# 18 Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 D: Requires: libc.so.6 YES (db provides) D: read h# 18 Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 D: Requires: libc.so.6(GLIBC_2.0) YES (db provides) D: read h# 18 Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 D: Requires: libc.so.6(GLIBC_2.1) YES (db provides) D: read h# 18 Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 D: Requires: libc.so.6(GLIBC_2.1.3) YES (db provides) D: read h# 18 Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 D: Requires: libc.so.6(GLIBC_2.3.4) YES (db provides) D: read h# 18 Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 D: Requires: libc.so.6(GLIBC_2.4) YES (db provides) D: read h# 117 Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 D: Requires: perl YES (db provides) D: Requires: rpmlib(CompressedFileNames) <= 3.0.4-1 YES (rpmlib provides) D: Requires: rpmlib(PayloadFilesHavePrefix) <= 4.0-1 YES (rpmlib provides) D: opening db index /var/lib/rpm/Conflictname rdonly mode=0x0 D: closed db index /var/lib/rpm/Pubkeys D: closed db index /var/lib/rpm/Depends D: closed db index /var/lib/rpm/Conflictname D: closed db index /var/lib/rpm/Providename D: closed db index /var/lib/rpm/Basenames D: closed db index /var/lib/rpm/Packages D: closed db environment /var/lib/rpm/Packages D: ========== recording tsort relations D: ========== tsorting packages (order, #predecessors, #succesors, tree, depth, breadth) D: 0 0 0 0 1 0 +nss-mdns-0.8-2.i386 D: installing binary packages D: opening db environment /var/lib/rpm/Packages joinenv D: opening db index /var/lib/rpm/Packages create mode=0x42 D: mounted filesystems: D: i dev bsize bavail iavail mount point D: 0 0x00000302 4096 4089983 5546087 / D: 1 0x00000003 4096 0 -1 /proc D: 2 0x00000000 4096 0 -1 /sys D: 3 0x0000000b 4096 0 -1 /dev/pts D: 4 0x00000301 1024 85863 26071 /boot D: 5 0x00000013 4096 31845 31844 /dev/shm D: 6 0x00000305 4096 1308736 -1 /media/fatty D: 7 0x00000014 4096 0 -1 /proc/sys/fs/binfmt_misc D: 8 0x00000015 4096 0 -1 /var/lib/nfs/rpc_pipefs D: sanity checking 1 elements D: opening db index /var/lib/rpm/Name create mode=0x42 D: running pre-transaction scripts D: computing 9 file fingerprints Preparing packages for installation... D: computing file dispositions D: opening db index /var/lib/rpm/Basenames create mode=0x42 D: ========== +++ nss-mdns-0.8-2 i386-linux 0x1 D: Expected size: 26115 = lead(96)+sigs(180)+pad(4)+data(25835) D: Actual size: 26115 D: nss-mdns-0.8-2: Header SHA1 digest: OK (2af72aea32fdac6af75793ad98824d0e916d8a17) D: install: nss-mdns-0.8-2 has 9 files, test = 0 nss-mdns-0.8-2 D: ========== Directories not explicitly included in package: D: 0 /lib/ D: 1 /usr/libexec/ D: 2 /usr/share/doc/ D: ========== D: fini 100755 1 ( 0, 0) 11028 /lib/libnss_mdns.so.2;45a52c9a D: fini 100755 1 ( 0, 0) 10460 /lib/libnss_mdns4.so.2;45a52c9a D: fini 100755 1 ( 0, 0) 10236 /lib/libnss_mdns4_minimal.so.2;45a52c9a D: fini 100755 1 ( 0, 0) 10544 /lib/libnss_mdns6.so.2;45a52c9a D: fini 100755 1 ( 0, 0) 10304 /lib/libnss_mdns6_minimal.so.2;45a52c9a D: fini 100755 1 ( 0, 0) 10864 /lib/libnss_mdns_minimal.so.2;45a52c9a D: fini 100644 1 ( 0, 0) 2024 /usr/libexec/nss-mdns-set.pl;45a52c9a D: fini 040755 2 ( 0, 0) 0 /usr/share/doc/nss-mdns-0.8 D: fini 100644 1 ( 0, 0) 10329 /usr/share/doc/nss-mdns-0.8/README;45a52c9a GZDIO: 10 reads, 77184 total bytes in 0.001503 secs D: +++ h# 815 Header SHA1 digest: OK (2af72aea32fdac6af75793ad98824d0e916d8a17) D: adding "nss-mdns" to Name index. D: adding 9 entries to Basenames index. D: opening db index /var/lib/rpm/Group create mode=0x42 D: adding "System Environment/Libraries" to Group index. D: opening db index /var/lib/rpm/Requirename create mode=0x42 D: adding 12 entries to Requirename index. D: opening db index /var/lib/rpm/Providename create mode=0x42 D: adding 7 entries to Providename index. D: opening db index /var/lib/rpm/Dirnames create mode=0x42 D: adding 4 entries to Dirnames index. D: opening db index /var/lib/rpm/Requireversion create mode=0x42 D: adding 12 entries to Requireversion index. D: opening db index /var/lib/rpm/Provideversion create mode=0x42 D: adding 7 entries to Provideversion index. D: opening db index /var/lib/rpm/Installtid create mode=0x42 D: adding 1 entries to Installtid index. D: opening db index /var/lib/rpm/Sigmd5 create mode=0x42 D: adding 1 entries to Sigmd5 index. D: opening db index /var/lib/rpm/Sha1header create mode=0x42 D: adding "2af72aea32fdac6af75793ad98824d0e916d8a17" to Sha1header index. D: opening db index /var/lib/rpm/Filemd5s create mode=0x42 D: adding 9 entries to Filemd5s index. D: install: %post(nss-mdns-0.8-2.i386) asynchronous scriptlet start D: install: %post(nss-mdns-0.8-2.i386) execv(/bin/sh) pid 19103 + /sbin/ldconfig + '%{_libexec}/nss-mdns-set.pl' add /etc/nsswitch.conf /etc/nsswitch.conf.new /var/tmp/rpm-tmp.90274: line 4: fg: no job control D: install: waitpid(19103) rc 19103 status 100 secs 19.072 error: %post(nss-mdns-0.8-2.i386) scriptlet failed, exit status 1 D: running post-transaction scripts D: closed db index /var/lib/rpm/Filemd5s D: closed db index /var/lib/rpm/Sha1header D: closed db index /var/lib/rpm/Sigmd5 D: closed db index /var/lib/rpm/Installtid D: closed db index /var/lib/rpm/Provideversion D: closed db index /var/lib/rpm/Requireversion D: closed db index /var/lib/rpm/Dirnames D: closed db index /var/lib/rpm/Providename D: closed db index /var/lib/rpm/Requirename D: closed db index /var/lib/rpm/Group D: closed db index /var/lib/rpm/Basenames D: closed db index /var/lib/rpm/Name D: closed db index /var/lib/rpm/Packages D: closed db environment /var/lib/rpm/Packages D: May free Score board((nil)) -- end dump -- Hope this helps.
Could you please attach your nsswitch.conf?
-- begin dump -- [root@lap0 ~]# cat /etc/nsswitch.conf # # /etc/nsswitch.conf # # An example Name Service Switch config file. This file should be # sorted with the most-used services at the beginning. # # The entry '[NOTFOUND=return]' means that the search for an # entry should stop if the search in the previous entry turned # up nothing. Note that if the search failed due to some other reason # (like no NIS server responding) then the search continues with the # next entry. # # Legal entries are: # # nisplus or nis+ Use NIS+ (NIS version 3) # nis or yp Use NIS (NIS version 2), also called YP # dns Use DNS (Domain Name Service) # files Use the local files # db Use the local database (.db) files # compat Use NIS on compat mode # hesiod Use Hesiod for user lookups # [NOTFOUND=return] Stop searching if not found so far # # To use db, put the "db" in front of "files" for entries you want to be # looked up first in the databases # # Example: #passwd: db files nisplus nis #shadow: db files nisplus nis #group: db files nisplus nis passwd: files shadow: files group: files #hosts: db files nisplus nis dns hosts: files dns # Example - obey only what nisplus tells us... #services: nisplus [NOTFOUND=return] files #networks: nisplus [NOTFOUND=return] files #protocols: nisplus [NOTFOUND=return] files #rpc: nisplus [NOTFOUND=return] files #ethers: nisplus [NOTFOUND=return] files #netmasks: nisplus [NOTFOUND=return] files bootparams: nisplus [NOTFOUND=return] files ethers: files netmasks: files networks: files protocols: files rpc: files services: files netgroup: files publickey: nisplus automount: files aliases: files nisplus -- end dump --
I'd like to look into this because I think it may be useful for a network configuration I'm investigating, but I'm concerned about the above reports and I also note that there's a 0.9 version out there currently. The package does build, but the install is a bit confused: /var/tmp/rpm-tmp.80770: line 3: fg: no job control error: %post(nss-mdns-0.8-2.x86_64) scriptlet failed, exit status 1 A few other comments: rpmlint wants the summary capitalized, but I wouldn't capitalize it in this situation either. You need Requires(pre): /sbin/ldconfig You could just use %postun -p /sbin/ldconfig or add Requires(postun): /sbin/ldconfig You really shouldn't use %makeinstall unless make DESTDIR=$RPM_BUILD_ROOT install doesn't work. I can't say that I'm confortable with automatically adding the library to nsswitch.conf, but I suppose the point is that it needs no configurarion.
Lennart, do you want to take this over?
Well, it's been almost two weeks; what's up? I see this blocks OLPCTracker, but I don't know if that makes it extra-important or not. I'm happy to see this review through if someone wants to drive the submission; othewise I guess this ticket should be closed.
To say the least, Ulrich Drepper is not exactly a fan of seeing this integrated into the default Fedora install. In a recent chat on IRC that I had with him he raised a few issues he has with nss-mdns which I cannot really "fix". (As a side note: I am upstream of nss-mdns) Firstly, he believes that mDNS might be a waste of power and traffic and wants to see a big field test in Westford. I believe this is a big waste of time and resources, and is nothing I can organize from Hamburg/Germany. Also it is somewhat redundant, because Apple reports some scalability numbers for mDNS which have been generated by such a field test. (please also note that nss-mdns by itself doesn't impose any traffic on the net. Avahi does that and unless you actually look some kind of .local domain lookup nss-mdns will not add to that in any way) Secondly, Fedora uses nscd by default. Running nscd and nss-mdns together doesn't make too much sense if you use the "reload" option in nscd.conf. However that option is used by default and Ulrich appears not to be interested in finding a way to disable this option for mDNS lookups. Then, he thinks that mDNS is braindead because the cacheing protocol works differently from classic DNS. Leaves me speachless ... He apparently also thinks that Avahi is not a good thing either, but is OK with it in the default install as long as he may shut it down easily. The argument that nss-mdns is disabled at the same time as avahi is shut down he doesn't really accept, citing that the tiny bit of CPU time that is wasted when the nss-mdns module checks whether avahi is around is too much. (which btw is rather contradictorily, since nscd optimizes that away anyway) This is all very unfortunate. I am not sure what we can do about this. But as a total newcomer to Red Hat and Fedora I don't feel I am in a position to to fight this through -- at least for now. Maybe when I have a better insight into how Fedora and everything works I will give it another try. What we can do of course is getting nss-mdns into Fedora, but only as an optional package. To get this working cleanly the package would have to patch nsswitch.conf and nscd.conf on installing -- which is rather ugly. It's better than nothing, but not exactly the fullfillment of the promise of "zero configuration".
All I can say is that if Ulrich wants to block this package from Fedora completely, he needs to comment on this bug and state his reasons for the record. Otherwise, can someone get to the issues in comment #24 and we can move forward with getting this in? The issue of what gets included by default is something to be discussed elsewhere.
Well, folks, three weeks without any response. I'm going to go ahead and close this.
Excuse me, but that's not your bug to fix. I'll go about fixing the packaging issues.
We need this for OLPC. It's very important that it gets in. (We're not using nscd and we are based heavily on avahi so there's a clear use case here.)
-> bastien
Umm, we do have a policy for closing out stalled review tickets. I am tasked with policing the list of review tickets. It was most certainly within my mandate to close out this ticket. Now, I'm more than happy to see someone actually move this review forward. If closing the ticket was sufficient to get that to happen, then great.
Ok, going down the checklist, since nobody else seems to be willing to. Here are the MUST items: rpmlint output: E: nss-mdns non-executable-script /usr/libexec/nss-mdns-set.pl 0644 W: nss-mdns summary-not-capitalized glibc plugin for .local name resolution W: nss-mdns percent-in-%post W: nss-mdns dangerous-command-in-%post mv W: nss-mdns percent-in-%preun W: nss-mdns dangerous-command-in-%preun mv W: nss-mdns one-line-command-in-%postun /sbin/ldconfig Proposed fixes: - make /usr/libexec/nss-mdns-set.pl executable - replace %{_libexec} references by %{_libexecdir} - maybe move the backup generation into the perl script itself ? - do %postun -p /sbin/ldconfig package name: ok spec file name: ok packaging guidelines: seems to be followed in general, things to consider: - does make install DESTDIR=$RPM_BUILD_ROOT work ? - why is it necessary to move stuff from %{_libdir} to %{_lib} post install, does --libdir=/lib not work ? - the %preun script has an $1 = 0 guard, should the %post script have a corresponding $1 = 1 guard ? open source license: ok license field matches license: not ok, spec says GPL, License file says LGPL license file included: no, it is missing, add it to %doc spec file language: ok spec file readability: ok sources match upstream: ok package builds: yes excludearch: n/a build requires: ok locales: n/a ldconfig: ok relocatable: n/a directory ownership: ok no duplicate files: ok permissions: see above for the perl script, else ok %clean: ok macro use: don't put slashes in front of path macros in the file list, and also not in constructs like $RPM_BUILD_ROOT%{_libdir}, else ok permissible content: ok large docs: n/a docs: ok header files: n/a static libs: n/a pc files: n/a unversioned shared libs: n/a -devel: n/a libtool archives: ok desktop files: n/a directory ownership again: ok %install clean build root: ok filenames utf8: ok Can you create a new package with those issues fixes, maybe updating to the latest version at the same time ?
Well, obviously I was willing to work on this package (see comment 24). I'm happy to review this package, or let mclasen do it, but no progress is going to be made unless someone responds to the review comments and puts out an updated package.
I've uploaded updated packages to: http://0pointer.de/public/rpms/nss-mdns/ I fixed (or at least believe so) all issues pointed out in this bug report. I also updated Bastien's packages to nss-mdns 0.10 which I recently released upstream. Finally, I replaced the perl script for patching /etc/nsswitch.conf by a simpler, more robust one which is based on the one used in the Debian package, and thus already got some testing. Please review!
Hi, It doesn't build on x86_64: File not found by glob: /var/tmp/nss-mdns-0.10-1-buildroot/lib64/* I think it will be tricky to build this on multiarch platforms, since it really needs to install libraries for ALL variants of the arch. Otherwise, the nsswitch.conf will have valid settings for only some arches, and cause others to fail. An old example I had with this is 32-bit Firefox DNS resolution.
The files are being installed into /lib on x86_64 instead of /lib64. The simple fix is to simply pass "--libdir=/%{_lib}" instead of "--libdir=/lib". I have no idea about the multilib issues; I suspect that this is simply a situation where users who don't install both arches (as is currently yum's default behavior) just get weird behavior. Still, the issue isn't really something that can be solved within the confines of this package, since the x86_64 version can't require the i386 package nor can it actually contain i386 libraries. In any case, let's look at rpmlint output for the package after the above fix to get it building on my build server. I don't believe that any of these are blockers. W: nss-mdns summary-not-capitalized glibc plugin for .local name resolution I personally think this is OK; I wouldn't normally capitalize glibc in any context. W: nss-mdns dangerous-command-in-%post perl W: nss-mdns dangerous-command-in-%preun perl Dangerous, maybe. Ugly, definitely. But you've already described why this needs to be done, and in lieu of /etc/nsswitch.d I don't think there's any other option. I note you're not using the %{?dist} tag. There's certainly no requirement that you do so, but I always ping folks to make sure they understand the issues that crop up when you don't use it. You need fine-grained dependencies; the package doesn't just require perl, it needs it there to run its post script. So you need: Requires(post): perl Requires(post): /sbin/ldconfig You can also drop the Requires: perl bit, unless the package actually needs perl in order to run normally. Review: * source files match upstream: 1e683c2e7c3921814706d62fbbd3e9cbf493a75fa00255e0e715508d8134fa6d nss-mdns-0.10.tar.gz * package meets naming and versioning guidelines. * specfile is properly named, is cleanly written and uses macros consistently. * summary is OK. * description is OK. * build root is OK. X license field says "GPL" but the LICENSE file says "LGPL" * license is open source-compatible. * license text included in upstream source but not in the package. * latest version is being packaged. * BuildRequires are proper. * compiler flags are appropriate. * %clean is present. * package builds in mock (development, x86_64) (after the above fix) * package installs properly * debuginfo package looks complete. * rpmlint has acceptable complaints. X final provides and requires missing some dependencies; see above. libnss_mdns.so.2()(64bit) libnss_mdns.so.2(NSSMDNS_0)(64bit) libnss_mdns4.so.2()(64bit) libnss_mdns4.so.2(NSSMDNS_0)(64bit) libnss_mdns4_minimal.so.2()(64bit) libnss_mdns4_minimal.so.2(NSSMDNS_0)(64bit) libnss_mdns6.so.2()(64bit) libnss_mdns6.so.2(NSSMDNS_0)(64bit) libnss_mdns6_minimal.so.2()(64bit) libnss_mdns6_minimal.so.2(NSSMDNS_0)(64bit) libnss_mdns_minimal.so.2()(64bit) libnss_mdns_minimal.so.2(NSSMDNS_0)(64bit) nss-mdns = 0.10-1 = /bin/sh /sbin/ldconfig perl * %check is not present; no test suite upstream. I have no means at the moment to test this package. X shared libraries are present; ldconfig is called as necessary but dependency on ldconfig in %post is not present. * owns the directories it creates. * doesn't own any directories it shouldn't. * no duplicates in %files. * file permissions are appropriate. X scriptlets present are OK, but the dependencies are off. * code, not content. * documentation is small, so no -docs subpackage is necessary. * %docs are not necessary for the proper functioning of the package. * no headers. * no pkgconfig files. * no static libraries. * no libtool .la files.
I have uploaded updated packages now: http://0pointer.de/public/rpms/nss-mdns/ (In reply to comment #37) > Hi, > > It doesn't build on x86_64: > > File not found by glob: /var/tmp/nss-mdns-0.10-1-buildroot/lib64/* I believe I fixed this now, but actually cannot test this because I have no 64bit system around. Please try the updated package. (In reply to comment #38) > The files are being installed into /lib on x86_64 instead of /lib64. The simple > fix is to simply pass "--libdir=/%{_lib}" instead of "--libdir=/lib". Done. (See above) > I note you're not using the %{?dist} tag. There's certainly no requirement that > you do so, but I always ping folks to make sure they understand the issues that > crop up when you don't use it. Nope. I do not understand the issues. I just left in there what Bastien originally put in there. (Blame the frenchies!) Please enlighten me about the implications! I added the dist tag stuff now, just in case. > You need fine-grained dependencies; the package doesn't just require perl, it > needs it there to run its post script. So you need: > Requires(post): perl > Requires(post): /sbin/ldconfig I fixed that now and added fine-grained deps for post, preun, postun. For perl, ldconfig and /bin/sh. (does depending on /bin/sh make any real sense or is it superfluous because it is such a basic tool anyway?) > You can also drop the Requires: perl bit, unless the package actually needs perl > in order to run normally. Unless /etc/nsswitch.conf is patched nss-mdns is entirely useless. You cannot run it manually, it just sits there and takes up some disk space. Thus I would argue that depending on perl during installation does make a lot of sense. I also added a depends on avahi, given that Avahi is required to be installed to make nss-mdns any useful. > X license field says "GPL" but the LICENSE file says "LGPL" Fixed. > X final provides and requires missing some dependencies; see above. > libnss_mdns.so.2()(64bit) > libnss_mdns.so.2(NSSMDNS_0)(64bit) > libnss_mdns4.so.2()(64bit) > libnss_mdns4.so.2(NSSMDNS_0)(64bit) > libnss_mdns4_minimal.so.2()(64bit) > libnss_mdns4_minimal.so.2(NSSMDNS_0)(64bit) > libnss_mdns6.so.2()(64bit) > libnss_mdns6.so.2(NSSMDNS_0)(64bit) > libnss_mdns6_minimal.so.2()(64bit) > libnss_mdns6_minimal.so.2(NSSMDNS_0)(64bit) > libnss_mdns_minimal.so.2()(64bit) > libnss_mdns_minimal.so.2(NSSMDNS_0)(64bit) > nss-mdns = 0.10-1 > = > /bin/sh > /sbin/ldconfig > perl I don't understand this entirely, but I think I fixed this with the fine-grained dependencies, haven't I? > X shared libraries are present; ldconfig is called as necessary but dependency > on ldconfig in %post is not present. Fixed. > X scriptlets present are OK, but the dependencies are off. I don't really understand this either, but this is fixed as well I think, by the fine-grained deps stuff. BTW, how does one generate that review report you posted? That's not rpmlint output, is it? Please review again!
(In reply to comment #39) [dist tag] > Nope. I do not understand the issues. I just left in there what Bastien > originally put in there. (Blame the frenchies!) Please enlighten me about the > implications! Sure. First, see http://fedoraproject.org/wiki/Packaging/DistTag for an overview. The basic problem is that without the dist tag you have to keep separate specs for each supported release, since you cannot have the same version-release string on two different branches. Usually new packagers not using the dist tag import and build for rawhide, then try to import and build for a release branch and get a nice useless error about trying to apply the same tag to multiple branches when they go to build. > I fixed that now and added fine-grained deps for post, preun, postun. For > perl, ldconfig and /bin/sh. (does depending on /bin/sh make any real sense or > is it superfluous because it is such a basic tool anyway?) Actually rpmbuild will automatically give you the proper dependency for the shell needed to run a scriptlet. So unless you use -p you get an automatic depdency on /bin/sh, and if you have %postun -p /sbin/ldconfig then you get the necessary Requires(postun): /sbin/ldconfig automatically. So basically the two dependencies on /bin/sh you have, along with the Requires(postun): /sbin/ldconfig, are not really needed but aren't really harmful either. > Unless /etc/nsswitch.conf is patched nss-mdns is entirely useless. You cannot > run it manually, it just sits there and takes up some disk space. Yes, I know, but you need it at package install/removal time to run the scriptlets, not at any other time. The difference is essentially academic in any case. The way you have things listed currently is OK. > I also added a depends on avahi, given that Avahi is required to be installed > to make nss-mdns any useful. OK. > I don't understand this entirely, but I think I fixed this with the > fine-grained dependencies, haven't I? I always list out the full set of dependencies a package has, noting any bad ones and mentioning any deficiencies I notice. > BTW, how does one generate that review report you posted? That's not rpmlint > output, is it? Only three lines of that are rpmlint output; the rest is my usual review template which I paste in and edit accordingly for each package I review. At this point I think things are OK; you have some unnecessary dependencies as mentioned above, but they're merely redundant and don't hurt anything. You can remove them when you check in if you like. APPROVED
New Package CVS Request ======================= Package Name: nss-mdns Short Description: glibc plugin for .local name resolution Owners: lpoetter Branches: FC-7 FC-8 devel
cvs done. Note for refrence that the FC-7 branch should be F-7, there is no FC-8 branch (thats devel) and you don't need to list devel (it's implied).
Commited to CVS.