Ray-V / tde-slackbuilds

A fork of Thorn Inurcide's SlackBuilds for the Trinity Desktop Environment
17 stars 5 forks source link

libart-lgpl #16

Closed olevenets2 closed 4 years ago

olevenets2 commented 4 years ago

Hello, I have slackware64-14.2, the libart-lgpl package does not compile:

libart-lgpl.SlackBuild: line 42: ../configure: no such file or directory

SlavekB commented 4 years ago

You need to either add regenerate automake build files or change the build to CMake.

olevenets2 commented 4 years ago

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

olevenets2 commented 4 years ago

or correct the script how it should be

Ray-V commented 4 years ago

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.

olevenets2 commented 4 years ago

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.

olevenets2 commented 4 years ago

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

Ray-V commented 4 years ago

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.

Ray-V commented 4 years ago

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.

olevenets2 commented 4 years ago

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: error: 
      allocation of incomplete type 'KURLRequester'
    downloadTargetURLRequester = new KURLRequester( groupBox1...
                                     ^~~~~~~~~~~~~
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/magnatunebrowser/magnatunedownloaddialogbase.h:23:7: note: 
      forward declaration of 'KURLRequester'
class KURLRequester;
      ^
/tmp/build/tmp-amarok/amarok/build-amarok/amarok/src/magnatunebrowser/magnatunedownloaddialogbase.cpp:69:33: error: 
      cannot initialize a parameter of type 'TQWidget *' with an
      lvalue of type 'KURLRequester *'
    groupBox1Layout->addWidget( downloadTargetURLRequester, 1, 1 );
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/trinity/lib64/tqt3/include/ntqlayout.h:334:31: note: passing
      argument to parameter here
    void addWidget( TQWidget *, int row, int col, int align = 0 );

Ray-V commented 4 years ago

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

SlavekB commented 4 years ago

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.

olevenets2 commented 4 years ago

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

log https://paste.ee/p/l36yS

Ray-V commented 4 years ago

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.

olevenets2 commented 4 years ago

knemo:

sed: can't read translations/Makefile.am: No such file or directory
knetstats.SlackBuild FAILED at line 39
Ray-V commented 4 years ago

Done

olevenets2 commented 4 years ago

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.

Ray-V commented 4 years ago

@olevenets2

You can easily monitor the progress on Amarok yourself:

https://mirror.git.trinitydesktop.org/gitea/TDE/amarok/pulls/10

bormant commented 4 years ago

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.

SlavekB commented 4 years ago

Yes I know. There is a drawback because <includehints>...</includehints> should have been changed to <includes>...</includes>. Me or Greg will fix it soon.

bormant commented 4 years ago

@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
Ray-V commented 4 years ago

@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;
       ^~~~~~~~~
bormant commented 4 years ago

@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>
bormant commented 4 years ago

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>
bormant commented 4 years ago

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

Ray-V commented 4 years ago

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 @@
+ \ktextedit.h\
+ <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 @@
+ \ktextedit.h\
+ \kcombobox.h\
+ <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 @@
+ \ location="global" impldecl="in implementation">ktextedit.h\
+ \ location="global" impldecl="in implementation">kcombobox.h\
+ \ location="global" impldecl="in implementation">kcolorbutton.h\
+ <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 @@
+ \ location="global" impldecl="in implementation">ktextedit.h\
+ \ location="global" impldecl="in implementation">kcombobox.h\
+ \ location="global" impldecl="in implementation">kcolorbutton.h\
+ \ location="global" impldecl="in implementation">tdefontrequester.h\
+ <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 @@
+ \ location="global" impldecl="in implementation">kcombobox.h\
+ <include> location="global" impldecl="in implementation">knuminput.h</include>

tdeamarok.SlackBuild.txt

bormant commented 4 years ago

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.