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