From e8c72dae2c059693ff11f6a88b3e684fcc84c4b8 Mon Sep 17 00:00:00 2001 From: Jimmy Berry Date: Thu, 25 Jan 2018 15:55:24 -0600 Subject: [PATCH 1/8] announcer: provide proper packaging and generic templated service. --- dist/package/openSUSE-release-tools.spec | 12 ++++++++---- factory-package-news/Makefile | 9 +++++++-- .../systemd/factory-package-news.service | 8 -------- .../systemd/factory-package-news.timer | 9 --------- factory-package-news/systemd/osrt-announcer@.service | 10 ++++++++++ factory-package-news/systemd/osrt-announcer@.timer | 10 ++++++++++ 6 files changed, 35 insertions(+), 23 deletions(-) delete mode 100644 factory-package-news/systemd/factory-package-news.service delete mode 100644 factory-package-news/systemd/factory-package-news.timer create mode 100644 factory-package-news/systemd/osrt-announcer@.service create mode 100644 factory-package-news/systemd/osrt-announcer@.timer diff --git a/dist/package/openSUSE-release-tools.spec b/dist/package/openSUSE-release-tools.spec index 0b897f6b..808f22ca 100644 --- a/dist/package/openSUSE-release-tools.spec +++ b/dist/package/openSUSE-release-tools.spec @@ -282,8 +282,10 @@ make %{?_smp_mflags} oscplugindir="%{osc_plugin_dir}" \ VERSION="%{version}" -# TODO Correct makefile to actually install source. -mkdir -p %{buildroot}%{_datadir}/%{source_dir}/%{announcer_filename} +%pre announcer +getent passwd osrt-announcer > /dev/null || \ + useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-leaper" osrt-announcer +exit 0 %postun announcer %systemd_postun @@ -399,11 +401,13 @@ fi %files announcer %defattr(-,root,root,-) %doc %{announcer_filename}/README.asciidoc +%{_bindir}/osrt-announcer %{apache_sysconfdir}/conf.d/%{announcer_filename}.conf.in %{_datadir}/%{source_dir}/%{announcer_filename} %config(noreplace) %{_sysconfdir}/rsyslog.d/%{announcer_filename}.conf -%{_unitdir}/%{announcer_filename}.service -%{_unitdir}/%{announcer_filename}.timer +%{_unitdir}/osrt-announcer@.service +%{_unitdir}/osrt-announcer@.timer +%{_sysconfdir}/openSUSE-release-tools/announcer %files check-source %defattr(-,root,root,-) diff --git a/factory-package-news/Makefile b/factory-package-news/Makefile index ccddff3b..b5789204 100644 --- a/factory-package-news/Makefile +++ b/factory-package-news/Makefile @@ -1,13 +1,18 @@ +include ../Makefile.common + prefix=/usr sysconfdir=/etc apachedir=$(sysconfdir)/apache2/conf.d unitdir=$(prefix)/lib/systemd/system +announcer_subpackage=factory-package-news +pkgdata_SCRIPTS=$(wildcard *.py *.pl *.sh) install: - install -d -m 755 $(DESTDIR)$(apachedir) $(DESTDIR)$(unitdir) $(DESTDIR)$(sysconfdir)/rsyslog.d + install -d -m 755 $(DESTDIR)$(pkgdatadir)/$(announcer_subpackage) $(DESTDIR)$(apachedir) $(DESTDIR)$(unitdir) $(DESTDIR)$(sysconfdir)/rsyslog.d + for i in $(pkgdata_SCRIPTS); do install -m 755 $$i $(DESTDIR)$(pkgdatadir)/$(announcer_subpackage); done install -m 644 systemd/* $(DESTDIR)$(unitdir) install -m 644 rsyslog/* $(DESTDIR)$(sysconfdir)/rsyslog.d install -m 644 apache/factory-package-news.conf $(DESTDIR)$(apachedir)/factory-package-news.conf.in - install -d -m 755 $(DESTDIR)/var/lib/factory-package-news + ln -s $(pkgdatadir)/$(announcer_subpackage)/announcer.py $(DESTDIR)$(bindir)/osrt-announcer .PHONY: install diff --git a/factory-package-news/systemd/factory-package-news.service b/factory-package-news/systemd/factory-package-news.service deleted file mode 100644 index 52c060f8..00000000 --- a/factory-package-news/systemd/factory-package-news.service +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Announce new Factory snapshots - -[Service] -ExecStart=/usr/share/osc-plugin-factory/factory-package-news/announcer.py --from "Ludwig Nussel " --to opensuse-factory@opensuse.org --relay relay.suse.de -WorkingDirectory=/var/lib/factory-package-news -User=factoryauto -SyslogIdentifier=factory-package-news diff --git a/factory-package-news/systemd/factory-package-news.timer b/factory-package-news/systemd/factory-package-news.timer deleted file mode 100644 index f5dcf9f9..00000000 --- a/factory-package-news/systemd/factory-package-news.timer +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -Description=Regular Factory snapshot announcer - -[Timer] -OnCalendar=hourly -AccuracySec=30m - -[Install] -WantedBy=timers.target diff --git a/factory-package-news/systemd/osrt-announcer@.service b/factory-package-news/systemd/osrt-announcer@.service new file mode 100644 index 00000000..e28c7857 --- /dev/null +++ b/factory-package-news/systemd/osrt-announcer@.service @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: announce new %i build + +[Service] +User=osrt-announcer +SyslogIdentifier=osrt-announcer +ExecStart=/usr/bin/osrt-announcer --config "/etc/openSUSE-release-tools/announcer/%i.yml" --verbose + +[Install] +WantedBy=multi-user.target diff --git a/factory-package-news/systemd/osrt-announcer@.timer b/factory-package-news/systemd/osrt-announcer@.timer new file mode 100644 index 00000000..b06ff66a --- /dev/null +++ b/factory-package-news/systemd/osrt-announcer@.timer @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: announce new %i build + +[Timer] +OnBootSec=120 +OnCalendar=hourly +Unit=osrt-announcer@%i.service + +[Install] +WantedBy=timers.target From 0739dbe90ae1dd2680bd864ea04a407ee3f22a97 Mon Sep 17 00:00:00 2001 From: Jimmy Berry Date: Thu, 25 Jan 2018 15:55:52 -0600 Subject: [PATCH 2/8] config/announcer: include config used for Leap 42.3. --- config/announcer/openSUSE:Leap:42.3.yml | 39 +++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 config/announcer/openSUSE:Leap:42.3.yml diff --git a/config/announcer/openSUSE:Leap:42.3.yml b/config/announcer/openSUSE:Leap:42.3.yml new file mode 100644 index 00000000..ab075fed --- /dev/null +++ b/config/announcer/openSUSE:Leap:42.3.yml @@ -0,0 +1,39 @@ +bodytemplate: ' + + Please note that this mail was generated by a script. + + The described changes are computed based on the x86_64 DVD. + + The full online repo contains too many changes to be listed here. + + + Please check the known defects of this snapshot before upgrading: + + https://openqa.opensuse.org/tests/overview?distri=opensuse&version=42.3&build={version}&groupid=28 + + https://bugzilla.opensuse.org/buglist.cgi?product=openSUSE%20Distribution&query_format=advanced&resolution=---&version=Leap%2042.3 + + + When you reply to discuss some issues, make sure to change the subject. + + Please use the test plan at + + https://docs.google.com/spreadsheets/d/1AGKijKpKiJCB616-bHVoNQuhWHpQLHPWCb3m1p6gXPc/edit#gid=298435253 + + to record your testing efforts and use bugzilla to report bugs. + + + {text} + + ' +changesfile: Changes.{version}.txt +iso: openSUSE-Leap-DVD-x86_64-Current.iso +name: leap-423-announcer +relay: null +sender: null +subject: Leap 42.3 Build {version} released! +to: null +url: http://download.opensuse.org/distribution/leap/42.3/iso/ +sender: Ludwig Nussel +relay: relay.suse.de +to: opensuse-factory@opensuse.org From 0ad72d6141bac20138c8a95562349f61381e6ebd Mon Sep 17 00:00:00 2001 From: Jimmy Berry Date: Thu, 25 Jan 2018 15:58:09 -0600 Subject: [PATCH 3/8] config/announcer: drop repeated keys in favor of final values. Kept the original to document state as deployed. --- config/announcer/openSUSE:Leap:42.3.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/config/announcer/openSUSE:Leap:42.3.yml b/config/announcer/openSUSE:Leap:42.3.yml index ab075fed..61fdd2d3 100644 --- a/config/announcer/openSUSE:Leap:42.3.yml +++ b/config/announcer/openSUSE:Leap:42.3.yml @@ -29,10 +29,7 @@ bodytemplate: ' changesfile: Changes.{version}.txt iso: openSUSE-Leap-DVD-x86_64-Current.iso name: leap-423-announcer -relay: null -sender: null subject: Leap 42.3 Build {version} released! -to: null url: http://download.opensuse.org/distribution/leap/42.3/iso/ sender: Ludwig Nussel relay: relay.suse.de From f856b34987a45cfe774783afe4345450c497aed5 Mon Sep 17 00:00:00 2001 From: Jimmy Berry Date: Thu, 25 Jan 2018 16:03:22 -0600 Subject: [PATCH 4/8] config/announcer: create Leap 15.0 config from 42.3. --- config/announcer/openSUSE:Leap:15.0.yml | 36 +++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 config/announcer/openSUSE:Leap:15.0.yml diff --git a/config/announcer/openSUSE:Leap:15.0.yml b/config/announcer/openSUSE:Leap:15.0.yml new file mode 100644 index 00000000..2164843f --- /dev/null +++ b/config/announcer/openSUSE:Leap:15.0.yml @@ -0,0 +1,36 @@ +bodytemplate: ' + + Please note that this mail was generated by a script. + + The described changes are computed based on the x86_64 DVD. + + The full online repo contains too many changes to be listed here. + + + Please check the known defects of this snapshot before upgrading: + + https://openqa.opensuse.org/tests/overview?distri=opensuse&version=15.0&build={version}&groupid=28 + + https://bugzilla.opensuse.org/buglist.cgi?product=openSUSE%20Distribution&query_format=advanced&resolution=---&version=Leap%2015.0 + + + When you reply to discuss some issues, make sure to change the subject. + + Please use the test plan at + + https://docs.google.com/spreadsheets/d/1AGKijKpKiJCB616-bHVoNQuhWHpQLHPWCb3m1p6gXPc/edit#gid=298435253 + + to record your testing efforts and use bugzilla to report bugs. + + + {text} + + ' +changesfile: Changes.{version}.txt +iso: openSUSE-Leap-15.0-DVD-x86_64-Current.iso +name: openSUSE:Leap:15.0 +subject: Leap 15.0 Build {version} released! +url: http://download.opensuse.org/distribution/leap/15.0/iso/ +sender: Ludwig Nussel +relay: relay.suse.de +to: opensuse-factory@opensuse.org From 66514cbd75d2bf65203aa7b397aa28a90e9d5393 Mon Sep 17 00:00:00 2001 From: Jimmy Berry Date: Thu, 25 Jan 2018 16:15:33 -0600 Subject: [PATCH 5/8] announcer: provide defaults for sender, to, and relay. Drop from relevant config files. --- config/announcer/openSUSE:Leap:15.0.yml | 3 --- config/announcer/openSUSE:Leap:42.3.yml | 3 --- factory-package-news/announcer.py | 6 +++--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/config/announcer/openSUSE:Leap:15.0.yml b/config/announcer/openSUSE:Leap:15.0.yml index 2164843f..65c19c16 100644 --- a/config/announcer/openSUSE:Leap:15.0.yml +++ b/config/announcer/openSUSE:Leap:15.0.yml @@ -26,11 +26,8 @@ bodytemplate: ' {text} ' -changesfile: Changes.{version}.txt iso: openSUSE-Leap-15.0-DVD-x86_64-Current.iso name: openSUSE:Leap:15.0 subject: Leap 15.0 Build {version} released! url: http://download.opensuse.org/distribution/leap/15.0/iso/ sender: Ludwig Nussel -relay: relay.suse.de -to: opensuse-factory@opensuse.org diff --git a/config/announcer/openSUSE:Leap:42.3.yml b/config/announcer/openSUSE:Leap:42.3.yml index 61fdd2d3..d830b155 100644 --- a/config/announcer/openSUSE:Leap:42.3.yml +++ b/config/announcer/openSUSE:Leap:42.3.yml @@ -26,11 +26,8 @@ bodytemplate: ' {text} ' -changesfile: Changes.{version}.txt iso: openSUSE-Leap-DVD-x86_64-Current.iso name: leap-423-announcer subject: Leap 42.3 Build {version} released! url: http://download.opensuse.org/distribution/leap/42.3/iso/ sender: Ludwig Nussel -relay: relay.suse.de -to: opensuse-factory@opensuse.org diff --git a/factory-package-news/announcer.py b/factory-package-news/announcer.py index f3a81518..85e8e9d6 100755 --- a/factory-package-news/announcer.py +++ b/factory-package-news/announcer.py @@ -38,9 +38,9 @@ logger = logging.getLogger() # map of default config entries config_defaults = { - 'sender': None, - 'to': None, - 'relay': None, + 'sender': 'noreply@opensuse.org', + 'to': 'opensuse-factory@opensuse.org', + 'relay': 'relay.suse.de', 'url' : "http://download.opensuse.org/tumbleweed/iso/", 'iso' : "openSUSE-Tumbleweed-DVD-x86_64-Current.iso", 'name' : 'factory-announcer', From 965353b7ed79bb50118f81213a9d7974a960afd6 Mon Sep 17 00:00:00 2001 From: Jimmy Berry Date: Thu, 25 Jan 2018 16:19:32 -0600 Subject: [PATCH 6/8] config/announcer: add openSUSE:Factory config. --- config/announcer/openSUSE:Factory.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 config/announcer/openSUSE:Factory.yml diff --git a/config/announcer/openSUSE:Factory.yml b/config/announcer/openSUSE:Factory.yml new file mode 100644 index 00000000..95256962 --- /dev/null +++ b/config/announcer/openSUSE:Factory.yml @@ -0,0 +1 @@ +sender: Dominique Leuenberger From 20ac07bcda327069b701b1490876feb8e1c1affb Mon Sep 17 00:00:00 2001 From: Jimmy Berry Date: Thu, 25 Jan 2018 16:32:52 -0600 Subject: [PATCH 7/8] announcer: handle dot in build version detected from iso. --- factory-package-news/announcer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/factory-package-news/announcer.py b/factory-package-news/announcer.py index 85e8e9d6..4df47269 100755 --- a/factory-package-news/announcer.py +++ b/factory-package-news/announcer.py @@ -119,7 +119,7 @@ if not options.version: if loc is None: raise Exception("empty location!") - m = re.search('(?:Snapshot|Build)(\d+)-Media', loc) + m = re.search('(?:Snapshot|Build)([\d.]+)-Media', loc) if m is None: raise Exception("failed to parse %s"%loc) From 5dc385bec379f460a145c359df03aa96630c6059 Mon Sep 17 00:00:00 2001 From: Jimmy Berry Date: Thu, 25 Jan 2018 16:50:00 -0600 Subject: [PATCH 8/8] dist/spec: place config under %config(noreplace) directive. --- dist/package/openSUSE-release-tools.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/package/openSUSE-release-tools.spec b/dist/package/openSUSE-release-tools.spec index 808f22ca..6dc9c0aa 100644 --- a/dist/package/openSUSE-release-tools.spec +++ b/dist/package/openSUSE-release-tools.spec @@ -404,10 +404,10 @@ fi %{_bindir}/osrt-announcer %{apache_sysconfdir}/conf.d/%{announcer_filename}.conf.in %{_datadir}/%{source_dir}/%{announcer_filename} +%config(noreplace) %{_sysconfdir}/openSUSE-release-tools/announcer %config(noreplace) %{_sysconfdir}/rsyslog.d/%{announcer_filename}.conf %{_unitdir}/osrt-announcer@.service %{_unitdir}/osrt-announcer@.timer -%{_sysconfdir}/openSUSE-release-tools/announcer %files check-source %defattr(-,root,root,-) @@ -432,7 +432,7 @@ fi %{_unitdir}/osrt-leaper-manager@.timer %{_unitdir}/osrt-leaper-review.service %{_unitdir}/osrt-leaper-review.timer -%{_sysconfdir}/openSUSE-release-tools/manager_42 +%config(noreplace) %{_sysconfdir}/openSUSE-release-tools/manager_42 %files maintenance %defattr(-,root,root,-)