Summary: | www/chromium: build fails with harfbuzz 3.0.0 | ||
---|---|---|---|
Product: | Ports & Packages | Reporter: | Stefan Ehmann <shoesoft> |
Component: | Individual Port(s) | Assignee: | freebsd-chromium (Nobody) <chromium> |
Status: | Closed FIXED | ||
Severity: | Affects Only Me | CC: | dch, grahamperrin, jbeich, junchoon, leres, pete, tagattie |
Priority: | --- | Flags: | bugzilla:
maintainer-feedback?
(chromium) |
Version: | Latest | ||
Hardware: | Any | ||
OS: | Any |
Description
Stefan Ehmann
2021-09-18 15:40:33 UTC
Sorry, I've missed the removed APIs and assumed www/chromium would build fine like www/qt5-webengine. Dropping use_system_harfbuzz=true can be a workaround but Arch Linux appears to have a fix. I'll try test and land before the next package build. http://www.ipv6proxy.net/go.php?u=http://beefy16.nyi.freebsd.org/data/130amd64-default/724df9e52627/logs/errors/chromium-92.0.4515.159_1.log http://www.ipv6proxy.net/go.php?u=http://beefy16.nyi.freebsd.org/data/130amd64-default/724df9e52627/logs/errors/electron12-12.0.9_1.log https://source.chromium.org/search?q=hb_subset_input_set_retain_gids https://github.com/harfbuzz/harfbuzz/commit/d700646c33af https://github.com/archlinux/svntogit-packages/commit/b801b21ca112 https://github.com/archlinux/svntogit-community/commit/bab8ce63e17e A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=17218fbbe7992e766373e403fc91b8a6eaa8468f commit 17218fbbe7992e766373e403fc91b8a6eaa8468f Author: Jan Beich <jbeich@FreeBSD.org> AuthorDate: 2021-09-18 17:23:51 +0000 Commit: Jan Beich <jbeich@FreeBSD.org> CommitDate: 2021-09-18 21:31:34 +0000 www/chromium: unbreak after dbc5f433f858 ../../third_party/skia/src/pdf/SkPDFSubsetFont.cpp:74:5: error: use of undeclared identifier 'hb_subset_input_set_retain_gids'; did you mean 'hb_subset_input_set_flags'? hb_subset_input_set_retain_gids(input.get(), true); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ hb_subset_input_set_flags /usr/local/include/harfbuzz/hb-subset.h:142:1: note: 'hb_subset_input_set_flags' declared here hb_subset_input_set_flags (hb_subset_input_t *input, ^ ../../third_party/skia/src/pdf/SkPDFSubsetFont.cpp:77:5: error: use of undeclared identifier 'hb_subset_input_set_drop_hints' hb_subset_input_set_drop_hints(input.get(), false); ^ ../../third_party/skia/src/pdf/SkPDFSubsetFont.cpp:78:19: error: use of undeclared identifier 'hb_subset'; did you mean 'hb_set_set'? HBFace subset(hb_subset(face.get(), input.get())); ^~~~~~~~~ hb_set_set /usr/local/include/harfbuzz/hb-set.h:131:1: note: 'hb_set_set' declared here hb_set_set (hb_set_t *set, ^ ../../third_party/skia/src/pdf/SkPDFSubsetFont.cpp:78:29: error: cannot initialize a parameter of type 'hb_set_t *' with an rvalue of type 'std::__1::unique_ptr<hb_face_t, SkFunctionWrapper<void (hb_face_t *), &hb_face_destroy>>::pointer' (aka 'hb_face_t *') HBFace subset(hb_subset(face.get(), input.get())); ^~~~~~~~~~ /usr/local/include/harfbuzz/hb-set.h:131:29: note: passing argument to parameter 'set' here hb_set_set (hb_set_t *set, ^ PR: 258576 Reported by: pkg-fallout, Stefan Ehmann Obtained from: Arch Linux www/chromium/Makefile | 2 +- www/chromium/files/patch-harfbuzz-3.0.0 (new) | 98 +++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 1 deletion(-) A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=3e693f24a78f51cbb7daf258bd727961b3bec046 commit 3e693f24a78f51cbb7daf258bd727961b3bec046 Author: Jan Beich <jbeich@FreeBSD.org> AuthorDate: 2021-09-18 17:23:51 +0000 Commit: Jan Beich <jbeich@FreeBSD.org> CommitDate: 2021-09-18 22:04:57 +0000 devel/electron12: unbreak after dbc5f433f858 ../../third_party/skia/src/pdf/SkPDFSubsetFont.cpp:74:5: error: use of undeclared identifier 'hb_subset_input_set_retain_gids'; did you mean 'hb_subset_input_set_flags'? hb_subset_input_set_retain_gids(input.get(), true); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ hb_subset_input_set_flags /usr/local/include/harfbuzz/hb-subset.h:142:1: note: 'hb_subset_input_set_flags' declared here hb_subset_input_set_flags (hb_subset_input_t *input, ^ ../../third_party/skia/src/pdf/SkPDFSubsetFont.cpp:77:5: error: use of undeclared identifier 'hb_subset_input_set_drop_hints' hb_subset_input_set_drop_hints(input.get(), false); ^ ../../third_party/skia/src/pdf/SkPDFSubsetFont.cpp:78:19: error: use of undeclared identifier 'hb_subset'; did you mean 'hb_set_set'? HBFace subset(hb_subset(face.get(), input.get())); ^~~~~~~~~ hb_set_set /usr/local/include/harfbuzz/hb-set.h:131:1: note: 'hb_set_set' declared here hb_set_set (hb_set_t *set, ^ ../../third_party/skia/src/pdf/SkPDFSubsetFont.cpp:78:29: error: cannot initialize a parameter of type 'hb_set_t *' with an rvalue of type 'std::__1::unique_ptr<hb_face_t, SkFunctionWrapper<void (hb_face_t *), &hb_face_destroy>>::pointer' (aka 'hb_face_t *') HBFace subset(hb_subset(face.get(), input.get())); ^~~~~~~~~~ /usr/local/include/harfbuzz/hb-set.h:131:29: note: passing argument to parameter 'set' here hb_set_set (hb_set_t *set, ^ PR: 258576 Reported by: pkg-fallout Obtained from: Arch Linux devel/electron12/Makefile | 2 +- devel/electron12/files/patch-harfbuzz-3.0.0 (new) | 98 +++++++++++++++++++++++ 2 files changed, 99 insertions(+), 1 deletion(-) http://beefy16.nyi.freebsd.org/build.html?mastername=130amd64-default&build=724df9e52627 didn't finish before Sunday 01:00 UTC, so "chromium" package from /latest maybe missing from Sunday till Wednesday. Given ABI is compatible outside of deprecated functions removal the following may help: # mkdir -p /usr/local/etc/pkg/repos # printf 'cache: {\n url: "file:///var/cache/pkg",\n enabled: yes\n}\n' >/usr/local/etc/pkg/repos/cache.conf # pkg repo /var/cache/pkg # pkg upgrade -qy -fr cache harfbuzz harfbuzz-icu # pkg lock -qy chromium electron12 scribus-devel # echo pkg unlock -qy chromium electron12 scribus-devel | at 20:00 Wednesday Can you commit patches for www/chromium: Bug258271 (please choose v2 patch) for devel/electron12: Bug257378 please? devel/electron12 needs equivalent change with Bug257352 for main and stable/13, already committed as git 9e6695a71d64d995e6619497626c0a780397b7c9 [1] for www/chromium. I just uploaded merged ([1] and Bug258271) patch to Bug257378. (I myself cannot test due to dependency collision, but previous, equivalent to Bug257352, patch is reported to build fine.) [1] https://cgit.FreeBSD.org/ports/commit/?id=9e6695a71d64d995e6619497626c0a780397b7c9 (In reply to Tomoaki AOKI from comment #5) I'm neither familar (to review) nor use this port (to QA). It takes too much time[1] (at least 4 hours) to test on my hardware, blocking work on other ports. The work here is complete (waiting for confirmation), so it's too late to bundle other changes in order to test together. [1] Chromium used to support https://en.wikipedia.org/wiki/Unity_build similar to Firefox but removed later, see https://groups.google.com/a/chromium.org/g/chromium-dev/c/DP9TQszzQLI/m/pZ7aC8GbDAAJ ccache wouldn't help with initial or infrequent builds (e.g., old cache is useless after a major update). It also requires fast storage and tons of space to accomodate multiple release/architectures and multiple ports. Each of those would probably want a separate CCACHE_DIR. I don't use ccache myself in order to reduce SSD wear and avoid ccache-specific issues. pkg.freebsd.org already offers chromium-92.0.4515.159_2 for 14.0 but not 11.4/13.0. Usually, rsync to mirrors doesn't take more than 1 or 2 hours. http://www.ipv6proxy.net/go.php?u=http://beefy9.nyi.freebsd.org/data/114amd64-default/df04190969ea/logs/chromium-92.0.4515.159_2.log http://www.ipv6proxy.net/go.php?u=http://beefy9.nyi.freebsd.org/data/114amd64-default/df04190969ea/logs/errors/electron12-12.0.9_2.log (Killing timed out build after 122400 seconds) http://www.ipv6proxy.net/go.php?u=http://beefy6.nyi.freebsd.org/data/122amd64-default/df04190969ea/logs/errors/chromium-92.0.4515.159_2.log (Killing timed out build after 122400 seconds) http://www.ipv6proxy.net/go.php?u=http://beefy6.nyi.freebsd.org/data/122amd64-default/df04190969ea/logs/errors/electron12-12.0.9_2.log (Killing timed out build after 122400 seconds) http://www.ipv6proxy.net/go.php?u=http://beefy16.nyi.freebsd.org/data/130amd64-default/df04190969ea/logs/chromium-92.0.4515.159_2.log http://www.ipv6proxy.net/go.php?u=http://beefy16.nyi.freebsd.org/data/130amd64-default/df04190969ea/logs/electron12-12.0.9_2.log http://www.ipv6proxy.net/go.php?u=http://beefy18.nyi.freebsd.org/data/main-amd64-default/pdf04190969ea_s53cce2e744/logs/chromium-92.0.4515.159_2.log http://www.ipv6proxy.net/go.php?u=http://beefy18.nyi.freebsd.org/data/main-amd64-default/pdf04190969ea_s53cce2e744/logs/errors/electron12-12.0.9_2.log (bug 257378) Looks like the updates arrived to 11.4 and 13.0. For 12.2 the package builder is too slow: either the machine needs to be replaced or MAX_EXECUTION_TIME (86400 aka 24h by default) bumped from 122400 (34h) to 172800 (48h). $ env ABI=FreeBSD:13:amd64 pkg rquery %n-%v chromium electron12 chromium-92.0.4515.159_2 electron12-12.0.9_2 $ env ABI=FreeBSD:12:amd64 pkg rquery %n-%v chromium electron12 $ env ABI=FreeBSD:11:amd64 pkg rquery %n-%v chromium electron12 chromium-92.0.4515.159_2 |