Forum: PC Hard- und Software Versuch Kicad 6 selber zu kompilieren


von Johannes U. (kampfradler)


Lesenswert?

Moin.

Da ich auf LMDE4/Debian10 ja noch mit Kicad 5 vorlieb nehmen muss und 
auch im kommenden LMDE5/Debian11 von Kicad 6 noch nichts zu sehen ist, 
versuche ich mir das aus den Quellen selber zu bauen.

Habe mich da nun soweit herangetastet, dass der cmake Build nicht mehr 
mit Fehlern abbricht (bei mir waren die fuer's kompilieren von Kicad 
angegebenen Abhaengigkeiten leider nicht ausreichend).

Der Build laeuft also endlich durch, wirft mir am Ende dann aber doch 
einige Warnungen aus, die sich samt und sonders auf Python beziehen.
Kurzer Ausschnitt:
1
WARNING: Target "eeschema" requests linking to directory "/usr/lib/python3.7".  Targets may link only to libraries.  CMake is dropping the item.
2
WARNING: Target "gerbview" requests linking to directory "/usr/lib/python3.7".  Targets may link only to libraries.  CMake is dropping the item.
Die Liste der Warnungen dieser Art ist schon recht umfangreich.

Leider kann ich damit auf Anhieb erstmal nicht wirklich etwas anfangen.
Offenbar moechte cmake aber wohl jeweils eine konkrete lib und kann mit 
dem lib-Verzeichnis nichts anfangen?!?

Die Parameter fuer cmake (hab mir uebrigens cmake 3.18 aus den 
buster-backports installiert):
1
cmake -DCMAKE_BUILD_TYPE=RelWith_DebInfo -DPYTHON_EXECUTABLE=/usr/bin/python3.7m -DPYTHON_VERSION_STRING=3.7 -DPYTHONINTERP_FOUND=TRUE -DPYTHON_INCLUDE_DIR=/usr/include/python3.7 -DKICAD_USE_EXTERNAL_PYTHONHOME=/usr/lib/python3.7 -DPYTHON_LIBRARY=/usr/lib/python3.7 -DENABLE_PYTHON3=ON -DDOWNLOAD_CATCH=ON ../../

Fehlt mir da noch was?
Hab' ich irgendeinen offensichtlich falschen Parameter?

von Mombert H. (mh_mh)


Lesenswert?

Johannes U. schrieb:
> Hab' ich irgendeinen offensichtlich falschen Parameter?

Ich tippe, dass -DPYTHON_LIBRARY nicht stimmt. Dass soll vermutlich eine 
echte  lib sein und kein Verzeichnis im Dateisystem.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Keine Ahnung, ob dir das hilft, aber der FreeBSD-Port (hier noch für 
5.99, aber das sollte egal sein) fummelt beim CMake gar nichts mit 
Python herum. Folgende Definitionen werden dort gesetzt:
1
CMAKE_ARGS=     -DLOCALBASE="${LOCALBASE}" \
2
                -DCMAKE_BUILD_TYPE="Debug" \
3
                -DKICAD_TESTING_VERSION=ON \
4
                -DKICAD_VERSION=${DISTVERSION} \
5
                -DCMAKE_INCLUDE_PATH="${WRKSRC}/include ${LOCALBASE}/include" \
6
                -DwxWidgets_CONFIG_EXECUTABLE="${WX_CONFIG}" \
7
                -DwxWidgets_USE_DEBUG=ON \
8
                -DwxWidgets_USE_USE_UNICODE=ON \
9
                -DwxWidgets_wxrc_EXECUTABLE=${WXRC_CMD} \
10
                -DKICAD_SCRIPTING=ON \
11
                -DKICAD_SCRIPTING_MODULES=ON \
12
                -DKICAD_SCRIPTING_PYTHON3=ON \
13
                -DKICAD_SCRIPTING_WXPYTHON=ON \
14
                -DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON \
15
                -DKICAD_SKIP_BOOST=YES \
16
                -DKICAD_SPICE=ON \
17
                -DKICAD_USE_OCE=OFF \
18
                -DKICAD_USE_OCC=ON \
19
                -DOCC_INCLUDE_DIR=${LOCALBASE}/include/OpenCASCADE

Edit:

CMakeCache.txt enthält:
1
//Python module install path.
2
PYTHON_DEST:PATH=lib/python3.7/site-packages
3
4
//Path to a program.
5
PYTHON_EXECUTABLE:FILEPATH=/usr/local/bin/python3
6
7
//Path to a file.
8
PYTHON_INCLUDE_DIR:PATH=/usr/local/include/python3.7m
9
10
//Path to a library.
11
PYTHON_LIBRARY:FILEPATH=/usr/local/lib/libpython3.7m.so
12
13
//Path to a library.
14
PYTHON_LIBRARY_DEBUG:FILEPATH=PYTHON_LIBRARY_DEBUG-NOTFOUND

was Momberts Vermutung bestätigt, dass da, wenn schon, der Pfad zu einer 
tatsächlichen Library angegeben werden sollte.

: Bearbeitet durch Moderator
von Reinhard S. (rezz)


Lesenswert?

Das kicad 6 von unstable ist dir zu unstable? ;)

von Johannes U. (kampfradler)


Lesenswert?

Danke fuer die Hilfe!

Die Konfiguration beim FreeBSD-Port muss ich mir mal ansehen, zweifel 
aber daran, ob ich das auf Anhieb verstehe.
Letztlich bin ich eigentlich immer froh, wenn ein Kompiliervorgang 
funktioniert ;)
Muss das wohl mal haeufiger machen und ueben, bis ich Routine darin 
bekomme.

Die Mutmassung mit der echten Lib:
werde cmake gleich nochmal mit
1
-DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.7m.so.1.0
anwerfen, damit sollte es dann ja klappen.

Danke euch!

von Johannes U. (kampfradler)


Lesenswert?

Sid/unstable hat Kicad 6 drin?

Hatte ich noch nicht mitbekommen.

Nur am Rande gelesen, das in irgendeinem Debianrelease falsch 
versionierte Kicads vorhanden sind, imho war es als 5.99 gelabelt, 
entsprach aber doch nur Kicad 5.1.9, was ich gegenwaertig aus den 
buster-backports am Laufen habe.

von Mombert H. (mh_mh)


Lesenswert?

Johannes U. schrieb:
> Die Mutmassung mit der echten Lib:
> werde cmake gleich nochmal
> mit-DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.7m.so.1.0
> anwerfen, damit sollte es dann ja klappen.

Eigentlich sollte cmake in der Lage sein den ganzen python kram selbst 
zu finden. Hast du es mal ohne die Optionen versucht?

von Johannes U. (kampfradler)


Lesenswert?

Ja, ohne die Optionen habe ich das Unterfangen urspruenglich gestartet.

Wollte nur leider ueberhaupt nicht funktionieren.
Da ist mir cmake stets mit
1
Could NOT find PythonInterp: Found unsuitable version "1.4", but required is at least "3.6"
ausgestiegen.
Ich habe meines Wissens nach weit und breit kein Python1.4 installiert.
Hab' mir aber vorgenommen, mir das demnaechst mal genauer anzusehen, was 
da los ist.
Wahrscheinlich muss ich mich auch mal um die Pfade, in denen cmake 
sucht, kuemmern.

Es war uebrigens die lib!
Mit:
1
cmake -DCMAKE_BUILD_TYPE=RelWith_DebInfo -DPYTHON_EXECUTABLE=/usr/bin/python3.7m -DPYTHON_VERSION_STRING=3.7 -DPYTHONINTERP_FOUND=TRUE -DPYTHON_INCLUDE_DIR=/usr/include/python3.7 -DKICAD_USE_EXTERNAL_PYTHONHOME=/usr/lib/python3.7 -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.7dm.so.1.0 -DENABLE_PYTHON3=ON -DDOWNLOAD_CATCH=ON ../../
lief es jetzt eben problemlos durch.

von Reinhard S. (rezz)


Lesenswert?

Johannes U. schrieb:
> Sid/unstable hat Kicad 6 drin?
>
> Hatte ich noch nicht mitbekommen.

https://packages.debian.org/sid/amd64/kicad/download

von MaWin (Gast)


Lesenswert?

Johannes U. schrieb:
> Sid/unstable hat Kicad 6 drin?

Ja. Seit ein paar Tagen.

von Johannes U. (kampfradler)


Lesenswert?

Mombert H. schrieb:

> Eigentlich sollte cmake in der Lage sein den ganzen python kram selbst
> zu finden. Hast du es mal ohne die Optionen versucht?

Nachtrag:
Ohne die Optionen sah es bezueglich Python so aus:
(CMakeCache.txt)
1
//Details about finding PythonInterp
2
FIND_PACKAGE_MESSAGE_DETAILS_PythonInterp:INTERNAL=[/usr/lib/python3.7][v1.4()]

Als ich dann endlich die Optionen so hatte wie jetzt, lief es soweit, 
nur die Option mit der lib war halt noch falsch.

von Johannes U. (kampfradler)


Lesenswert?

Reinhard S. schrieb:
> Das kicad 6 von unstable ist dir zu unstable? ;)

So, hab jetzt mal geguckt:
Das Kicad 6 in sid/unstable bringt ne ganze Latte an Abhaengigkeiten 
mit..
Das korrespondierende 'romeo'-Repo von LMDE hat nicht nur rein 
garnichts, ich lese auch hier, dass das die Regel ist und Inhalte sich 
dort erst kurz vor einem neuen Release finden:
>https://hamwaves.com/debian.unstable/en/

Ich muesste also die Original Debianrepos einbinden und so ein 
FrankenLMDE herstellen...
Ist mir glaub ich in Anbetracht all der Abhaengigkeiten, die dann 
hineingezogen werden, etwas zu unsicher.
Klar habe ich bereits alles installiert, was zum kompilieren notwendig 
ist, insofern sollten die Abhaengigkeiten bereits aus dem LMDE-Repo 
erschlagen sein und nichts weiter aus dem Debian unstable Repo 
installiert werden muessen...aber wer weiss?

Vielleicht komme ich auf diese Option nochmal zurueck, falls beim make 
install doch irgendwas bloedes schiefgeht, 'ne Timeshift Sicherung mach 
ich vorher auf jeden Fall mal, um auf Nummer Sicher zu gehen.
Im Fall der Faelle mal sehen ;)

von Εrnst B. (ernst)


Lesenswert?

Johannes U. schrieb:
> Ich muesste also die Original Debianrepos einbinden und so ein
> FrankenLMDE herstellen...
> Ist mir glaub ich in Anbetracht all der Abhaengigkeiten, die dann
> hineingezogen werden, etwas zu unsicher.

über die apt-preferences lässt sich das recht fein steuern, z.B:
1
#> cat /etc/apt/preferences.d/99pin-unstable
2
Package: *
3
Pin: release a=stable
4
Pin-Priority: 900
5
6
Package: *
7
Pin: release a=bookworm
8
Pin-Priority: 20
9
10
Package: *
11
Pin: release a=unstable
12
Pin-Priority: 10
13
14
#> cat /etc/apt/preferences.d/10pin-kicad
15
Package: kicad*
16
Pin: release a=unstable
17
Pin-Priority: 910
18
19
#> apt-cache policy kicad
20
kicad:
21
  Installiert:           5.99.0+really5.1.12+dfsg1-1
22
  Installationskandidat: 6.0.0+dfsg1-2
23
  Versionstabelle:
24
     6.0.0+dfsg1-2 910
25
         10 http://deb.debian.org/debian unstable/main amd64 Packages
26
 *** 5.99.0+really5.1.12+dfsg1-1 500
27
        500 http://deb.debian.org/debian bookworm/main amd64 Packages
28
        100 /var/lib/dpkg/status
29
     5.99.0+really5.1.12+dfsg1-1~bpo11+1 100
30
        100 http://deb.debian.org/debian bullseye-backports/main amd64 Packages
31
     5.1.9+dfsg1-1 900
32
        900 http://deb.debian.org/debian bullseye/main amd64 Packages
Allerdings ist mein Basis-System ein bullseye, kein LMDE.

Und den Sprung auf die 6.0 werd ich die Tage auch mal machen, warte nur 
noch ob meine letzten Gerber-Files korrekt in die Produktion wandern, 
oder ob ich noch was nachbessern muss.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.