Fedora Merge Review: gcc http://cvs.fedora.redhat.com/viewcvs/devel/gcc/ Initial Owner: jakub
BLOCKER: MUST: The spec file name must match the base package %{name}, in the format %{name}.spec But it currently is gcc41.spec.
According to Jesse Keating that's just a suggestion, not a hard requirement. Encoding the major/minor version in the spec filename makes it easier to merge changes side by side between different gcc spec files, and more importantly, renaming it now would with the crappy CVS mean losing the CVS history for that file.
It's a requirement. See the third MUST item on: http://www.fedoraproject.org/wiki/Packaging/ReviewGuidelines This was discussed a very long time ago, before the Packaging Committee was formed. Let me know if you consider this important enough that you'd like us to bring it up for discussion at a future Packaging Meeting.
Yes, I do consider this important enough. Also, gcc isn't the only package that intentionally uses different spec naming, see e.g. kernel-2.6.spec.
Added to the Packaging Committee schedule. I'll update this bug with any information I turn up from spot or the mailing list archives before then. If you (or DaveJ regarding the kernel) are interested in arguing the case for %{name}-%{version}, discussion will kick off on fedora-packaging and continue on #fedora-packaging on freenode, Tuesday, February 13th, 17:00 UTC, if we can't achieve agreement on the mailing list.
We've had some initial conversations on #fedora-packaging which is leading to these thoughts: 1) The original reason for the guideline was to prevent foo-1.0.tar.gz => bar.spec. 2) Preserving history is a perfectly valid wish. 3) comparing two versions of the spec could be done with the SCM's diff command: cvs diff -u -r qa-assistant-0_4_1-4_fc5 -r HEAD qa-assistant.spec for instance. So my current thought on a proposal is: ''' The spec file should be named using the %{name}.spec scheme. This is to make it easier for people to find the appropriate spec when they install a src.rpm. Example: If your package is named foo-1.0.0-1.src.rpm, then the spec file should be named foo.spec. There is no need to include the %{version} in the spec file name. If you are packaging multiple versions of a package for simultaneous use, they should already reflect the version in the %{name}.spec scheme (refer to Multiple Packages with the same base name for details). In normal cases adding the version can cause the spec file's history to be lost when a package's version is upgraded. As a special exception, there are a few packages which are allowed to have a version in their spec filename. This is because they had the version in their name when they were merged from Fedora Core's cvs and removing the version at that time would *lose* history: * gcc * [Please ask the packaging committee to add your package if you think it should fall under this exception as well.] This exception will go away when any of the following criteria are met: 1) We move the packages to a revision control system which is able to preserve history across a file rename. 2) The package spec file is going to be renamed anyway (for example, gcc41.spec is imported into cvs. When gcc is upgraded to gcc-4.2, the new spec will be created as gcc.spec) ''' This text will appear on: http://www.fedoraproject.org/wiki/Packaging/NamingGuidelines and be linked from: http://www.fedoraproject.org/wiki/Packaging/ReviewGuidelines Let me know if this addresses your concerns or if you have some ideas to make it better. I'll post it to fedora-packaging later today if you have no objections.
The proposal was accepted by the packaging committee. Officially this has to wait a week for people in Core nad Extras to raise potential problems and veto the proposal. If that doesn't occur then this guideline change will be approved. I think the logic is pretty sound so I'm removing the FE-GUIDELINES blocker bug.
> and more importantly, renaming it now would with the crappy CVS mean losing > the CVS history for that file. That was the excuse for gcc41.spec, but why do we have a gcc43.spec now? :-(
I think we're early enough in the process of gcc43.spec to move/rename the spec file - there were currently only two commits/builds so nothing really gets lost.
This package has been chosen as one we'd like to have reviewed before F9 release. However, currently fedora-review is set to '?' but I don't see an assigned reviewer. Is anyone actually reviewing this?
You might be interested in these Debian bugs, some of which have patches: http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-gcc-4.2;users=tbm@cyrius.com http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-gcc-4.3;users=tbm@cyrius.com Debian is proposing to use GCC 4.3 with the release of lenny: http://lists.debian.org/debian-release/2007/09/msg00001.html http://lists.debian.org/debian-release/2008/01/threads.html#00250 Personally I think this will result in either a long delay or many removed packages, or a combination of both.
I'm potentially interested in doing this merge review, but as long as the spec file isn't named according to the guidelines, it's not even worth looking any further. :-(
Here is some rpmlint output: gcc.src: E: no-spec-file gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/ammintrin.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/varargs.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/libgcc.a gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/cpuid.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/unwind.h gcc.i386: W: file-not-utf8 /usr/share/doc/gcc-4.3.2/ChangeLog-2007.bz2 gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/float.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/tmmintrin.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/xmmintrin.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/bmmintrin.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/emmintrin.h gcc.i386: W: file-not-utf8 /usr/share/doc/gcc-4.3.2/ChangeLog-2000.bz2 gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/libgcc_eh.a gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/mmintrin-common.h gcc.i386: W: file-not-utf8 /usr/share/doc/gcc-4.3.2/ChangeLog-2003.bz2 gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/stdarg.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/libgomp.a gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/libgcc_s.so gcc.i386: W: symlink-should-be-relative /usr/lib/gcc/i386-redhat-linux/4.3.2/libgcc_s.so /lib/libgcc_s.so.1 gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/mm_malloc.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/pmmintrin.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/libgomp.so gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/omp.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/stddef.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/syslimits.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/nmmintrin.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/iso646.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/smmintrin.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/stdbool.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/libgcov.a gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/limits.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/mmintrin.h gcc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/mm3dnow.h gcc.i386: W: file-not-utf8 /usr/share/doc/gcc-4.3.2/ChangeLog-2006.bz2 gcc.i386: W: file-not-utf8 /usr/share/info/gccint.info.gz gcc.i386: W: file-not-utf8 /usr/share/doc/gcc-4.3.2/ChangeLog-2004.bz2 gcc.i386: E: devel-dependency glibc-devel gcc.i386: W: obsolete-not-provided gcc3 gcc.i386: W: obsolete-not-provided egcs gcc.i386: W: obsolete-not-provided gcc-chill gcc.i386: W: obsolete-not-provided gcc34 gcc.i386: W: obsolete-not-provided gcc35 gcc.i386: W: obsolete-not-provided gcc4 1 packages and 0 specfiles checked; 1 errors, 42 warnings. gcc-c++.i386: W: file-not-utf8 /usr/share/doc/gcc-c++-4.3.2/ChangeLog-2006.bz2 gcc-c++.i386: W: file-not-utf8 /usr/share/doc/gcc-c++-4.3.2/ChangeLog-1998.bz2 gcc-c++.i386: W: file-not-utf8 /usr/share/doc/gcc-c++-4.3.2/ChangeLog-2000.bz2 gcc-c++.i386: W: file-not-utf8 /usr/share/doc/gcc-c++-4.3.2/ChangeLog-1999.bz2 gcc-c++.i386: E: devel-dependency libstdc++-devel gcc-c++.i386: W: obsolete-not-provided gcc3-c++ gcc-c++.i386: W: obsolete-not-provided gcc34-c++ gcc-c++.i386: W: obsolete-not-provided gcc35-c++ gcc-c++.i386: W: obsolete-not-provided gcc4-c++ 1 packages and 0 specfiles checked; 1 errors, 8 warnings. gcc-objc++.i386: W: no-documentation gcc-objc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/objc/objc-api.h gcc-objc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/objc/thr.h gcc-objc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/objc/encoding.h gcc-objc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/objc/typedstream.h gcc-objc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/objc/Object.h gcc-objc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/objc/NXConstStr.h gcc-objc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/objc/hash.h gcc-objc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/objc/objc-decls.h gcc-objc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/objc/sarray.h gcc-objc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/libobjc.so gcc-objc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/objc/objc-list.h gcc-objc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/objc/objc.h gcc-objc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/libobjc.a gcc-objc.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/include/objc/Protocol.h gcc-objc.i386: W: obsolete-not-provided gcc3-objc gcc-java.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/libgij.so gcc-java.i386: W: file-not-utf8 /usr/share/doc/gcc-java-4.3.2/ChangeLog.bz2 gcc-java.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/libgcj-tools.so gcc-java.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/libgcj.so gcc-java.i386: E: devel-dependency libgcj-devel gcc-java.i386: W: obsolete-not-provided gcc3-java gcc-java.i386: W: obsolete-not-provided gcc34-java gcc-java.i386: W: obsolete-not-provided gcc35-java gcc-java.i386: W: obsolete-not-provided gcc4-java gcc-java.i386: E: binary-or-shlib-defines-rpath /usr/bin/gcjh ['/usr/lib'] gcc-java.i386: E: binary-or-shlib-defines-rpath /usr/bin/gjavah ['/usr/lib'] gcc-java.i386: E: only-non-binary-in-usr-lib gcc-gfortran.i386: W: file-not-utf8 /usr/share/doc/gcc-gfortran-4.3.2/ChangeLog-2004.bz2 gcc-gfortran.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/finclude/omp_lib.h gcc-gfortran.i386: W: file-not-utf8 /usr/share/doc/gcc-gfortran-4.3.2/ChangeLog-2007.bz2 gcc-gfortran.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/libgfortran.so gcc-gfortran.i386: W: file-not-utf8 /usr/share/doc/gcc-gfortran-4.3.2/ChangeLog-2006.bz2 gcc-gfortran.i386: W: file-not-utf8 /usr/share/doc/gcc-gfortran-4.3.2/ChangeLog-2005.bz2 gcc-gfortran.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/libgfortranbegin.a gcc-gfortran.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/libgfortran.a gcc-gfortran.i386: W: obsolete-not-provided gcc3-g77 gcc-gfortran.i386: W: obsolete-not-provided gcc-g77 gcc-gfortran.i386: W: obsolete-not-provided gcc4-gfortran gcc-gnat.i386: W: file-not-utf8 /usr/share/doc/gcc-gnat-4.3.2/ChangeLog.bz2 gcc-gnat.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/adalib/libgmem.a gcc-gnat.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/adalib/libgnarl.a gcc-gnat.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/adalib/libgnat.a gcc-gnat.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/adalib/libgccprefix.a gcc-gnat.i386: W: devel-file-in-non-devel-package /usr/lib/gcc/i386-redhat-linux/4.3.2/adalib/libgnala.a gcc-gnat.i386: W: dangling-relative-symlink /usr/bin/gnatgcc gcc gcc-gnat.i386: W: obsolete-not-provided gnat-devel gcc-gnat.i386: W: obsolete-not-provided gcc3-gnat gcc-gnat.i386: E: binary-or-shlib-defines-rpath /usr/bin/gnative2ascii ['/usr/lib'] 7 packages and 0 specfiles checked; 7 errors, 95 warnings.
Note that all of those devel-file-in-non-devel-package complaints are bogus; this is a compiler, and a gcc-devel package would be entirely pointless. Those obsolete-not-provided bits could probably use some cleaning up. There's not much reason to obsolete something which hasn't been in Fedora for perhaps three releases. The devel-file-dependency is obviously not problematic. I'm not sure about the file-not-utf8 complaints. Obviously it would be nice for folks to be able to look at those changelogs and see the names of the contributors not being mangled, but there's probably some manual conversion effort involved and that would have to go upstream.
Yes, the devel-file-in-non-devel-package and devel-dependency are bogus, gcc* are devel packages, the same for dangling-relative-symlink (the target of the symlink is provided by dependent package). I guess I could try to iconv the ChangeLog files and will definitely drop /usr/bin/gnative2ascii and can look at fighting crappy libtool to get rid of the rpaths. The obsolete-not-provided are useful there e.g. when backporting to older releases, though guess I could just comment them out.
Mass reassigning all merge reviews to their component. For more details, see this FESCO ticket: https://fedorahosted.org/fesco/ticket/1269 If you don't know what merge reviews are about, please see: https://fedoraproject.org/wiki/Merge_Reviews How to handle this bug is left to the discretion of the package maintainer.
This bug appears to have been reported against 'rawhide' during the Fedora 23 development cycle. Changing version to '23'. (As we did not run this process for some time, it could affect also pre-Fedora 23 development cycle bugs. We are very sorry. It will help us with cleanup during Fedora 23 End Of Life. Thank you.) More information and reason for this action is here: https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora23
This message is a reminder that Fedora 23 is nearing its end of life. Approximately 4 (four) weeks from now Fedora will stop maintaining and issuing updates for Fedora 23. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a Fedora 'version' of '23'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora 23 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior this bug is closed as described in the policy above. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete.
Fedora 23 changed to end-of-life (EOL) status on 2016-12-20. Fedora 23 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. If you are unable to reopen this bug, please file a new report against the current release. If you experience problems, please add a comment to this bug. Thank you for reporting this bug and we are sorry it could not be fixed.
This bug appears to have been reported against 'rawhide' during the Fedora 26 development cycle. Changing version to '26'.
This message is a reminder that Fedora 26 is nearing its end of life. Approximately 4 (four) weeks from now Fedora will stop maintaining and issuing updates for Fedora 26. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a Fedora 'version' of '26'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora 26 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior this bug is closed as described in the policy above. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete.
Fedora 26 changed to end-of-life (EOL) status on 2018-05-29. Fedora 26 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. If you are unable to reopen this bug, please file a new report against the current release. If you experience problems, please add a comment to this bug. Thank you for reporting this bug and we are sorry it could not be fixed.