summaryrefslogtreecommitdiffstats
path: root/tools/ghc-rpm-macros/ghc-rpm-macros.spec
blob: daa74ae95dad0d95485ca456df609dd4a00a61da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
%global debug_package %{nil}

%global macros_file %{_sysconfdir}/rpm/macros.ghc

# uncomment to bootstrap without hscolour
#%%global without_hscolour 1

Name:           ghc-rpm-macros
Version:        0.15.15.3
Release:        1%{?dist}
Summary:        RPM macros for building packages for GHC

Group:          Development/Libraries
License:        GPLv3
URL:            https://fedoraproject.org/wiki/Packaging:Haskell

# This is a Fedora maintained package, originally made for
# the distribution.  Hence the source is currently only available
# from this package.  But it could be hosted on fedorahosted.org
# for example if other rpm distros would prefer that.
Source0:        ghc-rpm-macros.ghc
Source1:        COPYING
Source2:        AUTHORS
Source3:        ghc-deps.sh
Source4:        cabal-tweak-dep-ver
Source5:        cabal-tweak-flag
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Requires:       redhat-rpm-config
%if %{undefined without_hscolour}
Requires:       hscolour
%endif

%description
A set of macros for building GHC packages following the Haskell Guidelines
of the Fedora Haskell SIG.  ghc needs to be installed in order to make use of
these macros.


%prep
%setup -c -T
cp %{SOURCE1} %{SOURCE2} .


%build
echo no build stage needed


%install
rm -rf $RPM_BUILD_ROOT

install -p -D -m 0644 %{SOURCE0} ${RPM_BUILD_ROOT}/%{macros_file}

install -p -D -m 0755 %{SOURCE3} %{buildroot}/%{_prefix}/lib/rpm/ghc-deps.sh

install -p -D -m 0755 %{SOURCE4} %{buildroot}/%{_bindir}/cabal-tweak-dep-ver
install -p -D -m 0755 %{SOURCE5} %{buildroot}/%{_bindir}/cabal-tweak-flag

# this is why this package is now arch-dependent:
# turn off shared libs and dynamic linking on secondary archs
%ifnarch %{ix86} x86_64
cat >> %{buildroot}/%{macros_file} <<EOF

# shared libraries are only supported on primary intel archs
%%ghc_without_dynamic 1
%%ghc_without_shared 1
EOF
%endif


%clean
rm -rf $RPM_BUILD_ROOT


%files
%defattr(-,root,root,-)
%doc COPYING AUTHORS
%{macros_file}
%{_prefix}/lib/rpm/ghc-deps.sh
%{_bindir}/cabal-tweak-dep-ver
%{_bindir}/cabal-tweak-flag


%changelog
* Mon Jan 13 2014 Jens Petersen <petersen@redhat.com> - 0.15.15.3-1
- enable shared subpackages and dynamic linking on intel archs

* Fri Dec 27 2013 Jens Petersen <petersen@redhat.com> - 0.15.15.2-1
- drop the base lib pkg requires properly

* Thu Dec 26 2013 Jens Petersen <petersen@redhat.com> - 0.15.15.1-1
- rebase from 0.10.61.1 to 0.15.16 from epel6
- disable shared libraries and dynamic linking
  since ghc rts fails to dyn link
- no base library packages
- substitute _rpmconfigdir since not defined in el5 rpm
- restore buildroot define and cleaning

* Fri Oct 25 2013 Jens Petersen <petersen@redhat.com>
- add ghcpkgdocdir

* Mon Jul 22 2013 Jens Petersen <petersen@redhat.com> - 0.15.15-1
- include docdir in library base package also when no shared library

* Thu Jul 11 2013 Jens Petersen <petersen@redhat.com> - 0.15.14-1
- create lib base package also when ghc_without_shared is set (#983137)
  and other ghc_without_shared cleanup

* Sat Jul  6 2013 Jens Petersen <petersen@redhat.com> - 0.15.13-1
- restore docdir autopackaging for f17 and el6

* Fri Jun 21 2013 Jens Petersen <petersen@redhat.com> - 0.15.12-1
- ghc_fix_dynamic_rpath: do not assume first RPATH
- packaging for without_shared is now done the same way as shared
  to make non-shared arch packages same as shared ones:
  so all archs will now have base library binary packages
- remove deprecated ghc_exclude_docdir
- Remove %%config from %%{_sysconfdir}/rpm/macros.*
  (https://fedorahosted.org/fpc/ticket/259).
- only add lib pkgdir to filelist if it exists
  to fix haskell-platform build on secondary archs (no shared libs)

* Tue Jan 22 2013 Jens Petersen <petersen@redhat.com> - 0.15.11-1
- simplify cabal-tweak-flag script to take one flag value
- new ghc_fix_dynamic_rpath macro for cleaning up package executables
  linked against their own libraries

* Sat Jan 19 2013 Jens Petersen <petersen@redhat.com> - 0.15.10-1
- be more careful about library pkgdir ownership (#893777)
- add cabal-tweak-flag script for toggling flag default

* Thu Oct 25 2012 Jens Petersen <petersen@redhat.com> - 0.15.9-2
- BR redhat-rpm-config instead of ghc-rpm-macros
- no longer set without_hscolour in macros.ghc for bootstrapping

* Tue Oct  9 2012 Jens Petersen <petersen@redhat.com> - 0.15.9-1
- "cabal haddock" needs --html option with --hoogle to output html

* Thu Sep 20 2012 Jens Petersen <petersen@redhat.com> - 0.15.8-1
- ghc-rpm-macros now requires hscolour so packages no longer need to BR it
- this can be disabled for bootstrapping by setting without_hscolour
- make haddock build hoogle files
- ghc_lib_build no longer builds redundant ghci .o library files

* Wed Jul 11 2012 Jens Petersen <petersen@redhat.com> - 0.15.7-1
- let ghc_bin_install take an arg to disable implicit stripping for subpackages
- fix doc handling of subpackages for ghc_without_shared
- without ghc_exclude_docdir include doc dir also for subpackages
- rename ghc_binlib_package to ghc_lib_subpackage
- add ghc_lib_build_without_haddock
- no longer drop into package dirs when subpackaging with ghc_lib_build and
  ghc_lib_install

* Fri Jun 22 2012 Jens Petersen <petersen@redhat.com> - 0.15.6.1-1
- cabal-tweak-dep-ver: be careful only to match complete dep name and
  do not match beyond ","

* Fri Jun 22 2012 Jens Petersen <petersen@redhat.com> - 0.15.6-1
- cabal-tweak-dep-ver: new script to tweak depends version bounds in .cabal
  from ghc-rpm-macros-0.95.5
- ghc-dep.sh: only use buildroot package.conf.d if it exists
- ghc-deps.sh: look in buildroot package.conf.d for program deps
- add a meta-package option to ghc_devel_package and use in ghc_devel_requires
- allow ghc_description, ghc_devel_description, ghc_devel_post_postun
  to take args
- support meta packages like haskell-platform without base lib files
- add shell variable cabal_configure_extra_options to cabal_configure for
  local configuration
- do not provide prof when without_prof set

* Thu Feb 23 2012 Jens Petersen <petersen@redhat.com> - 0.15.5-1
- fix handling of devel docdir for non-shared builds
- simplify ghc_bootstrap

* Thu Jan 19 2012 Jens Petersen <petersen@redhat.com> - 0.15.4-1
- allow dynamic linking of Setup with ghc_without_shared set

* Fri Jan  6 2012 Jens Petersen <petersen@redhat.com> - 0.15.3-1
- new ghc_add_basepkg_file to add a path to base lib package filelist

* Wed Dec 28 2011 Jens Petersen <petersen@redhat.com> - 0.15.2-1
- add ghc_devel_post_postun to help koji/mock with new macros

* Tue Dec 27 2011 Jens Petersen <petersen@redhat.com> - 0.15.1-1
- add ghc_package, ghc_description, ghc_devel_package, ghc_devel_description

* Tue Dec 27 2011 Jens Petersen <petersen@redhat.com> - 0.15-1
- new ghc_files wrapper macro for files which takes base doc files as args
  and uses new ghc_shared_files and ghc_devel_files macros
- when building for non-shared archs move installed docfiles to devel docdir

* Fri Dec  2 2011 Jens Petersen <petersen@redhat.com> - 0.14.3-1
- do not use ghc user config by default when compiling Setup
- do not setup hscolour if without_hscolour defined

* Thu Nov 17 2011 Jens Petersen <petersen@redhat.com> - 0.10.61-1
- test for HsColour directly when running "cabal haddock" instead of
  checking for without_haddock

* Fri Sep 30 2011 Jens Petersen <petersen@redhat.com> - 0.10.60-1
- fix devel subpackage's prof and doc obsoletes and provides versions
  for multiple lib packages like ghc (reported by Henrik Nordström)

* Tue Sep 13 2011 Jens Petersen <petersen@redhat.com> - 0.10.59-1
- do not setup ghc-deps.sh when ghc_bootstrapping
- add ghc_test build config
- drop redundant defattr from filelists
- move dependency generator setup from ghc_package_devel to ghc_lib_install
- ghc_bootstrap is now a macro providing bootstrap config
- add ghc_check_bootstrap

* Mon Jun 27 2011 Jens Petersen <petersen@redhat.com> - 0.10.58-1
- add requires for redhat-rpm-config for ghc_arches

* Wed Jun 22 2011 Jens Petersen <petersen@redhat.com> - 0.10.57-1
- ghc-deps.sh: also ignore base-3 since it is part of ghc-base

* Mon Jun 13 2011 Jens Petersen <petersen@redhat.com> - 0.10.56-1
- merge prof subpackages into devel to simplify packaging
- condition --htmldir on pkg_name

* Mon May  9 2011 Jens Petersen <petersen@redhat.com> - 0.10.55-1
- include ghc_pkg_c_deps even when -c option used

* Mon May  9 2011 Jens Petersen <petersen@redhat.com> - 0.10.54-1
- ghc-deps.sh: ignore private ghc lib deps
- macros.ghc: drop ghc-prof requires from ghc_prof_requires

* Sat May  7 2011 Jens Petersen <petersen@redhat.com> - 0.10.53-1
- backport ghc-deps.sh rpm dependency script for automatic versioned
  library dependencies (without hashes)
- drop ghc_pkg_deps from ghc_package_devel and ghc_package_prof since
  ghc-deps.sh generates better inter-package dependencies already

* Wed Mar 16 2011 Jens Petersen <petersen@redhat.com> - 0.10.52-1
- backport ghc fixes and secondary arch support from 0.11.12:
- add ghc_pkg_obsoletes to binlib base lib package too
- add docdir when subpackaging packages too
- this package is now arch-dependent
- rename without_shared to ghc_without_shared and without_dynamic
  to ghc_without_dynamic so that they can be globally defined for
  secondary archs without shared libs
- use %%undefined macro
- disable debug_package in ghc_bin_build and ghc_lib_build
- set ghc_without_shared and ghc_without_dynamic on secondary
  (ie non main intel archs)
- disable debuginfo for self
- only link Setup dynamically if without_shared and without_dynamic not set
- add cabal_configure_options to pass extra options to cabal_configure

* Fri Feb  4 2011 Jens Petersen <petersen@redhat.com> - 0.10.51-1
- ghc_binlib_package's -x option does not take an arg

* Sat Jan 29 2011 Jens Petersen <petersen@redhat.com> - 0.10.50-1
- merge subpackaging support from 0.11.4:
- drop ghcdocdir and ghcpkgdir
- new ghclibdocdir
- improve prof summary and description
- add without_prof and without_haddock option macros
- add ghc_binlib_package option to exclude package from ghc_packages_list
- condition lib base package additional description for srpm
- use buildroot instead of RPM_BUILD_ROOT
- rename ghcpkgbasedir to ghclibdir
- move name and version macro options (-n and -v) to optional args
- ghc_gen_filelists, ghc_lib_build, ghc_lib_install, cabal_pkg_conf
  now take optional "[name] [version]" args
- drop with_devhelp since --html-help option gone from haddock-2.8.0
- rename ghc_requires to ghc_devel_requires
- drop ghc_doc_requires

* Wed Dec 29 2010 Jens Petersen <petersen@redhat.com> - 0.8.3-1
- revert disabling debug_package, since with redhat-rpm-config installed
  the behaviour depended on the position of ghc_lib_package in the spec file
  (reported by narasim)

* Thu Sep 30 2010 Jens Petersen <petersen@redhat.com> - 0.8.2-1
- add ghc_pkg_obsoletes for obsoleting old packages
- always obsolete -doc packages, but keep -o for now for backward compatibility
- disable debuginfo by default
- make shared and hscolour default
- use without_shared and without_hscolour to disable them
- fix without_shared build so it actually works
- use ghcpkgbasedir

* Fri Jul 16 2010 Jens Petersen <petersen@redhat.com> - 0.8.1-1
- fix ghc_strip_dynlinked when no dynlinked files
- devel should provide doc also when not obsoleting

* Fri Jul 16 2010 Jens Petersen <petersen@redhat.com> - 0.8.0-1
- merge -doc into -devel and provide -o obsoletes doc subpackage option

* Mon Jun 28 2010 Jens Petersen <petersen@redhat.com> - 0.7.1-1
- support hscolour'ing of src from haddock
- really remove redundant summary and description option flags

* Sat Jun 26 2010 Jens Petersen <petersen@redhat.com> - 0.7.0-1
- new ghc_bin_build, ghc_bin_install, ghc_lib_build, ghc_lib_install

* Thu Jun 24 2010 Jens Petersen <petersen@redhat.com> - 0.6.2-1
- a couple more fallback summary tweaks

* Thu Jun 24 2010 Jens Petersen <petersen@redhat.com> - 0.6.1-1
- drop the summary -s and description -d package options since rpm does not
  seem to allow white\ space in macro option args anyway

* Wed Jun 23 2010 Jens Petersen <petersen@redhat.com> - 0.6.0-1
- make ghc_strip_dynlinked conditional on no debug_package

* Wed Jun 23 2010 Jens Petersen <petersen@redhat.com> - 0.5.9-1
- replace ghc_strip_shared with ghc_strip_dynlinked

* Sun Jun 20 2010 Jens Petersen <petersen@redhat.com> - 0.5.8-1
- add ghc_strip_shared to strip shared libraries

* Sun Jun 20 2010 Jens Petersen <petersen@redhat.com> - 0.5.7-1
- add comments over macros
- drop unused cabal_makefile

* Mon Apr 12 2010 Jens Petersen <petersen@redhat.com> - 0.5.6-1
- drop unused ghc_pkg_ver macro
- add ghc_pkg_recache macro

* Fri Jan 15 2010 Jens Petersen <petersen@redhat.com> - 0.5.5-1
- drop optional 2nd version arg from ghcdocdir, ghcpkgdir, and
  ghc_gen_filelists: multiversion subpackages are not supported
- add ghcpkgbasedir
- bring back some shared conditions which were dropped temporarily
- test for ghcpkgdir and ghcdocdir in ghc_gen_filelists
- allow optional pkgname arg for cabal_pkg_conf
- can now package gtk2hs

* Mon Jan 11 2010 Jens Petersen <petersen@redhat.com> - 0.5.4-1
- use -v in ghc_requires and ghc_prof_requires for version

* Mon Jan 11 2010 Jens Petersen <petersen@redhat.com> - 0.5.3-1
- drop "Library for" from base lib summary

* Mon Jan 11 2010 Jens Petersen <petersen@redhat.com> - 0.5.2-1
- use -n in ghc_requires and ghc_prof_requires for when no pkg_name

* Mon Jan 11 2010 Jens Petersen <petersen@redhat.com> - 0.5.1-1
- add ghcdocbasedir
- revert ghcdocdir to match upstream ghc
- ghcdocdir and ghcpkgdir now take optional name version args
- update ghc_gen_filelists to new optional name version args
- handle docdir in ghc_gen_filelists
- ghc_reindex_haddock uses ghcdocbasedir
- summary and description options to ghc_binlib_package, ghc_package_devel,
  ghc_package_doc, and ghc_package_prof

* Sun Jan 10 2010 Jens Petersen <petersen@redhat.com> - 0.5.0-1
- pkg_name must be set now for binlib packages too
- new ghc_lib_package and ghc_binlib_package macros make packaging too easy
- ghc_package_devel, ghc_package_doc, and ghc_package_prof helper macros
- ghc_gen_filelists now defaults to ghc-%%{pkg_name}
- add dynamic bcond to cabal_configure instead of cabal_configure_dynamic

* Thu Dec 24 2009 Jens Petersen <petersen@redhat.com> - 0.4.0-1
- add cabal_configure_dynamic
- add ghc_requires, ghc_doc_requires, ghc_prof_requires

* Tue Dec 15 2009 Jens Petersen <petersen@redhat.com> - 0.3.1-1
- use ghc_version_override to override ghc_version
- fix pkg .conf filelist match

* Sat Dec 12 2009 Jens Petersen <petersen@redhat.com> - 0.3.0-1
- major updates for ghc-6.12, package.conf.d, and shared libraries
- add shared support to cabal_configure, ghc_gen_filelists
- version ghcdocdir
- replace ghc_gen_scripts, ghc_install_scripts, ghc_register_pkg, ghc_unregister_pkg
  with cabal_pkg_conf
- allow (ghc to) override ghc_version

* Mon Nov 16 2009 Jens Petersen <petersen@redhat.com> - 0.2.5-1
- make ghc_pkg_ver only return pkg version

* Mon Nov 16 2009 Jens Petersen <petersen@redhat.com> - 0.2.4-1
- change GHCRequires to ghc_pkg_ver

* Mon Nov 16 2009 Jens Petersen <petersen@redhat.com> - 0.2.3-1
- use the latest installed pkg version for %%GHCRequires

* Mon Nov 16 2009 Jens Petersen <petersen@redhat.com> - 0.2.2-1
- add %%GHCRequires for automatically versioned library deps

* Tue Sep 22 2009 Jens Petersen <petersen@redhat.com> - 0.2.1-2
- no, revert versioned ghcdocdir again!

* Tue Sep 22 2009 Jens Petersen <petersen@redhat.com> - 0.2.1-1
- version ghcdocdir to allow multiple doc versions like ghcpkgdir

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Tue Jun  9 2009 Jens Petersen <petersen@redhat.com> - 0.2-1
- drop version from ghcdocdir since it breaks haddock indexing

* Wed May 13 2009 Yaakov M. Nemoy <ynemoy@fedoraproject.org> - 0.1-7
- specifies the macros file as a %%conf

* Sat May  9 2009 Yaakov M. Nemoy <ynemoy@fedoraproject.org> - 0.1-6
- removes archs and replaces with noarch
- bumps to avoid conflicts with jens

* Fri May  8 2009 Jens Petersen <petersen@redhat.com> - 0.1-5
- make it arch specific to fedora ghc archs
- setup a build dir so it can build from the current working dir

* Wed May  6 2009 Yaakov M. Nemoy <ynemoy@fedoraproject.org> - 0.1-4
- renamed license file
- removed some extraneous comments needed only at review time

* Wed May  6 2009 Yaakov M. Nemoy <ynemoy@fedoraproject.org> - 0.1-3
- updated license to GPLv3
- added AUTHORS file

* Tue May  5 2009 Yaakov M. Nemoy <ghc@hexago.nl> - 0.1-2
- moved copying license from %%build to %%prep

* Mon May  4 2009 Yaakov M. Nemoy <ghc@hexago.nl> - 0.1-1
- creation of package