mirror of
git://git.yoctoproject.org/poky
synced 2026-09-05 08:28:01 +00:00
The recent change in the builddir location is breaking this recipe as it is trying to run a script (make-image-header.sh) located in sourcedir from builddir. As the script does not gets to run, the resulting file is not generated causing error as seen below. This commit fixes the issue, by providing complete path of the script. This commit fixes this build error: ERROR: Error executing a python function in /srv/home/nitin/prj/poky.git/meta/recipes-core/psplash/psplash_git.bb: IOError: [Errno 2] No such file or directory: 'psplash-tlk-img.h' ERROR: Task 6 (/srv/home/nitin/prj/poky.git/meta/recipes-core/psplash/psplash_git.bb, do_compile) failed with exit code '1' (From OE-Core rev: c433a1b78c407bea17747cb77f5332ed8ee4c5e7) Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
111 lines
4.3 KiB
BlitzBasic
111 lines
4.3 KiB
BlitzBasic
SUMMARY = "Userspace framebuffer boot logo based on usplash."
|
|
DESCRIPTION = "PSplash is a userspace graphical boot splash screen for mainly embedded Linux devices supporting a 16bpp or 32bpp framebuffer. It has few dependencies (just libc), supports basic images and text and handles rotation. Its visual look is configurable by basic source changes. Also included is a 'client' command utility for sending information to psplash such as boot progress information."
|
|
HOMEPAGE = "http://git.yoctoproject.org/cgit/cgit.cgi/psplash"
|
|
SECTION = "base"
|
|
LICENSE = "GPLv2+"
|
|
LIC_FILES_CHKSUM = "file://psplash.h;beginline=1;endline=16;md5=840fb2356b10a85bed78dd09dc7745c6"
|
|
|
|
SRCREV = "afd4e228c606a9998feae44a3fed4474803240b7"
|
|
PV = "0.1+git${SRCPV}"
|
|
PR = "r7"
|
|
|
|
SRC_URI = "git://git.yoctoproject.org/${BPN};protocol=git \
|
|
file://psplash-init \
|
|
${SPLASH_IMAGES}"
|
|
|
|
SPLASH_IMAGES = "file://psplash-poky-img.h;outsuffix=default"
|
|
|
|
python __anonymous() {
|
|
oldpkgs = d.getVar("PACKAGES", True).split()
|
|
splashfiles = d.getVar('SPLASH_IMAGES', True).split()
|
|
pkgs = []
|
|
localpaths = []
|
|
haspng = False
|
|
for uri in splashfiles:
|
|
fetcher = bb.fetch2.Fetch([uri], d)
|
|
flocal = fetcher.localpath(uri)
|
|
fbase = os.path.splitext(os.path.basename(flocal))[0]
|
|
outsuffix = fetcher.ud[uri].parm.get("outsuffix")
|
|
if not outsuffix:
|
|
if fbase.startswith("psplash-"):
|
|
outsuffix = fbase[8:]
|
|
else:
|
|
outsuffix = fbase
|
|
if outsuffix.endswith('-img'):
|
|
outsuffix = outsuffix[:-4]
|
|
outname = "psplash-%s" % outsuffix
|
|
if outname == '' or outname in oldpkgs:
|
|
bb.fatal("The output name '%s' derived from the URI %s is not valid, please specify the outsuffix parameter" % (outname, uri))
|
|
else:
|
|
pkgs.append(outname)
|
|
if flocal.endswith(".png"):
|
|
haspng = True
|
|
localpaths.append(flocal)
|
|
|
|
# Set these so that we have less work to do in do_compile and do_install_append
|
|
d.setVar("SPLASH_INSTALL", " ".join(pkgs))
|
|
d.setVar("SPLASH_LOCALPATHS", " ".join(localpaths))
|
|
|
|
if haspng:
|
|
d.appendVar("DEPENDS", " gdk-pixbuf-native")
|
|
|
|
d.prependVar("PACKAGES", "%s " % (" ".join(pkgs)))
|
|
mlprefix = d.getVar('MLPREFIX', True) or ''
|
|
pn = d.getVar('PN', True) or ''
|
|
for p in pkgs:
|
|
ep = '%s%s' % (mlprefix, p)
|
|
epsplash = '%s%s' % (mlprefix, 'psplash')
|
|
d.setVar("FILES_%s" % ep, "${bindir}/%s" % p)
|
|
d.setVar("ALTERNATIVE_%s" % ep, epsplash)
|
|
d.setVarFlag("ALTERNATIVE_TARGET_%s" % ep, epsplash, '${bindir}/%s' % p)
|
|
d.appendVar("RDEPENDS_%s" % ep, " %s" % pn)
|
|
if p == "psplash-default":
|
|
d.appendVar("RRECOMMENDS_%s" % pn, " %s" % ep)
|
|
}
|
|
|
|
S = "${WORKDIR}/git"
|
|
|
|
inherit autotools pkgconfig update-rc.d update-alternatives
|
|
|
|
ALTERNATIVE_PRIORITY = "100"
|
|
ALTERNATIVE_LINK_NAME[psplash] = "${bindir}/psplash"
|
|
|
|
python do_compile () {
|
|
import shutil, commands
|
|
|
|
# Build a separate executable for each splash image
|
|
convertscript = "%s/make-image-header.sh" % d.getVar('S', True)
|
|
destfile = "%s/psplash-poky-img.h" % d.getVar('S', True)
|
|
localfiles = d.getVar('SPLASH_LOCALPATHS', True).split()
|
|
outputfiles = d.getVar('SPLASH_INSTALL', True).split()
|
|
for localfile, outputfile in zip(localfiles, outputfiles):
|
|
if localfile.endswith(".png"):
|
|
outp = commands.getstatusoutput('%s %s POKY' % (convertscript, localfile))
|
|
print(outp[1])
|
|
fbase = os.path.splitext(os.path.basename(localfile))[0]
|
|
shutil.copyfile("%s-img.h" % fbase, destfile)
|
|
else:
|
|
shutil.copyfile(localfile, destfile)
|
|
# For some reason just updating the header is not enough, we have to touch the .c
|
|
# file in order to get it to rebuild
|
|
os.utime("%s/psplash.c" % d.getVar('S', True), None)
|
|
bb.build.exec_func("oe_runmake", d)
|
|
shutil.copyfile("psplash", outputfile)
|
|
}
|
|
|
|
do_install_append() {
|
|
install -d ${D}/mnt/.psplash/
|
|
install -d ${D}${sysconfdir}/init.d/
|
|
install -m 0755 ${WORKDIR}/psplash-init ${D}${sysconfdir}/init.d/psplash.sh
|
|
install -d ${D}${bindir}
|
|
for i in ${SPLASH_INSTALL} ; do
|
|
install -m 0755 $i ${D}${bindir}/$i
|
|
done
|
|
rm -f ${D}${bindir}/psplash
|
|
}
|
|
|
|
FILES_${PN} += "/mnt/.psplash"
|
|
|
|
INITSCRIPT_NAME = "psplash.sh"
|
|
INITSCRIPT_PARAMS = "start 0 S . stop 20 0 1 6 ."
|