Skip to contentSkip to conversation

sane-backends: add systemd support

PATCH Superseded Vicente Olivert Riera 3 participants 4 messages Oct 13, 2015 – Oct 28, 2015

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 sane-backends: add systemd support

The content of the saned.socket and saned at .service files is based on the instructions of the sane-backends manual.

---
Changes v2 -> v3:
- Create the "target.wants" directories for the socket and the service and put symlinks in there pointing to the real files. (Suggested by Maxime Hadjinlian)

Changes v1 -> v2:
- Install the systemd files in /usr/lib/systemd/system. (Suggested by Maxime Hadjinlian)
- Create saned user and group (Highlighted by Maxime Hadjinlian)
- Amend the commit log since we are not using the location for the systemd files specified in the manual.

 package/sane-backends/sane-backends.mk |   24 ++++++++++++++++++++++++
 package/sane-backends/saned.socket     |   10 ++++++++++
 package/sane-backends/saned at .service   |   18 ++++++++++++++++++
 3 files changed, 52 insertions(+), 0 deletions(-)
 create mode 100644 package/sane-backends/saned.socket
 create mode 100644 package/sane-backends/saned at .service
package/sane-backends/sane-backends.mk +24 -0
index 0c0b5a9..b8d6a84 100644
@@ -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
@@ -50,4 +57,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 at .service \
+		$(TARGET_DIR)/usr/lib/systemd/system/saned at .service
+	mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
+	ln -sf ../../../../usr/lib/systemd/system/saned at .service \
+		$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/saned at .service
+endef
+
 $(eval $(autotools-package))
package/sane-backends/saned.socket new file +10 -0
new file mode 100644
index 0000000..1aa19e7
@@ -0,0 +1,10 @@
+[Unit]
+Description=saned incoming socket
+
+[Socket]
+ListenStream=6566
+Accept=yes
+MaxConnections=1
+
+[Install]
+WantedBy=sockets.target
package/sane-backends/saned at .service new file +18 -0
new file mode 100644
index 0000000..1905dbf
@@ -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
Signature · 1 line
1.7.1
#1 lore raw

PATCH v3 1/1 sane-backends: add systemd support

Adding Maxime's tags as he cannot find the original email to reply and add the tags by himself.

Quoted 4 lines · Vicente Olivert Riera

The content of the saned.socket and saned at .service files is based on the instructions of the sane-backends manual.

Reviewed-by "Maxime Hadjinlian" <[email protected]> Tested-by "Maxime Hadjinlian" <[email protected]>

#2 lore raw

PATCH v3 1/1 sane-backends: add systemd support

Quoted 11 lines · Vicente Olivert Riera

Adding Maxime's tags as he cannot find the original email to reply and add the tags by himself.

Quoted 4 lines · Vicente Olivert Riera

The content of the saned.socket and saned at .service files is based on the instructions of the sane-backends manual.

Reviewed-by "Maxime Hadjinlian" <[email protected]> Tested-by "Maxime Hadjinlian" <[email protected]>

Here with the proper tag (missed the ':')

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20151023/4c7ec6e8/attachment.html>

#3 lore raw

PATCH v3 1/1 sane-backends: add systemd support

In reply to Vicente Olivert Riera

Dear Vicente Olivert Riera,

Quoted 9 lines · Vicente Olivert Riera

The content of the saned.socket and saned at .service files is based on the instructions of the sane-backends manual.

---
Changes v2 -> v3:
- Create the "target.wants" directories for the socket and the service and put symlinks in there pointing to the real files. (Suggested by Maxime Hadjinlian)

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com