Closed GoogleCodeExporter closed 9 years ago
I'm not clear what the problem is from your description. What are the exact
dependencies of A. If it's just "B" then I don't see anything wrong here.
Original comment by paul.betafive
on 13 Mar 2014 at 12:56
I will explain it in a longer example.
The control file of package A contain this lines:
Package: A
Depends: B (= 1.0)
The package B contain this lines:
Package: B
Version: 1.0
The new package B looks like this:
Package: B
Version: 1.1
If I now make an upgrade of package B to version 1.1 the dependencies of
package A are no longer fulfilled. I would expected that in this case, also the
package A would be automatically upgraded to a newer version, thats control
file looks like this:
Package: A
Depends: B (= 1.1)
But an "opkg-cl upgrade B" does not do so. After the upgrade of package B I
have a not fulfilled dependency in package A.
PS.: Can you please correct the headline of this issue. I wrote "Uograde"
instead of "Upgrade"
Original comment by muuscl...@gmail.com
on 13 Mar 2014 at 3:31
I assume the two versions of package A have different version numbers, with
latter one (which depends on B 1.1) having a higher version number than the
first (which depends on B 1.0).
This does sound like a bug but I disagree on the correct operation. I don't
think 'opkg upgrade B' should upgrade A unless A is a dependency of B. I think
instead it should error out saying that the upgrade of B is blocked by A. The
user should then be able to run 'opkg upgrade A' which should upgrade B as well
as it is a dependency of A. How does that sound to you?
Original comment by paul.betafive
on 13 Mar 2014 at 5:26
You are right. That sound like a good way!
But now I have a second problem, that maybe is the same issue. If I install a
new third package C, that depends on B version 1.1, than package B will be
upgraded to version 1.1, but package A stay on version and has a not fulfilled
dependency after that, e.g.:
Install package C:
Package: C
Depends: B (= 1.1)
This also upgrade package B to:
Package: B
Version: 1.1
But it not upgrade package A, this stay on the old version:
Package: A
Depends: B (= 1.0)
That brakes package A since the dependencies are no longer fulfilled.
Original comment by muuscl...@gmail.com
on 13 Mar 2014 at 6:58
If we block B from being upgraded it should in turn block C from being
installed (as it will not be able to satisfy "B (= 1.1)").
I think the next stage is to throw together a test case for this. I'm fairly
busy but I should get to it soon, give me a reminder if I haven't within about
2 weeks.
I'm guessing that the problem itself is in the function
pkg_hash_fetch_best_installation_candidate. It needs to look at the
depended_upon_by array and select only candidates which don't break the
constraints of each dependent package it finds.
If you want to try fixing this yourself I'll happily take a patch. Otherwise
I'll look at it myself when I can.
Original comment by paul.betafive
on 13 Mar 2014 at 7:28
I've added a test for this issue in the latest git commit to the master branch.
The test currently fails as expected.
Original comment by paul.betafive
on 22 Mar 2014 at 5:49
Hi paul.betafive,
this problem is still present. We (MLD team) are not able to fix the problem by
ourself. So we hope that you can have a deeper look into it and hopefully fix
it easily.
just to show you how urgent a fix of this problem is for us:
The MLD is a small linux distribution using the opkg as packagemanager.
Currently there are about 300 users that can run into an broken system after
upgrading.
After a reboot the System will not boot anymore if the cases that claus
scetched above accure.
We hope that you can help us.
Thank you very much
Best Regards
MarMic
Original comment by marmic.h...@gmail.com
on 13 Jun 2014 at 8:34
I decided to rush through an attempt at a fix, which I've attached to this
reply. It should at least catch the problem, report it and fail to install the
package without breaking anything. Could you check that it correctly reports
that the offending package cannot be upgraded?
If this does catch the problem, is reporting the error and failing an
acceptable result? I don't think automatically upgrading an installed package
which is not listed on the command line and is not a dependency of a package
listed on the command line is a good idea. Instead I think the user should
receive an error and then be able to re-execute opkg with the correct arguments.
Eg for the case discussed above:
`opkg install b` fails, refusing to upgrade B to 1.1
`opkg install a` or `opkg upgrade` succeeds, upgrading both A and B to 1.1
The attached patch should apply to the latest release (opkg-0.2.2).
I'm not confident enough to apply this patch to the tree yet, I'd like to get
your feedback on whether it works first and run a couple more tests myself.
Original comment by paul.betafive
on 13 Jun 2014 at 10:02
Attachments:
I have add the patch, but it seems to have no effect. An upgrade or install
brakes the dependencies like before.
Original comment by muuscl...@gmail.com
on 14 Jun 2014 at 9:13
Damn.
That is strange though. The patch fixes the test case I created (in
'tests/regress/issue124.py') and also fixes the similar case with a third
package 'C' which depends on 'B (= 1.1)'.
I must be missing something about your particular case. Could you send me a
copy of the 'Packages' files which list the available packages and the output
of 'opkg info <pkg>' for the relevant packages before the upgrade (the relevant
packages would be those which muusclaus means by A, B and C in comment #4).
With that information I should hopefully be able to re-create what is going on.
Original comment by paul.betafive
on 15 Jun 2014 at 12:37
I will do so tomorrow.
I can also give you an ISO image with that you can make your own tests. That
ISO is based on Ubuntu 64 Bit and about 10MB small. So if you also use Ubuntu
to compile opkg it would be possible to replace the opkg-cl tool and do your
own tests. If you are interested, I will give you a download link and a
description how I take my tests.
Original comment by muuscl...@gmail.com
on 15 Jun 2014 at 11:48
Excuse me, that I don't answer yesterday.
Here I have the information you are requested for:
A = network
B = kernel
C = hid
MLD> opkg info kernel
Package: kernel
Version: 3.15.0.64-68
Depends: libc6 (>= 2.19-2)
Status: unknown ok not-installed
Section: system
Architecture: x86_64
Maintainer: Claus Muus <mld@clausmuus.de>
Size: 3493114
Filename: kernel_3.15.0.64-68.opk
Description: The Linux Kernel
Package: kernel
Version: 3.14.2.59-62
Depends: libc6 (>= 2.19-11)
Status: install user installed
Architecture: x86_64
Installed-Time: 1402101500
MLD> opkg info network
Package: network
Version: 0-27_3.15.0.64
Depends: kernel (>= 3.15.0.64), kernel (<= 3.15.0.64-:), libc6 (>= 2.19-9)
Status: unknown ok not-installed
Section: network
Architecture: x86_64
Maintainer: Claus Muus <mld@clausmuus.de>
Size: 839034
Filename: network_0-27_3.15.0.64.opk
Description: Treiber für Netzwerkkarten
Enthält nur die üblicherweise verwendeten Treiber
(3c59x 8139too atl1 atl1c atl2 alx b44 cdc_ether dm9601 e100 e1000 e1000e forcedeth natsemi ne2k-pci pcnet32 r8169 sis190 sis900 skge tg3 tulip uli526x via-rhine via-velocity)
Package: network
Version: 0-26_3.14.2.59
Depends: kernel (>= 3.14.2.59), kernel (<= 3.14.2.59-:), libc6 (>= 2.19-11)
Status: install user installed
Architecture: x86_64
Installed-Time: 1403041756
MLD> opkg info hid
Package: hid
Version: 0-0_3.15.0.64
Depends: kernel (>= 3.15.0.64), kernel (<= 3.15.0.64-:)
Status: unknown ok not-installed
Section:
Architecture: x86_64
Maintainer: claus
Size: 10558
Filename: hid_0-0_3.15.0.64.opk
Description:
Original comment by muuscl...@gmail.com
on 17 Jun 2014 at 10:29
Attachments:
The problem here is the depends line:
kernel (>= 3.15.0.64), kernel (<= 3.15.0.64-:)
In the second constraint, opkg is interpreting the ':' as the separator between
the epoch number and the version number. It should instead only interpret a
colon as the epoch separator if it occurs before any non-numeric characters.
The patch I posted is still needed, I'll need to make a second patch to be
applied as well as that one. Once I've tidied up a couple more bugfixes I'll
bundle them together into a v0.2.3 release.
In the meantime, you can fix this by using something other than ':' at the end
of the version constraint. ';' works if you want something which compares
greater than numeric characters and '|' works if you want something which
compares greater than all alphanumeric characters.
Original comment by paul.betafive
on 18 Jun 2014 at 11:06
Thank you for the clarification. Did I can also use a '~' instead? Or do you
know, what is the typically character there for? I do not remember why I decide
to use the colon two years ago.
Original comment by muuscl...@gmail.com
on 18 Jun 2014 at 12:54
'~' didn't seem to work for me. I'd try '|'. I'm currently testing a patch
series which should fix the version string parsing as well as the dependency
checking in a better way. I'll post it here as soon as it's tidied up.
Original comment by paul.betafive
on 18 Jun 2014 at 12:56
OK, than I know, why I don't used it before ;)
I have changed it to ';' for a first fix.
Original comment by muuscl...@gmail.com
on 18 Jun 2014 at 1:09
I've attached an updated patch series which should do a much better job of
fixing the issue. The first patch fixes the version parsing so you can use ':'
in your dependency constraint if you wish to. The 2nd-4th fix the dependency
checking with a little code tidy up and the 5th ensures users don't see the new
notice about a package not being selected twice.
If this works for you I'll mark this as fixed and merge these patches to the
opkg-0.2.x branch.
Original comment by paul.betafive
on 18 Jun 2014 at 1:41
Attachments:
This patches are not the best solution. Now it's not possible to upgrade any of
the depended packages. In my example, it's not possible to upgrade the kernel
(B) and also not the network package (A).
It's ok, that I can not upgrade packages, that needs a newer depended package,
but I can also not upgrade the depended package it self.
Original comment by muuscl...@gmail.com
on 19 Jun 2014 at 3:01
I'm struggling to reproduce the failure to upgrade the network package (A) in
this situation. After applying the patches, 'opkg upgrade B' fails but opkg
upgrade 'A' succeeds and upgrades both A and B. Could you send me the exact
error message you're seeing and I'll try to track down the cause.
Original comment by paul.betafive
on 19 Jun 2014 at 7:08
Here I have the the requested message (the last message of my log) and some
further informations. I have used the same installation as in my post #12
MLD> opkg list-installed | grep -v lib
base - 0-45
btrfs - 3.12-46
busybox - 1.22.1-19
init - 0-30
install - 0-46
install-net - 0-10
kernel - 3.14.2.59-62
ldconfig - 2.19-9
locales - 0-5
network - 0-26_3.14.2.59
opkg - 0.2.2-50
psplash - 2009.05.28-17
ssh - 0-5
udev - 204-25
webserver - 0-113
xfs - 0-4
MLD> opkg upgrade network
Upgrading network from 0-26_3.14.2.59 to 0-27_3.15.0.64 on root.
Downloading
http://www.minidvblinux.de/download/4.0.1-64/files/base/network_0-27_3.15.0.64.o
pk.
Not selecting kernel 3.15.0.64 as installing it would break existing
dependencies.
Not selecting kernel 3.14.2.59 as installing it would break existing
dependencies.
Not selecting kernel 3.15.0.64 as installing it would break existing
dependencies.
Not selecting kernel 3.14.2.59 as installing it would break existing
dependencies.
Not selecting kernel 3.15.0.64 as installing it would break existing
dependencies.
Not selecting kernel 3.14.2.59 as installing it would break existing
dependencies.
Not selecting kernel 3.15.0.64 as installing it would break existing
dependencies.
Not selecting kernel 3.14.2.59 as installing it would break existing
dependencies.
Collected errors:
* pkg_hash_fetch_best_installation_candidate: Packages for kernel found, but incompatible with the architectures configured
* pkg_hash_fetch_best_installation_candidate: Packages for kernel found, but incompatible with the architectures configured
* pkg_hash_fetch_best_installation_candidate: Packages for kernel found, but incompatible with the architectures configured
* pkg_hash_fetch_best_installation_candidate: Packages for kernel found, but incompatible with the architectures configured
* satisfy_dependencies_for: Cannot satisfy the following dependencies for network:
* kernel (>= 3.15.0.64) * kernel (<= 3.15.0.64-:) *
MLD> opkg upgrade kernel
Not selecting kernel 3.15.0.64 as installing it would break existing
dependencies.
But I think there is an mistake in your last post. You are writing that it
should be possible to upgrade A but not B. I think it must be the opposite.
Since B is the kernel, and A stays for network and some other packages that
needs a special version of A, I think the kernel (B) must be the package that
should be upgrade able (and automatically upgrade all A packages).
Claus
Original comment by muuscl...@gmail.com
on 19 Jun 2014 at 8:35
I still think that 'opkg upgrade pkg' should only upgrade pkg and dependencies
of pkg, I don't think it should upgrade packages which depend upon pkg. For
example, I don't think 'opkg upgrade libc6' should upgrade every package on the
system which depends on libc6. And just updating packages which have a
dependency on a newer version of libc6 could be very confusing for the user.
There may be an argument for adding an option to upgrade reverse dependencies
but I'd like to focus on fixing the bug at the minute as my time to work on
opkg is limited.
I can't reproduce the failure of 'opkg upgrade network' that you're seeing.
Could you apply the attached patch on top of the rest and try 'opkg -V4 upgrade
network' and post the output? That should print a lot of debug output which
would help track down exactly which dependency is breaking.
Original comment by paul.betafive
on 22 Jun 2014 at 11:15
Attachments:
I have attached two logs.
In the first log, only the network package depends on the kernel. This upgrade
works.
In the second log, also the btrfs package depends on the kernel. This upgrade
fails. In this case, I have no chance to upgrade any of the 3 packages (kernel,
network, btrfs).
Original comment by muuscl...@gmail.com
on 22 Jun 2014 at 12:41
Attachments:
Just a quick update to say sorry I've not been able to work on this last week
due to other commitments. I'll try to get back to this before the end of the
week.
There isn't really an easy solution to this that I'll be happy with though. The
correct solution is to overhaul the package installation method so that opkg
prepares a list of all actions to perform, sets the package flags appropriately
for all packages which will be changed in some way and then executes each
action in turn.
The current method is just to handle each upgrade/install in isolation, so in
your case even if you run 'opkg upgrade network btrfs', the dependencies of the
old btrfs package will block the kernel upgrade needed to complete the network
upgrade. With the changed method, opkg would know while upgrading network that
a btrfs upgrade would follow, and it could check against the dependencies of
the new btrfs version instead of the old one.
That behaviour change is too drastic for the 0.2.x branch though and in my plan
was scheduled to happen after the 0.3.0 release and be included in the 0.4.0
release. I may have to think of a hack that will allow opkg to handle your
situation in the meantime.
Original comment by paul.betafive
on 30 Jun 2014 at 11:05
Ok, here's my proposed solution.
'opkg upgrade network btrfs' will by default still work the old way and hence
fail in your situation. This can't be changed as it may break things for other
use cases and I don't want to change the default behaviour drastically on a
stable branch like opkg-0.2.x.
If the command line option '--combine' or the config file option 'combine' is
given, the upgrade or install actions given on the command line may be
combined. For now, it will combine just what it needs to to ensure that your
situation will work. Going forward it will do what most other package managers
do - resolve all dependencies first, then download all needed packages, then
unpack all needed packages, then run all post-install scripts. This behaviour
will then become the default (either in 0.3.0 or 0.4.0) and the 'combine'
option will no longer be needed.
That path should ensure that nothing breaks unexpectedly.
Original comment by paul.betafive
on 3 Jul 2014 at 12:28
Hi,
you have forgot to add the new patch, or where can I found the new
functionality?
And how must I enter the "combine" option to a config file, to activate this by
default?
Original comment by muuscl...@gmail.com
on 3 Jul 2014 at 3:39
Sorry, that's just a proposal so far. I'm hoping to get some time to work on it
over the next week. I just thought I'd share my ideas up front.
The syntax in the config file will be 'option combine 1'.
Original comment by paul.betafive
on 3 Jul 2014 at 3:49
OK, than I understood your last post wrong.
It's grate, that you share your ideas...
Do you checkin all your work to the git, so that I can simply checkout the
master branch to get also the posted patches? Or should I (as I do at the
moment) use the 0.2.2 download and patch it.
Original comment by cm...@google.com
on 3 Jul 2014 at 3:55
There's now a long list of patches so I have set up a publicly readable
repository to push branches to. The patches which should fix this are now in
the branch 'for-0.2.3/fix-124' in the repository at
https://bitbucket.org/betafive/opkg.git.
That branch is based on the 'opkg-0.2.x' branch which now contains a couple of
other fixes as well. You should be able to see details in the git log if you're
interested.
Original comment by paul.betafive
on 7 Jul 2014 at 8:41
Thank you!
It seems to work.
Original comment by muuscl...@gmail.com
on 7 Jul 2014 at 11:28
I'm going to do some further review and testing on that code before merging it
onto the opkg-0.2.x branch but it's good to know that it's working for you.
As an aside, I think this is at least 3 bugs solved here! (bad parsing of
version strings including colons, failure to ensure that packages to be
installed will meet the dependency constraints of packages already installed,
failure to resolve dependencies correctly when installing/upgrading multiple
packages at once).
A bugfix release, v0.2.3, will be made soon after these fixes are merged.
Original comment by paul.betafive
on 7 Jul 2014 at 11:46
I have a further question. Is is possible to hibe some of the messages. At the
moment I get on upgrade for every package lots of this message: "Not selection
kernel 3.14.0.64 as installing it would brake existing dependencies". I get
this also if I use the option --combine and the upgrade works well.
It's ok to show this message (one time not several times) if I do not use the
--combine option and the upgrade fails. But if the upgrade will be done, I do
not need this message.
Original comment by muuscl...@gmail.com
on 7 Jul 2014 at 12:19
I have a further comment.
If I call a "opkg --combine list-upgradable" I get this message (also without
the --combine option): "Not selecting kernel 3.15.4.64 as installing it would
break existing dependencies."
I think, this message will be OK, if I do not use --combine, but not with this
option.
Also I think this message should also be shown (if --combine is not given) for
e.g. the network package, witch depends on the kernel. But that package will be
shown normal as upgrade able.
Is it possible to remove this message if --combine is set and shown the kernel
normal as upgrade able?
Original comment by muuscl...@gmail.com
on 11 Jul 2014 at 11:31
It does sound like the number of notices emitted by opkg in these cases would
get rather annoying. I'll have a look at what I can do to reduce them now that
the behaviour of opkg seems to be correct.
Original comment by paul.betafive
on 11 Jul 2014 at 1:15
I've pushed a couple of further changes to the branch on bitbucket, they should
clean up a couple of bugs I noticed I had introduced (incorrect state_want
values, incorrect handling of held packages) and should reduce the number of
"Not selecting..." notices you see. I've ensured this passes the test suite but
it does still need further review before merging to the opkg-0.2.x branch.
These changes might not catch all the unwanted "Not selecting..." notices so
could you try out these changes and send me the output produced by opkg? We can
then look at whether there are more messages we need to remove.
Original comment by paul.betafive
on 14 Jul 2014 at 2:13
The 'for-0.2.3/fix-124' branch has passed all my local tests so it's ready to
merge to opkg-0.2.x in preparation for a v0.2.3 release in the next couple of
weeks.
I'd just like to check if my recent changes reduced the number of notices you
were getting from opkg. It should be much better now, let me know if it isn't.
Original comment by paul.betafive
on 25 Jul 2014 at 12:05
I'd like to move forward so I've merged the changes I have to both the
opkg-0.2.x and master branches. I think we can call this fixed now unless
there's anything I've missed.
Original comment by paul.betafive
on 1 Aug 2014 at 10:36
Now I have a new problem. If a package depends on two packages and the package
and both depended packages should be upgraded, this is not possible and the
upgrade call will only upgrade one of the depended packages.
e.g.:
The control files of the installed packages looks like this:
Package: A
Version: 1.0
Depends: B (= 1.0), C (= 1.0)
Package: B
Version: 1.0
Package: C
Version: 1.0
The new packages looks like this:
Package: A
Version: 1.1
Depends: B (= 1.1), C (= 1.1)
Package: B
Version: 1.1
Package: C
Version: 1.1
If I do a "opkg upgrade" only package C will be upgraded. Package A and B will
be the old one.
Sins it is complicated to simulate this problem on a real system (there are
lots of other dependencies), I'm not really sure, if the reason for the problem
is a other side effect.
Maybe it's important, that until my tests, there was also a package D installed
that depends on package C like this:
The control file of the installed packages D looks like this:
Package: D
Version: 1.0
Depends: C (= 1.0)
The new package D looks like this:
Package: D
Version: 1.1
Depends: C (= 1.1)
I also have a further problem, that maybe occur on the first one.
If I now do a "opkg remove A", the the package A will be removed from the list
of installed packages, but all files of package A will stay on the system. No
files will be removed.
Original comment by muuscl...@gmail.com
on 18 Aug 2014 at 3:02
I can't replicate either of those failures. With just A, B and C installed,
"opkg upgrade A" or "opkg upgrade" works and upgrades all three packages. With
A, B, C and D installed, "opkg upgrade --combine" or "opkg upgrade --combine A
D" is needed as the dependencies of A and D must be considered together.
Are you using the opkg-0.2.x branch from git://git.yoctoproject.org/opkg or are
you using some other version?
Original comment by paul.betafive
on 18 Aug 2014 at 5:54
I use the for-0.2.3/fix-124 version from git clone
https://bitbucket.org/betafive/opkg.git
Also I use the --combine Option.
Tomorrow I will create some test packages, to check again my reported problem.
Original comment by muuscl...@gmail.com
on 18 Aug 2014 at 8:04
I have found that my changes have exposed a couple of other dependency
resolution bugs. They're not related to the original case here so issue 124
remains closed.
I've opened issue 141 to track the newly exposed bugs. You may want to follow
that issue and retry the opkg-0.2.x branch from git://git.yoctoproject.org/opkg
once I've fixed it.
Original comment by paul.betafive
on 19 Aug 2014 at 5:05
OK. What is now the best branch (and git url) to follow all your updates to
this issue and the issue 141?
Original comment by muuscl...@gmail.com
on 19 Aug 2014 at 8:07
It should be that opkg-0.2.x branch I mentioned, should be pushing patches
tomorrow.
Original comment by paul.betafive
on 19 Aug 2014 at 8:32
I have found the reason for my Problem described in
https://code.google.com/p/opkg issues/detail?id=124#c37 The reason is a package
that gets a version downgrade. The newest version of the problematic package,
that depends on other packages, has a lower versions number. Because of this,
opkg do not want to "upgrade" this package, and it blocks the upgrade of some
other packages. So, this is a problem of how I generate the package versions
numbers, and not of the opkg package manager.
Original comment by muuscl...@gmail.com
on 22 Aug 2014 at 12:19
Is there a simple way, to let a package with a small versions number shown as a
newer one?
e.g.:
the old package has this versions number:
2014.06.20-1
and the new one this:
2014.05.20-2
On debian packages I often se a "1:" or a 2: prefix in versions numbers. Does
such a prefix prefix has a higher priority than a normal number?
e.g.
than the new versions number will be like this:
1:2014.05.20-2
Does this number has ha higher priority?
Original comment by muuscl...@gmail.com
on 22 Aug 2014 at 12:55
opkg parses versions much like dpkg does, so the Debian Policy Manual explains
this: https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version
So in your example, "1:2014.05.20-2" would be higher than "2014.06.20-1". This
is because "2014.06.20-1" is interpreted as "0:2014.06.20-1".
Original comment by paul.betafive
on 22 Aug 2014 at 1:08
Thanks, that is the solution fro my problem.
Original comment by muuscl...@gmail.com
on 22 Aug 2014 at 1:33
Now I have a further question to my last problem. Currently I get no message,
until an upgrade, that tells my witch package blocks an upgrade. Is it possible
to show a list of packages that blocks an upgrade and is it possible to get an
option, that allow to force the upgrade with uninstalling the blocking packages?
Original comment by muuscl...@gmail.com
on 23 Aug 2014 at 9:51
I don't think comments on the issue tracker is the best place to discuss this
as it isn't related to resolving the original issue. Could you ask that on the
mailing list instead?
Original comment by paul.betafive
on 23 Aug 2014 at 12:24
OK, I created a simple test for
http://code.google.com/p/opkg/issues/detail?id=124#c37.
In my scenario I use meta package that has ~50 dependencies on other packages
with exact (=) version binding to ease the upgrade process and to be sure that
everything is installed.
"c" package represents meta package in attached test. Currently test fails.
I use "master" branch (rev 7e2942).
Also I have some comments on
http://code.google.com/p/opkg/issues/detail?id=124#c3.
Package managers such as "apt" or "yum" upgrade all packages that have any
dependencies on each other to satisfy them. I think that this is a right way,
specially on embedded platforms with sometimes unattended installation of
packages. So "blocking" mechanism is not a good idea.
Original comment by KirG...@gmail.com
on 4 Jan 2015 at 11:42
Attachments:
Today I fond the reason, why many upgrades fails. Here is a simple example,
that force the error:
e.g.:
The control files of the installed packages looks like this:
Package: A
Version: 1.0
Package: B
Version: 1.0
Depends: A (= 1.0)
Package: C
Version: 1.0
Depends: A (= 1.0), B (= 1.0)
Package: D
Version: 1.0
Depends: A (= 1.0), B (= 1.0)
Now upgrades for all packages are available. The new packages looks like this:
Package: A
Version: 1.1
Package: B
Version: 1.1
Depends: A (= 1.1)
Package: C
Version: 1.1
Depends: A (= 1.1), B (= 1.1)
Package: D
Version: 1.1
Depends: A (= 1.1), B (= 1.1)
In this case the upgrade (--combine) fails completely. In some more complex
scenarios I have the bigger problem, that some packages will be upgraded, and
some not. As result I will have a broken system.
It will be great if you can fix this issue soon, since we have really big
problem with this issue and lots of broken systems during the last month.
Original comment by muuscl...@gmail.com
on 29 Jan 2015 at 11:15
Original issue reported on code.google.com by
muuscl...@gmail.com
on 12 Mar 2014 at 10:47