Latest mingw64 packages.
[fedora-mingw.git] / mingw64-filesystem / mingw64-filesystem.spec
1 %define debug_package %{nil}
2
3 Name:           mingw64-filesystem
4 Version:        6
5 Release:        1%{?dist}
6 Summary:        MinGW base filesystem and environment
7
8 Group:          Development/Libraries
9 License:        GPLv2+
10 URL:            http://hg.et.redhat.com/misc/fedora-mingw--devel/
11 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
12 BuildArch:      noarch
13
14 Source0:        COPYING
15 Source1:        macros.mingw64
16 Source2:        mingw64.sh
17 #Source3:        mingw64.csh
18 Source4:        mingw64-find-requires.sh
19 Source5:        mingw64-find-provides.sh
20 Source6:        mingw64-scripts.sh
21 Source7:        mingw64-rpmlint.config
22
23 Requires:       setup
24 Requires:       rpm
25 Requires:       rpmlint >= 0.85-2
26
27 BuildRequires:  rpmlint >= 0.85-2
28
29 # Note about 'Provides: mingw64(foo.dll)'
30 # ------------------------------------------------------------
31 #
32 # We want to be able to build & install mingw64 libraries without
33 # necessarily needing to install wine.  (And certainly not needing to
34 # install Windows!)  There is no requirement to have wine installed in
35 # order to use the mingw toolchain to develop software (ie. to
36 # compile more stuff on top of it), so why require that?
37 #
38 # So for expediency, this base package provides the "missing" DLLs
39 # from Windows.  Another way to do it would be to exclude these
40 # proprietary DLLs in our find-requires checking script - essentially
41 # it comes out the same either way.
42 #
43 #Provides:       mingw64(gdi32.dll)
44
45
46 %description
47 This package contains the base filesystem layout, RPM macros and
48 environment for all Fedora MinGW packages.
49
50 This environment is maintained by the Fedora MinGW SIG at:
51
52   http://fedoraproject.org/wiki/SIGs/MinGW
53
54
55 %prep
56 %setup -q -c -T
57 cp %{SOURCE0} COPYING
58 sed 's/@VERSION@/%{version}/' < %{SOURCE4} > mingw64-find-requires.sh
59
60
61 %build
62 # nothing
63
64
65 %install
66 rm -rf $RPM_BUILD_ROOT
67
68 mkdir -p $RPM_BUILD_ROOT
69
70 mkdir -p $RPM_BUILD_ROOT%{_libexecdir}
71 install -m 755 %{SOURCE6} $RPM_BUILD_ROOT%{_libexecdir}/mingw64-scripts
72
73 mkdir -p $RPM_BUILD_ROOT%{_bindir}
74 pushd $RPM_BUILD_ROOT%{_bindir}
75 for i in mingw64-configure mingw64-make; do
76   ln -s %{_libexecdir}/mingw64-scripts $i
77 done
78 popd
79
80 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
81 install -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/
82 #install -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d/
83
84 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rpm
85 install -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.mingw64
86
87 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rpmlint
88 install -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/rpmlint/
89
90 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32
91
92 # GCC requires these directories, even though they contain links
93 # to binaries which are also installed in /usr/bin etc.  These
94 # contain Fedora native binaries.
95 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/bin
96 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/lib
97
98 # The system root which will contain Windows native binaries
99 # and Windows-specific header files, pkgconfig, etc.
100 # NOTE different from mingw32.
101 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/sys-root/x86_64-pc-mingw32
102 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/sys-root/x86_64-pc-mingw32/bin
103 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/sys-root/x86_64-pc-mingw32/include
104 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/sys-root/x86_64-pc-mingw32/include/sys
105 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/sys-root/x86_64-pc-mingw32/lib
106 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/sys-root/x86_64-pc-mingw32/lib/pkgconfig
107
108 # We don't normally package manual pages and info files, except
109 # where those are not supplied by a Fedora native package.  So we
110 # need to create the directories.
111 #
112 # Note that some packages try to install stuff in
113 #   /usr/x86_64-pc-mingw32/sys-root/man and
114 #   /usr/x86_64-pc-mingw32/sys-root/doc
115 # but those are both packaging bugs.
116 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/sys-root/share
117 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/sys-root/share/doc
118 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/sys-root/share/info
119 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/sys-root/share/man
120 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/sys-root/share/man/man{1,2,3,4,5,6,7,8,l,n}
121 mkdir -p $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/sys-root/share/aclocal
122
123
124 # This is needed because of some problems with upstream gcc and
125 # bad mingw32 patches.
126 pushd $RPM_BUILD_ROOT%{_prefix}/x86_64-pc-mingw32/sys-root
127 ln -s x86_64-pc-mingw32 mingw
128 popd
129
130 # NB. NOT _libdir
131 mkdir -p $RPM_BUILD_ROOT/usr/lib/rpm
132 install -m 0755 mingw64-find-requires.sh $RPM_BUILD_ROOT/usr/lib/rpm
133 install -m 0755 %{SOURCE5} $RPM_BUILD_ROOT/usr/lib/rpm
134
135
136 %clean
137 rm -rf $RPM_BUILD_ROOT
138
139
140 %files
141 %defattr(-,root,root,-)
142 %doc COPYING
143 %config(noreplace) %{_sysconfdir}/rpm/macros.mingw64
144 %config(noreplace) %{_sysconfdir}/profile.d/mingw64.sh
145 #%config(noreplace) %{_sysconfdir}/profile.d/mingw64.csh
146 %config(noreplace) %{_sysconfdir}/rpmlint/mingw64-rpmlint.config
147 %{_bindir}/mingw64-configure
148 %{_bindir}/mingw64-make
149 %{_libexecdir}/mingw64-scripts
150 %{_prefix}/x86_64-pc-mingw32/
151 /usr/lib/rpm/mingw64-*
152
153
154 %changelog
155 * Wed Feb 11 2009 Richard W.M. Jones <rjones@redhat.com> - 6-1
156 - Start mingw64 development.
157
158 * Sun Feb  1 2009 Richard W.M. Jones <rjones@redhat.com> - 46-1
159 - Unset PKG_CONFIG_PATH because /usr/lib/rpm/macros sets it (Erik van
160   Pienbroek).
161
162 * Wed Jan 28 2009 Richard W.M. Jones <rjones@redhat.com> - 45-1
163 - Use PKG_CONFIG_LIBDIR instead of PKG_CONFIG_PATH so that native pkgconfig
164   is never searched.
165
166 * Mon Jan 26 2009 Richard W.M. Jones <rjones@redhat.com> - 44-1
167 - Install rpmlint overrides file to suppress some rpmlint warnings.
168
169 * Sat Jan 24 2009 Richard W.M. Jones <rjones@redhat.com> - 43-6
170 - Don't claim C++ compiler exists if it's not installed, as this
171   breaks autoconf and (in particular) libtool.
172
173 * Wed Jan 14 2009 Richard W.M. Jones <rjones@redhat.com> - 42-1
174 - Add pseudo-provides secur32.dll
175
176 * Wed Dec 17 2008 Levente Farkas <lfarkas@lfarkas.org> - 41-1
177 - Re-add mingw32-make
178
179 * Sat Dec  6 2008 Levente Farkas <lfarkas@lfarkas.org> - 40-2
180 - Rewrite mingw32-scripts to run in the current shell
181 - (Re-add mingw32-make) - Removed by RWMJ.
182 - Add mingw32-env to mingw32.sh
183
184 * Mon Nov 24 2008 Richard W.M. Jones <rjones@redhat.com> - 39-3
185 - Unify mingw32-filesystem packages from all three branches again, and test.
186 - Fix mingw32-scripts so it can handle extra parameters correctly.
187 - Remove mingw32-env & mingw32-make since neither of them actually work.
188
189 * Sun Nov 23 2008 Richard Jones <rjones@redhat.com> - 38-1
190 - Added mingw32(glut32.dll).
191
192 * Wed Nov 19 2008 Richard Jones <rjones@redhat.com> - 37-1
193 - Revert part of the 36-1 patch.  --build option to configure was wrong.
194
195 * Wed Nov 19 2008 Richard Jones <rjones@redhat.com> - 36-1
196 - Greatly improved macros (Levente Farkas).
197 - Added -mms-bitfields.
198
199 * Thu Nov 13 2008 Richard Jones <rjones@redhat.com> - 35-1
200 - Added mingw32(wldap32.dll) pseudo-provides.
201
202 * Wed Oct 29 2008 Richard Jones <rjones@redhat.com> - 34-1
203 - Set --prefix correctly.
204
205 * Wed Oct 29 2008 Richard Jones <rjones@redhat.com> - 33-1
206 - Remove mingw32.{sh,csh} which are unused.
207
208 * Mon Oct 27 2008 Richard Jones <rjones@redhat.com> - 32-1
209 - Add mingw32-configure script.
210
211 * Mon Oct 27 2008 Richard Jones <rjones@redhat.com> - 31-1
212 - Update the spec file with explanation of the 'Provides: mingw32(...)'
213   lines for Windows system DLLs.
214
215 * Mon Oct  6 2008 Richard Jones <rjones@redhat.com> - 30-1
216 - Added _mingw32_cxx.
217
218 * Thu Sep 25 2008 Richard Jones <rjones@redhat.com> - 29-1
219 - Added _mingw32_as, _mingw32_dlltool, _mingw32_windres.
220
221 * Wed Sep 24 2008 Richard W.M. Jones <rjones@redhat.com> - 27-1
222 - Begin the grand renaming of mingw -> mingw32.
223 - Added mingw32(mscoree.dll).
224
225 * Sun Sep 21 2008 Richard W.M. Jones <rjones@redhat.com> - 25-1
226 - Add shared aclocal directory.
227
228 * Sun Sep 21 2008 Richard W.M. Jones <rjones@redhat.com> - 24-1
229 - Remove mingw-defs, since no longer used.
230 - Add _mingw_infodir.
231
232 * Thu Sep 11 2008 Daniel P. Berrange <berrange@redhat.com> - 23-1
233 - Add macros for find-provides/requires scripts
234
235 * Wed Sep 10 2008 Richard W.M. Jones <rjones@redhat.com> - 22-1
236 - Windows provides OLE32.DLL.
237
238 * Wed Sep 10 2008 Richard W.M. Jones <rjones@redhat.com> - 21-1
239 - Allow '.' in dll names for find-requires
240 - Windows provides GDI32.DLL.
241
242 * Fri Sep  5 2008 Richard W.M. Jones <rjones@redhat.com> - 20-1
243 - On 64 bit install in /usr/lib/rpm always.
244
245 * Thu Sep  4 2008 Richard W.M. Jones <rjones@redhat.com> - 19-1
246 - 'user32.dll' is provided by Windows.
247 - Allow '-' in DLL names.
248 - More accurate detection of DLLs in requires/provides scripts.
249
250 * Mon Sep  4 2008 Richard W.M. Jones <rjones@redhat.com> - 17-1
251 - Automatically add mingw-filesystem and mingw-runtime requires.
252 - Add --prefix to _mingw_configure macro.
253 - Three backslashes required on each continuation line in RPM macros.
254
255 * Mon Sep  4 2008 Richard W.M. Jones <rjones@redhat.com> - 14-1
256 - Fix path to mingw-find-requires/provides scripts.
257
258 * Mon Sep  4 2008 Richard W.M. Jones <rjones@redhat.com> - 12-1
259 - Put CFLAGS on a single line to avoid problems in some configure scripts.
260
261 * Mon Sep  4 2008 Richard W.M. Jones <rjones@redhat.com> - 10-1
262 - Provides certain base Windows DLLs (not literally).
263
264 * Mon Sep  4 2008 Richard W.M. Jones <rjones@redhat.com> - 9-1
265 - Include RPM dependency generators and definitions.
266
267 * Mon Sep  4 2008 Richard W.M. Jones <rjones@redhat.com> - 4-1
268 - Add _mingw_cc/cflags/etc. and _mingw_configure macros.
269
270 * Mon Sep  4 2008 Richard W.M. Jones <rjones@redhat.com> - 3-1
271 - Add _mingw_host macro.
272
273 * Mon Sep  4 2008 Richard W.M. Jones <rjones@redhat.com> - 2-1
274 - Add _mingw_sysroot macro.
275 - Add _mingw_target macro.
276
277 * Mon Sep  4 2008 Richard W.M. Jones <rjones@redhat.com> - 1-1
278 - Basic filesystem layout.