Overview

Request 867417 revoked

- Ship symlinks that are not to be ghosted in the first place

- Fix build on Tumbleweed - do not ship ghost symlinks.

Loading...

Adam Majer's avatar
author source maintainer

created request id 867418 for emacs that does similar changes


Dominique Leuenberger's avatar

sr#867418 was revoked


Stefan Brüns's avatar

@dimstar - created a new SR which does not conflict with emacs: https://build.opensuse.org/request/show/890336

Unfortunately, that has been ignored as of yet - @adamm, @michals


Michal Suchanek's avatar

There was no conflict with emacs to start with.

The conflict was fabricates by a broken checker.

When the breakage was reported it was said that fabricating conflicts is what the checkers should do and it will not be fixed in the checker https://github.com/openSUSE/openSUSE-release-tools/issues/2439

There have been a number of requests trying to resolve this issue.

However, the alternatives system and the packaging guidelines for it require that packages share ghost files.

The checker fabricates conflicts of ghost files so these files must be identical between packages that provide an alternative (such as ctags and emacs).

I lack the context to judge if a SR to ctags alone is correct and should be accepted.


Stefan Brüns's avatar

When a package installs a symlink pointing to itself (i.e. infinite resursion), that package is broken.

When both emacs/etags and ctags-exuberant install %{_bindir}/ctags without %ghost, that is a conflict.

The linked issues are not reachable from outside SUSE (build.suse.de or unsufficient permissions), so from my point of view these do not exist.

The problem persists for 3 months now. Doing nothing for 3 months is definitely no way forward.

Accepting the SR bears the risk of breaking a package which is already broken.


Michal Suchanek's avatar

It was completely acceptable to ship ghost symlink pointing to itself before rpm 4.16. We have many packages that do it. I would not say it became broken overnight.

Initially %{_bindir}/ctags was a ghost symlink pointing to itself, and it was completely fine. Then they were removed, then added back as non-ghost, and maybe something more. There are several conflicting attempts at resolving what was initially a non-issue until multiple checker regressions.

I can understand that symlinks pointing to itself are not desirable but changing alternatives from something package-local as defined by the packaging guidelines to something distribution-global because of a broken checker is not. If the people maintaining the distribution still think that's the way to go then let them create SRs that solve the alternative problems in a distribution-global way and accept them as well.

Also I do not know which linked issue not accessible to you you are talking about. The only issue I linked to is on github in openSUSE org.


Stefan Brüns's avatar

Also I do not know which linked issue not accessible to you you are talking about. The only issue I linked to is on github in openSUSE org.

Just follow the link, no information but two inaccessible links.


Stefan Brüns's avatar

So, are you going to take action? Or will you leave this package broken for another 3 months?


Michal Suchanek's avatar

Your SR does not follow https://en.opensuse.org/openSUSE:Packaging_Multiple_Version_guidelines by shipping the alternative symlinks as ghosts.

Unfortunately, with checkers that check conflicts of ghost files the guideline must be followed to the letter if we are to stand a chance to get non-conflicting packages.


Michal Suchanek's avatar

Nevermind, that's broken. If two packages share an identical file as advised by the guide it works for rpm but there is another checker that will reject that.

And it creates a dangling symlink which IIRC is also rejected.

If packagers cannot follow the guide and have to creatively add the missing pieces then we cannot hope that two independent packages install the same alternatives symlinks and satisfy the checkers.


Dominique Leuenberger's avatar
found conflict of ctags-5.8-50.1.x86_64 with etags-27.1-4.1.x86_64
  /etc/alternatives/ctags [mode mismatch: g -644 root:root, g l777 root:root]
  /etc/alternatives/ctags.1.gz [mode mismatch: g -644 root:root, g l777 root:root]
  /usr/bin/ctags [mode mismatch: g -644 root:root, g l777 root:root]
  /usr/share/man/man1/ctags.1.gz [mode mismatch: dg -644 root:root, dg l777 root:root]

Michal Suchanek's avatar

How can a file that is not shipped conflict?


Dominique Leuenberger's avatar

from your own spec:

%ghost %{_bindir}/ctags
%ghost %{_mandir}/man1/ctags.1%{ext_man}
%ghost %{_sysconfdir}/alternatives/ctags
%ghost %{_sysconfdir}/alternatives/ctags.1%{ext_man}

you still declare to own the files, and as such you can still conflict


Michal Suchanek's avatar

The files don't ship so I don't see how they can actually conflict.

I installed both on my system for testing and there is indeed no conflict reported.

This is a false positive.

Please fix the test.


Adam Majer's avatar
author source maintainer

The problem looks like etags is shipping actual symlinks so the mode doesn't match.

rpm -qlp etags-27.1-4.1.x86_64.rpm ctags-5.8-49.d_t.2.x86_64.rpm -v
lrwxrwxrwx    1 root    root                       22 Sep 18 16:33 /etc/alternatives/ctags -> ../../usr/bin/gnuctags
lrwxrwxrwx    1 root    root                       38 Sep 18 16:33 /etc/alternatives/ctags.1.gz -> ../../usr/share/man/man1/gnuctags.1.gz
lrwxrwxrwx    1 root    root                       23 Sep 18 16:33 /usr/bin/ctags -> /etc/alternatives/ctags
-rwxr-xr-x    1 root    root                   150880 Sep 18 16:33 /usr/bin/etags
-rwxr-xr-x    1 root    root                   151080 Sep 18 16:33 /usr/bin/gnuctags
drwxr-xr-x    2 root    root                        0 Sep 18 16:34 /usr/share/doc/packages/etags
-rw-r--r--    1 root    root                     4139 Jul 27 23:21 /usr/share/doc/packages/etags/ETAGS.EBNF
-rw-r--r--    1 root    root                     2284 Jul 27 23:21 /usr/share/doc/packages/etags/ETAGS.README
lrwxrwxrwx    1 root    root                       28 Sep 18 16:33 /usr/share/man/man1/ctags.1.gz -> /etc/alternatives/ctags.1.gz
-rw-r--r--    1 root    root                     4718 Sep 18 16:32 /usr/share/man/man1/etags.1.gz
-rw-r--r--    1 root    root                       37 Sep 18 16:32 /usr/share/man/man1/gnuctags.1.gz
warning: ctags-5.8-49.d_t.2.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 498d5a23: NOKEY
----------    1 root    root                        0 Jan 12 01:17 /etc/alternatives/ctags
----------    1 root    root                        0 Jan 12 01:17 /etc/alternatives/ctags.1.gz
----------    1 root    root                        0 Jan 12 01:17 /usr/bin/ctags
-rwxr-xr-x    1 root    root                   301112 Jan 12 01:17 /usr/bin/ctags-exuberant
drwxr-xr-x    2 root    root                        0 Jan 12 01:17 /usr/share/doc/packages/ctags
-rw-r--r--    1 root    root                    18007 Oct 12  2006 /usr/share/doc/packages/ctags/COPYING
-rw-r--r--    1 root    root                    14178 Oct 12  2006 /usr/share/doc/packages/ctags/EXTENDING.html
-rw-r--r--    1 root    root                    16979 Oct 12  2006 /usr/share/doc/packages/ctags/FAQ
-rw-r--r--    1 root    root                     2977 Apr 30  2008 /usr/share/doc/packages/ctags/README
-rw-r--r--    1 root    root                    16952 Jan 12 01:17 /usr/share/man/man1/ctags-exuberant.1.gz
----------    1 root    root                        0 Jan 12 01:17 /usr/share/man/man1/ctags.1.gz

Michal Suchanek's avatar

But those are ghosts as well, and don't conflict when actually installed with zypper.

Looks like false positive to me.

Also the openSUSE multiple versions packaging guide mandates that the alternatives files be included as ghosts. If they conflicted the multiple version scheme is unmaintainable.


Adam Majer's avatar
author source maintainer

Looks like it's broken in both packages

https://en.opensuse.org/openSUSE:Packaging_Multiple_Version_guidelines

the %{_bindir} and %{_mandir} links are not to be ghosted but point to %{_sysconfig} for update alternatives. The links managed by update alternatives are to be ghosted and not shipped.

I'll fix both.

Request History
Adam Majer's avatar

adamm created request

- Ship symlinks that are not to be ghosted in the first place

- Fix build on Tumbleweed - do not ship ghost symlinks.


Factory Auto's avatar

factory-auto added opensuse-review-team as a reviewer

Please review sources


Factory Auto's avatar

factory-auto accepted review

Check script succeeded


Richard Brown's avatar

RBrownSUSE added as a reviewer

Being evaluated by staging project "openSUSE:Factory:Staging:adi:55"


Richard Brown's avatar

RBrownSUSE accepted review

Picked "openSUSE:Factory:Staging:adi:55"


Saul Goodman's avatar

licensedigger accepted review

ok


Jan Engelhardt's avatar

jengelh accepted review


Dominique Leuenberger's avatar

dimstar_suse added factory-staging as a reviewer

Being evaluated by group "factory-staging"


Dominique Leuenberger's avatar

dimstar_suse accepted review

Unstaged from project "openSUSE:Factory:Staging:adi:55"


Dominique Leuenberger's avatar

dimstar_suse added as a reviewer

Being evaluated by staging project "openSUSE:Factory:Staging:adi:165"


Dominique Leuenberger's avatar

dimstar_suse accepted review

Picked "openSUSE:Factory:Staging:adi:165"


Dominique Leuenberger's avatar

dimstar_suse added factory-staging as a reviewer

Being evaluated by group "factory-staging"


Dominique Leuenberger's avatar

dimstar_suse accepted review

Unstaged from project "openSUSE:Factory:Staging:adi:165"


Dominique Leuenberger's avatar

dimstar_suse added as a reviewer

Being evaluated by staging project "openSUSE:Factory:Staging:adi:14"


Dominique Leuenberger's avatar

dimstar_suse accepted review

Picked "openSUSE:Factory:Staging:adi:14"


Dominique Leuenberger's avatar

dimstar_suse added factory-staging as a reviewer

Being evaluated by group "factory-staging"


Dominique Leuenberger's avatar

dimstar_suse accepted review

Unstaged from project "openSUSE:Factory:Staging:adi:14"


Dominique Leuenberger's avatar

dimstar_suse declined review

sr#891877 has newer source and is from the same project


Dominique Leuenberger's avatar

dimstar_suse declined request

sr#891877 has newer source and is from the same project


Adam Majer's avatar

adamm revoked request

ok

openSUSE Build Service is sponsored by