Tizen recipes: avoid -j16
[scm/bb/meta-tizen.git] / meta-tizen-common-base / recipes-devtools / rpm / rpm.inc
1 DESCRIPTION = "The Package Manager"
2 HOMEPAGE = "http://www.rpm.org"
3 SECTION = "Base/Package Management"
4 LICENSE = "GPL-2.0+"
5 PV = "4.11.0.1"
6
7 SRC_URI = ""
8
9 S = "${WORKDIR}/git"
10
11 inherit manifest autotools-brokensep
12
13 BBCLASSEXTEND = ""
14 PROVIDES = ""
15
16 #PROVIDES by rpm-security-plugin
17 PROVIDES += "rpm-security-plugin"
18
19
20 #PROVIDES by python-rpm
21 PROVIDES += "python-rpm"
22
23
24 #PROVIDES by rpm-build
25 PROVIDES += "rpm-build"
26 # the PROVIDES rules is ignore "rpmbuild  "
27 PROVIDES += "rpmbuild"
28 RPROVIDES_rpm-build += "rpmbuild"
29 # the PROVIDES rules is ignore "rpm:${prefix}/bin/rpmbuild  "
30 PROVIDES += "rpm:${prefix}/bin/rpmbuild"
31 RPROVIDES_rpm-build += "rpm:${prefix}/bin/rpmbuild"
32
33
34 #PROVIDES by rpm-dev
35 PROVIDES += "rpm-dev"
36
37
38 #PROVIDES by rpm
39 # the PROVIDES rules is ignore "rpminst  "
40 PROVIDES += "rpminst"
41 RPROVIDES_rpm += "rpminst"
42 # the PROVIDES rules is ignore "rpm-libs  "
43 PROVIDES += "rpm-libs"
44 RPROVIDES_rpm += "rpm-libs"
45
46
47 #PROVIDES by rpm-docs
48 PROVIDES += "rpm-docs "
49
50
51 RDEPENDS = ""
52 #RDEPENDS of rpm-security-plugin (${PN}-security-plugin)
53 RDEPENDS_${PN}-security-plugin += "smack"
54 RDEPENDS_${PN}-security-plugin += "nss"
55 RDEPENDS_${PN}-security-plugin += "rpm"
56
57 #RDEPENDS of python-rpm (python-${PN})
58 RDEPENDS_python-${PN} += "rpm"
59
60 #RDEPENDS of rpm-build (${PN}-build)
61 RDEPENDS_${PN}-build += "bzip2"
62 RDEPENDS_${PN}-build += "make"
63 RDEPENDS_${PN}-build += "gcc"
64 RDEPENDS_${PN}-build += "patch"
65 RDEPENDS_${PN}-build += "xz"
66 RDEPENDS_${PN}-build += "findutils"
67 RDEPENDS_${PN}-build += "gzip"
68 RDEPENDS_${PN}-build += "rpm"
69 RDEPENDS_${PN}-build += "glibc"
70 RDEPENDS_${PN}-build += "binutils"
71
72 #RDEPENDS of rpm-dev (${PN}-dev)
73 RDEPENDS_${PN}-dev += "rpm"
74 RDEPENDS_${PN}-dev += "popt"
75
76
77 DEPENDS = ""
78 #DEPENDS of python-rpm
79 #DEPENDS of rpm
80 DEPENDS += "libxml2"
81 DEPENDS += "xz"
82 DEPENDS += "findutils"
83 DEPENDS += "file"
84 DEPENDS += "popt"
85 DEPENDS += "uthash"
86 DEPENDS += "nss"
87 DEPENDS += "make"
88 DEPENDS += "bzip2"
89 DEPENDS += "lua"
90 DEPENDS += "patch"
91 inherit pkgconfig
92 inherit pythonnative
93 DEPENDS += "libcap"
94 DEPENDS += "ncurses"
95 DEPENDS += "smack"
96 DEPENDS_append_class-native = " libtool"
97 DEPENDS_append_class-target = " libtool-cross"
98 #Replace "DEPENDS" on gettext by "inherit gettext"
99 inherit gettext
100 DEPENDS += "attr"
101 DEPENDS += "zlib"
102 DEPENDS += "acl"
103 DEPENDS += "gzip"
104 DEPENDS_append_class-native = " fdupes-native"
105 DEPENDS_append_class-target = " fdupes-native"
106 DEPENDS += "elfutils"
107 DEPENDS += "binutils"
108
109 do_prep() {
110  cd ${S}
111  chmod -Rf a+rX,u+w,g-w,o-w ${S}
112  #setup -q -n rpm-4.11.0.1
113  cp ${S}/packaging/rpm.manifest .
114  rm -rf sqlite
115  tar xjf ${S}/packaging/db-4.8.30.tar.bz2
116  ln -sfn db-4.8.30 db
117  chmod -R u+w db/*
118  # will get linked from db3
119  rm -f rpmdb/db.h
120  patch -p0 < ${S}/packaging/db-4.8.30-integration.dif
121  if [ -s ${sysconfdir}/rpm/tizen_macros ]; then
122      cp -a ${sysconfdir}/rpm/tizen_macros ${S}/packaging/rpm-tizen_macros
123  fi
124  cp -a ${S}/packaging/rpm-tizen_macros tizen_macros
125  rm -f m4/libtool.m4
126  rm -f m4/lt*.m4
127  
128  
129 }
130 do_patch_append() {
131     bb.build.exec_func('do_prep', d)
132 }
133
134 do_configure() {
135 }
136
137 do_compile() {
138  cd ${S}
139   LANG=C
140   export LANG
141   unset DISPLAY
142   LD_AS_NEEDED=1; export LD_AS_NEEDED ;
143   
144   CPPFLAGS="$CPPFLAGS `pkg-config --cflags nss`"
145   export CPPFLAGS
146   export CFLAGS="$CFLAGS -ffunction-sections"
147   export LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic-functions -ffunction-sections"
148   
149   
150   autotools_do_configure
151   
152   make ${PARALLEL_MAKE}
153   
154   
155   
156 }
157 EXTRA_OECONF += " --disable-dependency-tracking --with-lua --with-acl --with-cap --enable-shared --enable-python --with-vendor=tizen --with-msm "
158
159 do_install() {
160  export RPM_BUILD_ROOT=${D}
161  cd ${S}
162  LANG=C
163  export LANG
164  unset DISPLAY
165  rm -rf ${D}
166  mkdir -p ${D}
167  
168  mkdir -p ${D}${prefix}/lib
169  mkdir -p ${D}${prefix}/share/locale
170  ln -s ../share/locale ${D}${prefix}/lib/locale
171  
172    oe_runmake \
173          DESTDIR=${D} \
174          INSTALL_ROOT=${D} \
175          BINDIR=${prefix}/bin \
176    install  
177    rm -f ${D}${infodir}/dir 
178    find ${D} -regex ".*\.la$" | xargs rm -f -- 
179    find ${D} -regex ".*\.a$" | xargs rm -f --
180  install -m 644 db3/db.h ${D}${prefix}/include/rpm
181  mkdir -p ${D}${sysconfdir}/rpm
182  cp -a tizen_macros ${D}${prefix}/lib/rpm
183  mkdir -p ${D}${prefix}/lib/rpm/tizen
184  install -m 755 ${S}/packaging/find-docs.sh ${D}${prefix}/lib/rpm/tizen
185  install -m 755 ${S}/packaging/find-provides.ksyms ${D}${prefix}/lib/rpm
186  install -m 644 ${S}/packaging/device-sec-policy ${D}${sysconfdir}/device-sec-policy
187  install -m 644 ${S}/packaging/device-sec-policy ${D}${prefix}/lib/rpm-plugins/msm-device-sec-policy
188  ln -s ../tizen_macros ${D}${prefix}/lib/rpm/tizen/macros
189  for d in BUILD RPMS SOURCES SPECS SRPMS BUILDROOT ; do
190    mkdir -p ${D}${prefix}/src/packages/$d
191    chmod 755 ${D}${prefix}/src/packages/$d
192  done
193  for d in ${D}${prefix}/lib/rpm/platform/*-linux/macros ; do
194    dd=${d%-linux/macros}
195    dd=${dd##*/}
196    mkdir -p ${D}${prefix}/src/packages/RPMS/$dd
197    chmod 755 ${D}${prefix}/src/packages/RPMS/$dd
198  done
199  mkdir -p ${D}${localstatedir}/lib/rpm
200  gzip -9 ${D}${mandir}/man[18]/*.[18]
201  export RPM_BUILD_ROOT
202  chmod 755 doc/manual
203  rm -rf doc/manual/Makefile*
204  rm -f ${D}${prefix}/lib/rpmpopt
205  rm -rf ${D}${mandir}/{fr,ja,ko,pl,ru,sk}
206  rm -f ${D}${prefix}/share/locale/de/LC_MESSAGES/rpm.mo
207  rm -f ${D}${prefix}/lib/rpm/cpanflute ${D}${prefix}/lib/rpm/cpanflute2
208  install -m 755 scripts/find-supplements ${D}${prefix}/lib/rpm
209  install -m 755 scripts/find-supplements.ksyms ${D}${prefix}/lib/rpm
210  install -m 755 scripts/firmware.prov ${D}${prefix}/lib/rpm
211  install -m 755 scripts/debuginfo.prov ${D}${prefix}/lib/rpm
212  rm -f ${D}${prefix}/lib/locale ${D}${prefix}/lib/rpmrc
213  mkdir -p ${D}${sysconfdir}/rpm
214  chmod 755 ${D}${sysconfdir}/rpm
215  mkdir -p ${D}${prefix}/lib/rpm/macros.d
216  # remove some nonsense or non-working scripts
217  for f in rpm2cpio.sh rpm.daily rpmdiff* rpm.log rpm.xinetd freshen.sh u_pkg.sh \
218           magic magic.mgc magic.mime* rpmfile *.pl javadeps brp-redhat \
219           brp-strip-static-archive vpkg-provides*.sh http.req sql.req tcl.req \
220           rpmdb_* brp-sparc64-linux brp-strip-comment-note brp-java-gcjcompile
221  do
222      rm -f ${D}${prefix}/lib/rpm/$f
223  done
224  for i in ${prefix}/share/automake-*/*; do
225    if test -f "$i" && test -f ${D}${prefix}/lib/rpm/"${i##*/}"; then
226      rm -f ${D}${prefix}/lib/rpm/"${i##*/}"
227    fi
228  done
229  rm -f ${D}${prefix}/lib/*.la
230  rm -f ${D}${prefix}/lib/rpm-plugins/*.la
231  
232  #fdupes ${D}${prefix}/lib/rpm/platform
233  
234  sh ${D}${prefix}/lib/rpm/find-lang.sh ${D} rpm
235  
236  
237  
238 }
239
240 pkg_postinst_${PN}() {
241     #!/bin/sh -e
242
243     [ "x$D" == "x" ] && ldconfig
244     test -f ${localstatedir}/lib/rpm/Packages || rpm --initdb
245     rm -f ${localstatedir}/lib/rpm/Filemd5s \
246           ${localstatedir}/lib/rpm/Filedigests \
247           ${localstatedir}/lib/rpm/Requireversion \
248           ${localstatedir}/lib/rpm/Provideversion
249
250 }
251
252 pkg_postrm_${PN}() {
253     #!/bin/sh -e
254
255     [ "x$D" == "x" ] && ldconfig
256
257 }
258
259 PACKAGES = "${PN}-dbg ${PN}-doc ${PN}-locale"
260 PACKAGES += " rpm-security-plugin "
261 PACKAGES += " python-rpm "
262 PACKAGES += " rpm-build "
263 PACKAGES += " rpm-dev "
264 PACKAGES += " rpm-docs "
265 PACKAGES += " rpm "
266
267 rpm-security-plugin_files = ""
268 rpm-security-plugin_files += "${prefix}/lib/rpm-plugins/msm.so"
269 rpm-security-plugin_files += "${prefix}/lib/rpm-plugins/msm-device-sec-policy"
270 rpm-security-plugin_files += "${sysconfdir}/device-sec-policy"
271 MANIFESTFILES_${PN}-security-plugin = "rpm.manifest"
272
273 python-rpm_files = ""
274 python-rpm_files += "${prefix}/lib/python2.7/site-packages/rpm"
275 python-rpm_files += "${prefix}/lib/python2.7/site-packages/rpm/transaction.py"
276
277 rpm-build_files = ""
278 rpm-build_files += "${prefix}/bin/rpmbuild"
279 rpm-build_files += "${prefix}/bin/gendiff"
280 rpm-build_files += "${prefix}/bin/rpmspec"
281 rpm-build_files += "${prefix}/bin/rpmsign"
282 rpm-build_files += "${prefix}/lib/rpm/tizen/find-*"
283 rpm-build_files += "${prefix}/lib/rpm/brp-*"
284 rpm-build_files += "${prefix}/lib/rpm/find-supplements*"
285 rpm-build_files += "${prefix}/lib/rpm/check-*"
286 rpm-build_files += "${prefix}/lib/rpm/debugedit"
287 rpm-build_files += "${prefix}/lib/rpm/find-debuginfo.sh"
288 rpm-build_files += "${prefix}/lib/rpm/find-lang.sh"
289 rpm-build_files += "${prefix}/lib/rpm/find-provides.ksyms"
290 rpm-build_files += "${prefix}/lib/rpm/*provides*"
291 rpm-build_files += "${prefix}/lib/rpm/*requires*"
292 rpm-build_files += "${prefix}/lib/rpm/*deps*"
293 rpm-build_files += "${prefix}/lib/rpm/*.prov"
294 rpm-build_files += "${prefix}/lib/rpm/*.req"
295 rpm-build_files += "${prefix}/lib/rpm/macros.*"
296 rpm-build_files += "${prefix}/lib/rpm/fileattrs"
297 MANIFESTFILES_${PN}-build = "rpm.manifest"
298
299 rpm-dev_files = ""
300 rpm-dev_files += "${prefix}/bin/rpmgraph"
301 rpm-dev_files += "${prefix}/include/rpm"
302 rpm-dev_files += "${prefix}/lib/librpm.so"
303 rpm-dev_files += "${prefix}/lib/librpmbuild.so"
304 rpm-dev_files += "${prefix}/lib/librpmio.so"
305 rpm-dev_files += "${prefix}/lib/librpmsign.so"
306 rpm-dev_files += "${prefix}/lib/pkgconfig/rpm.pc"
307 MANIFESTFILES_${PN}-dev = "rpm.manifest"
308
309 rpm-docs_files = ""
310 rpm-docs_files += "GROUPS"
311
312 rpm_files = ""
313 rpm_files += "${sysconfdir}/rpm"
314 rpm_files += "/bin/rpm"
315 rpm_files += "${prefix}/bin/rpm2cpio"
316 rpm_files += "${prefix}/bin/rpmdb"
317 rpm_files += "${prefix}/bin/rpmkeys"
318 rpm_files += "${prefix}/bin/rpmquery"
319 rpm_files += "${prefix}/bin/rpmverify"
320 rpm_files += "${prefix}/bin/rpmqpack"
321 rpm_files += "%dir ${prefix}/lib/rpm"
322 rpm_files += "${prefix}/lib/rpm/macros"
323 rpm_files += "${prefix}/lib/rpm/macros.d"
324 rpm_files += "${prefix}/lib/rpm/rpmpopt*"
325 rpm_files += "${prefix}/lib/rpm/rpmrc"
326 rpm_files += "${prefix}/lib/rpm/tizen/macros"
327 rpm_files += "${prefix}/lib/rpm/tizen_macros"
328 rpm_files += "${prefix}/lib/rpm/rpm.supp"
329 rpm_files += "${prefix}/lib/rpm/tgpg"
330 rpm_files += "${prefix}/lib/rpm/platform"
331 rpm_files += "${prefix}/lib/rpm-plugins"
332 rpm_files += "${prefix}/lib/rpm-plugins/exec.so"
333 rpm_files += "${prefix}/lib/librpm.so.*"
334 rpm_files += "${prefix}/lib/librpmio.so.*"
335 rpm_files += "${prefix}/lib/librpmbuild.so.*"
336 rpm_files += "${prefix}/lib/librpmsign.so.*"
337 rpm_files += "${localstatedir}/lib/rpm"
338 rpm_files += "%attr(755,root,root) ${prefix}/src/packages/BUILD"
339 rpm_files += "%attr(755,root,root) ${prefix}/src/packages/SPECS"
340 rpm_files += "%attr(755,root,root) ${prefix}/src/packages/SOURCES"
341 rpm_files += "%attr(755,root,root) ${prefix}/src/packages/SRPMS"
342 rpm_files += "%attr(755,root,root) ${prefix}/src/packages/RPMS"
343 rpm_files += "%attr(755,root,root) ${prefix}/src/packages/BUILDROOT"
344 rpm_files += "%attr(755,root,root) ${prefix}/src/packages/RPMS/*"
345 MANIFESTFILES_${PN} = "rpm.manifest"
346 DIRFILES_${PN} = ""
347 DIRFILES_${PN} += "   ${prefix}/lib/rpm-plugins"
348 DIRFILES_${PN} += "   ${localstatedir}/lib/rpm"
349 DIRFILES_${PN} += "   %attr(755,root,root) ${prefix}/src/packages/BUILD"
350 DIRFILES_${PN} += "   %attr(755,root,root) ${prefix}/src/packages/SPECS"
351 DIRFILES_${PN} += "   %attr(755,root,root) ${prefix}/src/packages/SOURCES"
352 DIRFILES_${PN} += "   %attr(755,root,root) ${prefix}/src/packages/SRPMS"
353 DIRFILES_${PN} += "   %attr(755,root,root) ${prefix}/src/packages/RPMS"
354 DIRFILES_${PN} += "   %attr(755,root,root) ${prefix}/src/packages/BUILDROOT"
355 DIRFILES_${PN} += "   %attr(755,root,root) ${prefix}/src/packages/RPMS/*"
356
357 FILES_${PN}-security-plugin = "${rpm-security-plugin_files}"
358 FILES_python-${PN} = "${python-rpm_files}"
359 FILES_${PN}-build = "${rpm-build_files}"
360 FILES_${PN}-dev = "${rpm-dev_files}"
361 FILES_${PN}-docs = "${rpm-docs_files}"
362 FILES_${PN} = "${rpm_files}"
363
364 PKG_rpm-security-plugin= "rpm-security-plugin"
365 PKG_python-rpm= "python-rpm"
366 PKG_rpm-build= "rpm-build"
367 PKG_rpm-dev= "rpm-dev"
368 PKG_rpm-docs= "rpm-docs"
369 PKG_rpm= "rpm"
370
371 require rpm-extraconf.inc
372