Florian,
The rpm checking in downstream complains that glibc-nss-devel has a dependency on glibc because the *.so links point to the compat and files nss DSOs. It's probably simplest to just make the glibc-nss-devel depend on the explicit version of glibc they were built with.
OK with this change for rawhide and f29?
Signed-off-by: Carlos O'Donell carlos@redhat.com
diff --git a/glibc.spec b/glibc.spec index 5529eda..bfe0bb2 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,6 +1,6 @@ %define glibcsrcdir glibc-2.28-44-gf44c2ca5ea %define glibcversion 2.28 -%define glibcrelease 20%{?dist} +%define glibcrelease 21%{?dist} # Pre-release tarballs are pulled in from git using a command that is # effectively: # @@ -579,6 +579,7 @@ the Hesiod convention of Project Athena.
%package nss-devel Summary: Development files for directly linking NSS service modules +Requires: %{name} = %{version}-%{release} Requires: nss_db%{_isa} = %{version}-%{release} Requires: nss_hesiod%{_isa} = %{version}-%{release}
@@ -1901,6 +1902,9 @@ fi %files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared
%changelog +* Mon Nov 19 2018 Carlos O'Donell carlos@redhat.com - 2.28-21 +- Add dependency on glibc from glibc-nss-devel (#1651260) + * Mon Nov 19 2018 Florian Weimer fweimer@redhat.com - 2.28-20 - Auto-sync with upstream branch release/2.28/master, commit f44c2ca5eacd2df76fc38be75f9ebb8f0ff555eb: ---
* Carlos O'Donell:
The rpm checking in downstream complains that glibc-nss-devel has a dependency on glibc because the *.so links point to the compat and files nss DSOs. It's probably simplest to just make the glibc-nss-devel depend on the explicit version of glibc they were built with.
This looks like a false positive to me because we already have a transitive dependency on %{name}%{_isa} = %{version}-%{release} via nss_db%{_isa} = %{version}-%{release}.
The downstream check appears to be incorrect for Fedora, too. This tells a different story, I think:
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_explicit_requires
%package nss-devel Summary: Development files for directly linking NSS service modules +Requires: %{name} = %{version}-%{release} Requires: nss_db%{_isa} = %{version}-%{release} Requires: nss_hesiod%{_isa} = %{version}-%{release}
You didn't add %{_isa}. I suggest to use it for consistency.
Thanks, Florian
On 11/20/18 6:58 AM, Florian Weimer wrote:
- Carlos O'Donell:
The rpm checking in downstream complains that glibc-nss-devel has a dependency on glibc because the *.so links point to the compat and files nss DSOs. It's probably simplest to just make the glibc-nss-devel depend on the explicit version of glibc they were built with.
This looks like a false positive to me because we already have a transitive dependency on %{name}%{_isa} = %{version}-%{release} via nss_db%{_isa} = %{version}-%{release}.
In the technical sense it is a absolutely a false positive. There is enough information to ensure that things work. But in the abstract design of the package, if we moved the remaining NSS files out of the main glibc package, then the symlinks in the -devel package would be broken. So I think it's more of a warning.
The downstream check appears to be incorrect for Fedora, too. This tells a different story, I think:
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_explicit_requires
I didn't catch this in my review. Thanks. This is exactly the kind of policy statement I was look to review.
I think in this case of a -devel package with symlinks directly to files in the glibc package, we can probably list the explict requires because we control both subpackages. Otherwise I'd apply the "Explicit Requires" policy and call this a false positive.
%package nss-devel Summary: Development files for directly linking NSS service modules +Requires: %{name} = %{version}-%{release} Requires: nss_db%{_isa} = %{version}-%{release} Requires: nss_hesiod%{_isa} = %{version}-%{release}
You didn't add %{_isa}. I suggest to use it for consistency.
I will add %{_isa} and commit this.
In the future if we move NSS packages out of glibc then we'd change this Requires to match the new package that was split out.