On 22/03/2021 15:15, Jan Beulich wrote: > On 22.03.2021 15:59, Andrew Cooper wrote: >> On 22/03/2021 14:52, Jan Beulich wrote: >>> On 22.03.2021 14:33, Jason Andryuk wrote: >>>> make install-xen fails when EFI_VENDOR is set (=fedora) with: >>>> install: cannot create regular file >>>> '/home/user/xen/dist/install/boot/efi/efi/fedora/xen-4.15.0-rc.efi': No >>>> such file or directory >>>> >>>> Create the EFI_VENDOR directory so xen.efi can be installed within. >>>> >>>> This removes the need for Fedora and Qubes xen.spec files to manually >>>> create the directory in advance. >>> While I'm not strictly against, I'd like to point out that it was >>> deliberate to not create this directory here. I also didn't expect >>> anyone's xen.spec to do so. Instead I'd expect the distro to create >>> it during OS installation. If this was a bad assumption, I'd prefer >>> if the commit message here could point out why such an expectation >>> won't hold in general. >> This reasoning is broken for anything other `make install DESTDIR=/` on >> a live system. >> >> It is incompatible with how RPM, deb, etc packages work. > I'm afraid I don't understand, for both of your statements. If distro > installation put in place the designated directory, there wouldn't be > any live system lacking it, and there wouldn't be any concern in the > packaging of any software. > > To take a perhaps too extreme example - packages typically expect e.g. > /usr to exist as well, don't they?
No. A buildroot starts out fully empty, by design. The packaging environment (usually a chroot) invokes `make install DESTDIR=/path/to/staging/root` so you don't interfere with any of the tools inside the environment, and the resulting tar/cpio has the buildroot stripped out of paths. The failure being discussed here is the build within the packaging environment, not the metadata which forms the final package. Installing a deb/rpm/etc will make directories as applicable. ~Andrew