Ray-V / tde-slackbuilds

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

build with clang #9

Closed olevenets2 closed 6 years ago

olevenets2 commented 6 years ago

Hi, I added some patches that are needed to build a project with a clang. Now it fully works with him. I also fixed some errors related to tdm configuration and made correct links for automatic libraries loading.

Ray-V commented 6 years ago

Thanks - I'll get those patches added to the build scripts.

But it looks as though patch-13 is not complete. It changes /etc/tde/tdm to /etc/trinity/tdm twice, but etc/tde/tdm occurs 4 more times in the script.

And I'll update libpng14 to 1.4.22, and graphviz to whatever the latest is - the version will be taken from the extracted archive.

olevenets2 commented 6 years ago

This is my mistake because of inattention :) /etc/tdm need to replace it everywhere with /etc/trinity. then all settings will be stored in one place, without duplicate folders.

The second point concerns the compilation of the tqt3 toolkit: by default is gcc, to use clang you need to apply a patch for tqt3 /mkspecs/linux-g ++ /qmake.conf

https://paste.ee/p/w8IsK

it can also be added to the script using the comment line or set the patch to automatically turn on when using clang.

Ray-V commented 6 years ago

Hi @olevenets2 I've been working on adding the patches and have only just seen your latest comment, so I'll have a look at that tqt3 patch later.

Setting up TDM was a bit of a learning curve as I don't use a login manager. It works for root and user logins so I guess it's OK now.

This is a summary of the changes I've made based on your patches 1-23

patch-1     already done and modified with patch 16
patches 2,3 added to tdemultimedia.SlackBuild
patch-4     added a rc.4.local file with this content
patches 5,6,7   added to krusader.SlackBuild
patches 8,9 not done
        Doesn't remove unwanted /opt/trinity/share/locale/xx/LC_MESSAGES/d3lphin.mo
        The idea of this process was to remove locale files that aren't relevant to
                the locale being built.
patches 10-12   duplicates of patches 5,6,7
patch-13    done
patch-14    done
patch-15    done
patch-16    done
patches 17,18   duplicates of patches 2,3
patch-19    graphicsmagick  not done - this URL works - why change it?
        Redirects on sourceforge, presumably to a geo-located nearest server.
patch-20    graphviz updated to 2.40.1
patch-21    inkscape    not done - this URL works without redirects - why change it?
patch 22    libpng14 updated to 1.4.22
patch 23    lxml    Updated the URL to the 301 redirect identified by wget
olevenets2 commented 6 years ago

Hi, dolphin will not compile if the language settings are different from English by default: error in the check "&& [[$ langs! = $ line ]] &&", the check should be on incoming (though using grep -q), rather than on the inequality. You can either comment on or add my option, check working with other build languages ​​when you do, please.

Ray-V commented 6 years ago

Dolphin The ru locale build was failing because ru.po is at the end of the 'while read line' list. Changed to a 'for line in' loop which works. Your patch didn't work because the build uses cmake, so Makefile.am isn't used. I guess the line to modifify in CMakeLists.txt is ' file(GLOB PO_FILES *.po)'. I don't know how to do that yet so I'll add it to my TODO list.

tqt3 patch Done. Works for gcc-g++-5.4.0/llvm-3.7.0, testing for gcc-g++-7.3.0/llvm-6.0.0 to be done.

olevenets2 commented 6 years ago

Great job, everything really works!

How about adding the ability to build the latest releases from git?

Ray-V commented 6 years ago

@olevenets2

I think building from git is a good idea. Let's start a new issue on that.

I've added some more clang patches and there are now only k9copy and soundkonverter that won't build with clang. I'm not a programmer, and can only do the simple stuff that I can find clues to from an online search. Can you help with these two?

olevenets2 commented 6 years ago

Need to fix the patch for tqca-tls, it can not find the files:

patching file Makefile Reversed (or previously applied) patch detected! Assume -R? [n]Apply anyway? [n] Skipping patch.

Ray-V commented 6 years ago

I'll need more information from you on this.

The build succeeds for me -

the directory the build is in for applying the patch is correct -

/tmp/build/tmp-tqca-tls/dependencies/tqca-tls

the original Makefile is in that directory -

12 CC       = gcc  
13 CXX      = g++  
21 LINK     = g++

the patched Makefile is correct -

12 CC       = $(COMPILER)  
13 CXX      = $(COMPILER_CXX)  
21 LINK     = $(COMPILER_CXX)

Have you built this package before, since the patch was added? It seems that the build is trying to use an existing build directory where the patch has already been applied. But even setting 'keep temporary files = yes' doesn't reproduce this failure.

Attach a copy of your '/tmp/build/vars' directory and I'll see if it fails for me with those settings.

olevenets2 commented 6 years ago

Hi, error:

tqca-tls.SlackBuild FAILED at line 69

it seems that this patch is not needed since when selecting the clang compiler in the Makefile preferences it already uses the correct parameters. Makefile.orig has the same settings as the modified Makefile, it's just duplication.

Ray-V commented 6 years ago

I've been trying various build scenarios and had a pre-patch tqt3 installed and forgot that tqca-tls uses the installed tqt qmake.conf to generate its Makefile.

You're right - the patch isn't necessary because tqt3 will have been built beforehand and the patch already applied.