Группа :: Архивирование/Создание CD
Пакет: k3b
Главная Изменения Спек Патчи Загрузить Bugs and FR
Патч: k3b-0.12.10-messages-alt.patch
diff -U 10 -Nr k3b-0.12.10.old/libk3b/projects/k3bcdrecordwriter.cpp k3b-0.12.10/libk3b/projects/k3bcdrecordwriter.cpp
--- k3b-0.12.10.old/libk3b/projects/k3bcdrecordwriter.cpp 2005-12-15 16:09:11 +0300
+++ k3b-0.12.10/libk3b/projects/k3bcdrecordwriter.cpp 2005-12-20 13:08:42 +0300
@@ -694,21 +694,21 @@
emit infoMessage( i18n("Unable to open new session."), ERROR );
emit infoMessage( i18n("Probably a problem with the medium."), ERROR );
break;
case CANNOT_FIXATE_DISK:
emit infoMessage( i18n("The disk might still be readable."), ERROR );
if( m_writingMode == K3b::TAO && burnDevice()->dao() )
emit infoMessage( i18n("Try DAO writing mode."), ERROR );
break;
case PERMISSION_DENIED:
emit infoMessage( i18n("%1 has no permission to open the device.").arg("Cdrecord"), ERROR );
- emit infoMessage( i18n("You may use K3bsetup2 to solve this problem."), ERROR );
+ emit infoMessage( i18n("Become a member of group cdwriter."), ERROR );
break;
case BUFFER_UNDERRUN:
emit infoMessage( i18n("Probably a buffer underrun occurred."), ERROR );
if( !d->usingBurnfree && burnDevice()->burnproof() )
emit infoMessage( i18n("Please enable Burnfree or choose a lower burning speed."), ERROR );
else
emit infoMessage( i18n("Please choose a lower burning speed."), ERROR );
break;
case HIGH_SPEED_MEDIUM:
emit infoMessage( i18n("Found a high-speed medium not suitable for the writer being used."), ERROR );
@@ -723,21 +723,21 @@
emit infoMessage( i18n("Another application is blocking the device (most likely automounting)."), ERROR );
break;
case WRITE_ERROR:
emit infoMessage( i18n("A write error occurred."), ERROR );
if( m_writingMode == K3b::DAO )
emit infoMessage( i18n("Sometimes using TAO writing mode solves this issue."), ERROR );
break;
case UNKNOWN:
if( p->exitStatus() == 12 && K3b::kernelVersion() >= K3bVersion( 2, 6, 8 ) && m_cdrecordBinObject->hasFeature( "suidroot" ) ) {
emit infoMessage( i18n("Since kernel version 2.6.8 cdrecord cannot use SCSI transport when running suid root anymore."), ERROR );
- emit infoMessage( i18n("You may use K3bSetup to solve this problem or remove the suid bit manually."), ERROR );
+ emit infoMessage( i18n("Remove the suid bit from cdrecord's file."), ERROR );
}
else if( !wasSourceUnreadable() ) {
emit infoMessage( i18n("%1 returned an unknown error (code %2).")
.arg(m_cdrecordBinObject->name()).arg(p->exitStatus()),
K3bJob::ERROR );
emit infoMessage( strerror(p->exitStatus()), K3bJob::ERROR );
if( p->exitStatus() >= 254 && m_writingMode == K3b::DAO ) {
emit infoMessage( i18n("Sometimes using TAO writing mode solves this issue."), ERROR );
}
diff -U 10 -Nr k3b-0.12.10.old/src/k3bsystemproblemdialog.cpp k3b-0.12.10/src/k3bsystemproblemdialog.cpp
--- k3b-0.12.10.old/src/k3bsystemproblemdialog.cpp 2005-12-15 16:08:58 +0300
+++ k3b-0.12.10/src/k3bsystemproblemdialog.cpp 2005-12-20 13:20:53 +0300
@@ -92,24 +92,26 @@
pixmapLabelRight->setPixmap( theme->pixmap( K3bTheme::MEDIA_NONE ) );
labelTitle->setPaletteBackgroundColor( theme->backgroundColor() );
labelTitle->setPaletteForegroundColor( theme->foregroundColor() );
}
m_closeButton = new QPushButton( i18n("Close"), this );
connect( m_closeButton, SIGNAL(clicked()), this, SLOT(close()) );
m_checkDontShowAgain = new QCheckBox( i18n("Don't show again"), this );
+/*
#ifdef HAVE_K3BSETUP
m_k3bsetupButton = new QPushButton( i18n("Start K3bSetup2"), this );
connect( m_k3bsetupButton, SIGNAL(clicked()), this, SLOT(slotK3bSetup()) );
#endif
+*/
// setup the problem view
// ---------------------------------------------------------------------------------------------------
KTextEdit* view = new KTextEdit( this );
view->setReadOnly(true);
view->setTextFormat(RichText);
// layout everything
QGridLayout* grid = new QGridLayout( this );
@@ -169,94 +171,107 @@
void K3bSystemProblemDialog::checkSystem( QWidget* parent,
const char* name )
{
QValueList<K3bSystemProblem> problems;
// 1. cdrecord, cdrdao
if( !k3bcore->externalBinManager()->foundBin( "cdrecord" ) ) {
problems.append( K3bSystemProblem( K3bSystemProblem::CRITICAL,
i18n("Unable to find %1 executable").arg("cdrecord"),
i18n("K3b uses cdrecord to actually write CDs."),
- i18n("Install the cdrtools package which contains "
- "cdrecord."),
+ i18n("Install the cdrecord-classic package and use ALT Control Center "
+ "or try 'control cdrecord-classic public' in a shell as user "
+ "'root'. Remember that only users in group 'cdwriter' "
+ "will be allowed to execute cdrecord."),
false ) );
}
else {
if( k3bcore->externalBinManager()->binObject( "cdrecord" )->version < K3bVersion( 2, 0 ) ) {
problems.append( K3bSystemProblem( K3bSystemProblem::NON_CRITICAL,
i18n("Used %1 version %2 is outdated").arg("cdrecord").arg(k3bcore->externalBinManager()->binObject( "cdrecord" )->version),
i18n("Although K3b supports all cdrtools versions since "
"1.10 it is highly recommended to at least use "
"version 2.0."),
i18n("Install a more recent version of the cdrtools."),
false ) );
}
#ifdef Q_OS_LINUX
//
// Since kernel 2.6.8 older cdrecord versions are not able to use the SCSI subsystem when running suid root anymore
// So for we ignore the suid root issue with kernel >= 2.6.8 and cdrecord < 2.01.01a02
//
+/*
if( K3b::simpleKernelVersion() >= K3bVersion( 2, 6, 8 ) &&
k3bcore->externalBinManager()->binObject( "cdrecord" )->version < K3bVersion( 2, 1, 1, "a02" ) ) {
if( k3bcore->externalBinManager()->binObject( "cdrecord" )->hasFeature( "suidroot" ) )
problems.append( K3bSystemProblem( K3bSystemProblem::CRITICAL,
i18n("%1 will be run with root privileges on kernel >= 2.6.8").arg("cdrecord <= 2.01.01a02"),
i18n("Since Linux kernel 2.6.8 %1 will not work when run suid "
"root for security reasons anymore.").arg("cdrecord <= 2.01.01a02"),
i18n("Use K3bSetup to solve this problem."),
true ) );
}
- else if( !k3bcore->externalBinManager()->binObject( "cdrecord" )->hasFeature( "suidroot" ) && getuid() != 0 ) // not root
+*/
+ if( !k3bcore->externalBinManager()->binObject( "cdrecord" )->hasFeature( "suidroot" ) && getuid() != 0 ) // not root
problems.append( K3bSystemProblem( K3bSystemProblem::CRITICAL,
i18n("%1 will be run without root privileges").arg("cdrecord"),
i18n("It is highly recommended to configure cdrecord "
"to run with root privileges. Only then cdrecord "
"runs with high priority which increases the overall "
"stability of the burning process. Apart from that "
"it allows changing the size of the used burning buffer. "
- "A lot of user problems could be solved this way. This is also "
- "true when using SuSE's resmgr."),
- i18n("Use K3bSetup to solve this problem."),
+ "A lot of user problems could be solved this way."),
+ i18n("Use ALT Control Center or try 'control cdrecord-classic public' "
+ "in a shell as user 'root'. Remember that only users in "
+ "group 'cdwriter' will be allowed to run cdrecord."),
true ) );
#endif
}
if( !k3bcore->externalBinManager()->foundBin( "cdrdao" ) ) {
problems.append( K3bSystemProblem( K3bSystemProblem::CRITICAL,
i18n("Unable to find %1 executable").arg("cdrdao"),
i18n("K3b uses cdrdao to actually write CDs."),
- i18n("Install the cdrdao package."),
+ i18n("Install the cdrdao package and use ALT Control Center "
+ "or try 'control cdrdao public' in a shell as user 'root'. "
+ "Remember that only users in group 'cdwriter' will "
+ "be allowed to run cdrdao."),
false ) );
}
else {
#ifdef Q_OS_LINUX
if( !k3bcore->externalBinManager()->binObject( "cdrdao" )->hasFeature( "suidroot" ) && getuid() != 0 )
problems.append( K3bSystemProblem( K3bSystemProblem::CRITICAL,
i18n("%1 will be run without root privileges").arg("cdrdao"),
i18n("It is highly recommended to configure cdrdao "
"to run with root privileges to increase the "
"overall stability of the burning process."),
- i18n("Use K3bSetup to solve this problem."),
+ i18n("Use ALT Control Center or try 'control cdrdao public' "
+ "in a shell as user 'root'. Remember that only users in "
+ "group 'cdwriter' will be allowed to run cdrdao."),
true ) );
#endif
}
if( !k3bcore->deviceManager()->dvdWriter().isEmpty() ) {
if( !k3bcore->externalBinManager()->foundBin( "growisofs" ) ) {
problems.append( K3bSystemProblem( K3bSystemProblem::CRITICAL,
i18n("Unable to find %1 executable").arg("growisofs"),
i18n("K3b uses growisofs to actually write dvds. "
"Without growisofs you won't be able to write dvds. "
"Make sure to install at least version 5.10."),
- i18n("Install the dvd+rw-tools package."),
+ i18n("Install the dvd+rw-tools package and use ALT Control Center "
+ "or try 'control growisofs public' in a shell as user 'root'. "
+ "Remember that only users in group 'cdwriter' will "
+ "be allowed to run growisofs."),
false ) );
}
else {
if( k3bcore->externalBinManager()->binObject( "growisofs" )->version < K3bVersion( 5, 10 ) ) {
problems.append( K3bSystemProblem( K3bSystemProblem::CRITICAL,
i18n("Used %1 version %2 is outdated").arg("growisofs").arg(k3bcore->externalBinManager()->binObject( "growisofs" )->version),
i18n("K3b needs at least growisofs version 5.10 to write dvds. "
"All older versions will not work and K3b will refuse to use them."),
i18n("Install a more recent version of %1.").arg("growisofs"),
false ) );
@@ -268,21 +283,24 @@
"version older than 5.12."),
i18n("Install a more recent version of growisofs."),
false ) );
}
}
if( !k3bcore->externalBinManager()->foundBin( "dvd+rw-format" ) ) {
problems.append( K3bSystemProblem( K3bSystemProblem::CRITICAL,
i18n("Unable to find %1 executable").arg("dvd+rw-format"),
i18n("K3b uses dvd+rw-format to format DVD-RWs and DVD+RWs."),
- i18n("Install the dvd+rw-tools package."),
+ i18n("Install the dvd+rw-tools package and use ALT Control Center "
+ "or try 'control dvd+rw-format public' in a shell as user 'root'."
+ "Remember that only users in group 'cdwriter' will "
+ "be allowed to run dvd+rw-format."),
false ) );
}
}
if( !k3bcore->externalBinManager()->foundBin( "mkisofs" ) ) {
}
else if( k3bcore->externalBinManager()->binObject( "mkisofs" )->version < K3bVersion( 1, 14 ) ) {
problems.append( K3bSystemProblem( K3bSystemProblem::CRITICAL,
i18n("Used %1 version %2 is outdated")
@@ -390,33 +408,33 @@
for( QPtrListIterator<K3bDevice::Device> it( k3bcore->deviceManager()->allDevices() );
it.current(); ++it ) {
if( !QFileInfo( it.current()->blockDeviceName() ).isWritable() )
problems.append( K3bSystemProblem( K3bSystemProblem::CRITICAL,
i18n("No write access to device %1").arg(it.current()->blockDeviceName()),
i18n("K3b needs write access to all the devices to perform certain tasks. "
"Without you might encounter problems with %1 - %2").arg(it.current()->vendor()).arg(it.current()->description()),
i18n("Make sure you have write access to %1. In case you are not using "
- "devfs or udev K3bSetup is able to do this for you.").arg(it.current()->blockDeviceName()),
+ "devfs or udev ALT Control Center can help you (you must become a member of group 'cdwriter').").arg(it.current()->blockDeviceName()),
false ) );
if( it.current()->interfaceType() == K3bDevice::SCSI &&
!it.current()->genericDevice().isEmpty() &&
!QFileInfo( it.current()->genericDevice() ).isWritable() )
problems.append( K3bSystemProblem( K3bSystemProblem::CRITICAL,
i18n("No write access to generic SCSI device %1").arg(it.current()->genericDevice()),
i18n("Without write access to the generic device you might "
"encounter problems with Audio CD ripping from %1 - %2").arg(it.current()->vendor()).arg(it.current()->description()),
i18n("Make sure you have write access to %1. In case you are not using "
- "devfs or udev K3bSetup is able to do this for you.").arg(it.current()->genericDevice()),
+ "devfs or udev ALT Control Center can help you (you must become a member of group 'cdwriter').").arg(it.current()->genericDevice()),
false ) );
}
kdDebug() << "(K3bCore) System problems:" << endl;
for( QValueList<K3bSystemProblem>::const_iterator it = problems.begin();
it != problems.end(); ++it ) {
const K3bSystemProblem& p = *it;
switch( p.type ) {
@@ -435,20 +453,22 @@
<< " SOLUTION: " << p.solution << endl << endl;
}
if( problems.isEmpty() )
kdDebug() << " - none - " << endl;
else {
K3bSystemProblemDialog( problems, parent, name ).exec();
}
}
+/*
void K3bSystemProblemDialog::slotK3bSetup()
{
KProcess p;
p << "kdesu" << "kcmshell k3bsetup2 --lang " + KGlobal::locale()->language();
if( !p.start( KProcess::DontCare ) )
KMessageBox::error( 0, i18n("Unable to start K3bSetup2.") );
}
+*/
#include "k3bsystemproblemdialog.moc"
diff -U 10 -Nr k3b-0.12.10.old/src/k3bsystemproblemdialog.h k3b-0.12.10/src/k3bsystemproblemdialog.h
--- k3b-0.12.10.old/src/k3bsystemproblemdialog.h 2005-12-15 16:08:58 +0300
+++ k3b-0.12.10/src/k3bsystemproblemdialog.h 2005-12-20 13:21:31 +0300
@@ -58,20 +58,22 @@
K3bSystemProblemDialog( const QValueList<K3bSystemProblem>&,
QWidget* parent = 0,
const char* name = 0 );
static void checkSystem( QWidget* parent = 0,
const char* name = 0 );
protected:
void closeEvent( QCloseEvent* );
+/*
private slots:
void slotK3bSetup();
+*/
private:
QPushButton* m_closeButton;
QPushButton* m_k3bsetupButton;
QCheckBox* m_checkDontShowAgain;
};
#endif
diff -U 10 -Nr k3b-0.12.10.old/src/rip/k3bdvdrippingprocess.cpp k3b-0.12.10/src/rip/k3bdvdrippingprocess.cpp
--- k3b-0.12.10.old/src/rip/k3bdvdrippingprocess.cpp 2005-12-15 16:08:56 +0300
+++ k3b-0.12.10/src/rip/k3bdvdrippingprocess.cpp 2005-12-20 14:15:53 +0300
@@ -285,21 +285,21 @@
emit newSubTask( i18n("Mounting media") );
// FIXME: why not use K3bAppDeviceManager
connect( KIO::mount( true, 0, dev->mountDevice(), dev->mountPoint(), false ),
SIGNAL(result(KIO::Job*)), this, SLOT( slotPreProcessingDvd(KIO::Job*) ) );
} else {
m_mountPoint = mount;
m_dvdAlreadyMounted = true;
slotPreProcessingDvd();
}
} else {
- KMessageBox::error(qApp->activeWindow(), i18n("K3b could not mount <%1>. Please run K3bSetup.").arg(dev->mountDevice()),
+ KMessageBox::error(qApp->activeWindow(), i18n("K3b could not mount <%1>.").arg(dev->mountDevice()),
i18n("I/O Error") );
emit finished( false );
}
}
}
void K3bDvdRippingProcess::slotPreProcessingDvd( KIO::Job *resultJob) {
if( resultJob->error() > 0 ) {
// do show a dialog instead of an infoMessage since the errorString spreads over multible lines. :(
resultJob->showErrorDialog( qApp->activeWindow() );