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