commit:     6bf287e85f0806886c6fbee73e9afca97440ffe4
Author:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Sat Apr  9 16:34:18 2016 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Apr  9 16:34:39 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6bf287e8

app-cdr/cdrtools: avoid clash with clone() on uclibc, bug #486782

Package-Manager: portage-2.2.26

 app-cdr/cdrtools/cdrtools-3.02_alpha06.ebuild      |  6 ++
 .../cdrtools/files/cdrtools-fix-clone-uclibc.patch | 69 ++++++++++++++++++++++
 2 files changed, 75 insertions(+)

diff --git a/app-cdr/cdrtools/cdrtools-3.02_alpha06.ebuild 
b/app-cdr/cdrtools/cdrtools-3.02_alpha06.ebuild
index 8dd03a2..abe77bd 100644
--- a/app-cdr/cdrtools/cdrtools-3.02_alpha06.ebuild
+++ b/app-cdr/cdrtools/cdrtools-3.02_alpha06.ebuild
@@ -43,6 +43,12 @@ cdrtools_os() {
 src_prepare() {
        gnuconfig_update
 
+       # This fixes a clash with clone() on uclibc.  Upstream isn't
+       # going to include this so let's try to carry it forward.
+       # Contact me if it needs updating.  Bug #486782.
+       # Anthony G. Basile <bluen...@gentoo.org>.
+       use elibc_uclibc && epatch "${FILESDIR}"/${PN}-fix-clone-uclibc.patch
+
        # Remove profiled make files.
        find -name '*_p.mk' -delete
 

diff --git a/app-cdr/cdrtools/files/cdrtools-fix-clone-uclibc.patch 
b/app-cdr/cdrtools/files/cdrtools-fix-clone-uclibc.patch
new file mode 100644
index 0000000..9ffd28a
--- /dev/null
+++ b/app-cdr/cdrtools/files/cdrtools-fix-clone-uclibc.patch
@@ -0,0 +1,69 @@
+diff -Naur cdrtools-3.02.orig/readcd/readcd.c cdrtools-3.02/readcd/readcd.c
+--- cdrtools-3.02.orig/readcd/readcd.c 2016-01-24 11:15:19.000000000 -0500
++++ cdrtools-3.02/readcd/readcd.c      2016-04-09 12:29:54.727635502 -0400
+@@ -257,7 +257,7 @@
+ BOOL  pifscan;
+ BOOL  plot;
+ BOOL  fulltoc;
+-BOOL  clone;
++BOOL  clonetoc;
+ BOOL  edc_corr;
+ BOOL  noerror;
+ BOOL  nocorr;
+@@ -294,7 +294,7 @@
+       error(_("\t-plot                Print data suitable for gnuplot\n"));
+ #ifdef        CLONE_WRITE
+       error(_("\t-fulltoc     Retrieve the full TOC\n"));
+-      error(_("\t-clone               Retrieve the full TOC and all data\n"));
++      error(_("\t-clonetoc            Retrieve the full TOC and all data\n"));
+       error(_("\t-edc-corr    Try to do user level Reed Solomon repair 
(experimental)\n"));
+ #endif
+       error(_("\ttimeout=#    set the default SCSI command timeout to #.\n"));
+@@ -320,7 +320,7 @@
+ }
+ 
+ /* CSTYLED */
+-char  opts[]   = 
"debug#,d+,kdebug#,kd#,timeout#,quiet,q,verbose+,v+,Verbose+,V+,x+,xd#,silent,s,help,h,version,scanbus,dev*,scgopts*,sectors*,w,c2scan,cxscan,pi8scan,pifscan,plot,fulltoc,clone,edc-corr,noerror,nocorr,notrunc,retries#,factor,f*,speed#,ts&,overhead,meshpoints#";
++char  opts[]   = 
"debug#,d+,kdebug#,kd#,timeout#,quiet,q,verbose+,v+,Verbose+,V+,x+,xd#,silent,s,help,h,version,scanbus,dev*,scgopts*,sectors*,w,c2scan,cxscan,pi8scan,pifscan,plot,fulltoc,clonetoc,edc-corr,noerror,nocorr,notrunc,retries#,factor,f*,speed#,ts&,overhead,meshpoints#";
+ 
+ EXPORT int
+ main(ac, av)
+@@ -397,7 +397,7 @@
+                       &scanbus, &dev, &scgopts, &sectors, &do_write,
+                       &c2scan, &cxscan, &pi8scan, &pifscan,
+                       &plot,
+-                      &fulltoc, &clone,
++                      &fulltoc, &clonetoc,
+                       &edc_corr,
+                       &noerror, &nocorr,
+                       &notrunc, &retries, &do_factor, &filename,
+@@ -679,7 +679,7 @@
+ 
+       if (filename || sectors || c2scan || cxscan || pi8scan || pifscan ||
+           meshpoints || fulltoc ||
+-          clone || edc_corr) {
++          clonetoc || edc_corr) {
+               dorw(scgp, filename, sectors);
+       } else {
+               doit(scgp);
+@@ -894,9 +894,9 @@
+               if (params.name == NULL)
+                       params.name = "/dev/null";
+               read_ftoc(scgp, &params, FALSE);
+-      } else if (clone || edc_corr) {
++      } else if (clonetoc || edc_corr) {
+               if (!is_mmc(scgp, NULL, NULL))
+-                      comerrno(EX_BAD, _("Unsupported device for clone 
mode.\n"));
++                      comerrno(EX_BAD, _("Unsupported device for clonetoc 
mode.\n"));
+               if (!edc_corr)
+                       noerror = TRUE;
+               if (retries == MAX_RETRY)
+@@ -904,7 +904,7 @@
+               if (params.name == NULL)
+                       params.name = "/dev/null";
+ 
+-              if (clone)
++              if (clonetoc)
+               if (read_ftoc(scgp, &params, TRUE) < 0)
+                       comerrno(EX_BAD, _("Read fulltoc problems.\n"));
+               readcd_disk(scgp, &params);

Reply via email to