Skip to content

Commit

Permalink
app-cdr/xcdroast: fix for the bug 345337
Browse files Browse the repository at this point in the history
- Replace suid helper permissions from 4755 to 4711 as suggested by
Faustus in comment 1.
- Port ebuild to EAPI=6.
- Apply upstream patch for progress bar with modern cdrtools.

Package-Manager: portage-2.3.0
Signed-off-by: Andrew Savchenko <[email protected]>
  • Loading branch information
bircoph committed Jul 7, 2016
1 parent b107563 commit 4755d71
Show file tree
Hide file tree
Showing 5 changed files with 157 additions and 4 deletions.
4 changes: 2 additions & 2 deletions app-cdr/xcdroast/files/fix_cddb_hidden_tracks.patch
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--- src/io.c
+++ src/io.c
--- a/src/io.c
+++ b/src/io.c
@@ -2665,6 +2665,8 @@
g_error("Unexpected output in cdda2wav toc-output\n");
}
Expand Down
4 changes: 2 additions & 2 deletions app-cdr/xcdroast/files/io_compile.patch
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--- src/io.c.org 2009-02-24 09:38:27.000000000 +0100
+++ src/io.c 2009-02-24 09:45:18.000000000 +0100
--- a/src/io.c.org 2009-02-24 09:38:27.000000000 +0100
+++ b/src/io.c 2009-02-24 09:45:18.000000000 +0100
@@ -1903,7 +1903,8 @@
}

Expand Down
39 changes: 39 additions & 0 deletions app-cdr/xcdroast/files/io_progressbar_fix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
--- a/src/io.c.last So. Jan 24 19:18:45 2010
+++ b/src/io.c Fr. Jul 16 10:59:32 2010
@@ -3202,6 +3202,8 @@
close(fd2[1]);
}

+ g_setenv("LC_ALL", "C", TRUE);
+
/* startup child */
if (execl("/bin/sh", "sh", "-c", cmd ,(void *)NULL) < 0) {
g_error("execl error\n");
@@ -3402,6 +3404,8 @@
close(fd3[1]);
}

+ g_setenv("LC_ALL", "C", TRUE);
+
/* startup child */
if (execv(callpath,arglist) < 0) {
g_error("execv error\n");
@@ -3506,6 +3510,8 @@
close(pipefd[1]);
}

+ g_setenv("LC_ALL", "C", TRUE);
+
/* startup first child */
if (execv(callpath,arglist) < 0) {
g_error("execv error\n");
@@ -3568,6 +3574,8 @@
close(fd3[1]);
}

+ g_setenv("LC_ALL", "C", TRUE);
+
/* startup second child */
if (execv(callpath2,arglist2) < 0) {
g_error("execv error\n");

36 changes: 36 additions & 0 deletions app-cdr/xcdroast/files/suid-perms.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
diff -Naurd xcdroast-0.98alpha16.orig/doc/README.nonroot xcdroast-0.98alpha16/doc/README.nonroot
--- xcdroast-0.98alpha16.orig/doc/README.nonroot 2003-10-27 23:37:40.000000000 +0300
+++ xcdroast-0.98alpha16/doc/README.nonroot 2016-07-07 21:32:35.006587826 +0300
@@ -72,7 +72,7 @@
Please change now to the corresponding directory and enter:

chown root xcdrwrap
- chmod 4755 xcdrwrap
+ chmod 4711 xcdrwrap


Usage of the non-root-mode
diff -Naurd xcdroast-0.98alpha16.orig/src/init.c xcdroast-0.98alpha16/src/init.c
--- xcdroast-0.98alpha16.orig/src/init.c 2008-08-20 20:20:23.000000000 +0400
+++ xcdroast-0.98alpha16/src/init.c 2016-07-07 21:32:35.006587826 +0300
@@ -670,7 +670,7 @@

/* check file mode of wrapper */
if (stat(tmp,&buf) == 0) {
- if (buf.st_mode != 0104755) {
+ if (buf.st_mode != 0104711) {
dodebug(3,"Note: %s wrong modes set (0%o)\n", tmp, buf.st_mode);
nofail = 0;
}
diff -Naurd xcdroast-0.98alpha16.orig/src/io.c xcdroast-0.98alpha16/src/io.c
--- xcdroast-0.98alpha16.orig/src/io.c 2008-08-21 17:11:40.000000000 +0400
+++ xcdroast-0.98alpha16/src/io.c 2016-07-07 21:32:35.003587931 +0300
@@ -10380,7 +10380,7 @@
strcat(ret,tmp);
#endif
/* old nonroot mode - 2755 */
- g_snprintf(tmp,MAXLINE,"%s 4755 %s\n", cmd_chmod, bin);
+ g_snprintf(tmp,MAXLINE,"%s 4711 %s\n", cmd_chmod, bin);
strcat(ret,tmp);


78 changes: 78 additions & 0 deletions app-cdr/xcdroast/xcdroast-0.98_alpha16-r2.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=6
inherit gnome2-utils

DESCRIPTION="Lightweight cdrtools front-end for CD and DVD writing"
HOMEPAGE="http://www.xcdroast.org/"
SRC_URI="mirror://sourceforge/xcdroast/${P/_/}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~sparc ~x86"
IUSE="nls"

RDEPEND=">=x11-libs/gtk+-2:2
app-cdr/cdrtools"
DEPEND="${RDEPEND}
sys-devel/gettext
virtual/pkgconfig"

S=${WORKDIR}/${P/_/}

PATCHES=(
"${FILESDIR}"/cdda2wav_version.patch
"${FILESDIR}"/fix_cddb_hidden_tracks.patch
"${FILESDIR}"/io_compile.patch
"${FILESDIR}"/io_progressbar_fix.patch
"${FILESDIR}"/suid-perms.patch
)

DOCS=( AUTHORS ChangeLog README doc )
src_prepare() {
default

# fix Norwegian locales
mv po/{no,nb}.po || die
mv po/{no,nb}.gmo || die
sed -i -e 's/no/nb/' po/LINGUAS || die
}

src_configure() {
econf \
$(use_enable nls) \
--enable-gtk2 \
--disable-dependency-tracking \
--mandir=/usr/share/man \
--sysconfdir=/etc
}

src_compile() {
emake PREFIX=/usr
}

src_install() {
emake PREFIX=/usr DESTDIR="${D}" install

insinto /usr/share/doc/${PF}/manual
doins doc/manual/xcdroast-manual.pdf

insinto /usr/share/icons/hicolor/48x48/apps
newins xpms/xcdricon.xpm xcdroast.xpm

make_desktop_entry xcdroast "X-CD-Roast" xcdroast "AudioVideo;DiscBurning"
}

pkg_preinst() {
gnome2_icon_savelist
}

pkg_postinst() {
gnome2_icon_cache_update
}

pkg_postrm() {
gnome2_icon_cache_update
}

0 comments on commit 4755d71

Please sign in to comment.