]> git.pld-linux.org Git - packages/grub2.git/blob - grub2.spec
330977966894039760a87365459b005eb9e56f0c
[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_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
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_coreboot:coreboot} %{?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.12
147 Release:        0.1
148 License:        GPL v2
149 Group:          Base
150 Source0:        https://ftp.gnu.org/gnu/grub/grub-%{version}.tar.xz
151 # Source0-md5:  60c564b1bdc39d8e43b3aab4bc0fb140
152 Source1:        update-grub
153 Source2:        update-grub.8
154 Source3:        grub.sysconfig
155 Source4:        grub-custom.cfg
156 Patch1:         pld-sysconfdir.patch
157 Patch2:         grub-garbage.patch
158 Patch3:         grub-lvmdevice.patch
159 Patch4:         pld-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:        choose-preferred-initrd.patch
166 Patch12:        %{name}-cfg.patch
167 Patch14:        blscfg.patch
168 URL:            http://www.gnu.org/software/grub/
169 BuildRequires:  autoconf >= 2.64
170 BuildRequires:  automake >= 1:1.11.1-1
171 BuildRequires:  bison >= 2.3
172 BuildRequires:  device-mapper-devel >= 1.02.34
173 BuildRequires:  flex >= 2.5.35
174 BuildRequires:  fonts-TTF-DejaVu
175 %if %{with unifont}
176 BuildRequires:  fonts-misc-unifont
177 %endif
178 BuildRequires:  freetype-devel >= 2.1.5
179 BuildRequires:  gawk
180 BuildRequires:  gcc >= 6:5.1
181 %ifarch %{x8664} x32
182 %if %{with efiemu} || %{with coreboot} || %{with ieee1275} || %{with multiboot} || %{with pc} || %{with xen_pvh}
183 BuildRequires:  gcc-multilib-32 >= 6:5.1
184 %endif
185 %endif
186 %ifarch x32
187 %if %{with efiemu} || %{with efi}
188 BuildRequires:  gcc-multilib-64 >= 6:5.1
189 %endif
190 %endif
191 BuildRequires:  gettext-tools >= 0.18.3
192 BuildRequires:  glibc-localedb-all
193 BuildRequires:  glibc-static
194 BuildRequires:  help2man
195 BuildRequires:  libfuse3-devel
196 BuildRequires:  libtool
197 BuildRequires:  ncurses-devel
198 BuildRequires:  pkgconfig
199 BuildRequires:  python3
200 BuildRequires:  python3-modules
201 BuildRequires:  rpm >= 4.4.9-56
202 BuildRequires:  rpm-build >= 4.6
203 BuildRequires:  rpmbuild(macros) >= 1.213
204 BuildRequires:  sed >= 4.0
205 BuildRequires:  tar >= 1:1.22
206 BuildRequires:  texinfo
207 BuildRequires:  xz
208 BuildRequires:  xz-devel
209 BuildRequires:  zfs-devel
210 Requires:       %{name}-platform = %{version}-%{release}
211 Requires:       pld-release
212 Requires:       which
213 %ifarch %{ix86} %{x8664} x32
214 Suggests:       %{name}-platform-pc
215 %endif
216 Suggests:       cdrkit-mkisofs
217 Suggests:       os-prober
218 Provides:       bootloader
219 Conflicts:      grub
220 ExclusiveArch:  %{ix86} %{x8664} x32 %{arm} aarch64 ia64 mips mipsel mips64 mips64el ppc ppc64 riscv32 riscv64 sparc64
221 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
222
223 %define         _sbindir        /sbin
224 %define         _bindir         %{_sbindir}
225 %define         _libdir         /lib
226 %define         _datadir        %{_libdir}
227 %define         _libexecdir     %{_libdir}/grub
228 %define         _grubdir        /boot/grub
229 %define         _localedir      /usr/share/locale
230
231 # part of grub code is not relocable (these are not Linux libs)
232 # stack protector also breaks non-Linux binaries
233 # any kind of forced optimizations makes grub2 unreliable (random
234 # reboots and hangs on boot menu screen)
235 %define         filterout_c     -fPIC -O.
236 %undefine       _ssp_cflags
237 %undefine       _fortify_cflags
238
239 %description
240 GRUB is a GPLed bootloader intended to unify bootloading across x86
241 operating systems. In addition to loading the Linux and *BSD kernels,
242 it implements the Multiboot standard, which allows for flexible
243 loading of multiple boot images (needed for modular kernels such as
244 the GNU Hurd).
245
246 GRUB 2 is derived from PUPA which was a research project to
247 investigate the next generation of GRUB. GRUB 2 has been rewritten
248 from scratch to clean up everything for modularity and portability.
249
250 GRUB 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
270 %description -l de.UTF-8
271 GRUB (GRand Unified Boot-loader) ist ein Bootloader, der oft auf
272 Rechnern eingesetzt wird, auf denen das freie Betriebssystem Linux
273 läuft. GRUB löst den betagten LILO (Linux-Loader) ab.
274
275 GRUB wurde innerhalb des GNU Hurd-Projektes als Boot-Loader entwickelt
276 und wird unter der GPL vertrieben. Aufgrund seiner höheren
277 Flexibilität verdrängt GRUB in vielen Linux-Distributionen den
278 traditionellen Boot-Loader LILO.
279
280 %description -l hu.UTF-8
281 GRUB egy GPL liszenszű rendszerbetöltő. Linux és *BSD kernelek
282 betöltése mellett támogatja a Multiboot standard-ot, amely lehetővé
283 teszi boot képek betöltését (moduláris kerneleknek kell, mint pl. a
284 GNU Hurd).
285
286 GRUB2 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
299 %description -l es.UTF-8
300 Éste es GRUB - Grand Unified Boot Loader - un administrador de
301 inicialización capaz de entrar en la mayoría de los sistemas
302 operacionales libres - Linux, FreeBSD, NetBSD, GNU Mach, etc. como
303 también en la mayoría de los sistemas operacionales comerciales para
304 PC.
305
306 El administrador GRUB puede ser una buena alternativa a LILO, para
307 usuarios conmás experiencia y que deseen obtener más recursos de su
308 cargador de inicialización (boot loader).
309
310 %description -l pl.UTF-8
311 GRUB jest bootloaderem na licencji GNU GPL, mającym na celu unifikację
312 procesu bootowania na systemach x86. Potrafi nie tylko ładować jądra
313 Linuksa i *BSD: posiada również implementację standardu Multiboot,
314 który pozwala na elastyczne ładowanie wielu obrazów bootowalnych
315 (czego wymagają modułowe jądra, takie jak GNU Hurd).
316
317 %description -l pt_BR.UTF-8
318 Esse é o GRUB - Grand Unified Boot Loader - um gerenciador de boot
319 capaz de entrar na maioria dos sistemas operacionais livres - Linux,
320 FreeBSD, NetBSD, GNU Mach, etc. assim como na maioria dos sistemas
321 operacionais comerciais para PC.
322
323 O GRUB pode ser uma boa alternativa ao LILO, para usuários mais
324 avançados e que querem mais recursos de seu boot loader.
325
326 %package -n bash-completion-%{name}
327 Summary:        bash-completion for GRUB
328 Summary(pl.UTF-8):      Bashowe uzupełnianie nazw dla GRUB-a
329 Group:          Applications/Shells
330 Requires:       %{name} = %{version}-%{release}
331 Requires:       bash-completion
332 BuildArch:      noarch
333
334 %description -n bash-completion-%{name}
335 This package provides bash-completion for GRUB.
336
337 %description -n bash-completion-%{name} -l pl.UTF-8
338 Pakiet ten dostarcza bashowe uzupełnianie nazw dla GRUB-a.
339
340 %package fonts
341 Summary:        Fonts for GRUB
342 Summary(pl.UTF-8):      Fonty dla GRUB-a
343 Group:          Base
344 Requires:       %{name} = %{version}-%{release}
345
346 %description fonts
347 Fonts for GRUB.
348
349 %description fonts -l pl.UTF-8
350 Fonty dla GRUB-a.
351
352 %package platform-arc
353 Summary:        MIPS ARC platform support for GRUB
354 Summary(pl.UTF-8):      Obsługa platformy MIPS ARC dla GRUB-a
355 Group:          Base
356 Requires:       %{name} = %{version}-%{release}
357 Provides:       %{name}-platform = %{version}-%{release}
358
359 %description platform-arc
360 MIPS ARC platform support for GRUB.
361
362 %description platform-arc -l pl.UTF-8
363 Obsługa platformy MIPS ARC dla GRUB-a.
364
365 %package platform-coreboot
366 Summary:        Coreboot (LinuxBIOS) platform support for GRUB
367 Summary(pl.UTF-8):      Obsługa platformy Coreboot (LinuxBIOS) dla GRUB-a
368 Group:          Base
369 Requires:       %{name} = %{version}-%{release}
370 Requires:       %{name}-fonts = %{version}-%{release}
371 Provides:       %{name}-platform = %{version}-%{release}
372
373 %description platform-coreboot
374 Coreboot (LinuxBIOS) platform support for GRUB.
375
376 %description platform-coreboot -l pl.UTF-8
377 Obsługa platformy Coreboot (LinuxBIOS) dla GRUB-a.
378
379 %package platform-efi
380 Summary:        (U)EFI platform support for GRUB
381 Summary(pl.UTF-8):      Obsługa platformy (U)EFI dla GRUB-a
382 Group:          Base
383 Requires:       %{name} = %{version}-%{release}
384 Suggests:       efibootmgr
385 Provides:       %{name}-platform = %{version}-%{release}
386
387 %description platform-efi
388 (U)EFI platform support for GRUB.
389
390 %description platform-efi -l pl.UTF-8
391 Obsługa platformy (U)EFI dla GRUB-a.
392
393 %package platform-ieee1275
394 Summary:        IEEE 1275 (OpenFirmware) platform support for GRUB
395 Summary(pl.UTF-8):      Obsługa platformy IEEE 1275 (OpenFirmware) dla GRUB-a
396 Group:          Base
397 Requires:       %{name} = %{version}-%{release}
398 Provides:       %{name}-platform = %{version}-%{release}
399
400 %description platform-ieee1275
401 IEEE 1275 (OpenFirmware) platform support for GRUB.
402
403 %description platform-ieee1275 -l pl.UTF-8
404 Obsługa platformy IEEE 1275 (OpenFirmware) dla GRUB-a.
405
406 %package platform-loongson
407 Summary:        MIPS Loongson platform support for GRUB
408 Summary(pl.UTF-8):      Obsługa platformy MIPS Loongson dla GRUB-a
409 Group:          Base
410 Requires:       %{name} = %{version}-%{release}
411 Requires:       %{name}-fonts = %{version}-%{release}
412 Provides:       %{name}-platform = %{version}-%{release}
413
414 %description platform-loongson
415 MIPS Loongson (yeelong, fuloong) platform support for GRUB.
416
417 %description platform-loongson -l pl.UTF-8
418 Obsługa platformy MIPS Loongson (yeelong, fuloong) dla GRUB-a.
419
420 %package platform-multiboot
421 Summary:        Multiboot platform support for GRUB
422 Summary(pl.UTF-8):      Obsługa platformy Multiboot dla GRUB-a
423 Group:          Base
424 Requires:       %{name} = %{version}-%{release}
425 Provides:       %{name}-platform = %{version}-%{release}
426
427 %description platform-multiboot
428 Multiboot platform support for GRUB.
429
430 %description platform-multiboot -l pl.UTF-8
431 Obsługa platformy Multiboot dla GRUB-a.
432
433 %package platform-pc
434 Summary:        PC BIOS platform support for GRUB
435 Summary(pl.UTF-8):      Obsługa platformy PC BIOS dla GRUB-a
436 Group:          Base
437 Requires:       %{name} = %{version}-%{release}
438 Provides:       %{name}-platform = %{version}-%{release}
439
440 %description platform-pc
441 PC BIOS platform support for GRUB.
442
443 %description platform-pc -l pl.UTF-8
444 Obsługa platformy PC BIOS dla GRUB-a.
445
446 %package platform-qemu
447 Summary:        Qemu platform support for GRUB
448 Summary(pl.UTF-8):      Obsługa platformy Qemu dla GRUB-a
449 Group:          Base
450 Requires:       %{name} = %{version}-%{release}
451 Requires:       %{name}-fonts = %{version}-%{release}
452 Provides:       %{name}-platform = %{version}-%{release}
453
454 %description platform-qemu
455 Qemu platform support for GRUB.
456
457 %description platform-qemu -l pl.UTF-8
458 Obsługa platformy Qemu dla GRUB-a.
459
460 %package platform-uboot
461 Summary:        ARM uBoot platform support for GRUB
462 Summary(pl.UTF-8):      Obsługa platformy ARM uBoot dla GRUB-a
463 Group:          Base
464 Requires:       %{name} = %{version}-%{release}
465 Provides:       %{name}-platform = %{version}-%{release}
466
467 %description platform-uboot
468 ARM uBoot platform support for GRUB.
469
470 %description platform-uboot -l pl.UTF-8
471 Obsługa platformy ARM uBoot dla GRUB-a.
472
473 %package platform-xen
474 Summary:        Xen platform support for GRUB
475 Summary(pl.UTF-8):      Obsługa platformy Xen dla GRUB-a
476 Group:          Base
477 Requires:       %{name} = %{version}-%{release}
478 Provides:       %{name}-platform = %{version}-%{release}
479
480 %description platform-xen
481 Xen platform support for GRUB.
482
483 %description platform-xen -l pl.UTF-8
484 Obsługa platformy Xen dla GRUB-a.
485
486 %package platform-xen_pvh
487 Summary:        Xen PVH platform support for GRUB
488 Summary(pl.UTF-8):      Obsługa platformy Xen PVH dla GRUB-a
489 Group:          Base
490 Requires:       %{name} = %{version}-%{release}
491 Provides:       %{name}-platform = %{version}-%{release}
492
493 %description platform-xen_pvh
494 Xen PVH platform support for GRUB.
495
496 %description platform-xen_pvh -l pl.UTF-8
497 Obsługa platformy Xen PVH dla GRUB-a.
498
499 %package mkfont
500 Summary:        GRUB font files converter
501 Summary(pl.UTF-8):      Konwerter plików fontów GRUB-a
502 Group:          Base
503
504 %description mkfont
505 Converts common font file formats into PF2.
506
507 %description mkfont -l pl.UTF-8
508 Program do konwersji popularnych formatów plików fontów do PF2.
509
510 %package theme-starfield
511 Summary:        starfield theme for GRUB
512 Summary(pl.UTF-8):      Motyw starfield dla GRUB-a
513 Requires:       %{name} = %{version}-%{release}
514 Group:          Base
515
516 %description theme-starfield
517 starfield theme for GRUB.
518
519 %description theme-starfield -l pl.UTF-8
520 Motyw starfield dla GRUB-a.
521
522 %prep
523 %setup -q -n grub-%{version}
524 %patch1 -p1
525 %patch2 -p1
526 %patch3 -p1
527 %patch4 -p1
528 %patch5 -p1
529 %patch6 -p1
530 %patch7 -p1
531 %patch9 -p1
532 %patch10 -p1
533 %patch11 -p1
534 %patch12 -p0
535 %patch14 -p1
536
537 # we don't have C.utf-8 and need an UTF-8 locale for build
538 sed -i -e 's/LC_ALL=C.UTF-8/LC_ALL=en_US.utf-8/g' po/Makefile* po/Rules*
539
540 # missing in tarball
541 cat > grub-core/extra_deps.lst <<EOF
542 depends bli part_gpt
543 EOF
544
545 %build
546 # if gold is used then grub doesn't even boot
547 # https://savannah.gnu.org/bugs/?34539
548 # http://sourceware.org/bugzilla/show_bug.cgi?id=14196
549 install -d our-ld
550 ln -f -s /usr/bin/ld.bfd our-ld/ld
551 export PATH=$(pwd)/our-ld:$PATH
552
553 ## not only the typical autotools stuff
554 #./autogen.sh
555
556 #{__gettextize}
557 %{__aclocal} -I m4
558 %{__autoconf}
559 %{__autoheader}
560 %{__automake}
561
562 for platform in %{platforms} ; do
563         install -d build-${platform}
564         cd build-${platform}
565
566         platform_opts=""
567         case platform in
568                 coreboot|ieee1275|multiboot|pc|qemu|xen_pvh)
569                         platform_opts="--enable-efiemu%{!?with_efiemu:=no}"
570                         ;;
571         esac
572
573         ln -f -s ../configure .
574         # mawk stalls at ./genmoddep.awk, so force gawk
575         AWK=gawk \
576         %configure \
577                 PYTHON="%{__python3}" \
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 # -- %{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 %attr(755,root,root) %{_sbindir}/grub-mkimage
706 %{_mandir}/man1/grub-mkimage.1*
707 %attr(755,root,root) %{_sbindir}/grub-probe
708 %{_mandir}/man8/grub-probe.8*
709 %ifarch sparc64
710 %attr(755,root,root) %{_sbindir}/grub-sparc64-setup
711 %{_mandir}/man8/grub-sparc64-setup.8*
712 %endif
713 %{_mandir}/man1/grub-editenv.1*
714 %{_mandir}/man1/grub-file.1*
715 %{_mandir}/man1/grub-fstest.1*
716 %{_mandir}/man1/grub-glue-efi.1*
717 %{_mandir}/man1/grub-kbdcomp.1*
718 %{_mandir}/man1/grub-menulst2cfg.1*
719 %{_mandir}/man1/grub-mklayout.1*
720 %{_mandir}/man1/grub-mknetdir.1*
721 %{_mandir}/man1/grub-mkpasswd-pbkdf2.1*
722 %{_mandir}/man1/grub-mkrelpath.1*
723 %{_mandir}/man1/grub-mkrescue.1*
724 %{_mandir}/man1/grub-mkstandalone.1*
725 %{_mandir}/man1/grub-mount.1*
726 %{_mandir}/man1/grub-render-label.1*
727 %{_mandir}/man1/grub-script-check.1*
728 %{_mandir}/man1/grub-syslinux2cfg.1*
729 %{_mandir}/man8/grub-install.8*
730 %{_mandir}/man8/grub-macbless.8*
731 %{_mandir}/man8/grub-mkconfig.8*
732 %{_mandir}/man8/grub-ofpathname.8*
733 %{_mandir}/man8/grub-reboot.8*
734 %{_mandir}/man8/grub-set-default.8*
735 %{_mandir}/man8/update-grub.8*
736 %if %{with grubemu}
737 %attr(755,root,root) %{_sbindir}/grub-emu
738 %{_mandir}/man8/grub-emu.8*
739 %endif
740 %{_libexecdir}/grub-mkconfig_lib
741
742 %dir %{_grubdir}
743 %dir %{_libexecdir}
744 # XXX: check this locale dir location and if it is neccesaary to exist on /boot
745
746 %dir %{_libexecdir}/locale
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
749
750 # generated by grub at runtime
751 %ghost %{_grubdir}/device.map
752 %ghost %{_grubdir}/core.img
753 %ghost %{_grubdir}/grubenv
754
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
759 %attr(755,root,root) /lib/grub.d/20_linux_xen
760 %attr(755,root,root) /lib/grub.d/25_bli
761 %attr(755,root,root) /lib/grub.d/30_os-prober
762 %attr(755,root,root) /lib/grub.d/41_custom
763
764 %{_infodir}/grub*.info*
765
766 %dir %{_datadir}/grub/themes
767
768 %files -n bash-completion-%{name}
769 %defattr(644,root,root,755)
770 /etc/bash_completion.d/grub
771
772 %if %{with unifont}
773 %files fonts
774 %defattr(644,root,root,755)
775 %{_libexecdir}/ascii.h
776 %{_libexecdir}/ascii.pf2
777 %{_libexecdir}/euro.pf2
778 %{_libexecdir}/unicode.pf2
779 %{_libexecdir}/widthspec.h
780 %endif
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
792 %{_libexecdir}/%{arc_arch}-arc/gdb_helper.py
793 %{_libexecdir}/%{arc_arch}-arc/kernel.exec
794 %{_libexecdir}/%{arc_arch}-arc/kernel.img
795 %endif
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
807 %{_libexecdir}/%{coreboot_arch}-coreboot/gdb_helper.py
808 %{_libexecdir}/%{coreboot_arch}-coreboot/kernel.exec
809 %{_libexecdir}/%{coreboot_arch}-coreboot/kernel.img
810 %if %{with efiemu}
811 %{_libexecdir}/%{coreboot_arch}-coreboot/efiemu*.o
812 %endif
813 %endif
814
815 %if %{with efi}
816 %files platform-efi
817 %defattr(644,root,root,755)
818 %attr(755,root,root) /lib/grub.d/30_uefi-firmware
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
826 %{_libexecdir}/%{efi_arch}-efi/gdb_helper.py
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
841 %{_libexecdir}/%{ieee1275_arch}-ieee1275/gdb_helper.py
842 %{_libexecdir}/%{ieee1275_arch}-ieee1275/kernel.exec
843 %{_libexecdir}/%{ieee1275_arch}-ieee1275/kernel.img
844 %if %{with efiemu}
845 %{_libexecdir}/%{ieee1275_arch}-ieee1275/efiemu*.o
846 %endif
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
859 %{_libexecdir}/i386-multiboot/gdb_helper.py
860 %{_libexecdir}/i386-multiboot/kernel.exec
861 %{_libexecdir}/i386-multiboot/kernel.img
862 %if %{with efiemu}
863 %{_libexecdir}/i386-multiboot/efiemu*.o
864 %endif
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
877 %{_libexecdir}/i386-pc/gdb_helper.py
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
909 %{_libexecdir}/%{qemu_arch}-%{qemu_plat}/gdb_helper.py
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
926 %{_libexecdir}/arm-uboot/gdb_helper.py
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
941 %{_libexecdir}/%{xen_arch}-xen/gdb_helper.py
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
956 %{_libexecdir}/i386-xen_pvh/gdb_helper.py
957 %{_libexecdir}/i386-xen_pvh/kernel.exec
958 %{_libexecdir}/i386-xen_pvh/kernel.img
959 %if %{with efiemu}
960 %{_libexecdir}/i386-xen_pvh/efiemu*.o
961 %endif
962 %endif
963
964 %files mkfont
965 %defattr(644,root,root,755)
966 %attr(755,root,root) %{_sbindir}/grub-mkfont
967 %{_mandir}/man1/grub-mkfont.1*
968
969 %files theme-starfield
970 %defattr(644,root,root,755)
971 %{_datadir}/grub/themes/starfield
This page took 0.12344 seconds and 3 git commands to generate.