summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/base.bbclass34
-rw-r--r--classes/insane.bbclass14
-rw-r--r--classes/package.bbclass4
-rw-r--r--classes/packaged-staging.bbclass8
-rw-r--r--classes/patch.bbclass2
-rw-r--r--conf/checksums.ini6
-rw-r--r--conf/collections.inc53
-rw-r--r--conf/distro/include/sane-srcdates.inc1
-rw-r--r--conf/machine/afeb9260-180.conf2
-rw-r--r--conf/machine/afeb9260.conf27
-rw-r--r--conf/machine/include/afeb9260.inc24
-rw-r--r--docs/usermanual/chapters/getting_oe.xml2
-rw-r--r--recipes/dvd+rw-tools/dvd+rw-tools_7.1.bb32
-rw-r--r--recipes/dvd+rw-tools/files/01-growisofs-pioneer.dpatch30
-rw-r--r--recipes/dvd+rw-tools/files/02-growisofs-manpage.dpatch16
-rw-r--r--recipes/dvd+rw-tools/files/03-growisofs-dvd-dl.dpatch21
-rw-r--r--recipes/dvd+rw-tools/files/04-kfreebsd.dpatch78
-rw-r--r--recipes/dvd+rw-tools/files/07-beeping.dpatch27
-rw-r--r--recipes/dvd+rw-tools/files/08-cdrkit-code.dpatch74
-rw-r--r--recipes/dvd+rw-tools/files/09-cdrkit-doc.dpatch227
-rw-r--r--recipes/dvd+rw-tools/files/10-includes.dpatch19
-rw-r--r--recipes/evtest/evtest_1.23.bb2
-rw-r--r--recipes/gsoko/gsoko-0.4.2-gpe6/fix_install.patch13
-rw-r--r--recipes/gsoko/gsoko_0.4.2-gpe6.bb1
-rw-r--r--recipes/kexec/files/kexec-arm-atags.patch15
-rw-r--r--recipes/kexec/files/kexec2-klibc.patch167
-rw-r--r--recipes/kexec/kexec-tools-static_1.101.bb2
-rw-r--r--recipes/kexec/kexec-tools-static_2.0.0.bb24
-rw-r--r--recipes/kexec/kexec-tools2.inc12
-rw-r--r--recipes/kexec/kexec-tools_2.0.0.bb7
-rw-r--r--recipes/linux/linux-2.6.29+2.6.30-rc4/afeb9260/0001-SRAM-TX-buffers-implementation-from-atmel-to-fix-TX.patch310
-rw-r--r--recipes/linux/linux-2.6.29+2.6.30-rc4/afeb9260/0002-RS-485-mode-of-USART1.patch41
-rw-r--r--recipes/linux/linux-2.6.29+2.6.30-rc4/afeb9260/0004-AFEB9260-ASoC-driver.patch288
-rw-r--r--recipes/linux/linux-2.6.29+2.6.30-rc4/afeb9260/defconfig1559
-rw-r--r--recipes/linux/linux-2.6.29/boc01/defconfig47
-rw-r--r--recipes/linux/linux_2.6.28-rc6.bb1
-rw-r--r--recipes/linux/linux_2.6.29+2.6.30-rc4.bb32
-rw-r--r--recipes/llvm/llvm2.6-native_2.5+svnr20090511.bb2
-rw-r--r--recipes/llvm/llvm2.6/fix-build.patch11
-rw-r--r--recipes/llvm/llvm2.6_2.5+svnr20090511.bb2
-rw-r--r--recipes/mozilla/fennec_hg.bb3
-rw-r--r--recipes/podget/podget_0.5.8.bb5
-rw-r--r--recipes/u-boot/u-boot-git/afeb9260/AFEB9260-network-fix.patch40
-rw-r--r--recipes/u-boot/u-boot_git.bb7
-rw-r--r--recipes/uim/uim.inc2
45 files changed, 3153 insertions, 141 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass
index a901f02a6c..e622aeec51 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -39,6 +39,14 @@ def base_path_relative(src, dest):
return sep.join(relpath)
+def base_path_out(path, d):
+ """ Prepare a path for display to the user. """
+ rel = base_path_relative(d.getVar("TOPDIR", 1), path)
+ if len(rel) > len(path):
+ return path
+ else:
+ return rel
+
# for MD5/SHA handling
def base_chk_load_parser(config_paths):
import ConfigParser, os, bb
@@ -69,6 +77,7 @@ def base_chk_file(parser, pn, pv, src_uri, localpath, data):
# md5 and sha256 should be valid now
if not os.path.exists(localpath):
+ localpath = base_path_out(localpath, data)
bb.note("The localpath does not exist '%s'" % localpath)
raise Exception("The path does not exist '%s'" % localpath)
@@ -497,11 +506,11 @@ python base_do_clean() {
"""clear the build and temp directories"""
dir = bb.data.expand("${WORKDIR}", d)
if dir == '//': raise bb.build.FuncFailed("wrong DATADIR")
- bb.note("removing " + dir)
+ bb.note("removing " + base_path_out(dir, d))
os.system('rm -rf ' + dir)
dir = "%s.*" % bb.data.expand(bb.data.getVar('STAMP', d), d)
- bb.note("removing " + dir)
+ bb.note("removing " + base_path_out(dir, d))
os.system('rm -f '+ dir)
}
@@ -556,7 +565,7 @@ python base_do_distclean() {
except bb.MalformedUrl, e:
bb.debug(1, 'Unable to generate local path for malformed uri: %s' % e)
else:
- bb.note("removing %s" % local)
+ bb.note("removing %s" % base_path_out(local, d))
try:
if os.path.exists(local + ".md5"):
os.remove(local + ".md5")
@@ -777,7 +786,7 @@ def oe_unpack_file(file, data, url = None):
os.chdir(newdir)
cmd = "PATH=\"%s\" %s" % (bb.data.getVar('PATH', data, 1), cmd)
- bb.note("Unpacking %s to %s/" % (file, os.getcwd()))
+ bb.note("Unpacking %s to %s/" % (base_path_out(file, data), base_path_out(os.getcwd(), data)))
ret = os.system(cmd)
os.chdir(save_cwd)
@@ -896,22 +905,11 @@ python base_eventhandler() {
from bb.event import Handled, NotHandled, getName
import os
- messages = {}
- messages["Completed"] = "completed"
- messages["Succeeded"] = "completed"
- messages["Started"] = "started"
- messages["Failed"] = "failed"
-
name = getName(e)
- msg = ""
- if name.startswith("Task"):
- msg += "package %s: task %s: " % (data.getVar("PF", e.data, 1), e.task)
- msg += messages.get(name[4:]) or name[4:]
- elif name.startswith("Build"):
- msg += "build %s: " % e.name
- msg += messages.get(name[5:]) or name[5:]
+ if name == "TaskCompleted":
+ msg = "package %s: task %s is complete." % (data.getVar("PF", e.data, 1), e.task)
elif name == "UnsatisfiedDep":
- msg += "package %s: dependency %s %s" % (e.pkg, e.dep, name[:-3].lower())
+ msg = "package %s: dependency %s %s" % (e.pkg, e.dep, name[:-3].lower())
else:
return NotHandled
diff --git a/classes/insane.bbclass b/classes/insane.bbclass
index cc881dc0d8..606270d62c 100644
--- a/classes/insane.bbclass
+++ b/classes/insane.bbclass
@@ -219,7 +219,7 @@ def package_qa_write_error(error_class, name, path, d):
def package_qa_handle_error(error_class, error_msg, name, path, d):
import bb
- bb.error("QA Issue: %s" % error_msg)
+ bb.error("QA Issue with %s: %s" % (name, error_msg))
package_qa_write_error(error_class, name, path, d)
return not package_qa_make_fatal_error(error_class, name, path, d)
@@ -499,7 +499,7 @@ def package_qa_check_rdepends(pkg, workdir, d):
# The PACKAGE FUNC to scan each package
python do_package_qa () {
import bb
- bb.note("DO PACKAGE QA")
+ bb.debug(2, "DO PACKAGE QA")
workdir = bb.data.getVar('WORKDIR', d, True)
packages = bb.data.getVar('PACKAGES',d, True)
@@ -515,10 +515,10 @@ python do_package_qa () {
rdepends_sane = True
for package in packages.split():
if bb.data.getVar('INSANE_SKIP_' + package, d, True):
- bb.note("Package: %s (skipped)" % package)
+ bb.note("package %s skipped" % package)
continue
- bb.note("Checking Package: %s" % package)
+ bb.debug(1, "Checking Package: %s" % package)
path = "%s/install/%s" % (workdir, package)
if not package_qa_walk(path, checks, package, d):
walk_sane = False
@@ -527,14 +527,14 @@ python do_package_qa () {
if not walk_sane or not rdepends_sane:
bb.fatal("QA run found fatal errors. Please consider fixing them.")
- bb.note("DONE with PACKAGE QA")
+ bb.debug(2, "DONE with PACKAGE QA")
}
# The Staging Func, to check all staging
addtask qa_staging after do_populate_staging before do_build
python do_qa_staging() {
- bb.note("QA checking staging")
+ bb.debug(2, "QA checking staging")
if not package_qa_check_staged(bb.data.getVar('STAGING_LIBDIR',d,True), d):
bb.fatal("QA staging was broken by the package built above")
@@ -543,7 +543,7 @@ python do_qa_staging() {
# Check broken config.log files
addtask qa_configure after do_configure before do_compile
python do_qa_configure() {
- bb.note("Checking sanity of the config.log file")
+ bb.debug(1, "Checking sanity of the config.log file")
import os
for root, dirs, files in os.walk(bb.data.getVar('WORKDIR', d, True)):
statement = "grep 'CROSS COMPILE Badness:' %s > /dev/null" % \
diff --git a/classes/package.bbclass b/classes/package.bbclass
index 8a77369682..3360dcb2de 100644
--- a/classes/package.bbclass
+++ b/classes/package.bbclass
@@ -166,7 +166,7 @@ def runstrip(file, d):
# If the file is in a .debug directory it was already stripped,
# don't do it again...
if os.path.dirname(file).endswith(".debug"):
- bb.note("Already ran strip")
+ bb.debug(2, "Already ran strip on %s" % file)
return 0
strip = bb.data.getVar("STRIP", d, 1)
@@ -564,7 +564,7 @@ python package_do_shlibs() {
exclude_shlibs = bb.data.getVar('EXCLUDE_FROM_SHLIBS', d, 0)
if exclude_shlibs:
- bb.note("not generating shlibs")
+ bb.debug(1, "not generating shlibs")
return
lib_re = re.compile("^lib.*\.so")
diff --git a/classes/packaged-staging.bbclass b/classes/packaged-staging.bbclass
index 849f60c500..bd7b9ea398 100644
--- a/classes/packaged-staging.bbclass
+++ b/classes/packaged-staging.bbclass
@@ -109,17 +109,17 @@ def pstage_cleanpackage(pkgname, d):
pstage_set_pkgmanager(d)
list_cmd = bb.data.getVar("PSTAGE_LIST_CMD", d, True)
- bb.note("Checking if staging package installed")
+ bb.debug(2, "Checking if staging package installed")
lf = bb.utils.lockfile(bb.data.expand("${STAGING_DIR}/staging.lock", d))
ret = os.system("PATH=\"%s\" %s | grep %s" % (path, list_cmd, pkgname))
if ret == 0:
- bb.note("Yes. Uninstalling package from staging...")
+ bb.debug(1, "Uninstalling package from staging...")
removecmd = bb.data.getVar("PSTAGE_REMOVE_CMD", d, 1)
ret = os.system("PATH=\"%s\" %s %s" % (path, removecmd, pkgname))
if ret != 0:
bb.note("Failure removing staging package")
else:
- bb.note("No. Manually removing any installed files")
+ bb.debug(1, "Manually removing any installed files from staging...")
pstage_manualclean("staging", "STAGING_DIR", d)
pstage_manualclean("cross", "CROSS_DIR", d)
pstage_manualclean("deploy", "DEPLOY_DIR", d)
@@ -135,7 +135,7 @@ do_clean_prepend() {
pstage_cleanpackage(removepkg, d)
stagepkg = bb.data.expand("${PSTAGE_PKG}", d)
- bb.note("Removing staging package %s" % stagepkg)
+ bb.note("Removing staging package %s" % base_path_out(stagepkg, d))
os.system('rm -rf ' + stagepkg)
}
diff --git a/classes/patch.bbclass b/classes/patch.bbclass
index 8d2bde0c4f..2f99e4cf30 100644
--- a/classes/patch.bbclass
+++ b/classes/patch.bbclass
@@ -527,7 +527,7 @@ python patch_do_patch() {
bb.note("Patch '%s' applies to earlier revisions" % pname)
continue
- bb.note("Applying patch '%s' (%s)" % (pname, unpacked))
+ bb.note("Applying patch '%s' (%s)" % (pname, base_path_out(unpacked, d)))
try:
patchset.Import({"file":unpacked, "remote":url, "strippath": pnum}, True)
except:
diff --git a/conf/checksums.ini b/conf/checksums.ini
index e42c704bd5..d8392d1507 100644
--- a/conf/checksums.ini
+++ b/conf/checksums.ini
@@ -11462,6 +11462,10 @@ sha256=a758c8f9b55d8288e2484dd1a2dcbd9c4ca3ca3052864a45cb104f613b7f712d
md5=b4f7ffcc294d41a6a4c40d6e44b7734d
sha256=280b34fefa12c3d7a3e432c3730fe5d0d56e8d169c28b695cce9ba6d8dbe6e38
+[http://www.kernel.org/pub/linux/kernel/people/horms/kexec-tools/kexec-tools-2.0.0.tar.gz]
+md5=bf87c53f36b4454ad3cc50aa9c72faf3
+sha256=f8244b8c4691faf0c9765ec3acba730a5620c8077f9bed667b9ac835dd959ba2
+
[http://projects.linuxtogo.org/frs/download.php/221/kexecboot-0.3.tar.gz]
md5=3c3b8edb739146183b3ddff3e0af5f1c
sha256=61a918b38a4b0b97e1469cbe3d9c4307af956bd95abec2067aa2fd278739cd96
@@ -23186,7 +23190,7 @@ sha256=c750c8180057385eaa0844f1148d6f0223b986da322773195eab44b33b97c19f
md5=b2c104938c1c3eb47e7605432bbd3157
sha256=c750c8180057385eaa0844f1148d6f0223b986da322773195eab44b33b97c19f
-[http://uim.freedesktop.org/releases/uim/stable/uim-1.3.1.tar.bz2]
+[http://uim.googlecode.com/files/uim-1.3.1.tar.bz2]
md5=2832e23d4778bbacbfa4b49bf642d667
sha256=ed2cfa15018a4fd2557e875f66fcb3f0b9dabe12fa0700aa2f11cca69c2cb256
diff --git a/conf/collections.inc b/conf/collections.inc
index abd9bd383b..0ef6e75ca9 100644
--- a/conf/collections.inc
+++ b/conf/collections.inc
@@ -1,9 +1,6 @@
# Take a list of directories in COLLECTIONS, in priority order (highest to
# lowest), and use those to populate BBFILES, BBFILE_COLLECTIONS,
-# BBFILE_PATTERN_*, and BBFILE_PRIORITY_*. By default, COLLECTIONS is
-# prepopulated with the locations the user specified in their BBPATH.
-# Note that it will not overwrite existing BBFILES or BBFILE_* variables, so
-# you'll need to remove those from your config in order to use this.
+# BBFILE_PATTERN_*, and BBFILE_PRIORITY_*.
#
# Specifying an archive in COLLECTIONS is also supported. Any archives of a
# supported format will be unpacked into COLLECTIONS_UNPACKDIR and used from
@@ -44,8 +41,8 @@ def collection_unpack(collection, name, d):
pass
else:
if oldmd5sum == md5sum:
- bb.debug(1, "Using existing %s for collection %s" % (outpath, name))
- return outpath
+ bb.note("Using existing %s for collection '%s'" % (outpath, name))
+ return outpath, False
bb.note("Removing old unpacked collection at %s" % outpath)
os.system("rm -rf %s" % outpath)
@@ -69,7 +66,7 @@ def collection_unpack(collection, name, d):
md5out = open(md5file, "w")
md5out.write(md5sum)
md5out.close()
- return outpath
+ return outpath, True
def collections_setup(d):
""" Populate collection and bbfiles metadata from the COLLECTIONS var. """
@@ -85,21 +82,30 @@ def collections_setup(d):
collections = d.getVar("COLLECTIONS", 1)
if not collections:
return
- globbed = (glob(path) for path in collections.split())
- collections = list(chain(*globbed))
+
+ bb.debug(1, "Processing COLLECTIONS (%s)" % collections)
+
+ globbed = []
+ for path in collections.split():
+ paths = glob(os.path.normpath(path))
+ if not paths:
+ bb.msg.warn(None, "No matches in filesystem for %s in COLLECTIONS" % path)
+ globbed += paths
+ collections = globbed
collectionmap = {}
namemap = {}
for collection in collections:
- if collection.endswith(os.sep):
- collection = collection[:-1]
basename = os.path.basename(collection).split(os.path.extsep)[0]
if namemap.get(basename):
basename = "%s-%s" % (basename, hash(collection))
namemap[basename] = collection
collectionmap[collection] = basename
- for (collection, priority) in izip(collectionmap, xrange(len(collections), 0, -1)):
+ unpackedthisexec = False
+ oldbbpath = d.getVar("BBPATH", 1)
+ bbpath = (oldbbpath or "").split(":")
+ for (collection, priority) in izip(collections, xrange(len(collections), 0, -1)):
if not os.path.exists(collection):
bb.fatal("Collection %s does not exist" % collection)
@@ -109,12 +115,18 @@ def collections_setup(d):
if not os.path.isdir(collection):
del collectionmap[collection]
- unpacked = collection_unpack(collection, name, d)
+ unpacked, unpackedthisexec = collection_unpack(collection, name, d)
if unpacked:
collection = unpacked
collectionmap[collection] = name
+ for dir in glob("%s/*/" % collection):
+ if not dir in bbpath:
+ bbpath.append(dir)
else:
bb.fatal("Unable to unpack collection %s" % collection)
+ else:
+ if not collection in bbpath:
+ bbpath.append(collection)
setifunset("BBFILE_PATTERN_%s" % name, "^%s/" % collection)
setifunset("BBFILE_PRIORITY_%s" % name, str(priority))
@@ -122,6 +134,21 @@ def collections_setup(d):
setifunset("BBFILE_COLLECTIONS", " ".join(collectionmap.values()))
setifunset("BBFILES", " ".join(collectionmap.keys()))
+ # Strip out the fallback bitbake.conf from BB_RUN_LOCATION
+ bbpath = [os.path.realpath(dir) for dir in bbpath if os.path.exists(dir)]
+ try:
+ bbpath.remove(os.path.realpath(bb.data.expand("${BB_RUN_LOCATION}/../share/bitbake", d)))
+ except (OSError, ValueError):
+ pass
+
+ from sets import Set
+ d.setVar("BBPATH", ":".join(bbpath))
+ if unpackedthisexec or Set(bbpath).symmetric_difference(Set(oldbbpath.split(":"))):
+ bb.debug(1, "Re-executing bitbake with BBPATH of %s" % d.getVar("BBPATH", 0))
+ import sys
+ os.environ["BBPATH"] = d.getVar("BBPATH", 0)
+ os.execvpe("bitbake", sys.argv, os.environ)
+
addhandler collections_eh
python collections_eh () {
from bb.event import getName
diff --git a/conf/distro/include/sane-srcdates.inc b/conf/distro/include/sane-srcdates.inc
index 8be99a363d..1be3dabc2b 100644
--- a/conf/distro/include/sane-srcdates.inc
+++ b/conf/distro/include/sane-srcdates.inc
@@ -39,6 +39,7 @@ SRCDATE_python-cairo ?= "20060814"
SRCDATE_qemu-native ?= "20070613"
SRCDATE_rdesktop ?= "20080917"
SRCDATE_roadster ?= "20060814"
+SRCDATE_rosetta ?= "20090514"
SRCDATE_sctzap ?= "20060814"
SRCDATE_tslib ?= "20051101"
SRCDATE_waimea ?= "20060814"
diff --git a/conf/machine/afeb9260-180.conf b/conf/machine/afeb9260-180.conf
new file mode 100644
index 0000000000..9c819310a1
--- /dev/null
+++ b/conf/machine/afeb9260-180.conf
@@ -0,0 +1,2 @@
+include conf/machine/include/afeb9260.inc
+
diff --git a/conf/machine/afeb9260.conf b/conf/machine/afeb9260.conf
index dc85cce102..32c87e16bc 100644
--- a/conf/machine/afeb9260.conf
+++ b/conf/machine/afeb9260.conf
@@ -1,26 +1 @@
-#@TYPE: Machine
-#@Name: Atmel AT91SAM9260EK Development Platform
-#@DESCRIPTION: Machine.inciguration for the at91sam9260ek development board with a at91sam9260 processor
-
-TARGET_ARCH = "arm"
-#PACKAGE_EXTRA_ARCHS = "armv4t armv5te"
-
-PREFERRED_PROVIDER_virtual/kernel = "linux"
-PREFERRED_PROVIDER_xserver = "xserver-kdrive"
-XSERVER = "xserver-kdrive-fbdev"
-
-KERNEL_IMAGETYPE = "uImage"
-
-#don't try to access tty1
-USE_VT = "0"
-
-MACHINE_FEATURES = "kernel26 ext2 usbhost usbgadget"
-EXTRA_IMAGEDEPENDS += "at91bootstrap u-boot"
-
-# used by sysvinit_2
-SERIAL_CONSOLE = "115200 ttyS0"
-IMAGE_FSTYPES ?= "jffs2"
-EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x20000 -n"
-
-require conf/machine/include/tune-arm926ejs.inc
-
+include conf/machine/include/afeb9260.inc
diff --git a/conf/machine/include/afeb9260.inc b/conf/machine/include/afeb9260.inc
new file mode 100644
index 0000000000..cb3ff9bbe9
--- /dev/null
+++ b/conf/machine/include/afeb9260.inc
@@ -0,0 +1,24 @@
+#@TYPE: Machine
+#@Name: AFEB9260 development board http://www.oshw.ru/
+
+TARGET_ARCH = "arm"
+#PACKAGE_EXTRA_ARCHS = "armv4t armv5te"
+
+PREFERRED_PROVIDER_virtual/kernel = "linux"
+PREFERRED_PROVIDER_xserver = "xserver-kdrive"
+XSERVER = "xserver-kdrive-fbdev"
+
+KERNEL_IMAGETYPE = "uImage"
+
+#don't try to access tty1
+USE_VT = "0"
+
+MACHINE_FEATURES = "kernel26 ext2 usbhost usbgadget"
+EXTRA_IMAGEDEPENDS += "at91bootstrap u-boot"
+
+# used by sysvinit_2
+SERIAL_CONSOLE = "115200 ttyS0"
+IMAGE_FSTYPES ?= "jffs2"
+EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x20000 -n"
+
+require conf/machine/include/tune-arm926ejs.inc
diff --git a/docs/usermanual/chapters/getting_oe.xml b/docs/usermanual/chapters/getting_oe.xml
index ed7fd11005..a04e233d36 100644
--- a/docs/usermanual/chapters/getting_oe.xml
+++ b/docs/usermanual/chapters/getting_oe.xml
@@ -105,7 +105,7 @@ $ <command>svn</command> co svn://svn.berlios.de/bitbake/branches/bitbake-1.8/ b
<para>Once you have installed Git, checkout the OpenEmbedded repository:
<screen>
$ cd $OEBASE
-$ git clone git://git.openembedded.net/openembedded</screen>
+$ git clone git://git.openembedded.org/openembedded</screen>
The <literal>$OEBASE/openembedded/</literal> directory should now
exist.</para>
</section>
diff --git a/recipes/dvd+rw-tools/dvd+rw-tools_7.1.bb b/recipes/dvd+rw-tools/dvd+rw-tools_7.1.bb
new file mode 100644
index 0000000000..69a12fbab0
--- /dev/null
+++ b/recipes/dvd+rw-tools/dvd+rw-tools_7.1.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "tools to write DVDs"
+PR = "r2"
+DEPENDS += "m4-native"
+RDEPENDS += "cdrkit"
+SRC_URI = "http://fy.chalmers.se/~appro/linux/DVD+RW/tools/dvd+rw-tools-${PV}.tar.gz \
+ file://01-growisofs-pioneer.dpatch;patch=1 \
+ file://02-growisofs-manpage.dpatch;patch=1 \
+ file://03-growisofs-dvd-dl.dpatch;patch=1 \
+ file://04-kfreebsd.dpatch;patch=1 \
+ file://07-beeping.dpatch;patch=1 \
+ file://08-cdrkit-code.dpatch;patch=1 \
+ file://09-cdrkit-doc.dpatch;patch=1 \
+ file://10-includes.dpatch;patch=1 \
+ "
+
+do_configure() {
+ m4 -DOS=Linux Makefile.m4 >Makefile
+}
+
+do_compile() {
+ oe_runmake CC="${CC}" CXX="${CXX}" dvd+rw-tools
+}
+
+do_install() {
+ install -d ${D}/usr/bin
+ install -m 755 ${S}/growisofs ${D}/usr/bin
+ install -m 755 ${S}/dvd+rw-booktype ${D}/usr/bin
+ install -m 755 ${S}/dvd+rw-format ${D}/usr/bin
+ install -m 755 ${S}/dvd+rw-mediainfo ${D}/usr/bin
+ install -m 755 ${S}/dvd-ram-control ${D}/usr/bin
+}
+
diff --git a/recipes/dvd+rw-tools/files/01-growisofs-pioneer.dpatch b/recipes/dvd+rw-tools/files/01-growisofs-pioneer.dpatch
new file mode 100644
index 0000000000..adaaad4f7e
--- /dev/null
+++ b/recipes/dvd+rw-tools/files/01-growisofs-pioneer.dpatch
@@ -0,0 +1,30 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 01-growisofs-pioneer.dpatch
+##
+## DP: Fixes to fail closing session on some PIONEER DVD-RW drives
+
+@DPATCH@
+
+diff -Naurp dvd+rw-tools-7.1.orig/growisofs_mmc.cpp dvd+rw-tools-7.1/growisofs_mmc.cpp
+--- dvd+rw-tools-7.1.orig/growisofs_mmc.cpp 2008-03-04 17:47:49.000000000 +0000
++++ dvd+rw-tools-7.1/growisofs_mmc.cpp 2008-04-01 09:01:20.000000000 +0000
+@@ -1743,8 +1743,17 @@ void plus_rw_finalize ()
+ cmd[1] = 0x01; // "IMMED"
+ cmd[2] = 0x02; // "Close session"
+ cmd[9] = 0;
+- if ((err=cmd.transport()))
+- sperror ("CLOSE SESSION",err);
++
++ // it seems, that pioneer is a bit crappy
++ while (err=cmd.transport()) {
++ if (SK(err)==0x2 && ASC(err)==0x04 && ASCQ(err)==0x07) {
++ sperror ("CLOSE SESSION (but try to continue)",err);
++ usleep(10000);
++ } else {
++ sperror ("CLOSE SESSION",err);
++ break;
++ }
++ }
+
+ if (wait_for_unit (cmd)) break;
+
diff --git a/recipes/dvd+rw-tools/files/02-growisofs-manpage.dpatch b/recipes/dvd+rw-tools/files/02-growisofs-manpage.dpatch
new file mode 100644
index 0000000000..9a3eab3351
--- /dev/null
+++ b/recipes/dvd+rw-tools/files/02-growisofs-manpage.dpatch
@@ -0,0 +1,16 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 02-growisofs-manpage.dpatch by Daniel Baumann <daniel@debian.org>
+##
+## DP: Fix manpage section
+
+@DPATCH@
+
+diff -Naurp dvd+rw-tools-7.1.orig/growisofs.1 dvd+rw-tools-7.1/growisofs.1
+--- dvd+rw-tools-7.1.orig/growisofs.1 2008-03-01 10:40:06.000000000 +0000
++++ dvd+rw-tools-7.1/growisofs.1 2008-04-01 09:02:23.000000000 +0000
+@@ -1,4 +1,4 @@
+-.TH GROWISOFS 1m "1 Mar 2008" "growisofs 7.1"
++.TH GROWISOFS 1 "1 Mar 2008" "growisofs 7.1"
+ .SH NAME
+ growisofs \- combined mkisofs frontend/DVD recording program.
+ .SH SYNOPSIS
diff --git a/recipes/dvd+rw-tools/files/03-growisofs-dvd-dl.dpatch b/recipes/dvd+rw-tools/files/03-growisofs-dvd-dl.dpatch
new file mode 100644
index 0000000000..3039a9fcd1
--- /dev/null
+++ b/recipes/dvd+rw-tools/files/03-growisofs-dvd-dl.dpatch
@@ -0,0 +1,21 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 03-growisofs-dvd-dl.dpatch by <joeshaw@suse.de>
+##
+## DP: Don't abort when a DVD-DL disk is underful (Closes: #340698).
+
+@DPATCH@
+
+diff -Naurp dvd+rw-tools-7.1.orig/growisofs_mmc.cpp dvd+rw-tools-7.1/growisofs_mmc.cpp
+--- dvd+rw-tools-7.1.orig/growisofs_mmc.cpp 2008-04-01 09:01:20.000000000 +0000
++++ dvd+rw-tools-7.1/growisofs_mmc.cpp 2008-04-01 09:02:59.000000000 +0000
+@@ -1640,9 +1640,7 @@ static void plus_r_dl_split (Scsi_Comman
+ blocks += 15, blocks &= ~15;
+
+ if (blocks <= split)
+- fprintf (stderr,":-( more than 50%% of space will be *wasted*!\n"
+- " use single layer media for this recording\n"),
+- exit (FATAL_START(EMEDIUMTYPE));
++ fprintf (stderr,":-? more than 50%% of space will be *wasted*!\n");
+
+ blocks /= 16;
+ blocks += 1;
diff --git a/recipes/dvd+rw-tools/files/04-kfreebsd.dpatch b/recipes/dvd+rw-tools/files/04-kfreebsd.dpatch
new file mode 100644
index 0000000000..acc76b39f1
--- /dev/null
+++ b/recipes/dvd+rw-tools/files/04-kfreebsd.dpatch
@@ -0,0 +1,78 @@
+#!/bin/sh /usr/share/dpatch/dpatch-run
+## 03-kfreebsd.dpatch by Petr Salinger <Petr.Salinger@seznam.cz>
+##
+## DP: FTBFS on GNU/kFreeBSD (Closes: #374841).
+
+@DPATCH@
+
+diff -Naurp dvd+rw-tools-7.1.orig/Makefile.m4 dvd+rw-tools-7.1/Makefile.m4
+--- dvd+rw-tools-7.1.orig/Makefile.m4 2008-03-02 17:17:09.000000000 +0000
++++ dvd+rw-tools-7.1/Makefile.m4 2008-04-01 09:03:41.000000000 +0000
+@@ -14,6 +14,7 @@ ifelse(substr(OS,0,7),[MINGW32],[define(
+ ifelse(OS,NetBSD,[define([OS],[BSD])CXXFLAGS+=-D__unix])
+ ifelse(OS,OpenBSD,[define([OS],[BSD])])
+ ifelse(OS,FreeBSD,[define([OS],[BSD])LDLIBS=-lcam])
++ifelse(OS,GNU/kFreeBSD,[define([OS],[Linux])LDLIBS=-lcam])
+ ifelse(OS,IRIX64,[define([OS],[IRIX])])
+
+ ifelse(OS,Darwin,[
+@@ -188,7 +189,7 @@ CC =gcc
+ CFLAGS +=$(WARN) -O2 -D_REENTRANT