Bug 421637

Summary: [breeze-icons] Some small build problem, but it goes away if one uses a separate build dir, and -DBUILD_TESTING=OFF -Wno-dev (URL: https://download.kde.org/stable/frameworks/5.70/breeze-icons-5.70.0.tar.xz )
Product: [Plasma] Breeze Reporter: shevegen <shevegen>
Component: IconsAssignee: Nate Graham <nate>
Status: RESOLVED FIXED    
Severity: normal CC: kainz.a, nate
Priority: NOR    
Version First Reported In: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: 5.71
Sentry Crash Report:

Description shevegen 2020-05-16 19:29:50 UTC
Hey there KDE devs,

I would like to report a possible bug. I write "possible" because I
am not 100% sure if it is a bug. It is actually a compile-related
problem. I will explain this in a moment in more detail.

The program this report is about is called "breeze-icons".

I have used the following URL for this:

    https://download.kde.org/stable/frameworks/5.70/breeze-icons-5.70.0.tar.xz

I compile all the KDE components from source, via ruby, an I would
like to state that things have improved a LOT in the last ~3 years
or so. From release to release I run into fewer and fewer problems.
A few problems are caused by my own noobness; but other problems
are at the least partially related to errors in some build script
or some other setup. Anyway.

When I write a "possible bug", I also actually mean that I managed
to compile breeze-icons successfully just now.

The variant that works fine for me is the variant used by the
LFS/BLFS team, and is briefly shown here:

http://www.linuxfromscratch.org/blfs/view/svn/x/breeze-icons.html

The two relevant factors here are, IMO, that they:

1) use a separate build directory

and

2) Use a specific commandline option, being:

    cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTING=OFF -Wno-dev ..

So when I did NOT use the two options "-DBUILD_TESTING=OFF
-Wno-dev", I run into this problem (I have indended this
4 spaces to the right):

    [ 88%] Generating res/breeze-icons.qrc
    Error copying directory from "/Depot/jjj/breeze-icons-5.70.0/icons" to "/Depot/jjj/breeze-icons-5.70.0/icons/res"

So some copy-operation fails. IF I use a build directory
AND these two configure options to cmake, then the
program compiles without error.

I just did another compile-try again, and I can confirm
that I do not run into this problem with the above 
options; but without them, I run into these problems.
So I am quite sure that there is some small error in
the build-process. Maybe that it should require a 
separate build-dir, or maybe that it needs these
options, or perhaps both.

Either way I thought it may be best to report this.

I know too little about cmake to understand which
part of the copy-directory action fails.

I assume that I personally will not run into this
problem anymore, since it compiles fine for me now,
but if someone else runs into this I wanted to 
mention it. Perhaps a separate build-directory 
should be enforced by breeze-icons, I can not say
(I am not an expert when it comes to Makefiles or
cmake-build files, sorry). Anyway, that's my report,
keep up the improvements to the build setup - it 
actually helps a LOT the fewer problems there are,
in particular for distributions with a lack of 
manpower (such as GoboLinux; when I manage to 
compile the whole KDE suite, I can try to help
the GoboLinux guys, but it is of course easier
when things work with as few problems as possible,
out of the box; and as said, things did improve a 
lot over the last few years. I still remember the
KDE 4 days ... that was painful).
Comment 1 Nate Graham 2020-05-16 19:42:06 UTC
Yeah, you're supposed to use a separate build directory. :) This is not just for Breeze icons, but for everything. It's just a good practice in general, even if it's ever not strictly speaking required.

We can look into making it mandatory.
Comment 2 Nate Graham 2020-05-16 19:47:20 UTC
Patch: https://phabricator.kde.org/D29802
Comment 3 Nate Graham 2020-05-17 17:16:36 UTC
Git commit 7abe60d96609f096bdc54e85772f965db4d8bacb by Nate Graham.
Committed on 17/05/2020 at 17:15.
Pushed by ngraham into branch 'master'.

Require in-source build

Summary:
In addition to just being a good idea in general, the dynamic icon
generation bit doesn't work properly with in-source builds. Let's
formally require out-of-source builds.
FIXED-IN: 5.71

Test Plan: Try out of source build, get yelled at

Reviewers: #frameworks, #vdg, ognarb

Reviewed By: ognarb

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D29802

M  +5    -0    CMakeLists.txt

https://invent.kde.org/frameworks/breeze-icons/commit/7abe60d96609f096bdc54e85772f965db4d8bacb