Hide Forgot
Fedora Merge Review: ypbind http://cvs.fedora.redhat.com/viewcvs/devel/ypbind/ Initial Owner: steved@redhat.com
I question my sanity for even looking at this, but I used NIS in a past life so... Here's what rpmlint has to say: W: ypbind summary-ended-with-dot The NIS daemon which binds NIS clients to an NIS domain. Picky, I guess, but easy to fix. E: ypbind tag-not-utf8 %changelog E: ypbind non-utf8-spec-file ypbind.spec It's the ø in Trond's name; iconv should fix it up. W: ypbind strange-permission ypbind.init 0755 rpmlint complains about anything that's not 644 in the SRPM; I don't think this is a big deal. W: ypbind prereq-use /sbin/chkconfig Prereq: shouldn't be used. Actually the scriptlets and their dependencies need a few fixes. W: ypbind macro-in-%changelog config % signs need doubling in %changelog. W: ypbind patch-not-applied Patch5: ypbind-1.19-debuginfo.patch I guess this patch isn't needed at all any longer; it should probably just go. The packaging guidelines require that the buildroot contains %{name}, %{version} and %{release}. You shouldn't use %makeinstall unless the usual "make DESTDIR=..." doesn't work. Everything seems to work OK with the latter, so.... You need finegrained dependencies for the scriptlets instead of Prereq: Requires(post): /sbin/chkconfig Requires(preun): /sbin/chkconfig Requires(preun): /sbin/service Requires(postun): /sbin/service Initscripts must not be marked as %config files. There's a whole push to use LSB-standard initscripts, but I'm not sure where it stands and I'm not going to worry about that here. We're working on new standards for the license, but the files in the tarball don't agree about whether it's GPLv2 only or GPLv2 or later. You can probably drop the bash >= 2.0 requirement; rpm will find the need for /bin/bash on its own, and even FC-1 had bash 2.05b. This package should not own /var/yp; the filesystem pakage owns it. I'll attach a patch that fixes the minor issues; the license thing will probably require consultation with upstream. Review: * source files match upstream: f49e0706517f2761cfa45f7a02c5e1562a67b104a267b220a37fa3ab217f9e34 ypbind-mt-1.20.4.tar.bz2 * package meets naming and versioning guidelines. * specfile is properly named, is cleanly written and uses macros consistently. X summary ends in a period, annoying rpmlint * description is OK. * dist tag is present. X build root is missing %{release} ? license field matches the actual license. * license is open source-compatible. * license text included in package. * latest version is being packaged. * BuildRequires are proper. * compiler flags are appropriate. * %clean is present. * package builds in mock (development, x86_64). * package installs properly * debuginfo package looks complete. X rpmlint has valid complaints. X final provides and requires are missing /sbin/service config(ypbind) = 3:1.20.4-1.fc8 ypbind = 3:1.20.4-1.fc8 = /bin/bash /bin/sh /sbin/chkconfig bash >= 2.0 config(ypbind) = 3:1.20.4-1.fc8 libdbus-1.so.3()(64bit) libdbus-glib-1.so.2()(64bit) libglib-2.0.so.0()(64bit) libgobject-2.0.so.0()(64bit) libpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.2.5)(64bit) libpthread.so.0(GLIBC_2.3.2)(64bit) rpcbind yp-tools * %check is not present; no test suite upstream. I have fortunately exorcised NIS from my network so I've no way to test this. * no shared libraries are added to the regular linker search paths. * owns the directories it creates. X should not own /var/yp * no duplicates in %files. * file permissions are appropriate. * no scriptlets present. * 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.
Created attachment 160541 [details] Patch fixing most issues.
BTW, after this patch, rpmlint is silent except for the strange-permission complaint which I don't think is worth fixing. (I don't know how to do a chmod in any case.) With it applied and the license set to GPLv2, I'd approve this package, although it would be really nice to see if upstream really intends GPLv2+.
Steve, is there any chance we could move forward with this?
Looks like Steve no longer owns this package. CC'ing the current maintainer; perhaps there's a changce that this could move forward after over a year without receiving any response.
(In reply to comment #1) Thanks for CC'ing me. > I question my sanity for even looking at this, but I used NIS in a past life > so... > > Here's what rpmlint has to say: > > W: ypbind summary-ended-with-dot The NIS daemon which binds NIS clients to an > NIS domain. > Picky, I guess, but easy to fix. Fixed. > > E: ypbind tag-not-utf8 %changelog > E: ypbind non-utf8-spec-file ypbind.spec > It's the ø in Trond's name; iconv should fix it up. Fixed. > > W: ypbind strange-permission ypbind.init 0755 > rpmlint complains about anything that's not 644 in the SRPM; I don't think > this is a big deal. Init scripts should have 0755 permissions. I suggest to let it be as it is. > > W: ypbind prereq-use /sbin/chkconfig > Prereq: shouldn't be used. Actually the scriptlets and their dependencies > need a few fixes. Fixed using actual https://fedoraproject.org/wiki/Packaging/SysVInitScript > > W: ypbind macro-in-%changelog config > % signs need doubling in %changelog. Fixed. > > W: ypbind patch-not-applied Patch5: ypbind-1.19-debuginfo.patch > I guess this patch isn't needed at all any longer; it should probably just > go. You're right, debuginfo package works fine, patch removed. > > The packaging guidelines require that the buildroot contains %{name}, > %{version} > and %{release}. That's okay yet (fixed in 3:1.20.4-4). > > You shouldn't use %makeinstall unless the usual "make DESTDIR=..." doesn't > work. > Everything seems to work OK with the latter, so.... Fixed. > > You need finegrained dependencies for the scriptlets instead of Prereq: > > Requires(post): /sbin/chkconfig > Requires(preun): /sbin/chkconfig > Requires(preun): /sbin/service > Requires(postun): /sbin/service Commented above. > > Initscripts must not be marked as %config files. Fixed. (But - "A valid exception to this rule would be existing packages where configuration is still done via the init file.". Well, I'm not sure if OTHER_YPBIND_OPTS="" is configuration... Probably not:)) > > There's a whole push to use LSB-standard initscripts, but I'm not sure where it > stands and I'm not going to worry about that here. > > We're working on new standards for the license, but the files in the tarball > don't agree about whether it's GPLv2 only or GPLv2 or later. That's okay yet (you fixed it 1.20.4-7) > > You can probably drop the bash >= 2.0 requirement; rpm will find the need for > /bin/bash on its own, and even FC-1 had bash 2.05b. Bash requirement removed. > > This package should not own /var/yp; the filesystem pakage owns it. Directory removed. > > I'll attach a patch that fixes the minor issues; the license thing will > probably > require consultation with upstream. > > Review: > * source files match upstream: > f49e0706517f2761cfa45f7a02c5e1562a67b104a267b220a37fa3ab217f9e34 > ypbind-mt-1.20.4.tar.bz2 > * package meets naming and versioning guidelines. > * specfile is properly named, is cleanly written and uses macros consistently. > X summary ends in a period, annoying rpmlint > * description is OK. > * dist tag is present. > X build root is missing %{release} > ? license field matches the actual license. > * license is open source-compatible. > * license text included in package. > * latest version is being packaged. > * BuildRequires are proper. > * compiler flags are appropriate. > * %clean is present. > * package builds in mock (development, x86_64). > * package installs properly > * debuginfo package looks complete. > X rpmlint has valid complaints. > X final provides and requires are missing /sbin/service > config(ypbind) = 3:1.20.4-1.fc8 > ypbind = 3:1.20.4-1.fc8 > = > /bin/bash > /bin/sh > /sbin/chkconfig > bash >= 2.0 > config(ypbind) = 3:1.20.4-1.fc8 > libdbus-1.so.3()(64bit) > libdbus-glib-1.so.2()(64bit) > libglib-2.0.so.0()(64bit) > libgobject-2.0.so.0()(64bit) > libpthread.so.0()(64bit) > libpthread.so.0(GLIBC_2.2.5)(64bit) > libpthread.so.0(GLIBC_2.3.2)(64bit) > rpcbind > yp-tools > * %check is not present; no test suite upstream. I have fortunately exorcised > NIS from my network so I've no way to test this. > * no shared libraries are added to the regular linker search paths. > * owns the directories it creates. > X should not own /var/yp > * no duplicates in %files. > * file permissions are appropriate. > * no scriptlets present. > * 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. Changes commited to Rawhide.
Created attachment 321174 [details] ypbind init script patch I decided to look at init script and fix it to be compliant with https://fedoraproject.org/wiki/Packaging/SysVInitScript (Well, main motion to do this was https://bugzilla.redhat.com/show_bug.cgi?id=467861). I think it should be fine, but just for sanity, please check it too. Thanks.
Thanks for working on this. I checked out the current devel branch; it builds fine; rpmlint says: ypbind.src: W: strange-permission ypbind.init 0755 I don't understand why rpmlint is complaining here. This seems fine to me. ypbind.x86_64: W: incoherent-version-in-changelog 1.20.4-9 ['3:1.20.4-9.fc10', '3:1.20.4-9'] Again, this seems quite OK. I'm guessing that it is complaining about not seeing the epoch in the changelog version, but don't think we generally add it there. So all of that looks bogus. I assume that the OTHER_YPBIND_OPTS thing is something to be set in /etc/sysconfig/network instead of being edited into the initscript. The changes to the package look good; packaging-wise I have no complaints. It's a bit odd seeing %{PACKAGE_VERSION} in the spec instead of %{version}; I've never seen it before but it seems to work well enough. Any idea why autoreconf is run? There's been a bunch of discussion about whether this should ever be run in a package, and while I don't fully understand that discussion, I do think it would be good to ensure that the autoreconf call is really needed and to add comments to the spec as appropriate. I note that rpmdiff shows only timestamp differences between a build that calls autoreconf and one that doesn't. As for the initscript patch in comment #7, it seems correct on its face but it's a bit tough to read with only a non-context diff and I'm not really an expert with the whole LSB init comment block thing anyway. Unfortunately I no longer have any vestige of my NIS infrastructure around so I can't test this at all. So really the only open issue I see is the autoreconf thing.
To make this complete: (In reply to comment #8) > Thanks for working on this. I checked out the current devel branch; it builds > fine; rpmlint says: > > ypbind.src: W: strange-permission ypbind.init 0755 > I don't understand why rpmlint is complaining here. This seems fine to me. Seems fine to me too. > > ypbind.x86_64: W: incoherent-version-in-changelog 1.20.4-9 > ['3:1.20.4-9.fc10', '3:1.20.4-9'] > Again, this seems quite OK. I'm guessing that it is complaining about not > seeing the epoch in the changelog version, but don't think we generally add it > there. I'll add epoch to changelog entries. I'm not sure if this must be, but it's missing only last few commits, so let rpmlint be happy:) > > So all of that looks bogus. I assume that the OTHER_YPBIND_OPTS thing is > something to be set in /etc/sysconfig/network instead of being edited into the > initscript. You're right, configuration should be done in /etc/sysconfig/network (and this file is then included in init script). > > The changes to the package look good; packaging-wise I have no complaints. > It's a bit odd seeing %{PACKAGE_VERSION} in the spec instead of %{version}; > I've never seen it before but it seems to work well enough. Interesting, I missed it... I'll change it to %{version}, I have no knowledge of %{PACKAGE_VERSION}. %{version} is common, let's use it. > > Any idea why autoreconf is run? There's been a bunch of discussion about > whether this should ever be run in a package, and while I don't fully > understand that discussion, I do think it would be good to ensure that the > autoreconf call is really needed and to add comments to the spec as > appropriate. I note that rpmdiff shows only timestamp differences between a > build that calls autoreconf and one that doesn't. autoreconf is used to generate new configure script and Makefile when configure.in/.ac, Makefile.in files are changed (patched). There's no patch changing it at the moment (one patch is changing variable in "po" directory, this is only one source of unsureness for me), so autoreconf call is IMHO not necessary. autoconf and automake in BuildRequires is then not necessary too. I'll discuss it rather yet, but it seems to be redundant. Fedora relate info is here: https://fedoraproject.org/wiki/PackagingDrafts/AutoConf > > As for the initscript patch in comment #7, it seems correct on its face but > it's a bit tough to read with only a non-context diff and I'm not really an > expert with the whole LSB init comment block thing anyway. Unfortunately I no > longer have any vestige of my NIS infrastructure around so I can't test this at > all. OK, there's open bugzilla on init script issue, so I think there's no need to resolve it here. > > So really the only open issue I see is the autoreconf thing.
Thanks; I think we're done here, so I'll close this out. Do you also maintain ypserv and yp-tools? I can take a look at them as well if you like. https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=226664 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=226665 APPROVED
I think so. I removed all auto-tools related things form spec file finally, they were not needed. Yes, I do own them too - and I'll be glad if you take a look, thanks!