https://github.com/schmidicom/schmidico ... /pcsc-lite
Was hier gemacht wurde:
- * Umstellung auf das neue meson basierte buildsystem.
* Erweiterte Trennung von openrc und systemd.


ja die meine ichschmidicom wrote:Ich vermute mal du meinst die Datei "/usr/share/doc/pcsc-lite/setup_spy.sh.bz2"?
Das file macht schon so "sinn" da es "generisch" ist. z.b. das shell script hat nen check ob es unter openrc läuft oder nicht und macht gar nichts wenn es nicht unter openrc läuft.schmidicom wrote:
Was mich am ebuild im Repo von Gentoo besonders gestört hat war die udev Regel.
Das in der Regel hinterlegte Service-Unit macht einfach keinen Sinn, weder für jene die OpenRC noch für jene die systemd benutzen. Unter OpenRC gibt es kein Service-Unit das an dieser Stelle gestartet werden könnte und unter systemd gibt es das Socket-Unit welches dafür sorgt das der Dienst bei Bedarf gestartet wird und das ausgeführte Shell-Script ist unter systemd auch nutzlos.

Kannst du da mal dein Repo verlinken? Würde mir den Patch, so aus neugier, gerne mal ansehen.firefly wrote:ja die meine ichschmidicom wrote:Ich vermute mal du meinst die Datei "/usr/share/doc/pcsc-lite/setup_spy.sh.bz2"?
Das Script führt zwar einen Check durch, aber trotzdem wird es bei jedem Start des Systems und jedesmal wenn eine Smartcard angeschlossen wird zusammen mit seinem Interpreter (was in den meisten fällen die Bash sein dürfte) ausgeführt und das ist über das ebuild (in Fällen wo es das nicht braucht) mit wenig Aufwand vermeidbar. Das ganze Ding ist auf Installationen mit systemd auch eine unnötige Fehlerquelle die vermieden werden kann und auch vermieden werden sollte.firefly wrote:Das file macht schon so "sinn" da es "generisch" ist. z.b. das shell script hat nen check ob es unter openrc läuft oder nicht und macht gar nichts wenn es nicht unter openrc läuft.schmidicom wrote:
Was mich am ebuild im Repo von Gentoo besonders gestört hat war die udev Regel.
Das in der Regel hinterlegte Service-Unit macht einfach keinen Sinn, weder für jene die OpenRC noch für jene die systemd benutzen. Unter OpenRC gibt es kein Service-Unit das an dieser Stelle gestartet werden könnte und unter systemd gibt es das Socket-Unit welches dafür sorgt das der Dienst bei Bedarf gestartet wird und das ausgeführte Shell-Script ist unter systemd auch nutzlos.
Und der andere part setzt nur eine env variable, das macht dann im kontext von openrc auch nichts da diese ENV variable systemd spezifisch ist.
Dadurch hast du nur eine regel, die im kontext von openrc und von systemd funktioniert.
Wobei man natürlich darüber diskutieren kann, ob das starten des services via udev rule im kontext von systemd noch sinvoll ist da es die socket activation systemd unit gibt.
Das verwenden von pcscd als User-Server ist aktuell halt einfach keine gute Idee aber auch nichts was ich jetzt unbedingt haben müsste. Es ist halt nur so das bei einem Blick in die "meson.options"-Datei zu vermuten ist das der Entwickler diese Variante bevorzugt. Nur bin ich halt der Meinung das die Software dafür noch nicht bereit ist.firefly wrote:Eine system user unit ergibt nur sinn, wenn man pcscd dann nur auf ein spezifisches gerät fest pinnt (Was AFAIK sogar geht via filter?). Denn nur so können mehrere user, welcher unterschiedliche devices nutzen, ihre eigene instanz haben.
Aber dann müsste man dem system irgendwie mitteilen können welche devices zu welchen user "gehören".
Was aber wieder zu Problemen führen kann, falls Benutzer A dann doch mal sein device im kontext des Benutzers B nutzen muss/möchte.
Kann ich nicht da ich das nur komplett lokal habe. Kann es aber hier rein posten (ist nicht viel)schmidicom wrote:Kannst du da mal dein Repo verlinken? Würde mir den Patch, so aus neugier, gerne mal ansehen.firefly wrote:ja die meine ichschmidicom wrote:Ich vermute mal du meinst die Datei "/usr/share/doc/pcsc-lite/setup_spy.sh.bz2"?
pcsc-lite-2.2.3-meson.patch wrote:diff -ur pcsc-lite-2.2.3.orig/meson.build pcsc-lite-2.2.3/meson.build
--- pcsc-lite-2.2.3.orig/meson.build 2024-05-26 17:08:15.000000000 +0200
+++ pcsc-lite-2.2.3/meson.build 2024-06-16 17:43:05.599867439 +0200
@@ -29,6 +29,7 @@
'sbindir_exp' : sbindir,
'PCSCLITE_CONFIG_DIR' : get_option('serialconfdir'),
'usbdropdir' : get_option('usbdropdir'),
+ 'docdir' : get_option('docdir'),
})
# tests for functions
@@ -201,7 +202,7 @@
install_dir : get_option('bindir'))
install_data('src/spy/setup_spy.sh',
- install_dir : 'share/doc/pcsc-lite')
+ install_dir : get_option('docdir'))
run_command('pod2man',
['--date=2024-01-01', 'src/spy/pcsc-spy.pod', 'pcsc-spy.1'],
@@ -286,6 +287,7 @@
description : 'PC/SC smart card interface')
# generate documentation
+if get_option('documentation')
configure_file(output : 'doxygen.conf',
input : 'doc/doxygen.conf.in',
configuration : confgen_data)
@@ -296,3 +298,4 @@
else
warning('Documentation disabled without doxygen')
endif
+endif
diff -ur pcsc-lite-2.2.3.orig/meson.options pcsc-lite-2.2.3/meson.options
--- pcsc-lite-2.2.3.orig/meson.options 2024-05-26 17:08:15.000000000 +0200
+++ pcsc-lite-2.2.3/meson.options 2024-06-16 17:37:32.479542112 +0200
@@ -53,3 +53,13 @@
type : 'boolean',
value : 'true',
description : 'reader filtering using PCSCLITE_FILTER_IGNORE_READER_NAMES and PCSCLITE_FILTER_EXTEND_READER_NAMES')
+
+option('documentation',
+ type : 'boolean',
+ value : 'true',
+ description : 'build documentation or not')
+
+option('docdir',
+ type : 'string',
+ value : 'share/doc/pcsc-lite',
+ description : 'Direcrory for documentation')
Das stimmt wobei bei default beide units nicht aktiv sind nach der installation.schmidicom wrote: Und ja das starten von "pcscd.service", über eine udev-Regel, unter einem Gentoo mit systemd ist halt wirklich komplett sinn frei weil das Service-Unit mit dem Socket-Unit verknüpft ist.

Schöner Patch.firefly wrote:Kann ich nicht da ich das nur komplett lokal habe. Kann es aber hier rein posten (ist nicht viel)schmidicom wrote:Kannst du da mal dein Repo verlinken? Würde mir den Patch, so aus neugier, gerne mal ansehen.firefly wrote: ja die meine ich
pcsc-lite-2.2.3-meson.patch wrote:diff -ur pcsc-lite-2.2.3.orig/meson.build pcsc-lite-2.2.3/meson.build
--- pcsc-lite-2.2.3.orig/meson.build 2024-05-26 17:08:15.000000000 +0200
+++ pcsc-lite-2.2.3/meson.build 2024-06-16 17:43:05.599867439 +0200
@@ -29,6 +29,7 @@
'sbindir_exp' : sbindir,
'PCSCLITE_CONFIG_DIR' : get_option('serialconfdir'),
'usbdropdir' : get_option('usbdropdir'),
+ 'docdir' : get_option('docdir'),
})
# tests for functions
@@ -201,7 +202,7 @@
install_dir : get_option('bindir'))
install_data('src/spy/setup_spy.sh',
- install_dir : 'share/doc/pcsc-lite')
+ install_dir : get_option('docdir'))
run_command('pod2man',
['--date=2024-01-01', 'src/spy/pcsc-spy.pod', 'pcsc-spy.1'],
@@ -286,6 +287,7 @@
description : 'PC/SC smart card interface')
# generate documentation
+if get_option('documentation')
configure_file(output : 'doxygen.conf',
input : 'doc/doxygen.conf.in',
configuration : confgen_data)
@@ -296,3 +298,4 @@
else
warning('Documentation disabled without doxygen')
endif
+endif
diff -ur pcsc-lite-2.2.3.orig/meson.options pcsc-lite-2.2.3/meson.options
--- pcsc-lite-2.2.3.orig/meson.options 2024-05-26 17:08:15.000000000 +0200
+++ pcsc-lite-2.2.3/meson.options 2024-06-16 17:37:32.479542112 +0200
@@ -53,3 +53,13 @@
type : 'boolean',
value : 'true',
description : 'reader filtering using PCSCLITE_FILTER_IGNORE_READER_NAMES and PCSCLITE_FILTER_EXTEND_READER_NAMES')
+
+option('documentation',
+ type : 'boolean',
+ value : 'true',
+ description : 'build documentation or not')
+
+option('docdir',
+ type : 'string',
+ value : 'share/doc/pcsc-lite',
+ description : 'Direcrory for documentation')
Kann schon sein, habe nicht versucht zurückzuverfolgen wann das rein kam.firefly wrote:Das stimmt wobei bei default beide units nicht aktiv sind nach der installation.schmidicom wrote: Und ja das starten von "pcscd.service", über eine udev-Regel, unter einem Gentoo mit systemd ist halt wirklich komplett sinn frei weil das Service-Unit mit dem Socket-Unit verknüpft ist.
Eventuell war das der grund wieso der Ersteller des ebuilds diese udev regel so erstellt hat.
Oder es gab zu dem zeitpunkt wo das erste ebuild erstellt wurde, die socket activation unit noch nicht. Und man hat diese Änderung später nicht genutzt um die udev regel anzupassen
Denn der systemd support kam erst mit der version 1.8.0 hinzu. (2011)
Code: Select all
ENV{ID_SMARTCARD_READER}=="1", GROUP="pcscd"