Spec URL: http://adiemus.org/~kdreyer/rpms/msktutil.spec SRPM URL: http://adiemus.org/~kdreyer/rpms/msktutil-0.4-1.el5.src.rpm Description: Msktutil is a program for interoperability with Active Directory that can create a computer account in Active Directory, create a system Kerberos keytab, add and remove principals to and from that keytab, and change the computer account's password. rpmlint is clean on the spec and SRPM, except for a spelling false positive for "keytab". At the time of this review request the upstream URL is down, hopefully temporarily. Builds in EL5, EL6, F14, F15. Will not build against rawhide yet, pending an update promised in #550889.
Please make the Makefile verbose. The INSTALL file only contains in information on installing and should thus be excluded. You don't have to label the manpages as %doc. (There is a spelling mistake in "defination".)
(In reply to comment #1) > Please make the Makefile verbose. How would I do this? > The INSTALL file only contains in information on installing and should thus be > excluded. > > You don't have to label the manpages as %doc. > > (There is a spelling mistake in "defination".) Thanks, these three items are fixed in -2. http://adiemus.org/~kdreyer/rpms/msktutil.spec http://adiemus.org/~kdreyer/rpms/msktutil-0.4-2.el5.src.rpm
Please put each BuildRequires on a separate line. This is much easier to look over. If you decide not to do so, remove the comma. Please include ChangeLog as documentation. You can remove the defattr line, if you want. I suggest to list the files explicitly in the files section, instead of using globs. That reduces the risk of packaging files inadvertently. Keep a * instead of .gz for the manpage though, as that could change.
Ad Makefile: The "@" sign makes the commands silent. If you remove them, you can see what's happening.
Thanks. I've incorporated your suggestions into -3. http://adiemus.org/~kdreyer/rpms/msktutil.spec http://adiemus.org/~kdreyer/rpms/msktutil-0.4-3.el5.src.rpm
-4 contains a small patch to correct the debugging output. http://adiemus.org/~kdreyer/rpms/msktutil.spec http://adiemus.org/~kdreyer/rpms/msktutil-0.4-4.el5.src.rpm
The package doesn't build in Mock or on Koji. The problem is related to com_err: http://koji.fedoraproject.org/koji/taskinfo?taskID=3289067
I guess I could remove the Fedora version check before modifying LDFLAGS, but a proper fix would probably involve using krb5-config to handle the flags automatically. I'll look into it and re-roll another SRPM soon.
Any news so far?
Hi Volker, I'm finishing up a large project at work... I'll get an new version posted soon.
Thanks for your patience. Here's -5. http://adiemus.org/~kdreyer/rpms/msktutil.spec http://adiemus.org/~kdreyer/rpms/msktutil-0.4-5.el5.src.rpm Changes: - Upstream's git master had several fixes, so I'm patching all of them in here. - Switch to using krb5-config to auto-determine the appropriate Kerberos CPPFLAGS and LIBS. - Bump Fedora version to F16 for /usr/include/et. I've confirmed this won't be necessary for F17, finally! - Use autoconf to regenerate configure script, after my patches. With these changes, the msktutil package should successfully build on all platforms. I've built on EL5 x86_64, and mocked on i686 for EL6, F14, F16, and rawhide.
I noticed, your basically packaging the head revision now. You could consider this a post-release snapshot, as described here: http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Snapshot_packages If you switch to packaging a snapshot, you're loosing 3 patches and I think it's also clearer to the user. Small remark: I think you can simplify the if clauses: %if (0%{?fedora} && 0%{?fedora} <= 15) || (0%{?rhel} && 0%{?rhel} <= 6) --> %if (0%{?fedora} <= 15) || 0%{?rhel} <= 6) Let me know about the snapshot thing, then I'll do the formal review.
(In reply to comment #12) > I noticed, your basically packaging the head revision now. Yeah, I've emailed the upstream author several times, and he hasn't responded. I also found another person on GitHub who has experienced the same thing, and I'm concerned that I'll have to carry on a fork. A few days ago I sent out a formal email to the MIT kerberos list: http://mailman.mit.edu/pipermail/kerberos/2011-October/017657.html I received a few responses off-list. I've got beginnings of the fork up at https://gitorious.org/ktdreyer/msktutil . The other patches that I've seen around on the internet are basically similar to my LIBS patch and krb5-config patch. I've emailed the Debian and Suse maintainers to see if they have any patches they'd like to contribute. I'm picturing that I'll do a formal 0.4.1 or a 0.5 release in the future. > Small remark: I think you can simplify the if clauses: I tried this initially, but IIRC "rhel" evaluated to zero on Fedora, which meant that 0 <= 6, and the statement inadvertently evaluated as true on F16. I'll re-examine this before I submit to Fedora.
mbrowse-0.4.3-3.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/mbrowse-0.4.3-3.fc15
mbrowse-0.4.3-3.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/mbrowse-0.4.3-3.el6
mbrowse-0.4.3-3.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/mbrowse-0.4.3-3.fc16
Brilliant, wrong ticket number! I'm sorry!
I noticed that the resulting binary is linked differently for EPEL 6 and Fedora 15. Do you know the cause for that?
(In reply to comment #18) > I noticed that the resulting binary is linked differently for EPEL 6 and Fedora > 15. Do you know the cause for that? I'm not sure... can you give more details?
Sorry, I didn't put this very clear: If you run ldd on the binary or rpm -q --requires on the RPM, the output is different. It must be somehow related to openldap: On Fedora you get liblber, libssl3, libnssutil3 and a lot more, but they are not stated for the EPEL package for some reason.
I think the reason is that Fedora switched OpenLDAP from using OpenSSL to using NSS, as a part of https://fedoraproject.org/wiki/FedoraCryptoConsolidation .
(In reply to comment #7) I've helped test msktutil for Ken before, so I thought I would add these results from RHEL 5.7 32-bit. I expected to be able to build the package with this command (correct me if I am wrong): rpmbuild --rebuild msktutil-0.4-5.el5.src.rpm or: rpm -ivh msktutil-0.4-5.el5.src.rpm rpmbuild -ba /usr/src/redhat/SPECS/msktutil.spec > The problem is related to com_err: Even with the latest "-5" version, I still get the following error messages: <SNIP> checking com_err.h usability... no checking com_err.h presence... no checking for com_err.h... no ... checking whether com_err.h needs extern "C"... configure: error: Couldn't get error_message to work. error: Bad exit status from /var/tmp/rpm-tmp.71871 (%build) </SNIP> If I symlink com_err.h into /usr/include/ then the above rpmbuild works: ln -s /usr/include/et/com_err.h /usr/include/ I notice in your msktutil.spec file that you do set CPPFLAGS in include /usr/include/et/: <SNIP> %build # Have to set CPPFLAGS per https://bugzilla.redhat.com/550889 # Confirmed fixed in F17. %if (0%{?fedora} && 0%{?fedora} <= 16) || (0%{?rhel} && 0%{?rhel} <= 6) export CPPFLAGS="-I/usr/include/et/" %endif </SNIP> but here the output of my rpmbuild command shows that it skips the "export CPPFLAGS" statement: <SNIP> cd 'msktutil-0.4' # Have to set CPPFLAGS per https://bugzilla.redhat.com/550889 # Confirmed fixed in F17. export KRB5_CONFIG="/usr/bin/krb5-config" </SNIP> I have no real experience building packages, so I'm not sure what I can do to help at this point. But if there is anything I can do, let me know!
(In reply to comment #22) > > I expected to be able to build the package with this command (correct me if I > am wrong): > rpmbuild --rebuild msktutil-0.4-5.el5.src.rpm > or: > rpm -ivh msktutil-0.4-5.el5.src.rpm > rpmbuild -ba /usr/src/redhat/SPECS/msktutil.spec Hi Jonathan, Your commands are correct, and the reason the /usr/include/et didn't get added is because it's wrapped in a dist tag. In order for dist tags to take effect on your build box, you'll need to install a special package "redhat-rpm-config". This package gets pulled into each buildroot on the Fedora and EPEL builders, but strictly speaking its optional (the rpm-build package does not depend on it). https://fedoraproject.org/wiki/Packaging:DistTag
(In reply to comment #23) > Your commands are correct, and the reason the /usr/include/et didn't get added > is because it's wrapped in a dist tag. In order for dist tags to take effect on > your build box, you'll need to install a special package "redhat-rpm-config". Ah, thanks Ken! A message to indicate that the dist tags could not be evaluated and the reason (missing package) would have been helpful. I suppose that would have to be a feature request for the 'rpm-build' package. > https://fedoraproject.org/wiki/Packaging:DistTag Thanks for the reference; more learning is good :)
I'm sorry, but I've got to step back from the review. I'm not totally sure in the "requires" issue and don't have the time to investigate at the moment.
Volker, I'm sorry to hear that. Would you mind resetting the fedora-review flag back to this re-appears on the "Package Review Tracker" page?
Sorry, forgot to do that.
ykpers-1.6.2-1.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/ykpers-1.6.2-1.fc16
Sorry about the ykpers thing. Wrong bug id. Seems to be a popular thing for this bug :P
Some more observations: %if (0%{?rhel} && 0%{?rhel} <= 5) export KRB5_CONFIG="/usr/kerberos/bin/krb5-config" %else export KRB5_CONFIG="/usr/bin/krb5-config" %endif you handle RHEL and Fedora, but not EPEL or Centos... the conditionals can get pretty hairy to handle all of the permutations. Why not just have: if [ -x /usr/kerberos/bin/krb5-config ]; then export KRB5_CONFIG=/usr/kerberos/bin/krb5-config else export KRB5_CONFIG=/usr/bin/krb5-config fi instead. You could handle: %if (0%{?fedora} && 0%{?fedora} <= 16) || (0%{?rhel} && 0%{?rhel} <= 6) export CPPFLAGS="-I/usr/include/et/" %endif with a "if [ -d /usr/include/et ]; then" as well. Looking at: Requires: cyrus-sasl-gssapi is this strictly necessary? Rpm is usually pretty good about running 'ldd' on the generated objects and inferring dependencies.
(In reply to comment #30) > you handle RHEL and Fedora, but not EPEL or Centos... The nice thing is that both CentOS and EPEL populate the "rhel" dist tag. https://fedoraproject.org/wiki/Packaging:DistTag . So this will still work. Nevertheless, your code is clearer, so I'll go ahead and use that. Thanks. > Requires: cyrus-sasl-gssapi > > is this strictly necessary? Rpm is usually pretty good about running 'ldd' on > the generated objects and inferring dependencies. I verified that it is necessary. When I don't include it, there is no requirement for libgssapiv2.so: $ rpm -qp --requires msktutil-0.4-5.el5.x86_64.rpm | grep gss I've put up a new release here. http://adiemus.org/~kdreyer/rpms/msktutil.spec http://adiemus.org/~kdreyer/rpms/msktutil-0.4-7.el5.src.rpm Changes since -5: * Sat Dec 3 2011 Ken Dreyer <ktdreyer> 0.4-7 - Adjust conditionals for setting CPPFLAGS and KRB5_CONFIG - Use PATH_KRB5_CONFIG instead of KRB5_CONFIG when running configure, since the latter is used by the Kerberos libraries to specify an alternative path to krb5.conf. Thanks again Russ Allbery. * Mon Oct 3 2011 Ken Dreyer <ktdreyer> 0.4-6 - Adjust regex in krb5-config patch. Thanks Russ Allbery. Koji scatch builds: F17: http://koji.fedoraproject.org/koji/taskinfo?taskID=3560531 EL6: http://koji.fedoraproject.org/koji/taskinfo?taskID=3560534 EL5: http://koji.fedoraproject.org/koji/taskinfo?taskID=3560539
Package ykpers-1.6.2-1.fc16: * should fix your issue, * was pushed to the Fedora 16 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing ykpers-1.6.2-1.fc16' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2011-16747/ykpers-1.6.2-1.fc16 then log in and leave karma (feedback).
ykpers-1.6.2-1.fc16 has been pushed to the Fedora 16 stable repository. If problems still persist, please make note of it in this bug report.
Update: I've obtained commit access to the upstream repository and pushed all my patches there. I've also tagged 0.4.1 and released it at a new location, https://code.google.com/p/msktutil . I've been testing 0.4.1 at work for a while now and I'll get an updated .spec up here soon.
I've updated to the latest 0.4.1 upstream release. http://ktdreyer.fedorapeople.org/reviews/msktutil.spec http://ktdreyer.fedorapeople.org/reviews/msktutil-0.4.1-1.fc15.src.rpm Changes since 0.4-7: * Fri Mar 16 2012 Ken Dreyer <ktdreyer> 0.4.1-1 - Update to 0.4.1 - Remove all upstreamed patches - No need to regenerate configure with autoconf - New upstream URL $ rpmlint msktutil-0.4.1-1.fc15.src.rpm msktutil.src: W: spelling-error Summary(en_US) interoperability -> interchangeability, invulnerability, inseparability msktutil.src: W: spelling-error %description -l en_US interoperability -> interchangeability, invulnerability, inseparability msktutil.src: W: spelling-error %description -l en_US keytab -> key tab, key-tab, petabyte msktutil.src: W: invalid-url Source0: https://msktutil.googlecode.com/files/msktutil-0.4.1.tar.bz2 HTTP Error 404: Not Found 1 packages and 0 specfiles checked; 0 errors, 4 warnings. (The spelling errors are false positives. Google Code always responds with a 404 to the rpmlint HEAD requests, but the file is there.) Koji scratch builds: F18:https://koji.fedoraproject.org/koji/taskinfo?taskID=3900674 F17:https://koji.fedoraproject.org/koji/taskinfo?taskID=3900669 F16:https://koji.fedoraproject.org/koji/taskinfo?taskID=3900664 F15:https://koji.fedoraproject.org/koji/taskinfo?taskID=3900651 EL6:https://koji.fedoraproject.org/koji/taskinfo?taskID=3900677 This version is more simple than the previous version, and is ready for review.
Hi, is the package for EPEL 5 ? if not, you should remove %clean, the rm at beggining of %install and BuildRoot, cf http://fedoraproject.org/wiki/Packaging:Guidelines#BuildRoot_tag
Hi Michael, Thanks for taking the review. I do intend to package for EPEL 5.
Ok So a few notes : - Source0: https://msktutil.googlecode.com/files/msktutil-0.4.1.tar.bz2 I would use %version there - I think you can clean the call to autoconf ( look cleaner, at least without the syntaxic coloration And I will start the formal review shortly.
Package Review ============== Key: - = N/A x = Pass ! = Fail ? = Not evaluated ==== C/C++ ==== [x]: MUST Header files in -devel subpackage, if present. [x]: MUST Package does not contain any libtool archives (.la) [x]: MUST Package does not contain kernel modules. [x]: MUST Package contains no static executables. [x]: MUST Rpath absent or only used for internal libs. [x]: MUST Package is not relocatable. ==== Generic ==== [x]: MUST Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: MUST Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: MUST %build honors applicable compiler flags or justifies otherwise. [x]: MUST All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [!]: MUST Buildroot is not present Note: Buildroot is not needed unless packager plans to package for EPEL5 [x]: MUST Package contains no bundled libraries. [x]: MUST Changelog in prescribed format. [!]: MUST Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) Note: Clean is needed only if supporting EPEL [ ]: MUST Sources contain only permissible code or content. [x]: MUST Each %files section contains %defattr if rpm < 4.4 Note: Note: defattr macros not found. They would be needed for EPEL5 [x]: MUST Macros in Summary, %description expandable at SRPM build time. [x]: MUST Package requires other packages for directories it uses. [x]: MUST Package uses nothing in %doc for runtime. [x]: MUST Package is not known to require ExcludeArch. [x]: MUST Permissions on files are set properly. [x]: MUST Package does not contain duplicates in %files. [x]: MUST Spec file lacks Packager, Vendor, PreReq tags. [!]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. Note: rm -rf is only needed if supporting EPEL5 [x]: MUST Large documentation files are in a -doc subpackage, if required. [x]: MUST If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %doc. [x]: MUST License field in the package spec file matches the actual license. [x]: MUST Package consistently uses macros (instead of hard-coded directory names). [x]: MUST Package is named according to the Package Naming Guidelines. [x]: MUST Package does not generate any conflict. [x]: MUST Package obeys FHS, except libexecdir and /usr/target. [-]: MUST If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: MUST Package must own all directories that it creates. [x]: MUST Package does not own files or directories owned by other packages. [x]: MUST Package installs properly. [x]: MUST Requires correct, justified where necessary. [!]: MUST Rpmlint output is silent. rpmlint msktutil-debuginfo-0.4.1-1.fc18.i686.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. rpmlint msktutil-0.4.1-1.fc18.i686.rpm msktutil.i686: W: spelling-error Summary(en_US) interoperability -> interchangeability, invulnerability, inseparability msktutil.i686: W: spelling-error %description -l en_US interoperability -> interchangeability, invulnerability, inseparability msktutil.i686: W: spelling-error %description -l en_US keytab -> key tab, key-tab, Kenyatta 1 packages and 0 specfiles checked; 0 errors, 3 warnings. rpmlint msktutil-0.4.1-1.fc18.src.rpm msktutil.src: W: spelling-error Summary(en_US) interoperability -> interchangeability, invulnerability, inseparability msktutil.src: W: spelling-error %description -l en_US interoperability -> interchangeability, invulnerability, inseparability msktutil.src: W: spelling-error %description -l en_US keytab -> key tab, key-tab, Kenyatta 1 packages and 0 specfiles checked; 0 errors, 3 warnings. [x]: MUST Sources used to build the package match the upstream source, as provided in the spec URL. /home/misc/checkout/git/FedoraReview/src/713313/msktutil-0.4.1.tar.bz2 : MD5SUM this package : 58a65cca949eec704912998e24d6dc34 MD5SUM upstream package : 58a65cca949eec704912998e24d6dc34 [x]: MUST Spec file is legible and written in American English. [x]: MUST Spec file name must match the spec package %{name}, in the format %{name}.spec. [-]: MUST Package contains a SysV-style init script if in need of one. [x]: MUST File names are valid UTF-8. [x]: MUST Useful -debuginfo package or justification otherwise. [x]: SHOULD Reviewer should test that the package builds in mock. [x]: SHOULD If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [x]: SHOULD Dist tag is present. [x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q --requires). [x]: SHOULD Package functions as described. [x]: SHOULD Latest version is packaged. [x]: SHOULD Package does not include license text files separate from upstream. [x]: SHOULD SourceX is a working URL. [x]: SHOULD Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [x]: SHOULD Package should compile and build into binary rpms on all supported architectures. [x]: SHOULD %check is present and all tests pass. [x]: SHOULD Packages should try to preserve timestamps of original installed files. [x]: SHOULD Spec use %global instead of %define. Issues: [!]: MUST Buildroot is not present Note: Buildroot is not needed unless packager plans to package for EPEL5 See: http://fedoraproject.org/wiki/Packaging/Guidelines#BuildRoot_tag [!]: MUST Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) Note: Clean is needed only if supporting EPEL See: http://fedoraproject.org/wiki/Packaging/Guidelines#.25clean [!]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. Note: rm -rf is only needed if supporting EPEL5 See: None [!]: MUST Rpmlint output is silent. rpmlint msktutil-debuginfo-0.4.1-1.fc18.i686.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. rpmlint msktutil-0.4.1-1.fc18.i686.rpm msktutil.i686: W: spelling-error Summary(en_US) interoperability -> interchangeability, invulnerability, inseparability msktutil.i686: W: spelling-error %description -l en_US interoperability -> interchangeability, invulnerability, inseparability msktutil.i686: W: spelling-error %description -l en_US keytab -> key tab, key-tab, Kenyatta 1 packages and 0 specfiles checked; 0 errors, 3 warnings. rpmlint msktutil-0.4.1-1.fc18.src.rpm msktutil.src: W: spelling-error Summary(en_US) interoperability -> interchangeability, invulnerability, inseparability msktutil.src: W: spelling-error %description -l en_US interoperability -> interchangeability, invulnerability, inseparability msktutil.src: W: spelling-error %description -l en_US keytab -> key tab, key-tab, Kenyatta 1 packages and 0 specfiles checked; 0 errors, 3 warnings. See: http://fedoraproject.org/wiki/Packaging/Guidelines#rpmlint Generated by fedora-review 0.2.0git External plugins: The rpmlint error are false positives, and the others issues found by fedora-review are ok for EPEL. Good to go for me.
New Package SCM Request ======================= Package Name: msktutil Short Description: Program for interoperability with Active Directory Owners: ktdreyer Branches: f15 f16 f17 el5 el6 InitialCC: Big thanks to misc for completing this one :)
Git done (by process-git-requests).
New Package SCM Request ======================= Package Name: msktutil Short Description: Program for interoperability with Active Directory Owners: ktdreyer Branches: f15 f16 f17 el5 el6 InitialCC: The package was properly created in pkgdb, but something went wrong on the Git server. When I do a local clone, I get "fatal: '/srv/git/rpms//msktutil.git' does not appear to be a git repository", and Gitweb shows a 404 error for the package. I'm resubmitting here.
Odd, it was in pkgdb but the git step got missed. Sorry, it should be fine now.
msktutil-0.4.1-1.fc17 has been submitted as an update for Fedora 17. https://admin.fedoraproject.org/updates/msktutil-0.4.1-1.fc17
msktutil-0.4.1-1.fc16 has been submitted as an update for Fedora 16. https://admin.fedoraproject.org/updates/msktutil-0.4.1-1.fc16
msktutil-0.4.1-1.fc15 has been submitted as an update for Fedora 15. https://admin.fedoraproject.org/updates/msktutil-0.4.1-1.fc15
msktutil-0.4.1-1.el6 has been submitted as an update for Fedora EPEL 6. https://admin.fedoraproject.org/updates/msktutil-0.4.1-1.el6
msktutil-0.4.1-1.el5 has been submitted as an update for Fedora EPEL 5. https://admin.fedoraproject.org/updates/msktutil-0.4.1-1.el5
msktutil-0.4.1-1.fc17 has been pushed to the Fedora 17 testing repository.
msktutil-0.4.1-1.fc16 has been pushed to the Fedora 16 stable repository.
msktutil-0.4.1-1.fc15 has been pushed to the Fedora 15 stable repository.
msktutil-0.4.1-1.fc17 has been pushed to the Fedora 17 stable repository.
msktutil-0.4.1-1.el5 has been pushed to the Fedora EPEL 5 stable repository.
msktutil-0.4.1-1.el6 has been pushed to the Fedora EPEL 6 stable repository.