Bug#861218: libgssapi-krb5-2: soname-independent files in shared library package (policy 8.2)

2017-07-23 Thread Sam Hartman
I'll remove it in purge.; there's another bug open effectively for that.
However, I think it is generally a good thing if the file exists.
Because of the dpkg bug we no longer install it, but I think our users
are better served by leaving the file on upgrades.



Bug#861218: libgssapi-krb5-2: soname-independent files in shared library package (policy 8.2)

2017-07-19 Thread Laurent Bigonville
Package: libgssapi-krb5-2
Followup-For: Bug #861218

Hi,

It seems that this bug is not completely fixed.

The file is not shipped in the package anymore, but as the file was
installed in /etc it should explicitly be removed during the upgrade in
the maintainer script.

Could you please have a look at that?

Regards,

Laurent Bigonville

-- System Information:
Debian Release: buster/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unstable'), (1, 
'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.11.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_BE.UTF-8, LC_CTYPE=fr_BE.UTF-8 (charmap=UTF-8), 
LANGUAGE=fr_BE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)



Bug#861218: libgssapi-krb5-2: soname-independent files in shared library package (policy 8.2)

2017-05-01 Thread Sam Hartman
control: severity -1 normal

Will remove this file early in buster.



Bug#861218: libgssapi-krb5-2: soname-independent files in shared library package (policy 8.2)

2017-04-30 Thread Benjamin Kaduk
It seems like an /etc/gss/mech.d/README-- (or similar)
would alleviate the technical problems with having a single file
named README, and would be glob-able for consuming software that is
adapted to know about a broader convention.  It would, of course, be
slightly confusing to users even if there is only one file with such
a naming scheme, let alone two with identical contents.

Would such a scheme be preferable to removing the README entirely
for buster?

-Ben



Bug#861218: libgssapi-krb5-2: soname-independent files in shared library package (policy 8.2)

2017-04-30 Thread Helmut Grohne
Hi Sam,

On Sun, Apr 30, 2017 at 12:03:30PM -0400, Sam Hartman wrote:
> I'm going to start by  explaining why that file is there and asking for
> your help in figuring out what to do.
> I'm then going to argue that this is not an RC bug (probably not even a
> bug at all).
> But I'm more interested in finding a solution that works for us both
> than simply closing bugs because I can.

Thank you for taking the time to write down all of this background
information.

> I think we can move away from that approach for stretch +1, but I really
> kind of need that file to be there, and I'm quite uncomfortable trying
> to get the replaces/conflicts/provides dance correct this late in the
> stretch cycle.

I'm mainly interested in a long-term fix here. My work on improving
cross buildability (and thus multiarchy stuff) in Debian is reaching a
point where it can be advertised as a technology preview. It still is
rough around a lot of corners. Dropping the file early in the buster
cycle sounds reasonable to me. My work is still mainly focused on sid
rather than stable releases. Hundreds of bugs with patches are waiting
to be applied.

> I claim this is not a violation of policy 8.2.  In particular, It seems
> very likely that if the soname of libgssapi_krb5 changes, you'll need
> different mechanism configuration for the new version.  It seems very
> unlikely that the same mechanism will work for GSS v2 and v3.  So, I'd
> expect the directory to be /etc/gss3/mech.d or /etc/gss/mech3.d, and if
> the readme were retained, I'd expect it to be in that new directory in
> the new library.

That explanation makes a lot of sense to me, but it is not very obvious
when looking at the package without much kerberos background and seeing
the unversioned directory.

Given all of the above, I think we should not fix this bug in stretch.
The sequence yielding an installation error is not easy to encounter and
requires at least two architectures enabled. It also is easy to work
around and I hope that we are seeing a fix in dpkg for it. Thus I think
that downgrading the bug below rc severity is reasonable.

I still think there is a bug, but it is hard to figure where it actually
is. The concept of having shared files in Multi-Arch: same packages was
introduced to ease adoption, but it turned out that these shared files
cause a lot of headache. Too often, they do differ despite setting
M-A:same and as we have seen here, carrying conffiles in M-A:same
packages is less than well-tested. Some people (dpkg maintainer Guillem
Jover included) argue that allowing shared files was a mistake. I thus
try to minimize their presence.

Helmut



Bug#861218: libgssapi-krb5-2: soname-independent files in shared library package (policy 8.2)

2017-04-30 Thread Sam Hartman
> "Helmut" == Helmut Grohne  writes:

Helmut> Package: libgssapi-krb5-2 Version: 1.15-1 Severity: serious
Helmut> libgssapi-krb5-2 is a shared library package and contains
Helmut> /etc/gss/mech.d/README. The latter filename does not depend
Helmut> on the soname of the library and thus does not change when
Helmut> the soname changes.

Hi.

I'm going to start by  explaining why that file is there and asking for
your help in figuring out what to do.
I'm then going to argue that this is not an RC bug (probably not even a
bug at all).
But I'm more interested in finding a solution that works for us both
than simply closing bugs because I can.

The issue is that older versions of krb5 had two related problems with
regard to /etc/gss/mech.d:

1) They only supported a config file for reading mechanism config, not
an entire directory

2) Because of a bug in how I set prefix, they read /usr/etc/gss/mech not
/etc/gss/mech as that config file.

Nothing shipped /usr/etc/gss/mech on Debian--it's clearly not
FHS-compatible.

However, there are some gss mechanism packages, mostly not in Debian,
that need to configure themselves even on older krb5.
I needed a way to figure out whether the gss library was new enough to
read /etc/gss/mech.d.

So I dropped a README in that directory.  Code that detects that file
and uses it as a flag not to create and write /usr/etc/gss/mech has
escaped.  The main culprit is moonshot-gss-eap (especially versions not
in Debian), but I've recommended the approach to others and not tracked
where all it might be being used.

I think we can move away from that approach for stretch +1, but I really
kind of need that file to be there, and I'm quite uncomfortable trying
to get the replaces/conflicts/provides dance correct this late in the
stretch cycle.


So, that's why I care about the file for stretch, and why I want to be
careful about a fix.

I claim this is not a violation of policy 8.2.  In particular, It seems
very likely that if the soname of libgssapi_krb5 changes, you'll need
different mechanism configuration for the new version.  It seems very
unlikely that the same mechanism will work for GSS v2 and v3.  So, I'd
expect the directory to be /etc/gss3/mech.d or /etc/gss/mech3.d, and if
the readme were retained, I'd expect it to be in that new directory in
the new library.

That said, I'll note that libgssapi_krb5.so.2 has been stable since
before the release of Kerberos 1.0 back in 1995.  A change in gss's
soname is going to be a huge massive pain in all sorts of ways if it
ever happens, and I don't think having to deal with one README is going
to even make the headache list.

You said that you're running into dpkg issues.
I'm sympathetic to that, but I'd like to find a way that your needs and
mine can both be met.

--Sam



Bug#861218: libgssapi-krb5-2: soname-independent files in shared library package (policy 8.2)

2017-04-27 Thread Benjamin Kaduk
Hi Helmut,

On Wed, Apr 26, 2017 at 06:52:58AM +0200, Helmut Grohne wrote:
> Package: libgssapi-krb5-2
> Version: 1.15-1
> Severity: serious
> Justification: violates policy section 8.2
> 
> libgssapi-krb5-2 is a shared library package and contains
> /etc/gss/mech.d/README. The latter filename does not depend on the
> soname of the library and thus does not change when the soname changes.
> Thus the package will not be coinstallable a newer soname of the same
> library and make system upgrades unnecessarily difficult. This violates
> the first sentence from policy section 8.2, which is a must:
> 
> | If your package contains files whose names do not change with each
> | change in the library shared object version, you must not put them in
> | the shared library package.
> 
> This actually causes problems today, due to a related bug in dpkg, which
> does not properly support conffiles in m-a:same packages (#861217).

Thanks for the report, and sorry that it is causing problems.
I think we will need to discuss the best option given that stretch
is frozen and there is at least one other bug that would be nice to
fix for stretch outstanding (#860767, currently fixed in
experimental).

-Ben



Bug#861218: libgssapi-krb5-2: soname-independent files in shared library package (policy 8.2)

2017-04-25 Thread Helmut Grohne
Package: libgssapi-krb5-2
Version: 1.15-1
Severity: serious
Justification: violates policy section 8.2

libgssapi-krb5-2 is a shared library package and contains
/etc/gss/mech.d/README. The latter filename does not depend on the
soname of the library and thus does not change when the soname changes.
Thus the package will not be coinstallable a newer soname of the same
library and make system upgrades unnecessarily difficult. This violates
the first sentence from policy section 8.2, which is a must:

| If your package contains files whose names do not change with each
| change in the library shared object version, you must not put them in
| the shared library package.

This actually causes problems today, due to a related bug in dpkg, which
does not properly support conffiles in m-a:same packages (#861217).

Please split the README to a different package (or remove it). Often
times a -common package is used for such files, e.g. libldap-common.

Helmut