MantisBT - CMake
View Issue Details
0013423CMakeCPackpublic2012-07-19 07:272016-06-10 14:31
mmarx 
Kitware Robot 
lowminoralways
closedmoved 
RPM
CMake 2.8.8 
 
0013423: CPACK_RPM_PACKAGE_SUGGESTS has no effect
When the parameter CPACK_RPM_PACKAGE_SUGGESTS defined in a cpack configuration file and lists packages, this value is not used to create the RPM spec file so that as a result the RPM is not suggesting the listed packages.

Here is a patch that fixes this issue:
---------------
--- 2.8.8orig/CPackRPM.cmake 2012-07-19 11:08:25.077945198 +0200
+++ 2.8.8modified/CPackRPM.cmake 2012-07-19 10:58:56.335934131 +0200
@@ -814,6 +814,7 @@
 Vendor: \@CPACK_RPM_PACKAGE_VENDOR\@
 \@TMP_RPM_URL\@
 \@TMP_RPM_REQUIRES\@
+\@TMP_RPM_SUGGESTS\@
 \@TMP_RPM_PROVIDES\@
 \@TMP_RPM_OBSOLETES\@
 \@TMP_RPM_CONFLICTS\@
---------------
1. Define CPACK_RPM_PACKAGE_SUGGESTS inside your cpack config file
2. Package an RPM with this config
3. The resulting RPM has no "Suggests" packages listed, check with "rpm -qp --suggests <file>.rpm"
No tags attached.
txt rpm-4.10-tags.txt (2,011) 2012-07-22 04:51
https://public.kitware.com/Bug/file/4399/rpm-4.10-tags.txt
txt rpm-4.4.2.3-tags-SLES11sp2.txt (2,305) 2012-07-22 05:10
https://public.kitware.com/Bug/file/4400/rpm-4.4.2.3-tags-SLES11sp2.txt
Issue History
2012-07-19 07:27mmarxNew Issue
2012-07-19 08:11mmarxNote Added: 0030085
2012-07-19 12:05Eric NOULARDAssigned To => Eric NOULARD
2012-07-19 12:05Eric NOULARDStatusnew => assigned
2012-07-19 12:06Eric NOULARDNote Added: 0030087
2012-07-22 04:46Eric NOULARDNote Added: 0030100
2012-07-22 04:51Eric NOULARDFile Added: rpm-4.10-tags.txt
2012-07-22 04:52Eric NOULARDNote Added: 0030101
2012-07-22 05:06mmarxNote Added: 0030102
2012-07-22 05:07mmarxNote Edited: 0030102bug_revision_view_page.php?bugnote_id=30102#r756
2012-07-22 05:10mmarxFile Added: rpm-4.4.2.3-tags-SLES11sp2.txt
2012-07-22 05:10mmarxNote Edited: 0030102bug_revision_view_page.php?bugnote_id=30102#r757
2012-07-22 05:22mmarxNote Added: 0030103
2012-07-22 05:38Eric NOULARDNote Added: 0030104
2012-07-30 09:05mmarxNote Added: 0030152
2012-08-07 13:23Eric NOULARDPrioritynormal => low
2012-08-07 13:23Eric NOULARDNote Added: 0030184
2012-08-07 13:23Eric NOULARDStatusassigned => backlog
2012-08-14 14:29Eric NOULARDAssigned ToEric NOULARD =>
2015-12-15 13:19Alex RettigNote Added: 0039985
2015-12-16 05:26Alex RettigNote Added: 0039989
2016-06-10 14:28Kitware RobotNote Added: 0042092
2016-06-10 14:28Kitware RobotStatusbacklog => resolved
2016-06-10 14:28Kitware RobotResolutionopen => moved
2016-06-10 14:28Kitware RobotAssigned To => Kitware Robot
2016-06-10 14:31Kitware RobotStatusresolved => closed

Notes
(0030085)
mmarx   
2012-07-19 08:11   
Sorry, I forgot to mention, I use SLES11 Service Pack 2
(0030087)
Eric NOULARD   
2012-07-19 12:06   
Thanks for the report I'll fix that this Week-End
(0030100)
Eric NOULARD   
2012-07-22 04:46   
It looks like the "suggests" RPM tag is not always supported by rpm.

Which version of rpm / rpmbuild is used on SLES11?

RPM version on my box (Debian) does not support suggests.

$ rpm --version
RPM version 4.10.0

I'll check on other distros fedora etc.., but the most recent
RPM Fedora book does not say a word about it...

http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/index.html [^]

Was it supported before and then disappeared...
If it was to be supported depending on RPM version (or Linux distro specific version of RPM) the patch should be somehow more complex...
(0030101)
Eric NOULARD   
2012-07-22 04:52   
Hi,

You should be able to get the comprehensive list of supported RPM TAG
using:
rpm --querytags

I've just uploaded the resulting list for my rpm 4.10,.... no SUGGESTS.
(0030102)
mmarx   
2012-07-22 05:06   
(edited on: 2012-07-22 05:10)
Hi,

I'm not sure if it worked and/or was supported before, I just added recently suggested packages.

------
$ lsb_release --all
LSB Version: core-2.0-noarch:core-3.2-noarch:core-4.0-noarch:core-2.0-x86_64:core-3.2-x86_64:core-4.0-x86_64:desktop-4.0-amd64:desktop-4.0-noarch:graphics-2.0-amd64:graphics-2.0-noarch:graphics-3.2-amd64:graphics-3.2-noarch:graphics-4.0-amd64:graphics-4.0-noarch
Distributor ID: SUSE LINUX
Description: SUSE Linux Enterprise Server 11 (x86_64)
Release: 11
Codename: n/a
------
$ rpm --version
RPM version 4.4.2.3
------

See attached file rpm-4.4.2.3-tags-SLES11sp2.txt for tag list

(0030103)
mmarx   
2012-07-22 05:22   
I also tried to build the package on CentOS6 and there rpmbuild fails when my patch is applied and complains that ....

------
CPackRPM: Will use GENERATED spec file: ...../build/_CPack_Packages/RPM/SPECS/package.spec
CPackRPM:Debug: You may consult rpmbuild logs in:
CPackRPM:Debug: - ...../build/_CPack_Packages/RPM/rpmbuild.err
CPackRPM:Debug: *** error: line 14: Unknown tag: Suggests: python-argparse, nc, telnet, PyGreSQL
 ***
------

But on SLES11sp2 it works fine and the resulting RPM is properly listing the suggested packages.
------
$ rpm -qp --suggests package.x86_64.rpm
python-argparse
netcat-openbsd
telnet
PyGreSQL
------
(0030104)
Eric NOULARD   
2012-07-22 05:38   
Yes,

That's precisely what I was afraid of.
The previous leftover consisting in not supporting SUGGESTS may have been
a "good mistake".

What we should do is to conditionally support the tag depending on the result
of rpm --querytags.

This is doable but I wonder whether if it's worth the work to do it, if
the tag is supposed to disappear in forthcoming rpm tools.

The rpm 4.4.x.y used on SLES11 looks like an oldish RPM version.
What do you think?
(0030152)
mmarx   
2012-07-30 09:05   
Hi,

sorry for the late reply.

The rpm version I am using on SLES11sp2 is the latest available and 11sp2 is the latest avaialbe SuSE Linux Enterprise Server. So that's as new as it can get.
My current assumption is that SuSE/Novell made their own changes to rpm to add support for "suggested" packages like it is available in Debian based distributions.

Since the package I am building is available for SLES11sp2 and CentOS/RHEL6 I am currently not sure what I will do. One possibility is to discard "suggested" packages all together and either list them as required or just document the "suggested" packages in the software manual for the package.
(0030184)
Eric NOULARD   
2012-08-07 13:23   
Moving to backlog, since there is no obvious working and portable solution.
I did lower prioritty to low as well.
(0039985)
Alex Rettig   
2015-12-15 13:19   
Could this issue be considered again for being fixed?

The documentation at
http://rpm.org/wiki/PackagerDocs/Dependencies [^]
doesn't suggest that the weak dependencies will be removed from RPM completely.

Checking for current support:
%> rpm --version --querytags
RPM version 4.11.1
%> rpm --querytags | grep -i "suppl\|enhanc\|recom\|sugg"
ENHANCES
ENHANCESFLAGS
ENHANCESNAME
ENHANCESVERSION
SUGGESTS
SUGGESTSFLAGS
SUGGESTSNAME
SUGGESTSVERSION

Thus the weak dependencies SUGGESTS and ENHANCES (the latter could also be added) seem to be supported.

If you decide not and never to support any weak dependency tag (would be a pity), could you please make sure that the documentation doesn't make you think the feature would be happily supported? This costs a lot of time to find out, that there is no such feature.

In case there is some interest for dealing with this issue I probably could provide a patch.

PS: I wonder if an general approach for providing different feature sets according to the available RPM version wouldn't be useful. As RPM is developing the problem with backwards compatibility may arise more often...
(0039989)
Alex Rettig   
2015-12-16 05:26   
Short amendment:
The weak dependency tags (Recommends, Supplements, Suggests, Enhances) are still there and their sematics are even enhanced, see see http://rpm.org/wiki/PackagerDocs/BooleanDependencies [^]
(0042092)
Kitware Robot   
2016-06-10 14:28   
Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current CMake Issues page linked in the banner at the top of this page.