From: Jim Rafert <jimr@spectralogic.com>
To: "yocto@yoctoproject.org" <yocto@yoctoproject.org>
Subject: Re: How do I create a recipe for laying down post-build config files?
Date: Fri, 13 Jun 2014 22:02:54 +0000 [thread overview]
Message-ID: <86196249137E0843B2E0673D4F731E0CAB521BE4@reactor.sldomain.com> (raw)
In-Reply-To: <86196249137E0843B2E0673D4F731E0CAB521799@reactor.sldomain.com>
[-- Attachment #1: Type: text/plain, Size: 5478 bytes --]
Well, now that I've resolved my spelling error, the build succeeds, but my pkg_postinst_${PN} () function doesn't seem to run.
I suppose I'm resigned to making .bbappend recipes to lay down my revised version of the config files.
at least they can all be localized in a layer. Sometimes you just have to bite the bullet and do things
the right way.
However, I don't know how to go about removing files and links after the build is done, and running transformative scripts on other files. For example, see the following code examples that I want to
replicate.
#Remove unneeded services from startup
echo Remove unneeded services from startup
rm ${D}/etc/rc5.d/S20nfsserver
rm ${D}/etc/rc5.d/S20syslog
rm ${D}/etc/rc5.d/S70lighttpd
#Remove /var/log link to /var/volatile/log, persist log.
rm ${D}/var/log
mkdir ${D}/var/log
mv ${D}/etc/default/volatiles/00_core ${D}/etc/default/volatiles/00_core.orig
grep -v volatile/log ${D}/etc/default/volatiles/00_core.orig | tee ${D}/etc/default/volatiles/00_core >/dev/null
rm ${D}/etc/default/volatiles/00_core.orig
Any ideas how to do this?
-Jim-
________________________________
From: Jim Rafert
Sent: Monday, June 09, 2014 3:44 PM
To: yocto@yoctoproject.org
Subject: How do I create a recipe for laying down post-build config files?
I'm trying to gather all my post-build tweaks into a recipe that will be built as part of an upper-level layer, so that they are installed after the meta layer is processed. Many of these could be accomplished as part of .bbappend files for the recipes that originally supply the config files, but I wanted to gather all my customizations in one spot, so that they're easy to find.
The recipe doesn't actually build anything, so there's no do_build task.
This is surely something that is commonly wanted.
Here's my current recipe, in spectra-postbuild_0.1.bb.
When I try to build an image, the build fails with
ERROR: QA Issue: spectra-postbuild: Files/directories were installed but not shipped
/RELEASE-NOTES.txt
When I disable the installed-vs-shipped QA test, it fails later when it can't find a package file.
I must be missing something critical here?
SUMMARY = "Post processing of configuration files for SpectraOS"
SECTION = "base"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://${WORKDIR}/COPYRIGHT;md5=349c872e0066155e1818b786938876a4"
RDEPENDS_${PN} = "initscripts"
PR = "r0"
SRC_URI = "file://inittab \
file://fstab \
file://rsyslog.conf \
file://grub.cfg \
file://mount.sh \
file://RELEASE-NOTES.txt \
file://Spectra-OS-Version \
file://initializeCustomKernelModules \
file://firewall \
file://sysctl.conf \
file://COPYRIGHT \
"
CONFFILES_${PN} += "${sysconfdir}/init.d/firewall "
CONFFILES_${PN} += "${sysconfdir}/init.d/initializeCustomKernelModules "
FILES_${PN} = "/RELEASE_NOTES.txt /Spectra-OS-Version "
#INSANE_SKIP_${PN} = "installed-vs-shipped"
do_install () {
install -m 755 ${WORKDIR}/RELEASE-NOTES.txt ${D}
install -m 755 ${WORKDIR}/Spectra-OS-Version ${D}
}
pkg_postinst_${PN} () {
install -d ${D}${sysconfdir}/init.d
install -d ${D}${sbindir}
#Install our inittab and fstab
echo Install our inittab and fstab
install -m 544 ${WORKDIR}/inittab ${D}/etc/inittab
install -m 755 ${WORKDIR}/fstab ${D}/etc/fstab
install -m 755 ${WORKDIR}/rsyslog.conf ${D}/etc/rsyslog.conf
mkdir -p ${D}/boot/grub
install -m 755 ${WORKDIR}/grub.cfg ${D}/boot/grub/grub.cfg
install -d ${D}/etc/udev/scripts
install -m 755 ${WORKDIR}/mount.sh ${D}/etc/udev/scripts/mount.sh
chmod 755 ${D}/etc/udev/scripts/mount.sh
install -m 755 ${WORKDIR}/RELEASE-NOTES.txt ${D}
install -m 755 ${WORKDIR}/Spectra-OS-Version ${D}
#Remove unneeded services from startup
echo Remove unneeded services from startup
rm ${D}/etc/rc5.d/S20nfsserver
rm ${D}/etc/rc5.d/S20syslog
rm ${D}/etc/rc5.d/S70lighttpd
#Add /dev/sdd to the auto mount blacklist
chmod 777 ${D}/etc/udev/mount.blacklist
echo "/dev/sda*" >> ${D}/etc/udev/mount.blacklist
echo "/dev/sdd*" >> ${D}/etc/udev/mount.blacklist
echo "/dev/sde*" >> ${D}/etc/udev/mount.blacklist
chmod 644 ${D}/etc/udev/mount.blacklist
#Remove /var/log link to /var/volatile/log, persist log.
rm ${D}/var/log
mkdir ${D}/var/log
mv ${D}/etc/default/volatiles/00_core ${D}/etc/default/volatiles/00_core.orig
grep -v volatile/log ${D}/etc/default/volatiles/00_core.orig | tee ${D}/etc/default/volatiles/00_core >/dev/null
rm ${D}/etc/default/volatiles/00_core.orig
#Create directory for SCST
mkdir -p ${D}/var/lib/scst/pr
mkdir -p ${D}/usr/local/bin
mkdir -p ${D}/etc/logrotate.d
#Install drivers load script
echo Install drivers load script
install -m 755 ${WORKDIR}initializeCustomKernelModules ${D}/etc/init.d
ln -s ${D}/etc/init.d/initializeCustomKernelModules ${D}/etc/rc5.d/S70initializeCustomKernelModules
echo Install firewall configuration boot script
install -m 755 ${WORKDIR}firewall ${D}/etc/init.d
chmod +x ${D}/etc/init.d/firewall
ln -s ${D}/etc/init.d/firewall ${D}/etc/rc5.d/S80firewall
#copy config change for console log level
install -m 755 ${WORKDIR}sysctl.conf ${D}/etc/sysctl.conf
}
[-- Attachment #2: Type: text/html, Size: 8323 bytes --]
prev parent reply other threads:[~2014-06-13 22:03 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-09 21:44 How do I create a recipe for laying down post-build config files? Jim Rafert
2014-06-10 8:30 ` Jens Lucius
2014-06-10 8:53 ` Paul Eggleton
2014-06-10 8:58 ` Alex J Lennon
2014-06-11 15:04 ` Jim Rafert
2014-06-10 15:02 ` Maxim Radugin
2014-06-13 22:02 ` Jim Rafert [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86196249137E0843B2E0673D4F731E0CAB521BE4@reactor.sldomain.com \
--to=jimr@spectralogic.com \
--cc=yocto@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.