qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] Fedora images: use URLs from stable "archives.f


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [PATCH] Fedora images: use URLs from stable "archives.fedoraproject.org"
Date: Wed, 4 Sep 2019 15:05:41 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0

On 9/4/19 2:36 PM, Wainer dos Santos Moschetta wrote:
> Hi Cleber,
> 
> On 09/03/2019 09:52 PM, Cleber Rosa wrote:
>> The LinuxInitrd.test_with_2gib_file_should_work_with_linux_v4_16 test,
>> from tests/acceptance/linux_initrd.py, is currently failing to fetch
>> the "vmlinuz" file.  The reason for the failure is that the Fedora
>> project retires older versions from the "dl.fedoraproject.org" URL,
>> and keeps them in "archives.fedoraproject.org".  As an added note,
>> that test uses a Fedora 28 image, because of the specific Linux kernel
>> version requirements of the test.
>>
>> For the sake of stability, let's use URLs from the archived and
>> supposedely ever stable URLs.  The good news is that the currently
>> supported versions are also hosted on the later.  This change limits
>> itself to change the URLs, while keeping the fetched files the same
>> (as can be evidenced by the unchanged hashes).
>>
>> Documentation and the "vm tests" fedora definition were also updated.
>>
>> Signed-off-by: Cleber Rosa <address@hidden>
>> ---
>>   qemu-doc.texi                          |  6 +++---
>>   tests/acceptance/boot_linux_console.py | 25 +++++++++++++++----------
>>   tests/acceptance/linux_initrd.py       |  5 +++--
>>   tests/vm/fedora                        |  2 +-
>>   4 files changed, 22 insertions(+), 16 deletions(-)
>>
>> diff --git a/qemu-doc.texi b/qemu-doc.texi
>> index 577d1e8376..37795f86fb 100644
>> --- a/qemu-doc.texi
>> +++ b/qemu-doc.texi
>> @@ -440,15 +440,15 @@ of <protocol>.
>>     Example: boot from a remote Fedora 20 live ISO image
>>   @example
>> -qemu-system-x86_64 --drive
>> media=cdrom,file=http://dl.fedoraproject.org/pub/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso,readonly
>>
>> +qemu-system-x86_64 --drive
>> media=cdrom,file=https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso,readonly
>>
>>   -qemu-system-x86_64 --drive
>> media=cdrom,file.driver=http,file.url=http://dl.fedoraproject.org/pub/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso,readonly
>>
>> +qemu-system-x86_64 --drive
>> media=cdrom,file.driver=http,file.url=http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso,readonly
>>
>>   @end example
>>     Example: boot from a remote Fedora 20 cloud image using a local
>> overlay for
>>   writes, copy-on-read, and a readahead of 64k
>>   @example
>> -qemu-img create -f qcow2 -o
>> backing_file='json:@{"file.driver":"http",,
>> "file.url":"https://dl.fedoraproject.org/pub/fedora/linux/releases/20/Images/x86_64/Fedora-x86_64-20-20131211.1-sda.qcow2";,,
>> "file.readahead":"64k"@}' /tmp/Fedora-x86_64-20-20131211.1-sda.qcow2
>> +qemu-img create -f qcow2 -o
>> backing_file='json:@{"file.driver":"http",,
>> "file.url":"http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/20/Images/x86_64/Fedora-x86_64-20-20131211.1-sda.qcow2";,,
>> "file.readahead":"64k"@}' /tmp/Fedora-x86_64-20-20131211.1-sda.qcow2
>>     qemu-system-x86_64 -drive
>> file=/tmp/Fedora-x86_64-20-20131211.1-sda.qcow2,copy-on-read=on
>>   @end example
>> diff --git a/tests/acceptance/boot_linux_console.py
>> b/tests/acceptance/boot_linux_console.py
>> index 2504ef0150..8a9a314ab4 100644
>> --- a/tests/acceptance/boot_linux_console.py
>> +++ b/tests/acceptance/boot_linux_console.py
>> @@ -76,8 +76,9 @@ class BootLinuxConsole(Test):
>>           :avocado: tags=arch:x86_64
>>           :avocado: tags=machine:pc
>>           """
>> -        kernel_url =
>> ('https://download.fedoraproject.org/pub/fedora/linux/'
>> -                     
>> 'releases/29/Everything/x86_64/os/images/pxeboot/vmlinuz')
>> +        kernel_url =
>> ('https://archives.fedoraproject.org/pub/archive/fedora'
>> +                     
>> '/linux/releases/29/Everything/x86_64/os/images/pxeboot'
>> +                      '/vmlinuz')
>>           kernel_hash = '23bebd2680757891cf7adedb033532163a792495'
>>           kernel_path = self.fetch_asset(kernel_url,
>> asset_hash=kernel_hash)
>>   @@ -250,8 +251,9 @@ class BootLinuxConsole(Test):
>>           :avocado: tags=arch:aarch64
>>           :avocado: tags=machine:virt
>>           """
>> -        kernel_url =
>> ('https://download.fedoraproject.org/pub/fedora/linux/'
>> -                     
>> 'releases/29/Everything/aarch64/os/images/pxeboot/vmlinuz')
>> +        kernel_url =
>> ('https://archives.fedoraproject.org/pub/archive/fedora'
>> +                     
>> '/linux/releases/29/Everything/aarch64/os/images/pxeboot'
>> +                      '/vmlinuz')
>>           kernel_hash = '8c73e469fc6ea06a58dc83a628fc695b693b8493'
>>           kernel_path = self.fetch_asset(kernel_url,
>> asset_hash=kernel_hash)
>>   @@ -271,8 +273,9 @@ class BootLinuxConsole(Test):
>>           :avocado: tags=arch:arm
>>           :avocado: tags=machine:virt
>>           """
>> -        kernel_url =
>> ('https://download.fedoraproject.org/pub/fedora/linux/'
>> -                     
>> 'releases/29/Everything/armhfp/os/images/pxeboot/vmlinuz')
>> +        kernel_url =
>> ('https://archives.fedoraproject.org/pub/archive/fedora'
>> +                     
>> '/linux/releases/29/Everything/armhfp/os/images/pxeboot'
>> +                      '/vmlinuz')
>>           kernel_hash = 'e9826d741b4fb04cadba8d4824d1ed3b7fb8b4d4'
>>           kernel_path = self.fetch_asset(kernel_url,
>> asset_hash=kernel_hash)
>>   @@ -318,8 +321,9 @@ class BootLinuxConsole(Test):
>>           :avocado: tags=arch:s390x
>>           :avocado: tags=machine:s390_ccw_virtio
>>           """
>> -        kernel_url =
>> ('https://download.fedoraproject.org/pub/fedora-secondary/'
>> -                     
>> 'releases/29/Everything/s390x/os/images/kernel.img')
>> +        kernel_url = ('https://archives.fedoraproject.org/pub/archive'
>> +                     
>> '/fedora-secondary/releases/29/Everything/s390x/os/images'
>> +                      '/kernel.img')
>>           kernel_hash = 'e8e8439103ef8053418ef062644ffd46a7919313'
>>           kernel_path = self.fetch_asset(kernel_url,
>> asset_hash=kernel_hash)
>>   @@ -360,8 +364,9 @@ class BootLinuxConsole(Test):
>>           :avocado: tags=arch:ppc64
>>           :avocado: tags=machine:pseries
>>           """
>> -        kernel_url =
>> ('https://download.fedoraproject.org/pub/fedora-secondary/'
>> -                     
>> 'releases/29/Everything/ppc64le/os/ppc/ppc64/vmlinuz')
>> +        kernel_url = ('https://archives.fedoraproject.org/pub/archive'
>> +                     
>> '/fedora-secondary/releases/29/Everything/ppc64le/os'
>> +                      '/ppc/ppc64/vmlinuz')
>>           kernel_hash = '3fe04abfc852b66653b8c3c897a59a689270bc77'
>>           kernel_path = self.fetch_asset(kernel_url,
>> asset_hash=kernel_hash)
>>   diff --git a/tests/acceptance/linux_initrd.py
>> b/tests/acceptance/linux_initrd.py
>> index 23be5a63aa..c61d9826a4 100644
>> --- a/tests/acceptance/linux_initrd.py
>> +++ b/tests/acceptance/linux_initrd.py
>> @@ -54,8 +54,9 @@ class LinuxInitrd(Test):
>>           QEMU has supported up to 4 GiB initrd for recent kernel
>>           Expect guest can reach 'Unpacking initramfs...'
>>           """
>> -        kernel_url = ('https://mirrors.kernel.org/fedora/releases/28/'
>> -                      'Everything/x86_64/os/images/pxeboot/vmlinuz')
>> +        kernel_url =
>> ('https://archives.fedoraproject.org/pub/archive/fedora'
>> +                     
>> '/linux/releases/28/Everything/x86_64/os/images/pxeboot/'
>> +                      'vmlinuz')
>>           kernel_hash = '238e083e114c48200f80d889f7e32eeb2793e02a'
>>           kernel_path = self.fetch_asset(kernel_url,
>> asset_hash=kernel_hash)
>>           max_size = 2 * (1024 ** 3) + 1
>> diff --git a/tests/vm/fedora b/tests/vm/fedora
>> index e8fa5bf0d2..7fec1479fb 100755
>> --- a/tests/vm/fedora
>> +++ b/tests/vm/fedora
>> @@ -23,7 +23,7 @@ class FedoraVM(basevm.BaseVM):
>>       name = "fedora"
>>       arch = "x86_64"
>>   -    base = "http://dl.fedoraproject.org/pub/fedora/linux/releases/30/";
>> +    base =
>> "https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/30/";
>>
>>       link = base +
>> "Server/x86_64/iso/Fedora-Server-netinst-x86_64-30-1.2.iso"
>>       repo = base + "Server/x86_64/os/"
>>       full = base + "Everything/x86_64/os/"
> 
> Currently it has just a few test cases that boot a Linux kernel. At this
> point maintain the urls to fetch the files across a few source file is
> manageable but it can get complex as it increases in number of tests.
> While ago I started to work on the introduction of a "kernel provider"
> mechanism to replace this "fetch a kernel" boilerplate. Unfortunately I
> didn't time to complete its implementation, now If you think it is
> valuable then I can manage to resume the work. Find the draft
> implementation here:
> https://github.com/wainersm/qemu/tree/acceptance_boot_linux

I remember and liked it, maybe you should start with a post asking the
community if the effort is worthwhile and would be useful, and what
combinations (distrib{name/version} kernel{version} arch
profile{debug,lpae,...} ...) are expected.

> 
> An alternate approach would be to extend Avocado by mimic the
> avocado.utils.vmimage module [1], but rather have kernel providers.
> 
> [1]
> https://avocado-framework.readthedocs.io/en/71.0/api/utils/avocado.utils.html#module-avocado.utils.vmimage
> 
> 
> Anyway, the changes proposed on this patch looks good to me.
> 
> Reviewed-by: Wainer dos Santos Moschetta <address@hidden>

Ditto:

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]