FS#59186 - [systemd-resolvconf] provide and conflict with resolvconf instead of openresolv

Attached to Project: Arch Linux
Opened by nl6720 (nl6720) - Saturday, 30 June 2018, 06:02 GMT
Last edited by Buggy McBugFace (bugbot) - Saturday, 25 November 2023, 20:23 GMT
Task Type Feature Request
Category Packages: Core
Status Closed
Assigned To Christian Hesse (eworm)
Architecture All
Severity Very Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:
systemd-resolvconf is a resolvconf implementation, it should provide and conflict with 'resolvconf'.

The packages depending on 'openresolv' could be changed to depend on 'resolvconf' instead. This would allow easy choosing the desired resolvconf implementation.

Additional info:
* package version(s)
* config and/or log files etc.
systemd-resolvconf 239.0-2

Steps to reproduce:
pacman -Si systemd-resolvconf
This task depends upon

Closed by  Buggy McBugFace (bugbot)
Saturday, 25 November 2023, 20:23 GMT
Reason for closing:  Moved
Additional comments about closing:  https://gitlab.archlinux.org/archlinux/p ackaging/packages/systemd/issues/12
Comment by loqs (loqs) - Saturday, 30 June 2018, 11:20 GMT
systemd-resolvconf provides a limited implementation of resolvconf that only functions with systemd-resolv
https://github.com/systemd/systemd/commit/088c136384edb1d121ed40a6d3ecf4b7abade169
Comment by Gustavo Alvarez (sl1pkn07) - Sunday, 19 August 2018, 20:23 GMT
then resolvconf can be replaced by systemd-resolvconf?
Comment by nl6720 (nl6720) - Monday, 20 August 2018, 08:47 GMT
What do you mean by "replaced"? If you're talking about the replaces array in the PKGBUILD then no that is not what this is about. systemd-resolvconf can never fully replace openresolv since it only supports systemd-resolved.

The intention of this feature request and  FS#59187  is for "systemd-resolvconf" and "openresolv" packages to provide and conflict with "resolvconf" instead of each other. Then other packages that need to use /usr/bin/resolvconf could depend on the virtual package "resolvconf".
Comment by Gustavo Alvarez (sl1pkn07) - Monday, 20 August 2018, 14:41 GMT
my idea is use netctl with systemd-resolvconf

└───╼ sudo LC_ALL=C pacman -S systemd-resolvconf
resolving dependencies...
looking for conflicting packages...
:: systemd-resolvconf and openresolv are in conflict. Remove openresolv? [y/N] y
error: failed to prepare transaction (could not satisfy dependencies)
:: removing openresolv breaks dependency 'resolvconf' required by netctl

but if you say is not compatible, then NVM

greetings
Comment by nl6720 (nl6720) - Monday, 20 August 2018, 14:57 GMT
Ah, that's what you meant with "replaced".
It will be possible to use netctl with systemd-resolvconf when this bug (and also  FS#59459 ) gets fixed.

About compatibility, if you don't use systemd-resolved then systemd-resolvconf is useless. Read https://jlk.fjfi.cvut.cz/arch/manpages/man/resolvectl.1#COMPATIBILITY_WITH_RESOLVCONF(8) .
Comment by Doug Newgard (Scimmia) - Monday, 20 August 2018, 15:08 GMT
So it sounds like this can't really be implemented, as it doesn't really provide resolvconf if it only works in a very specific scenario.
Comment by nl6720 (nl6720) - Monday, 20 August 2018, 15:17 GMT
Currently "systemd-resolvconf" provides and conflicts with "openresolv", it definitely doesn't provide all of openresolv's functionality. I don't see how changing it to "resolvconf" would be a problem.
Comment by loqs (loqs) - Monday, 20 August 2018, 17:23 GMT
@nl6720 if the resolver in use is the default glibc do you still consider systemd-resolvconf provides resolvconf just that it will not actually update resolvconf?
Comment by nl6720 (nl6720) - Monday, 20 August 2018, 17:34 GMT
Ok, I get your point. Providing a /usr/bin/resolvconf that does not work is not a good idea, so making packages depend on potentially non-working "resolvconf" is also bad.
I still think that the way "systemd-resolvconf" and "openresolv" conflict should be changed.

How about:

systemd-resolvconf:
provides=('openresolv' 'resolvconf')
conflicts=('resolvconf')

openresolv:
provides=('resolvconf')
conflicts=('resolvconf')
Comment by Luke Shumaker (lukeshu) - Sunday, 07 October 2018, 08:02 GMT
Some facts about packages currently in the Arch repos: (as of 2018-10-06 20:36:58 EDT)

1. Packages that depends=('resolvconf'): 1: netctl
2. Packages that depends=('openresolv'): 0: (none)

3. Packages that optdepends=('resolvconf'): 0: (none)
4. Packages that optdepends=('openresolv'): 3: wireguard-tools, dhcpcd, vpnc

5. Packages that satisfy a 'resolvconf' dependency: 2: openresolv, systemd-resolvconf
6. Packages that satisfy an 'openresolv' dependency: 2: openresolv, systemd-resolvconf

Some facts about packages currently in the AUR: (as of 2018-10-07 ~03:51 EDT)

1. Packages that depends=('resolvconf'): 1: mullvad-old
2. Packages that depends=('openresolv'): 6: avpnc, networkmanager-git, openvpn-update-resolv-conf-git, protonvpn-cli, vpn-unlimited, vpnfailsafe-git

3. Packages that optdepends=('resolvconf'): 0: (none)
4. Packages that optdepends=('openresolv'): 12: dhcpcd-git, dhcpcd-without-systemd, libnm-git, libnm-glib-git, networkmanager-consolekit, networkmanager-consolekit-noscan, networkmanager-git, networkmanager-ifupdown, networkmanager-noscan, vpnc-fortigate, vpnc-juniper-git, wireguard-tools-git

5. Packages that satisfy a 'resolvconf' dependency: 4: systemd-resolvconf-selinux, systemd-resolvconf-git, openresolv, systemd-resolvconf
6. Packages that satisfy an 'openresolv' dependency: 5: openresolv-openrc, openresolv-git, systemd-resolvconf-selinux, systemd-resolvconf-git, systemd-resolvconf
Comment by Luke Shumaker (lukeshu) - Sunday, 07 October 2018, 08:08 GMT
Note that because `netctl` is in groups=('base'), and its dependency on 'resolvconf' is satisfied by both systemd-resolvconf and openresolv: Running `pacstrap /mnt base` prompts whether to install systemd-resolvconf or openresolv. It is usually not the case that installing 'base' has ambiguities like that.
Comment by nl6720 (nl6720) - Sunday, 07 October 2018, 08:23 GMT
pacstrap doesn't prompt by without the -i option, AFAIK it chooses the package alphabetically.

This issue is no longer about getting packages to depend on resolvconf, but about making this happen:

systemd-resolvconf:
provides=('openresolv' 'resolvconf')
conflicts=('resolvconf')

openresolv:
provides=('resolvconf')
conflicts=('resolvconf')
Comment by Luke Shumaker (lukeshu) - Sunday, 07 October 2018, 15:42 GMT
It displays the prompt, but it automatically chooses one (alphabetically) without -i.
Comment by Eli Schwartz (eschwartz) - Sunday, 14 October 2018, 05:02 GMT
Currently, the package has had resolvconf added to its provides field d̶u̶e̶ ̶t̶o̶ ̶t̶h̶i̶s̶ ̶f̶e̶a̶t̶u̶r̶e̶ ̶r̶e̶q̶u̶e̶s̶t̶*. Is this really desirable? If so, then why does it provide it, but conflict on the specificity of openresolv, rather than anything which may (theoretically come along and) provide resolvconf?

(We can solve the netctl ambiguity by removing netctl from the base group where it doesn't belong.)

* or rather released after, but committed to trunk before...
Comment by Luke Shumaker (lukeshu) - Sunday, 14 October 2018, 17:57 GMT
> Currently, the package has had resolvconf added to its provides field due to this feature request.

Git says that eworm did that 3 days before this feature request was opened.
Comment by Toolybird (Toolybird) - Friday, 14 April 2023, 08:21 GMT
Some of the above discussion is no longer relevant due to netctl no longer being in "base". But the original request still seems valid.
Comment by Buggy McBugFace (bugbot) - Tuesday, 08 August 2023, 19:11 GMT
This is an automated comment as this bug is open for more then 2 years. Please reply if you still experience this bug otherwise this issue will be closed after 1 month.

Loading...