# plasma5-breeze-gtk update missing build component



## Crotalus (Aug 13, 2019)

In an attempt to upgrade plasma5-breeze-gtk I get the following error for a missing package.
What am I missing here? Any help would be appreciated.


```
/bin/mkdir -p /usr/ports/x11-themes/plasma5-breeze-gtk/work/.build
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'cairo'
-- The following RUNTIME packages have been found:

 * GTKEngine, Pixmap/Pixbuf theme engine for GTK 2, <http://www.gtk.org/>
   Required for GTK 2 theme

-- The following REQUIRED packages have been found:

 * ECM (required version >= 0.0.9)
 * Sass, SASS compiler, <https://sass-lang.com/>
   Required for building GTK themes
 * Python3
 * Breeze (required version >= 5.14.90)
   Required to build the Breeze GTK+ styles
 * Qt5
 * Qt5Core

-- The following REQUIRED packages have not been found:

 * PythonCairo
   Required to render assets

CMake Error at /usr/local/share/cmake/Modules/FeatureSummary.cmake:457 (message):
  feature_summary() Error: REQUIRED package(s) are missing, aborting CMake
  run.
Call Stack (most recent call first):
  CMakeLists.txt:24 (feature_summary)


-- Configuring incomplete, errors occurred!
```
This is the packages found

```
root@Prometheus:/ # pkg info "*cairo*"
cairo-1.16.0,2
gstreamer-plugins-cairo-0.10.31_2,3
gstreamer1-plugins-cairo-1.14.4
py27-cairo-1.18.1_1
py36-cairo-1.18.1_1
root@Prometheus:/ #
```
Here is the make 
	
	



```
# $FreeBSD: head/x11-themes/plasma5-breeze-gtk/Makefile 507721 2019-07-31 17:07:14Z tcberner $

PORTNAME=       breeze-gtk
DISTVERSION=    ${KDE_PLASMA_VERSION}
CATEGORIES=     x11-themes kde kde-plasma

MAINTAINER=     kde@FreeBSD.org
COMMENT=        Plasma5 Breeze visual style for Gtk

LICENSE=        LGPL21
LICENSE_FILE=   ${WRKSRC}/COPYING.LIB

BUILD_DEPENDS=  ${PYTHON_PKGNAMEPREFIX}cairo>0:graphics/py-cairo@${PY_FLAVOR} \
                sassc:textproc/sassc
RUN_DEPENDS=    ${PYTHON_PKGNAMEPREFIX}cairo>0:graphics/py-cairo@${PY_FLAVOR}

USES=           cmake compiler:c++11-lang cpe kde:5 pkgconfig \
                python:3.4+ qt:5 tar:xz
USE_GNOME=      gdkpixbuf2
USE_KDE=        breeze ecm
USE_QT=         core buildtools_build qmake_build

BINARY_ALIAS=   python3=${PYTHON_VERSION}

.include <bsd.port.mk>
~
```

What am I missing?


----------



## SirDice (Aug 13, 2019)

Try removing py27-cairo, it shouldn't be there any more. Did you ever run `pkg autoremove` to remove stale/orphaned dependencies?


----------



## Crotalus (Aug 13, 2019)

I removed py27-cairo and I get the same error.

When I attempted to run `pkg autoremove` it flagged 394 packages to be removed. A lot of them has to do with "*KDE*". Is this something that I really want to do?

```
Installed packages to be REMOVED:
        py27-cairo-1.18.1_1
        gpsd-3.17_1
        py27-gobject3-3.28.3
        marble-19.04.3_2
        kdeedu-19.04.3
        kde5-5.16.4.19.04.3

Number of packages to be removed: 6

The operation will free 78 MiB.

Proceed with deinstalling packages? [y/N]: y
```


```
root@Prometheus:/ # pkg info "*cairo*"
cairo-1.16.0,2
gstreamer-plugins-cairo-0.10.31_2,3
gstreamer1-plugins-cairo-1.14.4
py36-cairo-1.18.1_1
root@Prometheus:/ #
```


----------



## SirDice (Aug 13, 2019)

Looks like you haven't updated in quite a while. The default Python version changed to 3.6 a few months ago and your system it appears everything is still on Python 2.7. 

Any specific reason to use ports? I would recommend using packages to keep your system updated.


----------



## Crotalus (Aug 13, 2019)

SirDice said:


> Any specific reason to use ports? I would recommend using packages to keep your system updated.


I have followed the instructions for "Upgrading FreeBSD Ports" 
I always  have used the following;
`portsnap fetch update
portmaster -L --index-only | egrep '(ew|ort) version|total install '
portmaster module_name`
Is this the recomended process?

I believe that I removed python2.7 and I still get the same error of missing '*cairo*'. When I install kde5 which was also deleted here is the result showing two python modules to be reinstalled.  

```
root@Phaedra:~ # pkg install kde5
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 6 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        kde5: 5.16.2.19.04.2
        kdeedu: 19.04.2
        marble: 19.04.2_1
        gpsd: 3.17_1
        py27-cairo: 1.14.1
        py27-gobject3: 3.28.3

Number of packages to be installed: 6

The process will require 78 MiB more space.
44 MiB to be downloaded.

Proceed with this action? [y/N]: y
[1/6] Fetching kde5-5.16.2.19.04.2.txz: 100%    9 KiB   9.7kB/s    00:01   
[2/6] Fetching kdeedu-19.04.2.txz: 100%    832 B   0.8kB/s    00:01   
[3/6] Fetching marble-19.04.2_1.txz: 100%   44 MiB   6.5MB/s    00:07   
[4/6] Fetching gpsd-3.17_1.txz: 100%  507 KiB 519.5kB/s    00:01   
[5/6] Fetching py27-cairo-1.14.1.txz: 100%   55 KiB  55.9kB/s    00:01   
[6/6] Fetching py27-gobject3-3.28.3.txz: 100%  214 KiB 219.0kB/s    00:01   
Checking integrity... done (0 conflicting)
[1/6] Installing py27-cairo-1.14.1...
[1/6] Extracting py27-cairo-1.14.1: 100%
[2/6] Installing py27-gobject3-3.28.3...
[2/6] Extracting py27-gobject3-3.28.3: 100%
[3/6] Installing gpsd-3.17_1...
[3/6] Extracting gpsd-3.17_1: 100%
[4/6] Installing marble-19.04.2_1...
[4/6] Extracting marble-19.04.2_1: 100%
[5/6] Installing kdeedu-19.04.2...
[6/6] Installing kde5-5.16.2.19.04.2...
[6/6] Extracting kde5-5.16.2.19.04.2: 100%
root@Phaedra:~ # root@Phaedra:~ # pkg install kde5
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 6 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        kde5: 5.16.2.19.04.2
        kdeedu: 19.04.2
        marble: 19.04.2_1
        gpsd: 3.17_1
        py27-cairo: 1.14.1
        py27-gobject3: 3.28.3

Number of packages to be installed: 6

The process will require 78 MiB more space.
44 MiB to be downloaded.

Proceed with this action? [y/N]: y
[1/6] Fetching kde5-5.16.2.19.04.2.txz: 100%    9 KiB   9.7kB/s    00:01   
[2/6] Fetching kdeedu-19.04.2.txz: 100%    832 B   0.8kB/s    00:01   
[3/6] Fetching marble-19.04.2_1.txz: 100%   44 MiB   6.5MB/s    00:07   
[4/6] Fetching gpsd-3.17_1.txz: 100%  507 KiB 519.5kB/s    00:01   
[5/6] Fetching py27-cairo-1.14.1.txz: 100%   55 KiB  55.9kB/s    00:01   
[6/6] Fetching py27-gobject3-3.28.3.txz: 100%  214 KiB 219.0kB/s    00:01   
Checking integrity... done (0 conflicting)
[1/6] Installing py27-cairo-1.14.1...
[1/6] Extracting py27-cairo-1.14.1: 100%
[2/6] Installing py27-gobject3-3.28.3...
[2/6] Extracting py27-gobject3-3.28.3: 100%
[3/6] Installing gpsd-3.17_1...
[3/6] Extracting gpsd-3.17_1: 100%
[4/6] Installing marble-19.04.2_1...
[4/6] Extracting marble-19.04.2_1: 100%
[5/6] Installing kdeedu-19.04.2...
[6/6] Installing kde5-5.16.2.19.04.2...
[6/6] Extracting kde5-5.16.2.19.04.2: 100%
root@Phaedra:~ #
```

Any ideas on what I am doing wrong?


----------



## SirDice (Aug 13, 2019)

Crotalus said:


> Is this the recomended process?


Yes. But it doesn't answer the question _why_ you are using ports instead of packages. Just run `pkg upgrade` and let it automatically update. 



Crotalus said:


> Any ideas on what I am doing wrong?


The commands themselves are all good. But you haven't updated in a while, so lots of things have changed. Carefully read /usr/ports/UPDATING to see if there's anything that might apply. Each entry is dated, you need to read as far back as your last update. Often you need to remove or upgrade a specific dependency first in order to get things to build cleanly.


----------



## Crotalus (Oct 16, 2019)

SirDice said:


> Yes. But it doesn't answer the question _why_ you are using ports instead of packages. Just run `pkg upgrade` and let it automatically update.
> 
> 
> The commands themselves are all good. But you haven't updated in a while, so lots of things have changed. Carefully read /usr/ports/UPDATING to see if there's anything that might apply. Each entry is dated, you need to read as far back as your last update. Often you need to remove or upgrade a specific dependency first in order to get things to build cleanly.


I am sorry that I have not responded but I have been in Europe since your post and have not been able to respond until I returned.

Why am I using ports? I found in chapter 4 of the handbook how to add/delete/update port/packages and I believe I used the first one I looked at. It has worked for me and why change? I find that there are comments on the forum of do not mix ports and packages together. The system is up to date at this time.

I installed a desktop, `KDE` so that if I need to look up something for my basement server I don't have to run up two flights of stairs to a Windows machine. I only installed what I needed to run `Firefox, xpdf` and have several terminals/consoles open at one time. So far I have no problems with the desktop even with and old version of `plasma5-breeze-gtk`. I have been looking at stuff that I can delete.


----------

