]> git.pld-linux.org Git - packages/grub2.git/blame - grub2.spec
up to 2.12
[packages/grub2.git] / grub2.spec
CommitLineData
f97cafb4 1# TODO
dc6928bc 2# - reap out which in probe scripts and drop R: which
f97cafb4 3# - subpackages? e.g. modules and utils
bcd6a47e 4# - check where is that locale path: /boot/grub/locale and fix it or change it
8fcee4aa
ER
5# - grubemu notes
6# --enable-grub-emu-usb conflicts with --enable-grub-emu-pci, emu-pci seems experimental
7# - to build and install the `grub-emu' debugging utility we need to re-run build with --target=emu
8# - put grub-emu to subpackage if it is fixed
f97cafb4 9#
90feddde 10# Conditional build:
a2b4434b 11%bcond_with grubemu # grub-emu debugging utility
75218533 12%bcond_without efiemu # efiemu runtimes (64-bit efiemu on 32-bit boot platform)
a2b4434b
JB
13%bcond_without unifont # unifont based fonts
14%bcond_without arc # MIPS ARC platform support
15%bcond_without coreboot # coreboot/linuxbios platform support (x86/arm specific)
16%bcond_without efi # EFI platform support
17%bcond_without ieee1275 # ieee1275 platform support (x86/ppc/sparc specific)
18%bcond_without loongson # MIPS loongson platform support (mipsel specific)
19%bcond_without multiboot # multiboot platform support (x86/arm specific)
20%bcond_without pc # PC BIOS platform support (x86 specific)
21%bcond_without qemu # qemu platform support (x86/mips specific)
22%bcond_without uboot # ARM uBoot platform support
23%bcond_without xen # Xen platform support (x86 specific)
24%bcond_without xen_pvh # Xen PVH platform support (x86 specific)
25
26%ifnarch mips mipsel mips64 mips64el
27%undefine with_arc
28%endif
29%ifnarch %{ix86} %{x8664} x32 %{arm}
30%undefine with_coreboot
feaacba3 31%endif
1a68d0fe 32%ifnarch %{ix86} %{x8664} x32 %{arm} aarch64 ia64
feaacba3
JB
33%undefine with_efi
34%endif
a2b4434b
JB
35%ifnarch %{ix86} %{x8664} x32 ppc ppc64 sparc64
36%undefine with_ieee1275
37%endif
38%ifnarch mipsel mips64el
39%undefine with_loongson
40%endif
41%ifnarch %{ix86} %{x8664} x32
42%undefine with_multiboot
43%undefine with_pc
44%undefine with_xen
45%undefine with_xen_pvh
46%endif
47%ifnarch %{ix86} mips mipsel mips64 mips64el
48%undefine with_qemu
49%endif
50%ifnarch %{arm}
51%undefine with_uboot
52%endif
53
75218533
JB
54# FIXME: x86_64-xen build is broken (as of 2.06)
55%ifarch %{x8664} x32
56%undefine with_xen
57%endif
58
a2b4434b
JB
59# these require unifont
60%if %{without unifont}
61%undefine with_coreboot
62%undefine with_loongson
63%undefine with_qemu
64%endif
feaacba3 65
50ffb0ba 66%ifnarch %{x8664} x32
2d8da575
AM
67# non-x86_64 arch doesn't support this
68%undefine with_efiemu
69%endif
70
1536aaf2 71# the 'most natural' platform should go last
1a68d0fe 72%ifarch %{ix86} %{x8664} x32
75218533 73%define platforms %{?with_coreboot:coreboot} %{?with_ieee1275:ieee1275} %{?with_multiboot:multiboot} %{?with_qemu:qemu} %{?with_xen:xen} %{?with_xen_pvh:xen_pvh} %{?with_efi:efi} %{?with_pc:pc}
feaacba3 74%endif
1a68d0fe 75%ifarch %{arm}
c2e6b745 76%define platforms %{?with_coreboot:coreboot} %{?with_efi:efi} %{?with_uboot:uboot}
1a68d0fe
JB
77%endif
78%ifarch aarch64 ia64 riscv32 riscv64
79%define platforms efi
feaacba3 80%endif
a2b4434b 81%ifarch mips mips64
feaacba3
JB
82%define platforms arc
83%endif
a2b4434b
JB
84%ifarch mipsel mips64el
85%define platforms %{?with_arc:arc} %{?with_loongson:loongson}
1a68d0fe
JB
86%endif
87%ifarch ppc ppc64 sparc64
88%define platforms ieee1275
feaacba3 89%endif
1536aaf2 90
a2b4434b
JB
91%ifarch %{ix86}
92%define coreboot_arch i386
93%define efi_arch i386
94%define ieee1275_arch i386
95%define qemu_arch i386
96%define qemu_plat qemu
97%define xen_arch i386
98%endif
99%ifarch %{x8664} x32
100%define coreboot_arch i386
101%define efi_arch x86_64
102%define ieee1275_arch i386
103%define qemu_arch i386
104%define qemu_plat qemu
105%define xen_arch x86_64
106%endif
107%ifarch %{arm}
108%define coreboot_arch arm
109%define efi_arch arm
110%endif
111%ifarch aarch64
112%define efi_arch arm64
113%endif
114%ifarch ia64
115%define efi_arch ia64
116%endif
117%ifarch mips mips64
118%define arc_arch mips
119%define qemu_arch mips
120%define qemu_plat qemu_mips
121%endif
122%ifarch mipsel mips64el
123%define arc_arch mipsel
124%define qemu_arch mipsel
125%define qemu_plat qemu_mips
126%endif
127%ifarch ppc ppc64
128%define ieee1275_arch powerpc
129%endif
130%ifarch riscv32
131%define efi_arch riscv32
132%endif
133%ifarch riscv64
134%define efi_arch riscv64
135%endif
136%ifarch sparc64
137%define ieee1275_arch sparc64
138%endif
139
afe8504a 140Summary: GRand Unified Bootloader
c8155f7f 141Summary(de.UTF-8): GRUB2 - ein Bootloader für x86 und ppc
f97cafb4 142Summary(hu.UTF-8): GRUB2 - rendszerbetöltő x86 és ppc gépekhez
c8155f7f
ER
143Summary(pl.UTF-8): GRUB2 - bootloader dla x86 i ppc
144Summary(pt_BR.UTF-8): Gerenciador de inicialização GRUB2
afe8504a 145Name: grub2
e58cb412
JP
146Version: 2.12
147Release: 0.1
2e4bec6f 148License: GPL v2
afe8504a 149Group: Base
a2b4434b 150Source0: https://ftp.gnu.org/gnu/grub/grub-%{version}.tar.xz
e58cb412 151# Source0-md5: 60c564b1bdc39d8e43b3aab4bc0fb140
22909ca1
ER
152Source1: update-grub
153Source2: update-grub.8
b46589aa 154Source3: grub.sysconfig
e2964b87 155Source4: grub-custom.cfg
b46589aa 156Patch1: pld-sysconfdir.patch
872700b0 157Patch2: grub-garbage.patch
c9273ffc
JK
158Patch3: grub-lvmdevice.patch
159Patch4: pld-mkconfigdir.patch
160Patch5: grub-mkconfig-diagnostics.patch
668ecb01
JK
161Patch6: posix.patch
162Patch7: %{name}-fonts_path.patch
668ecb01
JK
163Patch9: just-say-linux.patch
164Patch10: ignore-kernel-symlinks.patch
165Patch11: choose-preferred-initrd.patch
166Patch12: %{name}-cfg.patch
a4c52d96 167Patch14: blscfg.patch
feaacba3 168URL: http://www.gnu.org/software/grub/
e58cb412 169BuildRequires: autoconf >= 2.64
27550907 170BuildRequires: automake >= 1:1.11.1-1
a2b4434b
JB
171BuildRequires: bison >= 2.3
172BuildRequires: device-mapper-devel >= 1.02.34
feaacba3 173BuildRequires: flex >= 2.5.35
26996aed 174BuildRequires: fonts-TTF-DejaVu
a2b4434b
JB
175%if %{with unifont}
176BuildRequires: fonts-misc-unifont
177%endif
178BuildRequires: freetype-devel >= 2.1.5
12fd19f5 179BuildRequires: gawk
a2b4434b 180BuildRequires: gcc >= 6:5.1
75218533
JB
181%ifarch %{x8664} x32
182%if %{with efiemu} || %{with coreboot} || %{with ieee1275} || %{with multiboot} || %{with pc} || %{with xen_pvh}
183BuildRequires: gcc-multilib-32 >= 6:5.1
184%endif
185%endif
186%ifarch x32
187%if %{with efiemu} || %{with efi}
188BuildRequires: gcc-multilib-64 >= 6:5.1
189%endif
190%endif
41468086 191BuildRequires: gettext-tools >= 0.18.3
5bafb558 192BuildRequires: glibc-localedb-all
feaacba3 193BuildRequires: glibc-static
1349ebb8 194BuildRequires: help2man
e58cb412 195BuildRequires: libfuse3-devel
afe8504a 196BuildRequires: libtool
feaacba3 197BuildRequires: ncurses-devel
41468086 198BuildRequires: pkgconfig
e58cb412
JP
199BuildRequires: python3
200BuildRequires: python3-modules
feaacba3 201BuildRequires: rpm >= 4.4.9-56
e391ec8f 202BuildRequires: rpm-build >= 4.6
feaacba3
JB
203BuildRequires: rpmbuild(macros) >= 1.213
204BuildRequires: sed >= 4.0
205BuildRequires: tar >= 1:1.22
81a7e0ba 206BuildRequires: texinfo
feaacba3
JB
207BuildRequires: xz
208BuildRequires: xz-devel
e0eb885f 209BuildRequires: zfs-devel
feaacba3 210Requires: %{name}-platform = %{version}-%{release}
a5138d8d 211Requires: pld-release
dc6928bc 212Requires: which
a2b4434b 213%ifarch %{ix86} %{x8664} x32
feaacba3
JB
214Suggests: %{name}-platform-pc
215%endif
190cc685 216Suggests: cdrkit-mkisofs
97ee543c 217Suggests: os-prober
afe8504a 218Provides: bootloader
fc835b5e 219Conflicts: grub
a2b4434b 220ExclusiveArch: %{ix86} %{x8664} x32 %{arm} aarch64 ia64 mips mipsel mips64 mips64el ppc ppc64 riscv32 riscv64 sparc64
afe8504a
SP
221BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
222
223%define _sbindir /sbin
4a00f3b7 224%define _bindir %{_sbindir}
1536aaf2 225%define _libdir /lib
e6fbd304 226%define _datadir %{_libdir}
26e757db 227%define _libexecdir %{_libdir}/grub
1536aaf2 228%define _grubdir /boot/grub
da9b7cf9 229%define _localedir /usr/share/locale
9d44d75e 230
0e2cbb94
JK
231# part of grub code is not relocable (these are not Linux libs)
232# stack protector also breaks non-Linux binaries
8c5e5aa2
JR
233# any kind of forced optimizations makes grub2 unreliable (random
234# reboots and hangs on boot menu screen)
5bc5d891 235%define filterout_c -fPIC -O.
5967241e 236%undefine _ssp_cflags
5bc5d891 237%undefine _fortify_cflags
0e2cbb94 238
afe8504a
SP
239%description
240GRUB is a GPLed bootloader intended to unify bootloading across x86
241operating systems. In addition to loading the Linux and *BSD kernels,
242it implements the Multiboot standard, which allows for flexible
243loading of multiple boot images (needed for modular kernels such as
244the GNU Hurd).
245
211df1ed
ER
246GRUB 2 is derived from PUPA which was a research project to
247investigate the next generation of GRUB. GRUB 2 has been rewritten
248from scratch to clean up everything for modularity and portability.
249
250GRUB 2 targets at the following goals:
251- Scripting support, such as conditionals, loops, variables and
252 functions.
253- Graphical interface.
254- Dynamic loading of modules in order to extend itself at the run time
255 rather than at the build time.
256- Portability for various architectures.
257- Internationalization. This includes support for non-ASCII character
258 code, message catalogs like gettext, fonts, graphics console, and so
259 on.
260- Real memory management, to make GNU GRUB more extensible.
261- Modular, hierarchical, object-oriented framework for file systems,
262 files, devices, drives, terminals, commands, partition tables and OS
263 loaders.
264- Cross-platform installation which allows for installing GRUB from a
265 different architecture.
266- Rescue mode saves unbootable cases. Stage 1.5 was eliminated.
267- Fix design mistakes in GRUB Legacy, which could not be solved for
268 backward-compatibility, such as the way of numbering partitions.
269
6b0aefbf 270%description -l de.UTF-8
afe8504a
SP
271GRUB (GRand Unified Boot-loader) ist ein Bootloader, der oft auf
272Rechnern eingesetzt wird, auf denen das freie Betriebssystem Linux
6b0aefbf 273läuft. GRUB löst den betagten LILO (Linux-Loader) ab.
afe8504a
SP
274
275GRUB wurde innerhalb des GNU Hurd-Projektes als Boot-Loader entwickelt
6b0aefbf
JR
276und wird unter der GPL vertrieben. Aufgrund seiner höheren
277Flexibilität verdrängt GRUB in vielen Linux-Distributionen den
afe8504a
SP
278traditionellen Boot-Loader LILO.
279
f97cafb4
ZU
280%description -l hu.UTF-8
281GRUB egy GPL liszenszű rendszerbetöltő. Linux és *BSD kernelek
282betöltése mellett támogatja a Multiboot standard-ot, amely lehetővé
283teszi boot képek betöltését (moduláris kerneleknek kell, mint pl. a
284GNU Hurd).
285
286GRUB2 céljai a következők:
287- szkriptelés támogatása, úgymint feltételek, ciklusok, változók,
288 függvények.
289- grafikus felület
290- modulok dinamikus betöltése futási időben
291- hordozhatóság több architektúrára
292- többnyelvűség: nem-ASCII karakterek támogatása, üzenetkatalógusok,
293 mint gettext, betűtípusok, grafikus konzolon, és így tovább
294- valós memória kezelés, amellyel még bővíthetőbbé tehetjük
295- moduláris, hierarchikus, objektum-orientált keretrendszer
296 fájlrendszerekhez, fájlokhoz, eszközökhöz, meghajtókhoz,
297 terminálokhoz, parancsokhoz, partíciós táblákhoz és OS betöltőkhöz
298
6b0aefbf
JR
299%description -l es.UTF-8
300Éste es GRUB - Grand Unified Boot Loader - un administrador de
301inicialización capaz de entrar en la mayoría de los sistemas
afe8504a 302operacionales libres - Linux, FreeBSD, NetBSD, GNU Mach, etc. como
6b0aefbf 303también en la mayoría de los sistemas operacionales comerciales para
afe8504a
SP
304PC.
305
306El administrador GRUB puede ser una buena alternativa a LILO, para
6b0aefbf
JR
307usuarios conmás experiencia y que deseen obtener más recursos de su
308cargador de inicialización (boot loader).
afe8504a 309
6b0aefbf 310%description -l pl.UTF-8
feaacba3 311GRUB jest bootloaderem na licencji GNU GPL, mającym na celu unifikację
6b0aefbf 312procesu bootowania na systemach x86. Potrafi nie tylko ładować jądra
feaacba3 313Linuksa i *BSD: posiada również implementację standardu Multiboot,
6b0aefbf
JR
314który pozwala na elastyczne ładowanie wielu obrazów bootowalnych
315(czego wymagają modułowe jądra, takie jak GNU Hurd).
afe8504a 316
6b0aefbf
JR
317%description -l pt_BR.UTF-8
318Esse é o GRUB - Grand Unified Boot Loader - um gerenciador de boot
afe8504a
SP
319capaz de entrar na maioria dos sistemas operacionais livres - Linux,
320FreeBSD, NetBSD, GNU Mach, etc. assim como na maioria dos sistemas
321operacionais comerciais para PC.
322
6b0aefbf
JR
323O GRUB pode ser uma boa alternativa ao LILO, para usuários mais
324avançados e que querem mais recursos de seu boot loader.
afe8504a 325
565fe2e3
ER
326%package -n bash-completion-%{name}
327Summary: bash-completion for GRUB
feaacba3 328Summary(pl.UTF-8): Bashowe uzupełnianie nazw dla GRUB-a
565fe2e3 329Group: Applications/Shells
a2b4434b 330Requires: %{name} = %{version}-%{release}
565fe2e3 331Requires: bash-completion
d28207fb 332BuildArch: noarch
565fe2e3
ER
333
334%description -n bash-completion-%{name}
335This package provides bash-completion for GRUB.
336
337%description -n bash-completion-%{name} -l pl.UTF-8
feaacba3 338Pakiet ten dostarcza bashowe uzupełnianie nazw dla GRUB-a.
565fe2e3 339
a2b4434b
JB
340%package fonts
341Summary: Fonts for GRUB
342Summary(pl.UTF-8): Fonty dla GRUB-a
62081337 343Group: Base
a2b4434b
JB
344Requires: %{name} = %{version}-%{release}
345
346%description fonts
347Fonts for GRUB.
348
349%description fonts -l pl.UTF-8
350Fonty dla GRUB-a.
351
352%package platform-arc
353Summary: MIPS ARC platform support for GRUB
354Summary(pl.UTF-8): Obsługa platformy MIPS ARC dla GRUB-a
355Group: Base
356Requires: %{name} = %{version}-%{release}
6d8475a4 357Provides: %{name}-platform = %{version}-%{release}
1536aaf2 358
a2b4434b
JB
359%description platform-arc
360MIPS ARC platform support for GRUB.
1536aaf2 361
a2b4434b
JB
362%description platform-arc -l pl.UTF-8
363Obsługa platformy MIPS ARC dla GRUB-a.
364
365%package platform-coreboot
366Summary: Coreboot (LinuxBIOS) platform support for GRUB
367Summary(pl.UTF-8): Obsługa platformy Coreboot (LinuxBIOS) dla GRUB-a
368Group: Base
369Requires: %{name} = %{version}-%{release}
370Requires: %{name}-fonts = %{version}-%{release}
371Provides: %{name}-platform = %{version}-%{release}
372
373%description platform-coreboot
374Coreboot (LinuxBIOS) platform support for GRUB.
375
376%description platform-coreboot -l pl.UTF-8
377Obsługa platformy Coreboot (LinuxBIOS) dla GRUB-a.
feaacba3 378
6d8475a4 379%package platform-efi
1536aaf2 380Summary: (U)EFI platform support for GRUB
feaacba3 381Summary(pl.UTF-8): Obsługa platformy (U)EFI dla GRUB-a
1536aaf2 382Group: Base
a2b4434b 383Requires: %{name} = %{version}-%{release}
6e81e1fe 384Suggests: efibootmgr
6d8475a4 385Provides: %{name}-platform = %{version}-%{release}
1536aaf2 386
6d8475a4 387%description platform-efi
1536aaf2
JK
388(U)EFI platform support for GRUB.
389
feaacba3
JB
390%description platform-efi -l pl.UTF-8
391Obsługa platformy (U)EFI dla GRUB-a.
392
a2b4434b
JB
393%package platform-ieee1275
394Summary: IEEE 1275 (OpenFirmware) platform support for GRUB
395Summary(pl.UTF-8): Obsługa platformy IEEE 1275 (OpenFirmware) dla GRUB-a
396Group: Base
397Requires: %{name} = %{version}-%{release}
398Provides: %{name}-platform = %{version}-%{release}
399
400%description platform-ieee1275
401IEEE 1275 (OpenFirmware) platform support for GRUB.
402
403%description platform-ieee1275 -l pl.UTF-8
404Obsługa platformy IEEE 1275 (OpenFirmware) dla GRUB-a.
405
406%package platform-loongson
407Summary: MIPS Loongson platform support for GRUB
408Summary(pl.UTF-8): Obsługa platformy MIPS Loongson dla GRUB-a
409Group: Base
410Requires: %{name} = %{version}-%{release}
411Requires: %{name}-fonts = %{version}-%{release}
412Provides: %{name}-platform = %{version}-%{release}
413
414%description platform-loongson
415MIPS Loongson (yeelong, fuloong) platform support for GRUB.
416
417%description platform-loongson -l pl.UTF-8
418Obsługa platformy MIPS Loongson (yeelong, fuloong) dla GRUB-a.
419
420%package platform-multiboot
421Summary: Multiboot platform support for GRUB
422Summary(pl.UTF-8): Obsługa platformy Multiboot dla GRUB-a
423Group: Base
424Requires: %{name} = %{version}-%{release}
425Provides: %{name}-platform = %{version}-%{release}
426
427%description platform-multiboot
428Multiboot platform support for GRUB.
429
430%description platform-multiboot -l pl.UTF-8
431Obsługa platformy Multiboot dla GRUB-a.
432
433%package platform-pc
434Summary: PC BIOS platform support for GRUB
435Summary(pl.UTF-8): Obsługa platformy PC BIOS dla GRUB-a
436Group: Base
437Requires: %{name} = %{version}-%{release}
438Provides: %{name}-platform = %{version}-%{release}
439
440%description platform-pc
441PC BIOS platform support for GRUB.
442
443%description platform-pc -l pl.UTF-8
444Obsługa platformy PC BIOS dla GRUB-a.
445
446%package platform-qemu
447Summary: Qemu platform support for GRUB
448Summary(pl.UTF-8): Obsługa platformy Qemu dla GRUB-a
449Group: Base
450Requires: %{name} = %{version}-%{release}
451Requires: %{name}-fonts = %{version}-%{release}
452Provides: %{name}-platform = %{version}-%{release}
453
454%description platform-qemu
455Qemu platform support for GRUB.
456
457%description platform-qemu -l pl.UTF-8
458Obsługa platformy Qemu dla GRUB-a.
459
460%package platform-uboot
461Summary: ARM uBoot platform support for GRUB
462Summary(pl.UTF-8): Obsługa platformy ARM uBoot dla GRUB-a
463Group: Base
464Requires: %{name} = %{version}-%{release}
465Provides: %{name}-platform = %{version}-%{release}
466
467%description platform-uboot
468ARM uBoot platform support for GRUB.
469
470%description platform-uboot -l pl.UTF-8
471Obsługa platformy ARM uBoot dla GRUB-a.
472
473%package platform-xen
474Summary: Xen platform support for GRUB
475Summary(pl.UTF-8): Obsługa platformy Xen dla GRUB-a
476Group: Base
477Requires: %{name} = %{version}-%{release}
478Provides: %{name}-platform = %{version}-%{release}
479
480%description platform-xen
481Xen platform support for GRUB.
482
483%description platform-xen -l pl.UTF-8
484Obsługa platformy Xen dla GRUB-a.
485
486%package platform-xen_pvh
487Summary: Xen PVH platform support for GRUB
488Summary(pl.UTF-8): Obsługa platformy Xen PVH dla GRUB-a
489Group: Base
490Requires: %{name} = %{version}-%{release}
491Provides: %{name}-platform = %{version}-%{release}
492
493%description platform-xen_pvh
494Xen PVH platform support for GRUB.
495
496%description platform-xen_pvh -l pl.UTF-8
497Obsługa platformy Xen PVH dla GRUB-a.
498
7615a862
JK
499%package mkfont
500Summary: GRUB font files converter
feaacba3 501Summary(pl.UTF-8): Konwerter plików fontów GRUB-a
7615a862
JK
502Group: Base
503
504%description mkfont
505Converts common font file formats into PF2.
506
feaacba3
JB
507%description mkfont -l pl.UTF-8
508Program do konwersji popularnych formatów plików fontów do PF2.
509
8ac8605d
JK
510%package theme-starfield
511Summary: starfield theme for GRUB
feaacba3 512Summary(pl.UTF-8): Motyw starfield dla GRUB-a
a2b4434b 513Requires: %{name} = %{version}-%{release}
8ac8605d
JK
514Group: Base
515
516%description theme-starfield
517starfield theme for GRUB.
518
feaacba3
JB
519%description theme-starfield -l pl.UTF-8
520Motyw starfield dla GRUB-a.
521
afe8504a 522%prep
729e6097 523%setup -q -n grub-%{version}
b46589aa 524%patch1 -p1
872700b0 525%patch2 -p1
f951fcbe 526%patch3 -p1
aec70abd 527%patch4 -p1
f7ae30d0 528%patch5 -p1
668ecb01
JK
529%patch6 -p1
530%patch7 -p1
668ecb01 531%patch9 -p1
26996aed 532%patch10 -p1
668ecb01
JK
533%patch11 -p1
534%patch12 -p0
f1c7b511 535%patch14 -p1
5bafb558
JK
536
537# we don't have C.utf-8 and need an UTF-8 locale for build
538sed -i -e 's/LC_ALL=C.UTF-8/LC_ALL=en_US.utf-8/g' po/Makefile* po/Rules*
afe8504a 539
e58cb412
JP
540# missing in tarball
541cat > grub-core/extra_deps.lst <<EOF
542depends bli part_gpt
543EOF
544
afe8504a 545%build
928eb9c1 546# if gold is used then grub doesn't even boot
9bc7aab3
AM
547# https://savannah.gnu.org/bugs/?34539
548# http://sourceware.org/bugzilla/show_bug.cgi?id=14196
7a73b7a5 549install -d our-ld
70fd3248 550ln -f -s /usr/bin/ld.bfd our-ld/ld
7a73b7a5 551export PATH=$(pwd)/our-ld:$PATH
928eb9c1 552
a2b4434b 553## not only the typical autotools stuff
b876d99a
JK
554#./autogen.sh
555
50ffb0ba 556#{__gettextize}
b876d99a
JK
557%{__aclocal} -I m4
558%{__autoconf}
559%{__autoheader}
560%{__automake}
12fd19f5 561
1536aaf2 562for platform in %{platforms} ; do
fc490c3e
JK
563 install -d build-${platform}
564 cd build-${platform}
0e2cbb94 565
75218533
JB
566 platform_opts=""
567 case platform in
e58cb412
JP
568 coreboot|ieee1275|multiboot|pc|qemu|xen_pvh)
569 platform_opts="--enable-efiemu%{!?with_efiemu:=no}"
570 ;;
75218533 571 esac
0e2cbb94 572
55d67ca1 573 ln -f -s ../configure .
1536aaf2
JK
574 # mawk stalls at ./genmoddep.awk, so force gawk
575 AWK=gawk \
576 %configure \
e58cb412 577 PYTHON="%{__python3}" \
1536aaf2
JK
578 --with-platform=${platform} \
579 --disable-werror \
18b992da 580 --enable-grub-themes \
1536aaf2
JK
581 %if %{with grubemu}
582 --enable-grub-emu-usb \
583 --enable-grub-emu-sdl \
584 --enable-grub-emu-pci \
585 %endif
0e2cbb94 586 $platform_opts \
1536aaf2
JK
587 TARGET_LDFLAGS=-static
588
ec98fb4c 589 %{__make} -j1 -C po update-gmo
1536aaf2
JK
590 %{__make}
591 cd ..
592done
0fb8b1a5 593
afe8504a
SP
594%install
595rm -rf $RPM_BUILD_ROOT
afe8504a 596
1536aaf2 597for platform in %{platforms} ; do
fc490c3e 598 cd build-${platform}
1536aaf2
JK
599 %{__make} install \
600 pkgdatadir=%{_libexecdir} \
601 pkglibdir=%{_libexecdir} \
602 DESTDIR=$RPM_BUILD_ROOT
603 cd ..
604done
afe8504a 605
7615a862
JK
606# not in Th (?)
607%{__rm} -r $RPM_BUILD_ROOT%{_localedir}/de@hebrew
608%{__rm} -r $RPM_BUILD_ROOT%{_localedir}/en@{arabic,cyrillic,greek,hebrew,piglatin}
609
f951fcbe
AM
610%find_lang grub
611
bcd6a47e
ER
612# this must be after 'make install'
613install -d $RPM_BUILD_ROOT%{_libexecdir}/locale
614
1536aaf2
JK
615install -d $RPM_BUILD_ROOT%{_grubdir}
616cp -p docs/grub.cfg $RPM_BUILD_ROOT%{_grubdir}
617
7b6caae9 618# grub.d/41_custom
1536aaf2 619cp -p %{SOURCE4} $RPM_BUILD_ROOT%{_grubdir}/custom.cfg
7b6caae9
ER
620%{__rm} $RPM_BUILD_ROOT/lib/grub.d/40_custom
621
22909ca1 622install -p %{SOURCE1} $RPM_BUILD_ROOT%{_sbindir}/update-grub
7b6caae9
ER
623cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_mandir}/man8/update-grub.8
624
625install -d $RPM_BUILD_ROOT/etc/sysconfig
626cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/grub
627
628# rm -f, because it sometimes exists, sometimes not, depending which texlive you have installed
47069130 629rm -f $RPM_BUILD_ROOT%{_infodir}/dir
e2964b87 630
feaacba3 631# platform specific, unnecessarily always installed
50ffb0ba 632%ifnarch %{ix86} %{x8664} x32
feaacba3
JB
633%{__rm} $RPM_BUILD_ROOT{%{_sbindir}/grub-bios-setup,%{_mandir}/man8/grub-bios-setup.8}
634%endif
635%ifnarch sparc64
636%{__rm} $RPM_BUILD_ROOT{%{_sbindir}/grub-sparc64-setup,%{_mandir}/man8/grub-sparc64-setup.8}
637%endif
638
cbd79801 639# core.img - bootable image generated by grub-mkimage(1) via grub-install(1)
1536aaf2
JK
640touch $RPM_BUILD_ROOT%{_grubdir}/core.img
641touch $RPM_BUILD_ROOT%{_grubdir}/device.map
cbd79801 642
8b5c394b
ER
643# needs to be exactly 1KiB
644# but we're ghosting it. so whom are we kidding here? :P (maybe %config it in future?)
1536aaf2 645dd bs=1024 if=/dev/zero count=1 of=$RPM_BUILD_ROOT%{_grubdir}/grubenv
8b5c394b 646
afe8504a
SP
647%clean
648rm -rf $RPM_BUILD_ROOT
649
5028d8c9 650%post -p %{_sbindir}/postshell
fc58858a 651-/usr/sbin/fix-info-dir -c %{_infodir}
f4604ef8 652
5028d8c9 653%postun -p %{_sbindir}/postshell
fc58858a 654-/usr/sbin/fix-info-dir -c %{_infodir}
f4604ef8 655
8c5e5aa2
JR
656%triggerpostun -- %{name} < 2.00-2
657# Note this trigger on version upgrade needed only for upgrade from
658# old grub2 packages which contained modules in /boot/grub
701e14fb
JB
659# or were built with optimizations enabled.
660# Don't do anything on --downgrade.
92904505
ER
661if [ $1 -le 1 ]; then
662 exit 0
663fi
664echo "Grub was upgraded, trying to setup it to boot sector"
665/sbin/grub-install '(hd0)' || :
666
701e14fb 667# -- %{name} < 1.99-7.3
7b6caae9
ER
668# migrate /etc/grub.d/custom.cfg.rpmsave -> /boot/grub/custom.cfg
669if [ -f %{_sysconfdir}/grub.d/custom.cfg.rpmsave ]; then
1536aaf2
JK
670 cp -f %{_grubdir}/custom.cfg{,.rpmnew}
671 mv -f %{_sysconfdir}/grub.d/custom.cfg.rpmsave %{_grubdir}/custom.cfg
7b6caae9
ER
672fi
673
f951fcbe 674%files -f grub.lang
afe8504a 675%defattr(644,root,root,755)
2e4bec6f 676%doc AUTHORS ChangeLog NEWS README THANKS TODO
aec70abd 677%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/grub
71c933c0 678%attr(755,root,root) %{_sbindir}/grub-editenv
3ea0c40e 679%attr(755,root,root) %{_sbindir}/grub-fstest
5bafb558
JK
680%attr(755,root,root) %{_sbindir}/grub-file
681%attr(755,root,root) %{_sbindir}/grub-glue-efi
e9d73181 682%attr(755,root,root) %{_sbindir}/grub-kbdcomp
fc835b5e 683%attr(755,root,root) %{_sbindir}/grub-install
5bafb558 684%attr(755,root,root) %{_sbindir}/grub-macbless
e9d73181 685%attr(755,root,root) %{_sbindir}/grub-menulst2cfg
fc835b5e 686%attr(755,root,root) %{_sbindir}/grub-mkconfig
e9d73181
AM
687%attr(755,root,root) %{_sbindir}/grub-mklayout
688%attr(755,root,root) %{_sbindir}/grub-mknetdir
71c933c0
ER
689%attr(755,root,root) %{_sbindir}/grub-mkpasswd-pbkdf2
690%attr(755,root,root) %{_sbindir}/grub-mkrelpath
691%attr(755,root,root) %{_sbindir}/grub-mkrescue
7615a862
JK
692%attr(755,root,root) %{_sbindir}/grub-mkstandalone
693%attr(755,root,root) %{_sbindir}/grub-mount
694%attr(755,root,root) %{_sbindir}/grub-ofpathname
71c933c0 695%attr(755,root,root) %{_sbindir}/grub-reboot
5bafb558 696%attr(755,root,root) %{_sbindir}/grub-render-label
71c933c0
ER
697%attr(755,root,root) %{_sbindir}/grub-script-check
698%attr(755,root,root) %{_sbindir}/grub-set-default
5bafb558 699%attr(755,root,root) %{_sbindir}/grub-syslinux2cfg
22909ca1 700%attr(755,root,root) %{_sbindir}/update-grub
50ffb0ba 701%ifarch %{ix86} %{x8664} x32
feaacba3
JB
702%attr(755,root,root) %{_sbindir}/grub-bios-setup
703%{_mandir}/man8/grub-bios-setup.8*
704%endif
76be4c4a 705%attr(755,root,root) %{_sbindir}/grub-mkimage
fc835b5e 706%{_mandir}/man1/grub-mkimage.1*
76be4c4a 707%attr(755,root,root) %{_sbindir}/grub-probe
76be4c4a 708%{_mandir}/man8/grub-probe.8*
feaacba3
JB
709%ifarch sparc64
710%attr(755,root,root) %{_sbindir}/grub-sparc64-setup
711%{_mandir}/man8/grub-sparc64-setup.8*
712%endif
71c933c0 713%{_mandir}/man1/grub-editenv.1*
5bafb558 714%{_mandir}/man1/grub-file.1*
3ea0c40e 715%{_mandir}/man1/grub-fstest.1*
5bafb558 716%{_mandir}/man1/grub-glue-efi.1*
7615a862 717%{_mandir}/man1/grub-kbdcomp.1*
e9d73181 718%{_mandir}/man1/grub-menulst2cfg.1*
e9d73181 719%{_mandir}/man1/grub-mklayout.1*
5bafb558 720%{_mandir}/man1/grub-mknetdir.1*
71c933c0 721%{_mandir}/man1/grub-mkpasswd-pbkdf2.1*
03b9d04b 722%{_mandir}/man1/grub-mkrelpath.1*
71c933c0 723%{_mandir}/man1/grub-mkrescue.1*
7615a862
JK
724%{_mandir}/man1/grub-mkstandalone.1*
725%{_mandir}/man1/grub-mount.1*
5bafb558 726%{_mandir}/man1/grub-render-label.1*
71c933c0 727%{_mandir}/man1/grub-script-check.1*
5bafb558 728%{_mandir}/man1/grub-syslinux2cfg.1*
71c933c0 729%{_mandir}/man8/grub-install.8*
a4c52d96 730%{_mandir}/man8/grub-macbless.8*
fc835b5e 731%{_mandir}/man8/grub-mkconfig.8*
7615a862 732%{_mandir}/man8/grub-ofpathname.8*
71c933c0
ER
733%{_mandir}/man8/grub-reboot.8*
734%{_mandir}/man8/grub-set-default.8*
22909ca1 735%{_mandir}/man8/update-grub.8*
797addca 736%if %{with grubemu}
8fcee4aa
ER
737%attr(755,root,root) %{_sbindir}/grub-emu
738%{_mandir}/man8/grub-emu.8*
797addca 739%endif
e6fbd304 740%{_libexecdir}/grub-mkconfig_lib
aec70abd 741
1536aaf2 742%dir %{_grubdir}
26e757db 743%dir %{_libexecdir}
bcd6a47e 744# XXX: check this locale dir location and if it is neccesaary to exist on /boot
565fe2e3 745
bcd6a47e 746%dir %{_libexecdir}/locale
ea60f32b
AM
747%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_grubdir}/grub.cfg
748%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_grubdir}/custom.cfg
aec70abd 749
cbd79801 750# generated by grub at runtime
1536aaf2
JK
751%ghost %{_grubdir}/device.map
752%ghost %{_grubdir}/core.img
753%ghost %{_grubdir}/grubenv
cbd79801 754
e2964b87
ER
755%dir /lib/grub.d
756%doc /lib/grub.d/README
757%attr(755,root,root) /lib/grub.d/00_header
758%attr(755,root,root) /lib/grub.d/10_linux
e9d73181 759%attr(755,root,root) /lib/grub.d/20_linux_xen
e58cb412 760%attr(755,root,root) /lib/grub.d/25_bli
e2964b87 761%attr(755,root,root) /lib/grub.d/30_os-prober
e9d73181 762%attr(755,root,root) /lib/grub.d/41_custom
e2964b87 763
f4604ef8 764%{_infodir}/grub*.info*
565fe2e3 765
8ac8605d
JK
766%dir %{_datadir}/grub/themes
767
e391ec8f
JB
768%files -n bash-completion-%{name}
769%defattr(644,root,root,755)
770/etc/bash_completion.d/grub
771
a2b4434b
JB
772%if %{with unifont}
773%files fonts
1536aaf2 774%defattr(644,root,root,755)
a2b4434b
JB
775%{_libexecdir}/ascii.h
776%{_libexecdir}/ascii.pf2
777%{_libexecdir}/euro.pf2
778%{_libexecdir}/unicode.pf2
779%{_libexecdir}/widthspec.h
1536aaf2 780%endif
a2b4434b
JB
781
782%if %{with arc}
783%files platform-arc
784%defattr(644,root,root,755)
785%dir %{_libexecdir}/%{arc_arch}-arc
786%{_libexecdir}/%{arc_arch}-arc/modinfo.sh
787%{_libexecdir}/%{arc_arch}-arc/*.lst
788%{_libexecdir}/%{arc_arch}-arc/*.mod
789%{_libexecdir}/%{arc_arch}-arc/*.module
790%{_libexecdir}/%{arc_arch}-arc/config.h
791%{_libexecdir}/%{arc_arch}-arc/gdb_grub
e58cb412 792%{_libexecdir}/%{arc_arch}-arc/gdb_helper.py
a2b4434b
JB
793%{_libexecdir}/%{arc_arch}-arc/kernel.exec
794%{_libexecdir}/%{arc_arch}-arc/kernel.img
1536aaf2 795%endif
a2b4434b
JB
796
797%if %{with coreboot}
798%files platform-coreboot
799%defattr(644,root,root,755)
800%dir %{_libexecdir}/%{coreboot_arch}-coreboot
801%{_libexecdir}/%{coreboot_arch}-coreboot/modinfo.sh
802%{_libexecdir}/%{coreboot_arch}-coreboot/*.lst
803%{_libexecdir}/%{coreboot_arch}-coreboot/*.mod
804%{_libexecdir}/%{coreboot_arch}-coreboot/*.module
805%{_libexecdir}/%{coreboot_arch}-coreboot/config.h
806%{_libexecdir}/%{coreboot_arch}-coreboot/gdb_grub
e58cb412 807%{_libexecdir}/%{coreboot_arch}-coreboot/gdb_helper.py
a2b4434b
JB
808%{_libexecdir}/%{coreboot_arch}-coreboot/kernel.exec
809%{_libexecdir}/%{coreboot_arch}-coreboot/kernel.img
75218533
JB
810%if %{with efiemu}
811%{_libexecdir}/%{coreboot_arch}-coreboot/efiemu*.o
812%endif
1536aaf2
JK
813%endif
814
815%if %{with efi}
6d8475a4 816%files platform-efi
1536aaf2 817%defattr(644,root,root,755)
41468086 818%attr(755,root,root) /lib/grub.d/30_uefi-firmware
a2b4434b
JB
819%dir %{_libexecdir}/%{efi_arch}-efi
820%{_libexecdir}/%{efi_arch}-efi/modinfo.sh
821%{_libexecdir}/%{efi_arch}-efi/*.lst
822%{_libexecdir}/%{efi_arch}-efi/*.mod
823%{_libexecdir}/%{efi_arch}-efi/*.module
824%{_libexecdir}/%{efi_arch}-efi/config.h
825%{_libexecdir}/%{efi_arch}-efi/gdb_grub
e58cb412 826%{_libexecdir}/%{efi_arch}-efi/gdb_helper.py
a2b4434b
JB
827%{_libexecdir}/%{efi_arch}-efi/kernel.exec
828%{_libexecdir}/%{efi_arch}-efi/kernel.img
829%endif
830
831%if %{with ieee1275}
832%files platform-ieee1275
833%defattr(644,root,root,755)
834%dir %{_libexecdir}/%{ieee1275_arch}-ieee1275
835%{_libexecdir}/%{ieee1275_arch}-ieee1275/modinfo.sh
836%{_libexecdir}/%{ieee1275_arch}-ieee1275/*.lst
837%{_libexecdir}/%{ieee1275_arch}-ieee1275/*.mod
838%{_libexecdir}/%{ieee1275_arch}-ieee1275/*.module
839%{_libexecdir}/%{ieee1275_arch}-ieee1275/config.h
840%{_libexecdir}/%{ieee1275_arch}-ieee1275/gdb_grub
e58cb412 841%{_libexecdir}/%{ieee1275_arch}-ieee1275/gdb_helper.py
a2b4434b
JB
842%{_libexecdir}/%{ieee1275_arch}-ieee1275/kernel.exec
843%{_libexecdir}/%{ieee1275_arch}-ieee1275/kernel.img
75218533
JB
844%if %{with efiemu}
845%{_libexecdir}/%{ieee1275_arch}-ieee1275/efiemu*.o
846%endif
a2b4434b
JB
847%endif
848
849%if %{with multiboot}
850%files platform-multiboot
851%defattr(644,root,root,755)
852%dir %{_libexecdir}/i386-multiboot
853%{_libexecdir}/i386-multiboot/modinfo.sh
854%{_libexecdir}/i386-multiboot/*.lst
855%{_libexecdir}/i386-multiboot/*.mod
856%{_libexecdir}/i386-multiboot/*.module
857%{_libexecdir}/i386-multiboot/config.h
858%{_libexecdir}/i386-multiboot/gdb_grub
e58cb412 859%{_libexecdir}/i386-multiboot/gdb_helper.py
a2b4434b
JB
860%{_libexecdir}/i386-multiboot/kernel.exec
861%{_libexecdir}/i386-multiboot/kernel.img
75218533
JB
862%if %{with efiemu}
863%{_libexecdir}/i386-multiboot/efiemu*.o
864%endif
a2b4434b
JB
865%endif
866
867%if %{with pc}
868%files platform-pc
869%defattr(644,root,root,755)
870%dir %{_libexecdir}/i386-pc
871%{_libexecdir}/i386-pc/modinfo.sh
872%{_libexecdir}/i386-pc/*.lst
873%{_libexecdir}/i386-pc/*.mod
874%{_libexecdir}/i386-pc/*.module
875%{_libexecdir}/i386-pc/config.h
876%{_libexecdir}/i386-pc/gdb_grub
e58cb412 877%{_libexecdir}/i386-pc/gdb_helper.py
a2b4434b
JB
878%{_libexecdir}/i386-pc/boot.image
879%{_libexecdir}/i386-pc/boot.img
880%{_libexecdir}/i386-pc/boot_hybrid.image
881%{_libexecdir}/i386-pc/boot_hybrid.img
882%{_libexecdir}/i386-pc/cdboot.image
883%{_libexecdir}/i386-pc/cdboot.img
884%{_libexecdir}/i386-pc/diskboot.image
885%{_libexecdir}/i386-pc/diskboot.img
886%{_libexecdir}/i386-pc/kernel.exec
887%{_libexecdir}/i386-pc/kernel.img
888%{_libexecdir}/i386-pc/lnxboot.image
889%{_libexecdir}/i386-pc/lnxboot.img
890%{_libexecdir}/i386-pc/lzma_decompress.image
891%{_libexecdir}/i386-pc/lzma_decompress.img
892%{_libexecdir}/i386-pc/pxeboot.image
893%{_libexecdir}/i386-pc/pxeboot.img
894%if %{with efiemu}
895%{_libexecdir}/i386-pc/efiemu*.o
896%endif
897%endif
898
899%if %{with qemu}
900%files platform-qemu
901%defattr(644,root,root,755)
902%dir %{_libexecdir}/%{qemu_arch}-%{qemu_plat}
903%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/modinfo.sh
904%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/*.lst
905%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/*.mod
906%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/*.module
907%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/config.h
908%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/gdb_grub
e58cb412 909%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/gdb_helper.py
a2b4434b
JB
910%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/boot.image
911%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/boot.img
912%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/kernel.exec
913%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/kernel.img
914%endif
915
916%if %{with uboot}
917%files platform-uboot
918%defattr(644,root,root,755)
919%dir %{_libexecdir}/arm-uboot
920%{_libexecdir}/arm-uboot/modinfo.sh
921%{_libexecdir}/arm-uboot/*.lst
922%{_libexecdir}/arm-uboot/*.mod
923%{_libexecdir}/arm-uboot/*.module
924%{_libexecdir}/arm-uboot/config.h
925%{_libexecdir}/arm-uboot/gdb_grub
e58cb412 926%{_libexecdir}/arm-uboot/gdb_helper.py
a2b4434b
JB
927%{_libexecdir}/arm-uboot/kernel.exec
928%{_libexecdir}/arm-uboot/kernel.img
929%endif
930
931%if %{with xen}
932%files platform-xen
933%defattr(644,root,root,755)
934%dir %{_libexecdir}/%{xen_arch}-xen
935%{_libexecdir}/%{xen_arch}-xen/modinfo.sh
936%{_libexecdir}/%{xen_arch}-xen/*.lst
937%{_libexecdir}/%{xen_arch}-xen/*.mod
938%{_libexecdir}/%{xen_arch}-xen/*.module
939%{_libexecdir}/%{xen_arch}-xen/config.h
940%{_libexecdir}/%{xen_arch}-xen/gdb_grub
e58cb412 941%{_libexecdir}/%{xen_arch}-xen/gdb_helper.py
a2b4434b
JB
942%{_libexecdir}/%{xen_arch}-xen/kernel.exec
943%{_libexecdir}/%{xen_arch}-xen/kernel.img
944%endif
945
946%if %{with xen_pvh}
947%files platform-xen_pvh
948%defattr(644,root,root,755)
949%dir %{_libexecdir}/i386-xen_pvh
950%{_libexecdir}/i386-xen_pvh/modinfo.sh
951%{_libexecdir}/i386-xen_pvh/*.lst
952%{_libexecdir}/i386-xen_pvh/*.mod
953%{_libexecdir}/i386-xen_pvh/*.module
954%{_libexecdir}/i386-xen_pvh/config.h
955%{_libexecdir}/i386-xen_pvh/gdb_grub
e58cb412 956%{_libexecdir}/i386-xen_pvh/gdb_helper.py
a2b4434b
JB
957%{_libexecdir}/i386-xen_pvh/kernel.exec
958%{_libexecdir}/i386-xen_pvh/kernel.img
75218533
JB
959%if %{with efiemu}
960%{_libexecdir}/i386-xen_pvh/efiemu*.o
961%endif
1536aaf2
JK
962%endif
963
7615a862
JK
964%files mkfont
965%defattr(644,root,root,755)
7615a862 966%attr(755,root,root) %{_sbindir}/grub-mkfont
feaacba3 967%{_mandir}/man1/grub-mkfont.1*
7615a862 968
8ac8605d
JK
969%files theme-starfield
970%defattr(644,root,root,755)
971%{_datadir}/grub/themes/starfield
This page took 0.41174 seconds and 4 git commands to generate.