Trouble with poor network conditions

I frequently have an issue with pkgman and SoftwareUpdater, under poor network conditions. Haiku starts downloading packages and validating the checksum for each one, and then it stops, presumably when the connection goes down. Then I need to restart the whole download process, including the packages that had been already downloaded.

Shouldn’t those packages be cached for some time, after a successful checksum verification? It seems to me like an unnecessary multiplication of downloads, and also an undesirable additional load to the server…

Is this a known bug, an intentional design decision, or a bug just waiting to be reported and fixed?

1 Like

It’s a known limitation. We did the simplest thing that got us rolling and no one has bothered to fix it since then.

Ticket #12414 tracks the issue.

Until it’s solved, you can do a pkgman update to see which packages need updating, then cancel that by answering “no” when asked to really update.
Now try updating specific packages one after the other with pkgman update <package-name>.

2 Likes

I have a similar problem. Packages come down way too fast, and after getting halfway through, the server won’t let me download anything else until I wait for a minute. My network connection works fine, and I can browse when it happens… which is why I’m guessing the server thinks I’m hammering it when I try to do a long update or install a big order of packages. So now, I just download the latest Nightly, upgrade from that, and reinstall any extra apps, etc. I want from the Depot. I’m not sure what the fix is, other than maybe to add a switch for a delay in between packages or otherwise add more padding in between fetches.

If it’s actually the server throttling you, we should just fix the server configuration to let you download as fast as possible rather than slowing down the process.

The problem is more annoying when things are already slow and then they fail mid-way, which is where resuming downloads, etc, would help.

2 Likes

I see you’ve complained about this in two threads; after building Haiku the first time, it should spawn generated and downloaded package directories, and from there, it’s possible to do localized builds by using the tarballs, etc. downloaded to disk by setting your build options. As for why, it’s not because Haiku is a “trainwreck” but rather because some pieces in the building process have to be separate because though Haiku is a full operating system, the main source bundle doesn’t come with every single piece a complete image will have; some are licensed under different licenses, like the GNU coreutils. Together, they make up a finished image. But really, unless you’re trying to grab the Haiku source straight from GitHub without compiling it first and letting the packages download in that moment (in the same place that there is Internet access for working on it offline later), I’m not really seeing the huge grievance here…

1 Like

Even if I don’t share the observer’s disappointment about Haiku, I can see a way in which the recent focus on the packaging system can limit the user’s experience. I am thinking on end users here, not exactly developers.

I know that there is still support for non-packaged applications which complements the packaging system. I have used it yesterday to install one application I got from GitHub. So, it is possible, at least in theory, for an Haiku user, to live in offline mode. But now some activities like compiling applications or obtaining most of them require access to the Internet. I understand why, and I love HaikuDepot and pkgman.

However, having gone myself through the experience of being unable to install applications on an old MacBook which had no WiFi support, in that moment I missed the good old BeBits website, which if it still existed today could offer an alternative source of software for these situations.

The thing is: we are relying almost exclusively on app stores and package managers and clouds, even in the open source world. But no server lasts forever, and having an alternative way of getting packages (or sets of packages, like LibreOffice, Krita, Paladin, Koder, or even updates) could be useful both as a way to preserve software history and to make it easier to install on computers that for some reason may have limited access to the internet.

2 Likes

Last time it took me an hour to explain why I am going to updaate Haiku this way… On IRC channel… Until I thought I am not good in explaining why someone will do so…

I wrote down some links… like:
gt5-5.13.2-3-x86_64.hpkg and some more to test with.
…after some trying (pkgman update gt5-5.13.2-3-x86_64.hpkg) I asked in the IRC channel why this is not working… only to find out (pkgman update gt5) is enough to type!

Would be even better if drag n’ drop would work here! At least copy and paste would be nice to have here…
An easy solution would be nice to have. Maybe a software update link-list once a week.

I have managed to install the stuff I wanted in my old Mac, using pkgman. It was a lot of work, with a few reboots required every now and then (the WiFi driver seems to be a bit unstable, also).

I would add that after listing the required packages, I ended up writing a long command sequence with individual pkgman install PACKAGE -y for each one. Using the -y allowed me to go away and do other stuff while it was installing. Then I would go back and redo the same command in order to install any packages that had failed due to network instability.

Thanks for the tips!

I don’t see the connection to having package management.
Before PM, you had to get the source of an app from github - you needed an internet connection for that. Then you had to find out what dependencies the app had and go hunt those down - again, you needed an internet connection for that. If the dependency came as a zip, you had to take care to get the right version… If the dependency had further dependencies itself, you had to repeat the steps some more.

Now with PM, you’ll still need all the code and dependencies, just like before. Only that you don’t have to hunt stuff down and download separately, but ideally get the app from HaikuDepot that takes care of downloading/installing all dependencies in one go.

Finally, you can still download every needed dependency package separately (even from another OS) by downloading the HPKG directly from https://depot.haiku-os.org. It’s not much fun though, try to get all that’s needed to run LibreOffice, for example… :slight_smile:

3 Likes

I was not comparing with the pre-packaging Haiku era, I was comparing with old BeOS time, where binaries would be made available to end users. Those, I guess, would include most of their dependencies.

Well, if you’re lucky they have all the libs in their binary’s local lib folder. Then you only have space wasted with duplicated libs. Many also just unpacked into the system’s lib folder and you may have ended up with incorrectly named libs overwriting stuff there, or some symlink magic bending those links to differently versioned libs etc.
Quite messy, if you’re unlucky…

Yeah, you’re right.

We have been careful to design the packaging system so that this is still, in fact, possible. You can download an hpkg file and double click it to install it - just as you would have done in BeOS woth pkg files. This was a strong requirement for our package system.

What happened then? Well, a lot of software people use on Haiku now is ported from Linux and brings in the usual “dependency hell” from there. If you use software designed for BeOS, you will find out that there are usually no dependencies, or maybe one or two in some cases.

It’s just that the package manager enabled porting Linux software, which would otherwise simply never make it to Haiku. We hope that in the future, people will write more native applications and that will reduce the need for ported apps with lots of dependencies.

I will not comment here about the decision of the person owning BeBits and HaikuWare to close both websites and make sure all archives are erased and threaten people trying to archive BeOS software for legal action to take their websites down.

8 Likes

It’s not that nobody cares, it’s a limitation few run into. Patches welcome to improve any issues on slow links.

Also, I’ve successfully compiled Haiku multiple times in the middle of nowhere rural central texas with a 3 Mbit down, 1 MBit up point to point directional wifi connection. It takes a while to download all of the build packages… as does downloading your favorite Linux distribution or Windows 10 release on such a connection.

I’ve made huge efforts to ensure all of our infrastructures is open source (https://github.com/haiku/infrastructure/) in addition to our operating system.

Be mad at Charter/Spectrum/AT&T/Comcast for not supporting reasonable rural development of internet access. https://www.battleforthenet.com/

2 Likes

To add insult to injury, in Haikuware site there was a lot of hardware compatibility information, submited by the community (not by the site owner), that was erased too.

What’s really sad was the original authors of BeBits turned the entire site over to Karl to maintain. https://www.osnews.com/story/20702/bebits-gets-new-owner/

I’m pretty sure the original authors of BeBits wouldn’t have wanted their site run into the ground like that. We could have followed up with the original authors to see if Karl had the full copyright ownership to make such demands of everyone (with strong legal threats), but I think everyone just kind of settled that “it wasn’t worth it”

1 Like

Ironically, I moved from Round Rock (fairly large built up city) with my 30mb/s down Internet connection for ~$80 a month, to Cedar Creek (totally rural, population ~200 or ~201, I guess) and have a 200mb/s Internet connection for $50/month.

The 28 likes comes from the different answers, and not from your first and disrespectful post.

In any case, the problem is that you lack any manners about how to approach to a project made by volunteers like this one. If your first approach to a bug is attack to the developers, well… I’m not sure what kind of project will welcome your help.

2 Likes

Haiku is already in beta stage.