Группа :: Архивирование/Создание 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() );
