diff --git a/package/sane-backends/sane-backends.mk b/package/sane-backends/sane-backends.mk index e980929345..37e5136c11 100644 --- a/package/sane-backends/sane-backends.mk +++ b/package/sane-backends/sane-backends.mk @@ -14,6 +14,13 @@ SANE_BACKENDS_INSTALL_STAGING = YES SANE_BACKENDS_CONF_OPTS = \ $(if $(BR2_TOOLCHAIN_HAS_THREADS),--enable-pthread,--disable-pthread) +ifeq ($(BR2_INIT_SYSTEMD),y) +SANE_BACKENDS_CONF_OPTS += --with-systemd +SANE_BACKENDS_DEPENDENCIES += systemd +else +SANE_BACKENDS_CONF_OPTS += --without-systemd +endif + ifeq ($(BR2_PACKAGE_LIBUSB),y) SANE_BACKENDS_DEPENDENCIES += libusb SANE_BACKENDS_CONF_OPTS += --enable-libusb_1_0 @@ -51,4 +58,21 @@ endef SANE_BACKENDS_POST_CONFIGURE_HOOKS += SANE_BACKENDS_DISABLE_DOCS +define SANE_BACKENDS_USERS + saned -1 saned -1 * /etc/sane.d - - Saned User +endef + +define SANE_BACKENDS_INSTALL_INIT_SYSTEMD + $(INSTALL) -m 0644 -D package/sane-backends/saned.socket \ + $(TARGET_DIR)/usr/lib/systemd/system/saned.socket + mkdir -p $(TARGET_DIR)/etc/systemd/system/socket.target.wants + ln -sf ../../../../usr/lib/systemd/system/saned.socket \ + $(TARGET_DIR)/etc/systemd/system/socket.target.wants/saned.socket + $(INSTALL) -m 0644 -D package/sane-backends/saned@.service \ + $(TARGET_DIR)/usr/lib/systemd/system/saned@.service + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + ln -sf ../../../../usr/lib/systemd/system/saned@.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/saned@.service +endef + $(eval $(autotools-package)) diff --git a/package/sane-backends/saned.socket b/package/sane-backends/saned.socket new file mode 100644 index 0000000000..1aa19e703c --- /dev/null +++ b/package/sane-backends/saned.socket @@ -0,0 +1,10 @@ +[Unit] +Description=saned incoming socket + +[Socket] +ListenStream=6566 +Accept=yes +MaxConnections=1 + +[Install] +WantedBy=sockets.target diff --git a/package/sane-backends/saned@.service b/package/sane-backends/saned@.service new file mode 100644 index 0000000000..1905dbf5e2 --- /dev/null +++ b/package/sane-backends/saned@.service @@ -0,0 +1,18 @@ +[Unit] +Description=Scanner Service +Requires=saned.socket + +[Service] +ExecStart=/usr/sbin/saned +User=saned +Group=saned +StandardInput=null +StandardOutput=syslog +StandardError=syslog +Environment=SANE_CONFIG_DIR=/etc/sane.d +# If you need to debug your configuration uncomment the next line and +# change it as appropriate to set the desired debug options +# Environment=SANE_DEBUG_DLL=255 SANE_DEBUG_BJNP=5 + +[Install] +Also=saned.socket