diff options
Diffstat (limited to 'meta/recipes-extended/libzypp/libzypp_git.bb')
-rw-r--r-- | meta/recipes-extended/libzypp/libzypp_git.bb | 97 |
1 files changed, 76 insertions, 21 deletions
diff --git a/meta/recipes-extended/libzypp/libzypp_git.bb b/meta/recipes-extended/libzypp/libzypp_git.bb index 621ce45da4..809c1877f5 100644 --- a/meta/recipes-extended/libzypp/libzypp_git.bb +++ b/meta/recipes-extended/libzypp/libzypp_git.bb | |||
@@ -13,16 +13,14 @@ RDEPENDS_${PN} = "sat-solver" | |||
13 | 13 | ||
14 | S = "${WORKDIR}/git" | 14 | S = "${WORKDIR}/git" |
15 | PV = "0.0-git${SRCPV}" | 15 | PV = "0.0-git${SRCPV}" |
16 | PR = "r8" | 16 | PR = "r9" |
17 | 17 | ||
18 | SRC_URI = "git://gitorious.org/opensuse/libzypp.git;protocol=git \ | 18 | SRC_URI = "git://gitorious.org/opensuse/libzypp.git;protocol=git \ |
19 | file://no-doc.patch \ | 19 | file://no-doc.patch \ |
20 | file://rpm5.patch \ | 20 | file://rpm5.patch \ |
21 | file://rpm5-no-rpmdbinit.patch \ | 21 | file://rpm5-no-rpmdbinit.patch \ |
22 | file://builtin-arch.patch;apply=no \ | ||
23 | file://no-builtin-arch.patch;apply=no \ | ||
24 | file://archconf.patch;apply=no \ | ||
25 | file://config-release.patch \ | 22 | file://config-release.patch \ |
23 | file://libzypp-pokyarch.patch \ | ||
26 | " | 24 | " |
27 | 25 | ||
28 | SRC_URI_append_mips = " file://mips-workaround-gcc-tribool-error.patch" | 26 | SRC_URI_append_mips = " file://mips-workaround-gcc-tribool-error.patch" |
@@ -34,23 +32,80 @@ EXTRA_OECMAKE += "-DLIB=lib" | |||
34 | 32 | ||
35 | PACKAGE_ARCH = "${MACHINE_ARCH}" | 33 | PACKAGE_ARCH = "${MACHINE_ARCH}" |
36 | 34 | ||
37 | do_archpatch () { | 35 | do_archgen () { |
38 | PKG_ARCH_TAIL=`sed -n ${S}/zypp/Arch.cc -e "s|^.*defCompatibleWith( _${BASE_PACKAGE_ARCH},[ \t]*\(.*\) .*$|\1|p"` | 36 | # We need to dynamically generate our arch file based on the machine |
39 | if [ "x${PKG_ARCH_TAIL}" == x ]; then | 37 | # configuration |
40 | PATCHFILE=${WORKDIR}/no-builtin-arch.patch | 38 | echo "/* Automatically generated by the libzypp recipes */" > zypp/poky-arch.h |
41 | else | 39 | echo "" >> zypp/poky-arch.h |
42 | PATCHFILE=${WORKDIR}/builtin-arch.patch | 40 | echo "#ifndef POKY_ARCH_H" >> zypp/poky-arch.h |
43 | fi | 41 | echo "#define POKY_ARCH_H 1" >> zypp/poky-arch.h |
42 | echo "#define Arch_machine Arch_${MACHINE_ARCH}" >> zypp/poky-arch.h | ||
43 | echo "#endif /* POKY_ARCH_H */" >> zypp/poky-arch.h | ||
44 | echo "" >> zypp/poky-arch.h | ||
45 | echo "#ifdef DEF_BUILTIN" >> zypp/poky-arch.h | ||
46 | echo "/* Specify builtin types */" >> zypp/poky-arch.h | ||
47 | for each_arch in ${PACKAGE_ARCHS} ; do | ||
48 | case "$each_arch" in | ||
49 | all | any | noarch) | ||
50 | continue;; | ||
51 | esac | ||
52 | echo " DEF_BUILTIN( ${each_arch} );" >> zypp/poky-arch.h | ||
53 | done | ||
54 | echo "#endif /* DEF_BUILTIN */" >> zypp/poky-arch.h | ||
55 | echo "" >> zypp/poky-arch.h | ||
56 | echo "#ifdef POKY_EXTERN_PROTO" >> zypp/poky-arch.h | ||
57 | echo "/* Specify extern prototypes */" >> zypp/poky-arch.h | ||
58 | for each_arch in ${PACKAGE_ARCHS} ; do | ||
59 | case "$each_arch" in | ||
60 | all | any | noarch) | ||
61 | continue;; | ||
62 | esac | ||
63 | echo " extern const Arch Arch_${each_arch};" >> zypp/poky-arch.h | ||
64 | done | ||
65 | echo "#endif /* POKY_EXTERN_PROTO */" >> zypp/poky-arch.h | ||
66 | echo "" >> zypp/poky-arch.h | ||
67 | echo "#ifdef POKY_PROTO" >> zypp/poky-arch.h | ||
68 | echo "/* Specify prototypes */" >> zypp/poky-arch.h | ||
69 | for each_arch in ${PACKAGE_ARCHS} ; do | ||
70 | case "$each_arch" in | ||
71 | all | any | noarch) | ||
72 | continue;; | ||
73 | esac | ||
74 | echo " const Arch Arch_${each_arch} (_${each_arch});" >> zypp/poky-arch.h | ||
75 | done | ||
76 | echo "#endif /* POKY_PROTO */" >> zypp/poky-arch.h | ||
77 | echo "" >> zypp/poky-arch.h | ||
78 | echo "#ifdef POKY_DEF_COMPAT" >> zypp/poky-arch.h | ||
79 | echo "/* Specify compatibility information */" >> zypp/poky-arch.h | ||
80 | INSTALL_PLATFORM_ARCHS="" | ||
81 | for each_arch in ${PACKAGE_ARCHS} ; do | ||
82 | INSTALL_PLATFORM_ARCHS="$each_arch $INSTALL_PLATFORM_ARCHS" | ||
83 | done | ||
44 | 84 | ||
45 | sed -i "${PATCHFILE}" \ | 85 | COMPAT_WITH="" |
46 | -e "s|@MACHINE_ARCH@|${MACHINE_ARCH}|g" \ | 86 | set -- ${INSTALL_PLATFORM_ARCHS} |
47 | -e "s|@PKG_ARCH@|${BASE_PACKAGE_ARCH}|g" \ | 87 | while [ $# -gt 0 ]; do |
48 | -e "s|@PKG_ARCH_TAIL@|${PKG_ARCH_TAIL}|g" | 88 | case "$1" in |
49 | 89 | all | any | noarch) | |
50 | patch -p1 -i "${PATCHFILE}" | 90 | shift ; continue;; |
51 | 91 | esac | |
52 | sed -i ${WORKDIR}/archconf.patch -e "s|@MACHINE_ARCH@|${MACHINE_ARCH}|g" | 92 | ARCH=_"$1" |
53 | patch -p1 -i ${WORKDIR}/archconf.patch | 93 | shift |
94 | COMPAT="" | ||
95 | for each_arch in "$@"; do | ||
96 | if [ -z "$COMPAT" ]; then | ||
97 | COMPAT=_"$each_arch" | ||
98 | else | ||
99 | COMPAT=_"$each_arch,$COMPAT" | ||
100 | fi | ||
101 | done | ||
102 | COMPAT_WITH="${ARCH},${COMPAT} $COMPAT_WITH" | ||
103 | done | ||
104 | for each_compat in ${COMPAT_WITH} ; do | ||
105 | echo " defCompatibleWith( ${each_compat} );" >> zypp/poky-arch.h | ||
106 | done | ||
107 | echo "#endif /* DEF_COMPAT */" >> zypp/poky-arch.h | ||
108 | echo "" >> zypp/poky-arch.h | ||
54 | } | 109 | } |
55 | 110 | ||
56 | addtask archpatch before do_patch after do_unpack | 111 | addtask archgen before do_configure after do_patch |