4 TESTDIR
=$(readlink -f $(dirname $0))
8 configarchitecture
'native'
10 insertinstalledpackage
'sysvinit' 'native' '1' 'Essential: yes'
12 buildsimplenativepackage
'sysvinit' 'native' '2' 'sid' 'Pre-Depends: sysvinit-core | systemd-sysv
14 buildsimplenativepackage
'sysvinit-core' 'native' '2' 'sid'
16 buildsimplenativepackage
'systemd-sysv' 'native' '2~conflict' 'sid-conflict' 'Conflicts: sysvinit (<< 2)
17 Breaks: sysvinit-core'
19 buildsimplenativepackage
'systemd-sysv' 'native' '2~break' 'sid-break' 'Breaks: sysvinit (<< 2), sysvinit-core'
23 cp -a rootdir
/var
/lib
/dpkg
/status dpkg.status.backup
26 cp -a dpkg.status.backup rootdir
/var
/lib
/dpkg
/status
27 rm -f rootdir
/var
/lib
/apt
/extended_states
28 testfailureequal
"Reading package lists...
29 Building dependency tree...
30 The following extra packages will be installed:
32 The following NEW packages will be installed:
34 The following packages will be upgraded:
36 1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
37 E: This installation run will require temporarily removing the essential package sysvinit:$(getarchitecture 'native') due to a Conflicts/Pre-Depends loop. This is often bad, but if you really want to do it, activate the APT::Force-LoopBreak option.
38 E: Internal Error, Could not early remove sysvinit:$(dpkg --print-architecture) (2)" aptget
install systemd
-sysv -t "$1" -s
39 # ensure that really nothing happens
40 testfailure aptget
install systemd
-sysv -y -t "$1"
41 testdpkginstalled
'sysvinit'
42 testdpkgnotinstalled
'systemd-sysv'
44 # with enough force however …
45 cp -a dpkg.status.backup rootdir
/var
/lib
/dpkg
/status
46 testsuccess aptget
install systemd
-sysv -y -t "$1" -o APT
::Force
-LoopBreak=1
47 testdpkginstalled
'sysvinit' 'systemd-sysv'
50 testforcebreak
'sid-conflict'
51 testforcebreak
'sid-break'