Can anyone confirm these instructions for building Haiku?

I do not know how to downgrade, so I’ll look into that since yes, I’m not stuck where software updater makes it seem like it can’t connect to the server. So I will need to find out how to downgrade.

I hope you don’t take offense by my rebuttals to your suggestions about prebuilt VM or Haiku in the cloud. Perhaps some will like those decisions, but I think this only skirts around the issue. What really needs to be done is:

Ensure that there are clear documented steps (not confusing and not ambiguous)
Ensure that those steps, if followed, work
Ensure that there is appropriate error information when something goes wrong (i.e. actionable error messages)
Ensure there is resilience in the process so that it is possible and easy to understand how to recover from errors and resume work

I have done software development for 25+ years and know that more people will get involved when the process works, is understandable and when they can start seeing how “easy” it is to make changes and see their changes work. Right now, the process is unclear, a bit like magic, doesn’t work too much of the time, and discourages participation because it requires too much mental, temporal and technical involvement.

Now I have to figure out how to downgrade my system, and then figure out how I can break-down the steps and find out what is failing. Does this mean that the logs I uploaded do not provide enough information to understand the issue that is occurring?

You can reboot, and press space to get into the Haiku boot loader and from there you can select a previous revision. This is one major benefit of how Haiku handles packages.

As for the Haiku in the cloud idea, yeah, that is mainly just a crazy idea which might be fun to see if it can work. But as you say normal development should use a normal process.

I am personally not an expert on the Haiku build system anymore. I used to know a lot more about our build tool, Jam, but I have forgotten most of that. In addition I am not personally very familiar with how the package downloading works when building. To my eyes it looks like your build is failing because some packages did not download. I do not know why a failed download does not immediately make the build fail if you have passed the -q parameter to Jam, which you seem to be doing. I assume this is a flaw in the build system. I know there have been some efforts to update the Haiku build system, including writing a new version of Jam, called ham (haha), but that was not finished. Changing the build system for an operating system like Haiku is a lot of work and the project has higher priority things to work on, or maybe more directly none of the volunteer developers have wanted to upgrade the build system in recent years.

To be honest at this point I’d suggest you think of yourself as another Haiku developer, figure out why your build is not working, and then provide patches to the build system or PRs in GitHub to our website to update the documentation. Haiku is currently a completely volunteer driven project and many people (and our build servers) are currently able to build things as they are, so there may be something odd about your setup, and unfortunately the best person to figure that out is yourself.

I do intend to try to get Haiku building on a new set up soon, but I don’t currently have time to do that this week due to other personal obligations. I can spend 15 minutes writing some replies here on my Chromebook but actually sitting down at my big development desktop and setting up a Haiku build system is currently requiring more time than I have.

When I do get this set up I’ll definitely respond here if I have some problems, and as I go through I’ll see if there are areas of the docs which need to be improved.

Are you using a locale other than English? There is an annoying Haiku wget bug that prevents some packages from downloading when using a different locale other than English.

For building, try also creating a package via substituting @nightly-anyboot with haiku.hpkg. If it’s successful, you can install it with pkgman install haiku.hpkg.

I am using English.

I will try the alternative haiku.hpkg you suggest.

I did not know about this. If I did the steps right, I was able to go back to the version before the problem, boot up and then use software updater to update to the latest which seems to work as expected.

Seriously cool to be able to do that. As for the other details you mentioned… I’ll keep trying and get back with some more details.

1 Like

Is there a bug report for this?

I was able to duplicate this error with a fresh install of hrev54972 (in qemu).
For some reason mtools is not getting installed.
To fix:

pkgman install mtools

I deleted the generated.x86_64 directory (may be unnecessary, but I could not get configure to re-run), then re-ran

…/configure --cross-tools-source …/…/buildtools --build-cross-tools x86_64

jam -q -j2 @nightly-anyboot

I don’t know if mtools is supposed to be built or if it is a prerequisite.
If its a prerequisite, it needs to be added to
https://www.haiku-os.org/guides/building/pre-reqs

HTH

1 Like

mtools is no longer a prequisite, and was thus removed from the documentation

The efi image creation uses mtools.

https://git.haiku-os.org/haiku/commit/?id=58332722cd53ab2c1e49379a614502a28b979788

If some part still uses it that would be a bug, we have fs_shell based code for fat32 instead

https://git.haiku-os.org/haiku/commit/?id=9f3ba01bd36e8069a3550fb10c38c48841a2c0bc

When you already have a generated directory, you can run configure with the --update flag to reconfigure things if needed.

Hi all, I am trying to build the haiku code. I am following the instructions given here: https://github.com/haiku/haiku/blob/master/ReadMe.Compiling.md .
I have configured Haiku successfully and whenever I hit the command jam, I see the following error after some time:
ERROR: cannot verify eu.hpkg.haiku-os.org's certificate, issued by ‘CN=R3,O=Let's Encrypt,C=US’:
Unable to locally verify the issuer's authority.
To connect to eu.hpkg.haiku-os.org insecurely, use –no-check-certificate’.`

source="generated/objects/haiku/x86_64/packaging/repositories/HaikuPorts-checksum"
wget --retry-connrefused --timeout 30 -O "generated/download/gcc_syslibs_devel-8.3.0_2019_05_24-7-x86_64.hpkg" https://eu.hpkg.haiku-os.org/haikuports/master/build-packages/cat $source/packages/gcc_syslibs_devel-8.3.0_2019_05_24-7-x86_64.hpkg || exit 1
touch "generated/download/gcc_syslibs_devel-8.3.0_2019_05_24-7-x86_64.hpkg"

...failed DownloadLocatedFile1 generated/download/gcc_syslibs_devel-8.3.0_2019_05_24-7-x86_64.hpkg ... ...removing generated/download/gcc_syslibs_devel-8.3.0_2019_05_24-7-x86_64.hpkg

BUILD FAILURE:
...failed updating 1 target(s)...
...skipped 7 target(s)...
...updated 6 target(s)...

I have tried to run the commands given here https://www.haiku-os.org/guides/building/jam still it shows the same error.
Can anyone please tell me what i may be doing wrong.
Thank you!

Is it with beta2 or a nightly?
What version of ca_root_certificates package do you have?

This is with beta2.
Can you please tell me how to know the version of ca_root_certificates package.

My second try to build Haiku as well. 64bit nightly. Host is hrev54979 running on metal.
buildtools and haiku are inside /boot/home/hkdev.
Did configure appropriately and build with jam -q -j4.
Build seems succesful because I see almost evrything created (from what I can tell at least).

But I did noticed some compile errors related to some image translators missing header files like: OpenEXRConfig.h, HalfFunction.h, jpeglib.h e.t.c

Also, at the very end looks like the image was not created and I see this as final lines of output:

download/noto_sans_cjk_jp-1.00 100%[=================================================>] 117.74M 850KB/s in 2m 22s

2021-03-12 09:42:07 (848 KB/s) - ‘download/noto_sans_cjk_jp-1.004-2-any.hpkg’ saved [123454659/123454659]

Error while writing to file `/myfs/system/packages/noto_sans_cjk_jp-1.004-2-any.hpkg’: No space left on device
Error: Command failed: No space left on device
Error: Command was:
cp -f :download/noto_sans_cjk_jp-1.004-2-any.hpkg /myfs/system/packages

export imagePath=“haiku.image”
export isImage=“1”
export isVMwareImage=""
…/build/scripts/build_haiku_image /boot/home/hkdev/haiku/generated.x86_64/./haiku.image-init-vars /boot/home/hkdev/haiku/generated.x86_64/./haiku.image-make-dirs /boot/home/hkdev/haiku/generated.x86_64/./haiku.image-copy-files /boot/home/hkdev/haiku/generated.x86_64/./haiku.image-extract-files

…failed BuildHaikuImage1 haiku.image …
…removing haiku.image

BUILD FAILURE:
…failed updating 1 target(s)…
…updated 15405 target(s)…

My disk has 300Gb free.
It’s not a big problem because I was not planning to use the image but debug certain apps. In any case I would like to understand what is wrong in order to become fully familiar with the build process.

Maybe the image size should bumped again.

@extrowerk: after your comment I realized I missed a major piece of info. I built everything in debug because I want to be able to debug anything inside the system and become more familiar. That certainly increases sizes so maybe this is the reason behind the error?

This config is probably broken currently.

Try jam -q -j4 @nightly-raw (or nightly-anyboot) instead. This selects one of the build profiles which has a pre-selected set of packages, and an appropriate image size for them to fit.

Did you follow instructions that tell to do this on the website? If so, where are these? We can try to make it clearer that currently, a specific build profile must be selected. Maybe we should also change the default target in Jam to complain about it.

This is also probably not so great an idea to start with. When you configure debug mode, extra asserts() and other checks are enabled, and some of them will prevent you from running the resulting system. Help fixing that is welcome, but if you are just getting started with Haiku, maybe start with the default configuration, and enable debug in a more targetted way for the parts where you really need it.

Tried @nightly-raw and this time I got:
Error while writing to file `/myfs/system/packages/haikuwebkit-1.7.0-1-x86_64.hpkg’: No space left on device
Didn’t do any cleanup before that attempt.

Website instructions always talk about a build profile I think. But by reading local compiling instructions I got the impression that I could do it without specifying one. So, probably mis-interpretation from my side.

Yes, I understand your reasoning and makes sense. I will probably try it initially that way and if I get too much problems I will re-evaluate. My intention is not to run the full system, just to be able to debug in system libs beginning from a Haiku app, most probably WebPositive. Based on my experiments and your feedback I will eventually find the way that suites me best I think :slight_smile:

Thanks a lot @PulkoMandy !