Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 596466 - app-editors/atom-1.10.2: dev-libs/libgit2 dependency locked to a specific version and causing update blockers
Summary: app-editors/atom-1.10.2: dev-libs/libgit2 dependency locked to a specific ver...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Elvis Pranskevichus
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-10-07 16:50 UTC by Viktor Lazarev
Modified: 2017-03-30 13:09 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info (emerge-info.txt,6.59 KB, text/plain)
2016-10-07 16:50 UTC, Viktor Lazarev
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Viktor Lazarev 2016-10-07 16:50:56 UTC
Created attachment 449480 [details]
emerge --info

When I'm trying to update @world, app-editor/atom prevents me to do it (I know there's a way to update @world even for such "problems", but nontheless):

# emerge -uvDNa @world

... skipped ...

dev-libs/libgit2:0

  (dev-libs/libgit2-0.24.1:0/24::gentoo, ebuild scheduled for merge) pulled in by
    (no parents that aren't satisfied by other packages in this slot)

  (dev-libs/libgit2-0.23.4:0/23::gentoo, ebuild scheduled for merge) pulled in by
    =dev-libs/libgit2-0.23*:=[ssh] required by (app-editors/atom-1.10.2:0/0::gentoo, installed)
    ^                 ^^^^^                                                                                                                                              
    (and 1 more with the same problem)

So my question is - why restrict version of libgit2 by `=`?
And if it's possible, it looks reasonable to change restriction to `>=`
Comment 1 Gilles Dartiguelongue (RETIRED) gentoo-dev 2016-10-08 18:04:33 UTC
libgit2 is not API stable. gitg suffers from the same dependency lock problem.
Comment 2 Evan Teran 2016-10-11 18:27:44 UTC
can this lib be slotted so that the various API incompatible versions can be installed side by side?
Comment 3 Hubert Kowalski 2016-10-12 08:30:42 UTC
I wondered about that dependency too and it took me on a dependency-hell-reoadtrip: Atom has it's git support based on it's own package "git-utils" which has bundled dependency of libgit2 from almost a year ago. There's PR for bundling with newer libgit2: https://github.com/atom/git-utils/pull/71

This PR only changes bunded libgit ver without any other code modification so it may be safe to assume that if we do unbundling etc, it would be sufficent to change ebuild locally to check against newer libgit2 :) Theoretically - it should work :) I'm planning on testing that myself :)
Comment 4 Hubert Kowalski 2016-10-13 18:17:37 UTC
Hi!

So - I've modified ebuild on local repo to use =dev-libs/libgit2-0.23:=[ssh] and thus enabled libgit2-0.24. So far - no thing bad is happening.

I suggest we all check ourselves and then suggest bumping libgit2 requirement :)

Also... Is libgit2 even debundled from all atom bundles when compilling and compilation uses system libgit2 - I mean it should theoretically be, but how can I check?
Comment 5 Jón Frímann 2016-10-14 02:50:41 UTC
I'm also seeing this bug.

----

WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict:

dev-libs/libgit2:0

  (dev-libs/libgit2-0.24.2:0/24::gentoo, ebuild scheduled for merge) conflicts with
    =dev-libs/libgit2-0.23*:0/23=[ssh] required by (app-editors/atom-1.10.2:0/0::gentoo, installed)
    ^                 ^^^^^^^^^^^     
    =dev-libs/libgit2-0.23*:=[ssh] required by (app-editors/atom-1.10.2:0/0::gentoo, installed)
    ^                 ^^^^^
---

The only way I have been able to resolve this to mask the new version. That is not a solution, rather a bad workaround.
Comment 6 Hubert Kowalski 2016-10-14 07:33:50 UTC
(In reply to jonfr1900 from comment #5)
> I'm also seeing this bug.
> 
> ----
> 
> WARNING: One or more updates/rebuilds have been skipped due to a dependency
> conflict:
> 
> dev-libs/libgit2:0
> 
>   (dev-libs/libgit2-0.24.2:0/24::gentoo, ebuild scheduled for merge)
> conflicts with
>     =dev-libs/libgit2-0.23*:0/23=[ssh] required by
> (app-editors/atom-1.10.2:0/0::gentoo, installed)
>     ^                 ^^^^^^^^^^^     
>     =dev-libs/libgit2-0.23*:=[ssh] required by
> (app-editors/atom-1.10.2:0/0::gentoo, installed)
>     ^                 ^^^^^
> ---
> 
> The only way I have been able to resolve this to mask the new version. That
> is not a solution, rather a bad workaround.

Try creating local overlay https://wiki.gentoo.org/wiki/Overlay/Local_overlay copy atom-1.10.2.ebuild to it as in wiki, intruduce -r1 to it and in ebuild change

=dev-libs/libgit2-0.23.*:=[ssh]

to 
>=dev-libs/libgit2-0.23:=[ssh]

Save, manifest, update and enjoy new atom and new libgit2 :) should generally work. Worked for me, but would be great to have more "confirmed works" :)
Comment 7 Elvis Pranskevichus 2016-10-17 17:44:16 UTC
(In reply to Hubert Kowalski from comment #4)
> Also... Is libgit2 even debundled from all atom bundles when compilling and
> compilation uses system libgit2 - I mean it should theoretically be, but how
> can I check?

libgit2 is unbundled.  You can check that by running 

ldd /usr/lib64/atom/app.asar.unpacked/node_modules/git-utils/build/Release/git.node

As for the bumping issue, Gilles is correct, unstable API has caused headaches before, that's why the '=' dep.  Slotting libgit2 is probably the safest choice, but we can probably get away with '>=' dep at this point.
Comment 8 Hubert Kowalski 2016-10-17 19:59:23 UTC
Thanks! Can you do -r1 with ">=" ? I did just that and so far I haven't encountered any problem :)
Comment 9 Elvis Pranskevichus 2017-03-30 13:09:49 UTC
Resolved.