zypper architecture tuning
cover zypper architecture tuning
From: Qing He <[email protected]>
Zypper and its dependencies used a hard coded list for all the archs it supports, which doesn't contains several cpu archs like mips, as well as the ${MACHINE_ARCH} used in poky. This patch set intends to add this support.
Also fixes package archs of qemux86-64.
Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: qhe/zypp1
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=qhe/zypp1
Thanks,
Qing He <[email protected]>
---
Qing He (4):
sat-solver: add machine arch support
libzypp: add machine arch support
zypper: add machine arch support
qemux86-64: set qemux86_64 as package arch name
meta/conf/bitbake.conf | 3 +- .../libzypp/libzypp/archconf.patch | 15 +++ .../libzypp/libzypp/builtin-arch.patch | 122 +++++++++++++++++++ .../libzypp/libzypp/no-builtin-arch.patch | 128 ++++++++++++++++++++ meta/recipes-extended/libzypp/libzypp_git.bb | 28 ++++- .../sat-solver/sat-solver/builtin-arch.patch | 28 +++++ .../sat-solver/sat-solver/no-builtin-arch.patch | 29 +++++ meta/recipes-extended/sat-solver/sat-solver_git.bb | 28 ++++- meta/recipes-extended/zypper/zypper_git.bb | 4 +- 9 files changed, 380 insertions(+), 5 deletions(-) create mode 100644 meta/recipes-extended/libzypp/libzypp/archconf.patch create mode 100644 meta/recipes-extended/libzypp/libzypp/builtin-arch.patch create mode 100644 meta/recipes-extended/libzypp/libzypp/no-builtin-arch.patch create mode 100644 meta/recipes-extended/sat-solver/sat-solver/builtin-arch.patch create mode 100644 meta/recipes-extended/sat-solver/sat-solver/no-builtin-arch.patch
PATCH 1/4 sat-solver: add machine arch support
From: Qing He <[email protected]>
--- .../sat-solver/sat-solver/builtin-arch.patch | 28 +++++++++++++++++++ .../sat-solver/sat-solver/no-builtin-arch.patch | 29 ++++++++++++++++++++ meta/recipes-extended/sat-solver/sat-solver_git.bb | 28 +++++++++++++++++- 3 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-extended/sat-solver/sat-solver/builtin-arch.patch create mode 100644 meta/recipes-extended/sat-solver/sat-solver/no-builtin-arch.patch
meta/recipes-extended/sat-solver/sat-solver/builtin-arch.patch new file +28 -0
@@ -0,0 +1,28 @@ +This patch adds the ${MACHINE_ARCH} and ${PACKAGE_ARCH} to +sat-solver available archs, see do_archpatch in .bb for more +details, this is the version for ${BASE_PACKAGE_ARCH} already +recognized in sat-sovler. + +Signed-off-by: Qing He <[email protected]> + +diff --git a/src/poolarch.c b/src/poolarch.c +index 34a14a3..660959b 100644 +--- a/src/poolarch.c ++++ b/src/poolarch.c +@@ -21,6 +21,7 @@ + #include "util.h" + + const char *archpolicies[] = { ++ "@MACHINE_ARCH@", "@MACHINE_ARCH@:@PKG_ARCH_TAIL@", + "x86_64", "x86_64:i686:i586:i486:i386", + "i686", "i686:i586:i486:i386", + "i586", "i586:i486:i386", +@@ -72,7 +74,7 @@ pool_setarch(Pool *pool, const char *arch) + return; + } + #ifndef DEBIAN_SEMANTICS +- id = ARCH_NOARCH; ++ id = ARCH_ALL; + #else + id = ARCH_ALL; + #endif
meta/recipes-extended/sat-solver/sat-solver/no-builtin-arch.patch new file +29 -0
@@ -0,0 +1,29 @@ +This patch adds the ${MACHINE_ARCH} and ${PACKAGE_ARCH} to +sat-solver available archs, see do_archpatch in .bb for more +details, this is the version for ${BASE_PACKAGE_ARCH} not +recognized in sat-sovler. + +Signed-off-by: Qing He <[email protected]> + +diff --git a/src/poolarch.c b/src/poolarch.c +index 34a14a3..36367ba 100644 +--- a/src/poolarch.c ++++ b/src/poolarch.c +@@ -21,6 +21,8 @@ + #include "util.h" + + const char *archpolicies[] = { ++ "@MACHINE_ARCH@", "@MACHINE_ARCH@:@PKG_ARCH@", ++ "@PKG_ARCH@", "@PKG_ARCH@", + "x86_64", "x86_64:i686:i586:i486:i386", + "i686", "i686:i586:i486:i386", + "i586", "i586:i486:i386", +@@ -72,7 +74,7 @@ pool_setarch(Pool *pool, const char *arch) + return; + } + #ifndef DEBIAN_SEMANTICS +- id = ARCH_NOARCH; ++ id = ARCH_ALL; + #else + id = ARCH_ALL; + #endif
meta/recipes-extended/sat-solver/sat-solver_git.bb +26 -2
@@ -7,14 +7,38 @@ LIC_FILES_CHKSUM = "file://LICENSE.BSD;md5=62272bd11c97396d4aaf1c41bc11f7d8" DEPENDS = "libcheck rpm zlib expat db" PV = "0.0-git${SRCPV}" -PR = "r3" +PR = "r4" SRC_URI = "git://gitorious.org/opensuse/sat-solver.git;protocol=git \ file://cmake.patch \ file://rpm5.patch \ - file://db5.patch" + file://db5.patch \ + file://builtin-arch.patch;apply=no \ + file://no-builtin-arch.patch;apply=no \ + " S = "${WORKDIR}/git" EXTRA_OECMAKE += "-DLIB=lib" + inherit cmake pkgconfig + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +do_archpatch () { + PKG_ARCH_TAIL=`sed -n ${S}/src/poolarch.c -e "s|^ \"\(${BASE_PACKAGE_ARCH}\)\",.*\"\(.*\)\",.*$|\2|p"` + if [ "x${PKG_ARCH_TAIL}" == x ]; then + PATCHFILE=${WORKDIR}/no-builtin-arch.patch + else + PATCHFILE=${WORKDIR}/builtin-arch.patch + fi + + sed -i "${PATCHFILE}" \ + -e "s|@MACHINE_ARCH@|${MACHINE_ARCH}|g" \ + -e "s|@PKG_ARCH@|${BASE_PACKAGE_ARCH}|g" \ + -e "s|@PKG_ARCH_TAIL@|${PKG_ARCH_TAIL}|g" + + patch -p1 -i "${PATCHFILE}" +} + +addtask archpatch before do_patch after do_unpack
Signature · 1 line
1.7.0
PATCH 2/4 libzypp: add machine arch support
In reply to Qing HeFrom: Qing He <[email protected]>
--- .../libzypp/libzypp/archconf.patch | 15 +++ .../libzypp/libzypp/builtin-arch.patch | 122 +++++++++++++++++++ .../libzypp/libzypp/no-builtin-arch.patch | 128 ++++++++++++++++++++ meta/recipes-extended/libzypp/libzypp_git.bb | 28 ++++- 4 files changed, 292 insertions(+), 1 deletions(-) create mode 100644 meta/recipes-extended/libzypp/libzypp/archconf.patch create mode 100644 meta/recipes-extended/libzypp/libzypp/builtin-arch.patch create mode 100644 meta/recipes-extended/libzypp/libzypp/no-builtin-arch.patch
meta/recipes-extended/libzypp/libzypp/archconf.patch new file +15 -0
@@ -0,0 +1,15 @@ +diff --git a/zypp.conf b/zypp.conf +index 1e84a3f..7a26548 100644 +--- a/zypp.conf ++++ b/zypp.conf +@@ -17,7 +17,10 @@ + ## ** Changing this needs a full refresh (incl. download) + ## ** of all repository data. + ## ++## ** CAUTION: Don't change this value on yocto ! ++## + # arch = s390 ++arch = @MACHINE_ARCH@ + + + ##
meta/recipes-extended/libzypp/libzypp/builtin-arch.patch new file +122 -0
122 lines not on this page · raw message
meta/recipes-extended/libzypp/libzypp/no-builtin-arch.patch new file +128 -0
128 lines not on this page · raw message
meta/recipes-extended/libzypp/libzypp_git.bb +27 -1
@@ -13,12 +13,15 @@ RDEPENDS_${PN} = "sat-solver" S = "${WORKDIR}/git" PV = "0.0-git${SRCPV}" -PR = "r6" +PR = "r7" SRC_URI = "git://gitorious.org/opensuse/libzypp.git;protocol=git \ file://no-doc.patch \ file://rpm5.patch \ file://rpm5-no-rpmdbinit.patch \ + file://builtin-arch.patch;apply=no \ + file://no-builtin-arch.patch;apply=no \ + file://archconf.patch;apply=no \ " SRC_URI_append_mips = " file://mips-workaround-gcc-tribool-error.patch"
@@ -27,3 +30,26 @@ FILES_${PN} += "${libdir}/zypp ${datadir}/zypp ${datadir}/icons" FILES_${PN}-dev += "${datadir}/cmake" EXTRA_OECMAKE += "-DLIB=lib" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +do_archpatch () { + PKG_ARCH_TAIL=`sed -n ${S}/zypp/Arch.cc -e "s|^.*defCompatibleWith( _${BASE_PACKAGE_ARCH},[ \t]*\(.*\) .*$|\1|p"` + if [ "x${PKG_ARCH_TAIL}" == x ]; then + PATCHFILE=${WORKDIR}/no-builtin-arch.patch + else + PATCHFILE=${WORKDIR}/builtin-arch.patch + fi + + sed -i "${PATCHFILE}" \ + -e "s|@MACHINE_ARCH@|${MACHINE_ARCH}|g" \ + -e "s|@PKG_ARCH@|${BASE_PACKAGE_ARCH}|g" \ + -e "s|@PKG_ARCH_TAIL@|${PKG_ARCH_TAIL}|g" + + patch -p1 -i "${PATCHFILE}" + + sed -i ${WORKDIR}/archconf.patch -e "s|@MACHINE_ARCH@|${MACHINE_ARCH}|g" + patch -p1 -i ${WORKDIR}/archconf.patch +} + +addtask archpatch before do_patch after do_unpack
Signature · 1 line
1.7.0
PATCH 3/4 zypper: add machine arch support
In reply to Qing HeFrom: Qing He <[email protected]>
Since libzypp is now of ${MACHINE_ARCH}, change zypper to base on this arch to.
--- meta/recipes-extended/zypper/zypper_git.bb | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
meta/recipes-extended/zypper/zypper_git.bb +3 -1
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3201406e350b39e05a82e28b5020f413" DEPENDS = "libzypp augeas" RRECOMMENDS_${PN} = "procps util-linux-uuidgen" -PR = "r4" +PR = "r5" inherit cmake
@@ -18,3 +18,5 @@ SRC_URI = "git://gitorious.org/opensuse/zypper.git;protocol=git \ S = "${WORKDIR}/git" PV = "1.5.3-git${SRCPV}" + +PACKAGE_ARCH = "${MACHINE_ARCH}"
Signature · 1 line
1.7.0
PATCH 4/4 qemux86-64: set qemux86_64 as package arch name
In reply to Qing HeFrom: Qing He <[email protected]>
thus allows rpmbuild to generated RPMs with the right architecture.
--- meta/conf/bitbake.conf | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
meta/conf/bitbake.conf +2 -1
@@ -93,7 +93,8 @@ SDK_CC_ARCH = "${BUILD_CC_ARCH}" BASE_PACKAGE_ARCH = "${HOST_ARCH}" PACKAGE_ARCH = "${BASE_PACKAGE_ARCH}" MACHINE_ARCH = "${@[bb.data.getVar('BASE_PACKAGE_ARCH', d, 1), bb.data.getVar('MACHINE', d, 1)][bool(bb.data.getVar('MACHINE', d, 1))]}" -PACKAGE_ARCHS = "all any noarch ${TARGET_ARCH} ${PACKAGE_EXTRA_ARCHS} ${MACHINE}" +MACHINE_ARCH_qemux86-64 = "qemux86_64" +PACKAGE_ARCHS = "all any noarch ${TARGET_ARCH} ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}" # MACHINE shouldn't be included here as a variable dependency since machine specific # packages are handled using multimachine PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
Signature · 1 line
1.7.0