How to exclude apps when building Haiku?

I don’t plan to “update” my build. I simply want to trim it down, to those apps/drivers/etc. that I want and use, to free up diskspace, if nothing else. I have a 600Mb disk image with hardly any room left to do anything. I’d like to see how much extra space I can create within that 600Mb disk image. Sometimes things needn’t be logical… to make sense to someone. :smiley:

Then why are you building Haiku at all? Grab the current haiku hpkg, extract it to an empty folder, remove everything what you don’t need and repackage it. For more info you could read the package command help.

You need to be more specific. What did you hash out that failed?
I just tried commenting out “CodyCam” in the “regular” definitions and the built image hasn’t CodyCam in it. So it seems to work…

I’d just delete what you don’t need. You can get the original “regular” file back with git checkout haiku/build/jam/images/definitions/regular.
Or use git to create a local working branch in work in that. There are lots of git tutorials with the specifics.

Or, as X512 said, git diff shows your changes vis-á-vis the Haiku repo if you want to revert a specific change you made.

So, I can just delete the names for stuff in the regular file and it will work fine? That would be great. I wasn’t sure if they had to actually still be in the file but could be “commented out” with a hash, but when there are a couple files I want to keep, that are in the middle of a string of other files I don’t want, I can’t figure out how to hash the the ones I want out, without the others that I want getting eliminated as well. And that already just happened. And trying to put each program on a separate line seemed to break the build (the pathname prompt turned red) and never output an .iso.

you can use guitar for git gui… i think its pretty straightforward to use…

Well, if I knew it were THAT easy… but I didn’t. So, since everytime I rebuild my changes (the hard way, apparently), it creates a new haiku.hpkg, then technically, I should be able to go in that file, and see all the stuff I’ve removed and then remove whatever else I want gone and then repackage it?

That would save a lot of steps. Because right now, I’m making a single change at a time, rebuilding, copying the Anyboot.iso to a thumb drive, burning it on my Windows laptop via BalenaEtcher to the thumb drive, then rebooting my Lenovo laptop with that thumb drive and seeing my change… then repeat. :smiley:

Sometimes doing things the hard way can be a fun learning experience… but when the “fun” wears off, you’re left with just a “learning experience”… then when you’ve learned all you want to learn, it becomes just an “experience”… then when you’ve had all the “experience” you want… it’s just… drudgery. :smiley:

There is this “efficient asking”, you should try to use it.
The base principe: explain clearly at the beginning what your end-goal is, not what your current step is, because in worst case we unnecessarily guide you knee deep into troubles, what would result only to anger.

We insturcted you how to get your checkouts, how to setup your build environment, how to build haiku, even how to exclude things. Instead of this you should have tell us at the beginning what your aim is so we can recommend the most effective way wich requires the least amount of work from your side. This would spare a LOT of time for everybody.

Next trime try to explain clearly what your end-goal is.

Yes. But i fear you still not got my point:

  • Install a nightly Haiku from official source
  • Extract the installed haiku hpkg
  • Trim it down
  • Repackage it
  • Replace the original one in the /system/packages folder
  • Reboot

No messing with building necessary. Your changes will of course dissapear after the first update, but you can redo it, even script it to automatize it. You can even use the repackaged hpkg on other machines too.

Why would you do that? When we have very easy documentation for non-experienced users on how to do it directly from Haiku here ?

Thank you for that advice. It worked and… I discovered that by removing the alternative languages (other than English) to several programs, I reduced the “internal image” (the content of the 600Mb disk image) quite noticably. However, upon looking again, all the files are right back. :frowning: So, the next time I Jam, all those unwanted translations would be right back and the internal image size would be back to before.

How do I permanantly get rid of any and all non-English languages in my builds? I read a page you wrote about how the language strings are held in source code, then compiled into binary files (I assume the files I removed), and then included in each image. But surely there must be an easier way of getting rid of them. A script (or multiple scripts) does a lot of this work, so there must be an easier way to “comment out” (like with the regular file, to get rid of programs and such I don’t want) those alternative languages.

Also, how do I get rid of Vision and Pe? They’re not in listed in the regular file. Yet, when I tried moving the .hpkg files for both of them, the build failed. Trial and error is one way to learn, but it can get tedious, pretty fast. :smiley:

It’s interesting… I got the .iso I created to mount and be seen by installer. But when I try to install from the .iso to a 2Gb USB thumb drive, it keeps giving an error. Yet, if I try to install from the boot drive to the thumb drive, it actually tries. And it went for awhile and then quit, saying it ran out of room on the thumb drive. Yet… shouldn’t it have KNOWN not everything on the boot drive could possibly fit on a 2Gb thumb drive? It worked (starting to install) but failed (ran out of space), yet it won’t even start with 600Mb .iso image at all. Weird.

I need clarification, does the USB boot? If so, I have no idea.

Probably you have been already told that it is really hard to understand you. It seems you are jumping back and forth between different topics and dumps your brain into this textfield. So i fear nobody (except you) can actually understand what you meant. We can ofc try to interpret your words somehow, but that results in very subjective, error prone interpretations. If you really want to get useful help, you should formulate your sentences as clear as possible, separating the different topics and explain what you did step by step.

1 Like

Ok, the Anyboot .iso I created by Jam’ing the source code, I was able to mount, using the “diskimage register” command, in Terminal. When I try to install from that image, I get an error message. In other words, Haiku will not let me install Haiku from that image.

Forget the rest of what I said, because it is a bit off-track, topically. My apologies.

You can improve you chances to get a useful help/hint with providing all the information in one post, without requiring us to ask you about possibly-important details like “And what was the error message?”.


I’m starting over with hrev54010. I’m thinking my Lenovo laptop may have munged something up. Haiku was crashing (KDL) constantly. Often without doing anything.

However, with hrev54010, now I can’t get anything. I can’t pkgman install. I can’t git clone. I can’t even use WebPositive! Yet I can go online just fine with Windows 10 and my iPhone, so I know it’s not our cable modem/router. Anyone else having similar connectivity issues with this revision? If no one else is, then maybe it’s the Netgear wifi extender I’m using to connect my 8-core AMD tower running this revision, to the Internet. It was working fine last night, though.

Oh, just to reduce any confusion, I’m typing this on my Asus Zephyrus G laptop (Windows 10), not the system I’m having issues with (Haiku hrev54010). :smiley:

Well, if you had provided us with pictures of KDL we could at least try to guess what’s going on but now that you’ve started over we won’t be able to understand the problem and fix this. Oh, well.

Again, saying that “you can’t” something isn’t helpful at all. Let me quote @extrowerk here:

You can improve you chances to get a useful help/hint with providing all the information in one post, without requiring us to ask you about possibly-important details like “And what was the error message?”.

How difficult can it be?

No. It was giving a different KDL every time. It was so unpredictable, it was beyond useless. Even as a beta, I know Haiku is not THAT bad. This is why I’m starting over with a fresh revision. I’m thinking it’s either the RAM or the hard drive causing the huge crash-plosion. Also, one reason I’m trying a different system.


At this point I’m pretty sure it’s the Netgear WiFi Extender. I was able to get it to work with my Raspberry Pi 3 and RiscOS by using a static IP address and such. But if I can’t get it to work, doing that, then using my 8-core system is a moot point, as it has no WiFi capability apart from hooking it up to the WiFi extender via Ethernet cable.

I’ll report back when I’ve got it sorted out. Until then… jump through a wormhole to a different timeline and pretend this never happened. :smiley:

usually i did… checkfs to fix filesystem error … try that

Usually, it is either the HD/SSD or defective memory. I can confirm hrev54010 and R1B1 work fine on my test hardware with web browsing and downloads.

You can do a few things:

  1. Have a document of all of the apps/utilities you need for your ‘mini’ install.
  2. Have a ‘remove’ script to remove any games/demos/apps/screensavers/etc unwanted.
  3. Retain Haiku docs/faqs for audio/network setup for your hardware.

NOTE: Retain a working list of /system/packages as you work towards your goal. As of today, most of
the packages work OK for daily usage and testing with hrev54010. So, focus on ensuring your hardware’s
memory and HD/SSD are in full working order - without errors. Then, a clean install and test your installs
with the same Haiku revision on your test hardware, Only then should you work on a test system to reduce packages without further updates until you reached a desired reduced set of packages. :cold_face:

As you remove things ‘properly’ - the system usually tells you what is affected with each package removal. Document that info. Look for library removals and anything that affects GCC/Clang. There are packages that depend on older library revisions - so don’t think that the new library automagically is backward API-compatible. There are other ‘gotchas’ with removing or working with the kernel/core packages, so document, document, document YOUR custom changes.

Note: Be reasonable of your quest. Fitting Haiku on a 1.44MB floppy or use with 64MB RAM? Have a main goal in which other devs understand like designing a dev workstation, embedded system, kiosk, game console, or appliances - or just getting rid of the extra packages cruft. Helps others guide you to ‘your’ goal.

So again - look at the demos/games/toys/screensavers. There are other things but that is by your choice and you could inop your system by disabling coreutils-related binaries (your BASE/CORE system).
So just be careful and have fun tinkering.