Opened 6 years ago

Closed 6 years ago

#13980 closed bug (fixed)

Building Haiku under Haiku fails

Reported by: humdinger Owned by: waddlesplash
Priority: normal Milestone: Unscheduled
Component: Build System Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

This is hrev51770, 32bit.

  • clone the Haiku source
  • ./configure
  • jam -q @nightly-raw

fails in the end with:

Extracting /Source-Haiku/haiku/generated/download/fontconfig-2.12.6-1-x86_gcc2.hpkg ...
Error: Failed to open source path `/Source-Haiku/haiku/generated/tmp/extract/settings/./fonts/conf.d/10-hinting-slight.conf': Bad file descriptor
Error: Command failed: Bad file descriptor
Error: Command was:
  cp -f -r :/Source-Haiku/haiku/generated/tmp/extract/settings/. /myfs/system/settings

In generated/tmp/extract/ is only that settings folder, while 10-hinting-slight.conf is a symlink to generated/tmp/extract/data/fontconfig/conf.avail/10-hinting-slight.conf.

generated/build_packages/fontconfig-2.12.6-1-x86_gcc2/ hold all the correctly extracted files and folders.

git bisect says the culprit is hrev51719.

Change History (21)

comment:1 by waddlesplash, 6 years ago

So, I can't reproduce this. Can you try the following:

  1. git pull and then ensuring that git log -1 shows the current commit
  2. git status to ensure there are no changes.
  3. rm -rf generated (or whatever the name of your generated is), reconfigure, and run jam (from the repository root, NOT the generated directory.)

If it still fails after that, I'll try to track down the exact command so you can add strace in front of it.

comment:2 by waddlesplash, 6 years ago

Note that you cannot actually git bisect here, as the attributes emulation layer (for Haiku on Haiku builds only) was known to be broken before hrev51721 in a way that corrupts the generated directory and produces error messages like this one, so if you have a generated directory from before that hrev, you must delete it.

comment:3 by humdinger, 6 years ago

I did do as you wrote and started again from scratch, i.e. a blank "generated" folder, configure, jam.

Now it's stuck with:

Encountered problems:
problem 1: nothing provides lib:libidn2_x86>=0.3.3 needed by gnutls36_x86-3.6.2-1
  solution 1:
    - allow deinstallation of webpositive_x86-r1~alpha4_pm_hrev51838-1

I built libidn2_x86 with haikuporter and installed the hpkg, since pkgman doesn't find it. Still same error. Updating to hrev51834 doesn't help either.

in reply to:  3 comment:4 by korli, 6 years ago

Replying to humdinger:

Now it's stuck with:

Encountered problems:
problem 1: nothing provides lib:libidn2_x86>=0.3.3 needed by gnutls36_x86-3.6.2-1
  solution 1:
    - allow deinstallation of webpositive_x86-r1~alpha4_pm_hrev51838-1

FWIW the buildbot is also stucked with the same failure. https://buildbot.haiku-os.org/builders/haiku-master-x86_gcc2_hybrid/builds/4173/steps/jam%20%40release-raw/logs/stdio

comment:5 by waddlesplash, 6 years ago

Resolution: fixed
Status: assignedclosed

Yep, that is a different issue. Closing this one as fixed, then.

comment:6 by humdinger, 6 years ago

Resolution: fixed
Status: closedreopened

After pulling in the changes of hrev51839 the latter issue is fixed, but I again see the original breakage with the 10-hinting-slight.conf.

comment:7 by waddlesplash, 6 years ago

Ugh. Alright, I'll try to track down the right place to add an strace to, but I probably won't have time for that today.

comment:8 by humdinger, 6 years ago

Any progress so far?

comment:9 by nzimmermann, 6 years ago

I have the same problem with compiling Haiku x86_gcc2 within Haiku x86_gcc2, on a vanilla machine.

Last edited 6 years ago by nzimmermann (previous) (diff)

comment:10 by nzimmermann, 6 years ago

I'm done with my testing, found no way to get this to work :-( Tried reconfiguring several times, always with fresh 'generated' directories, git clean -xfd first, etc. it reproducible fails.

Did anyone find a workaround??

comment:11 by nzimmermann, 6 years ago

Here are further information why it fails:

The -extracted- fontconfig package lives here:

~/Software/Haiku/haiku/generated/build_packages/fontconfig-2.12.6-1-x86_gcc2/settings/fonts/conf.d> ls -alh
total 92K
drwxr-xr-x 1 user root 2.0K Apr 13 13:23 .
drwxr-xr-x 1 user root 2.0K Apr 13 13:23 ..
lrwxrwxrwx 1 user root   58 Apr 13 13:23 10-hinting-slight.conf -> ../../../data/fontconfig/conf.avail/10-hinting-slight.conf
lrwxrwxrwx 1 user root   62 Apr 13 13:23 10-scale-bitmap-fonts.conf -> ../../../data/fontconfig/conf.avail/10-scale-bitmap-fonts.conf
lrwxrwxrwx 1 user root   61 Apr 13 13:23 20-unhint-small-vera.conf -> ../../../data/fontconfig/conf.avail/20-unhint-small-vera.conf
lrwxrwxrwx 1 user root   58 Apr 13 13:23 30-metric-aliases.conf -> ../../../data/fontconfig/conf.avail/30-metric-aliases.conf

Note that 10-hinting-slight.confg is a symlink ../../data/fontconfig/... which exists.

~/Software/Haiku/haiku/generated/build_packages/fontconfig-2.12.6-1-x86_gcc2/settings/fonts/conf.d> ls -alh  ../../../data/fontconfig/conf.avail/10-hinting-slight.conf
-rw-r--r-- 1 user root 463 Apr 13 13:23 ../../../data/fontconfig/conf.avail/10-hinting-slight.conf

The error is that these symlinks are still present in the location in generated/tmp/extracted/..:

~/Software/Haiku/haiku/generated/tmp/extract/settings/fonts/conf.d> ls -alh
total 92K
drwxr-xr-x 1 user root 2.0K Apr 14 20:46 .
drwxr-xr-x 1 user root 2.0K Apr 14 20:46 ..
lrwxrwxrwx 1 user root   58 Apr 14 20:46 10-hinting-slight.conf -> ../../../data/fontconfig/conf.avail/10-hinting-slight.conf
lrwxrwxrwx 1 user root   62 Apr 14 20:46 10-scale-bitmap-fonts.conf -> ../../../data/fontconfig/conf.avail/10-scale-bitmap-fonts.conf
lrwxrwxrwx 1 user root   61 Apr 14 20:46 20-unhint-small-vera.conf -> ../../../data/fontconfig/conf.avail/20-unhint-small-vera.conf
lrwxrwxrwx 1 user root   58 Apr 14 20:46 30-metric-aliases.conf -> ../../../data/fontconfig/conf.avail/30-metric-aliases.conf

But the ../../../data directory does not exist here. The problem is obvious, the fix (to me as Haiku newbie) not.

comment:12 by nzimmermann, 6 years ago

Hah, very easy problem:

The new fontconfig 2-12.6 recipe added on March 15th 2018, by miqlas contains:

+       # Make symlinks relative
+       for i in $settingsDir/fonts/conf.d/*.conf; do
+               ln -f -r -s "`readlink "$i"`" "$i"
+       done

This is probably the culprit, will talk to miqlas.

Last edited 6 years ago by nzimmermann (previous) (diff)

in reply to:  12 comment:13 by nzimmermann, 6 years ago

Replying to Nikolas Zimmermann:

Hah, very easy problem:

The new fontconfig 2-12.6 recipe added on March 15th 2018, by miqlas contains:

The dates are bogus, the symlink stuff is actually present since 2016, and can't be the cause of the bug. After talking to waddlesplash on IRC, it's clear that the issue must come from the libroot patch, and a fix is needed.

The recipes are not the problematic part.

comment:14 by waddlesplash, 6 years ago

I deleted my generated directory and upgraded to the latest hrev51880, and the fontconfig package extracts without warning. The symlinks exist and all are valid...

comment:15 by humdinger, 6 years ago

I, too, deleted the "generated" folder, updated to hrev51881, configured and build a nightly-anyboot. I still run in the exact same issue originally reported in this ticket.

I try to build a gcc2hybrid image under 32bit Haiku. The "generated" folder sits in its own partition and is linked from the haiku trunk. This is my configure line (executed inside the "generated" folder):

/Source-Haiku/haiku/configure -j8 --use-gcc-pipe --distro-compatibility official
--include-patented-code --target-arch x86_gcc2 --target-arch x86

in reply to:  15 ; comment:16 by korli, 6 years ago

Replying to humdinger:

I, too, deleted the "generated" folder, updated to hrev51881, configured and build a nightly-anyboot. I still run in the exact same issue originally reported in this ticket.

Could you eventually try this patch? https://review.haiku-os.org/#/c/118/

comment:17 by humdinger, 6 years ago

Success! With the patch the image builds without error!

comment:18 by waddlesplash, 6 years ago

Good. Don't merge that yet, though, there are still some edge-cases I need to test.

in reply to:  16 comment:19 by nzimmermann, 6 years ago

Replying to korli:

Replying to humdinger:

I, too, deleted the "generated" folder, updated to hrev51881, configured and build a nightly-anyboot. I still run in the exact same issue originally reported in this ticket.

Could you eventually try this patch? https://review.haiku-os.org/#/c/118/

Thanks - I'm testing this patch too, and will report back.

in reply to:  17 comment:20 by nzimmermann, 6 years ago

Replying to humdinger:

Success! With the patch the image builds without error!

Confirmed! Works for me as well now.

comment:21 by waddlesplash, 6 years ago

Resolution: fixed
Status: reopenedclosed

Patch merged in hrev51906.

Note: See TracTickets for help on using tickets.