** Description changed:

+ [Impact]
+ Users can't use * wildcards anymore in focal, except by accident in apt list.
+ 
+ For apt list, we now start restricting wildcard syntax to the same
+ syntax install now accepts, and at the same time we remove the
+ restrictions on which patterns are accepted (which only accepted
+ patterns starting in ~ or ?), so !~napt now works, and does not
+ accidentally match as a wildcard.
+ 
+ 
+ [Test case]
+ 
+ Test that * wildcards work for both install and list, and test that a ?
+ wildcard does not.
+ 
+ We included autopkgtests for those:
+ 
+ #### BEGIN TESTS #####
+ 
+ # * wildcards should still work
+ testsuccessequal "Listing...
+ automatic1/now 1.0 i386 [installed,local]
+ automatic2/now 1.0 i386 [installed,local]" apt list 'automatic*'
+ 
+ testfailureequal "Reading package lists...
+ Building dependency tree...
+ Reading state information...
+ Note, selecting 'automatic1' for glob 'automatic*'
+ Note, selecting 'automatic2' for glob 'automatic*'
+ automatic1 is already the newest version (1.0).
+ automatic1 set to manually installed.
+ automatic2 is already the newest version (1.0).
+ automatic2 set to manually installed.
+ You might want to run 'apt --fix-broken install' to correct these.
+ The following packages have unmet dependencies:
+  broken : Depends: does-not-exist but it is not installable
+ E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or 
specify a solution)." apt install -s 'automatic*'
+ 
+ # other wildcards should fail
+ 
+ testfailureequal "Listing...
+ E: input:0-10: error: Expected pattern
+    automatic?
+    ^^^^^^^^^^" apt list 'automatic?'
+ 
+ testfailureequal "Reading package lists...
+ Building dependency tree...
+ Reading state information...
+ E: Unable to locate package automatic?" apt install -s 'automatic?'
+ 
+ 
+ #### END TESTS #####
+ 
+ Also it might be worth checking that apt list !~napt works. This used to
+ produce an empty list, as it was accidentally matched as a wildcard and
+ produced no result - now it produces every package whose name does not
+ contain "apt".
+ 
+ 
+ [Regression potential]
+ The changes only affect interactive users, as apt(8) is not stable for 
in-script use, hence they can fix up their command-line if it stops working for 
them (though, really, more should work now).
+ 
+ No scripts will be broken :)
+ 
+ [Squashed in changes]
+ The SRU also fixes potential build failures by correctly prefxing nullptr_t 
with the std:: namespace, and includes updated Dutch documentation.
+ 
+ [Original bug report]
  Observed with Ubuntu 20.04 Beta.
  
  apt remove 'mypackage*' does not remove all installed packages starting
  with “mypackage”.  Instead:
  
  $ sudo apt remove 'mypackage*'
  Reading package lists... Done
- Building dependency tree       
+ Building dependency tree
  Reading state information... Done
  E: Unable to locate package mypackage*
  
  However:
  
  $ sudo apt list --installed 'mypackage*'
  Listing... Done
  mypackage-data-v1/focal,focal,now 0.3.2-5build1 all [installed,automatic]
  mypackage1/focal,now 0.3.2-5build1 amd64 [installed]

** Also affects: apt (Ubuntu Groovy)
   Importance: Undecided
       Status: Fix Committed

** Also affects: apt (Ubuntu Focal)
   Importance: Undecided
       Status: New

** Changed in: apt (Ubuntu Focal)
       Status: New => Triaged

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1872200

Title:
  apt does not accept globs and regexes in some cases

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1872200/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to