1 |
# Please update release notes: |
2 |
# make -C SOURCES release-notes.{html,txt} |
3 |
# |
4 |
|
5 |
%define am_i_cauldron 1 |
6 |
%if %am_i_cauldron |
7 |
%define distrib Cauldron |
8 |
%else |
9 |
%define distrib Official |
10 |
%endif |
11 |
%define version 2 |
12 |
%define rel 0.1 |
13 |
%define distname cauldron |
14 |
%define distsuffix .mga |
15 |
%define distribution Mageia |
16 |
%define lc_distro %(echo %{distribution} | tr "A-Z" "a-z") |
17 |
|
18 |
%define product_vendor Mageia.Org |
19 |
%define product_distribution %distribution |
20 |
%define product_type Basic |
21 |
%if %am_i_cauldron |
22 |
%define product_version %distrib |
23 |
%else |
24 |
%define product_version %version |
25 |
%endif |
26 |
%if %am_i_cauldron |
27 |
%define product_branch Devel |
28 |
%else |
29 |
%define product_branch Official |
30 |
%endif |
31 |
%define product_release 1 |
32 |
%define product_arch %{_target_cpu} |
33 |
|
34 |
%define product_id_base vendor=%product_vendor,distribution=%product_distribution,type=%product_type,version=%product_version,branch=%product_branch,release=%product_release,arch=%product_arch |
35 |
|
36 |
%if %am_i_cauldron |
37 |
%define unstable %%_with_unstable --with-unstable |
38 |
%endif |
39 |
|
40 |
# The distro release, what is written on box |
41 |
%define distro_release %version |
42 |
|
43 |
# The distro branch: Cauldron or Official |
44 |
%define distro_branch %distrib |
45 |
|
46 |
# The distro arch, notice: using %_target_cpu is bad |
47 |
# elsewhere because this depend of the config of the packager |
48 |
# _target_cpu => package build for |
49 |
# distro_arch => the distribution we are using |
50 |
%define distro_arch %_target_cpu |
51 |
|
52 |
# To be coherent with %distro_arch I provide os too |
53 |
# be I wonder it will be linux for a long time |
54 |
%define distro_os %_target_os |
55 |
|
56 |
%define realversion %version |
57 |
%define mgaver %(echo %version | sed 's/\\.//') |
58 |
|
59 |
Summary: %{distribution} release file |
60 |
Name: %{lc_distro}-release |
61 |
Version: %version |
62 |
Release: %mkrel %rel |
63 |
License: GPL |
64 |
URL: http://www.mageia.org/ |
65 |
Group: System/Configuration/Other |
66 |
Source3: CREDITS |
67 |
# edited lynx -dump of wiki: |
68 |
Source4: release-notes.txt |
69 |
Source5: release-notes.html |
70 |
Source6: ldap-names.py |
71 |
BuildRoot: %{_tmppath}/%{name}-root |
72 |
|
73 |
%description |
74 |
%{distribution} release file. |
75 |
|
76 |
%package common |
77 |
Summary: %{distribution} release common files |
78 |
Group: System/Configuration/Other |
79 |
Requires: lsb-release |
80 |
Conflicts: %name < %version-%release |
81 |
Obsoletes: %name < %version-%release |
82 |
Obsoletes: mandrake-release mandrakelinux-release mandriva-release |
83 |
Obsoletes: mandriva-release-common |
84 |
Obsoletes: rawhide-release redhat-release |
85 |
Obsoletes: mandriva-doc-common |
86 |
|
87 |
# cf mdvbz#32631 |
88 |
Provides: arch(%_target_cpu) |
89 |
Provides: %arch_tagged %{lc_distro}-release-common |
90 |
|
91 |
%description common |
92 |
Common files for %{distribution} release packages. |
93 |
|
94 |
%define release_package(s) \ |
95 |
%{-s:%package %1} \ |
96 |
Summary: %{distribution} release file%{?1: for %1} \ |
97 |
Group: System/Configuration/Other \ |
98 |
Requires: %{arch_tagged %{lc_distro}-release-common} \ |
99 |
Requires(post): coreutils \ |
100 |
Provides: redhat-release rawhide-release mandrake-release mandrakelinux-release mandriva-release\ |
101 |
Provides: %name = %version-%release \ |
102 |
|
103 |
%define release_descr(s) \ |
104 |
%description %{-s:%1} \ |
105 |
%{distribution} release file for %1 flavor. \ |
106 |
|
107 |
|
108 |
%define release_post(s) \ |
109 |
%post %{-s:%1} \ |
110 |
ln -fs product.id.%1 /etc/product.id |
111 |
|
112 |
|
113 |
%define release_install(s) \ |
114 |
cat > %buildroot/etc/product.id.%{1} << EOF \ |
115 |
%{product_id_base},product=%1\ |
116 |
EOF\ |
117 |
\ |
118 |
mkdir -p %buildroot%_sys_macros_dir \ |
119 |
cat > %buildroot%_sys_macros_dir/%{1}.macros <<EOF \ |
120 |
%%distribution %distribution\ |
121 |
%%mandriva_release %distro_release\ |
122 |
%%distro_release %distro_release\ |
123 |
%%distro_branch %distro_branch\ |
124 |
%%distro_arch %distro_arch\ |
125 |
%%distro_os %distro_os\ |
126 |
%%distro_class %%(. %_sysconfdir/sysconfig/system; echo \\\$META_CLASS)\ |
127 |
%%mdkver %mgaver\ |
128 |
%%mdvver %mgaver\ |
129 |
%%mgaver %mgaver\ |
130 |
%%distsuffix %distsuffix\ |
131 |
\ |
132 |
# productid variable\ |
133 |
%%product_id %{product_id_base},product=%{1}\ |
134 |
\ |
135 |
%%product_vendor %product_vendor\ |
136 |
%%product_distribution %product_distribution\ |
137 |
%%product_type %product_type\ |
138 |
%%product_version %product_version\ |
139 |
%%product_branch %product_branch\ |
140 |
%%product_release %product_release\ |
141 |
%%product_arch %product_arch\ |
142 |
%%product_product %1\ |
143 |
\ |
144 |
%{?unstable}\ |
145 |
EOF\ |
146 |
\ |
147 |
mkdir -p %buildroot%_sysconfdir/sysconfig \ |
148 |
cat > %buildroot%_sysconfdir/sysconfig/system <<EOF \ |
149 |
SECURITY=3\ |
150 |
CLASS=beginner\ |
151 |
LIBSAFE=no\ |
152 |
META_CLASS=download\ |
153 |
EOF\ |
154 |
|
155 |
|
156 |
%release_package -s Default |
157 |
Obsoletes: mandriva-release-Flash mandriva-release-Free mandriva-release-Mini mandriva-release-One mandriva-release-Powerpack |
158 |
|
159 |
%release_descr -s Default |
160 |
|
161 |
%prep |
162 |
#%setup -q -n %{name} |
163 |
cp -a %SOURCE3 CREDITS |
164 |
cp -a %SOURCE4 release-notes.txt |
165 |
cp -a %SOURCE5 release-notes.html |
166 |
cat > README.urpmi <<EOF |
167 |
This is %{distribution} %version |
168 |
|
169 |
You can find the release notes in %_docdir/%name-common/release-notes.txt |
170 |
EOF |
171 |
|
172 |
# check that CREDITS file is in UTF-8, fail otherwise |
173 |
if iconv -f utf-8 -t utf-8 < CREDITS > /dev/null |
174 |
then |
175 |
true |
176 |
else |
177 |
echo "the CREDITS file *MUST* be encoded in UTF-8" |
178 |
echo "please fix it before continuing" |
179 |
false |
180 |
fi |
181 |
|
182 |
%install |
183 |
rm -rf $RPM_BUILD_ROOT |
184 |
mkdir -p %buildroot/etc |
185 |
echo "%{distribution} release %{realversion} (%{distrib}) for %{_target_cpu}" > $RPM_BUILD_ROOT/etc/%{lc_distro}-release |
186 |
ln -sf %{lc_distro}-release $RPM_BUILD_ROOT/etc/redhat-release |
187 |
ln -sf %{lc_distro}-release $RPM_BUILD_ROOT/etc/mandrake-release |
188 |
ln -sf %{lc_distro}-release $RPM_BUILD_ROOT/etc/mandrakelinux-release |
189 |
ln -sf %{lc_distro}-release $RPM_BUILD_ROOT/etc/mandriva-release |
190 |
ln -sf %{lc_distro}-release $RPM_BUILD_ROOT/etc/release |
191 |
echo "%{version} %{rel} %{distname}" > $RPM_BUILD_ROOT/etc/version |
192 |
|
193 |
mkdir -p %buildroot%_sysconfdir/profile.d |
194 |
cat > %buildroot%_sysconfdir/profile.d/10%{lc_distro}-release.csh<<'EOF' |
195 |
if ( -r /etc/sysconfig/system ) then |
196 |
eval `sed 's|^#.*||' /etc/sysconfig/system | sed 's|\([^=]*\)=\([^=]*\)|set \1=\2|g' | sed 's|$|;|' ` |
197 |
setenv META_CLASS $META_CLASS |
198 |
else |
199 |
setenv META_CLASS unknown |
200 |
endif |
201 |
EOF |
202 |
|
203 |
cat > %buildroot%_sysconfdir/profile.d/10%{lc_distro}-release.sh<<'EOF' |
204 |
if [ -r /etc/sysconfig/system ]; then |
205 |
. /etc/sysconfig/system |
206 |
export META_CLASS |
207 |
else |
208 |
export META_CLASS=unknown |
209 |
fi |
210 |
EOF |
211 |
|
212 |
%release_install Default |
213 |
|
214 |
touch %buildroot%_sysconfdir/product.id |
215 |
|
216 |
|
217 |
%check |
218 |
%if %am_i_cauldron |
219 |
case %release in |
220 |
0.*) ;; |
221 |
*) |
222 |
echo "Cauldron distro should have this package with release < %{mkrel 1}" |
223 |
exit 1 |
224 |
;; |
225 |
esac |
226 |
%endif |
227 |
|
228 |
%clean |
229 |
rm -rf $RPM_BUILD_ROOT |
230 |
|
231 |
%release_post -s Default |
232 |
|
233 |
%define release_files(s:) \ |
234 |
%files %{-s:%{-s*}} \ |
235 |
%defattr(-,root,root) \ |
236 |
%_sys_macros_dir/%{1}.macros \ |
237 |
/etc/product.id.%1 \ |
238 |
%ghost /etc/product.id\ |
239 |
\ |
240 |
|
241 |
%release_files -s Default Default |
242 |
|
243 |
%files common |
244 |
%defattr(-,root,root) |
245 |
%doc CREDITS release-notes.* |
246 |
/etc/mandrake-release |
247 |
/etc/mandrakelinux-release |
248 |
/etc/mandriva-release |
249 |
/etc/redhat-release |
250 |
/etc/%{lc_distro}-release |
251 |
/etc/release |
252 |
/etc/version |
253 |
/etc/profile.d/10%{lc_distro}-release.sh |
254 |
/etc/profile.d/10%{lc_distro}-release.csh |
255 |
%config(noreplace) %verify(not md5 size mtime) %_sysconfdir/sysconfig/system |