Versuch Kicad 6 selber zu kompilieren

#6933799
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?
Moderator Persönliche Seite #6933838
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.
#6933860
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!
#6933892
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.
#6933918
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.
#6934055
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 ;)
#6934382
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren