setup-network: Print warnings to stderr
[opensuse:seifes-mkinitrd.git] / mkinitrd.spec
1 #
2 # spec file for package mkinitrd
3 #
4 # Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
5 #
6 # All modifications and additions to the file contributed by third parties
7 # remain the property of their copyright owners, unless otherwise agreed
8 # upon. The license for this file, and modifications and additions to the
9 # file, is the same license as for the pristine package itself (unless the
10 # license for the pristine package is not an Open Source License, in which
11 # case the license is the MIT License). An "Open Source License" is a
12 # license that conforms to the Open Source Definition (Version 1.9)
13 # published by the Open Source Initiative.
14
15 # Please submit bugfixes or comments via http://bugs.opensuse.org/
16 #
17
18 # norootforbuild
19
20
21 Name:           mkinitrd
22 License:        GPL-2.0+
23 Group:          System/Base
24 #!BuildIgnore:  module-init-tools e2fsprogs udev reiserfs fop
25 BuildRequires:  asciidoc libxslt
26 Requires:       coreutils modutils util-linux grep gzip sed cpio udev file perl-Bootloader
27 Requires:       xz
28 %if 0%{?suse_version} > 1120
29 Requires:       sysvinit-tools sbin_init
30 %else
31 Requires:       sysvinit
32 %endif
33 AutoReqProv:    on
34 Version:        @@VERSION@@
35 Release:        3
36 Conflicts:      udev < 118
37 Requires:       dhcpcd
38 PreReq:         %fillup_prereq
39 Summary:        Creates an Initial RAM Disk Image for Preloading Modules
40 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
41 Source0:        mkinitrd.tar.bz2
42 # Note: the whole package is maintained in this git repository, please
43 # don't change it in the build service without sending the author a
44 # pull request or patch first. Otherwise, you risk that your changes will be
45 # silently overwritten by the next submission.
46 Url:            http://gitorious.org/opensuse/mkinitrd
47
48 %description
49 Mkinitrd creates file system images for use as initial RAM disk
50 (initrd) images.  These RAM disk images are often used to preload the
51 block device modules (SCSI or RAID) needed to access the root file
52 system.
53
54 In other words, generic kernels can be built without drivers for any
55 SCSI adapters that load the SCSI driver as a module.  Because the
56 kernel needs to read those modules, but in this case is not able to
57 address the SCSI adapter, an initial RAM disk is used.  The initial RAM
58 disk is loaded by the operating system loader (normally LILO) and is
59 available to the kernel as soon as the RAM disk is loaded.  The RAM
60 disk loads the proper SCSI adapter and allows the kernel to mount the
61 root file system.
62
63
64
65 Authors:
66 --------
67     Steffen Winterfeldt <wfeldt@suse.de>
68     Susanne Oberhauser <froh@suse.de>
69     Bernhard Kaindl <bk@suse.de>
70     Andreas Gruenbacher <agruen@suse.de>
71     Hannes Reinecke <hare@suse.de>
72     Alexander Graf <agraf@suse.de>
73
74 %prep
75 %setup
76
77 %build
78 %__cc $RPM_OPT_FLAGS -Wall -Os -o lib/mkinitrd/bin/run-init src/run-init.c
79 %__cc $RPM_OPT_FLAGS -Wall -Os -o lib/mkinitrd/bin/warpclock src/warpclock.c
80 make -C man
81 sed -i "s/@BUILD_DAY@/`env LC_ALL=C date -ud yesterday '+%Y%m%d'`/" sbin/mkinitrd
82 echo "Checking scripts:"
83 if ! bash -n sbin/mkinitrd; then
84     exit 1
85 fi
86 for script in scripts/*.sh; do
87     if ! bash -n $script; then
88         exit 1;
89         break;
90     fi
91 done
92
93 %install
94 mkdir -p $RPM_BUILD_ROOT/usr/share/mkinitrd
95 mkdir -p $RPM_BUILD_ROOT/lib/mkinitrd/dev
96 mkdir -p $RPM_BUILD_ROOT/lib/mkinitrd/scripts
97 mkdir -p $RPM_BUILD_ROOT/lib/mkinitrd/setup
98 mkdir -p $RPM_BUILD_ROOT/lib/mkinitrd/boot
99 mkdir -p $RPM_BUILD_ROOT/etc/init.d
100 mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
101 cp -a scripts/*.sh $RPM_BUILD_ROOT/lib/mkinitrd/scripts/
102 cp -a lib/mkinitrd/bin $RPM_BUILD_ROOT/lib/mkinitrd/bin
103 make -C sbin DESTDIR=$RPM_BUILD_ROOT install
104 chmod -R 755 $RPM_BUILD_ROOT/lib/mkinitrd
105 install -D -m 644 man/mkinitrd.5 $RPM_BUILD_ROOT/%{_mandir}/man5/mkinitrd.5
106 install -D -m 644 man/mkinitrd.8 $RPM_BUILD_ROOT/%{_mandir}/man8/mkinitrd.8
107 install -D -m 644 man/lsinitrd.8 $RPM_BUILD_ROOT/%{_mandir}/man8/lsinitrd.8
108 mkdir -p $RPM_BUILD_ROOT/etc/rpm
109 cat > $RPM_BUILD_ROOT/etc/rpm/macros.mkinitrd <<EOF
110 #
111 # Update links for mkinitrd scripts
112 #
113 %install_mkinitrd   /usr/bin/perl /sbin/mkinitrd_setup
114 EOF
115 install -m 755 etc/boot.loadmodules $RPM_BUILD_ROOT/etc/init.d/
116 install -m 755 etc/purge-kernels.init $RPM_BUILD_ROOT/etc/init.d/purge-kernels
117 install -m 644 etc/sysconfig.kernel-mkinitrd $RPM_BUILD_ROOT/var/adm/fillup-templates/
118
119 %post
120 %{fillup_only -an kernel}
121 %{insserv_force_if_yast /etc/init.d/boot.loadmodules}
122 %{fillup_and_insserv -f -Y purge-kernels}
123
124 %postun
125 %insserv_cleanup
126
127 %posttrans
128 /sbin/mkinitrd_setup
129
130 %files
131 %defattr(-,root,root)
132 %dir /etc/rpm
133 %dir /usr/share/mkinitrd
134 %dir /lib/mkinitrd
135 %dir /lib/mkinitrd/dev
136 %dir /lib/mkinitrd/bin
137 %dir /lib/mkinitrd/scripts
138 %dir /lib/mkinitrd/boot
139 %dir /lib/mkinitrd/setup
140 %config /etc/rpm/macros.mkinitrd
141 /etc/init.d/boot.loadmodules
142 /etc/init.d/purge-kernels
143 /lib/mkinitrd/scripts/*.sh
144 /lib/mkinitrd/bin/*
145 /bin/lsinitrd
146 /sbin/mkinitrd
147 /sbin/mkinitrd_setup
148 /sbin/module_upgrade
149 /sbin/installkernel
150 /sbin/purge-kernels
151 /var/adm/fillup-templates/sysconfig.kernel-%name
152 %doc %{_mandir}/man5/mkinitrd.5.gz
153 %doc %{_mandir}/man8/mkinitrd.8.gz
154 %doc %{_mandir}/man8/lsinitrd.8.gz
155
156 %changelog