ТавроФорум

ТавроФорум (https://forum.tavria.org.ua/index.php)
-   Решение бытовых проблем (https://forum.tavria.org.ua/forumdisplay.php?f=28)
-   -   бортжурнал лінуксоїда) (https://forum.tavria.org.ua/showthread.php?t=15940)

Coder 14.11.2008 23:42

Re: Re: Re: Re: поставив лінукс, є питання :)
 
давай тада кансольный рунгань
а йо пашол спадь ляляля...

Ravl 14.11.2008 23:57

Re: Re: Re: Re: поставив лінукс, є питання :)
 
Цитата:

Сообщение от Coder
давай тада кансольный рунгань
а йо пашол спадь ляляля....

ставіццо!
поставилось
тепер буду дупліцца

Vladyslav 17.11.2008 15:29

Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
Касательно того, что в каком пакете в дебиане, помоему поиск в http://www.debian.org/distrib/packages
Более чем удобен и может найти пакет как раз по содержимому, даже по одной из составляющих)) :) ;-)

Coder 17.11.2008 15:30

Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
rpmfind.net - тоже может

Vladyslav 17.11.2008 15:31

Re: Re: Re: Re: поставив лінукс, є питання :)
 
Цитата:

Сообщение от Ravl
Код:

[root@localhost opt]# ./medusa4_v3_0_1_1.sh
Medusa4 Personal 3.0.1.1 INSTALLATION

Extracting Medusa4 Personal installation files... please wait

Starting the installer...
./medusa4_v3_0_1_1.sh: line 38: csh: command not found
[root@localhost opt]#



Паставить csh))
Это такой же шел как и bash токо с немного своим синтаксисом.
Достаточно обычные зависимости))

Vladyslav 17.11.2008 15:33

Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
Цитата:

Сообщение от Coder
rpmfind.net - тоже может

Дык нихто ж е спорит) Мне не свойственно обкакивать конкретный дистрибутив.
И винда херня и линух херня...
Но хуже всего макоС))) :-D
Просто у всего свои плюсы минусы)
Я не перевариваю когда начинается вот это вот: "линукс гамно, нет виндовс гамно" :-D

Ravl 17.11.2008 21:47

Re: Re: Re: Re: поставив лінукс, є питання :)
 
Цитата:

Сообщение от Vladyslav
Цитата:

Сообщение от Ravl
Код:

[root@localhost opt]# ./medusa4_v3_0_1_1.sh
Medusa4 Personal 3.0.1.1 INSTALLATION

Extracting Medusa4 Personal installation files... please wait

Starting the installer...
./medusa4_v3_0_1_1.sh: line 38: csh: command not found
[root@localhost opt]#



Паставить csh))
Это такой же шел как и bash токо с немного своим синтаксисом.
Достаточно обычные зависимости))
так поставив вже давно
без нього б нічого не вийшло

так поставив вже давно
без нього б нічого не вийшло

Ravl 05.12.2008 11:44

Re: Re: Re: Re: поставив лінукс, є питання :)
 
а підкажіть якими програмами краще користуватися
для пошти, тирнету, аськи, чату
на даний момент
пошта Kmail(але ще настроював, бо основна пошта на внутрішньму сервері компанії, а другою рідко користуюсь)
чат - Xchat
аська - Kopete, Sim
аудіо - amarok
відео - mplayer
офіс - OpenOffice(тут альтернативи наче й нема)
тирнет - Mozilla Firefox
експлорер - Dolfin
RSS - Liera(наче, точно не памятаю)

Vladyslav 05.12.2008 12:35

Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
firefox; gaim, pidjin(icq);kmail, evolution (есть плагин для работы с MS EXchange правда через WEB access..); fvfhjr b vgktth +1) Ну для видео в принципе много чего есть...
для сетей удобная штука mtr вместо traceroute ;-) особенно есси бушь заниматься ip телефонией и нуна знать как обстоят дела с каналами в реальном времени.. ;-)

Ravl 14.12.2008 15:01

Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
була проблема: при виході з системи зявлялась помилка sigabrt, неможливо завершити роботу kopete, вилікувалось встановленням необхідного пакета (gdb)

додано: не все так просто)
gdb лише надав можливість зберегти лог
Код:

Програма: Kopete (kopete), сигнал SIGABRT
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0xb56836d0 (LWP 3853)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[KCrash handler]
#6  0xffffe430 in __kernel_vsyscall ()
#7  0xb62dcd90 in raise () from /lib/i686/libc.so.6
#8  0xb62de7f8 in abort () from /lib/i686/libc.so.6
#9  0xb7378445 in qt_message_output () from /usr/lib/libQtCore.so.4
#10 0xb7378535 in qFatal () from /usr/lib/libQtCore.so.4
#11 0xb7ec6d84 in ?? () from /usr/lib/libkopete.so.4
#12 0xb7ecc017 in Kopete::PluginManager::slotPluginDestroyed ()
  from /usr/lib/libkopete.so.4
#13 0xb7ecca7d in Kopete::PluginManager::qt_metacall ()
  from /usr/lib/libkopete.so.4
#14 0xb748ec8d in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#15 0xb748f0bb in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#16 0xb748f14d in QObject::destroyed () from /usr/lib/libQtCore.so.4
#17 0xb7490cfa in QObject::~QObject () from /usr/lib/libQtCore.so.4
#18 0xb7ec675e in Kopete::Plugin::~Plugin () from /usr/lib/libkopete.so.4
#19 0xb7ed092b in Kopete::Protocol::~Protocol () from /usr/lib/libkopete.so.4
#20 0xb32d53e5 in OscarProtocol::~OscarProtocol ()
  from /usr/lib/libkopete_oscar.so.4
#21 0xb3380529 in ?? () from /usr/lib/kde4/kopete_icq.so
#22 0xb7ece00a in ?? () from /usr/lib/libkopete.so.4
#23 0xb7ec6b19 in ?? () from /usr/lib/libkopete.so.4
#24 0xb7e51fb9 in ?? () from /usr/lib/libkopete.so.4
#25 0xb62dfe69 in exit () from /lib/i686/libc.so.6
#26 0xb62c95cd in __libc_start_main () from /lib/i686/libc.so.6
#27 0x080618c1 in _start ()


Ravl 15.12.2008 10:12

Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
читаю пока bugs.kde.org
нашов патч, ввечері попробую

Vladyslav 15.12.2008 15:10

Re: Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
Чесна копете гамно. Я его адин раз попробовал и дальше к нему не возвращался. Ибо трата времени. Есть вполне пахающие вещи:)
Отладку не пахающих, лучше и дешевле оставить разработчикам:)

Ravl 15.12.2008 15:15

Re: Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
Цитата:

Сообщение от Vladyslav
Чесна копете гамно. Я его адин раз попробовал и дальше к нему не возвращался. Ибо трата времени. Есть вполне пахающие вещи:)
Отладку не пахающих, лучше и дешевле оставить разработчикам:)

я пользуюсь SIM a kopete для дружини
той баг особо не напрягає
якщо ввечері не пофікситься то перейдем на кутім

Ravl 16.12.2008 11:05

Re: Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
шото не пішло, ось код
є файл написаний на с++ з розширенням срр як його запустити?
Код:

/*
    kopetepluginmanager.cpp - Kopete Plugin Loader

    Copyright (c) 2002-2003 by Duncan Mac-Vicar Prett <duncan@kde.org>
    Copyright (c) 2002-2003 by Martijn Klingens      <klingens@kde.org>
    Copyright (c) 2002-2004 by Olivier Goffart  <ogoffart @tiscalinet.be>

    Kopete    (c) 2002-2003 by the Kopete developers  <kopete-devel@kde.org>

    *************************************************************************
    *                                                                      *
    * This library is free software; you can redistribute it and/or        *
    * modify it under the terms of the GNU Lesser General Public            *
    * License as published by the Free Software Foundation; either          *
    * version 2 of the License, or (at your option) any later version.      *
    *                                                                      *
    *************************************************************************
*/

#include "config-kopete.h"

#include "kopetepluginmanager.h"

#if defined(HAVE_VALGRIND_H) && !defined(NDEBUG) && defined(__i386__)
// We don't want the per-skin includes, so pretend we have a skin header already
#define __VALGRIND_SOMESKIN_H
#include <valgrind/valgrind.h>
#endif

#include <QApplication>
#include <QFile>
#include <QRegExp>
#include <QTimer>
#include <QStack>

#include <ksharedconfig.h>
#include <kdebug.h>
#include <kparts/componentfactory.h>
#include <kplugininfo.h>
#include <kconfig.h>
#include <kstandarddirs.h>
#include <kurl.h>
#include <kservicetypetrader.h>

#include "kopeteplugin.h"
#include "kopetecontactlist.h"
#include "kopeteaccountmanager.h"

namespace Kopete
{

class PluginManagerPrivate
{
public:
        PluginManagerPrivate() : shutdownMode( StartingUp ), isAllPluginsLoaded(false)
        {
                plugins = KPluginInfo::fromServices( KServiceTypeTrader::self()->query( QLatin1String( "Kopete/Plugin" ), QLatin1String( "[X-Kopete-Version] == 1000900" ) ) );
        }

        ~PluginManagerPrivate()
        {
                if ( shutdownMode != DoneShutdown )
                        kWarning( 14010 ) << "Destructing plugin manager without going through the shutdown process! Backtrace is: " << endl << kBacktrace();

                // Clean up loadedPlugins manually, because PluginManager can't access our global
                // static once this destructor has started.
                while ( !loadedPlugins.empty() )
                {
                        InfoToPluginMap::ConstIterator it = loadedPlugins.begin();
                        kWarning( 14010 ) << "Deleting stale plugin '" << it.value()->objectName() << "'";
                        KPluginInfo info = it.key();
                        Plugin *plugin = it.value();
                        loadedPlugins.remove(info);
                        plugin->disconnect(&instance, SLOT(slotPluginDestroyed(QObject*)));
                        delete plugin;
                }
        }

        // All available plugins, regardless of category, and loaded or not
        QList<KPluginInfo> plugins;

        // Dict of all currently loaded plugins, mapping the KPluginInfo to
        // a plugin
        typedef QMap<KPluginInfo, Plugin *> InfoToPluginMap;
        InfoToPluginMap loadedPlugins;

        // The plugin manager's mode. The mode is StartingUp until loadAllPlugins()
        // has finished loading the plugins, after which it is set to Running.
        // ShuttingDown and DoneShutdown are used during Kopete shutdown by the
        // async unloading of plugins.
        enum ShutdownMode { StartingUp, Running, ShuttingDown, DoneShutdown };
        ShutdownMode shutdownMode;

        // Plugins pending for loading
        QStack<QString> pluginsToLoad;

        bool isAllPluginsLoaded;
        PluginManager instance;
};

K_GLOBAL_STATIC(PluginManagerPrivate, _kpmp)

PluginManager* PluginManager::self()
{
        return &_kpmp->instance;
}

PluginManager::PluginManager() : QObject( 0 )
{
        // We want to add a reference to the application's event loop so we
        // can remain in control when all windows are removed.
        // This way we can unload plugins asynchronously, which is more
        // robust if they are still doing processing.
        KGlobal::ref();
}

PluginManager::~PluginManager()
{
}

QList<KPluginInfo> PluginManager::availablePlugins( const QString &category ) const
{
        if ( category.isEmpty() )
                return _kpmp->plugins;

        QList<KPluginInfo> result;
        QList<KPluginInfo>::ConstIterator it;
        for ( it = _kpmp->plugins.begin(); it != _kpmp->plugins.end(); ++it )
        {
                if ( it->category() == category && !(*it).service()->noDisplay() )
                        result.append( *it );
        }

        return result;
}

PluginList PluginManager::loadedPlugins( const QString &category ) const
{
        PluginList result;

        for ( PluginManagerPrivate::InfoToPluginMap::ConstIterator it = _kpmp->loadedPlugins.begin();
              it != _kpmp->loadedPlugins.end(); ++it )
        {
                if ( category.isEmpty() || it.key().category() == category )
                        result.append( it.value() );
        }

        return result;
}


KPluginInfo PluginManager::pluginInfo( const Plugin *plugin ) const
{
        for ( PluginManagerPrivate::InfoToPluginMap::ConstIterator it = _kpmp->loadedPlugins.begin();
              it != _kpmp->loadedPlugins.end(); ++it )
        {
                if ( it.value() == plugin )
                        return it.key();
        }
        return KPluginInfo();
}

void PluginManager::shutdown()
{
        if(_kpmp->shutdownMode != PluginManagerPrivate::Running)
        {
                kDebug( 14010 ) << "called when not running.  / state = " << _kpmp->shutdownMode;
                return;
        }

        _kpmp->shutdownMode = PluginManagerPrivate::ShuttingDown;


        /* save the contact list now, just in case a change was made very recently
          and it hasn't autosaved yet
          from a OO point of view, theses lines should not be there, but i don't
          see better place -Olivier
        */
        Kopete::ContactList::self()->save();
        Kopete::AccountManager::self()->save();

        // Remove any pending plugins to load, we're shutting down now :)
        _kpmp->pluginsToLoad.clear();

        // Ask all plugins to unload
        for ( PluginManagerPrivate::InfoToPluginMap::ConstIterator it = _kpmp->loadedPlugins.begin();
              it != _kpmp->loadedPlugins.end(); /* EMPTY */ )
        {
                // Plugins could emit their ready for unload signal directly in response to this,
                // which would invalidate the current iterator. Therefore, we copy the iterator
                // and increment it beforehand.
                PluginManagerPrivate::InfoToPluginMap::ConstIterator current( it );
                ++it;
                // FIXME: a much cleaner approach would be to just delete the plugin now. if it needs
                //  to do some async processing, it can grab a reference to the app itself and create
                //  another object to do it.
                current.value()->aboutToUnload();
        }

        // When running under valgrind, don't enable the timer because it will almost
        // certainly fire due to valgrind's much slower processing
#if defined(HAVE_VALGRIND_H) && !defined(NDEBUG) && defined(__i386__)
        if ( RUNNING_ON_VALGRIND )
                kDebug(14010) << "Running under valgrind, disabling plugin unload timeout guard";
        else
#endif
                QTimer::singleShot( 3000, this, SLOT( slotShutdownTimeout() ) );
}

void PluginManager::slotPluginReadyForUnload()
{
        // Using QObject::sender() is on purpose here, because otherwise all
        // plugins would have to pass 'this' as parameter, which makes the API
        // less clean for plugin authors
        // FIXME: I don't buy the above argument. Add a Kopete::Plugin::emitReadyForUnload(void),
        //        and make readyForUnload be passed a plugin. - Richard
        Plugin *plugin = dynamic_cast<Plugin *>( const_cast<QObject *>( sender() ) );
        if ( !plugin )
        {
                kWarning( 14010 ) << "Calling object is not a plugin!";
                return;
        }
        kDebug( 14010 ) << plugin->pluginId() << "ready for unload";

        plugin->deleteLater();
}


void PluginManager::slotShutdownTimeout()
{
        // When we were already done the timer might still fire.
        // Do nothing in that case.
        if ( _kpmp->shutdownMode == PluginManagerPrivate::DoneShutdown )
                return;

        QStringList remaining;
        for ( PluginManagerPrivate::InfoToPluginMap::ConstIterator it = _kpmp->loadedPlugins.begin(); it != _kpmp->loadedPlugins.end(); ++it )
                remaining.append( it.value()->pluginId() );

        kWarning( 14010 ) << "Some plugins didn't shutdown in time!" << endl
                << "Remaining plugins: " << remaining.join( QLatin1String( ", " ) ) << endl
                << "Forcing Kopete shutdown now." << endl;

        slotShutdownDone();
}

void PluginManager::slotShutdownDone()
{
        kDebug( 14010 ) ;

        _kpmp->shutdownMode = PluginManagerPrivate::DoneShutdown;

        KGlobal::deref();
}

void PluginManager::loadAllPlugins()
{
        // FIXME: We need session management here - Martijn

        KSharedConfig::Ptr config = KGlobal::config();
        if ( config->hasGroup( QLatin1String( "Plugins" ) ) )
        {
                QMap<QString, bool> pluginsMap;

                QMap<QString, QString> entries = config->entryMap( QLatin1String( "Plugins" ) );
                QMap<QString, QString>::Iterator it;
                for ( it = entries.begin(); it != entries.end(); ++it )
                {
                        QString key = it.key();
                        if ( key.endsWith( QLatin1String( "Enabled" ) ) )
                                pluginsMap.insert( key.left(key.length() - 7), (it.value() == QLatin1String( "true" )) );
                }

                QList<KPluginInfo> plugins = availablePlugins( QString::null );        //krazy:exclude=nullstrassign for old broken gcc
                QList<KPluginInfo>::ConstIterator it2 = plugins.begin();
                QList<KPluginInfo>::ConstIterator end = plugins.end();
                for ( ; it2 != end; ++it2 )
                {
                        // Protocols are loaded automatically so they aren't always in Plugins group. (fixes bug 167113)
                        if ( it2->category() == QLatin1String( "Protocols" ) )
                                continue;

                        QString pluginName = it2->pluginName();
                        if ( pluginsMap.value( pluginName, it2->isPluginEnabledByDefault() ) )
                        {
                                if ( !plugin( pluginName ) )
                                        _kpmp->pluginsToLoad.push( pluginName );
                        }
                        else
                        {
                                //This happens if the user unloaded plugins with the config plugin page.
                                // No real need to be assync because the user usualy unload few plugins
                                // compared tto the number of plugin to load in a cold start. - Olivier
                                if ( plugin( pluginName ) )
                                        unloadPlugin( pluginName );
                        }
                }
        }
        else
        {
                // we had no config, so we load any plugins that should be loaded by default.
                QList<KPluginInfo> plugins = availablePlugins( QString::null );        //krazy:exclude=nullstrassign for old broken gcc
                QList<KPluginInfo>::ConstIterator it = plugins.begin();
                QList<KPluginInfo>::ConstIterator end = plugins.end();
                for ( ; it != end; ++it )
                {
                        if ( it->isPluginEnabledByDefault() )
                                _kpmp->pluginsToLoad.push( it->pluginName() );
                }
        }
        // Schedule the plugins to load
        QTimer::singleShot( 0, this, SLOT( slotLoadNextPlugin() ) );
}

void PluginManager::slotLoadNextPlugin()
{
        if ( _kpmp->pluginsToLoad.isEmpty() )
        {
                if ( _kpmp->shutdownMode == PluginManagerPrivate::StartingUp )
                {
                        _kpmp->shutdownMode = PluginManagerPrivate::Running;
                        _kpmp->isAllPluginsLoaded = true;
                        emit allPluginsLoaded();
                }
                return;
        }

        QString key = _kpmp->pluginsToLoad.pop();
        loadPluginInternal( key );

        // Schedule the next run unconditionally to avoid code duplication on the
        // allPluginsLoaded() signal's handling. This has the added benefit that
        // the signal is delayed one event loop, so the accounts are more likely
        // to be instantiated.
        QTimer::singleShot( 0, this, SLOT( slotLoadNextPlugin() ) );
}

Plugin * PluginManager::loadPlugin( const QString &_pluginId, PluginLoadMode mode /* = LoadSync */ )
{
        QString pluginId = _pluginId;

        // Try to find legacy code
        // FIXME: Find any cases causing this, remove them, and remove this too - Richard
        if ( pluginId.endsWith( QLatin1String( ".desktop" ) ) )
        {
                kWarning( 14010 ) << "Trying to use old-style API!" << endl << kBacktrace();
                pluginId = pluginId.remove( QRegExp( QLatin1String( ".desktop$" ) ) );
        }

        if ( mode == LoadSync )
        {
                return loadPluginInternal( pluginId );
        }
        else
        {
                _kpmp->pluginsToLoad.push( pluginId );
                QTimer::singleShot( 0, this, SLOT( slotLoadNextPlugin() ) );
                return 0L;
        }
}

Plugin *PluginManager::loadPluginInternal( const QString &pluginId )
{
        //kDebug( 14010 ) << pluginId;

        KPluginInfo info = infoForPluginId( pluginId );
        if ( !info.isValid() )
        {
                kWarning( 14010 ) << "Unable to find a plugin named '" << pluginId << "'!";
                return 0L;
        }

        if ( _kpmp->loadedPlugins.contains( info ) )
                return _kpmp->loadedPlugins[ info ];

        QString error;
        Plugin *plugin = KServiceTypeTrader::createInstanceFromQuery<Plugin>( QString::fromLatin1( "Kopete/Plugin" ), QString::fromLatin1( "[X-KDE-PluginInfo-Name]=='%1'" ).arg( pluginId ), this, QVariantList(), &error );

        if ( plugin )
        {
                _kpmp->loadedPlugins.insert( info, plugin );
                info.setPluginEnabled( true );

                connect( plugin, SIGNAL( destroyed( QObject * ) ), this, SLOT( slotPluginDestroyed( QObject * ) ) );
                connect( plugin, SIGNAL( readyForUnload() ), this, SLOT( slotPluginReadyForUnload() ) );

                kDebug( 14010 ) << "Successfully loaded plugin '" << pluginId << "'";

                emit pluginLoaded( plugin );
        }
        else
        {
                kDebug( 14010 ) << "Loading plugin " << pluginId << " failed, KServiceTypeTrader reported error: " << error ;
        }

        return plugin;
}

bool PluginManager::unloadPlugin( const QString &spec )
{
        //kDebug(14010) << spec;
        if( Plugin *thePlugin = plugin( spec ) )
        {
                thePlugin->aboutToUnload();
                return true;
        }
        else
                return false;
}



void PluginManager::slotPluginDestroyed( QObject *plugin )
{
        for ( PluginManagerPrivate::InfoToPluginMap::Iterator it = _kpmp->loadedPlugins.begin();
              it != _kpmp->loadedPlugins.end(); ++it )
        {
                if ( it.value() == plugin )
                {
                        _kpmp->loadedPlugins.erase( it );
                        break;
                }
        }

        if ( _kpmp->shutdownMode == PluginManagerPrivate::ShuttingDown && _kpmp->loadedPlugins.isEmpty() )
        {
                // Use a timer to make sure any pending deleteLater() calls have
                // been handled first
                QTimer::singleShot( 0, this, SLOT( slotShutdownDone() ) );
        }
}




Plugin* PluginManager::plugin( const QString &_pluginId ) const
{
        // Hack for compatibility with Plugin::pluginId(), which returns
        // classname() instead of the internal name. Changing that is not easy
        // as it invalidates the config file, the contact list, and most likely
        // other code as well.
        // For now, just transform FooProtocol to kopete_foo.
        // FIXME: In the future we'll need to change this nevertheless to unify
        //        the handling - Martijn
        QString pluginId = _pluginId;
        if ( pluginId.endsWith( QLatin1String( "Protocol" ) ) )
                pluginId = QLatin1String( "kopete_" ) + _pluginId.toLower().remove( QString::fromLatin1( "protocol" ) );
        // End hack

        KPluginInfo info = infoForPluginId( pluginId );
        if ( !info.isValid() )
                return 0L;

        if ( _kpmp->loadedPlugins.contains( info ) )
                return _kpmp->loadedPlugins[ info ];
        else
                return 0L;
}

KPluginInfo PluginManager::infoForPluginId( const QString &pluginId ) const
{
        QList<KPluginInfo>::ConstIterator it;
        for ( it = _kpmp->plugins.begin(); it != _kpmp->plugins.end(); ++it )
        {
                if ( it->pluginName() == pluginId )
                        return *it;
        }

        return KPluginInfo();
}


bool PluginManager::setPluginEnabled( const QString &_pluginId, bool enabled /* = true */ )
{
        QString pluginId = _pluginId;

        KConfigGroup config(KGlobal::config(), "Plugins");

        // FIXME: What is this for? This sort of thing is kconf_update's job - Richard
        if ( !pluginId.startsWith( QLatin1String( "kopete_" ) ) )
                pluginId.prepend( QLatin1String( "kopete_" ) );

        if ( !infoForPluginId( pluginId ).isValid() )
                return false;

        config.writeEntry( pluginId + QLatin1String( "Enabled" ), enabled );
        config.sync();

        return true;
}

bool PluginManager::isAllPluginsLoaded() const
{
        return _kpmp->isAllPluginsLoaded;
}

} //END namespace Kopete


#include "kopetepluginmanager.moc"


Vladyslav 16.12.2008 11:17

Re: Re: Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
ЫЫЫЫЫЫ))))

гг сори не сдержался.
Так.. вижу тут сложно всё...
Ок попробую объяснить:)
Файлик с таким расширением и сим КОДОМ Это не что иное, как программа на языке "C".
Т.е. вот это, исходный код программы, это тупо текствовый файл, запустить его куда-то кроме космоса, не возможно:)
Его можно только откомпилировать (процесс превращения кода написанного программистом в двоичный файл, в виндавсе *exe, который и можно будет потом запускать).
Ну примерно вкратце и очень сжато, так:)

Файлик адин или там в архиве куча всего ещё была? Есть README или INSTALL ? Если есть, читать. Если есть там файлик Makefile, то можно не парясь собрать коммандой make, если есть файлик configure, то перед make надо запустить его.
Если всего этого нет, поздравляю, бушь осваивать азы программирования учитсо пользоваться самым, что нина есть компилятором:) GCC

Ravl 16.12.2008 11:19

Re: Re: Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
дякую :-D
ЗІ:звичайно все складно, адже у мене зовсім інша освіта і нема базових знань у даному напрямку

Vladyslav 16.12.2008 11:21

Re: Re: Re: Re: Re: Re: Re: Re: поставив лінукс, є питання :
 
Но, если ты занимаешься этим всем для самообразования и ради интересна, то плиз велкам:)
Если тебе просто нужен копете, я бы не извращался ;-) С точки зрения пользователя в никсах как и в виндах, надо ставить ТОЛЬКО нормальные готовые пакеты, или собирать из исходников но ТОЛЬКО из src пакетов дистрибутива. Остальное кулибинство (которое на самом деле не кулибинство, а чёткие профессиональные действия человека. понимающего. что он делает, это уже касается в основном серверных приложений, и в случае с айсику клиентом являеться лишним и ненужным геморроем)))

Vladyslav 16.12.2008 11:24

Re: Re: Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
Цитата:

Сообщение от Ravl
дякую :-D
ЗІ:звичайно все складно, адже у мене зовсім інша освіта і нема базових знань у даному напрямку

Да нет:) Я ж не в упрёк и не издеваюсь. Просто на самом деле я же говорю, углубляться в компиляциии и понимать процесс есть смысл тока если реально интересно. Если это тупо ради фунциклирования копете, то можно и повесится от сего процесса :-D
А если интересно, что могу попробую объяснить подробнее, хотя я сам не особо программист.:)

Ravl 16.12.2008 11:50

Re: Re: Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
Цитата:

Сообщение от Vladyslav
Да нет:) Я ж не в упрёк и не издеваюсь. Просто на самом деле я же говорю, углубляться в компиляциии и понимать процесс есть смысл тока если реально интересно. Если это тупо ради фунциклирования копете, то можно и повесится от сего процесса :-D
А если интересно, что могу попробую объяснить подробнее, хотя я сам не особо программист.:)

так поставити інший клієнт не проблема(їх і так вже три стоїть:) )
хочу дісно розібратися в процесі, а читати літературу не встигаю)

Vladyslav 16.12.2008 11:55

Re: Re: Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
Цитата:

Сообщение от Ravl
Цитата:

Сообщение от Vladyslav
Да нет:) Я ж не в упрёк и не издеваюсь. Просто на самом деле я же говорю, углубляться в компиляциии и понимать процесс есть смысл тока если реально интересно. Если это тупо ради фунциклирования копете, то можно и повесится от сего процесса :-D
А если интересно, что могу попробую объяснить подробнее, хотя я сам не особо программист.:)

так поставити інший клієнт не проблема(їх і так вже три стоїть:) )
хочу дісно розібратися в процесі, а читати літературу не встигаю)

ну, хотябы определение компиляции гденить в википедии прочесть прийдёться. К сожалению читать всёравно прийдёться и много, скоро поймёшь, что без базовых знаний никуда, они базис. Если нет понимания процесса, то столкнувшись второй раз, будет таже проблема:)
Не нужно учить всё.. главное просто понимать принципи по которым что-то происходит, и всё станет, так понятно, шо аж скучно:)) ;-)

Ravl 16.12.2008 12:35

Re: Re: Re: Re: Re: Re: Re: поставив лінукс, є питання :)
 
приблизно так?
Код:

gcc -o file kopetepluginmanager.cpp

Vladyslav 16.12.2008 18:48

Re: Re: Re: Re: Re: Re: Re: Re: поставив лінукс, є питання :
 
ага тока он буит ругаться если там каких-то библиотек нет.. я там сам файл исходника не смотрел особо....
Но мож чёта и нада..

Ravl 16.12.2008 21:36

Re: Re: Re: Re: Re: Re: Re: Re: поставив лінукс, є питання :
 
ви знову будете сміятись :-D

Код:

[root@localhost ravl]# gcc -o file kopetepluginmanager.cpp                                         
kopetepluginmanager.cpp:20:27: error: config-kopete.h: No such file or directory                   
kopetepluginmanager.cpp:22:33: error: kopetepluginmanager.h: No such file or directory             
kopetepluginmanager.cpp:30:24: error: QApplication: No such file or directory                     
kopetepluginmanager.cpp:31:17: error: QFile: No such file or directory                             
kopetepluginmanager.cpp:32:19: error: QRegExp: No such file or directory                           
kopetepluginmanager.cpp:33:18: error: QTimer: No such file or directory                           
kopetepluginmanager.cpp:34:18: error: QStack: No such file or directory                           
kopetepluginmanager.cpp:36:27: error: ksharedconfig.h: No such file or directory                   
kopetepluginmanager.cpp:37:20: error: kdebug.h: No such file or directory                         
kopetepluginmanager.cpp:38:37: error: kparts/componentfactory.h: No such file or directory         
kopetepluginmanager.cpp:39:25: error: kplugininfo.h: No such file or directory                     
kopetepluginmanager.cpp:40:21: error: kconfig.h: No such file or directory                         
kopetepluginmanager.cpp:41:27: error: kstandarddirs.h: No such file or directory                   
kopetepluginmanager.cpp:42:18: error: kurl.h: No such file or directory                           
kopetepluginmanager.cpp:43:32: error: kservicetypetrader.h: No such file or directory             
kopetepluginmanager.cpp:45:26: error: kopeteplugin.h: No such file or directory                   
kopetepluginmanager.cpp:46:31: error: kopetecontactlist.h: No such file or directory               
kopetepluginmanager.cpp:47:34: error: kopeteaccountmanager.h: No such file or directory           
kopetepluginmanager.cpp:500:35: error: kopetepluginmanager.moc: No such file or directory         
kopetepluginmanager.cpp:80: error: ISO C++ forbids declaration of ‘QList’ with no type             
kopetepluginmanager.cpp:80: error: expected ‘;’ before ‘<’ token                                   
kopetepluginmanager.cpp:84: error: ISO C++ forbids declaration of ‘QMap’ with no type             
kopetepluginmanager.cpp:84: error: expected ‘;’ before ‘<’ token                                   
kopetepluginmanager.cpp:85: error: ‘InfoToPluginMap’ does not name a type                         
kopetepluginmanager.cpp:95: error: ISO C++ forbids declaration of ‘QStack’ with no type           
kopetepluginmanager.cpp:95: error: expected ‘;’ before ‘<’ token                                   
kopetepluginmanager.cpp:98: error: ‘PluginManager’ does not name a type                           
kopetepluginmanager.cpp: In constructor ‘Kopete::PluginManagerPrivate::PluginManagerPrivate()’:   
kopetepluginmanager.cpp:57: error: ‘plugins’ was not declared in this scope                       
kopetepluginmanager.cpp:57: error: ‘KPluginInfo’ has not been declared                             
kopetepluginmanager.cpp:57: error: ‘KServiceTypeTrader’ has not been declared                     
kopetepluginmanager.cpp:57: error: ‘QLatin1String’ was not declared in this scope                 
kopetepluginmanager.cpp: In destructor ‘Kopete::PluginManagerPrivate::~PluginManagerPrivate()’:   
kopetepluginmanager.cpp:63: error: ‘kWarning’ was not declared in this scope                       
kopetepluginmanager.cpp:63: error: ‘endl’ was not declared in this scope                           
kopetepluginmanager.cpp:63: error: ‘kBacktrace’ was not declared in this scope                     
kopetepluginmanager.cpp:67: error: ‘loadedPlugins’ was not declared in this scope                 
kopetepluginmanager.cpp:69: error: ‘InfoToPluginMap’ has not been declared
kopetepluginmanager.cpp:69: error: expected `;' before ‘it’
kopetepluginmanager.cpp:70: error: ‘kWarning’ was not declared in this scope
kopetepluginmanager.cpp:70: error: ‘it’ was not declared in this scope
kopetepluginmanager.cpp:71: error: ‘KPluginInfo’ was not declared in this scope
kopetepluginmanager.cpp:71: error: expected `;' before ‘info’
kopetepluginmanager.cpp:72: error: ‘Plugin’ was not declared in this scope
kopetepluginmanager.cpp:72: error: ‘plugin’ was not declared in this scope
kopetepluginmanager.cpp:73: error: ‘info’ was not declared in this scope
kopetepluginmanager.cpp:74: error: ‘instance’ was not declared in this scope
kopetepluginmanager.cpp:74: error: ‘QObject’ was not declared in this scope
kopetepluginmanager.cpp:74: error: expected primary-expression before ‘)’ token
kopetepluginmanager.cpp:74: error: ‘slotPluginDestroyed’ was not declared in this scope
kopetepluginmanager.cpp:74: error: ‘SLOT’ was not declared in this scope
kopetepluginmanager.cpp:75: error: type ‘<type error>’ argument given to ‘delete’, expected pointer
kopetepluginmanager.cpp: At global scope:
kopetepluginmanager.cpp:101: error: ‘_kpmp’ has not been declared
kopetepluginmanager.cpp:103: error: expected constructor, destructor, or type conversion before ‘PluginManager’
kopetepluginmanager.cpp:108: error: ‘PluginManager’ has not been declared
kopetepluginmanager.cpp:108: error: ISO C++ forbids declaration of ‘PluginManager’ with no type
kopetepluginmanager.cpp: In function ‘int Kopete::PluginManager()’:
kopetepluginmanager.cpp:108: error: only constructors take base initializers
kopetepluginmanager.cpp:114: error: ‘KGlobal’ has not been declared
kopetepluginmanager.cpp: At global scope:
kopetepluginmanager.cpp:117: error: expected constructor, destructor, or type conversion before ‘::’ token
kopetepluginmanager.cpp:121: error: expected constructor, destructor, or type conversion before ‘<’token
kopetepluginmanager.cpp:497: error: expected `}' at end of input


Ravl 16.12.2008 22:04

Re: Re: Re: Re: Re: Re: Re: Re: поставив лінукс, є питання :
 
корочє з копете ми попрощались :-D
колись буде більше часу мож поковиряюсь :-D

Coder 16.12.2008 22:56

Re: Re: Re: Re: Re: Re: Re: Re: поставив лінукс, є питання :
 
locate config-kopete.h
че выдает?


Текущее время: 04:41. Часовой пояс GMT +3.

Перевод: zCarot Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.