"osc build" fails preparing the build root

Hello,

I have a project at my home I could build without problems until last September, both locally and online.
Since then, I’m no more able to build it, due to an error arising while *osc build *sets up the buildroot:

… ]
27s] [171/172] cumulate gcc-PIE-11-4.1
27s] [172/172] cumulate rpm-build-4.17.0-2.1
27s] now installing cumulated packages
30s] Preparing… ########################################
30s] file /usr/lib64/pkgconfig conflicts between attempted installs of pkgconf-pkg-config-1.7.3-26.5.x86_64 and filesystem-84.87-3.1.x86_64
30s] file /usr/share/pkgconfig conflicts between attempted installs of pkgconf-pkg-config-1.7.3-26.5.x86_64 and filesystem-84.87-3.1.x86_64
30s] exit …
30s]
30s] tweed failed “build pkgconf.spec” at Wed Dec 15 22:24:16 UTC 2021.
30s]

The buildroot was: /var/tmp/build-root/openSUSE_Tumbleweed-x86_64

from pkgconf-pkg-config changelog I see:


Wed Apr 7 16:19:46 UTC 2021 - Dirk Müller <dmueller@suse.com>

  • do not own directories provided by filesystem
    … ]

so the problem could be solved by replacing 1.7.3 with 1.7.4++ in the buildroot but I can’t figure out how to do that :frowning:

BTW I can build my RPMs without problems in my Tumbleweed box without OBS, since pkgconf-pkg-config is 1.8.0.

Thank in advance for your answers.

Max

Hi
Clean your buildroot…


osc build --clean
<subsequent builds with same pakage>
osc build -o

Hi Malcolm
Just done. Nothing changes :\ I append the link to full output log below

https://drive.google.com/file/d/11urRRK5OeOLlEXu5eahjoMPhGIG7lDlA/view?usp=sharing

Hi
You need to change the spec file… See https://build.opensuse.org/package/view_file/home:dl8fcl:sdr/echoes/echoes.spec?expand=1

Where did version 0.50 come from, releases are only 0.33

https://sourceforge.net/projects/echoes/files/sources/

FYI, just link to the project on OBS :wink:

:open_mouth:
oh, In 0.50 there are many changes since 0.33, the most important I changed the underlying SDR API library from librtlsdr to Soapy to support more devices than RTLSDR only.
So I chose to skip the 0.34++ to highlight this difference. 0.40 could be enough, I exaggerated a little, up to 0.50 lol! probably a 0.40 could be enough. Thanks for spec file hint,
I’l fix it tomorrow.

Hi
Where is the link to 0.50, you should put the full url to the download (plus when wanting to update you can auto download the source, plus it’s a OBS check). Don’t use soapy, but do work with RTL SDRs (ADSB and high altitude balloons).

eg;


Source0:        https://github.com/epinio/epinio/archive/refs/tags/v0.2.1.tar.gz#/%{name}-v%{version}.tar.gz

So I can update the spec file version, then run the following to update the source;


osc service runall download_files

well, the 0.50 has not been published yet. My goal here is to check if building in obs still works or if I need to update something, like the spec or the other files need to build deb packages
because I want to put these up to date files in the final 0.50 tarball. That tarball will be published on Sourceforge then the spec will link it.

I updated my spec file following the one you linked - I could not plain copy it because it’s an old release (0.26 = May 2019)

https://build.opensuse.org/package/view_file/home:astronopteryx/echoes/echoes.spec?expand=1

despite that, nothing changes: the build continue to fail since the buildroot itself fails to install. The system neither starts to build my program, it dies before.:disapointed:

I didn’t understand two things:

1-when I should put pkgconfig(package) following BuildRequires: and when not, because if I try

BuildRequires:  pkgconfig(libliquid-devel)
BuildRequires:  pkgconfig(libSoapySDR0_8)

the build fails even without OBS, while

BuildRequires:  libliquid-devel >= 1.3.2
BuildRequires:  libSoapySDR0_8

at least without OBS, it builds.

2-with

BuildRequires:  pkgconfig(*package*)

how could I specify that builds requires *package *to be at least in version x.y ?

Thanks

Hi
Neither of those packages have pc files hence pkgconfig won’t work…

All those echos in the spec? no make install?

Your make file should perhaps take advantage of install and use %{buildroot} not the old RPM_… in the make file use destdir (simple example https://github.com/malcolmlewis/systemd-htop-service/blob/master/Makefile).

Unfortunately I don’t package for other distributions, so can’t really help there.

Hi
Ahh a pro file, add targets, I did some modes on the imagewriter one a few years ago, see the end of the file $$PREFIX;

https://github.com/malcolmlewis/imagewriter/blob/master/imagewriter.pro

Hi,
I updated my spec, removing the “echo” lines and using %{buildroot} in place of $ variables.

https://build.opensuse.org/package/view_file/home:astronopteryx/echoes/echoes.spec?expand=1

This still doesn’t solve the “osc build” issue. I can create RPMS on my linux box only, without OBS.

I don’t think that my spec file contents could determine such a problem. There is also another package in my home project, “fec”
I simply forked it, without modifications in spec, but its build online fails for the same reason:

[https://build.opensuse.org/package/live_build_log/home:astronopteryx/fec/openSUSE_Tumbleweed/x86_64

:](https://build.opensuse.org/package/live_build_log/home:astronopteryx/fec/openSUSE_Tumbleweed/x86_64)

Hi
Can you remove the pkgconf link in your project, it may be causing issues. Your pulling an old version (1.7.3), delete the two references in your BuildRequires and see how it goes. FWIW I use “BuildRequires: pkgconfig” to pull pkgconf and other needed files.

Hi

pkgconf link deleted

I tried to force a release higher than 1.7.3 for pkgconf-pkg-config

BuildRequires:  pkgconfig > 1.7.3

because the error message says:

 file /usr/lib64/pkgconfig conflicts between attempted installs of **pkgconf-pkg-config-1.7.3**-26.5.x86_64 and filesystem-84.87-3.1.x86_64


And I have 1.8.0 in my Tumbleweed box. Now while building, an error appears immediately saying:


zot@tweed:~/OBS/home:astronopteryx/echoes> osc build
Building echoes.spec for openSUSE_Tumbleweed/x86_64
Getting buildconfig from server and store to /home/zot/OBS/home:astronopteryx/echoes/.osc/_buildconfig-openSUSE_Tumbleweed-x86_64
Getting buildinfo from server and store to /home/zot/OBS/home:astronopteryx/echoes/.osc/_buildinfo-openSUSE_Tumbleweed-x86_64.xml
buildinfo is broken... it says:
unresolvable: nothing provides pkgconf-pkg-config > 1.7.3
      (got version 1.7.3-26.5)

This was the reason for the pkgconf 1.8.0 link. Why I can’t get a 1.8.0 in my buildroot?

Hi
Remove both BuildRequires (pkgconf-pkg-config, pkgconf), the build should pull pkgconfig automatically or use that name as a BuildRequires.

Sorry, there is only one


BuildRequires:  pkgconf-pkg-config > 1.7.3

in my spec. I commented it, but the result is now the same of two days ago, the buildroot creation that fails complaining

file /usr/lib64/pkgconfig conflicts between attempted installs of **pkgconf-pkg-config-1.7.3**-26.5.x86_64 and filesystem-84.87-3.1.x86_64
file /usr/share/pkgconfig conflicts between attempted installs of pkgconf-pkg-config-1.7.3-26.5.x86_64 and filesystem-84.87-3.1.x86_64

is there any headbang emoticon here? because is the one I’d need now

Hi
Remove it, find it in your packagecache directory and delete, then run osc with the --clean option.

Well, I wiped out completely the folders /var/tmp/build-root and /var/tmp/osbuild-packagecache

(rm -fr *)

then I launched

osc build --clean

and here https://drive.google.com/file/d/1hIQp5EhJRFg7JWwLAxnB8aGhJimYe2qB/view?usp=sharing is the build log.

the downloaded pkgconf-related packages are always 1.7.3 … mah :\ I’ll stop here for now, since Santa is approaching…
Merry Xmas Malcom and thanks for your help.:slight_smile:

Hi
Are you sure of the release your building…


osc repos

Hi

I have no idea what this command shoud do but:

zot@tweed:~/OBS/home:astronopteryx/echoes> osc repos
xUbuntu_20.10               x86_64
xUbuntu_20.04               x86_64
xUbuntu_19.10               x86_64
xUbuntu_18.10               x86_64
xUbuntu_18.10               i586
xUbuntu_18.04               x86_64
xUbuntu_18.04               i586
xUbuntu_17.10               x86_64
xUbuntu_17.10               i586
xUbuntu_16.04               i586
xUbuntu_16.04               x86_64
openSUSE_Tumbleweed         i586
openSUSE_Tumbleweed         x86_64
openSUSE_Leap_42.3          x86_64
openSUSE_Leap_42.3          i586
openSUSE_Leap_15.3_ARM      aarch64
openSUSE_Leap_15.3_ARM      armv7l
openSUSE_Leap_15.3          x86_64
openSUSE_Leap_15.2_PowerPC  ppc64le
openSUSE_Leap_15.0          x86_64
openSUSE_Leap_15.0          i586
openSUSE_Factory_zSystems   s390x
openSUSE_Factory_RISCV      riscv64
openSUSE_Factory_PowerPC    ppc64
openSUSE_Factory_PowerPC    ppc64le
openSUSE_Factory_ARM        armv7l
openSUSE_Factory_ARM        aarch64
Raspbian_9.0_standard       armv7l
Raspbian_10                 armv7l
Fedora_33                   x86_64
Fedora_33                   armv7l
Fedora_33                   aarch64
Fedora_33                   ppc64le
Debian_Testing              x86_64
Debian_9.0                  i586
Debian_9.0                  x86_64
Debian_10                   i586
Debian_10                   x86_64
Arch_Community_standard     x86_64
Arch_Community_standard     armv7l
Arch_Community_standard     ppc64

Hi
There is something funky in your repo for sure, maybe a lurking old binary, did you wipe binaries, disable repo then delete?

Update your spec file;


Remove;
BuildRequires:  libSoapySDR0_8

Add;
BuildRequires:  hicolor-icon-theme
BuildRequires:  pkgconfig(SoapySDR)

In %files add;
%dir %{_datadir}/echoes
%dir %{_datadir}/fonts/truetype

Then try this…


osc build --alternative-project openSUSE:Tumbleweed standard echoes.spec --clean

Hi
I see this…


fgrep -r pkgconf-pkg-config


.osc/_buildconfig-openSUSE_Tumbleweed-x86_64:FileProvides: /usr/bin/pkg-config pkgconf-pkg-config
.osc/_buildconfig-openSUSE_Tumbleweed-x86_64:Substitute: pkg-config pkgconf-pkg-config
.osc/_buildconfig-openSUSE_Tumbleweed-x86_64:FileProvides: /usr/bin/pkg-config pkgconf-pkg-config
.osc/_buildconfig-openSUSE_Tumbleweed-x86_64:Substitute: pkg-config pkgconf-pkg-config
.osc/_buildinfo-openSUSE_Tumbleweed-x86_64.xml:  <bdep name="pkgconf-pkg-config" version="1.7.3" release="26.5" arch="x86_64" hdrmd5="270db1b1c1a10c9939e961065e93f97e" project="home:astronopteryx" repository="openSUSE_Tumbleweed"/>
.osc/_buildconfig-standard-x86_64:FileProvides: /usr/bin/pkg-config pkgconf-pkg-config
.osc/_buildconfig-standard-x86_64:Substitute: pkg-config pkgconf-pkg-config
.osc/_buildinfo-standard-x86_64.xml:  <bdep name="pkgconf-pkg-config" version="1.8.0" release="1.2" arch="x86_64" hdrmd5="25a741f49ff92d0d394f1e06a264945f" project="openSUSE:Tumbleweed" repository="dod"/>