From dc5524b0906cf3111c49cd16396b22668b6d7ee2 Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Thu, 9 Aug 2007 14:04:25 +0000 Subject: - urpmi o explicit error when using "urpmi ---install-src" as user with remote media o add support for "suggests": a newly suggested package is installed as if required, but one can remove it afterwards, or use --no-suggests - urpmf o handle --suggests all the work is done in perl-URPM 1.69 --- t/data/SPECS/suggests/a-1.spec | 14 ++++++ t/data/SPECS/suggests/a-2.spec | 15 +++++++ t/data/SPECS/suggests/a-3.spec | 14 ++++++ t/data/SPECS/suggests/b.spec | 14 ++++++ t/data/SPECS/suggests/bb.spec | 14 ++++++ t/data/SPECS/suggests/c.spec | 14 ++++++ t/data/SPECS/suggests/cc.spec | 14 ++++++ t/data/SPECS/suggests/suggested_b.spec | 13 ++++++ t/data/SPECS/suggests/suggested_c.spec | 13 ++++++ t/data/SPECS/suggests/with-invalid.spec | 14 ++++++ t/superuser--suggests.t | 75 +++++++++++++++++++++++++++++++++ 11 files changed, 214 insertions(+) create mode 100644 t/data/SPECS/suggests/a-1.spec create mode 100644 t/data/SPECS/suggests/a-2.spec create mode 100644 t/data/SPECS/suggests/a-3.spec create mode 100644 t/data/SPECS/suggests/b.spec create mode 100644 t/data/SPECS/suggests/bb.spec create mode 100644 t/data/SPECS/suggests/c.spec create mode 100644 t/data/SPECS/suggests/cc.spec create mode 100644 t/data/SPECS/suggests/suggested_b.spec create mode 100644 t/data/SPECS/suggests/suggested_c.spec create mode 100644 t/data/SPECS/suggests/with-invalid.spec create mode 100644 t/superuser--suggests.t (limited to 't') diff --git a/t/data/SPECS/suggests/a-1.spec b/t/data/SPECS/suggests/a-1.spec new file mode 100644 index 00000000..b31038b9 --- /dev/null +++ b/t/data/SPECS/suggests/a-1.spec @@ -0,0 +1,14 @@ +Summary: a +Name: a +Version: 1 +Release: 1 +License: x +Group: x +Url: x +Suggests: suggested_b +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files diff --git a/t/data/SPECS/suggests/a-2.spec b/t/data/SPECS/suggests/a-2.spec new file mode 100644 index 00000000..2431bd9c --- /dev/null +++ b/t/data/SPECS/suggests/a-2.spec @@ -0,0 +1,15 @@ +Summary: a +Name: a +Version: 2 +Release: 1 +License: x +Group: x +Url: x +Suggests: suggested_b +Suggests: suggested_c +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files diff --git a/t/data/SPECS/suggests/a-3.spec b/t/data/SPECS/suggests/a-3.spec new file mode 100644 index 00000000..43d51a36 --- /dev/null +++ b/t/data/SPECS/suggests/a-3.spec @@ -0,0 +1,14 @@ +Summary: a +Name: a +Version: 3 +Release: 1 +License: x +Group: x +Url: x +Suggests: suggested_b +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files diff --git a/t/data/SPECS/suggests/b.spec b/t/data/SPECS/suggests/b.spec new file mode 100644 index 00000000..da1ee869 --- /dev/null +++ b/t/data/SPECS/suggests/b.spec @@ -0,0 +1,14 @@ +Summary: b +Name: b +Version: 1 +Release: 1 +License: x +Group: x +Url: x +Requires: bb +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files diff --git a/t/data/SPECS/suggests/bb.spec b/t/data/SPECS/suggests/bb.spec new file mode 100644 index 00000000..4319c755 --- /dev/null +++ b/t/data/SPECS/suggests/bb.spec @@ -0,0 +1,14 @@ +Summary: bb +Name: bb +Version: 1 +Release: 1 +License: x +Group: x +Url: x +Suggests: suggested_b +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files diff --git a/t/data/SPECS/suggests/c.spec b/t/data/SPECS/suggests/c.spec new file mode 100644 index 00000000..96e34787 --- /dev/null +++ b/t/data/SPECS/suggests/c.spec @@ -0,0 +1,14 @@ +Summary: c +Name: c +Version: 1 +Release: 1 +License: x +Group: x +Url: x +Suggests: cc +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files diff --git a/t/data/SPECS/suggests/cc.spec b/t/data/SPECS/suggests/cc.spec new file mode 100644 index 00000000..170cffb9 --- /dev/null +++ b/t/data/SPECS/suggests/cc.spec @@ -0,0 +1,14 @@ +Summary: cc +Name: cc +Version: 1 +Release: 1 +License: x +Group: x +Url: x +Requires: b +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files diff --git a/t/data/SPECS/suggests/suggested_b.spec b/t/data/SPECS/suggests/suggested_b.spec new file mode 100644 index 00000000..11c48863 --- /dev/null +++ b/t/data/SPECS/suggests/suggested_b.spec @@ -0,0 +1,13 @@ +Summary: suggested_b +Name: suggested_b +Version: 1 +Release: 1 +License: x +Group: x +Url: x +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files diff --git a/t/data/SPECS/suggests/suggested_c.spec b/t/data/SPECS/suggests/suggested_c.spec new file mode 100644 index 00000000..1c721384 --- /dev/null +++ b/t/data/SPECS/suggests/suggested_c.spec @@ -0,0 +1,13 @@ +Summary: suggested_c +Name: suggested_c +Version: 1 +Release: 1 +License: x +Group: x +Url: x +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files diff --git a/t/data/SPECS/suggests/with-invalid.spec b/t/data/SPECS/suggests/with-invalid.spec new file mode 100644 index 00000000..781f7988 --- /dev/null +++ b/t/data/SPECS/suggests/with-invalid.spec @@ -0,0 +1,14 @@ +Summary: x +Name: with-invalid +Version: 1 +Release: 1 +License: x +Group: x +Url: x +Suggests: invalid +BuildRoot: %{_tmppath}/%{name} + +%description +x + +%files diff --git a/t/superuser--suggests.t b/t/superuser--suggests.t new file mode 100644 index 00000000..b3e897cc --- /dev/null +++ b/t/superuser--suggests.t @@ -0,0 +1,75 @@ +#!/usr/bin/perl + +use strict; +use lib '.', 't'; +use helper; +use Expect; +use urpm::util; +use Test::More 'no_plan'; + +need_root_and_prepare(); + +my $medium_name = 'suggests'; + +urpmi_addmedia("$medium_name $::pwd/media/$medium_name"); + +test_b(); +test_c(); +test_invalid(); +test_upgrade(); + +sub test_b { + test('b', ['bb'], ['suggested_b']); + test_2('bb', [], 'b', [], []); +} + +sub test_c { + test('c', [], ['cc', 'b', 'bb', 'suggested_b']); + test_2('b', ['bb'], 'c', [], ['cc']); + test_2('bb', [], 'c', [], ['cc', 'b']); +} + +sub test_invalid { + urpmi("--auto with-invalid"); + check_installed_and_remove('with-invalid'); +} + +sub test { + my ($name, $required, $suggested) = @_; + urpmi("--no-suggests --auto $name"); + check_installed_and_remove($name, @$required); + urpmi("--auto $name"); + check_installed_names($name, @$required, @$suggested); + urpme("$name @$required"); + check_installed_and_remove(@$suggested); +} + +sub test_2 { + my ($name1, $required1, $name2, $required2, $suggested2) = @_; + + urpmi("--no-suggests --auto $name1"); + check_installed_names($name1, @$required1); + urpmi("--no-suggests --auto $name2"); + check_installed_and_remove($name1, @$required1, $name2, @$required2); + + urpmi("--no-suggests --auto $name1"); + check_installed_names($name1, @$required1); + urpmi("--auto $name2"); + check_installed_and_remove($name1, @$required1, $name2, @$required2, @$suggested2); +} + +sub test_upgrade { + urpmi(" --auto a-1"); + check_installed_names('a', 'suggested_b'); + urpmi(" --auto a-2"); + check_installed_names('a', 'suggested_b', 'suggested_c'); + urpmi(" --auto a-3"); + check_installed_and_remove('a', 'suggested_b', 'suggested_c'); + + urpmi("--no-suggests --auto a-1"); + check_installed_names('a'); + urpmi(" --auto a-2"); + check_installed_names('a', 'suggested_c'); + urpmi(" --auto a-3"); + check_installed_and_remove('a', 'suggested_c'); +} -- cgit v1.2.1