Closed olevenets2 closed 4 years ago
You need to either add regenerate automake build files or change the build to CMake.
Then it should be like this:
LDFLAGS="$SLKLDFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
CFLAGS="$SLKCFLAGS" \
CC=${COMPILER} \
CXX=${COMPILER_CXX} \
autoscan; mv configure.scan configure.ac; autoconf
../configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--disable-static \
--build=$ARCH-slackware-linux \
correct if I am wrong
or correct the script how it should be
Fixed with commit ee37f09
I've updated the SlackBuild for a cmake build for the development version [cgit].
There's a lot of development work going on to convert the builds to cmake so it makes sense to take advantage of that. The autotools build for [rR]14.0.6 still works.
Thanks, it works!
but I still get build errors on my Slackware 14.2
tqca-tls:
sed: can't read Makefile: No such file or directory.
Unfortunately, it still does not work. Next package tdenetwork:
[ 0%] Linking C static library libtdevncclient.a [ 0%] Built target tdevncclient-static Makefile:127: ошибка выполнения рецепта для цели «all» make: *** [all] Ошибка 2
here is the complete build log https://paste.ee/p/yCly5
I think the problem there might be from lines 241/253: /usr/include/tqt/tqt.h:46:10: fatal error: 'ntqglobal.h' file not found.
I hopefully fixed that in the latest commit https://github.com/Ray-V/tde-slackbuilds/commit/6ae1e640c3789b42dc2f7b4a3efac7fd5421847d#diff-995081b78bab60ef0233ca8c455f96beL50, although I only tested it with gcc and it builds OK with that.
If you're going to be building tde-i18n-xx from a new download, you might get this error:
CMake Error at cmake/modules/TDEMacros.cmake:1461 (add_custom_target): add_custom_target cannot create target "tdefilereplace-xx-translation" because another target with the same name already exists.
The problem there is that tdefilereplace.po has been moved from tdewebdev to tdeutils but because the build uses wget for updating, the old copy still exists.
The short term fix is:
rm src/cgit/tdei18n/cgit/tde-i18n/plain/tde-i18n-xx/messages/tdewebdev/tdefilereplace.po
Updating a tde-i18n-xx repo entails a new download of everything, so the long term fix is probably just to remove the previous local copy before downloading an update.
Thanks, it works, the core-part compiled without errors. But still problems compiling applications. Tdeamarok:
[ 15%] Building CXX object amarok/src/magnatunebrowser/CMakeFiles/magnatunebrowser-static.dir/magnatunedownloaddialog.cpp.o
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/magnatunebrowser/magnatunedownloaddialogbase.cpp:67:38: [0;1;31merror:
allocation of incomplete type 'KURLRequester'
downloadTargetURLRequester = new KURLRequester( groupBox1...
[0;1;32m ^~~~~~~~~~~~~
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/magnatunebrowser/magnatunedownloaddialogbase.h:23:7: [0;1;30mnote:
forward declaration of 'KURLRequester'
class KURLRequester;
[0;1;32m ^
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/magnatunebrowser/magnatunedownloaddialogbase.cpp:69:33: [0;1;31merror:
cannot initialize a parameter of type 'TQWidget *' with an
lvalue of type 'KURLRequester *'
groupBox1Layout->addWidget( downloadTargetURLRequester, 1, 1 );
[0;1;32m ^~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/trinity/lib64/tqt3/include/ntqlayout.h:334:31: [0;1;30mnote: passing
argument to parameter here
void addWidget( TQWidget *, int row, int col, int align = 0 );
[0;1;32m
I can't help you with this, it looks like a FTBFS.
If @SlavekB doesn't comment, try raising an issue - https://mirror.git.trinitydesktop.org/gitea/TDE/amarok/issues
As I have said many times, the CMake port of Amarok is incomplete and it is not a good idea to build Amarok with CMake. However, thanks to Greg's efforts, it looks like the CMake port of Amarok could soon be completed see – pull-request: TDE/amarok#10
So, if you want to use CMake to build Amarok, you can try the patch from this pull-request. Just be careful, pull-request is still WIP, so there may be other changes – for example, to support hidden visibility.
imlib-cgit does not compile with clang:
../../gdk_imlib/modules.c:(.text+0x50): multiple definition of `g_bit_storage'
.libs/cache.o:../../gdk_imlib/cache.c:(.text+0x50): first defined here
clang-3.8: error: linker command failed with exit code 1 (use -v to see invocation)
Makefile:393: ошибка выполнения рецепта для цели «libgdk_imlib.la»
make[2]: *** [libgdk_imlib.la] Ошибка 1
make[2]: выход из каталога «/tmp/build/tmp-imlib/imlib-1.9.15/build-imlib/gdk_imlib»
Makefile:369: ошибка выполнения рецепта для цели «all-recursive»
make[1]: *** [all-recursive] Ошибка 1
make[1]: выход из каталога «/tmp/build/tmp-imlib/imlib-1.9.15/build-imlib»
Makefile:204: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2
I think this will help
https://github.com/Ray-V/tde-slackbuilds/issues/12#issuecomment-477377015
Using the gtk+-1.2.10-x86_64-5 and glib-1.2.10-x86_64-3 packages from Slackware 14.2 also produces this error with gcc.
gdk_imlib isn't needed for kuickshow, and imlib can be built without it by moving gtk-config out of the PATH. But upgrading to gtk+-1.2.10-x86_64-7 and glib-1.2.10-x86_64-7 from Slackware-current produces a successful build.
So if you really want to build gdk_imlib, try using those Sl-current packages.
knemo:
sed: can't read translations/Makefile.am: No such file or directory
knetstats.SlackBuild FAILED at line 39
Thank you, all packages now work, with the exception of Amarok. Let me know here when it will be fixed and it can be compilired.
@olevenets2
You can easily monitor the progress on Amarok yourself:
https://mirror.git.trinitydesktop.org/gitea/TDE/amarok/pulls/10
About Amarok:
[ 15%] Building CXX object amarok/src/magnatunebrowser/CMakeFiles/magnatunebrowser-static.dir/magnatunedownloaddialog.cpp.o
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/magnatunebrowser/magnatunedownloaddialogbase.cpp:67:38: error: allocation of incomplete type 'KURLRequester'
downloadTargetURLRequester = new KURLRequester( groupBox1...
^~~~~~~~~~~~~
uic-tqt from tqt3 doesn't read includehints section of .ui file.
So, generated .cpp doesn't contain #include <kurlrequester.h>
with KURLRequester class declaration.
Yes I know. There is a drawback because <includehints>...</includehints>
should have been changed to <includes>...</includes>
. Me or Greg will fix it soon.
@Ray-V quick'n'dirty fix for tdeamarok.SlackBuild does the trick:
diff --git a/Apps/tdeamarok/tdeamarok.SlackBuild b/Apps/tdeamarok/tdeamarok.SlackBuild
index cfe3708..8781ce0 100755
--- a/Apps/tdeamarok/tdeamarok.SlackBuild
+++ b/Apps/tdeamarok/tdeamarok.SlackBuild
@@ -54,6 +54,9 @@ sed -i -e 's|wav )|wav )\nadd_subdirectory( speex )|' \
# Yauap does NOT handle the mp3 format.
[[ $(ls /var/log/packages/yauap-*) ]] && YAUAP="ON"
+# fix includehints
+find . -name \*.ui -exec sed -i -e 's|includehint|include|g' '{}' +
+
listdocs_fn
# set support for additional language(s) as per I18N variable
@bormant
Building cgit @ revision f55d36b. That fix moves the build on, but it still fails:
[ 62%] Building CXX object amarok/src/CMakeFiles/amarok-shared.dir/Options5.cpp.o
In file included from /tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.cpp:25:
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.ui.h: In member function ‘void Options5::init()’:
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.ui.h:43:23: error: invalid use of incomplete type ‘class KComboBox’
kcfg_OsdScreen->insertItem( TQString::number( i ) );
^~
In file included from /tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.cpp:12:
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.h:27:7: note: forward declaration of ‘class KComboBox’
class KComboBox;
^~~~~~~~~
@Ray-V amarok/src/Options5.ui already contains
<includes>
...
</includes>
block before
<includehints>
<includehint>ktextedit.h</includehint>
</includehints>
The second include block (after sed) doesn't processed as expected.
This can be fixed with this patch to Options5.ui before the sed ...
:
--- Options5.ui.orig 2019-11-30 21:33:08.109836490 +0300
+++ Options5.ui 2019-11-30 21:32:46.815194032 +0300
@@ -507,6 +507,7 @@
<include location="global" impldecl="in implementation">tqapplication.h</include>
<include location="global" impldecl="in implementation">tqdesktopwidget.h</include>
<include location="local" impldecl="in declaration">osd.h</include>
+ <include>ktextedit.h</include>
</includes>
<variables>
<variable access="private">OSDPreviewWidget *m_pOSDPreview;</variable>
@@ -525,7 +526,4 @@
<function access="protected">showEvent( TQShowEvent * )</function>
</functions>
<layoutdefaults spacing="6" margin="11"/>
-<includehints>
- <includehint>ktextedit.h</includehint>
-</includehints>
</UI>
or this (more strict syntax)
--- a/amarok/src/Options5.ui 2019-11-30 21:33:08.109836490 +0300
+++ b/amarok/src/Options5.ui 2019-11-30 21:53:56.721857213 +0300
@@ -506,6 +506,7 @@
<includes>
<include location="global" impldecl="in implementation">tqapplication.h</include>
<include location="global" impldecl="in implementation">tqdesktopwidget.h</include>
+ <include location="global" impldecl="in implementation">ktextedit.h</include>
<include location="local" impldecl="in declaration">osd.h</include>
</includes>
<variables>
@@ -525,7 +526,4 @@
<function access="protected">showEvent( TQShowEvent * )</function>
</functions>
<layoutdefaults spacing="6" margin="11"/>
-<includehints>
- <includehint>ktextedit.h</includehint>
-</includehints>
</UI>
List of UIs with both includes and includehints (so can be fixed with moving lines from inludehints block to includes block):
./Options1.ui
./Options2.ui
./Options5.ui
./Options8.ui
./dbsetup.ui
./mediadevice/generic/genericmediadeviceconfigdialog.ui
./organizecollectiondialog.ui
./tagguesserconfigdialog.ui
./scripts/graphequalizer/eqdialog.ui
The patch: https://pastebin.com/TgfAPP5r
I tried those patches and got more errors which I've hopefully fixed by continuing to add headers.
I'm not a programmer, so that might not be the right way but the build completes and amarok runs.
14.0.6 builds with or without these patches.
I've attached the tdeamarok.SlackBuild I've used - @olevenets2 might be interested in trying it.
This is the sequence of errors and fixes to get the build to complete - the patches have been added to the SlackBuild:
error:
[ 66%] Building CXX object ...
In file included from /tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.cpp:25:
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.ui.h: In member function ‘void Options5::init()’:
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.ui.h:43:23: error: invalid use of incomplete type ‘class KComboBox’
kcfg_OsdScreen->insertItem( TQString::number( i ) );
^~
add:
--- amarok/src/Options5.ui
+++ amarok/src/Options5.ui
@@ -508,0 +509,2 @@
+ \
+ <include location="global" impldecl="in implementation">kcombobox.h</include>
error:
[ 66%] Building CXX object ...
In file included from /tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.cpp:26:
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.ui.h: In member function ‘void Options5::init()’:
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.ui.h:48:84: error: no matching function for call to ‘Options5::connect(KColorButton*&, const char [25], OSDPreviewWidget*&, const char [30])’
m_pOSDPreview, TQT_SLOT( setTextColor(const TQColor&) ) );
^
add:
--- amarok/src/Options5.ui
+++ amarok/src/Options5.ui
@@ -508,0 +509,3 @@
+ \
+ \
+ <include location="global" impldecl="in implementation">kcolorbutton.h<include>
error:
[ 66%] Building CXX object ...
In file included from /tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.cpp:27:
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.ui .h: In member function ‘void Options5::init()’:
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.ui .h:56:78: error: no matching function for call to ‘Options5::connect(TDEFontRequester*&, const char [29], OSDPreviewWidget*&, const char [24])’
m_pOSDPreview, TQT_SLOT( setFont(const TQFont&) ) );
^
add:
--- amarok/src/Options5.ui
+++ amarok/src/Options5.ui
@@ -508,0 +509,4 @@
+ \
+ \
+ \
+ <include> location="global" impldecl="in implementation">tdefontrequester.h</include>
error:
[ 66%] Building CXX object ...
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.cpp: In constructor ‘Options5::Options5(TQWidget*, const char*, TQt::WFlags)’:
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/Options5.cpp:164:72: error: invalid use of incomplete type ‘class KIntSpinBox’
kcfg_OsdDuration = new KIntSpinBox( groupBox22, "kcfg_OsdDuration" );
^
add:
--- amarok/src/Options5.ui
+++ amarok/src/Options5.ui
@@ -508,0 +509,5 @@
+ \
+ \
+ \
+ \
+ <include> location="global" impldecl="in implementation">knuminput.h</include>
error:
[ 85%] Building CXX object ...
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/scriptmanagerbase.cpp: In constructor ‘ScriptManagerBase::ScriptManagerBase(TQWidget*, const char*, TQt::WFlags)’:
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/scriptmanagerbase.cpp:33:50: error: invalid use of incomplete type ‘class TDEListView’
listView = new TDEListView( this, "listView" );
^
add:
--- amarok/src/scriptmanagerbase.ui
+++ amarok/src/scriptmanagerbase.ui
@@ -131,0 +132 @@
+ <include> location="global" impldecl="in implementation">tdelistview.h</include>
error:
[ 99%] Building CXX object ...
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/engine/xine/xineconfigbase.cpp: In constructor ‘XineConfigBase::XineConfigBase(TQWidget*, const char*, TQt::WFlags)’:
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/engine/xine/xineconfigbase.cpp:56:67: error: invalid use of incomplete type ‘class KComboBox’
deviceComboBox = new KComboBox( FALSE, this, "deviceComboBox" );
^
add:
--- amarok/src/engine/xine/xineconfigbase.ui
+++ amarok/src/engine/xine/xineconfigbase.ui
@@ -503,0 +504 @@
+ <include> location="global" impldecl="in implementation">kcombobox.h</include>
error:
[100%] Building CXX object ...
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/engine/xine/xineconfigbase.cpp: In constructor ‘XineConfigBase::XineConfigBase(TQWidget*, const char*, TQt::WFlags)’:
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/engine/xine/xineconfigbase.cpp:144:59: error: invalid use of incomplete type ‘class KIntSpinBox’
portIntBox = new KIntSpinBox( groupBox1, "portIntBox" );
^
add:
--- amarok/src/engine/xine/xineconfigbase.ui
+++ amarok/src/engine/xine/xineconfigbase.ui
@@ -503,0 +504,2 @@
+ \
+ <include> location="global" impldecl="in implementation">knuminput.h</include>
Are there any advantages using $'' and "while read line; do"
echo $'
...
' | while read line
do
patch -N -p0
done || true
instead of
echo '
...
' | patch -N -p0 || true
? If I'm not wrong, $'string' expands backslash-escaped C-like sequences (\r, \n, \b and so on) but it is dangerous for patches in general, and just luck .ui (xml) usually doesn't contain them.
Hello, I have slackware64-14.2, the libart-lgpl package does not compile:
libart-lgpl.SlackBuild: line 42: ../configure: no such file or directory