[FOSSGIS-Talk] [QGIS-DE] Repositorien

Thomas B rdbath.regiodata at gmail.com
Do Aug 11 13:41:09 CEST 2022


Hallo Uwe,
man kann das offizielle Repository schon entfernen aber es ist etwas
umständlich.

Ich habe das vor ein paar Jahren hausintern eingerichtet nachdem ein Plugin
aus dem offiziellen Repo QGIS für die Kollegen, die es installiert hatten,
quasi nicht mehr nutzbar gemacht hatte...  ( ich hatte auf der FOSSGIS 2020
mal davon berichtet: https://www.youtube.com/watch?v=qUwPkYNA7BM )

Über die QGIS-Oberfläche kannst du das offizielle Repo nicht ohne weiteres
entfernen, weil beim entfernen eines Repos geprüft wird, ob es das
offizielle Repo ist und falls ja bekommst du eine Fehlermeldung, dass du es
nicht entfernen kannst:
https://github.com/qgis/QGIS/blob/master/python/pyplugin_installer/installer.py#L533
:
------------------------------
if settings.value(reposName + "/url", "", type=str) == officialRepo[1]:
iface.pluginManagerInterface().pushMessage(self.tr("You can't remove the
official QGIS Plugin Repository. You can disable it if needed."), Qgis.
Warning)

--------------------------

Zusätzlich wird bei jedem Laden der Repositories überprüft, ob das
offizielle Repo vorhanden ist und falls du es doch mal z.B. über die
Settings entfernt haben solltest wird es direkt wieder hinzugefügt:
https://github.com/qgis/QGIS/blob/master/python/pyplugin_installer/installer_data.py#L290

-----------------------------------
if not officialRepoPresent:
settings.setValue(officialRepo[0] + "/url", officialRepo[1])

-----------------------------------
Welches das offizielle Repo ist findet sich hardcodiert in der Datei
installer_data.py, welche bei der Installation von QGIS angelegt wird.
Dort kannst du dein Repo als das offizielle eintragen und ggf. andere Repos
entfernen:

https://github.com/qgis/QGIS/blob/master/python/pyplugin_installer/installer_data.py#L110

----------------
officialRepo = (QCoreApplication.translate("QgsPluginInstaller", "QGIS
Official Plugin Repository"), "https://plugins.qgis.org/plugins/plugins.xml")

----------------

Umständlich wird es halt, wenn man keine Netzwerkinstallation von QGIS hat
und die installer_data.py (auch nach jedem QGIS-Update) auf jedem Rechner
anpassen muss.

In der startup.py von QGIS überprüfe ich zusätzlich, ob jemand manuell das
offizielle Repo wieder hinzugefügt hat und falls ja entferne ich es wieder.

Ich hatte damals ein paar Varianten getestet, um nur das interne Repo zu
haben, unter anderem mit Whitelists/Blacklists für Plugins.

Grundsätzlich kann ja ein firmen-/behördeninterner Nutzer sich das Plugin
außerhalb von QGIS auch als Zip runterladen, entpacken und ins
Plugin-Verzeichnis packen und schon hat er/sie das Plugin. Das könnte man
halt nur mit einer Blacklist/Whitelist verhindern aber wir hatten damals
darauf gebaut, dass die Kollegen ja selbst auch Interesse an Stabilität
haben und haben uns für den weniger restriktiven Weg entschieden einfach
nur das offizielle Repo rauszuwerfen, damit niemand einfach so irgendwelche
Plugins im Pluginmanager findet+installiert.

Wenn die hausinternen Nutzer ein Plugin aus dem offiziellen Repo brauchen
stellen wir es ihnen nach ausführlicher Prüfung hausintern bereit. Damit
haben sich alle ganz gut arrangiert und seither haben wir durch Plugins
keinerlei Probleme mehr gehabt.

Grundsätzlich wäre es schön, wenn man das Basis-Repository nicht
hardcodiert im Quelltext hätte, sondern z.B. über eine Umgebungsvariabe
setzen könnte
und es gibt sicher noch alternative Wege das umzusetzen, u.a. auch rein
netzwerktechnisch, indem man die URL umbiegt vom offiziellen Repo auf die
interne URL. Für uns passt es gerade aber so mit der beschriebenen
Vorgehensweise.


Viele Grüße,
Thomas Baumann

Am Do., 11. Aug. 2022 um 12:08 Uhr schrieb Uwe Bre <uwe at brengelmann.de>:

> Hallo Community,
> In QGIS ist ja ein Internet-Repositorium eingerichtet, das hunderte von
> QGIS-Plugins enthält. Zusätzlich ist es in QGIS möglich, weitere
> Repositorien einzurichten, z.B. eines im eigenen abgesicherten Intranet,
> welches eigene getestete Plugins enthält.
> Aus Sicherheitsgründen kann es sinnvoll sein, das die Nutzer von QGIS nur
> noch das Intranet-Repo nutzen können, und das Internet-Repo nicht mehr im
> Zugriff haben.
> Ist das technisch möglich? Welche Einstellungen sind dazu in QGIS
> erforderlich?
>
> Mit freundlichen Grüßen, Im Auftrage
> Uwe Brengelmann
> _______________________________________________
> QGIS-DE mailing list
> QGIS-DE at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/qgis-de
>


Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste