Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Packaging für macOS #17

Open
9 tasks
fabianhauser opened this issue Oct 15, 2016 · 3 comments
Open
9 tasks

Packaging für macOS #17

fabianhauser opened this issue Oct 15, 2016 · 3 comments

Comments

@fabianhauser
Copy link
Member

@murieletrentini und ich haben letzten Freitag das Packaging für macOS angeschaut. Hier das Issue dafür mit den Erkenntnissen und der Vorgehensweise. (Siehe auch #8)

Lösungsansatz

Damit wir einfach Updates verteilen können, möchten wir die Pakete gerne über HomeBrew anbieten. Dafür müsste eine Formula in einem Git Repository ("tap") erstellt werden.

Die Formula sollte:

  • Eine Abhängigkeit zu Python3 enthalten (oder ist das in den neueren macOS Versionen immer dabei?)
  • Die Quelle sollte aus einem .tar.gz-Github-Release (welches auf ein git tagaufsetzt) erstellt werden.
  • Das open\HSR-Paket und dependencies via make install installieren

Zudem wäre es elegant, die obenstehenden Schritte in einem Makefile zu automatisieren.

Tasks

  • Formula erstellen
  • Tap / Git Repository anlegen
  • Makefile erstellen
    • make install, welches mit pip3 den Connect & Dependencies und das CUPS-Script installiert (für Aufruf aus Formula & allenfalls manuelle Installation)
    • Paketierungsprozess
  • Dokumentieren von alledem

Links

@thde
Copy link
Member

thde commented Oct 24, 2016

Ich frage mich ob das system-spezifische packaging notwendig ist, wenn connect via pip verfügbar ist. Ausser bei externen Abhängigkeiten (siehe Link).

Mit pip3 install git+https://github.com/openhsr/connect funktioniert die Installation ja bereits.

Links

@raphiz
Copy link
Contributor

raphiz commented Oct 24, 2016

@thde wenn wir "nur" ein Python-Projekt ausliefern, dann würde das gehen, da hast du ganz recht. Aktuell sync funktioniert so einwandfrei.

Die Gründe für system-spezifische packaging sind folgende:

  1. Um unsere Druckerlösung einzurichten müssen wir ein Skript verlinken und einen Daemon einrichten. Die entsprechenden Verzeichnisse und Prozeduren sind unter Linux und MacOS unterschiedlich.
  2. Updates werden über die Paketmanager garantiert häufiger gemacht als via pip 😉
  3. Wenn Abhängigkeiten wie der python-keyring via pip installiert werden sollen, diese aber bereits über den Paketmanager des Systems installiert wurde (oder umgekehrt), dann gibt es einen Konflikt. Das ist nebst fehlender usuability auch bad practice.

Danke für deinen Input!

@thde
Copy link
Member

thde commented Oct 24, 2016

@raphiz merci für die ausführliche Antwort! Kann ich nachvollziehen. Zudem bist du auch flexibler, falls sich am Funktionsumfang etwas ändern sollte.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants