You are not logged in.

#1 2015-11-13 22:39:52

abmantis
Member
Registered: 2015-01-08
Posts: 13

pacaur wants to update repo package with AUR version

I've installed linux-ck from the unofficial pacman repositories, but when I do "pacaur -Syu", it lists linux-ck to be updated to a newer version, but that version is in the AUR and not in the repo.
Is this a feature or a bug? If it is a feature, can I disable it?

Thanks

Offline

#2 2015-11-14 01:19:28

Awebb
Member
Registered: 2010-05-06
Posts: 6,688

Re: pacaur wants to update repo package with AUR version

It's not a feature, it's what you get for using AUR capable wrappers to update your system in one go, without reading the docs and assuming, that a switch in a helper is identical to the switch in pacman.

Please read the pacaur docs (https://github.com/rmarquis/pacaur) and thoroughly observe, which of the options you passed to pacaur are actually passed over to pacman and what they actually do.

Offline

#3 2015-11-14 08:38:29

Raynman
Member
Registered: 2011-10-22
Posts: 1,539

Re: pacaur wants to update repo package with AUR version

Awebb wrote:

It's not a feature, it's what you get for using AUR capable wrappers to update your system in one go, without reading the docs and assuming, that a switch in a helper is identical to the switch in pacman.

Please read the pacaur docs (https://github.com/rmarquis/pacaur) and thoroughly observe, which of the options you passed to pacaur are actually passed over to pacman and what they actually do.

You make it sound like this is inherent to using this kind of AUR helper. Or (since you also point to the docs) did you mean only the way pacaur handles this?

The docs describe the fallback option as follows: "By default, any operation will be applied on the binary repositories, then the AUR if necessary." When I use `pacaur -Syu` to update my systems, it basically runs `pacman -Syu` first and then tries to update foreign packages using the AUR and it warns for any package in `pacman -Qm` output that's not in the AUR. If linux-ck is in the sync database for a repository, it wouldn't be considered 'foreign' and I'd expect pacaur to ignore it in the AUR upgrade phase.

That is unless one of the other AUR packages that are being upgraded, depends on (a newer version of) linux-ck. It might be useful to see the actual output of pacaur/pacman in this case.

Offline

#4 2015-11-14 08:44:31

Awebb
Member
Registered: 2010-05-06
Posts: 6,688

Re: pacaur wants to update repo package with AUR version

In the docs, there is no -y switch or any combination with y in the pacman operations. The -y switch can be found elsewhere and really does not do, what the pacman -Sy does.

EDIT: This is inherent to every kind of assumption about the way switches behave in helpers for other tools, not the helpers themselves. They cannot be blamed for users not reading the docs.

EDIT2:

Okay, I understand, why this is hard to understand. People assume, that -Syu will Sync+refresh+update, however this isn't true. If you read the source code (line 1398ff, it's just bash, nothing fancy), you'll see, that the -Su switch in pacaur always causes a -Sy sent to pacman.

So, according to the docs, "pacaur -Syu" does not start an update as "pacaur -Su" would, but instead

pacaur -S: pacman action: "Install the packages specified as arguments." No arguments were given, so no package was installed.
pacaur -y: AUR action "Clone build files, build and install target(s). Missing dependencies will be automatically installed as required."
pacaur -u: AUR action "Update foreign packages in the AUR. Without any arguments, all manually installed packages will be updated. If target(s) are supplied, only those packages will be updated."

Last edited by Awebb (2015-11-14 09:19:08)

Offline

#5 2015-11-14 09:07:22

Raynman
Member
Registered: 2011-10-22
Posts: 1,539

Re: pacaur wants to update repo package with AUR version

Awebb wrote:

In the docs, there is no -y switch or any combination with y in the pacman operations. The -y switch can be found elsewhere and really does not do, what the pacman -Sy does.

The docs describe two sets of options and explain that this set of options is intended for exactly this kind of usage. Under "Pacman extension operations" it says "Pacaur will also pass any pacman related options to the pacman binary." and I've been using this for years. The AUR-specific -y/-u operations apply when there is no -S. Even if they were interpreted as the AUR specific options, the -y would need targets and the -u is documented as "update foreign packages" and the OP claims to have a repository providing linux-ck.

Edit: missed your edit. That is definitely not the complete picture. You'd need to study more of the 1400+ lines of bash.

Last edited by Raynman (2015-11-14 09:15:59)

Offline

#6 2015-11-14 09:17:17

Awebb
Member
Registered: 2010-05-06
Posts: 6,688

Re: pacaur wants to update repo package with AUR version

Okay, this sort of makes sense. Line 1289:

            y)  [[ $pacS ]] && operation=sync && refresh=true;
                [[ $pac || $pacQ || $pacS ]] && continue || operation=sync; installpkg=true; coweropts+=("-f"); aur='1';;

So it does indeed work with the parser. My bad. I will submit a bug report for the docs. https://github.com/rmarquis/pacaur/issues/380

EDIT: I read the entire script, it was helpful. While this does not help OP, I filed the bug report about the readme.

Last edited by Awebb (2015-11-14 09:18:07)

Offline

#7 2015-11-14 09:28:00

Spyhawk
Member
Registered: 2006-07-07
Posts: 485

Re: pacaur wants to update repo package with AUR version

From beginning of man page:

Two sets of command line options are provided: commands which call the pacman binary and extend it with AUR functions (-S, -Ss, -Si, -Sw, -Su, -Qu, -Sc, -Scc), and commands which are AUR specific (-s, -i, -d, -m, -y, -k, -u). As such, pacaur can be used by users who prefer to have a single tool to manage the official and AUR repositories, or by users who prefer to keep their AUR frontend separated from pacman.

Which kind of user are you? Do you want to use the helper to handle both repo and aur package (pacman like command set) or completely separately from pacman (second command set)?
In the former situation, do you want to update the repo and AUR packages implicitly (-Syu to update), or explicitly (with fallback option disabled, -Syu to update only repo packages, -Syua to update AUR packages).

Pacaur is very flexible as how it can be used, but I'm not sure how I can improve the doc - any feedback welcome. The confusion of OP - the one that didn't read the doc - arises because well, yaourt uses "-Syua" and well, pacaur is not yaourt.

Offline

#8 2015-11-14 09:53:37

Awebb
Member
Registered: 2010-05-06
Posts: 6,688

Re: pacaur wants to update repo package with AUR version

You are rmarquis on github?

Thank you for the clarification. I think the wording in bug report could be extended by "depending in your settings".

Is this correct? -Syu behaves differently, depending on the pacaur config? If so, then we should continue with Raynman's proposal and...

@abmantis: Please post the output of your update operation, as well as your pacaur config.

Offline

#9 2015-11-14 10:08:24

Spyhawk
Member
Registered: 2006-07-07
Posts: 485

Re: pacaur wants to update repo package with AUR version

I am indeed the maintainer. The behavior described in the first post by abmantis is the expected outcome. Raynman is entirely correct, pacaur will behave exactly as described by him above. Really, I feel the confusion arises because of yaourt behavior which is different. pacaur -Syu will act as pacman would do (refresh and update) and then, by default, be extended to the AUR (update AUR).

I'm thinking about expanding the man page this way (changes in bold):

Pacaur wraps all pacman operations and by default extends respectively its install, search, info, download only, update, check updates and clean functions for the AUR. This extension behavior is optional and can be disabled with the fallback variable in the config file. Pacaur will also pass any other pacman operations and their related options to the pacman binary.

Would this be clear enough?

Last edited by Spyhawk (2015-11-14 10:14:39)

Offline

#10 2015-11-14 10:15:43

Awebb
Member
Registered: 2010-05-06
Posts: 6,688

Re: pacaur wants to update repo package with AUR version

This wording would suffice! That was quick, thank you!

This means the problem occurs, because there is a package of the same name in a binary repo and the AUR. Should we open a feature request about checking for such collisions and probably a switch or config option to set a preference?

Offline

#11 2015-11-14 10:45:42

Spyhawk
Member
Registered: 2006-07-07
Posts: 485

Re: pacaur wants to update repo package with AUR version

Awebb wrote:

This wording would suffice! That was quick, thank you!

This means the problem occurs, because there is a package of the same name in a binary repo and the AUR. Should we open a feature request about checking for such collisions and probably a switch or config option to set a preference?

Oh, I just realized I misread the first post; I understood unofficial pacman repositories as "AUR", or the underlying issue was occulted by the documentation issue, sorry to OP. I assume the unofficial binary repository is [repo-ck]. Now the initial issue is much clearer to me.

As stated by Raynman, this issue occurs because of a versioned dependency which isn't met. Linux-ck in [repo-ck] is actually in version 4.1.13, the one in AUR was recently updated to version 4.3. The AUR version would be ignored if another AUR dependency didn't require that new version explictly. This is the expected behavior.

Although official repository packages don't have a duplicate version in AUR (no collision possible), I initially added versioned dependency support for AUR packages because of a specific issue. Some perl packages in AUR are newer that the version provided by the official perl package, so collision are indirectly possible between official and AUR packages. This versioning check also apply when using unofficial repositories where collisions are inevitable. I don't think a new feature is needed here, as this is a situation of partial update. Either you want to update to newer version, or you don't.

@abmantis: I'd simply recommend to use the --ignore switch to avoid updating the package that requires the newer linux-ck package. Edit: A user reported in the linux-ck AUR comments that  bbswitch-ck actually explictly requires linux-ck 4.3, this might be the one package you're looking for here. Alternatively, you could try another helper, as helpers usually don't implement versioning check for AUR packages, but you might then run into other weird issues.

Last edited by Spyhawk (2015-11-14 12:21:53)

Offline

#12 2015-11-14 23:00:15

abmantis
Member
Registered: 2015-01-08
Posts: 13

Re: pacaur wants to update repo package with AUR version

Awebb wrote:

It's not a feature, it's what you get for using AUR capable wrappers to update your system in one go, without reading the docs and assuming, that a switch in a helper is identical to the switch in pacman.

Please read the pacaur docs (https://github.com/rmarquis/pacaur) and thoroughly observe, which of the options you passed to pacaur are actually passed over to pacman and what they actually do.

And what do you get for assuming that I've not read the Pacaur docs? I understand that there is a lot of people coming here asking for help without even reading the wiki and the docs, but please, don't assume that for everyone.

Anyway, as some of you pointed out, it was because bbswitch (from the AUR) requires a new version of linux-ck that is not in the [repo-ck] repos. I missed that! hmm

Thank you all for your help!

Offline

#13 2015-11-14 23:08:11

Awebb
Member
Registered: 2010-05-06
Posts: 6,688

Re: pacaur wants to update repo package with AUR version

Haha, indeed. Should I ever have to tutor formal logic again, I will use this thread as an example.

Offline

Board footer

Powered by FluxBB