test-bug-758153-versioned-provides-support 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. #!/bin/sh
  2. set -e
  3. # dpkg implements versioned provides in commit 5bb02fe80e9f40dcad9703a72f67cf615ff217b5
  4. # but previous versions seem to allow parsing, working and ignoring it.
  5. TESTDIR=$(readlink -f $(dirname $0))
  6. . $TESTDIR/framework
  7. setupenvironment
  8. configarchitecture 'amd64' 'i386'
  9. insertinstalledpackage 'webapp' 'all' '1' 'Depends: httpd'
  10. insertinstalledpackage 'webserver' 'all' '1' 'Provides: httpd'
  11. insertpackage 'unstable' 'webapp' 'all' '2' 'Depends: httpd (>= 2)'
  12. insertpackage 'unstable' 'webserver' 'amd64' '2' 'Provides: httpd (= 2)'
  13. insertpackage 'unstable' 'foreign-webserver' 'i386' '2' 'Multi-Arch: foreign
  14. Provides: httpd (= 2)'
  15. insertpackage 'experimental' 'webapp' 'all' '3' 'Depends: httpd (>= 1.5)'
  16. insertpackage 'experimental' 'webserver' 'amd64' '3' 'Provides: httpd (= 3)'
  17. insertpackage 'experimental' 'foreign-webserver' 'i386' '4' 'Multi-Arch: foreign
  18. Provides: httpd (= 4)'
  19. insertpackage 'experimental' 'cool-webapp' 'all' '4' 'Depends: httpd (>= 4)'
  20. setupaptarchive
  21. testequal 'Reading package lists...
  22. Building dependency tree...
  23. Calculating upgrade...
  24. The following packages will be upgraded:
  25. webapp webserver
  26. 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
  27. Inst webserver [1] (2 unstable [amd64])
  28. Inst webapp [1] (2 unstable [all])
  29. Conf webserver (2 unstable [amd64])
  30. Conf webapp (2 unstable [all])' aptget dist-upgrade -s
  31. testequal 'Reading package lists...
  32. Building dependency tree...
  33. The following packages will be upgraded:
  34. webapp webserver
  35. 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
  36. Inst webserver [1] (2 unstable [amd64])
  37. Inst webapp [1] (2 unstable [all])
  38. Conf webserver (2 unstable [amd64])
  39. Conf webapp (2 unstable [all])' aptget install webapp webserver -s
  40. testequal 'Reading package lists...
  41. Building dependency tree...
  42. The following packages will be upgraded:
  43. webapp webserver
  44. 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
  45. Inst webserver [1] (2 unstable [amd64])
  46. Inst webapp [1] (3 experimental [all])
  47. Conf webserver (2 unstable [amd64])
  48. Conf webapp (3 experimental [all])' aptget install webapp=3 webserver -s
  49. testequal 'Reading package lists...
  50. Building dependency tree...
  51. The following packages will be upgraded:
  52. webapp webserver
  53. 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
  54. Inst webserver [1] (3 experimental [amd64])
  55. Inst webapp [1] (2 unstable [all])
  56. Conf webserver (3 experimental [amd64])
  57. Conf webapp (2 unstable [all])' aptget install webapp webserver=3 -s
  58. testequal 'Reading package lists...
  59. Building dependency tree...
  60. The following NEW packages will be installed:
  61. foreign-webserver:i386
  62. The following packages will be upgraded:
  63. webapp
  64. 1 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
  65. Inst foreign-webserver:i386 (2 unstable [i386])
  66. Inst webapp [1] (2 unstable [all])
  67. Conf foreign-webserver:i386 (2 unstable [i386])
  68. Conf webapp (2 unstable [all])' aptget install webapp foreign-webserver:i386 -s
  69. testequal 'Reading package lists...
  70. Building dependency tree...
  71. The following NEW packages will be installed:
  72. foreign-webserver:i386
  73. The following packages will be upgraded:
  74. webapp
  75. 1 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
  76. Inst foreign-webserver:i386 (2 unstable [i386])
  77. Inst webapp [1] (3 experimental [all])
  78. Conf foreign-webserver:i386 (2 unstable [i386])
  79. Conf webapp (3 experimental [all])' aptget install webapp=3 foreign-webserver:i386 -s
  80. testequal 'Reading package lists...
  81. Building dependency tree...
  82. The following NEW packages will be installed:
  83. foreign-webserver:i386
  84. The following packages will be upgraded:
  85. webapp
  86. 1 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
  87. Inst foreign-webserver:i386 (4 experimental [i386])
  88. Inst webapp [1] (2 unstable [all])
  89. Conf foreign-webserver:i386 (4 experimental [i386])
  90. Conf webapp (2 unstable [all])' aptget install webapp foreign-webserver:i386=4 -s
  91. testequal 'Reading package lists...
  92. Building dependency tree...
  93. Some packages could not be installed. This may mean that you have
  94. requested an impossible situation or if you are using the unstable
  95. distribution that some required packages have not yet been created
  96. or been moved out of Incoming.
  97. The following information may help to resolve the situation:
  98. The following packages have unmet dependencies:
  99. cool-webapp : Depends: httpd (>= 4)
  100. E: Unable to correct problems, you have held broken packages.' aptget install cool-webapp -s
  101. testequal 'Reading package lists...
  102. Building dependency tree...
  103. Some packages could not be installed. This may mean that you have
  104. requested an impossible situation or if you are using the unstable
  105. distribution that some required packages have not yet been created
  106. or been moved out of Incoming.
  107. The following information may help to resolve the situation:
  108. The following packages have unmet dependencies:
  109. cool-webapp : Depends: httpd (>= 4)
  110. E: Unable to correct problems, you have held broken packages.' aptget install cool-webapp foreign-webserver:i386 -s
  111. testequal 'Reading package lists...
  112. Building dependency tree...
  113. The following NEW packages will be installed:
  114. cool-webapp foreign-webserver:i386
  115. 0 upgraded, 2 newly installed, 0 to remove and 2 not upgraded.
  116. Inst foreign-webserver:i386 (4 experimental [i386])
  117. Inst cool-webapp (4 experimental [all])
  118. Conf foreign-webserver:i386 (4 experimental [i386])
  119. Conf cool-webapp (4 experimental [all])' aptget install cool-webapp foreign-webserver:i386=4 -s