dnf: add support for python2 44/3644/1
authorJackie Huang <jackie.huang@windriver.com>
Thu, 7 May 2020 13:28:07 +0000 (21:28 +0800)
committerJackie Huang <jackie.huang@windriver.com>
Fri, 8 May 2020 10:01:42 +0000 (18:01 +0800)
Some stx components like sw-patch requres python-dnf but it's
using python2, and other stx components depend on sw-patch
are using python2 as well, so add support of python2 for
dnf for now, stx components will be move to python3 in
the future.

Issue-ID: INF-89
Issue-ID: INF-98
Issue-ID: INF-99
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Change-Id: I99b0e00f8357e701a2fecfd155e381a7e94a5e9b

meta-stx/recipes-devtools/dnf/dnf_4.1.0.bbappend [new file with mode: 0644]

diff --git a/meta-stx/recipes-devtools/dnf/dnf_4.1.0.bbappend b/meta-stx/recipes-devtools/dnf/dnf_4.1.0.bbappend
new file mode 100644 (file)
index 0000000..4fb699f
--- /dev/null
@@ -0,0 +1,82 @@
+#
+# Copyright (C) 2019 Wind River Systems, Inc.
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+DEPENDS += "\
+    python-native \
+    "
+
+EXTRA_OECMAKE_PY2 = " \
+    -DWITH_MAN=0 \
+    -DPYTHON_INSTALL_DIR=${libdir}/python2.7/site-packages \
+    -DPYTHON_DESIRED:FILEPATH=${STAGING_BINDIR_NATIVE}/python-native/python \
+    "
+
+RDEPENDS_${PN}_class-target += " \
+    python-codecs \
+    python-compression \
+    python-core \
+    python-curses \
+    python-distutils \
+    python-email \
+    python-fcntl \
+    python-iniparse \
+    python-json \
+    python-logging \
+    python-misc \
+    python-netclient \
+    python-pygpgme \
+    python-pyliblzma \
+    python-shell \
+    python-sqlite3 \
+    python-threading \
+    python2-rpm \
+    "
+
+do_configure_append() {
+       rm -rf ${B}/build-py2
+       mkdir -p ${B}/build-py2
+       cd ${B}/build-py2
+
+       cmake \
+         ${OECMAKE_GENERATOR_ARGS} \
+         $oecmake_sitefile \
+         ${OECMAKE_SOURCEPATH} \
+         -DCMAKE_INSTALL_PREFIX:PATH=${prefix} \
+         -DCMAKE_INSTALL_SYSCONFDIR:PATH=${sysconfdir} \
+         -DCMAKE_INSTALL_SO_NO_EXE=0 \
+         -DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain.cmake \
+         -DCMAKE_NO_SYSTEM_FROM_IMPORTED=1 \
+         ${EXTRA_OECMAKE_PY2} \
+         -Wno-dev
+}
+
+cmake_runcmake_build_py2() {
+       bbnote ${DESTDIR:+DESTDIR=${DESTDIR} }VERBOSE=1 cmake --build '${B}/build-py2' "$@" -- ${EXTRA_OECMAKE_BUILD}
+       eval ${DESTDIR:+DESTDIR=${DESTDIR} }VERBOSE=1 cmake --build '${B}/build-py2' "$@" -- ${EXTRA_OECMAKE_BUILD}
+}
+
+do_compile_append() {
+       cd ${B}/build-py2
+       cmake_runcmake_build_py2 --target ${OECMAKE_TARGET_COMPILE}
+}
+
+do_install_append() {
+       cd ${B}/build-py2
+       DESTDIR='${D}' cmake_runcmake_build_py2 --target ${OECMAKE_TARGET_INSTALL}
+
+       # add a symlink for yum
+       lnr ${D}/${bindir}/dnf-2 ${D}/${bindir}/yum
+}
+