With more than a dozen of new/updateable packages, update becomes impossible

The last two-three weeks were quite busy for me and had no time playing with my Haiku installation. This weekend I booted it up and ran SoftwareUpdater: 39 packages to be updated and 3 new to be installed.

I’ve tried doing it at least 20 times, but every f… time there is a package that timeouts or I don’t know what it does, but throws the whole update process down the drain.

Is there some manual way doing this package by package or a timeout/retry variable that can be set higher?

1 Like

You can update packages manually using pkgman update packageName.

The package system is currently quite unforgiving when it comes to flaky network connections. If you can, try using LAN instead of WLAN.
VirtualBox users have to configure the right network adapter for a stable connection.

Something really has to be done about this…!
I’ve been avoiding updating because it’s so frustrating, but I decided it was really about time!

Doing a full udate was too daunting, so I just tried “pkgman update haiku”. Three times.

The first time it got through the x86 Haiku package (6.47MB), then apparently thought it had got a full gcc2 package (at 6.22MB), but the checksum was bad – not surprising, as I think it’s supposed to be 44 MB or so!

The second and third tmes it didn’t even get that far. Just stalled completely. The problem doesn’t seem to be at my end. I can ping my ISP and beyond without any sign of difficulty. (It is DSL, so it’s slow at the best of times.)

Adrien asked me over a month ago to check a fix he made, but there’s no way I can do that ATM. Day to day I’m still using my 4-year old partition, because it does most things I need better that the latest one I’ve been able to install.

ADDENDUM: For comparison, I just downloaded a 22MB file (with wget) from another site, and it was smooth as silk…

I live in China and I have to do my updates between 4am to 9am, otherwise the connection is not stable and a timeout will occur. What is really frustrating is that after going very far, maybe one or two packages remaining, a package is occuring. For the stability of the connection, not much from the haiku project can be done. I just hope not to restart the update from the beginning. Would be great if a system like bittorrent could be implemented for providing files and resuming downloads with integrity check.

We don’t need to go as far as bittorrent. HTTP supports range requests as well. The HTTP client in Haiku will do that just fine. It’s just that the package kit should keep track of what’s downloaded and what isn’t, and retry a bit harder on failures. But it seems no one is interested in taking a few minutes to write that bit of code.

Wait, the relevant bit is in the package kit?

My idea for now: Don’t delete packages already downloaded in transaction_***, and skip downloading these the next time the updater is run

I think this problem should be resolved before beta 2. I have very good line so I have seen it only a couple of times. But I understand how frustrating can be for others. Just my 2 cents as they say…

Add to this problem that curl and/or openssl has a problem in R1B1 133 which renders updates impossible and we find ourselves in a fine mess.

…they’re working on it as we speak.

That’s not how I would do it. It’s actually more complicated to do this: when the updater runs, it must check what’s there, if these packages are still up to date, and make sure they are not corrupt.

Just make the updater retry/resume failed downloads, instead of immediately giving up. That’s easier to do.