[yocto] Problem & Question about FILES_${PN}
Reeve Yang
reeve.yang at gmail.com
Mon Jan 6 16:19:28 PST 2014
Hi all,
I'm facing a wearied issue while packaging syslog-ng ported from OE. (I
added meta-openembedded as a sub-module and use the recipe files from it
directly).
In my yocto build I enabled multi-lib for both 32-bits and 64-bits, default
tune is 64-bits. The libraries are installed under /usr/lib64. As you know,
syslog-ng_3.2.5 has plugin and I installed them under /usr/lib64/syslog-ng,
and add that path into FILES_${PN}:
FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/*
${libdir}/lib*${SOLIBS} \
${sysconfdir} ${sharedstatedir} ${localstatedir} \
${base_bindir}/* ${base_sbindir}/* \
${base_libdir}/*${SOLIBS} \
${datadir}/${BPN} ${libdir}/${BPN}/*${SOLIBSDEV} \
${datadir}/include/scl/ ${datadir}/xsd"
${libdir}/${BPN}/*${SOLIBSDEV} is expanded as /usr/lib64/syslog-ng/*.so.
The funny thing is, the sys-log rpm doesn't have those files (I used rpm as
packaging scheme). I checked the generated spec file during "do_package",
those files are not added as "%files" for package "syslog-ng". I'm pretty
sure the files are installed.
My question is, why "FIELS_${PN}" is not effective for syslog-ng
particularly? How to control the spec if it's not? Attached is the
syslog-ng recipe file.
Thanks.
- Reeve
DESCRIPTION = "Alternative system logger daemon"
DEPENDS = "libol flex eventlog glib-2.0"
LICENSE = "GPL LGPL"
LIC_FILES_CHKSUM = "file://COPYING;md5=7ec1bcc46f28b11f4722e20d9b7dd4d5"
# syslog initscript is handled explicitly because order of
# update-rc.d and update-alternatives is important
RDEPENDS_${PN} += " ${@base_conditional("ONLINE_PACKAGE_MANAGEMENT",
"none", "", "update-rc.d", d)}"
INC_PR = "r12"
inherit autotools systemd
SRC_URI = "
http://www.balabit.com/downloads/files/syslog-ng/sources/${PV}/source/${PN}_${PV}.tar.gz
"
noipv6 = "${@base_contains('DISTRO_FEATURES', 'ipv6', '', '--disable-ipv6',
d)}"
EXTRA_OECONF = " \
--with-libnet=${STAGING_BINDIR_CROSS} \
--enable-dynamic-linking \
${noipv6} \
--enable-ssl \
--disable-sub-streams \
--disable-pacct \
--disable-linux-caps \
--disable-pcre \
--disable-sql \
"
EXTRA_OECONF += "${@base_contains('DISTRO_FEATURES', 'systemd',
'--with-systemdsystemunitdir=${systemd_unitdir}/system/',
'--without-systemdsystemunitdir', d)}"
EXTRA_OECONF += "${@base_contains('DISTRO_FEATURES', 'systemd',
'--enable-systemd', '--disable-systemd', d)}"
do_configure_prepend() {
eval "${@base_contains('DISTRO_FEATURES', 'largefile', '', 'sed -i -e
"s/-D_LARGEFILE_SOURCE//" -e "s/-D_FILE_OFFSET_BITS=64//" ${S}/configure.in',
d)}"
}
# rename modules.conf because it breaks update-modules
# see
http://lists.linuxtogo.org/pipermail/openembedded-devel/2011-October/035537.html
do_install_append() {
mv ${D}/${sysconfdir}/modules.conf ${D}/${sysconfdir}/scl-modules.conf
sed -i "s#@include 'modules.conf'#@include 'scl-modules.conf'#g"
${D}/${sysconfdir}/scl.conf
install -d ${D}/${sysconfdir}/${PN}
install ${WORKDIR}/syslog-ng.conf ${D}${sysconfdir}/${PN}/${PN}.conf
rm -rf ${D}${sysconfdir}/${PN}.conf
install -d ${D}/${sysconfdir}/init.d
install -m 755 ${WORKDIR}/initscript
${D}/${sysconfdir}/init.d/syslog.${PN}
mv ${D}/usr/lib/${PN} ${D}/${libdir}
rm -rf ${D}/usr/lib
}
FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/*
${libdir}/lib*${SOLIBS} \
${sysconfdir} ${sharedstatedir} ${localstatedir} \
${base_bindir}/* ${base_sbindir}/* \
${base_libdir}/*${SOLIBS} \
${datadir}/${BPN} ${libdir}/${BPN}/*${SOLIBSDEV} \
${datadir}/include/scl/ ${datadir}/xsd"
FILES_${PN}-dev += "${libdir}/${BPN}/lib*.la ${libdir}/${BPN}/*${SOLIBSDEV}"
CONFFILES_${PN} = "${sysconfdir}/${PN}/${PN}.conf ${sysconfdir}/scl.conf
${sysconfdir}/scl-modules.conf"
RPROVIDES_${PN} += "${PN}-systemd"
RREPLACES_${PN} += "${PN}-systemd"
RCONFLICTS_${PN} += "${PN}-systemd"
SYSTEMD_SERVICE_${PN} = "${PN}.service"
pkg_postinst_${PN} () {
/etc/init.d/syslog stop
update-alternatives --install ${sysconfdir}/init.d/syslog syslog-init
syslog.${PN} 200
if test "x$D" != "x"; then
OPT="-r $D"
else
OPT="-s"
fi
# remove all rc.d-links potentially created from alternative
# syslog packages before creating new ones
update-rc.d $OPT -f syslog remove
update-rc.d $OPT syslog start 20 2 3 4 5 . stop 90 0 1 6 .
}
pkg_prerm_${PN} () {
if test "x$D" = "x"; then
if test "$1" = "upgrade" -o "$1" = "remove"; then
/etc/init.d/syslog stop
fi
fi
update-alternatives --remove syslog-init syslog.${PN}
}
pkg_postrm_${PN} () {
if test "x$D" != "x"; then
OPT="-r $D"
else
OPT=""
fi
if test "$1" = "remove" -o "$1" = "purge"; then
if ! test -e "/etc/init.d/syslog"; then
update-rc.d $OPT syslog remove
fi
fi
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20140106/3c0b2968/attachment.html>
More information about the yocto
mailing list