For discussion of Alpine Linux development and developer support

2 2

[alpine-devel] Missing "readline" in dependencies make it impossible to update readline

Roi Greenberg
Details
Message ID
<1D9ECE54DC082549B6CDE5C6261F0C3C01797ACDD5@IL-EX10.ad.checkpoint.com>
Sender timestamp
1561894347
DKIM signature
missing
Download raw message
Hi all.
I hope I'm sending it in the right place.


I encounter an issue, and I think I may find the cause (although I don't know why)

In short, I needed to update readline inside a container with many packages already install.

I got the error:

ERROR: unsatisfiable constraints:
  readline-7.0.003-r1:
    breaks: world[readline><Q1AoAhlay5a0dpmKIwfPNLe1CsUtk=]

or "Huh? Error reporter did not find the broken constraints", depend on the exact apk I tried to install.


I read about cases of so conflicts but it wasn't the case.

When I tried to investigate the dependencies area, I saw that many packages have libreadline.so in the APKINDEX dependencies, but nothing about it in their APKBUILD file.

I think that may cause the issue.


I'd tried several scenarios as you can see here:

/ # apk add readline
(1/4) Installing ncurses-terminfo-base (6.1_p20190420-r0)
(2/4) Installing ncurses-terminfo (6.1_p20190420-r0)
(3/4) Installing ncurses-libs (6.1_p20190420-r0)
(4/4) Installing readline (7.0.003-r1)
OK: 13 MiB in 18 packages
/ # apk add readline/readline-8.0.0-r0.apk
(1/1) Upgrading readline (7.0.003-r1 -> 8.0.0-r0)
OK: 13 MiB in 18 packages

/ # apk add gdbm
(1/5) Installing ncurses-terminfo-base (6.1_p20190420-r0)
(2/5) Installing ncurses-terminfo (6.1_p20190420-r0)
(3/5) Installing ncurses-libs (6.1_p20190420-r0)
(4/5) Installing readline (7.0.003-r1)
(5/5) Installing gdbm (1.13-r1)
Executing busybox-1.29.3-r10.trigger
OK: 13 MiB in 19 packages
/ # apk add readline/readline-8.0.0-r0.apk
ERROR: unsatisfiable constraints:
  readline-7.0.003-r1:
    breaks: world[readline><Q1AoAhlay5a0dpmKIwfPNLe1CsUtk=]
    satisfies: gdbm-1.13-r1[so:libreadline.so.7]


/ # apk add sfdisk
(1/9) Installing libuuid (2.33-r0)
(2/9) Installing libblkid (2.33-r0)
(3/9) Installing libfdisk (2.33-r0)
(4/9) Installing ncurses-terminfo-base (6.1_p20190420-r0)
(5/9) Installing ncurses-terminfo (6.1_p20190420-r0)
(6/9) Installing ncurses-libs (6.1_p20190420-r0)
(7/9) Installing readline (7.0.003-r1)
(8/9) Installing libsmartcols (2.33-r0)
(9/9) Installing sfdisk (2.33-r0)
Executing busybox-1.29.3-r10.trigger
OK: 14 MiB in 23 packages
/ # apk add readline/readline-8.0.0-r0.apk -l
ERROR: unsatisfiable constraints:
  readline-7.0.003-r1:
    breaks: world[readline><Q1AoAhlay5a0dpmKIwfPNLe1CsUtk=]
    satisfies: sfdisk-2.33-r0[so:libreadline.so.7]

-------------------
Thanks,
Roi Greenberg
Roi Greenberg
Details
Message ID
<1D9ECE54DC082549B6CDE5C6261F0C3C01797ACE06@IL-EX10.ad.checkpoint.com>
In-Reply-To
<8A089DD5-660B-4916-B311-392FF1FC973F@shiz.me> (view parent)
Sender timestamp
1561896691
DKIM signature
missing
Download raw message
Thanks for the quick answer.

I installed it manually since I did a test on clean alpine container that use private repository, and I add the new readline apks manually.

The behavior is identical when I use only local repository (that my actual case.  I'm building the repository from scratch using container with pre-installed packages)

Also, just for case, I did a test using 2 repositories, the one that used to build the container (with all the "old" packages) and one that contains the new readline and the result is the same:

bash-4.4# apk list | grep readline
readline-dev-7.0.003-r1 x86_64 {readline} (GPL) [installed]
readline-dev-8.0.0-r0 x86_64 {readline} (GPL) [upgradable from: readline-dev-7.0.003-r1]
readline-dev-7.0.003-r1 x86_64 {readline} (GPL)
readline-7.0.003-r1 x86_64 {readline} (GPL) [installed]
readline-8.0.0-r0 x86_64 {readline} (GPL) [upgradable from: readline-7.0.003-r1]
readline-7.0.003-r1 x86_64 {readline} (GPL)
libhistory-7.0.003-r1 x86_64 {readline} (GPL) [installed]
libhistory-8.0.0-r0 x86_64 {readline} (GPL) [upgradable from: libhistory-7.0.003-r1]
libhistory-7.0.003-r1 x86_64 {readline} (GPL)
readline-doc-8.0.0-r0 x86_64 {readline} (GPL)
readline-doc-7.0.003-r1 x86_64 {readline} (GPL)
bash-4.4# apk add readline -l
ERROR: unsatisfiable constraints:
  Huh? Error reporter did not find the broken constraints.
bash-4.4# apk add readline-dev -l
ERROR: unsatisfiable constraints:
  readline-7.0.003-r1:
    breaks: readline-dev-8.0.0-r0[readline=8.0.0-r0]
    satisfies: world[readline] util-linux-2.33-r0[so:libreadline.so.7] bash-4.4.19-r1[so:libreadline.so.7] python3-3.6.8-r2[so:libreadline.so.7] sqlite-3.26.0-r3[so:libreadline.so.7]
               gdbm-1.13-r1[so:libreadline.so.7] python2-2.7.16-r1[so:libreadline.so.7] ruby-libs-2.5.5-r0[so:libreadline.so.7] gawk-4.2.1-r0[so:libreadline.so.7]
  libhistory-8.0.0-r0:
    breaks: world[libhistory><Q13I4qCzYlFBiIA10PICdAkWQJWnw=]
    satisfies: readline-dev-8.0.0-r0[libhistory=8.0.0-r0]
bash-4.4# apk add readline readline-dev libhistory -l
ERROR: unsatisfiable constraints:
  readline-7.0.003-r1:
    breaks: readline-dev-8.0.0-r0[readline=8.0.0-r0]
    satisfies: world[readline] util-linux-2.33-r0[so:libreadline.so.7] bash-4.4.19-r1[so:libreadline.so.7] python3-3.6.8-r2[so:libreadline.so.7] sqlite-3.26.0-r3[so:libreadline.so.7]
               gdbm-1.13-r1[so:libreadline.so.7] python2-2.7.16-r1[so:libreadline.so.7] ruby-libs-2.5.5-r0[so:libreadline.so.7] gawk-4.2.1-r0[so:libreadline.so.7]
bash-4.4#


-----Original Message-----
From: Shiz [mailto:hi@shiz.me] 
Sent: Sunday, June 30, 2019 14:44
To: Roi Greenberg
Cc: alpine-devel@lists.alpinelinux.org
Subject: Re: [alpine-devel] Missing "readline" in dependencies make it impossible to update readline

Hi,

> I got the error:
> 
> ERROR: unsatisfiable constraints:
> readline-7.0.003-r1:
> breaks: world[readline><Q1AoAhlay5a0dpmKIwfPNLe1CsUtk=]

It seems you installed some readline apk manually, which then
conflicts with the system deadline. If it provides the same
libraries as the system deadline, simply try installing it first
before anything else that depends on readline.

Alternatively, create a local repository with your custom .apk
and an index (see `abuild index`) and add it to /etc/apk/repositories,
so that `apk` can do a full proper dependency scan upon installation,
taking your own packages into account. This is the recommended
development flow.

> When I tried to investigate the dependencies area, I saw that
> many packages have libreadline.so in the APKINDEX dependencies, 
> but nothing about it in their APKBUILD file.
> 
> 
> I think that may cause the issue.

This is fine. `abuild` does an automated dependency scan at the
end of the build process where it figures out these kind of 
dependencies. That they are not listed explicitly is expected.

- Shiz

Email secured by Check Point


---
Unsubscribe:  alpine-devel+unsubscribe@lists.alpinelinux.org
Help:         alpine-devel+help@lists.alpinelinux.org
---
Shiz
Details
Message ID
<8A089DD5-660B-4916-B311-392FF1FC973F@shiz.me>
In-Reply-To
<1D9ECE54DC082549B6CDE5C6261F0C3C01797ACDD5@IL-EX10.ad.checkpoint.com> (view parent)
Sender timestamp
1561895059
DKIM signature
missing
Download raw message
Hi,

> I got the error:
> 
> ERROR: unsatisfiable constraints:
> readline-7.0.003-r1:
> breaks: world[readline><Q1AoAhlay5a0dpmKIwfPNLe1CsUtk=]

It seems you installed some readline apk manually, which then
conflicts with the system deadline. If it provides the same
libraries as the system deadline, simply try installing it first
before anything else that depends on readline.

Alternatively, create a local repository with your custom .apk
and an index (see `abuild index`) and add it to /etc/apk/repositories,
so that `apk` can do a full proper dependency scan upon installation,
taking your own packages into account. This is the recommended
development flow.

> When I tried to investigate the dependencies area, I saw that
> many packages have libreadline.so in the APKINDEX dependencies, 
> but nothing about it in their APKBUILD file.
> 
> 
> I think that may cause the issue.

This is fine. `abuild` does an automated dependency scan at the
end of the build process where it figures out these kind of 
dependencies. That they are not listed explicitly is expected.

- Shiz


---
Unsubscribe:  alpine-devel+unsubscribe@lists.alpinelinux.org
Help:         alpine-devel+help@lists.alpinelinux.org
---