2 Commits e71b18b50f ... 2a73ffa4ab

Author SHA1 Message Date
  Michael Buesch 2a73ffa4ab pilc: Add fast mirror 4 years ago
  Michael Buesch 5c35576c43 Install systemd service via debian package 4 years ago

+ 1 - 0
MANIFEST.in

@@ -28,6 +28,7 @@ include README.md
 include TODO.html
 include TODO.md
 include awlsim-covreport
+include awlsim-server.service
 include awlsim/gui/icons/pic2py
 include awlsimhw_linuxcnc/awlsim.hal
 include awlsimhw_pyprofibus.conf

+ 1 - 1
README.md

@@ -143,7 +143,7 @@ The hardware modules are the glue between the Awlsim core and the real world. Th
 
 ### Misc
 <pre>
-.  awlsim-server.service.in  : Systemd unit template for awlsim-server.
+.  awlsim-server.service     : Systemd unit for awlsim-server.
 .  debian/                   : Debian packaging support.
 .  maintenance/              : Maintainer scripts.
 .  misc/                     : Miscellaneous scripts and files.

+ 22 - 0
awlsim-server.service

@@ -0,0 +1,22 @@
+[Unit]
+Description=Awlsim PLC core server
+After=syslog.target
+After=network.target
+
+[Service]
+Type=simple
+TimeoutSec=60
+Restart=on-failure
+RestartSec=100ms
+User=root
+Group=root
+WorkingDirectory=/etc/awlsim
+Nice=-15
+
+ExecStart=/usr/bin/python3 /usr/bin/awlsim-server -l localhost -4 -S -w /etc/awlsim/awlsim-server.awlpro
+ExecStartPost=-/usr/bin/python3 /usr/bin/awlsim-client -c localhost -r RUN
+
+Environment=PYTHONPATH=/usr/lib/python3/dist-packages PYTHONHASHSEED=0 PYTHONOPTIMIZE=1 PYTHONDONTWRITEBYTECODE=1 AWLSIM_CYTHON=1 AWLSIM_SCHED= AWLSIM_PRIO= AWLSIM_AFFINITY= AWLSIM_MLOCK=
+
+[Install]
+WantedBy=multi-user.target

+ 0 - 22
awlsim-server.service.in

@@ -1,22 +0,0 @@
-[Unit]
-Description=Awlsim soft-PLC core server
-After=syslog.target
-After=network.target
-
-[Service]
-Type=simple
-TimeoutSec=60
-Restart=on-failure
-RestartSec=100ms
-User=@USER@
-Group=@GROUP@
-WorkingDirectory=@WORKING_DIRECTORY@
-Nice=-15
-
-ExecStart=@PYTHON@ @PREFIX@/bin/awlsim-server -l localhost -4 -S -w @PROJECT@
-ExecStartPost=-@PYTHON@ @PREFIX@/bin/awlsim-client -c localhost -r RUN
-
-Environment=PYTHONPATH=@PYTHON_SITE@ PYTHONHASHSEED=0 PYTHONOPTIMIZE=1 PYTHONDONTWRITEBYTECODE=1 AWLSIM_CYTHON=1 AWLSIM_SCHED=realtime-if-multicore AWLSIM_PRIO=50 AWLSIM_AFFINITY=-1,-2,-3 AWLSIM_MLOCK=1
-
-[Install]
-WantedBy=multi-user.target

+ 3 - 1
awlsim/common/env.py

@@ -168,7 +168,9 @@ class AwlSimEnv(object):
 		"""Get AWLSIM_MLOCK.
 		Returns one of the MLOCK_... constants.
 		"""
-		mlockStr = cls.__getVar("MLOCK", "0").lower().strip()
+		mlockStr = cls.__getVar("MLOCK", "").lower().strip()
+		if not mlockStr:
+			mlockStr = cls.MLOCK_OFF
 		try:
 			mlock = int(mlockStr)
 			if mlock not in {cls.MLOCK_OFF,

+ 3 - 0
debian/awlsim-server.install

@@ -1 +1,4 @@
 debian/destdir-py3-awlsim/usr/bin/awlsim-server usr/bin
+debian/etc_awlsim/README.md etc/awlsim
+awlsimhw_pyprofibus.conf etc/awlsim
+awlsim-server.service lib/systemd/system

+ 1 - 1
debian/compat

@@ -1 +1 @@
-9
+10

+ 7 - 0
debian/etc_awlsim/README.md

@@ -0,0 +1,7 @@
+# /etc/awlsim
+
+This is the Awlsim working directory.
+
+The awlsim-server project and its configuration files are stored here.
+This is the $PWD while executing awlsim-server.
+

+ 10 - 27
pilc/pilc-bootstrap.sh

@@ -26,7 +26,8 @@ basedir="$(dirname "$0")"
 basedir="$basedir/.."
 
 
-MAIN_MIRROR="http://mirrordirector.raspbian.org/raspbian/"
+#MAIN_MIRROR="http://mirrordirector.raspbian.org/raspbian/"
+MAIN_MIRROR="http://mirror1.hs-esslingen.de/pub/Mirrors/archive.raspbian.org/raspbian/"
 DEFAULT_SUITE=buster
 
 DEBIAN_ARCHIVE_KEYRING="/usr/share/keyrings/debian-archive-keyring.gpg"
@@ -597,6 +598,14 @@ EOF
 			debian/rules ||\
 			die "Failed to patch rules file (pypy)"
 
+		# Update the systemd service file.
+		sed -i -e 's|AWLSIM_SCHED=|AWLSIM_SCHED=realtime-if-multicore|g' \
+		       -e 's|AWLSIM_PRIO=|AWLSIM_PRIO=50|g' \
+		       -e 's|AWLSIM_AFFINITY=|AWLSIM_AFFINITY=-1,-2,-3|g' \
+		       -e 's|AWLSIM_MLOCK=|AWLSIM_MLOCK=1|g' \
+		       awlsim-server.service ||\
+		       die "Failed to patch awlsim-server.service"
+
 		# Build the packages.
 		debuild -uc -us -b -d || die "debuild failed"
 		info "Built awlsim files:"
@@ -675,32 +684,6 @@ EOF
 		do_install -T -o pi -g pi -m 644 \
 			examples/raspberrypi-pixtend.awlpro \
 			/home/pi/raspberrypi-pixtend-example.awlpro
-
-		#TODO run the testsuite
-
-		# Install configuration
-		do_install -d -o root -g root -m 755 /etc/awlsim
-		do_install -o root -g root -m 644 \
-			awlsimhw_pyprofibus.conf \
-			/etc/awlsim/
-
-		#TODO install unit via package
-		info "Installing awlsim service unit..."
-		local awlsim_prefix=/usr
-		local pyver=3
-		local site="$awlsim_prefix/lib/python$pyver/dist-packages"
-		cat awlsim-server.service.in |\
-		sed -e 's|@USER@|root|g' \
-		    -e 's|@GROUP@|root|g' \
-		    -e "s|@PREFIX@|$awlsim_prefix|g" \
-		    -e 's|@WORKING_DIRECTORY@|/etc/awlsim|g' \
-		    -e 's|@PROJECT@|/etc/awlsim/awlsim-server.awlpro|g' \
-		    -e "s|@PYTHON@|/usr/bin/python$pyver|g" \
-		    -e "s|@PYTHON_SITE@|$site|g" >\
-		    /lib/systemd/system/awlsim-server.service ||\
-		    die "Failed to create awlsim-server.service"
-		systemctl enable awlsim-server.service ||\
-			die "Failed to enable awlsim-server-service"
 	) || die
 	info "Building pyprofibus..."
 	(