Merge lp:~gocept/landscape-client/py3-packages into lp:~landscape/landscape-client/trunk

Proposed by Steffen Allner
Status: Merged
Approved by: Free Ekanayaka
Approved revision: 1006
Merged at revision: 999
Proposed branch: lp:~gocept/landscape-client/py3-packages
Merge into: lp:~landscape/landscape-client/trunk
Diff against target: 964 lines (+184/-255)
27 files modified
.bzrignore (+6/-6)
Makefile (+3/-3)
debian/changelog (+6/-0)
debian/control (+30/-3)
debian/landscape-client.postinst (+2/-2)
debian/landscape-common.config (+0/-10)
debian/landscape-common.dirs (+0/-1)
debian/landscape-common.install (+0/-3)
debian/landscape-common.manpages (+0/-1)
debian/landscape-common.postinst (+0/-110)
debian/landscape-common.postrm (+0/-40)
debian/landscape-common.prerm (+0/-42)
debian/landscape-common.templates (+0/-20)
debian/landscape-common3.config (+10/-0)
debian/landscape-common3.postinst (+110/-0)
debian/po/POTFILES.in (+1/-0)
debian/rules (+5/-3)
landscape/__init__.py (+2/-2)
scripts/landscape-broker (+1/-1)
scripts/landscape-client (+1/-1)
scripts/landscape-config (+1/-1)
scripts/landscape-manager (+1/-1)
scripts/landscape-monitor (+1/-1)
scripts/landscape-package-changer (+1/-1)
scripts/landscape-package-reporter (+1/-1)
scripts/landscape-release-upgrader (+1/-1)
scripts/landscape-sysinfo (+1/-1)
To merge this branch: bzr merge lp:~gocept/landscape-client/py3-packages
Reviewer Review Type Date Requested Status
Free Ekanayaka (community) Approve
Eric Snow (community) Approve
🤖 Landscape Builder test results Approve
Gocept Pending
Review via email: mp+321715@code.launchpad.net

Commit message

Add the landscape-common3 deb package and use it in landscape-client.

This MP changes the debian package build configuration of the project to build a Python 3 driven landscape-client package. This is facilitated through a new landscape-common3 package. The existing landscape-common package, based on Python 2, remains unchanged.

Description of the change

This MP changes the debian package build configuration of the project to build a Python 3 driven landscape-client package. This is facilitated through a new landscape-common3 package. The existing landscape-common package, based on Python 2, remains unchanged.

Please review these changes as I am not so familiar with your building system. This MP should only be merged, when the general issue with client-server and bytes/unicode is solved.

To post a comment you must log in.
Revision history for this message
🤖 Landscape Builder (landscape-builder) :
review: Abstain (executing tests)
Revision history for this message
🤖 Landscape Builder (landscape-builder) wrote :

Command: TRIAL_ARGS=-j4 make ci-check
Result: Success
Revno: 1003
Branch: lp:~gocept/landscape-client/py3-packages
Jenkins: https://ci.lscape.net/job/latch-test-xenial/3829/

review: Approve (test results)
Revision history for this message
Eric Snow (ericsnowcurrently) wrote :

As noted below, please leave the "landscape-common" package name and share packaging script code as much as possible.

review: Needs Fixing
Revision history for this message
Steffen Allner (sallner) wrote :

I was not able to find a nice solution for the shared code on landscape-common.postinst, but would be interested in a working idea. I will apply the symlinks and keep the name, even if this was not specified in the contract.

Revision history for this message
🤖 Landscape Builder (landscape-builder) :
review: Abstain (executing tests)
Revision history for this message
Steffen Allner (sallner) wrote :

That looks not nice with the large diff, but apparently deleting and adding the same file does not work so easily with bzr. Maybe we should apply the resulting diff of this MP to a new one.

Revision history for this message
🤖 Landscape Builder (landscape-builder) wrote :

Command: make ci-check
Result: Success
Revno: 1006
Branch: lp:~gocept/landscape-client/py3-packages
Jenkins: https://ci.lscape.net/job/latch-test-xenial/3834/

review: Approve (test results)
Revision history for this message
Eric Snow (ericsnowcurrently) :
Revision history for this message
Eric Snow (ericsnowcurrently) wrote :

LGTM

The messiness with the diff is unfortunate but fine.

review: Approve
Revision history for this message
Free Ekanayaka (free.ekanayaka) wrote :

+1

review: Approve
Revision history for this message
Eric Snow (ericsnowcurrently) wrote :

I'm marking this MP as WIP until we have the client-server interaction fully resolved under Python 3.

Revision history for this message
Free Ekanayaka (free.ekanayaka) wrote :

The client-server interaction will be addressed separately.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.bzrignore'
2--- .bzrignore 2017-01-11 09:22:48 +0000
3+++ .bzrignore 2017-04-04 14:00:41 +0000
4@@ -10,12 +10,12 @@
5 debian/landscape-client.prerm.debhelper
6 debian/landscape-client.substvars
7 debian/landscape-client.debhelper.log
8-debian/landscape-common/
9-debian/landscape-common.debhelper.log
10-debian/landscape-common.postinst.debhelper
11-debian/landscape-common.postrm.debhelper
12-debian/landscape-common.prerm.debhelper
13-debian/landscape-common.substvars
14+debian/landscape-common*/
15+debian/landscape-common*.debhelper.log
16+debian/landscape-common*.postinst.debhelper
17+debian/landscape-common*.postrm.debhelper
18+debian/landscape-common*.prerm.debhelper
19+debian/landscape-common*.substvars
20 man/landscape-client.1
21 man/landscape-config.1
22 man/landscape-message.1
23
24=== modified file 'Makefile'
25--- Makefile 2017-03-30 13:44:12 +0000
26+++ Makefile 2017-04-04 14:00:41 +0000
27@@ -1,6 +1,6 @@
28 PYDOCTOR ?= pydoctor
29 TXT2MAN ?= txt2man
30-PYTHON ?= python
31+PYTHON2 ?= python2
32 PYTHON3 ?= python3
33 TRIAL_ARGS ?=
34 TEST_COMMAND_PY2 = trial --unclean-warnings $(TRIAL_ARGS) landscape
35@@ -43,7 +43,7 @@
36
37 .PHONY: build2
38 build2:
39- $(PYTHON) setup.py build_ext -i
40+ $(PYTHON2) setup.py build_ext -i
41
42 .PHONY: build3
43 build3:
44@@ -59,7 +59,7 @@
45 check: check2 check3-ready ## Run all the tests.
46
47 .PHONY: check2
48-check2: build
49+check2: build2
50 LC_ALL=C $(TEST_COMMAND_PY2)
51
52 .PHONY: check3
53
54=== modified file 'debian/changelog'
55--- debian/changelog 2017-03-27 20:48:26 +0000
56+++ debian/changelog 2017-04-04 14:00:41 +0000
57@@ -1,3 +1,9 @@
58+landscape-client (17.04+bzr1002-0ubuntu0) xenial; urgency=medium
59+
60+ * New local test build
61+
62+ -- Steffen Allner <sa@gocept.com> Fri, 31 Mar 2017 13:27:26 +0200
63+
64 landscape-client (17.04-0ubuntu1) UNRELEASED; urgency=medium
65
66 * New trunk build
67
68=== modified file 'debian/control'
69--- debian/control 2017-01-19 08:34:52 +0000
70+++ debian/control 2017-04-04 14:00:41 +0000
71@@ -34,13 +34,40 @@
72 This package provides the core libraries.
73 XB-Python-Version: ${python:Versions}
74
75+Package: landscape-common3
76+Architecture: any
77+Depends: ${python:Depends}, ${misc:Depends}, ${extra:Depends},
78+ ${shlibs:Depends},
79+ python3-twisted,
80+ python3-configobj,
81+ python3-apt,
82+ python3-passlib,
83+ ca-certificates,
84+ python3-gdbm,
85+ lsb-release,
86+ lsb-base,
87+ adduser,
88+ bc,
89+ lshw,
90+ libpam-modules
91+Suggests: ${extra:Suggests}
92+Breaks: landscape-client-ui (<< 16.04), landscape-client-ui-install (<< 16.04)
93+Replaces: landscape-client-ui (<< 16.04), landscape-client-ui-install (<< 16.04)
94+Description: Landscape administration system client - Common files
95+ Landscape is a web-based tool for managing Ubuntu systems. This
96+ package is necessary if you want your machine to be managed in a
97+ Landscape account.
98+ .
99+ This package provides the core libraries.
100+XB-Python-Version: ${python:Versions}
101+
102 Package: landscape-client
103 Architecture: any
104 Depends: ${python:Depends}, ${misc:Depends}, ${extra:Depends},
105 ${shlibs:Depends},
106- python-twisted-web,
107- python-pycurl,
108- landscape-common (= ${binary:Version})
109+ python3-twisted,
110+ python3-pycurl,
111+ landscape-common3 (= ${binary:Version})
112 Suggests: ${extra:Suggests}
113 Description: Landscape administration system client
114 Landscape is a web-based tool for managing Ubuntu systems. This
115
116=== modified file 'debian/landscape-client.postinst'
117--- debian/landscape-client.postinst 2017-01-05 11:19:41 +0000
118+++ debian/landscape-client.postinst 2017-04-04 14:00:41 +0000
119@@ -18,10 +18,10 @@
120
121 PACKAGE=landscape-client
122
123-# Use the default installed Python. Running just "python" might run
124+# Use the default installed Python 3. Running just "python" might run
125 # something from /usr/local/bin, which doesn't necessarily support
126 # running the landscape client.
127-PYTHON=/usr/bin/python
128+PYTHON=/usr/bin/python3
129
130 case "$1" in
131 configure)
132
133=== added file 'debian/landscape-common.config'
134--- debian/landscape-common.config 1970-01-01 00:00:00 +0000
135+++ debian/landscape-common.config 2017-04-04 14:00:41 +0000
136@@ -0,0 +1,10 @@
137+#!/bin/sh
138+
139+PACKAGE=landscape-common
140+
141+set -e
142+. /usr/share/debconf/confmodule
143+
144+# Ask questions.
145+db_input medium $PACKAGE/sysinfo || true
146+db_go
147
148=== removed file 'debian/landscape-common.config'
149--- debian/landscape-common.config 2009-08-10 15:14:09 +0000
150+++ debian/landscape-common.config 1970-01-01 00:00:00 +0000
151@@ -1,10 +0,0 @@
152-#!/bin/sh
153-
154-PACKAGE=landscape-common
155-
156-set -e
157-. /usr/share/debconf/confmodule
158-
159-# Ask questions.
160-db_input medium $PACKAGE/sysinfo || true
161-db_go
162
163=== added file 'debian/landscape-common.dirs'
164--- debian/landscape-common.dirs 1970-01-01 00:00:00 +0000
165+++ debian/landscape-common.dirs 2017-04-04 14:00:41 +0000
166@@ -0,0 +1,1 @@
167+etc/update-motd.d
168
169=== removed file 'debian/landscape-common.dirs'
170--- debian/landscape-common.dirs 2009-06-08 14:32:33 +0000
171+++ debian/landscape-common.dirs 1970-01-01 00:00:00 +0000
172@@ -1,1 +0,0 @@
173-etc/update-motd.d
174
175=== added file 'debian/landscape-common.install'
176--- debian/landscape-common.install 1970-01-01 00:00:00 +0000
177+++ debian/landscape-common.install 2017-04-04 14:00:41 +0000
178@@ -0,0 +1,3 @@
179+usr/lib/python*
180+usr/bin/landscape-sysinfo
181+usr/share/landscape/landscape-sysinfo.wrapper
182
183=== removed file 'debian/landscape-common.install'
184--- debian/landscape-common.install 2009-06-08 14:32:33 +0000
185+++ debian/landscape-common.install 1970-01-01 00:00:00 +0000
186@@ -1,3 +0,0 @@
187-usr/lib/python*
188-usr/bin/landscape-sysinfo
189-usr/share/landscape/landscape-sysinfo.wrapper
190
191=== added file 'debian/landscape-common.manpages'
192--- debian/landscape-common.manpages 1970-01-01 00:00:00 +0000
193+++ debian/landscape-common.manpages 2017-04-04 14:00:41 +0000
194@@ -0,0 +1,1 @@
195+man/landscape-sysinfo.1
196
197=== removed file 'debian/landscape-common.manpages'
198--- debian/landscape-common.manpages 2012-09-26 14:04:47 +0000
199+++ debian/landscape-common.manpages 1970-01-01 00:00:00 +0000
200@@ -1,1 +0,0 @@
201-man/landscape-sysinfo.1
202
203=== added file 'debian/landscape-common.postinst'
204--- debian/landscape-common.postinst 1970-01-01 00:00:00 +0000
205+++ debian/landscape-common.postinst 2017-04-04 14:00:41 +0000
206@@ -0,0 +1,110 @@
207+#!/bin/sh
208+set -e
209+
210+# summary of how this script can be called:
211+# * <postinst> `configure' <most-recently-configured-version>
212+# * <old-postinst> `abort-upgrade' <new version>
213+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
214+# <new-version>
215+# * <postinst> `abort-remove'
216+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
217+# <failed-install-package> <version> `removing'
218+# <conflicting-package> <version>
219+# for details, see http://www.debian.org/doc/debian-policy/ or
220+# the debian-policy package
221+
222+. /usr/share/debconf/confmodule
223+trap "db_stop || true" EXIT HUP INT QUIT TERM
224+
225+PACKAGE=landscape-common
226+
227+# Use the default installed Python. Running just "python" might run
228+# something from /usr/local/bin, which doesn't necessarily support
229+# running the landscape client.
230+PYTHON=/usr/bin/python
231+
232+case "$1" in
233+ configure)
234+
235+ # Since motd shows a different number of security updates, suppress the message
236+ dpkg-divert --package landscape-common --rename /etc/update-motd.d/90-updates-available
237+
238+ db_get $PACKAGE/sysinfo
239+ # Choices:
240+ # * Do not display sysinfo on login
241+ # * Cache sysinfo in /etc/motd
242+ # * Run sysinfo on every login
243+ SYSINFO="${RET:-Cache sysinfo in /etc/motd}"
244+ WRAPPER=/usr/share/landscape/landscape-sysinfo.wrapper
245+ PROFILE_LOCATION=/etc/profile.d/50-landscape-sysinfo.sh
246+ UPDATE_MOTD_LOCATION=/etc/update-motd.d/50-landscape-sysinfo
247+ if [ "$RET" = "Cache sysinfo in /etc/motd" ]; then
248+ rm -f $PROFILE_LOCATION 2>/dev/null || true
249+ ln -sf $WRAPPER $UPDATE_MOTD_LOCATION
250+ update-motd 2>/dev/null || true
251+ elif [ "$RET" = "Run sysinfo on every login" ]; then
252+ rm -f $UPDATE_MOTD_LOCATION 2>/dev/null || true
253+ update-motd 2>/dev/null || true
254+ ln -sf $WRAPPER $PROFILE_LOCATION
255+ else
256+ rm -f $UPDATE_MOTD_LOCATION 2>/dev/null || true
257+ update-motd 2>/dev/null || true
258+ rm -f $PROFILE_LOCATION || true
259+ fi
260+
261+ # 0.9.1 introduces non-backwards compatible changes. This detects
262+ # whether or not the data is in the current format. If not, all
263+ # existing data is removed.
264+ DATA_DIR=/var/lib/landscape
265+
266+ if [ -d $DATA_DIR/data ]; then
267+ rm -rf $DATA_DIR/*
268+ elif [ -f $DATA_DIR/client/data.bpickle ]; then
269+ LAST_BYTE=`sed -n '$,$s/.*\(.\)/\1/p' $DATA_DIR/client/data.bpickle`
270+ if [ "$LAST_BYTE" = e ]; then
271+ rm -rf $DATA_DIR/*
272+ fi
273+ fi
274+
275+ # Create landscape system user
276+ if ! getent passwd landscape >/dev/null; then
277+ adduser --quiet --system --group --disabled-password \
278+ --home /var/lib/landscape --no-create-home landscape
279+ fi
280+
281+ # Create landscape system group (for <= 1.0.29.1-0ubuntu0.9.04.0)
282+ if ! getent group landscape >/dev/null; then
283+ addgroup --quiet --system landscape
284+ fi
285+
286+ # Ensure primary group is landscape (for <= 1.0.29.1-0ubuntu0.9.04.0)
287+ if ! usermod -g landscape landscape > /dev/null 2>&1; then
288+ echo "ERROR: usermod -g landscape landscape failed."
289+ fi
290+
291+ # Fix prior ownerships, we exclude the custom-graph-scripts directory
292+ # because there might script-generated files that we want to preserve
293+ # the ownership of.
294+ if [ -d /var/lib/landscape/client ]; then
295+ find /var/lib/landscape/client/ -wholename /var/lib/landscape/client/custom-graph-scripts -prune -or -exec chown landscape {} \; > /dev/null 2>&1
296+ fi
297+ [ -d /var/lib/landscape/.gnupg ] && chown -R landscape /var/lib/landscape/.gnupg || :
298+ chown -R landscape /var/log/landscape
299+
300+ ;;
301+
302+ abort-upgrade|abort-remove|abort-deconfigure)
303+ ;;
304+
305+ *)
306+ echo "postinst called with unknown argument \`$1'" >&2
307+ exit 1
308+ ;;
309+esac
310+
311+# dh_installdeb will replace this with shell code automatically
312+# generated by other debhelper scripts.
313+
314+#DEBHELPER#
315+
316+exit 0
317
318=== removed file 'debian/landscape-common.postinst'
319--- debian/landscape-common.postinst 2017-01-18 09:11:59 +0000
320+++ debian/landscape-common.postinst 1970-01-01 00:00:00 +0000
321@@ -1,110 +0,0 @@
322-#!/bin/sh
323-set -e
324-
325-# summary of how this script can be called:
326-# * <postinst> `configure' <most-recently-configured-version>
327-# * <old-postinst> `abort-upgrade' <new version>
328-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
329-# <new-version>
330-# * <postinst> `abort-remove'
331-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
332-# <failed-install-package> <version> `removing'
333-# <conflicting-package> <version>
334-# for details, see http://www.debian.org/doc/debian-policy/ or
335-# the debian-policy package
336-
337-. /usr/share/debconf/confmodule
338-trap "db_stop || true" EXIT HUP INT QUIT TERM
339-
340-PACKAGE=landscape-common
341-
342-# Use the default installed Python. Running just "python" might run
343-# something from /usr/local/bin, which doesn't necessarily support
344-# running the landscape client.
345-PYTHON=/usr/bin/python
346-
347-case "$1" in
348- configure)
349-
350- # Since motd shows a different number of security updates, suppress the message
351- dpkg-divert --package landscape-common --rename /etc/update-motd.d/90-updates-available
352-
353- db_get $PACKAGE/sysinfo
354- # Choices:
355- # * Do not display sysinfo on login
356- # * Cache sysinfo in /etc/motd
357- # * Run sysinfo on every login
358- SYSINFO="${RET:-Cache sysinfo in /etc/motd}"
359- WRAPPER=/usr/share/landscape/landscape-sysinfo.wrapper
360- PROFILE_LOCATION=/etc/profile.d/50-landscape-sysinfo.sh
361- UPDATE_MOTD_LOCATION=/etc/update-motd.d/50-landscape-sysinfo
362- if [ "$RET" = "Cache sysinfo in /etc/motd" ]; then
363- rm -f $PROFILE_LOCATION 2>/dev/null || true
364- ln -sf $WRAPPER $UPDATE_MOTD_LOCATION
365- update-motd 2>/dev/null || true
366- elif [ "$RET" = "Run sysinfo on every login" ]; then
367- rm -f $UPDATE_MOTD_LOCATION 2>/dev/null || true
368- update-motd 2>/dev/null || true
369- ln -sf $WRAPPER $PROFILE_LOCATION
370- else
371- rm -f $UPDATE_MOTD_LOCATION 2>/dev/null || true
372- update-motd 2>/dev/null || true
373- rm -f $PROFILE_LOCATION || true
374- fi
375-
376- # 0.9.1 introduces non-backwards compatible changes. This detects
377- # whether or not the data is in the current format. If not, all
378- # existing data is removed.
379- DATA_DIR=/var/lib/landscape
380-
381- if [ -d $DATA_DIR/data ]; then
382- rm -rf $DATA_DIR/*
383- elif [ -f $DATA_DIR/client/data.bpickle ]; then
384- LAST_BYTE=`sed -n '$,$s/.*\(.\)/\1/p' $DATA_DIR/client/data.bpickle`
385- if [ "$LAST_BYTE" = e ]; then
386- rm -rf $DATA_DIR/*
387- fi
388- fi
389-
390- # Create landscape system user
391- if ! getent passwd landscape >/dev/null; then
392- adduser --quiet --system --group --disabled-password \
393- --home /var/lib/landscape --no-create-home landscape
394- fi
395-
396- # Create landscape system group (for <= 1.0.29.1-0ubuntu0.9.04.0)
397- if ! getent group landscape >/dev/null; then
398- addgroup --quiet --system landscape
399- fi
400-
401- # Ensure primary group is landscape (for <= 1.0.29.1-0ubuntu0.9.04.0)
402- if ! usermod -g landscape landscape > /dev/null 2>&1; then
403- echo "ERROR: usermod -g landscape landscape failed."
404- fi
405-
406- # Fix prior ownerships, we exclude the custom-graph-scripts directory
407- # because there might script-generated files that we want to preserve
408- # the ownership of.
409- if [ -d /var/lib/landscape/client ]; then
410- find /var/lib/landscape/client/ -wholename /var/lib/landscape/client/custom-graph-scripts -prune -or -exec chown landscape {} \; > /dev/null 2>&1
411- fi
412- [ -d /var/lib/landscape/.gnupg ] && chown -R landscape /var/lib/landscape/.gnupg || :
413- chown -R landscape /var/log/landscape
414-
415- ;;
416-
417- abort-upgrade|abort-remove|abort-deconfigure)
418- ;;
419-
420- *)
421- echo "postinst called with unknown argument \`$1'" >&2
422- exit 1
423- ;;
424-esac
425-
426-# dh_installdeb will replace this with shell code automatically
427-# generated by other debhelper scripts.
428-
429-#DEBHELPER#
430-
431-exit 0
432
433=== added file 'debian/landscape-common.postrm'
434--- debian/landscape-common.postrm 1970-01-01 00:00:00 +0000
435+++ debian/landscape-common.postrm 2017-04-04 14:00:41 +0000
436@@ -0,0 +1,40 @@
437+#!/bin/sh
438+set -e
439+
440+# summary of how this script can be called:
441+# * <postrm> `remove'
442+# * <postrm> `purge'
443+# * <old-postrm> `upgrade' <new-version>
444+# * <new-postrm> `failed-upgrade' <old-version>
445+# * <new-postrm> `abort-install'
446+# * <new-postrm> `abort-install' <old-version>
447+# * <new-postrm> `abort-upgrade' <old-version>
448+# * <disappearer's-postrm> `disappear' <overwriter>
449+# <overwriter-version>
450+# for details, see http://www.debian.org/doc/debian-policy/ or
451+# the debian-policy package
452+
453+case "$1" in
454+ purge)
455+ LOG_DIR=/var/log/landscape
456+ CONFIG_FILE=/etc/landscape/client.conf
457+ deluser --quiet --system landscape >/dev/null || true
458+ rm -f "${LOG_DIR}/sysinfo.log"*
459+ rm -f "${CONFIG_FILE}"
460+ ;;
461+
462+ remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
463+ ;;
464+
465+ *)
466+ echo "postrm called with unknown argument \`$1'" >&2
467+ exit 1
468+ ;;
469+esac
470+
471+# dh_installdeb will replace this with shell code automatically
472+# generated by other debhelper scripts.
473+
474+#DEBHELPER#
475+
476+exit 0
477
478=== removed file 'debian/landscape-common.postrm'
479--- debian/landscape-common.postrm 2012-03-07 16:26:01 +0000
480+++ debian/landscape-common.postrm 1970-01-01 00:00:00 +0000
481@@ -1,40 +0,0 @@
482-#!/bin/sh
483-set -e
484-
485-# summary of how this script can be called:
486-# * <postrm> `remove'
487-# * <postrm> `purge'
488-# * <old-postrm> `upgrade' <new-version>
489-# * <new-postrm> `failed-upgrade' <old-version>
490-# * <new-postrm> `abort-install'
491-# * <new-postrm> `abort-install' <old-version>
492-# * <new-postrm> `abort-upgrade' <old-version>
493-# * <disappearer's-postrm> `disappear' <overwriter>
494-# <overwriter-version>
495-# for details, see http://www.debian.org/doc/debian-policy/ or
496-# the debian-policy package
497-
498-case "$1" in
499- purge)
500- LOG_DIR=/var/log/landscape
501- CONFIG_FILE=/etc/landscape/client.conf
502- deluser --quiet --system landscape >/dev/null || true
503- rm -f "${LOG_DIR}/sysinfo.log"*
504- rm -f "${CONFIG_FILE}"
505- ;;
506-
507- remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
508- ;;
509-
510- *)
511- echo "postrm called with unknown argument \`$1'" >&2
512- exit 1
513- ;;
514-esac
515-
516-# dh_installdeb will replace this with shell code automatically
517-# generated by other debhelper scripts.
518-
519-#DEBHELPER#
520-
521-exit 0
522
523=== added file 'debian/landscape-common.prerm'
524--- debian/landscape-common.prerm 1970-01-01 00:00:00 +0000
525+++ debian/landscape-common.prerm 2017-04-04 14:00:41 +0000
526@@ -0,0 +1,42 @@
527+#!/bin/sh
528+# prerm script for landscape-common
529+#
530+# see: dh_installdeb(1)
531+
532+set -e
533+
534+# summary of how this script can be called:
535+# * <prerm> `remove'
536+# * <old-prerm> `upgrade' <new-version>
537+# * <new-prerm> `failed-upgrade' <old-version>
538+# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
539+# * <deconfigured's-prerm> `deconfigure' `in-favour'
540+# <package-being-installed> <version> `removing'
541+# <conflicting-package> <version>
542+# for details, see http://www.debian.org/doc/debian-policy/ or
543+# the debian-policy package
544+
545+
546+case "$1" in
547+ remove|upgrade|deconfigure)
548+ dpkg-divert --remove --package landscape-common --rename /etc/update-motd.d/90-updates-available
549+ rm -f /etc/update-motd.d/50-landscape-sysinfo 2>/dev/null || true
550+ update-motd 2>/dev/null || true
551+ rm -f /etc/profile.d/landscape-sysinfo.sh 2>/dev/null || true
552+ ;;
553+
554+ failed-upgrade)
555+ ;;
556+
557+ *)
558+ echo "prerm called with unknown argument \`$1'" >&2
559+ exit 1
560+ ;;
561+esac
562+
563+# dh_installdeb will replace this with shell code automatically
564+# generated by other debhelper scripts.
565+
566+#DEBHELPER#
567+
568+exit 0
569
570=== removed file 'debian/landscape-common.prerm'
571--- debian/landscape-common.prerm 2017-01-18 09:11:59 +0000
572+++ debian/landscape-common.prerm 1970-01-01 00:00:00 +0000
573@@ -1,42 +0,0 @@
574-#!/bin/sh
575-# prerm script for landscape-common
576-#
577-# see: dh_installdeb(1)
578-
579-set -e
580-
581-# summary of how this script can be called:
582-# * <prerm> `remove'
583-# * <old-prerm> `upgrade' <new-version>
584-# * <new-prerm> `failed-upgrade' <old-version>
585-# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
586-# * <deconfigured's-prerm> `deconfigure' `in-favour'
587-# <package-being-installed> <version> `removing'
588-# <conflicting-package> <version>
589-# for details, see http://www.debian.org/doc/debian-policy/ or
590-# the debian-policy package
591-
592-
593-case "$1" in
594- remove|upgrade|deconfigure)
595- dpkg-divert --remove --package landscape-common --rename /etc/update-motd.d/90-updates-available
596- rm -f /etc/update-motd.d/50-landscape-sysinfo 2>/dev/null || true
597- update-motd 2>/dev/null || true
598- rm -f /etc/profile.d/landscape-sysinfo.sh 2>/dev/null || true
599- ;;
600-
601- failed-upgrade)
602- ;;
603-
604- *)
605- echo "prerm called with unknown argument \`$1'" >&2
606- exit 1
607- ;;
608-esac
609-
610-# dh_installdeb will replace this with shell code automatically
611-# generated by other debhelper scripts.
612-
613-#DEBHELPER#
614-
615-exit 0
616
617=== added file 'debian/landscape-common.templates'
618--- debian/landscape-common.templates 1970-01-01 00:00:00 +0000
619+++ debian/landscape-common.templates 2017-04-04 14:00:41 +0000
620@@ -0,0 +1,20 @@
621+Template: landscape-common/sysinfo
622+Type: select
623+# Translators beware! the following three strings form a single
624+# Choices menu. - Every one of these strings has to fit in a standard
625+# 80 characters console, as the fancy screen setup takes up some space
626+# try to keep below ~71 characters.
627+# DO NOT USE commas (,) in Choices translations otherwise
628+# this will break the choices shown to users
629+__Choices: Do not display sysinfo on login, Cache sysinfo in /etc/motd, Run sysinfo on every login
630+Default: Cache sysinfo in /etc/motd
631+_Description: landscape-sysinfo configuration:
632+ Landscape includes a tool and a set of modules that can display
633+ system status, information, and statistics on login.
634+ .
635+ This information can be gathered periodically (every 10 minutes)
636+ and automatically written to /etc/motd. The data could be a few
637+ minutes out-of-date.
638+ .
639+ Or, this information can be gathered at login. The data will be
640+ more current, but might introduce a small delay at login.
641
642=== removed file 'debian/landscape-common.templates'
643--- debian/landscape-common.templates 2012-05-28 15:14:28 +0000
644+++ debian/landscape-common.templates 1970-01-01 00:00:00 +0000
645@@ -1,20 +0,0 @@
646-Template: landscape-common/sysinfo
647-Type: select
648-# Translators beware! the following three strings form a single
649-# Choices menu. - Every one of these strings has to fit in a standard
650-# 80 characters console, as the fancy screen setup takes up some space
651-# try to keep below ~71 characters.
652-# DO NOT USE commas (,) in Choices translations otherwise
653-# this will break the choices shown to users
654-__Choices: Do not display sysinfo on login, Cache sysinfo in /etc/motd, Run sysinfo on every login
655-Default: Cache sysinfo in /etc/motd
656-_Description: landscape-sysinfo configuration:
657- Landscape includes a tool and a set of modules that can display
658- system status, information, and statistics on login.
659- .
660- This information can be gathered periodically (every 10 minutes)
661- and automatically written to /etc/motd. The data could be a few
662- minutes out-of-date.
663- .
664- Or, this information can be gathered at login. The data will be
665- more current, but might introduce a small delay at login.
666
667=== added file 'debian/landscape-common3.config'
668--- debian/landscape-common3.config 1970-01-01 00:00:00 +0000
669+++ debian/landscape-common3.config 2017-04-04 14:00:41 +0000
670@@ -0,0 +1,10 @@
671+#!/bin/sh
672+
673+PACKAGE=landscape-common3
674+
675+set -e
676+. /usr/share/debconf/confmodule
677+
678+# Ask questions.
679+db_input medium $PACKAGE/sysinfo || true
680+db_go
681
682=== added symlink 'debian/landscape-common3.dirs'
683=== target is u'landscape-common.dirs'
684=== added symlink 'debian/landscape-common3.install'
685=== target is u'landscape-common.install'
686=== added symlink 'debian/landscape-common3.manpages'
687=== target is u'landscape-common.manpages'
688=== added file 'debian/landscape-common3.postinst'
689--- debian/landscape-common3.postinst 1970-01-01 00:00:00 +0000
690+++ debian/landscape-common3.postinst 2017-04-04 14:00:41 +0000
691@@ -0,0 +1,110 @@
692+#!/bin/sh
693+set -e
694+
695+# summary of how this script can be called:
696+# * <postinst> `configure' <most-recently-configured-version>
697+# * <old-postinst> `abort-upgrade' <new version>
698+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
699+# <new-version>
700+# * <postinst> `abort-remove'
701+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
702+# <failed-install-package> <version> `removing'
703+# <conflicting-package> <version>
704+# for details, see http://www.debian.org/doc/debian-policy/ or
705+# the debian-policy package
706+
707+. /usr/share/debconf/confmodule
708+trap "db_stop || true" EXIT HUP INT QUIT TERM
709+
710+PACKAGE=landscape-common3
711+
712+# Use the default installed Python 3. Running just "python" might run
713+# something from /usr/local/bin, which doesn't necessarily support
714+# running the landscape client.
715+PYTHON=/usr/bin/python3
716+
717+case "$1" in
718+ configure)
719+
720+ # Since motd shows a different number of security updates, suppress the message
721+ dpkg-divert --package landscape-common3 --rename /etc/update-motd.d/90-updates-available
722+
723+ db_get $PACKAGE/sysinfo
724+ # Choices:
725+ # * Do not display sysinfo on login
726+ # * Cache sysinfo in /etc/motd
727+ # * Run sysinfo on every login
728+ SYSINFO="${RET:-Cache sysinfo in /etc/motd}"
729+ WRAPPER=/usr/share/landscape/landscape-sysinfo.wrapper
730+ PROFILE_LOCATION=/etc/profile.d/50-landscape-sysinfo.sh
731+ UPDATE_MOTD_LOCATION=/etc/update-motd.d/50-landscape-sysinfo
732+ if [ "$RET" = "Cache sysinfo in /etc/motd" ]; then
733+ rm -f $PROFILE_LOCATION 2>/dev/null || true
734+ ln -sf $WRAPPER $UPDATE_MOTD_LOCATION
735+ update-motd 2>/dev/null || true
736+ elif [ "$RET" = "Run sysinfo on every login" ]; then
737+ rm -f $UPDATE_MOTD_LOCATION 2>/dev/null || true
738+ update-motd 2>/dev/null || true
739+ ln -sf $WRAPPER $PROFILE_LOCATION
740+ else
741+ rm -f $UPDATE_MOTD_LOCATION 2>/dev/null || true
742+ update-motd 2>/dev/null || true
743+ rm -f $PROFILE_LOCATION || true
744+ fi
745+
746+ # 0.9.1 introduces non-backwards compatible changes. This detects
747+ # whether or not the data is in the current format. If not, all
748+ # existing data is removed.
749+ DATA_DIR=/var/lib/landscape
750+
751+ if [ -d $DATA_DIR/data ]; then
752+ rm -rf $DATA_DIR/*
753+ elif [ -f $DATA_DIR/client/data.bpickle ]; then
754+ LAST_BYTE=`sed -n '$,$s/.*\(.\)/\1/p' $DATA_DIR/client/data.bpickle`
755+ if [ "$LAST_BYTE" = e ]; then
756+ rm -rf $DATA_DIR/*
757+ fi
758+ fi
759+
760+ # Create landscape system user
761+ if ! getent passwd landscape >/dev/null; then
762+ adduser --quiet --system --group --disabled-password \
763+ --home /var/lib/landscape --no-create-home landscape
764+ fi
765+
766+ # Create landscape system group (for <= 1.0.29.1-0ubuntu0.9.04.0)
767+ if ! getent group landscape >/dev/null; then
768+ addgroup --quiet --system landscape
769+ fi
770+
771+ # Ensure primary group is landscape (for <= 1.0.29.1-0ubuntu0.9.04.0)
772+ if ! usermod -g landscape landscape > /dev/null 2>&1; then
773+ echo "ERROR: usermod -g landscape landscape failed."
774+ fi
775+
776+ # Fix prior ownerships, we exclude the custom-graph-scripts directory
777+ # because there might script-generated files that we want to preserve
778+ # the ownership of.
779+ if [ -d /var/lib/landscape/client ]; then
780+ find /var/lib/landscape/client/ -wholename /var/lib/landscape/client/custom-graph-scripts -prune -or -exec chown landscape {} \; > /dev/null 2>&1
781+ fi
782+ [ -d /var/lib/landscape/.gnupg ] && chown -R landscape /var/lib/landscape/.gnupg || :
783+ chown -R landscape /var/log/landscape
784+
785+ ;;
786+
787+ abort-upgrade|abort-remove|abort-deconfigure)
788+ ;;
789+
790+ *)
791+ echo "postinst called with unknown argument \`$1'" >&2
792+ exit 1
793+ ;;
794+esac
795+
796+# dh_installdeb will replace this with shell code automatically
797+# generated by other debhelper scripts.
798+
799+#DEBHELPER#
800+
801+exit 0
802
803=== added symlink 'debian/landscape-common3.postrm'
804=== target is u'landscape-common.postrm'
805=== added symlink 'debian/landscape-common3.prerm'
806=== target is u'landscape-common.prerm'
807=== added symlink 'debian/landscape-common3.templates'
808=== target is u'landscape-common.templates'
809=== modified file 'debian/po/POTFILES.in'
810--- debian/po/POTFILES.in 2008-09-10 20:10:52 +0000
811+++ debian/po/POTFILES.in 2017-04-04 14:00:41 +0000
812@@ -1,2 +1,3 @@
813 [type: gettext/rfc822deb] landscape-client.templates
814 [type: gettext/rfc822deb] landscape-common.templates
815+[type: gettext/rfc822deb] landscape-common3.templates
816
817=== modified file 'debian/rules'
818--- debian/rules 2017-01-18 09:58:48 +0000
819+++ debian/rules 2017-04-04 14:00:41 +0000
820@@ -2,7 +2,7 @@
821
822 dist_release := $(shell lsb_release -cs)
823
824-dh_extra_flags = -plandscape-common -plandscape-client
825+dh_extra_flags = -plandscape-common -plandscape-common3 -plandscape-client
826
827 -include /usr/share/python/python.mk
828 ifeq (,$(py_sitename))
829@@ -18,6 +18,7 @@
830 revision = $(shell dpkg-parsechangelog | grep ^Version | cut -f 2 -d " "| cut -f 2 -d "-")
831
832 landscape_common_substvars = debian/landscape-common.substvars
833+landscape_common3_substvars = debian/landscape-common3.substvars
834 landscape_client_substvars = debian/landscape-client.substvars
835
836 build-arch: build
837@@ -28,7 +29,7 @@
838 build-stamp:
839 dh_testdir
840 sed -i -e "s/^DEBIAN_REVISION = \"\"/DEBIAN_REVISION = \"-$(revision)\"/g" landscape/__init__.py
841- python setup.py build
842+ python3 setup.py build
843 make -C apt-update
844 touch build-stamp
845
846@@ -51,7 +52,7 @@
847 var/log/landscape \
848 usr/share/landscape
849
850- python setup.py install --root $(root_dir) $(py_setup_install_args)
851+ python3 setup.py install --root $(root_dir) $(py_setup_install_args)
852
853 # Keep in mind that some installed files are defined in setup.py
854 install -D -o root -g root -m 755 debian/landscape-sysinfo.wrapper $(root_dir)/usr/share/landscape/landscape-sysinfo.wrapper
855@@ -79,6 +80,7 @@
856 # from quantal onwards, we don't want python-gnupginterface anymore (#1045237)
857 ifneq (,$(filter $(dist_release),lucid precise))
858 echo "extra:Depends=python-gnupginterface" >> $(landscape_common_substvars)
859+ echo "extra:Depends=python-gnupginterface" >> $(landscape_common3_substvars)
860 endif
861
862 # In xenial the client needs to depend on libpam-systemd (#1590838)
863
864=== modified file 'landscape/__init__.py'
865--- landscape/__init__.py 2017-03-21 13:00:17 +0000
866+++ landscape/__init__.py 2017-04-04 14:00:41 +0000
867@@ -1,5 +1,5 @@
868-DEBIAN_REVISION = ""
869-UPSTREAM_VERSION = "17.02"
870+DEBIAN_REVISION = "-0ubuntu0"
871+UPSTREAM_VERSION = "17.04+bzr1002"
872 VERSION = "%s%s" % (UPSTREAM_VERSION, DEBIAN_REVISION)
873
874 # The minimum server API version that all Landscape servers are known to speak
875
876=== modified file 'scripts/landscape-broker'
877--- scripts/landscape-broker 2010-01-06 15:11:24 +0000
878+++ scripts/landscape-broker 2017-04-04 14:00:41 +0000
879@@ -1,4 +1,4 @@
880-#!/usr/bin/python
881+#!/usr/bin/python3
882 import sys, os
883 if os.path.dirname(os.path.abspath(sys.argv[0])) == os.path.abspath("scripts"):
884 sys.path.insert(0, "./")
885
886=== modified file 'scripts/landscape-client'
887--- scripts/landscape-client 2010-04-23 14:42:21 +0000
888+++ scripts/landscape-client 2017-04-04 14:00:41 +0000
889@@ -1,4 +1,4 @@
890-#!/usr/bin/python
891+#!/usr/bin/python3
892 import sys, os
893 if os.path.dirname(os.path.abspath(sys.argv[0])) == os.path.abspath("scripts"):
894 sys.path.insert(0, "./")
895
896=== modified file 'scripts/landscape-config'
897--- scripts/landscape-config 2009-04-09 14:32:45 +0000
898+++ scripts/landscape-config 2017-04-04 14:00:41 +0000
899@@ -1,4 +1,4 @@
900-#!/usr/bin/python
901+#!/usr/bin/python3
902 import sys, os
903 if os.path.dirname(os.path.abspath(sys.argv[0])) == os.path.abspath("scripts"):
904 sys.path.insert(0, "./")
905
906=== modified file 'scripts/landscape-manager'
907--- scripts/landscape-manager 2010-01-06 15:11:24 +0000
908+++ scripts/landscape-manager 2017-04-04 14:00:41 +0000
909@@ -1,4 +1,4 @@
910-#!/usr/bin/python
911+#!/usr/bin/python3
912 import sys, os
913 if os.path.dirname(os.path.abspath(sys.argv[0])) == os.path.abspath("scripts"):
914 sys.path.insert(0, "./")
915
916=== modified file 'scripts/landscape-monitor'
917--- scripts/landscape-monitor 2010-01-06 15:11:24 +0000
918+++ scripts/landscape-monitor 2017-04-04 14:00:41 +0000
919@@ -1,4 +1,4 @@
920-#!/usr/bin/python
921+#!/usr/bin/python3
922 import sys, os
923 if os.path.dirname(os.path.abspath(sys.argv[0])) == os.path.abspath("scripts"):
924 sys.path.insert(0, "./")
925
926=== modified file 'scripts/landscape-package-changer'
927--- scripts/landscape-package-changer 2008-09-08 17:49:13 +0000
928+++ scripts/landscape-package-changer 2017-04-04 14:00:41 +0000
929@@ -1,4 +1,4 @@
930-#!/usr/bin/python
931+#!/usr/bin/python3
932 import sys, os
933 if os.path.dirname(os.path.abspath(sys.argv[0])) == os.path.abspath("scripts"):
934 sys.path.insert(0, "./")
935
936=== modified file 'scripts/landscape-package-reporter'
937--- scripts/landscape-package-reporter 2008-09-08 17:49:13 +0000
938+++ scripts/landscape-package-reporter 2017-04-04 14:00:41 +0000
939@@ -1,4 +1,4 @@
940-#!/usr/bin/python
941+#!/usr/bin/python3
942 import sys, os
943 if os.path.dirname(os.path.abspath(sys.argv[0])) == os.path.abspath("scripts"):
944 sys.path.insert(0, "./")
945
946=== modified file 'scripts/landscape-release-upgrader'
947--- scripts/landscape-release-upgrader 2009-10-21 11:00:47 +0000
948+++ scripts/landscape-release-upgrader 2017-04-04 14:00:41 +0000
949@@ -1,4 +1,4 @@
950-#!/usr/bin/python
951+#!/usr/bin/python3
952 import sys, os
953 if os.path.dirname(os.path.abspath(sys.argv[0])) == os.path.abspath("scripts"):
954 sys.path.insert(0, "./")
955
956=== modified file 'scripts/landscape-sysinfo'
957--- scripts/landscape-sysinfo 2009-10-08 13:27:31 +0000
958+++ scripts/landscape-sysinfo 2017-04-04 14:00:41 +0000
959@@ -1,4 +1,4 @@
960-#!/usr/bin/python
961+#!/usr/bin/python3
962 import sys, os
963
964 try:

Subscribers

People subscribed via source and target branches

to all changes: