Repo problem: can't find requiered development tools packages to be able to succesfully build.

Hi!
I was trying to build https://github.com/goldendict/goldendict from the source, since the newest version seems to have some minor bugs removed.

I didn’t try to install the required packages before trying to build the program itself, as the instructions are for Ubuntu.

I tried running qmake-qt4, the command was not found.
Then I tried running qmake, the output is that there is no g++ compiler.
I looked it up on the internet, the advice I found is to install essential development tools. For OpenSuse it seems to need sudo zypper in -t pattern devel_basis command. I run it and here is what I got:

Problem: pattern:devel_basis-20170319-lp150.2.6.x86_64 requires patterns-devel-base-devel_basis, but this requirement cannot be provided
  not installable providers: patterns-devel-base-devel_basis-20170319-lp150.2.6.x86_64[repo-oss]
 Solution 1: downgrade of libncurses6-6.1-lp150.4.3.1.x86_64 to libncurses6-6.1-lp150.3.14.x86_64
 Solution 2: do not install pattern:devel_basis-20170319-lp150.2.6.x86_64
 Solution 3: break pattern:devel_basis-20170319-lp150.2.6.x86_64 by ignoring some of its dependencies

How come there is no the package in the repos I have?

#  | Alias                               | Name                                    | Enabled | GPG Check | Refresh
---+-------------------------------------+-----------------------------------------+---------+-----------+--------
 1 | Hdw_AMDGPU_Pro                      | AMDGPU Pro                              | Yes     | (  ) No   | Yes    
 2 | http-download.opensuse.org-1a061905 | Publishing                              | Yes     | (  ) No   | Yes    
 3 | http-download.opensuse.org-1fd7d259 | home:Simmphonie                         | Yes     | (  ) No   | Yes    
 4 | http-download.opensuse.org-4488f4aa | home:smplayerdev                        | Yes     | (  ) No   | Yes    
 5 | http-download.opensuse.org-49dd8f4e | home:beyerle:IAC                        | Yes     | (  ) No   | Yes    
 6 | http-download.opensuse.org-a108be4a | home:inescid:grid                       | Yes     | (  ) No   | Yes    
 7 | http-download.opensuse.org-a97b91c6 | home:Dead_Mozay                         | Yes     | (  ) No   | Yes    
 8 | http-download.opensuse.org-c90c3dcc | devel:tools:building                    | Yes     | (  ) No   | Yes    
 9 | http-download.opensuse.org-d594777a | home:enzokiel                           | Yes     | (  ) No   | Yes    
10 | http-download.opensuse.org-da4ab5b3 | devel:languages:go                      | Yes     | (  ) No   | Yes    
11 | http-download.opensuse.org-feab6a21 | devel:languages:python:backports        | Yes     | (  ) No   | Yes    
12 | openSUSE-Leap-15.0-1                | openSUSE-Leap-15.0-1                    | No      | ----      | ----   
13 | packman                             | packman                                 | Yes     | (  ) No   | Yes    
14 | repo-debug                          | openSUSE-Leap-15.0-Debug                | Yes     | (  ) No   | Yes    
15 | repo-debug-non-oss                  | openSUSE-Leap-15.0-Debug-Non-Oss        | Yes     | (  ) No   | Yes    
16 | repo-debug-update                   | openSUSE-Leap-15.0-Update-Debug         | Yes     | (  ) No   | Yes    
17 | repo-debug-update-non-oss           | openSUSE-Leap-15.0-Update-Debug-Non-Oss | Yes     | (  ) No   | Yes    
18 | repo-non-oss                        | openSUSE-Leap-15.0-Non-Oss              | Yes     | (  ) No   | Yes    
19 | repo-oss                            | openSUSE-Leap-15.0-Oss                  | Yes     | (  ) No   | Yes    
20 | repo-source                         | openSUSE-Leap-15.0-Source               | No      | ----      | ----   
21 | repo-source-non-oss                 | openSUSE-Leap-15.0-Source-Non-Oss       | No      | ----      | ----   
22 | repo-update                         | openSUSE-Leap-15.0-Update               | No      | ----      | ----   
23 | repo-update-non-oss                 | openSUSE-Leap-15.0-Update-Non-Oss       | Yes     | (  ) No   | Yes    
24 | skype-stable                        | skype (stable)                          | Yes     | (  ) No   | Yes    
25 | skypeforlinux                       | skypeforlinux                           | Yes     | (  ) No   | No     
26 | spotify-easyrpm                     | spotify-easyrpm                         | Yes     | (  ) No   | Yes    
27 | tesseract                           | tesseract                               | Yes     | (  ) No   | No     
28 | tesseract4                          | tesseract4                              | Yes     | (  ) No   | No     

I found the missing package here: https://opensuse.pkgs.org/15.0/opensuse-oss/patterns-devel-base-devel_basis-20170319-lp150.2.6.x86_64.rpm.html
As you can see, I have opensuse 15.0 oss repo
How should I install the development tools?
0 Links

Hi
Hard to say since you have other repositories active that may lead to the ncurses issue (as well as no checking of packages active)…

Install the Leap 15.0 version from the development repository on OBS?
https://build.opensuse.org/package/show/Education/goldendict

No problems on this machine:

erlangen:~ # zypper in -t pattern devel_basis
Loading repository data...
Reading installed packages...
'pattern:devel_basis' is already installed.
No update candidate for 'pattern:devel_basis-20170319-8.4.x86_64'. The highest available version is already installed.
Resolving package dependencies...

Nothing to do.
erlangen:~ # 

You may consider tidying up your list of repos and retry.

Ok I turned on some disabled repos and it worked! Now I was able to use qmake.
Although I am still not able to properly build Goldendict.


(base) aleksandr@aleksandr-pc:~/goldendict> qmake
Project MESSAGE: Install Prefix is: /usr/local
Project ERROR: vorbisfile development package not found

Should I ask somewhere else for help?

Hi
I suspect libvorbis-devel is not installed… Have a look at the spec file in the link I gave you, it has all the BuildRequires listed.

You need these:

erlangen:~ # zypper se --installed-only vorbis
Loading repository data...
Reading installed packages...

S  | Name              | Summary                                    | Type   
---+-------------------+--------------------------------------------+--------
i+ | libvorbis0        | The Vorbis General Audio Compression Codec | package
i+ | libvorbisenc2     | The Vorbis General Audio Compression Codec | package
i+ | libvorbisfile3    | The Vorbis General Audio Compression Codec | package
i+ | vorbis-tools      | Ogg Vorbis Tools                           | package
i  | vorbis-tools-lang | Translations for package vorbis-tools      | package
erlangen:~ # 

I started installing all the packages it requires to compile. Some of them were installed smoothly, for some of those I had to change vendor.
I got stuck on error Project ERROR: Unknown module(s) in QT: webkitwidgets. I list all the steps I’ve undergone below:


(base) aleksandr@aleksandr-pc:~> sudo zypper in libvorbis-devel
OK

(base) aleksandr@aleksandr-pc:~/goldendict> qmake 
Project MESSAGE: Install Prefix is: /usr/local
Project ERROR: hunspell development package not found
(base) aleksandr@aleksandr-pc:~/goldendict> sudo zypper in hunspell-devel
OK

(base) aleksandr@aleksandr-pc:~/goldendict> qmake 
Project MESSAGE: Install Prefix is: /usr/local
Project ERROR: ao development package not found
(base) aleksandr@aleksandr-pc:~/goldendict> sudo zypper in libao-devel
OK

(base) aleksandr@aleksandr-pc:~/goldendict> qmake
Project MESSAGE: Install Prefix is: /usr/local
Project ERROR: libavutil development package not found
(base) aleksandr@aleksandr-pc:~/goldendict> sudo zypper in libavutil-devel
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: libavutil-devel-3.4.2-lp150.2.1.x86_64 requires libavutil55 = 3.4.2-lp150.2.1, but this requirement cannot be provided
  not installable providers: libavutil55-3.4.2-lp150.2.1.x86_64[repo-oss]
 Solution 1: Following actions will be done:
  downgrade of libavutil55-3.4.4-lp150.10.4.x86_64 to libavutil55-3.4.2-lp150.2.1.x86_64
  install libavutil55-3.4.2-lp150.2.1.x86_64 (with vendor change)
    http://packman.links2linux.de  -->  openSUSE
  downgrade of libswscale4-3.4.4-lp150.10.4.x86_64 to libswscale4-3.4.2-lp150.2.1.x86_64
  install libswscale4-3.4.2-lp150.2.1.x86_64 (with vendor change)
    http://packman.links2linux.de  -->  openSUSE
  downgrade of libswresample2-3.4.4-lp150.10.4.x86_64 to libswresample2-3.4.2-lp150.2.1.x86_64
  install libswresample2-3.4.2-lp150.2.1.x86_64 (with vendor change)
    http://packman.links2linux.de  -->  openSUSE
  downgrade of libpostproc54-3.4.4-lp150.10.4.x86_64 to libpostproc54-3.4.2-lp150.2.1.x86_64
  install libpostproc54-3.4.2-lp150.2.1.x86_64 (with vendor change)
    http://packman.links2linux.de  -->  openSUSE
  downgrade of libavresample3-3.4.4-lp150.10.4.x86_64 to libavresample3-3.4.2-lp150.2.1.x86_64
  install libavresample3-3.4.2-lp150.2.1.x86_64 (with vendor change)
    http://packman.links2linux.de  -->  openSUSE
  downgrade of libavformat57-3.4.4-lp150.10.4.x86_64 to libavformat57-3.4.2-lp150.2.1.x86_64
  install libavformat57-3.4.2-lp150.2.1.x86_64 (with vendor change)
    http://packman.links2linux.de  -->  openSUSE
  downgrade of libavfilter6-3.4.4-lp150.10.4.x86_64 to libavfilter6-3.4.2-lp150.2.1.x86_64
  install libavfilter6-3.4.2-lp150.2.1.x86_64 (with vendor change)
    http://packman.links2linux.de  -->  openSUSE
  downgrade of libavdevice57-3.4.4-lp150.10.4.x86_64 to libavdevice57-3.4.2-lp150.2.1.x86_64
  install libavdevice57-3.4.2-lp150.2.1.x86_64 (with vendor change)
    http://packman.links2linux.de  -->  openSUSE
  downgrade of libavcodec57-3.4.4-lp150.10.4.x86_64 to libavcodec57-3.4.2-lp150.2.1.x86_64
  install libavcodec57-3.4.2-lp150.2.1.x86_64 (with vendor change)
    http://packman.links2linux.de  -->  openSUSE
  deinstallation of ffmpeg-3-3.4.4-lp150.10.4.x86_64
  deinstallation of vlc-codecs-3.0.2-lp150.7.3.x86_64
  downgrade of gstreamer-plugins-libav-1.12.5-lp150.3.7.x86_64 to gstreamer-plugins-libav-1.12.5-lp150.2.1.x86_64
  install gstreamer-plugins-libav-1.12.5-lp150.2.1.x86_64 (with vendor change)
    http://packman.links2linux.de  -->  openSUSE
 Solution 2: do not install libavutil-devel-3.4.2-lp150.2.1.x86_64
 Solution 3: break libavutil-devel-3.4.2-lp150.2.1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/3/c] (c): 1
Resolving dependencies...
Resolving package dependencies...

The following 2 NEW packages are going to be installed:
  ffmpeg libavutil-devel

The following 2 packages are going to be REMOVED:
  ffmpeg-3 vlc-codecs

The following 10 packages are going to be downgraded:
  gstreamer-plugins-libav libavcodec57 libavdevice57 libavfilter6 libavformat57 libavresample3 libavutil55 libpostproc54 libswresample2 libswscale4

The following 10 packages are going to change vendor:
  gstreamer-plugins-libav  http://packman.links2linux.de -> openSUSE
  libavcodec57             http://packman.links2linux.de -> openSUSE
  libavdevice57            http://packman.links2linux.de -> openSUSE
  libavfilter6             http://packman.links2linux.de -> openSUSE
  libavformat57            http://packman.links2linux.de -> openSUSE
  libavresample3           http://packman.links2linux.de -> openSUSE
  libavutil55              http://packman.links2linux.de -> openSUSE
  libpostproc54            http://packman.links2linux.de -> openSUSE
  libswresample2           http://packman.links2linux.de -> openSUSE
  libswscale4              http://packman.links2linux.de -> openSUSE

10 packages to downgrade, 2 new, 2 to remove, 10  to change vendor.
Overall download size: 5.5 MiB. Already cached: 0 B. After the operation, 6.4 MiB will be freed.
Continue? [y/n/...? shows all options] (y): y
OK

(base) aleksandr@aleksandr-pc:~/goldendict> qmake 
Project MESSAGE: Install Prefix is: /usr/local
Project ERROR: libavformat development package not found
(base) aleksandr@aleksandr-pc:~/goldendict> sudo zypper in libavformat-devel
OK

(base) aleksandr@aleksandr-pc:~/goldendict> qmake
Project MESSAGE: Install Prefix is: /usr/local
Project ERROR: Unknown module(s) in QT: webkitwidgets
(base) aleksandr@aleksandr-pc:~/goldendict> sudo zypper in libQt5WebKitWidgets-devel
OK

(base) aleksandr@aleksandr-pc:~/goldendict> qmake
Project MESSAGE: Install Prefix is: /usr/local
Project ERROR: Unknown module(s) in QT: webkitwidgets


		0 Links

Hi
Did you look at the spec file reference? Zypper is reasonably smart for installing :wink:


zypper in pkgconfig\(Qt5WebKitWidgets\) pkgconfig\(libavformat\)

or

zypper in "pkgconfig(Qt5WebKitWidgets)" "pkgconfig(libavformat)"

Same procedure as always:

erlangen:~ # zypper se webkitwidgets
Loading repository data...
Reading installed packages...

S  | Name                                      | Summary                                                            | Type   
---+-------------------------------------------+--------------------------------------------------------------------+--------
i+ | libQt5WebKitWidgets-devel                 | Development files for the Qt5 WebKit Widgets library               | package
   | libQt5WebKitWidgets-devel-32bit           | Development files for the Qt5 WebKit Widgets library               | package
   | libQt5WebKitWidgets-private-headers-devel | Non-ABI stable experimental API for the Qt5 WebKit Widgets library | package
i+ | libQt5WebKitWidgets5                      | Qt 5 WebKit Widget library                                         | package
   | libQt5WebKitWidgets5-32bit                | Qt 5 WebKit Widget library                                         | package
erlangen:~ #

You may continue until done. Beware of vendor conflicts!

As I expected, my I couldn’t playback videos after switching the vendors for video packages, as I showed above. I returned my original ones from packman repository


sudo zypper install --allow-vendor-change ffmpeg lame gstreamer-plugins-bad  gstreamer-plugins-ugly gstreamer-plugins-ugly-orig-addon  gstreamer-plugins-libav libavdevice56 libavdevice58 libdvdcss2  vlc-codecs

I have already installed the webkitwidgets packages, you can see me doing it in my previous message.

(base) aleksandr@aleksandr-pc:~/goldendict> sudo zypper in pkgconfig\(Qt5WebKitWidgets\) pkgconfig\(libavformat\)
Retrieving repository 'home:enzokiel' metadata ..............................................................................................................................[done]
Building repository 'home:enzokiel' cache ...................................................................................................................................[done]
Loading repository data...
Reading installed packages...
'pkgconfig(Qt5WebKitWidgets)' not found in package names. Trying capabilities.
'libQt5WebKitWidgets-devel' providing 'pkgconfig(Qt5WebKitWidgets)' is already installed.
'pkgconfig(libavformat)' not found in package names. Trying capabilities.
'ffmpeg-4-libavformat-devel' providing 'pkgconfig(libavformat)' is already installed.
Resolving package dependencies...

Nothing to do.