Description: COBOL compiler, which translates COBOL programs to C code and compiles them using GCC. SRPM: https://fedorapeople.org/~limb/review/gnucobol/gnucobol-3.0-0.rc1.fc31.src.rpm SPEC: https://fedorapeople.org/~limb/review/gnucobol/gnucobol.spec
%configure unusable, -devel not needed.
*** Bug 1823134 has been marked as a duplicate of this bug. ***
>Release: 0.rc1%{?dist} Shouldn't this be something like 0.1.rc1 or 0.rc1.1? It must start with a 0. since this is a pre-release, but you'll still want a number you can increment if you change something in the spec while staying at 3.0.0-rc1. >Group: Development/Languages >Group: Development/Libraries Not used in Fedora. >%build >#export CFLAGS="$RPM_OPT_FLAGS -fPIC -O" >export CPPFLAGS="$CFLAGS" Setting the CFLAGS is commented-out. CPPFLAGS is thus set to an empty var. The build ends up not using Fedora's %{optflags}.
I'll fix the release and group. Regarding flags, if we build with optflags, the -strong flag breaks the build.
I know, I remember that from Anton's review request. But I think if anything, that's a reason to try and patch the configure script, rather than not use the optflags. Which reminds me, it might be a good idea to contact upstream and let them know that their "remove unwanted CFLAGS code" is broken.
I've applied the patch from the prior review to fix this issue. SRPM: https://fedorapeople.org/~limb/review/gnucobol/gnucobol-3.0-0.rc1.1.fc31.src.rpm SPEC: https://fedorapeople.org/~limb/review/gnucobol/gnucobol.spec
And I'll contact upstream.
Toshio beat me to it. :) https://sourceforge.net/p/open-cobol/patches/49/
I've been outside of Fedora for quite a while so I might not know what I'm doing here but I think these would be good changes: --- gnucobol.spec.vanilla 2020-04-16 23:44:30.448960249 -0700 +++ gnucobol.spec 2020-04-16 23:45:48.743879632 -0700 @@ -2,7 +2,7 @@ Name: gnucobol Version: 3.0 -Release: 0.rc1%{?dist}.1 +Release: 0.1.rc1%{?dist} Summary: COBOL compiler License: GPLv2+ and LGPLv2+ @@ -63,6 +63,7 @@ %files -f %{name}.lang %license COPYING +%license COPYING.DOC %doc AUTHORS ChangeLog %doc NEWS README THANKS %{_bindir}/cobc @@ -77,15 +78,16 @@ %files -n libcob +%license COPYING.LESSER %{_libdir}/libcob.so.* %{_libdir}/gnucobol/CBL_OC_DUMP.so %post -/sbin/install-info %{_infodir}/open-cobol.info %{_infodir}/dir 2>/dev/null || : +/sbin/install-info %{_infodir}/gnucobol.info %{_infodir}/dir 2>/dev/null || : %postun if [ $1 = 0 ]; then - /sbin/install-info --delete %{_infodir}/open-cobol.info %{_infodir}/dir 2>/dev/null || : + /sbin/install-info --delete %{_infodir}/gnucobol.info %{_infodir}/dir 2>/dev/null || : fi %post -n libcob -p /sbin/ldconfig * Changing Release will let you keep the initial .0 to designate the pre-release and increment the second number no matter how upstream's version or the disttag changes. ie: 0.1.rc1.fc31 0.2.r2.fc31 0.3.r2.fc32 * The %license additions just add the other license files that upstream seems to have added for completeness (with different licenses for different parts of the code) * The install-info changes are because the info filenames have changed. Thanks for packaging this :-)
Thank you! I'll integrate these.
Calling ldconfig and install-info in %post and %postun is no longer required, both is handled by rpm file triggers in Fedora.
Updated.
SRPM: https://fedorapeople.org/~limb/review/gnucobol/gnucobol-3.1-1.fc32.src.rpm SPEC: https://fedorapeople.org/~limb/review/gnucobol/gnucobol.spec
Hello. It would be nice to have GnuCOBOL esqlOC packaged, as well. https://sourceforge.net/p/open-cobol/contrib/HEAD/tree/trunk/esql/ Regards.
This isn't part of the current distributions, but I'll keep an eye on it.
(In reply to Gwyn Ciesla from comment #15) > This isn't part of the current distributions, but I'll keep an eye on it. Thanks! ;)
A few additional notes: - Requires(post): /sbin/install-info is not required, the same is the case for Requires(post/postun): /sbin/ldconfig. - %setup -q -> %autosetup - make %{?_smp_mflags} -> %make_build - make install DESTDIR=$RPM_BUILD_ROOT -> %make_install - $RPM_BUILD_ROOT -> %{buildroot} - $RPM_OPT_FLAGS -> %optflags or %build_cflags - there are headers and a shared library in the main package, these usually belong into -devel subpackages - libcob.so is included in the libcob subpackage via a wildcard, this is strongly discouraged as that hides the SONAME - You appear to be packaging the nightly release, why? Since there is no stable URL to that, this makes reproducability complicated. - The Requires: glibc-devel and gmp-devel should not be required, rpm finds out by itself that libcob requires libc, libgmp and libm - Your package does not own %{_libdir}/%{name}, but creates it. - cob-config is a static executable, which is afaik not permitted in Fedora
SRPM: https://fedorapeople.org/~limb/review/gnucobol/gnucobol-3.1-2.fc32.src.rpm SPEC: https://fedorapeople.org/~limb/review/gnucobol/gnucobol.spec Updated. The requires and lack of devel package are because this is a compiler, and those pieces are always needed. The nightly release is because 3.1 isn't out yet, and contains build fixes needed that are missing in 3.0. cob-config is a shell script.
- Not needed Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig - You need a libcob-devel subpackage to contains include and unversioned .so file. This subpackage must depend on the libcob subpackage. %package -n libcob-devel Summary: GnuCOBOL development library Requires: libcob%{?_isa} = %{version}-%{release} %description -n libcob-devel %{summary}. Development libraries for GnuCOBOL […] %files -n libcob-devel %{_libdir}/libcob.so %{_includedir}/* - make install DESTDIR=%{buildroot} → %make_install - You should use a URL for Source0 or explain how you generated the archive. For example there is https://ci.appveyor.com/api/projects/GitMensch/gnucobol-3-x/artifacts/gnucobol-3.1-dev.tar.gz?job=Image:%20Ubuntu1804 for the latest dev. See https://sourceforge.net/projects/open-cobol/files/gnucobol/nightly_snapshots/
I've removed the ldconfig requires in my local spec. A devel package doesn't make sense in this instance, as this is a compiler. The main package would need to require the -devel package to function, and the -devel package wouldn't be relevant without the main package. I'm not using the make install macro currently because of a build issue that I'm troubleshooting with upstream, hence the tarball. It's currently a SVN snapshot but will revert to a traditional Source0 URL once resolved and released.
- Add an explicit BR for gcc - [!]: Package should not use obsolete m4 macros Note: Some obsoleted macros found, see the attachment. See: https://fedorahosted.org/FedoraReview/wiki/AutoTools AutoTools: Obsoleted m4s found ------------------------------ AC_PROG_LIBTOOL found in: gnucobol-3.1-dev/configure.ac:378 Patch this with LT_INIT instead and suggest patch upstream.kk Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= - If your application is a C or C++ application you must list a BuildRequires against gcc, gcc-c++ or clang. Note: No gcc, gcc-c++ or clang found in BuildRequires See: https://docs.fedoraproject.org/en-US/packaging-guidelines/C_and_C++/ - Header files in -devel subpackage, if present. Note: gnucobol : /usr/include/libcob.h gnucobol : /usr/include/libcob/cobgetopt.h gnucobol : /usr/include/libcob/common.h See: https://docs.fedoraproject.org/en-US/packaging- guidelines/#_devel_packages - Development (unversioned) .so files in -devel subpackage, if present. Note: Unversioned so-files directly in %_libdir. See: https://docs.fedoraproject.org/en-US/packaging- guidelines/#_devel_packages ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [x]: ldconfig not called in %post and %postun for Fedora 28 and later. [x]: Package does not contain any libtool archives (.la) [x]: Rpath absent or only used for internal libs. Generic: [x]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "Unknown or generated", "*No copyright* GNU Lesser General Public License", "FSF All Permissive License", "GPL (v3 or later)", "GNU General Public License GNU Lesser General Public License", "GNU Lesser General Public License (v3 or later)", "FSF Unlimited License (with Retention)", "Expat License", "GPL (v7)", "GNU Free Documentation License (v1.3 or later)", "*No copyright* GPL (v3 or later)", "GNU Lesser General Public License (v2.1 or later)", "FSF Unlimited License (with Retention) GNU General Public License GNU Lesser General Public License", "FSF Unlimited License (with Retention) GNU General Public License (v2)". 124 files have unknown license. Detailed output of licensecheck in /home/bob/packaging/review/gnucobol/review-gnucobol/licensecheck.txt [x]: License file installed when any subpackage combination is installed. [x]: If the package is under multiple licenses, the licensing breakdown must be documented in the spec. [x]: %build honors applicable compiler flags or justifies otherwise. [x]: Package contains no bundled libraries without FPC exception. [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [-]: Package contains desktop file if it is a GUI application. [-]: Development files must be in a -devel package [x]: Package uses nothing in %doc for runtime. [x]: The spec file handles locales properly. [x]: Package consistently uses macros (instead of hard-coded directory names). [x]: Package is named according to the Package Naming Guidelines. [x]: Package does not generate any conflict. [x]: Package obeys FHS, except libexecdir and /usr/target. [-]: If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [-]: Package contains systemd file(s) if in need. [x]: Useful -debuginfo package or justification otherwise. [x]: Package is not known to require an ExcludeArch tag. [-]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 92160 bytes in 5 files. [x]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [x]: 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 %license. [x]: Package requires other packages for directories it uses. [x]: Package does not own files or directories owned by other packages. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Dist tag is present. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: Package does not use a name that already exists. [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [-]: 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]: Final provides and requires are sane (see attachments). [x]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in libcob [?]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [-]: Sources are verified with gpgverify first in %prep if upstream publishes signatures. Note: gpgverify is not used. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [x]: Package should compile and build into binary rpms on all supported architectures. [-]: %check is present and all tests pass. [x]: Packages should try to preserve timestamps of original installed files. [ ]: Spec use %global instead of %define unless justified. Note: %define requiring justification: %define cobvers 3.1 [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: SourceX is a working URL. ===== EXTRA items ===== Generic: [!]: Package should not use obsolete m4 macros Note: Some obsoleted macros found, see the attachment. See: https://fedorahosted.org/FedoraReview/wiki/AutoTools [-]: Large data in /usr/share should live in a noarch subpackage if package is arched. Note: Arch-ed rpms have a total of 1085440 bytes in /usr/share [x]: Rpmlint is run on debuginfo package(s). Note: No rpmlint messages. [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: gnucobol-3.1-2.fc33.x86_64.rpm libcob-3.1-2.fc33.x86_64.rpm gnucobol-debuginfo-3.1-2.fc33.x86_64.rpm gnucobol-debugsource-3.1-2.fc33.x86_64.rpm gnucobol-3.1-2.fc33.src.rpm gnucobol.x86_64: E: devel-dependency glibc-devel gnucobol.x86_64: E: library-not-linked-against-libc /usr/lib64/gnucobol/CBL_OC_DUMP.so gnucobol.x86_64: W: devel-file-in-non-devel-package /usr/bin/cob-config gnucobol.x86_64: W: devel-file-in-non-devel-package /usr/include/libcob.h gnucobol.x86_64: W: devel-file-in-non-devel-package /usr/include/libcob/cobgetopt.h gnucobol.x86_64: W: devel-file-in-non-devel-package /usr/include/libcob/common.h gnucobol.x86_64: W: devel-file-in-non-devel-package /usr/lib64/libcob.so libcob.x86_64: E: library-not-linked-against-libc /usr/lib64/gnucobol/CBL_OC_DUMP.so libcob.x86_64: W: no-documentation gnucobol.src:11: W: macro-in-comment %{name} gnucobol.src:11: W: macro-in-comment %{name} gnucobol.src:11: W: macro-in-comment %{cobvers} gnucobol.src: E: specfile-error warning: Macro expanded in comment on line 11: %{name}/%{name}-%{cobvers}.tar.gz 5 packages and 0 specfiles checked; 4 errors, 9 warnings.
Thank you! Addressed all issues but -devel package for previously stated reasons. SRPM: https://fedorapeople.org/~limb/review/gnucobol/gnucobol-3.1-3.fc32.src.rpm SPEC: https://fedorapeople.org/~limb/review/gnucobol/gnucobol.spec
Package approved.
Thank you!
(fedscm-admin): The Pagure repository was created at https://src.fedoraproject.org/rpms/gnucobol
FEDORA-2020-63ec62898d has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-63ec62898d
Gwyn, will you also add this to the EPEL 8 repo for CentOS/RHEL users?
FEDORA-2020-63ec62898d has been pushed to the Fedora 32 testing repository. In short time you'll be able to install the update with the following command: `sudo dnf install --enablerepo=updates-testing --advisory=FEDORA-2020-63ec62898d \*` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-63ec62898d See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
Yes. :)
FEDORA-EPEL-2020-9ee16640e9 has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-9ee16640e9
FEDORA-EPEL-2020-9ee16640e9 has been pushed to the Fedora EPEL 8 testing repository. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-9ee16640e9 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2020-63ec62898d has been pushed to the Fedora 32 stable repository. If problem still persists, please make note of it in this bug report.
FEDORA-EPEL-2020-def71cae41 has been pushed to the Fedora EPEL 8 testing repository. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-def71cae41 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-EPEL-2020-6e4abc955e has been pushed to the Fedora EPEL 8 testing repository. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-6e4abc955e See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-EPEL-2020-6e4abc955e has been pushed to the Fedora EPEL 8 stable repository. If problem still persists, please make note of it in this bug report.