diff --git a/conf/layer.conf b/conf/layer.conf index f159a5b..67019fa 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -135,3 +135,10 @@ COMPATIBLE_HOST:pn-pidgin-sipe:riscv32 = "null" # needs swapcontext/makecontext/getcontext which are # not yet implemented in linucontext for rv32 COMPATIBLE_HOST:pn-capnproto:libc-musl:riscv32 = "null" + +COMPATIBLE_HOST:pn-libacpi = '(x86_64|i.86|riscv32|riscv64).*-(linux|freebsd.*)' +COMPATIBLE_HOST:pn-efivar = "(i.86|x86_64|arm|aarch64|riscv64|riscv32).*-linux" +COMPATIBLE_HOST:pn-efibootmgr = "(i.86|x86_64|arm|aarch64|riscv64|riscv32).*-linux" +COMPATIBLE_HOST:pn-dmidecode = "(i.86|x86_64|aarch64|arm|powerpc|powerpc64|riscv32|riscv64).*-linux" +COMPATIBLE_HOST:pn-acpica = "(i.86|x86_64|arm|aarch64|riscv64|riscv32).*-linux" +COMPATIBLE_HOST:pn-systemd = "(x86_64.*|i.86.*|riscv.*)-linux" diff --git a/recipes-devtools/apt/apt/sources.list b/recipes-devtools/apt/apt/sources.list new file mode 100644 index 0000000..b2b5f31 --- /dev/null +++ b/recipes-devtools/apt/apt/sources.list @@ -0,0 +1,5 @@ +deb http://mirrors.aliyun.com/debian-ports sid main + +deb http://mirrors.aliyun.com/debian-ports unreleased main + +deb http://mirrors.aliyun.com/thead/debian-riscv64 sid main diff --git a/recipes-devtools/apt/apt_%.bbappend b/recipes-devtools/apt/apt_%.bbappend new file mode 100644 index 0000000..766aa49 --- /dev/null +++ b/recipes-devtools/apt/apt_%.bbappend @@ -0,0 +1,10 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/apt:" + +SRC_URI:append_ice = " \ + file://sources.list \ + " +do_install:append_ice() { + if [ -f "${WORKDIR}/sources.list" ]; then + cp -rf ${WORKDIR}/sources.list ${D}/etc/apt/ + fi +} diff --git a/recipes-devtools/libtool/libtool-cross_%.bbappend b/recipes-devtools/libtool/libtool-cross_%.bbappend new file mode 100644 index 0000000..c08b023 --- /dev/null +++ b/recipes-devtools/libtool/libtool-cross_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/libtool:" + +SRC_URI += "file://9999-fix-thead.patch" diff --git a/recipes-devtools/libtool/libtool-native_%.bbappend b/recipes-devtools/libtool/libtool-native_%.bbappend new file mode 100644 index 0000000..c08b023 --- /dev/null +++ b/recipes-devtools/libtool/libtool-native_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/libtool:" + +SRC_URI += "file://9999-fix-thead.patch" diff --git a/recipes-devtools/libtool/libtool/9999-fix-thead.patch b/recipes-devtools/libtool/libtool/9999-fix-thead.patch new file mode 100644 index 0000000..573023d --- /dev/null +++ b/recipes-devtools/libtool/libtool/9999-fix-thead.patch @@ -0,0 +1,12 @@ +diff -Nur libtool-2.4.6/m4/libtool.m4 libtool-2.4.6-fix/m4/libtool.m4 +--- libtool-2.4.6/m4/libtool.m4 2020-09-16 12:50:36.486764205 +0000 ++++ libtool-2.4.6-fix/m4/libtool.m4 2020-09-16 13:46:53.272622322 +0000 +@@ -2303,7 +2303,7 @@ + mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac +- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` ++ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq -e "s/lib\/\.\.\/lib64xthead\/lp64d/lib64xthead\/lp64d/g" -e "s/lp64d\/\.\.\/lib64xthead\/lp64d/lp64d/g" -e "s/lib64xthead\/lib64xthead/lib64xthead/g"` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator diff --git a/recipes-devtools/libtool/libtool_%.bbappend b/recipes-devtools/libtool/libtool_%.bbappend new file mode 100644 index 0000000..c08b023 --- /dev/null +++ b/recipes-devtools/libtool/libtool_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/libtool:" + +SRC_URI += "file://9999-fix-thead.patch" diff --git a/recipes-devtools/libtool/nativesdk-libtool_%.bbappend b/recipes-devtools/libtool/nativesdk-libtool_%.bbappend new file mode 100644 index 0000000..c08b023 --- /dev/null +++ b/recipes-devtools/libtool/nativesdk-libtool_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/libtool:" + +SRC_URI += "file://9999-fix-thead.patch" diff --git a/recipes-devtools/meson/meson/0004-thead.patch b/recipes-devtools/meson/meson/0004-thead.patch new file mode 100644 index 0000000..1141370 --- /dev/null +++ b/recipes-devtools/meson/meson/0004-thead.patch @@ -0,0 +1,44 @@ +diff -Nur a/mesonbuild/compilers/mixins/elbrus.py b/mesonbuild/compilers/mixins/elbrus.py +--- a/mesonbuild/compilers/mixins/elbrus.py 2022-11-14 16:29:47.894160723 +0800 ++++ b/mesonbuild/compilers/mixins/elbrus.py 2022-11-14 16:30:04.566798564 +0800 +@@ -47,7 +47,7 @@ + def get_library_dirs(self, env: 'Environment', elf_class: T.Optional[int] = None) -> T.List[str]: + os_env = os.environ.copy() + os_env['LC_ALL'] = 'C' +- stdo = Popen_safe(self.exelist + ['--print-search-dirs'], env=os_env)[1] ++ stdo = stdo.replace("lib/../lib64xthead/", "lib64xthead").replace("lp64d/../lib64xthead/", "").replace("lib64xthead/lib64xthead/", "") + for line in stdo.split('\n'): + if line.startswith('libraries:'): + # lcc does not include '=' in --print-search-dirs output. Also it could show nonexistent dirs. +@@ -58,7 +58,7 @@ + def get_program_dirs(self, env: 'Environment') -> T.List[str]: + os_env = os.environ.copy() + os_env['LC_ALL'] = 'C' +- stdo = Popen_safe(self.exelist + ['--print-search-dirs'], env=os_env)[1] ++ stdo = stdo.replace("lib/../lib64xthead/", "lib64xthead").replace("lp64d/../lib64xthead/", "").replace("lib64xthead/lib64xthead/", "") + for line in stdo.split('\n'): + if line.startswith('programs:'): + # lcc does not include '=' in --print-search-dirs output. +diff -Nur a/mesonbuild/compilers/mixins/gnu.py b/mesonbuild/compilers/mixins/gnu.py +--- a/mesonbuild/compilers/mixins/gnu.py 2020-08-15 16:27:05.000000000 +0000 ++++ b/mesonbuild/compilers/mixins/gnu.py 2020-09-17 04:30:31.621394648 +0000 +@@ -234,7 +234,7 @@ + with self._build_wrapper('', env, extra_args=extra_args, + dependencies=None, mode='compile', + want_output=True) as p: +- return p.stdout ++ return p.stdout.replace("lib/../lib64xthead/", "lib64xthead").replace("lp64d/../lib64xthead/", "").replace("lib64xthead/lib64xthead/", "") + + def _split_fetch_real_dirs(self, pathstr: str) -> T.List[str]: + # We need to use the path separator used by the compiler for printing +diff -Nur a/mesonbuild/environment.py b/mesonbuild/environment.py +--- a/mesonbuild/environment.py 2020-09-17 04:28:27.469399864 +0000 ++++ b/mesonbuild/environment.py 2020-09-17 03:49:08.282498990 +0000 +@@ -853,6 +853,7 @@ + p, out, _ = Popen_safe(comp.get_exelist() + ['-print-search-dirs']) + if p.returncode != 0: + raise mesonlib.MesonException('Could not calculate system search dirs') ++ out = out.replace("lib/../lib64xthead/", "lib64xthead").replace("lp64d/../lib64xthead/", "").replace("lib64xthead/lib64xthead/", "") + out = out.split('\n')[index].lstrip('libraries: =').split(':') + return [os.path.normpath(p) for p in out] + diff --git a/recipes-devtools/meson/meson_%.bbappend b/recipes-devtools/meson/meson_%.bbappend new file mode 100644 index 0000000..a8df288 --- /dev/null +++ b/recipes-devtools/meson/meson_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/meson:" + +SRC_URI += "file://0004-thead.patch" diff --git a/recipes-gnome/gmime/gmime_3.2.7.bbappend b/recipes-gnome/gmime/gmime_3.2.7.bbappend new file mode 100644 index 0000000..46200c9 --- /dev/null +++ b/recipes-gnome/gmime/gmime_3.2.7.bbappend @@ -0,0 +1,4 @@ + +do_configure:prepend() { + cp -rf ${QEMU_TOOLCHAIN_PATH}/* ${WORKDIR}/recipe-sysroot-native/usr/bin/ +} diff --git a/recipes-gnome/gobject-introspection/gobject-introspection_1.72.0.bbappend b/recipes-gnome/gobject-introspection/gobject-introspection_1.72.0.bbappend new file mode 100644 index 0000000..7eaffd2 --- /dev/null +++ b/recipes-gnome/gobject-introspection/gobject-introspection_1.72.0.bbappend @@ -0,0 +1,10 @@ +SUMMARY = "Middleware layer between GObject-using C libraries and language bindings" +DESCRIPTION = "GObject Introspection is a project for providing machine \ +readable introspection data of the API of C libraries. This introspection \ +data can be used in several different use cases, for example automatic code \ +generation for bindings, API verification and documentation generation." +HOMEPAGE = "https://wiki.gnome.org/action/show/Projects/GObjectIntrospection" + +do_configure:prepend() { + cp -rf ${QEMU_TOOLCHAIN_PATH}/* ${WORKDIR}/recipe-sysroot-native/usr/bin/ +} diff --git a/recipes-kernel/linux/linux-mainline_5.18.bb b/recipes-kernel/linux/linux-mainline_5.18.bb index 8221b6d..017e8bb 100644 --- a/recipes-kernel/linux/linux-mainline_5.18.bb +++ b/recipes-kernel/linux/linux-mainline_5.18.bb @@ -6,7 +6,8 @@ PV = "${LINUX_VERSION}+git${SRCPV}" BRANCH = "linux-5.18.y" SRCREV = "${AUTOREV}" -SRCPV = "${@bb.fetch2.get_srcrev(d)}" +# SRCPV sometimes fails to get,the requested URL returned error: 503. +# SRCPV = "${@bb.fetch2.get_srcrev(d)}" SRC_URI = " \ git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git;branch=${BRANCH} \ "