• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Hilfe bei rpm Erstellung erbeten

herbk

Member
Hallo zusammen,

ich versuche gerade mit OBS ein rpm für OpenCamLib zu bauen. https://github.com/aewallin/opencamlib

Ich habe das (ein rpm bauen) noch nie gemacht, - entsprechend hoch ist die Fehlerquote... :roll: Ich habe zwar schon viele Seiten des OBS Wikis / Hilfe gelesen, aber wirklich weiter bringt es mich nicht.

Im Moment hänge ich schon an einer Fehlermeldung zu einem nicht vorhandenen Pfad, weiss aber nicht weshalb der Pfad nicht gefunden wird, bzw mit welchen Parametern des .spec Files ich den einstelle.

Hier erst einmal der Abschnitt des Logfiles mit der Fehlermeldung:

Code:
[   54s] > Release:        lp151.32.1
[   54s] -----------------------------------------------------------------
[   54s] ----- building OpenCamLib.spec (user abuild)
[   54s] -----------------------------------------------------------------
[   54s] -----------------------------------------------------------------
[   55s] + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --nosignature --define 'disturl obs://build.opensuse.org/home:herbk/openSUSE_Leap_15.1/ed255cf359f7dcbf0dd8ffc8c2dca7f6-OpenCamLib' /home/abuild/rpmbuild/SOURCES/OpenCamLib.spec
[   55s] Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.aDMdxY
[   55s] + umask 022
[   55s] + cd /home/abuild/rpmbuild/BUILD
[   55s] + cd /home/abuild/rpmbuild/BUILD
[   55s] + rm -rf OpenCamLib-20190616
[   55s] + /usr/bin/bzip2 -dc /home/abuild/rpmbuild/SOURCES/OpenCamLib.tar.bz2
[   55s] + /usr/bin/tar -xof -
[   56s] + STATUS=0
[   56s] + '[' 0 -ne 0 ']'
[   56s] + cd OpenCamLib-20190616
[   56s] /var/tmp/rpm-tmp.aDMdxY: line 34: cd: OpenCamLib-20190616: No such file or directory
[   56s] error: Bad exit status from /var/tmp/rpm-tmp.aDMdxY (%prep)
[   56s] 
[   56s] 
[   56s] RPM build errors:
[   56s]     Bad exit status from /var/tmp/rpm-tmp.aDMdxY (%prep)

und mein .spec File

Code:
#
# spec file for package OpenCamLib
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           OpenCamLib
Version:        20190616
Release:        0
Summary:        A C++ library for creating CNC toolpaths
License:        LGPL 2.1
Group:          System/Libraries
Source0:        %{name}.tar.bz2
BuildRequires:  gcc-c++
BuildRequires:  cmake
BuildRequires:  git
BuildRequires:  doxygen
BuildRequires:  python3-devel
BuildRequires:  unzip
BuildRequires:  cxxtools-devel
BuildRequires:  texlive-dvips
BuildRequires:  texlive-makeindex
BuildRequires:  openmpi

BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
A C++ library for creating toolpaths for CNC-machines such as mills and lathes.

%package        devel
Summary:        Development files for %{name}
Group:          Development/Libraries/
Requires:       %{name} = %{version}

%description    devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.

%prep
%setup -q 

%build
%configure --disable-static
make %{?_smp_mflags}

%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print

%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig

%files
%defattr(-,root,root)
%doc
%{_libdir}/*.so.*

%files devel
%defattr(-,root,root)
%doc
%{_includedir}/*
%{_libdir}/*.so

%changelog

Es wäre schön wenn mir wer dabei helfen könnte das auf die Reihe zu kriegen...
 

Sauerland

Ultimate Guru
Nimm doch dies als Anhaltspunkt:
https://software.opensuse.org/package/opencamlib?search_term=OpenCAMLib

+ /usr/bin/bzip2 -dc /home/abuild/rpmbuild/SOURCES/OpenCamLib.tar.bz2
.
.
cd OpenCamLib-20190616
/var/tmp/rpm-tmp.aDMdxY: line 34: cd: OpenCamLib-20190616: No such file or directory

Zuerst wird das tar.bz2 entpackt, und zwar incl. der darin enthaltenen Ordner.......
Dann wird versucht in das Verzeichnis OpenCamLib-20190616 aus dem gerade entpackten tar.bz2 zu wechseln, welches aber nicht in dem tar.bz2 vorhanden ist, wahrscheinlich nur OpenCamlib.

Kannst du unter %prep mit:
%setup -q -n %{name}
umgehen, dann wird das tar.bz2 in dem Verzeichnis %{name} entpackt.
%{name} ist ein Link auf
im spec-File.
 
OP
H

herbk

Member
Hallo Sauerland,

Sauerland schrieb:
Nimm doch dies als Anhaltspunkt:
https://software.opensuse.org/package/opencamlib?search_term=OpenCAMLib

Das habe ich, die im link enthaltenen quellen lassen sich auch für Leap 15.0 und 15.1 als rpm kompilieren. Das fertige rpm lässt sich auch installieren, arbeitet aber nicht mehr mit FreeCAD zusammen. Grund dafür ist der Wechsel von FreeCAD nach Py3 / QT5.
OpenCamLib wurde in dem Zuge auch angepasst, das Paket auf github ist das aktuelle, das .spec file vom alten OCL passt auch nicht mehr zum Neuen.

Zuerst wird das tar.bz2 entpackt, und zwar incl. der darin enthaltenen Ordner.......
Dann wird versucht in das Verzeichnis OpenCamLib-20190616 aus dem gerade entpackten tar.bz2 zu wechseln, welches aber nicht in dem tar.bz2 vorhanden ist, wahrscheinlich nur OpenCamlib.

Das hatte ich auch so verstanden / vermutet. Ich hatte deshalb auch den Ordner schon in "OpenCamLib-20190616" umbenannt, ohne Änderung.

Kannst du unter %prep mit:
%setup -q -n %{name}
umgehen, dann wird das tar.bz2 in dem Verzeichnis %{name} entpackt.

Auch das habe ich schon (ohne Erfolg) probiert, das Einzige was sich ändert ist er Text der Fehlermeldung. die lautet dann nur noch "... cd: OpenCamLib: No such file or directory".
Alternativ habe ich auch bei der Buildroot die Versionsnummer ( %{version} ) weggelassen, - mit dem gleichen Ergebnis.


Was ich nicht verstehe ist das "rm -rf OpenCamLib-20190616" ein paar Zeilen oberhalb des Fehlers, daß eben dieses Verzeichnis nicht gefunden wird.
Ist rm nicht remove ?
 

abgdf

Guru
Also, ich mußte bisher kein rpm von Hand bauen, weil das immer "checkinstall" für mich macht. Das ist zwar ein sehr betagtes Skript, aber oft geht es.
Das vorweg gesagt, glaube ich, daß doch zunächstmal der build-Prozeß funktionieren sollte. Wie er in der Datei "README.rst" in der zip-Datei beschrieben ist.
Da ist übrigens auch von einem Befehl "make package" die Rede, der ein .deb-Paket bauen würde, wenn der build-Prozeß funktioniert. Das .deb-Paket könnte man dann nach rpm konvertieren.
Das wäre also meiner Meinung nach das erste: Den build-Prozeß hinbekommen. Manchmal einfach, oft eine Herausforderung.

Und ja: "rm" löscht. Zusammen mit "-rf" auch Verzeichnisse.
 
OP
H

herbk

Member
Hi,
einen Schritt weiter bin ich...
Fehler war erst mal, dass ich das Zip complett als tar.bz2 gepackt habe an statt nur den Ordner .src.
Jetzt bekomme ich erst später im Build Prozess einen Fehler...

Ich kann aber erst wieder am WE weiterbauen weil ich die Woche über weg bin.

Danke erst mal, - aber ich komme bestimmt noch mal mit Fragen... :roll:
 
Oben