SYSLINUX 6 x86_64 - syslinux-nonlinux & syslinux64.exe

Richard W.M. Jones rjones at redhat.com
Mon May 12 08:30:58 UTC 2014


On Mon, May 12, 2014 at 10:15:50AM +0200, poma wrote:
> On 10.05.2014 18:22, poma wrote:
> > On 09.05.2014 15:51, Peter Jones wrote:
> >> On Fri, May 09, 2014 at 07:18:37AM +0200, poma wrote:
> >>> On 08.05.2014 16:05, Peter Jones wrote:
> >>>> On Thu, May 08, 2014 at 08:21:44AM +0200, poma wrote:
> >>>>>
> >>>>> $ rpmbuild -ba ./SPECS/syslinux.spec
> >>>>> ...
> >>>>>
> >>>>> $ find -name syslinux*.rpm
> >>>>> ./SRPMS/syslinux-6.02-4.fc21.src.rpm
> >>>>> ./RPMS/x86_64/syslinux-perl-6.02-4.fc21.x86_64.rpm
> >>>>> ./RPMS/x86_64/syslinux-6.02-4.fc21.x86_64.rpm
> >>>>> ./RPMS/x86_64/syslinux-devel-6.02-4.fc21.x86_64.rpm
> >>>>> ./RPMS/x86_64/syslinux-extlinux-6.02-4.fc21.x86_64.rpm
> >>>>>
> >>>>>
> >>>>> # rpm -ivh $(ls ./RPMS/x86_64/syslinux*.rpm)
> >>>>> error: Failed dependencies:
> >>>>> 	syslinux-nonlinux = 6.02-4.fc21 is needed by syslinux-6.02-4.fc21.x86_64
> >>>>> 	syslinux-extlinux-nonlinux = 6.02-4.fc21 is needed by syslinux-extlinux-6.02-4.fc21.x86_64
> >>>>>
> >>>>>
> >>>>> Peter, why these three noarches are not built on x86_64?
> >>>>> - syslinux-extlinux-nonlinux-6.02-4.fc21.noarch.rpm
> >>>>> - syslinux-nonlinux-6.02-4.fc21.noarch.rpm
> >>>>> - syslinux-tftpboot-6.02-4.fc21.noarch.rpm
> >>>>
> >>>> Because that'll result in a different 32-bit build on i686 vs x86_64.
> >>>> Get them from the i686 build.
> >>>>
> >>>
> >>> OK, can you explain this[5]?
> >>
> >> I can't - can you reproduce this with mock build instead of just raw
> >> rpmbuild with the target set?  When I use mock or koji to build them, I
> >> get syslinux64.exe in one and syslinux.exe in the -nonlinux one.
> >>
> >> That's still a (minor) packaging bug, but it shouldn't be a
> >> conflict.
> >>
> > 
> > ~~~~~~~~~~~~~~~~~~~~~~~
> >  x86_64 - mock rebuild 
> > ~~~~~~~~~~~~~~~~~~~~~~~
> > $ mock -r fedora-rawhide-$(uname -i) syslinux-6.02-4.fc21.src.rpm
> > $ mock -r fedora-rawhide-i386 syslinux-6.02-4.fc21.src.rpm
> > 
> > ~~~~~~~~~~
> >  syslinux 
> > ~~~~~~~~~~
> > # rpm -qlp builddir/build/RPMS/syslinux-6.02-4.fc21.x86_64.rpm | grep exe
> > /usr/share/syslinux/syslinux64.exe
> > 
> > $ repoquery -l syslinux-6.02-4.fc21.x86_64 | grep exe
> > /usr/share/syslinux/syslinux64.exe
> > 
> > # rpm -qlp builddir/build/RPMS/syslinux-6.02-4.fc21.i686.rpm | grep exe
> > /usr/share/syslinux/syslinux.exe
> > 
> > $ repoquery --archlist=i686 -l syslinux-6.02-4.fc21.i686 | grep exe
> > /usr/share/syslinux/syslinux.exe
> > 
> > $ rpm -qf /usr/share/syslinux/syslinux64.exe 
> > syslinux-6.02-4.fc21.x86_64
> > 
> > ~~~~~~~~~~~~~~~~~~~
> >  syslinux-nonlinux 
> > ~~~~~~~~~~~~~~~~~~~
> > # rpm -qlp builddir/build/RPMS/syslinux-nonlinux-6.02-4.fc21.noarch.rpm | grep exe
> > /usr/share/syslinux/syslinux.exe
> > 
> > $ repoquery -l syslinux-nonlinux-6.02-4.fc21.noarch | grep exe
> > /usr/share/syslinux/syslinux.exe
> > 
> > $ rpm -qf /usr/share/syslinux/syslinux.exe
> > syslinux-nonlinux-6.02-4.fc21.noarch
> > 
> > ~~~~~~~~~~~~~~~~~~~
> >  x86_64 - rpmbuild 
> > ~~~~~~~~~~~~~~~~~~~
> > $ rpmbuild -ba rpmbuild/SPECS/syslinux.spec
> > 
> > $ rpm -qlp rpmbuild/RPMS/x86_64/syslinux-6.02-4.fc21.x86_64.rpm | grep exe
> > /usr/share/syslinux/syslinux64.exe
> > 
> > $ rpm -qlp rpmbuild/RPMS/noarch/syslinux-nonlinux-6.02-4.fc21.noarch.rpm | grep exe
> > /usr/share/syslinux/syslinux.exe
> > /usr/share/syslinux/syslinux64.exe
> > 
> > ~~~~~~~~~~~~~~~~~
> >  ix86 - rpmbuild 
> > ~~~~~~~~~~~~~~~~~
> > $ rpmbuild -ba rpmbuild/SPECS/syslinux.spec
> > 
> > $ rpm -qlp rpmbuild/RPMS/i686/syslinux-6.02-4.fc21.i686.rpm | grep exe
> > /usr/share/syslinux/syslinux.exe
> > 
> > $ rpm -qlp rpmbuild/RPMS/noarch/syslinux-nonlinux-6.02-4.fc21.noarch.rpm | grep exe
> > /usr/share/syslinux/syslinux.exe
> > /usr/share/syslinux/syslinux64.exe
> > 
> > $ rpm -qf /usr/share/syslinux/syslinux.exe
> > syslinux-nonlinux-6.02-4.fc21.noarch
> > syslinux-6.02-4.fc21.i686
> > 
> > How these two packages manage to install without problem, since both contain a file of the same name?

RPM allows you to install two files with identical content coming from
two different packages.  Either that or multilib, but I don't think
it's multilib in this case.

> > Whence the difference in the file handling between mock rebuild and vulgairs rpmbuild, in the first place?
> > 
> 
> Guys can you comment on this difference?
> 
> The spec file in question is:
> http://pkgs.fedoraproject.org/cgit/syslinux.git/plain/syslinux.spec
> 
> Richard, you mentioned in this thread[1]:
> "Mock is really just a python wrapper that allows you to build packages for
> different versions of Fedora in a clean chroot with just the build
> requirements specified in the spec file installed (and some standard ones)."
> 
> What "and some standard ones" stands for?
> 
> Rich, you mentioned in the same thread[2]:
> "You don't really need to use mock either.  Just use 'rpmbuild -ba'
> directly or 'fedpkg local' which is a wrapper."
> 
> Why this is not the case in this instance?

I'm not exactly sure what the question is, but 'mock' and 'fedpkg
local' can have fairly different build environments.

'fedpkg local' (or rpmbuild) builds with whatever you have installed
on your host, whereas 'mock' builds in a cleanly installed chroot with
just the base packages + BuildRequires.

Extra installed packages can affect builds, eg if using ./configure
scripts, but in many other ways too.

> Clark, as maintainer of the Mock, and Lubomir, as maintainer of the shortrpm i.e. rpmbuild, 
> you are also welcome to comment.
> Adam and Kevin, too. :)
[...]
> "Differences between Fakeroot and Mock & Suggested method"
> [1] https://lists.fedoraproject.org/pipermail/devel/2013-October/190033.html
> [2] https://lists.fedoraproject.org/pipermail/devel/2013-October/190051.html

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v


More information about the devel mailing list