I cannot install the latest UC on Ubuntu, there are missing many libs which cannot be downloaded via apt.
I have successfully installed 0.2.0.16 from ppa, but it is very old version.
Is there any easy way how install new version of UC?
[Deprecated] Installing UltraCopier on Ubuntu
- alpha_one_x86
- Site Admin
- Posts: 1454
- Joined: Sun Oct 26, 2008 9:09 am
- Contact:
Re: Installing UltraCopier on Ubuntu
Already asked. No easy solution.
The unique way is ask to Ubuntu tu support it.
The unique way is ask to Ubuntu tu support it.
Re: Installing UltraCopier on Ubuntu
I have downloaded the tar.xz package. Is it still a problem to install on Ubuntu? I don't know what to do with this package.
- alpha_one_x86
- Site Admin
- Posts: 1454
- Joined: Sun Oct 26, 2008 9:09 am
- Contact:
Re: Installing UltraCopier on Ubuntu
No problem if you know how compil it.
- alpha_one_x86
- Site Admin
- Posts: 1454
- Joined: Sun Oct 26, 2008 9:09 am
- Contact:
Re: Installing UltraCopier on Ubuntu
Code: Select all
ultracopier compile howto for linux.
get qt5.4
sudo add-apt-repository ppa:beineri/opt-qt542-trusty
sudo apt-get install qt54base
get & unpack ultracopier
cd ultracopier
in EventDispatcher.cpp ,
uncomment line 118 to 155 to get rid of the key entrance. (setting the Variable did not work)
disable dbug mode:
find -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_DEBUG/\/\/#define ULTRACOPIER_DEBUG/g" {} \;
find -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_PLUGIN_DEBUG/\/\/#define ULTRACOPIER_PLUGIN_DEBUG/g" {} \;
find -name "Variable.h" -exec sed -i "s/#define ULTRACOPIER_PLUGIN_DEBUG_WINDOW/\/\/#define ULTRACOPIER_PLUGIN_DEBUG_WINDOW/g" {} \;
get lrelease from ubuntu package search (content), put into ultracopier folder
export LD_LIBRARY_PATH=/opt/qt54/lib/:$LD_LIBRARY_PATH
./lrelease should work now.
./lrelease resources/Languages/en/translation.ts
./lrelease plugins/CopyEngine/Ultracopier/Languages/fr/translation.ts
./lrelease plugins/Themes/Oxygen/Languages/fr/translation.ts
./lrelease plugins/Languages/fr/translation.ts
/opt/qt54/bin/qmake ultracopier-core.pro
make
cd plugins/CopyEngine/Ultracopier
/opt/qt54/bin/qmake CopyEngine.pro
make
cd ../../../
cd plugins/CopyEngine/Rsync
/opt/qt54/bin/qmake Rsync.pro
make
cd ../../../
cd plugins/Themes/Oxygen
/opt/qt54/bin/qmake interface.pro
make
cd ../../../
cd plugins/Listener/catchcopy-v0002
/opt/qt54/bin/qmake listener.pro
make
cd ../../../
cd plugins/PluginLoader/catchcopy-v0002
/opt/qt54/bin/qmake pluginLoader.pro
make
cd ../../../
cd plugins/SessionLoader/KDE4/
/opt/qt54/bin/qmake sessionLoader.pro
make
cd ../../../
make release:
mkdir release
cd release
cp ../ultracopier .
mkdir fr
cp ../plugins/Languages/fr/flag.png fr
cp ../plugins/Languages/fr/informations.xml fr
cp ../plugins/Languages/fr/translation.qm fr
mkdir -p CopyEngine/Ultracopier/Languages/fr
cp ../plugins/CopyEngine/Ultracopier/Languages/fr/translation.qm CopyEngine/Ultracopier/Languages/fr
cp ../plugins/CopyEngine/Ultracopier/libcopyEngine.so CopyEngine/Ultracopier/
cp ../plugins/CopyEngine/Ultracopier/informations.xml CopyEngine/Ultracopier/
mkdir -p CopyEngine/Rsync
cp ../plugins/CopyEngine/Rsync/libcopyEngine.so CopyEngine/Rsync
create custom Informations.xml out of CopyEngine/Ultracopier/informations.xml ; change name to rsync.
mkdir -p Themes/Oxygen/Languages/fr/
cp ../plugins/Themes/Oxygen/Languages/fr/translation.qm Themes/Oxygen/Languages/fr/
cp ../plugins/Themes/Oxygen/informations.xml Themes/Oxygen/
cp ../plugins/Themes/Oxygen/libinterface.so Themes/Oxygen/
mkdir -p Listener/catchcopy-v0002/
cp ../plugins/Listener/catchcopy-v0002/informations.xml Listener/catchcopy-v0002/
cp ../plugins/Listener/catchcopy-v0002/liblistener.so Listener/catchcopy-v0002/
mkdir -p PluginLoader/catchcopy-v0002/
cp ../plugins/PluginLoader/catchcopy-v0002/libpluginLoader.so PluginLoader/catchcopy-v0002/
cp ../plugins/PluginLoader/catchcopy-v0002/informations.xml PluginLoader/catchcopy-v0002/
mkdir -p SessionLoader/KDE4/
cp ../plugins/SessionLoader/KDE4/libsessionLoader.so SessionLoader/KDE4/
cp ../plugins/SessionLoader/KDE4/informations.xml SessionLoader/KDE4/
replace
<architecture>windows--</architecture>
with
<architecture>linux-x86_64-pc</architecture>
in all informations.xml files.
start ultracopier in release folder with ./ultracopier
packaging: rename release to ultracopier
copy ultracopier folder to /opt
mkdir /lib
from /opt/qt54/lib
copy libs into it:
/opt/ultracopier/lib/libQt5Core.so
/opt/ultracopier/lib/libQt5Core.so.5
/opt/ultracopier/lib/libQt5Core.so.5.4
/opt/ultracopier/lib/libQt5DBus.so
/opt/ultracopier/lib/libQt5DBus.so.5
/opt/ultracopier/lib/libQt5DBus.so.5.4
/opt/ultracopier/lib/libQt5Gui.so.5
/opt/ultracopier/lib/libQt5Gui.so.5.4
/opt/ultracopier/lib/libQt5Network.so
/opt/ultracopier/lib/libQt5Network.so.5
/opt/ultracopier/lib/libQt5Network.so.5.4
/opt/ultracopier/lib/libQt5OpenGL.so
/opt/ultracopier/lib/libQt5OpenGL.so.5
/opt/ultracopier/lib/libQt5OpenGL.so.5.4
/opt/ultracopier/lib/libQt5Widgets.so
/opt/ultracopier/lib/libQt5Widgets.so.5
/opt/ultracopier/lib/libQt5Widgets.so.5.4
/opt/ultracopier/lib/libQt5Core.so.5.4.2
/opt/ultracopier/lib/libQt5DBus.so.5.4.2
/opt/ultracopier/lib/libQt5Gui.so.5.4.2
/opt/ultracopier/lib/libQt5Network.so.5.4.2
/opt/ultracopier/lib/libQt5OpenGL.so.5.4.2
/opt/ultracopier/lib/libQt5Widgets.so.5.4.2
/opt/ultracopier/lib/libQt5Xml.so.5.4.2
/opt/ultracopier/lib/libQt5Xml.so.5.4
/opt/ultracopier/lib/libQt5Xml.so.5
/opt/ultracopier/lib/libQt5Xml.so
and /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/libqxcb.so
to /opt/ultracopier/lib/plugins/platforms/libqxcb.so
If you start ultracopier with:
#!/bin/bash
export LD_LIBRARY_PATH=/opt/ultracopier/lib::$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=$QT_PLUGIN_PATH:/opt/ultracopier/lib/plugins
cd /opt/ultracopier
./ultracopier "$@"
you can deinstall qt54base and ultracopier should work as it is now selfcontained, all the libraries that it
needs to run now ship with it.
As long as the dependencies of which any version of qt4/5 depend on are installed, it should work
on many different distros as well. One could go one step further and also add these to lib folder
to make it even more portable.
now I made a .deb out of it.
questions/ unresolved:
what is the plugins-alternative folder for? are the other themes relevant?
does not work:
ultracopier-static.pro?
g++ -Wl,-O1 -Wl,-rpath,/opt/qt54/lib -o ultracopier ThemesManager.o ResourcesManager.o main.o EventDispatcher.o SystrayIcon.o DebugEngine.o OptionEngine.o HelpDialog.o PluginsManager.o LanguagesManager.o PluginInformation.o SessionLoader.o ExtraSocket.o CopyListener.o CopyEngineManager.o Core.o PluginLoader.o OptionDialog.o LocalPluginOptions.o LocalListener.o CliParser.o FacilityEngine.o LogThread.o OSSpecific.o DebugModel.o InternetUpdater.o qrc_ultracopier-resources.o qrc_ultracopier-resources_unix.o qrc_ultracopier-resources_windows.o qrc_static-plugins.o qrc_copyEngineResources.o qrc_static-plugins-oxygen.o qrc_interfaceResources_windows.o qrc_interfaceResources_unix.o qrc_interfaceResources.o moc_ResourcesManager.o moc_ThemesManager.o moc_SystrayIcon.o moc_EventDispatcher.o moc_DebugEngine.o moc_Core.o moc_OptionEngine.o moc_HelpDialog.o moc_PluginsManager.o moc_LanguagesManager.o moc_PluginInformation.o moc_SessionLoader.o moc_CopyListener.o moc_CopyEngineManager.o moc_PluginInterface_Themes.o moc_PluginInterface_SessionLoader.o moc_PluginInterface_Listener.o moc_PluginInterface_CopyEngine.o moc_OptionInterface.o moc_PluginLoader.o moc_PluginInterface_PluginLoader.o moc_OptionDialog.o moc_LocalPluginOptions.o moc_LocalListener.o moc_CliParser.o moc_FacilityEngine.o moc_LogThread.o moc_OSSpecific.o moc_InternetUpdater.o -Lplugins -lcopyEngine -linterface -llistener -L/opt/qt54/lib -lQt5Widgets -lQt5Gui -lQt5Network -lQt5Xml -lQt5Core -lGL -lpthread -L /home/hero/Downloads/ultracopier-src/plugins/CopyEngine/Ultracopier/ -L /home/hero/Downloads/ultracopier-src/plugins/CopyEngine/Rsync/ -L /home/hero/Downloads/ultracopier-src/plugins/Listener/catchcopy-v0002/ -L /home/hero/Downloads/ultracopier-src/plugins/Themes/Oxygen/
main.o: In function `_GLOBAL__sub_I__ZN16ResourcesManager16resourcesManagerE':
main.cpp:(.text.startup+0x5): undefined reference to `qt_static_plugin_CopyEngineFactory()'
main.cpp:(.text.startup+0x15): undefined reference to `qt_static_plugin_ThemesFactory()'
main.cpp:(.text.startup+0x25): undefined reference to `qt_static_plugin_Listener()'
collect2: error: ld returned 1 exit status
dbus listener.pro?
make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -I/opt/qt54/include -I/opt/qt54/include/QtGui -I/opt/qt54/include/QtNetwork -I/opt/qt54/include/QtDBus -I/opt/qt54/include/QtCore -I. -I/opt/qt54/mkspecs/linux-g++ -o listener.o listener.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -I/opt/qt54/include -I/opt/qt54/include/QtGui -I/opt/qt54/include/QtNetwork -I/opt/qt54/include/QtDBus -I/opt/qt54/include/QtCore -I. -I/opt/qt54/mkspecs/linux-g++ -o Catchcopy.o Catchcopy.cpp
/opt/qt54/bin/moc -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I/opt/qt54/mkspecs/linux-g++ -I/home/hero/Downloads/Ultracopier-master/plugins/Listener/dbus -I/opt/qt54/include -I/opt/qt54/include/QtGui -I/opt/qt54/include/QtNetwork -I/opt/qt54/include/QtDBus -I/opt/qt54/include/QtCore -I/usr/include/c++/4.8 -I/usr/include/x86_64-linux-gnu/c++/4.8 -I/usr/include/c++/4.8/backward -I/usr/lib/gcc/x86_64-linux-gnu/4.8/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include listener.h -o moc_listener.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -I/opt/qt54/include -I/opt/qt54/include/QtGui -I/opt/qt54/include/QtNetwork -I/opt/qt54/include/QtDBus -I/opt/qt54/include/QtCore -I. -I/opt/qt54/mkspecs/linux-g++ -o moc_listener.o moc_listener.cpp
In file included from /opt/qt54/include/QtCore/QtCore:86:0,
from /opt/qt54/include/QtDBus/QtDBusDepends:3,
from /opt/qt54/include/QtDBus/QtDBus:3,
from listener.h:10,
from moc_listener.cpp:9:
moc_listener.cpp: In function ‘QObject* qt_plugin_instance()’:
moc_listener.cpp:202:22: error: cannot allocate an object of abstract type ‘Listener’
QT_MOC_EXPORT_PLUGIN(Listener, Listener)
^
/opt/qt54/include/QtCore/qplugin.h:106:33: note: in definition of macro ‘Q_PLUGIN_INSTANCE’
_instance = new IMPLEMENTATION; \
^
moc_listener.cpp:202:1: note: in expansion of macro ‘QT_MOC_EXPORT_PLUGIN’
QT_MOC_EXPORT_PLUGIN(Listener, Listener)
^
In file included from moc_listener.cpp:9:0:
listener.h:18:7: note: because the following virtual functions are pure within ‘Listener’:
class Listener : public PluginInterface_Listener
^
In file included from listener.h:15:0,
from moc_listener.cpp:9:
../../../interface/PluginInterface_Listener.h:34:29: note: virtual QStringList PluginInterface_Listener::clientsList() const
virtual QStringList clientsList() const = 0;
^
make: *** [moc_listener.o] Error 1