cdrtools: patch cdrecord to use B_CLONABLE_AREA (#6458)

as suggested by waddlesplash, thanks!
This commit is contained in:
humdinger
2021-12-03 20:37:13 +01:00
committed by GitHub
parent 33360ec80d
commit f7a634a6ad
2 changed files with 37 additions and 1 deletions

View File

@@ -20,13 +20,14 @@ COPYRIGHT="1995-2016 Joerg Schilling (cdrecord, readcd)
Pearson, 2006 HELIOS Software GmbH (mkisofs)"
LICENSE="GNU GPL v2
CDDL v1"
REVISION="1"
REVISION="2"
SOURCE_URI="http://downloads.sf.net/cdrtools/cdrtools-${portVersion/\~/}.tar.bz2"
CHECKSUM_SHA256="aa28438f458ef3f314b79f2029db27679dae1d5ffe1569b6de57742511915e81"
SOURCE_DIR="cdrtools-${portVersion%\~*}"
PATCHES="
cdrtools-${portVersion%\~*}-Defaults.haiku.patch
cdrtools-${portVersion%\~*}-scsi-beos.c.patch
cdrtools-${portVersion%\~*}-clonable-area.patch
"
ARCHITECTURES="all ?arm ?ppc"

View File

@@ -0,0 +1,35 @@
diff --git a/cdda2wav/semshm.c b/cdda2wav/semshm.c
index 36f75c8..474b960 100644
--- a/cdda2wav/semshm.c
+++ b/cdda2wav/semshm.c
@@ -557,7 +557,7 @@ shm_request(size, memptr)
B_ANY_ADDRESS, /* type of address constraint */
size, /* size in bytes (multiple of pagesize) */
B_NO_LOCK, /* B_FULL_LOCK, */ /* memory locking */
- B_READ_AREA | B_WRITE_AREA); /* read and write permissions */
+ B_READ_AREA | B_WRITE_AREA | B_CLONEABLE_AREA); /* read and write permissions */
if (aid < B_OK)
comerrno(aid, _("create_area() failed\n"));
diff --git a/cdrecord/fifo.c b/cdrecord/fifo.c
index 95e4846..3216c87 100644
--- a/cdrecord/fifo.c
+++ b/cdrecord/fifo.c
@@ -366,7 +366,7 @@ mkbeosshm(size)
faio_aid = create_area(faio_name, &faio_addr,
B_ANY_ADDRESS,
size,
- B_NO_LOCK, B_READ_AREA|B_WRITE_AREA);
+ B_NO_LOCK, B_READ_AREA|B_WRITE_AREA|B_CLONEABLE_AREA);
if (faio_addr == NULL) {
comerrno(faio_aid,
_("Cannot get create_area for %d Bytes FIFO.\n"), size);
@@ -390,7 +390,7 @@ beosshm_child()
* using the pointer in the child. So we noe use B_EXACT_ADDRESS.
*/
faio_aid = clone_area(faio_name, &faio_addr,
- B_EXACT_ADDRESS, B_READ_AREA|B_WRITE_AREA,
+ B_EXACT_ADDRESS, B_READ_AREA|B_WRITE_AREA|B_CLONEABLE_AREA,
faio_aid);
if (bufbase != faio_addr) {
comerrno(EX_BAD, _("Panic FIFO addr.\n"));