From 0fb49207175961f538c9d341e53eecae3cbbfe20 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 6 Mar 2024 17:12:35 +0100 Subject: [PATCH] Improve build and deployment --- etc/argeo/user/argeo.ini | 1 + etc/argeo/user/cms/cms.ini | 1 - etc/argeo/user/native/cms.ini | 30 ++++++++++++++++++++++++ etc/argeo/user/native/debug.ini | 1 + etc/default/argeo | 7 ++---- local.mk | 26 +++++++++++++++------ sjbin/Makefile | 4 ++-- usr/{share => lib}/argeo/all.policy | 0 usr/lib/systemd/system/argeo@.service | 2 +- usr/lib/systemd/user/argeo.service | 1 + usr/lib/systemd/user/argeo@.service | 33 --------------------------- usr/share/argeo/SETUP.txt | 9 -------- usr/share/argeo/argeo-pgsql-setup.sql | 2 -- usr/share/argeo/argeo-slapd-setup.inf | 9 -------- usr/share/argeo/jvm.args | 7 ------ 15 files changed, 57 insertions(+), 76 deletions(-) create mode 100644 etc/argeo/user/native/cms.ini create mode 100644 etc/argeo/user/native/debug.ini rename usr/{share => lib}/argeo/all.policy (100%) delete mode 100644 usr/lib/systemd/user/argeo@.service delete mode 100644 usr/share/argeo/SETUP.txt delete mode 100644 usr/share/argeo/argeo-pgsql-setup.sql delete mode 100644 usr/share/argeo/argeo-slapd-setup.inf delete mode 100644 usr/share/argeo/jvm.args diff --git a/etc/argeo/user/argeo.ini b/etc/argeo/user/argeo.ini index 2cb5396..12ab5a1 100644 --- a/etc/argeo/user/argeo.ini +++ b/etc/argeo/user/argeo.ini @@ -4,6 +4,7 @@ org.osgi.framework.system.packages.extra=\ sun.security.util,\ sun.security.internal.spec,\ sun.security.provider,\ +sun.awt.X11,\ com.sun.net.httpserver,\ com.sun.jndi.ldap,\ com.sun.jndi.ldap.sasl,\ diff --git a/etc/argeo/user/cms/cms.ini b/etc/argeo/user/cms/cms.ini index 29a8339..ba54aeb 100644 --- a/etc/argeo/user/cms/cms.ini +++ b/etc/argeo/user/cms/cms.ini @@ -13,7 +13,6 @@ org.eclipse.rap.rwt.osgi,\ argeo.osgi.start.3=\ org.argeo.cms,\ org.argeo.cms.swt.rap,\ -org.argeo.cms.swt.rcp,\ org.argeo.cms.ee,\ org.argeo.cms.lib.dbus,\ org.argeo.cms.lib.sshd,\ diff --git a/etc/argeo/user/native/cms.ini b/etc/argeo/user/native/cms.ini new file mode 100644 index 0000000..b34b44d --- /dev/null +++ b/etc/argeo/user/native/cms.ini @@ -0,0 +1,30 @@ +argeo.osgi.sources=\ +a2+reference:///\ +?osgi=equinox\ +&crypto=fips\ +&swt=rcp\ + +argeo.osgi.start.2=\ +org.eclipse.equinox.http.servlet,\ +org.apache.felix.scr,\ +org.eclipse.equinox.console,\ + +argeo.osgi.start.3=\ +org.argeo.cms,\ +org.argeo.cms.swt.rcp,\ +org.argeo.cms.ee,\ +org.argeo.cms.lib.dbus,\ +org.argeo.cms.lib.sshd,\ +org.argeo.cms.lib.equinox,\ +org.argeo.cms.lib.jetty,\ + +argeo.osgi.start.4=\ +org.argeo.cms.jcr + +argeo.osgi.start.5=\ +org.argeo.app.profile.acr.fs,\ +org.argeo.app.core,\ +org.argeo.app.jcr,\ +org.argeo.app.ui,\ +org.argeo.app.theme.default,\ +org.argeo.app.geo,\ diff --git a/etc/argeo/user/native/debug.ini b/etc/argeo/user/native/debug.ini new file mode 100644 index 0000000..9a7f33c --- /dev/null +++ b/etc/argeo/user/native/debug.ini @@ -0,0 +1 @@ +osgi.clean=true \ No newline at end of file diff --git a/etc/default/argeo b/etc/default/argeo index 73bddc1..946ce09 100644 --- a/etc/default/argeo +++ b/etc/default/argeo @@ -1,5 +1,2 @@ -# Whether we use a local deployment -# /usr/$ARGEO_LOCAL/share -# /usr/$ARGEO_LOCAL/etc -# etc. -#ARGEO_LOCAL=local \ No newline at end of file +# Native libraries search path +A2_LIBRARY_PATH=/usr/local/lib/a2:/usr/lib/a2 \ No newline at end of file diff --git a/local.mk b/local.mk index b2af135..7284143 100644 --- a/local.mk +++ b/local.mk @@ -18,11 +18,23 @@ clean: $(MAKE) -C sjbin clean install: - $(COPY) -r --no-clobber etc/* $(DESTDIR)$(sysconfdir) - $(COPY) -r usr/bin/* $(DESTDIR)$(bindir) - $(COPY) -r usr/share/* $(DESTDIR)$(datarootdir) - $(COPY) -r usr/lib/* $(DESTDIR)$(libdir) - $(COPY) -r usr/libexec/* $(DESTDIR)$(libexecdir) - $(MAKE) -C sjbin install +# TODO use install and wildcard ? + $(COPY) -v -r --no-clobber etc/* $(DESTDIR)$(sysconfdir) + $(COPY) -v -r usr/bin/* $(DESTDIR)$(bindir) +# $(COPY) -v -r usr/share/* $(DESTDIR)$(datarootdir) + $(COPY) -v -r usr/lib/* $(DESTDIR)$(libdir) + sed -i 's|/usr/local|$(prefix)|' $(DESTDIR)$(libdir)/systemd/system/argeo*.service + sed -i 's|/usr/local|$(prefix)|' $(DESTDIR)$(libdir)/systemd/user/argeo*.service + sed -i 's|/usr/local|$(prefix)|' $(DESTDIR)$(libdir)/argeo/*.args + $(COPY) -v -r usr/libexec/* $(DESTDIR)$(libexecdir) +# $(MAKE) -C sjbin install systemctl daemon-reload - \ No newline at end of file + +uninstall: + $(foreach f, $(shell cd usr/bin/ && find . -type f), $(RM) $(DESTDIR)$(bindir)/$(f);) +# $(foreach f, $(shell find usr/share/ -type f), $(RM) $(DESTDIR)$(datarootdir)/$(f);) + $(foreach f, $(shell cd usr/lib/ && find . -type f), $(RM) $(DESTDIR)$(libdir)/$(f);) + $(foreach f, $(shell cd usr/libexec/ && find . -type f), $(RM) $(DESTDIR)$(libexecdir)/$(f);) + +purge: uninstall + $(foreach f, $(shell cd etc/ && find . -type f), $(RM) $(DESTDIR)$(sysconfdir)/$(f);) diff --git a/sjbin/Makefile b/sjbin/Makefile index 959f751..ce25ce8 100644 --- a/sjbin/Makefile +++ b/sjbin/Makefile @@ -19,7 +19,7 @@ clean: install: # TODO generalise - cp -v --preserve=mode freed-pid1 $(DESTDIR)$(sbindir) - sed -i 's|/usr/local|$(prefix)|' $(DESTDIR)$(sbindir)/freed-pid1 + install -D -m755 -t $(DESTDIR)$(sbindir)freed-* + sed -i 's|/usr/local|$(prefix)|' $(DESTDIR)$(sbindir)/* sed -i 's|/usr/local|$(prefix)|' $(DESTDIR)$(sysconfdir)/freed/pid1/jvm.args # cp -v ../../etc/freed/init/* $(DESTDIR)$(sysconfdir)/freed/init diff --git a/usr/share/argeo/all.policy b/usr/lib/argeo/all.policy similarity index 100% rename from usr/share/argeo/all.policy rename to usr/lib/argeo/all.policy diff --git a/usr/lib/systemd/system/argeo@.service b/usr/lib/systemd/system/argeo@.service index f080622..8c05d3c 100644 --- a/usr/lib/systemd/system/argeo@.service +++ b/usr/lib/systemd/system/argeo@.service @@ -28,7 +28,7 @@ ExecStart=java \ -Dorg.eclipse.equinox.http.jetty.autostart=false \ @/etc/argeo.d/jvm.args \ @${CONFIGURATION_DIRECTORY}/jvm.args \ -@/usr/share/argeo/jvm.args \ +@lib/argeo/jvm.args \ org.argeo.init.ServiceMain # Exit codes of the JVM when SIGTERM or SIGINT have been caught: diff --git a/usr/lib/systemd/user/argeo.service b/usr/lib/systemd/user/argeo.service index ba6f78d..888b205 100644 --- a/usr/lib/systemd/user/argeo.service +++ b/usr/lib/systemd/user/argeo.service @@ -15,6 +15,7 @@ ExecStartPre=/usr/bin/mkdir -p ${CONFIGURATION_DIRECTORY} ExecStartPre=/usr/bin/touch ${CONFIGURATION_DIRECTORY}/jvm.args ExecStart=java \ +-Djava.library.path=${A2_LIBRARY_PATH} \ -Dosgi.framework.useSystemProperties=false \ -Dosgi.noShutdown=true \ -Declipse.ignoreApp=true \ diff --git a/usr/lib/systemd/user/argeo@.service b/usr/lib/systemd/user/argeo@.service deleted file mode 100644 index 04b77b1..0000000 --- a/usr/lib/systemd/user/argeo@.service +++ /dev/null @@ -1,33 +0,0 @@ -[Unit] -Description=Argeo user node %I - -[Service] -Type=simple -StateDirectory=argeo.d/%I -LogsDirectory=argeo.d/%I -ConfigurationDirectory=argeo.d/%I -CacheDirectory=argeo.d/%I -#WorkingDirectory= - -ExecStart=java \ --Dosgi.configuration.cascaded=true \ --Dosgi.sharedConfiguration.area=/etc/argeo.user.d/%I/ \ --Dosgi.sharedConfiguration.area.readOnly=true \ --Dosgi.configuration.area=${STATE_DIRECTORY}/state/ \ --Dosgi.instance.area=${STATE_DIRECTORY}/data/ \ --Dargeo.node.repo.indexesBase=${CACHE_DIRECTORY}/indexes \ --Dorg.osgi.framework.system.packages.extra=sun.security.util,sun.security.internal.spec,sun.security.provider,com.sun.net.httpserver,com.sun.jndi.ldap,com.sun.jndi.ldap.sasl,com.sun.jndi.dns,com.sun.security.jgss,com.sun.nio.file,com.sun.nio.sctp \ --Declipse.ignoreApp=true \ --Dosgi.noShutdown=true \ --Dorg.eclipse.equinox.http.jetty.autostart=false \ --Djava.library.path=/usr/lib/a2/swt/rcp/org.argeo.tp.swt/ \ -@/etc/argeo.user.d/jvm.args \ -@/etc/argeo.user.d/%I/jvm.args \ -@/usr/share/argeo/jvm.args \ -org.argeo.init.ServiceMain - -# Exit codes of the JVM when SIGTERM or SIGINT have been caught: -SuccessExitStatus=143 130 - -[Install] -WantedBy=multi-user.target diff --git a/usr/share/argeo/SETUP.txt b/usr/share/argeo/SETUP.txt deleted file mode 100644 index 708e587..0000000 --- a/usr/share/argeo/SETUP.txt +++ /dev/null @@ -1,9 +0,0 @@ - -# 389 Directory Server -sudo dscreate from-file argeo-slapd.inf -sudo dsconf -D "cn=Directory Manager" ldap://localhost backend import - -# PostgreSQL -sudo postgresql-setup initdb -sudo systemctl start postgresql -sudo -u postgres psql < argeo-pgsql-setup.sql diff --git a/usr/share/argeo/argeo-pgsql-setup.sql b/usr/share/argeo/argeo-pgsql-setup.sql deleted file mode 100644 index 886f60a..0000000 --- a/usr/share/argeo/argeo-pgsql-setup.sql +++ /dev/null @@ -1,2 +0,0 @@ -CREATE USER argeo WITH PASSWORD 'argeo'; -CREATE DATABASE argeo WITH OWNER argeo; diff --git a/usr/share/argeo/argeo-slapd-setup.inf b/usr/share/argeo/argeo-slapd-setup.inf deleted file mode 100644 index 98ad97a..0000000 --- a/usr/share/argeo/argeo-slapd-setup.inf +++ /dev/null @@ -1,9 +0,0 @@ -[general] -[slapd] -instance_name = argeo -root_dn = cn=Directory Manager -root_password = argeoargeo - -[backend-userroot] -create_suffix_entry = True -suffix = dc=example,dc=com \ No newline at end of file diff --git a/usr/share/argeo/jvm.args b/usr/share/argeo/jvm.args deleted file mode 100644 index 0f24e94..0000000 --- a/usr/share/argeo/jvm.args +++ /dev/null @@ -1,7 +0,0 @@ -# Force UTF-8 encoding --Dfile.encoding=UTF-8 - -# Ensure OpenJDK and OpenJ9 are compatible --XX:+IgnoreUnrecognizedVMOptions - --cp /usr/share/a2/osgi/equinox/org.argeo.tp.osgi/org.eclipse.osgi.3.18.jar:/usr/share/a2/org.argeo.cms/org.argeo.init.2.3.jar \ No newline at end of file -- 2.30.2