[gnome-build-meta/valentindavid/riscv64: 1/2] freedesktop-sdk.bst: Update to master




commit c955daeee94b525475baff5c1ddea3efb6dbaf2b
Author: Valentin David <valentin david codethink co uk>
Date:   Wed Apr 21 19:16:15 2021 +0200

    freedesktop-sdk.bst: Update to master

 elements/core-deps/cvt.bst          |  38 ++++++++++
 elements/core-deps/qemu.bst         |   2 +
 elements/core-deps/slirp-helper.bst |   5 +-
 elements/core/gnome-tour.bst        |   4 +-
 elements/core/mutter.bst            |   3 +-
 elements/freedesktop-sdk.bst        |   4 +-
 elements/iso/initramfs.bst          |   9 ++-
 elements/sdk-platform.bst           |   6 +-
 elements/sdk.bst                    |   2 +-
 elements/sdk/gst-plugins-bad.bst    |   2 +-
 elements/sdk/gtk.bst                |   3 +
 elements/sdk/librsvg.bst            |   4 +-
 elements/sdk/libsecret.bst          |   2 +-
 elements/sdk/webkitgtk.bst          |   2 +
 elements/vm/initramfs.bst           |   8 +-
 files/qemu/no-pie-build-error.patch |  69 +++++++++++++++++
 files/webkitgtk/icu-69.patch        | 143 ++++++++++++++++++++++++++++++++++++
 junction.refs                       |   2 +-
 project.conf                        |   6 +-
 19 files changed, 287 insertions(+), 27 deletions(-)
---
diff --git a/elements/core-deps/cvt.bst b/elements/core-deps/cvt.bst
new file mode 100644
index 00000000..f94c02f2
--- /dev/null
+++ b/elements/core-deps/cvt.bst
@@ -0,0 +1,38 @@
+kind: autotools
+
+build-depends:
+- freedesktop-sdk.bst:public-stacks/buildsystem-autotools.bst
+- freedesktop-sdk.bst:components/xorg-lib-x11.bst
+- freedesktop-sdk.bst:components/xorg-lib-xkbfile.bst
+- freedesktop-sdk.bst:components/xorg-lib-xfont2.bst
+
+depends:
+- freedesktop-sdk.bst:components/pixman.bst
+- freedesktop-sdk.bst:bootstrap-import.bst
+
+variables:
+  conf-local: >-
+    --disable-xvfb
+    --disable-xnest
+    --disable-xwin
+    --disable-libdrm
+    --disable-glamor
+    --disable-dri
+    --disable-dri2
+    --disable-dri3
+    --disable-glx
+    --disable-pciaccess
+    --disable-int10-module
+
+config:
+  build-commands:
+  - |
+    make -C 'hw/xfree86/modes'
+
+  install-commands:
+  - |
+    make -j1 -C 'hw/xfree86/utils/cvt' install-binPROGRAMS DESTDIR='%{install-root}'
+
+sources:
+- kind: tar
+  url: https://www.x.org/archive/individual/xserver/xorg-server-1.20.11.tar.bz2
diff --git a/elements/core-deps/qemu.bst b/elements/core-deps/qemu.bst
index 213a331f..6d990ea4 100644
--- a/elements/core-deps/qemu.bst
+++ b/elements/core-deps/qemu.bst
@@ -5,6 +5,8 @@ sources:
   url: https://download.qemu.org/qemu-5.2.0.tar.xz
 - kind: patch
   path: files/qemu/Fix-build-after-glib-e38982df.patch
+- kind: patch
+  path: files/qemu/no-pie-build-error.patch
 
 build-depends:
 - core-deps/spice-protocol.bst
diff --git a/elements/core-deps/slirp-helper.bst b/elements/core-deps/slirp-helper.bst
index c53cd182..6d93de1a 100644
--- a/elements/core-deps/slirp-helper.bst
+++ b/elements/core-deps/slirp-helper.bst
@@ -1,7 +1,7 @@
 kind: manual
 
 build-depends:
-- freedesktop-sdk.bst:extensions/rust/rust.bst
+- freedesktop-sdk.bst:components/rust.bst
 - freedesktop-sdk.bst:components/libffi.bst
 - freedesktop-sdk.bst:components/pkg-config.bst
 
@@ -10,9 +10,6 @@ depends:
 - freedesktop-sdk.bst:components/dbus.bst
 - freedesktop-sdk.bst:bootstrap-import.bst
 
-environment:
-  PATH: /usr/bin:/usr/lib/sdk/rust/bin
-
 sources:
 - kind: tar
   url: https://static.crates.io/crates/libslirp/libslirp-4.3.0.crate
diff --git a/elements/core/gnome-tour.bst b/elements/core/gnome-tour.bst
index 29c7ecc2..67da6e24 100644
--- a/elements/core/gnome-tour.bst
+++ b/elements/core/gnome-tour.bst
@@ -5,12 +5,10 @@ sources:
   track: master
 - kind: cargo
 build-depends:
-- freedesktop-sdk.bst:extensions/rust/rust.bst
+- freedesktop-sdk.bst:components/rust.bst
 - freedesktop-sdk.bst:public-stacks/buildsystem-meson.bst
 depends:
 - sdk/adwaita-icon-theme.bst
 - sdk/gtk+-3.bst
 - sdk/libhandy.bst
 - freedesktop-sdk.bst:bootstrap-import.bst
-environment:
-  PATH: /usr/bin:/usr/lib/sdk/rust/bin
diff --git a/elements/core/mutter.bst b/elements/core/mutter.bst
index cc883002..0e5778f0 100644
--- a/elements/core/mutter.bst
+++ b/elements/core/mutter.bst
@@ -6,6 +6,7 @@ sources:
   track: master
 
 build-depends:
+- core-deps/cvt.bst
 - core/sysprof.bst
 - sdk/gtk-doc.bst
 - freedesktop-sdk.bst:public-stacks/buildsystem-meson.bst
@@ -35,7 +36,7 @@ depends:
 - freedesktop-sdk.bst:components/wayland.bst
 - freedesktop-sdk.bst:components/xorg-lib-xcursor.bst
 - freedesktop-sdk.bst:components/xorg-lib-xtst.bst
-- freedesktop-sdk.bst:components/xorg-server.bst
+- freedesktop-sdk.bst:components/xwayland.bst
 - freedesktop-sdk.bst:bootstrap-import.bst
 
 variables:
diff --git a/elements/freedesktop-sdk.bst b/elements/freedesktop-sdk.bst
index 0b14f9e1..e696d243 100644
--- a/elements/freedesktop-sdk.bst
+++ b/elements/freedesktop-sdk.bst
@@ -2,8 +2,8 @@ kind: junction
 sources:
 - kind: git_tag
   url: https://gitlab.com/freedesktop-sdk/freedesktop-sdk.git
-  track: release/20.08
-  track-tags: true
+  track: master
+  track-tags: false
 config:
   options:
     target_arch: '%{arch}'
diff --git a/elements/iso/initramfs.bst b/elements/iso/initramfs.bst
index cb18f242..cfc5a0cc 100644
--- a/elements/iso/initramfs.bst
+++ b/elements/iso/initramfs.bst
@@ -8,13 +8,16 @@ build-depends:
 variables:
   uuidnamespace: aea54278-2587-4075-ae67-8688ace4ce3d
   install-root: /boot
-
+  image-name: vmlinuz
   efi-arch: "%{arch}"
   (?):
   - arch == "x86_64":
       efi-arch: x64
+      image-name: bzImage
   - arch == "i686":
       efi-arch: ia32
+  - arch == "aarch64":
+      image-name: Image
 
 config:
   layout:
@@ -42,7 +45,7 @@ config:
   - |
     dracut -v --uefi \
            --uefi-stub /usr/lib/systemd/boot/efi/linux%{efi-arch}.efi.stub \
-           --kernel-image "/boot/vmlinuz" \
+           --kernel-image "/boot/%{image-name}" \
            --no-machineid \
            --kver "$(ls -1 /usr/lib/modules | head -n1)" \
            --kernel-cmdline 'rw quiet splash root=live:LABEL=%{installer-volume-id}' \
@@ -69,6 +72,6 @@ config:
     EOF
 
   - |
-    rm -f /boot/vmlinuz
+    rm -f /boot/%{image-name}
     rm -f /boot/System.map
 
diff --git a/elements/sdk-platform.bst b/elements/sdk-platform.bst
index 28ccecc4..28f8f31f 100644
--- a/elements/sdk-platform.bst
+++ b/elements/sdk-platform.bst
@@ -41,7 +41,6 @@ depends:
 - sdk/libwpe.bst
 - sdk/pango.bst
 - sdk/pinentry.bst
-- sdk/pipewire-libjack.bst
 - sdk/pipewire.bst
 - sdk/pygobject.bst
 - sdk/tracker.bst
@@ -114,7 +113,6 @@ depends:
 - freedesktop-sdk.bst:components/libarchive.bst
 - freedesktop-sdk.bst:components/libassuan.bst
 - freedesktop-sdk.bst:components/libcap.bst
-- freedesktop-sdk.bst:components/libclc.bst
 - freedesktop-sdk.bst:components/libdatrie.bst
 - freedesktop-sdk.bst:components/libdbus.bst
 - freedesktop-sdk.bst:components/libdrm.bst
@@ -196,7 +194,9 @@ depends:
 - freedesktop-sdk.bst:components/unzip.bst
 - freedesktop-sdk.bst:components/util-linux.bst
 - freedesktop-sdk.bst:components/v4l-utils.bst
-- freedesktop-sdk.bst:components/vulkan.bst
+- freedesktop-sdk.bst:components/vulkan-headers.bst
+- freedesktop-sdk.bst:components/vulkan-icd-loader.bst
+- freedesktop-sdk.bst:components/vulkan-validation-layers.bst
 - freedesktop-sdk.bst:components/wayland.bst
 - freedesktop-sdk.bst:components/webrtc-audio-processing.bst
 - freedesktop-sdk.bst:components/wget.bst
diff --git a/elements/sdk.bst b/elements/sdk.bst
index 42fc22e7..51c5b864 100644
--- a/elements/sdk.bst
+++ b/elements/sdk.bst
@@ -49,7 +49,7 @@ depends:
 - freedesktop-sdk.bst:components/spirv-tools.bst
 - freedesktop-sdk.bst:components/strace.bst
 - freedesktop-sdk.bst:components/texinfo.bst
-- freedesktop-sdk.bst:components/valgrind.bst
+- freedesktop-sdk.bst:components/valgrind-maybe.bst
 - freedesktop-sdk.bst:components/desktop-file-utils.bst
 - freedesktop-sdk.bst:components/itstool.bst
 - freedesktop-sdk.bst:components/jq.bst
diff --git a/elements/sdk/gst-plugins-bad.bst b/elements/sdk/gst-plugins-bad.bst
index 5d5beb21..de26db1d 100644
--- a/elements/sdk/gst-plugins-bad.bst
+++ b/elements/sdk/gst-plugins-bad.bst
@@ -21,7 +21,7 @@ runtime-depends:
 - freedesktop-sdk.bst:components/openal.bst
 - freedesktop-sdk.bst:components/orc.bst
 - freedesktop-sdk.bst:components/sndfile.bst
-- freedesktop-sdk.bst:components/vulkan.bst
+- freedesktop-sdk.bst:components/vulkan-headers.bst
 - freedesktop-sdk.bst:components/wayland.bst
 - freedesktop-sdk.bst:components/webrtc-audio-processing.bst
 - freedesktop-sdk.bst:bootstrap-import.bst
diff --git a/elements/sdk/gtk.bst b/elements/sdk/gtk.bst
index 6733837a..7d39d291 100644
--- a/elements/sdk/gtk.bst
+++ b/elements/sdk/gtk.bst
@@ -9,6 +9,7 @@ build-depends:
 - sdk-deps/sassc.bst
 - sdk/gobject-introspection.bst
 - sdk/gtk-doc.bst
+- freedesktop-sdk.bst:components/vulkan-headers.bst
 - freedesktop-sdk.bst:public-stacks/buildsystem-meson.bst
 
 depends:
@@ -26,6 +27,8 @@ depends:
 - freedesktop-sdk.bst:components/hicolor-icon-theme.bst
 - freedesktop-sdk.bst:components/libepoxy.bst
 - freedesktop-sdk.bst:components/libxkbcommon.bst
+- freedesktop-sdk.bst:components/vulkan-icd-loader.bst
+- freedesktop-sdk.bst:components/vulkan-validation-layers.bst
 - freedesktop-sdk.bst:components/wayland-protocols.bst
 - freedesktop-sdk.bst:components/wayland.bst
 - freedesktop-sdk.bst:bootstrap-import.bst
diff --git a/elements/sdk/librsvg.bst b/elements/sdk/librsvg.bst
index d8ab7b31..06199932 100644
--- a/elements/sdk/librsvg.bst
+++ b/elements/sdk/librsvg.bst
@@ -8,7 +8,7 @@ build-depends:
 - sdk/gobject-introspection.bst
 - sdk/gtk-doc.bst
 - sdk/vala.bst
-- freedesktop-sdk.bst:extensions/rust/rust.bst
+- freedesktop-sdk.bst:components/rust.bst
 - freedesktop-sdk.bst:public-stacks/buildsystem-autotools.bst
 depends:
 - sdk/gdk-pixbuf.bst
@@ -20,8 +20,6 @@ variables:
   conf-local: >-
     --disable-gtk-doc
     --enable-vala
-environment:
-  PATH: /usr/bin:/usr/lib/sdk/rust/bin
 public:
   bst:
     split-rules:
diff --git a/elements/sdk/libsecret.bst b/elements/sdk/libsecret.bst
index 7e5ee804..0d6a4cef 100644
--- a/elements/sdk/libsecret.bst
+++ b/elements/sdk/libsecret.bst
@@ -7,7 +7,7 @@ build-depends:
 - sdk/gobject-introspection.bst
 - sdk/gtk-doc.bst
 - sdk/vala.bst
-- freedesktop-sdk.bst:components/valgrind.bst
+- freedesktop-sdk.bst:components/valgrind-maybe.bst
 - freedesktop-sdk.bst:public-stacks/buildsystem-meson.bst
 depends:
 - sdk/glib.bst
diff --git a/elements/sdk/webkitgtk.bst b/elements/sdk/webkitgtk.bst
index a0861e40..49da8abc 100644
--- a/elements/sdk/webkitgtk.bst
+++ b/elements/sdk/webkitgtk.bst
@@ -7,6 +7,8 @@ sources:
   path: files/webkitgtk/toolchain.i686
 - kind: local
   path: files/webkitgtk/toolchain.arm
+- kind: patch
+  path: files/webkitgtk/icu-69.patch
 
 build-depends:
 - sdk-deps/bubblewrap.bst
diff --git a/elements/vm/initramfs.bst b/elements/vm/initramfs.bst
index dc824668..50ae6448 100644
--- a/elements/vm/initramfs.bst
+++ b/elements/vm/initramfs.bst
@@ -7,6 +7,12 @@ build-depends:
 
 variables:
   uuidnamespace: aea54278-2587-4075-ae67-8688ace4ce3d
+  image-name: vmlinuz
+  (?):
+  - arch == "x86_64":
+      image-name: bzImage
+  - arch == "aarch64":
+      image-name: Image
 
 config:
   layout:
@@ -49,7 +55,7 @@ config:
 
   - |
     version="$(ls -1 /lib/modules | head -n1)"
-    cp /boot/vmlinuz "%{install-root}/usr/lib/modules/${version}/vmlinuz"
+    cp /boot/%{image-name} "%{install-root}/usr/lib/modules/${version}/vmlinuz"
 
   - dbus-uuidgen >/etc/machine-id
   - SYSTEMD_RELAX_ESP_CHECKS=1 bootctl --path='/efi' --no-variables install
diff --git a/files/qemu/no-pie-build-error.patch b/files/qemu/no-pie-build-error.patch
new file mode 100644
index 00000000..058b29be
--- /dev/null
+++ b/files/qemu/no-pie-build-error.patch
@@ -0,0 +1,69 @@
+commit bbd2d5a8120771ec59b86a80a1f51884e0a26e53
+Author: Christian Ehrhardt <christian ehrhardt canonical com>
+Date:   Mon Dec 14 16:09:38 2020 +0100
+
+    build: -no-pie is no functional linker flag
+    
+    Recent binutils changes dropping unsupported options [1] caused a build
+    issue in regard to the optionroms.
+    
+      ld -m elf_i386 -T /<<PKGBUILDDIR>>/pc-bios/optionrom//flat.lds -no-pie \
+        -s -o multiboot.img multiboot.o
+      ld.bfd: Error: unable to disambiguate: -no-pie (did you mean --no-pie ?)
+    
+    This isn't really a regression in ld.bfd, filing the bug upstream
+    revealed that this never worked as a ld flag [2] - in fact it seems we
+    were by accident setting --nmagic).
+    
+    Since it never had the wanted effect this usage of LDFLAGS_NOPIE, should be
+    droppable without any effect. This also is the only use-case of LDFLAGS_NOPIE
+    in .mak, therefore we can also remove it from being added there.
+    
+    [1]: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=983d925d
+    [2]: https://sourceware.org/bugzilla/show_bug.cgi?id=27050#c5
+    
+    Signed-off-by: Christian Ehrhardt <christian ehrhardt canonical com>
+    Message-Id: <20201214150938 1297512-1-christian ehrhardt canonical com>
+    Cc: qemu-stable nongnu org
+    Signed-off-by: Paolo Bonzini <pbonzini redhat com>
+
+diff --git a/configure b/configure
+index cb21108d34..c228f7c21e 100755
+--- a/configure
++++ b/configure
+@@ -2137,7 +2137,6 @@ EOF
+ # Check we support --no-pie first; we will need this for building ROMs.
+ if compile_prog "-Werror -fno-pie" "-no-pie"; then
+   CFLAGS_NOPIE="-fno-pie"
+-  LDFLAGS_NOPIE="-no-pie"
+ fi
+ 
+ if test "$static" = "yes"; then
+@@ -2153,7 +2152,6 @@ if test "$static" = "yes"; then
+   fi
+ elif test "$pie" = "no"; then
+   CONFIGURE_CFLAGS="$CFLAGS_NOPIE $CONFIGURE_CFLAGS"
+-  CONFIGURE_LDFLAGS="$LDFLAGS_NOPIE $CONFIGURE_LDFLAGS"
+ elif compile_prog "-Werror -fPIE -DPIE" "-pie"; then
+   CONFIGURE_CFLAGS="-fPIE -DPIE $CONFIGURE_CFLAGS"
+   CONFIGURE_LDFLAGS="-pie $CONFIGURE_LDFLAGS"
+@@ -6714,7 +6712,6 @@ echo "QEMU_CXXFLAGS=$QEMU_CXXFLAGS" >> $config_host_mak
+ echo "GLIB_CFLAGS=$glib_cflags" >> $config_host_mak
+ echo "GLIB_LIBS=$glib_libs" >> $config_host_mak
+ echo "QEMU_LDFLAGS=$QEMU_LDFLAGS" >> $config_host_mak
+-echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak
+ echo "LD_I386_EMULATION=$ld_i386_emulation" >> $config_host_mak
+ echo "EXESUF=$EXESUF" >> $config_host_mak
+ echo "HOST_DSOSUF=$HOST_DSOSUF" >> $config_host_mak
+diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
+index 084fc10f05..30771f8d17 100644
+--- a/pc-bios/optionrom/Makefile
++++ b/pc-bios/optionrom/Makefile
+@@ -41,7 +41,6 @@ override CFLAGS += $(call cc-option, $(Wa)-32)
+ 
+ LD_I386_EMULATION ?= elf_i386
+ override LDFLAGS = -m $(LD_I386_EMULATION) -T $(SRC_DIR)/flat.lds
+-override LDFLAGS += $(LDFLAGS_NOPIE)
+ 
+ all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
+ 
diff --git a/files/webkitgtk/icu-69.patch b/files/webkitgtk/icu-69.patch
new file mode 100644
index 00000000..f7e6ee84
--- /dev/null
+++ b/files/webkitgtk/icu-69.patch
@@ -0,0 +1,143 @@
+commit 49a19c49c6de8af74e521f36cb43e6c1ec2e391c
+Author: Ross Kirsling <ross kirsling sony com>
+Date:   Tue Apr 13 02:04:15 2021 +0000
+
+    ICU 69 deprecates ubrk_safeClone in favor of ubrk_clone
+    https://bugs.webkit.org/show_bug.cgi?id=224093
+    
+    Reviewed by Yusuke Suzuki.
+    
+    In a shining example of "disappointing library practices", ICU 69 deprecates ubrk_safeClone in favor of
+    a new *draft* API ubrk_clone, meaning that no function with this functionality is exposed by default.
+    
+    This patch introduces a function cloneUBreakIterator to abstract over this change; however, since we 
need to:
+    
+      1. confine the effects of disabling U_HIDE_DRAFT_API to a non-unified implementation file
+      2. still be able to include ubrk.h from IntlSegmenter.h to instantiate ICUDeleter<ubrk_close> (*not* 
`clone`!)
+    
+    ...the new helper function is introduced in a *headerless* implementation file, IntlWorkaround.cpp.
+    
+    * JavaScriptCore.xcodeproj/project.pbxproj:
+    * Sources.txt:
+    * runtime/IntlSegmenter.cpp:
+    (JSC::IntlSegmenter::segment const):
+    * runtime/IntlSegmenter.h:
+    * runtime/IntlSegments.cpp:
+    (JSC::IntlSegments::createSegmentIterator):
+    * runtime/IntlWorkaround.cpp: Added.
+    (JSC::cloneUBreakIterator):
+    
+    
+    Canonical link: https://commits.webkit.org/236421@main
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275856 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+diff --git a/Source/JavaScriptCore/Sources.txt b/Source/JavaScriptCore/Sources.txt
+index 28b5b83632b9..b6492dfdcb75 100644
+--- a/Source/JavaScriptCore/Sources.txt
++++ b/Source/JavaScriptCore/Sources.txt
+@@ -849,6 +849,7 @@ runtime/IntlSegmenterConstructor.cpp
+ runtime/IntlSegmenterPrototype.cpp
+ runtime/IntlSegments.cpp
+ runtime/IntlSegmentsPrototype.cpp
++runtime/IntlWorkaround.cpp @no-unify // Confine U_HIDE_DRAFT_API's effect to this file.
+ runtime/IteratorOperations.cpp
+ runtime/IteratorPrototype.cpp
+ runtime/JSArray.cpp
+diff --git a/Source/JavaScriptCore/runtime/IntlSegmenter.cpp 
b/Source/JavaScriptCore/runtime/IntlSegmenter.cpp
+index 2ad74f94bbe8..93c9b2032847 100644
+--- a/Source/JavaScriptCore/runtime/IntlSegmenter.cpp
++++ b/Source/JavaScriptCore/runtime/IntlSegmenter.cpp
+@@ -125,7 +125,7 @@ JSValue IntlSegmenter::segment(JSGlobalObject* globalObject, JSValue stringValue
+     auto upconvertedCharacters = Box<Vector<UChar>>::create(string.charactersWithoutNullTermination());
+ 
+     UErrorCode status = U_ZERO_ERROR;
+-    auto segmenter = std::unique_ptr<UBreakIterator, 
UBreakIteratorDeleter>(ubrk_safeClone(m_segmenter.get(), nullptr, nullptr, &status));
++    auto segmenter = std::unique_ptr<UBreakIterator, 
UBreakIteratorDeleter>(cloneUBreakIterator(m_segmenter.get(), &status));
+     if (U_FAILURE(status)) {
+         throwTypeError(globalObject, scope, "failed to initialize Segments"_s);
+         return { };
+diff --git a/Source/JavaScriptCore/runtime/IntlSegmenter.h b/Source/JavaScriptCore/runtime/IntlSegmenter.h
+index cd0f426c4897..a5239575a9f3 100644
+--- a/Source/JavaScriptCore/runtime/IntlSegmenter.h
++++ b/Source/JavaScriptCore/runtime/IntlSegmenter.h
+@@ -75,4 +75,8 @@ private:
+     Granularity m_granularity { Granularity::Grapheme };
+ };
+ 
++// Abstraction to call ubrk_safeClone or ubrk_clone depending on ICU version.
++// This is implemented in IntlWorkaround.cpp in order to confine draft API visibility.
++UBreakIterator* cloneUBreakIterator(const UBreakIterator*, UErrorCode*);
++
+ } // namespace JSC
+diff --git a/Source/JavaScriptCore/runtime/IntlSegments.cpp b/Source/JavaScriptCore/runtime/IntlSegments.cpp
+index b6aba32fb822..8b81791e4133 100644
+--- a/Source/JavaScriptCore/runtime/IntlSegments.cpp
++++ b/Source/JavaScriptCore/runtime/IntlSegments.cpp
+@@ -100,7 +100,7 @@ JSObject* IntlSegments::createSegmentIterator(JSGlobalObject* globalObject)
+     auto scope = DECLARE_THROW_SCOPE(vm);
+ 
+     UErrorCode status = U_ZERO_ERROR;
+-    auto segmenter = std::unique_ptr<UBreakIterator, 
UBreakIteratorDeleter>(ubrk_safeClone(m_segmenter.get(), nullptr, nullptr, &status));
++    auto segmenter = std::unique_ptr<UBreakIterator, 
UBreakIteratorDeleter>(cloneUBreakIterator(m_segmenter.get(), &status));
+     if (U_FAILURE(status)) {
+         throwTypeError(globalObject, scope, "failed to initialize SegmentIterator"_s);
+         return nullptr;
+diff --git a/Source/JavaScriptCore/runtime/IntlWorkaround.cpp 
b/Source/JavaScriptCore/runtime/IntlWorkaround.cpp
+new file mode 100644
+index 000000000000..8d820857ec22
+--- /dev/null
++++ b/Source/JavaScriptCore/runtime/IntlWorkaround.cpp
+@@ -0,0 +1,53 @@
++/*
++ * Copyright (C) 2021 Sony Interactive Entertainment Inc.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ *    notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ *    notice, this list of conditions and the following disclaimer in the
++ *    documentation and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
++ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
++ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
++ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
++ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
++ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
++ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
++ * THE POSSIBILITY OF SUCH DAMAGE.
++ */
++
++#include "config.h"
++
++#include <unicode/uvernum.h>
++
++// ICU 69 introduces draft API ubrk_clone and deprecates ubrk_safeClone.
++#if U_ICU_VERSION_MAJOR_NUM >= 69
++#define HAVE_ICU_UBRK_CLONE 1
++#endif
++
++#if defined(U_HIDE_DRAFT_API)
++#undef U_HIDE_DRAFT_API
++#endif
++#include <unicode/ubrk.h>
++
++namespace JSC {
++
++UBreakIterator* cloneUBreakIterator(const UBreakIterator*, UErrorCode*);
++
++UBreakIterator* cloneUBreakIterator(const UBreakIterator* iterator, UErrorCode* status)
++{
++#if HAVE(ICU_UBRK_CLONE)
++    return ubrk_clone(iterator, status);
++#else
++    return ubrk_safeClone(iterator, nullptr, nullptr, status);
++#endif
++}
++
++} // namespace JSC
diff --git a/junction.refs b/junction.refs
index bfed846f..e9ab5530 100644
--- a/junction.refs
+++ b/junction.refs
@@ -1,6 +1,6 @@
 projects:
   gnome:
     freedesktop-sdk.bst:
-    - ref: freedesktop-sdk-20.08.8-0-gfbcc9f667d93cb5f106e1bd3ed535f6d0c88f76a
+    - ref: freedesktop-sdk-20.08rc.1-998-g3b65f9722bc51c751533a7359d4fdb983468d2e3
     openh264-extension.bst:
     - ref: openh264-2.0.0-4-0-g7191bc88fbeed3ac842543706f856cb6dde99bc9
diff --git a/project.conf b/project.conf
index 035e6263..547cf01c 100644
--- a/project.conf
+++ b/project.conf
@@ -17,6 +17,9 @@ artifacts:
 fatal-warnings:
 - overlaps
 
+(@):
+- freedesktop-sdk.bst:include/strip.yml
+
 # Options to specify for the project, these provide
 # command line switches which control the behavior of
 # conditional directives in the element.bst files.
@@ -317,9 +320,6 @@ variables:
   - arch == "ppc64le":
       gcc_arch: "powerpc64le"
 
-  (@):
-  - freedesktop-sdk.bst:include/strip.yml
-
 plugins:
 - origin: pip
   package-name: buildstream-external


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]