** Description changed:

+ [Impact]      
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                
+ mk-sbuild fails to create a foreign-architecture schroot on Ubuntu Resolute   
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ (26.04 LTS) when the target arch requires QEMU emulation (e.g. riscv64,       
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ arm64, armhf on an amd64 host). The error is:                                 
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+   Package qemu-user-static is a virtual package provided by:                  
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+     qemu-user-binfmt-hwe 1:10.2.1+ds-1ubuntu2                                 
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+     qemu-user-binfmt 1:10.2.1+ds-1ubuntu2                                     
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+   You should explicitly select one to install.                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+   E: Package 'qemu-user-static' has no installation candidate                 
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ This is because in Resolute, qemu-user-static is no longer a real package —   
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ it was replaced by qemu-user. mk-sbuild unconditionally tried to install      
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ qemu-user-static, which is now only a virtual package, causing the schroot    
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ creation to abort.                                                            
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                          
+ The fix (already in ubuntu-dev-tools 0.211 in the devel suite, stonking)      
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ uses apt-cache show to detect whether qemu-user-static is a real package;     
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ if not, it installs qemu-user instead. This keeps backwards compatibility     
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ with older Ubuntu releases where qemu-user-static is still a real package.    
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ [Test Case]
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                   
+ Prerequisites: an Ubuntu Resolute (26.04 LTS) amd64 machine with              
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ ubuntu-dev-tools installed.                                                   
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ 1. Confirm the bug is present before the fix:                                 
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+      mk-sbuild resolute --arch=riscv64 --name=test-riscv64                    
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+    Expected (before fix): fails with                                          
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+    "E: Package 'qemu-user-static' has no installation candidate"              
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ 2. Install the SRU candidate package from the -proposed pocket (or PPA):      
   
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ 3. Run mk-sbuild again with a foreign architecture:                           
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+      mk-sbuild resolute --arch=riscv64 --name=test-riscv64                    
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+    Expected (after fix): schroot is created successfully; qemu-user is        
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+    installed in place of qemu-user-static.                                    
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+                                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ [Regression Potential]                                                        
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ 
+ Low. The change is confined to a single conditional block in mk-sbuild that   
                                                                                
                                                                                
                                                                                
                                                                                
                                                              
+ selects which QEMU package to install for foreign-architecture chroots.
+ 
+ 
+ Original report
+ ---
+ 
+ 
  Hello,
  
  It looks like mk-sbuild broken in resolute (now). But maybe addition of
  qemu-user-binfmt-hwe broke it?
  
  See the error I see:
  ````
  mk-sbuild resolute --arch="riscv64" --name="resolute"
  Reading package lists... Done
  Building dependency tree... Done
  Reading state information... Done
  Package qemu-user-static is a virtual package provided by:
    qemu-user-binfmt-hwe 1:10.2.1+ds-1ubuntu2
    qemu-user-binfmt 1:10.2.1+ds-1ubuntu2
  You should explicitly select one to install.
  
  E: Package 'qemu-user-static' has no installation candidate
  ````

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

Title:
  mk-sbuild fails to create schroot in resolute with qemu-user-static

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/qemu-hwe/+bug/2146418/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to