Compare commits

...

374 Commits

Author SHA1 Message Date
Jens Petersen c1326d82af use C.utf8 for building instead of en_US.utf8 2019-02-02 01:21:29 +08:00
Jens Petersen b60ddd4560 leave stripping to generic rpm macros 2019-02-02 01:17:16 +08:00
Jens Petersen b82b10135e use haddock --hyperlink-source unconditionally 2019-02-02 01:15:55 +08:00
Jens Petersen e35da2ef75 disable debuginfo by undefining _enable_debug_packages 2019-02-02 01:15:02 +08:00
Fedora Release Engineering c3ba9ccbd8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-01-31 21:57:05 +00:00
Jens Petersen 4e2983c83c disable -Werror=format-security too on s390x
cc1: error: -Wformat-security ignored without -Wformat [-Werror=format-security]
cc1: some warnings being treated as errors
`gcc' failed in phase `C Compiler'. (Exit code: 1)
2018-10-25 00:48:27 +09:00
Jens Petersen 5b2544a8cc silence C Wunused-label warnings flood on s390x again 2018-10-25 00:12:12 +09:00
Jens Petersen 298bd4e3dd f29: obsolete content-store, bdcs, and bdcs-api 2018-10-23 16:07:55 +09:00
Jens Petersen 59959cc216 tests: set SUDO for non-root
for containers running root
2018-10-15 23:39:53 +09:00
Jens Petersen 153f50041f keep %ghc_set_gcc_flags name 2018-10-06 01:47:11 +09:00
Jens Petersen 975f21c108 disable hardened ldflags again
only breaks x86_64 and armv7hl for static linking?:

/usr/bin/ld.gold: error: /usr/lib64/ghc-8.2.2/rts/libHSrts_thr.a(MarkWeak.thr_o): requires unsupported dynamic reloc 11; recompile with -fPIC

/usr/bin/ld.gold: error: /usr/lib/ghc-8.2.2/rts/libHSrts_thr.a(GCUtils.thr_o): requires unsupported dynamic reloc R_ARM_MOVW_ABS_NC; recompile with -fPIC
2018-10-06 01:13:16 +09:00
Jens Petersen 55f62273c3 %cabal_configure: use %ghc_set_gcc_flags 2018-10-05 19:02:12 +09:00
Jens Petersen 6499cbc4e2 bump for rebuild
for updated rawhide changelog
2018-10-05 18:14:48 +09:00
Jens Petersen e736d6cdbe add important changelog entry for last commit 2018-10-05 18:13:25 +09:00
Jens Petersen 7de08b499a disable dynamic linking of executables for better portability 2018-10-05 17:58:58 +09:00
Jens Petersen d190fa9b04 replace %ghc_set_cflags with simplified %ghc_set_gcc_flags
tested in ghc.spec in ghc:8.4 module
2018-10-05 17:58:43 +09:00
Jens Petersen 4972b52b10 tests: use dnf install and ignore /usr/lib/.build-id 2018-08-31 18:20:35 +09:00
Jens Petersen 8bce457cb2 insert a Setup.hs file if none shipped in package
current foundation and rio have no Setup.hs
2018-07-31 01:30:50 +09:00
Jens Petersen 5c4bfea95e remove -Wall and -Werror=format-security separately (for aarch64 and s390x) 2018-07-24 17:44:34 +09:00
Fedora Release Engineering 95e211cd84 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-13 02:05:26 +00:00
Jens Petersen 37fe2b4ab7 support packaging Cabal bundled internal libraries
for some reason installing with Cabal (rather than cabal-install)
gives different hashes for the sublibrary

simplification of initial work in opensuse by Ondřej Súkup
https://github.com/fedora-haskell/ghc-rpm-macros/pull/7

testcase was haddock-library-1.4.5
2018-05-25 19:24:07 +09:00
Jens Petersen 3124474192 drop %ghc_check_bootstrap and add %ghc_quick_build
- according to upstream it is redundant now to build ghc against itself
- %ghc_quick_build replaces %ghc_bootstrap
2018-05-23 10:49:21 +09:00
Jens Petersen 02ff4a6bb7 obsolete ghc-fail 2018-04-30 19:33:14 +09:00
Jens Petersen 87df4b821c fix text of previous changelog 2018-04-07 22:32:00 +09:00
Jens Petersen 6e6bc8e4a6 fix corruption of eclipseo's name 2018-04-07 22:20:14 +09:00
Robert-André Mauchin 3c4760fac8 Define pkgdir as %{ghclibdir}/%{pkgnamever} instead of %{ghclibdir}/${key} 2018-04-07 12:54:16 +02:00
Jens Petersen 4887078b34 use pkgid for libexecsubdir and libsubdir (#1563863)
libexecsubdir is only available in Cabal 2
2018-04-05 18:33:56 +09:00
Jens Petersen cae5ea467c obsolete ghc-ltk 2018-03-06 18:10:20 +09:00
Jens Petersen 1ffadfb29d drop ghc_bootstrapping from comment in macros.ghc 2018-02-28 17:47:10 +09:00
Fedora Release Engineering ae3cfff251 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-07 12:04:50 +00:00
Jens Petersen 0a4591897c drop the ldconfig scripts since they are not needed for F28 2018-02-04 00:09:19 +09:00
Jens Petersen 47ac404ddc no longer need to prune -z defs from LDFLAGS 2018-02-04 00:08:03 +09:00
Jens Petersen ca7fad4882 cabal-tweak-drop-dep: quote grep pattern to allow whitespace 2018-01-29 22:21:31 +01:00
Jens Petersen 811c5a99f0 reenable %_ghcdynlibdir for ghc-8.2 building 2018-01-28 08:32:39 +01:00
Jens Petersen 2e2b672417 make the recent dynlib changes conditional on _ghcdynlibdir and disable
(without_shared remains gone)
2018-01-28 08:02:46 +01:00
Jens Petersen b058836dae no whitespace after '-z defs' 2018-01-25 07:23:26 +01:00
Jens Petersen ba39d46794 remove "-z defs" from LDFLAGS since it breaks linking
dist/build/Language/Haskell/HsColour.dyn_o:hscolourzm1zi24zi2zmBwYhdEbf2m3fdRy45AMG_LanguageziHaskellziHsColour_zdfShowLit6_info: error: undefined reference to 'newCAF'
:
dist/build/Language/Haskell/HsColour.dyn_o:sQ3F_info: error: undefined reference to 'stg_upd_frame_info'
2018-01-25 07:02:40 +01:00
Jens Petersen bd0af716de %ghc_fix_rpath: remove leading or trailing ':' 2018-01-23 15:24:11 +01:00
Jens Petersen 1306c9a80d add ldconfig install scripts to ghc_lib_subpackage 2018-01-23 13:27:36 +01:00
Jens Petersen 5f6ff9c55c do not handle ghc libs location specially; ghc-pkg-wrapper rpath 2018-01-23 12:49:58 +01:00
Jens Petersen bc93aaa088 changes for ghc-8.2: _ghcdynlibdir, drop ghc_without_shared, chrpath
- add _ghcdynlibdir for Cabal --dynlibdir
- dynlibs in _libdir except ghc's libs
- drop ghc_without_shared
- ghc_fix_rpath removes RPATHs for 8.2+
2018-01-22 09:23:36 +01:00
Jens Petersen f2e3e0f014 drop arch condition on hscolour requires
since package is now noarch
2017-12-14 21:27:43 +09:00
Jens Petersen 0d7493589a update the spec file for last change 2017-12-04 21:29:12 +09:00
Jens Petersen 32c4fa64af add %ghc_set_cflags macro 2017-12-04 21:24:21 +09:00
Jens Petersen b838259f68 obsolete ghc-webkit (#1375825) 2017-11-15 18:42:21 +09:00
Jens Petersen f3be8b6bc2 rename macros.ghc-fedora to macros.ghc-os 2017-11-15 16:25:50 +09:00
Jens Petersen 7faec45fdd use shell variable instead of macro to carry licensedir version 2017-11-15 11:25:18 +09:00
Jens Petersen 97922d41b7 for rhel > 7 noarch and no license dir version 2017-11-14 19:22:31 +09:00
Jens Petersen 3643446b23 -Werror=format-security fails without -Wall 2017-11-10 12:12:46 +09:00
Jens Petersen 272d2b048a do not set -Wall on aarch64 and s390x
-Wunused-label is extremely noisy

[1 of 2] Compiling Text.Html.BlockTable ( Text/Html/BlockTable.hs, dist/build/Text/Html/BlockTable.o )
/tmp/ghcbd98_0/ghc_2.hc: In function ‘htmlzm1zi0zi1zi2zm8wVtehjIxUEBYXzzRus7033_TextziHtmlziBlockTable_getMatrix_entry’:
/tmp/ghcbd98_0/ghc_2.hc:63:1: error:
     warning: label ‘_c2qm’ defined but not used [-Wunused-label]
     _c2qm:
2017-11-10 11:49:21 +09:00
Jens Petersen ea9bb846fc temporarily set Wall for all archs to see which are noisy 2017-11-10 10:56:09 +09:00
Jens Petersen ff7270f82d drop the git-annex obsoletes 2017-10-10 15:44:05 +08:00
Jens Petersen b78d93fec3 fix the package.conf existence check 2017-09-13 19:17:01 +09:00
Jens Petersen 430e328400 make some macro call args explicit for rpm-4.14 scope change 2017-09-13 18:36:31 +09:00
Jens Petersen 5d5eac137c %ghc_gen_filelists: check package.conf exists 2017-08-02 11:07:36 +01:00
Jens Petersen 4c35941d50 changelog: noarch for f27 2017-07-30 21:10:26 +01:00
Jens Petersen 0bab6b0296 make package noarch for f27+ 2017-07-30 21:08:27 +01:00
Jens Petersen 5969f32695 add %_ghclicensedir and %ghc_smp_mflags macros
backport from github
2017-07-30 21:05:03 +01:00
Fedora Release Engineering 2cfb9bdb77 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-26 09:54:56 +00:00
Jens Petersen 195b0fadb8 obsolete git-annex 2017-05-11 12:19:39 +09:00
Jens Petersen d6e0ba914f test-rebuild.sh: fix the branch handling
no longer hardcode master branch version
2017-05-10 11:15:55 +09:00
Jens Petersen 445740902c update changelog 2017-04-07 19:13:28 +09:00
Jens Petersen 635a0ea454 Group and %defattr are only needed for rhel5 2017-04-07 19:11:29 +09:00
Jens Petersen 38f99a79b3 fix %ghc_fix_rpath for ghc-7.10 2017-04-07 19:09:23 +09:00
Jens Petersen 7855aaa8f1 ghc-pkg < 8 only accepts pkg-ver not pkg-ver-id_hash 2017-03-26 20:12:10 +09:00
Jens Petersen c17dd21b04 %cabal_configure now outputs Cabal version 2017-03-26 19:57:33 +09:00
Jens Petersen 78b7c8e144 haddock generation failing since f25 ghc-7.10 due to [ -f *.a] failing 2017-03-24 18:17:14 +09:00
Jens Petersen 7b97799ed4 condition obsoletes on fedora version 2017-03-16 13:29:52 +09:00
Jens Petersen 6ed0be7ab1 add obsoletes for cgi and multipart 2017-03-16 13:17:12 +09:00
Jens Petersen 195cbddf39 %ghc_fix_dynamic_rpath define lowercase RPATH 2017-03-16 13:15:39 +09:00
Jens Petersen 836ded9751 obsolete geniplate and sized-types 2017-03-12 13:43:32 +09:00
Jens Petersen 2fb629fb9b %ghc_bin_install and %ghc_lib_install now run ghc_fix_rpath on subpkgs 2017-03-03 11:00:57 +09:00
Jens Petersen b1fc196577 fixes for when (subpackage) pkg-ver already installed
macros.ghc no longer uses ghc-pkg-wrapper

- %ghc_fix_rpath gets lib dir directly by globbing buildroot
- %ghc_gen_filelists reads pkg key from .conf
- ghc-deps.sh: read unique pkg id from .conf

before this preinstalled libs were interfering and this was further
exasperated on ghc8 where .conf filenames are not keyed so we were querying
`ghc-pkg list pkg` instead of pkg-ver.
2017-03-03 10:57:59 +09:00
Jens Petersen 09527a512d subpackages can contain numbers and need --user 2017-02-23 20:58:38 +09:00
Jens Petersen 473b736053 fix fixing of rpaths 2017-02-22 14:50:26 +09:00
Jens Petersen 66fe267a12 fix generation of haddock's 2017-02-22 13:32:26 +09:00
Jens Petersen df54044203 quieten ppc64 and ppc64le logs by not setting CFLAGS
-Wunused-label very noisy with ghc-7.10

I think this can be dropped for ghc-8.0
2017-02-14 11:12:12 +09:00
Jens Petersen f1517cd581 fix handling of ghc's .files with new ghc_lib_subpackage -d option 2017-02-13 19:25:12 +09:00
Jens Petersen 89fc8859a1 fix subpackage builds
if %ghc_subpackaging set configure with --user otherwise --global
2017-02-10 12:50:57 +09:00
Jens Petersen ae0985a107 build subpackages inside main package dir 2017-02-09 10:52:59 +09:00
Jens Petersen 5517c1f361 new cabal-tweak-drop-dep and other merges from github
- no longer use a topdir for subpackage building
- only autopackage license if subpackaging
- move uniq to ghc-pkg-wrapper
- add macros.ghc-fedora for Fedora specific config
- replace cabal_verbose with cabal_configure_verbose, cabal_build_verbose,
  cabal_install_verbose, cabal_haddock_verbose, and cabal_test_verbose
- new _ghcdocdir
2017-02-08 15:26:07 +09:00
Jens Petersen cab483029e add 4 more F25 obsoletes
for editline, hashed-storage, nats, primes
2016-12-02 13:52:08 +09:00
Jens Petersen 3a48002a94 reenable dynlink on arm archs; condition _defaultlicensedir 2016-11-25 11:20:05 +09:00
Jens Petersen a3ef23ec78 only disable arm dynlinking for f26 (binutils, #1386126) 2016-10-31 12:22:20 +09:00
Jens Petersen 37e9abdf73 don't list %{ix86} twice 2016-10-27 11:39:16 +09:00
Jens Petersen ebdd0063dd make ghc_lib_subpackage backward compatible with older 2 arg form 2016-10-26 17:53:13 +09:00
Jens Petersen 9c211a6a35 add a comment about -Wunused-label for aarch64
can be removed for ghc-8.0
2016-10-26 17:48:51 +09:00
Jens Petersen 1f50906382 disable dynlinking on armv7hl too
also fails with:

libHS<pkg>-<version>-<hash>-ghc7.10.3.so: error: undefined reference to 'log'
2016-10-17 15:46:29 +09:00
Jens Petersen 55f359cbaa disable dynlinking on aarch64 and set LDFLAGS again 2016-10-17 12:14:17 +09:00
Jens Petersen deba8275bf ghc-pkg-wrapper output is simple now 2016-10-17 11:37:36 +09:00
Jens Petersen 28274f8b3a only pass CFLAGS and LDFLAGS to ghc if set 2016-10-17 11:37:21 +09:00
Jens Petersen 46a6bfd423 try not setting CFLAGS and LDFLAGS for aarch64 (for ghc-7.10.3)
- -Wall is very noisy (unused warnings)
- dynlink failing
2016-10-17 10:48:52 +09:00
Jens Petersen f279bff6ad test-rebuild.sh: use dnf for builddep and only switch-branch if needed 2016-10-12 19:22:40 +09:00
Jens Petersen b7996800fb ghc-deps.sh: use GHC_PKG 2016-10-12 19:22:07 +09:00
Jens Petersen e3aad73232 drop the Agda obsoletes 2016-10-12 18:36:12 +09:00
Jens Petersen ef1f187fbb ghc_pkg_recache got versioned ghc-pkg last year 2016-10-12 18:35:29 +09:00
Jens Petersen ad5af6773a update comments for %ghc_libs_build and %ghc_libs_install 2016-10-12 12:02:19 +09:00
Jens Petersen 54d5511eb7 add obsoletes for idris 2016-10-04 19:42:47 +09:00
Jens Petersen a9571f976d use %license 2016-09-28 12:47:36 +09:00
Jens Petersen e107a783d5 add extra requires for chrpath 2016-09-27 17:43:58 +09:00
Jens Petersen 411d61ddf0 new ghc_fix_rpath macro deprecates ghc_fix_dynamic_rpath
- ghc-pkg-wrapper: quieter and simple output
- ghc_libs_install now runs ghc_fix_rpath to fix subpackage rpaths
2016-09-27 14:30:59 +09:00
Jens Petersen 83eef9382a drop %ghc_licensedir and look for license correctly 2016-09-06 19:09:36 +09:00
Jens Petersen d0eef0681b licensedir fixes 2016-09-06 11:45:19 +09:00
Jens Petersen 68da07a47a set Cabal docdir to licensedir
so licenses end up in right place
2016-09-06 11:20:41 +09:00
Jens Petersen 8539a717fc %ghc_lib_subpackage now takes name-version processed with lua 2016-09-01 14:59:29 +09:00
Jens Petersen 52dc56db34 additional fixes for handling binlib packages 2016-08-31 11:14:00 +09:00
Jens Petersen 701fee7294 %ghc_gen_filelists: improve license handling for binlib packages 2016-08-31 10:02:44 +09:00
Jens Petersen 452a250213 fix %license path when not subpackaging 2016-08-27 12:13:06 +02:00
Jens Petersen 64dfda4d2c _defaultlicensedir not _licensedir 2016-08-26 18:16:55 +02:00
Jens Petersen c43600a4a0 ghc_gen_filelists: support packages with multiple license files
move licenses out of docdir instead of removing, also for ghc_bin_install
2016-08-26 14:21:24 +02:00
Jens Petersen 84a7696ad1 move license handling from %ghc_libs_install to %ghc_gen_filelists 2016-08-25 19:12:58 +02:00
Jens Petersen 40e1493069 rename to %ghc_libs_build and %ghc_libs_install
from %ghc_sublib_*
2016-08-18 15:25:17 +09:00
Jens Petersen d8c629ddd4 remove subpackaging --package-db=user which breaks 2016-08-18 15:21:00 +09:00
Jens Petersen 2d136c9538 %ghc_sublib_install: handle different license filenames 2016-08-18 14:24:03 +09:00
Jens Petersen 0592593f31 drop _smp_mflags for now since it can overwhelm armv7hl 2016-08-17 19:01:03 +09:00
Jens Petersen 96d4e688f4 macros.ghc-extra: quote the sed expressions harder 2016-08-17 18:16:52 +09:00
Jens Petersen 986f88ae73 2 new macros to ease bundling libraries
- ghc_sublib_build and ghc_sublib_install
2016-08-17 17:34:46 +09:00
Jens Petersen 27b17fb15e merge cabal_verbose from github
thanks mimi1vx for the original patch
2016-08-06 17:28:06 +02:00
Jens Petersen 2596046682 obsolete Agda temporarily
to see if it quietens the rawhide report
2016-07-22 12:28:06 +09:00
Jens Petersen a1d8cc2ddc obsoletes for more packages retired for f25
cmdtheline, concrete-typerep, glade, bluetile, lambdabot-utils, haddock, monad-unify
2016-07-20 19:35:40 +09:00
Jens Petersen 84c32ecae9 obsoletes for hakyll and leksah-server 2016-06-22 17:12:14 +09:00
Jens Petersen 41e9ee727e %ghc_gen_filelists: uniq keyname to prevent build failure for installed version 2016-06-13 16:16:29 +09:00
Jens Petersen d364972a87 disable debuginfo again
at least until work out how to get it working
2016-06-06 17:22:42 +09:00
Jens Petersen 7e15be0963 backport changes from ghc-7.10.3 copr as 1.6.0
- ghc_gen_filelists: determine keyname with pkgnamever not just pkgname
  (fixes building newer version of installed package)
- use _rpmconfigdir macro
- support el6 (no fileattrs or /usr/lib/rpm/macros.d)
- change url to github
- add and use ghc-pkg-wrapper script
- use ghc-pkg key field (for ghc-7.10)
- configure libsubdir using pkgkey like ghc-cabal
- handle no ghc-srpm-macros for fedora < 21
- fix ghc-pkg path in ghc-deps.sh for ghc-7.10
- version ghc-pkg in ghc_pkg_recache
- update ghc_gen_filelists to use new keyed library filepaths
  and specify libHS*.so more loosely
- ghc-dep.sh now just makes versioned devel reqs
- rename ghc_lib.attr to ghc.attr and drop ghc_bin.attr

- enable debuginfo package
2016-06-03 13:19:05 +09:00
Jens Petersen a619695bba obsolete citeproc-hs 2016-03-08 11:02:18 +09:00
Jens Petersen 5bd7efd601 test-rebuild.sh: el7 branch is epel7 2016-02-08 17:39:46 +09:00
Dennis Gilmore e7a174af5b - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-03 21:42:59 +00:00
Jens Petersen 124ef72e77 use %ghc_name for %ghc_html_dir 2016-02-01 23:16:39 +09:00
Jens Petersen d609014ce9 tests comment in macros.ghc 2015-10-08 19:20:20 +09:00
Jens Petersen d5bd4b883e reenable dynamic linking for aarch64 (#1195231) 2015-06-17 15:42:01 +09:00
Jens Petersen bf5ed29b0f add leksah to ghc-obsoletes 2015-05-25 19:23:32 +09:00
Jens Petersen c5902ba33f %cabal now uses utf8 locale; set %ghc_without_dynamic on aarch64 2015-05-07 19:14:08 +09:00
Jens Petersen e5d78dcff4 add explicit --enable-shared again for arm64 2015-04-02 12:52:27 +09:00
Jens Petersen 3bf0b8f083 fix ghc_lib.attr leftover ( 2015-03-23 18:38:46 +09:00
Jens Petersen c112f40782 update ghc_lib.attr for change from .conf to .a 2015-03-23 18:36:03 +09:00
Jens Petersen 0c236fe8e5 fix ghc-deps.sh for ghc builds: use .a files again instead of .conf
- .conf handling broke since ghc .conf filenames include hash
- now extract pkg-ver from filename rather than dir (for 7.10 support)
- ignore prof libs
2015-03-23 17:49:30 +09:00
Jens Petersen cfbdfc60ac add ghc_pkgdocdir for RHEL compatibility
no _pkgdocdir in current RHEL
2015-03-20 17:39:03 +09:00
Jens Petersen d1251119aa version ghc-pkg in %ghc_pkg_recache
this will work for ghc784 where ghc_override is defined but not ghc784-PKG
2015-03-08 14:41:30 +09:00
Jens Petersen fb48383d9f missing backslash after defining ghc_prefix 2015-03-08 14:30:35 +09:00
Jens Petersen f0f6b5560d allow overriding ghc- prefix with %ghc_name (for ghc784 etc) 2015-03-07 22:38:07 +09:00
Jens Petersen 53322a25a5 add ghc-obsoletes subpackage
- obsoletes ForSyDe, parameterized-data, type-level, and cgi
- currently only for F22+
2015-03-06 16:32:41 +09:00
Jens Petersen ab3cb96b9e hopefully fix %__ghc_lib_path for package .conf 2015-03-02 16:19:39 +09:00
Jens Petersen 3d27a15aad update ghc_lib.attr to see package.conf.d/*.conf files instead of libHS*.a 2015-03-02 13:31:38 +09:00
Jens Petersen 0b6b0198da fix ghc-deps.sh to handle obsoleted meta libraries
use --disable-shared for %ghc_without_shared
2015-03-02 13:21:32 +09:00
Jens Petersen c2213a0236 turn off hardening in %cabal_configure: set %_hardened_ldflags to %nil
%ghc_lib_build* was too late
2015-02-28 00:58:30 +09:00
Jens Petersen a706fe5472 bump to 1.4.9 2015-02-27 22:58:03 +09:00
Jens Petersen 47247e4150 turn off _hardened_build for libs since it breaks linking
With "%_hardened_build 1" errors like:

  /usr/bin/ld: -r and -shared may not be used together

and

  /usr/bin/ld.gold: fatal error: -pie and -r are incompatible

occur when building libraries
2015-02-27 22:57:15 +09:00
Jens Petersen 81726e4857 drop %cabal_tests_not_working since not all tests failing on ARMv7 2015-02-01 07:56:35 +00:00
Jens Petersen efcc8cce75 %cabal_tests_not_working fixes: add %cabal_test
correct the arch
2015-01-31 20:22:21 +00:00
Jens Petersen 9460154623 touch %{basepkg}.files so that %files -f works for meta packages 2015-01-31 18:14:30 +00:00
Jens Petersen c13aaea995 don't run cabal haddock for meta libraries 2015-01-31 18:03:52 +00:00
Jens Petersen d80a2ea958 disable Cabal tests on armv7 since they give internal error 2015-01-31 17:38:02 +00:00
Jens Petersen edf9be1b39 fix the R*PATH regexp 2015-01-31 10:44:28 +00:00
Jens Petersen 07399a8849 on arm chrpath outputs RUNPATH= instead of RPATH=
%ghc_fix_dynamic_rpath now handles both program names and absolute paths
2015-01-31 09:43:03 +00:00
Jens Petersen 856d8134b6 version ghcpkgdocdir and add new html doc dir names
(ghcpkgdocdir used by JuicyPixels)

in future:

%ghcdocbasedir -> %ghc_html_dir
%ghclibdocdir -> %ghc_html_libraries_dir
%ghcpkgdocdir -> %ghc_html_libraries_dir

Hopefully the new names should be clearer
2015-01-22 16:58:30 +09:00
Jens Petersen 170e2188e9 add a changelog for the cabal-tweak-flag error msg fix 2015-01-22 10:29:03 +09:00
Jens Petersen 1107962ad8 cabal-tweak-flag: add missing 'not' to an error message (#1184508)
thanks to Ian Collier for the report
2015-01-22 10:24:41 +09:00
Jens Petersen 4b3c2433d5 version doc htmldirs again
haddock generates versioned cross-links anyway!

This reverts commit c7830b0.
2015-01-18 15:26:18 +09:00
Jens Petersen a93d10698f enable shared libraries and dynamic linking on all archs; disable debuginfo
- ghc-7.8 support dynamic libs and linking on all arches now
- ghc-7.10 will support dwarf debugging output
2015-01-17 14:40:38 +09:00
Jens Petersen c62456812e split ghc.attr into ghc_lib.attr and ghc_bin.attr; require ghc-compiler
- allows handling executables more precisely and not assume bindir
- avoid "ghc: command not found" error when ghc wasn't installed
2014-11-14 18:03:42 +09:00
Jens Petersen e5c8c16492 fix handling of CFLAGS and LDFLAGS 2014-10-27 12:16:40 +09:00
Jens Petersen 83e7a4f045 pass CFLAGS and LDFLAGS to ghc via %cabal_configure
thanks to Ville for pushing for this in #1138982
and Sergei Trofimovich for explaining how Archlinux does it
2014-10-27 11:52:27 +09:00
Jens Petersen 87f872d02b ghc-deps.sh: also support ghc-pkg for ghc build before 7.6
Now test for "%buildroot%_bindir/ghc-pkg-$GHC_VER" and if it exists it means
we are doing a ghc build and then condition on GHC_VER to set GHC_PKG.
Otherwise just use %_bindir/ghc-pkg-$GHC_VER as usual.

There are 3 cases: 7.8, 7.6, and earlier.
2014-10-23 15:48:27 +09:00
Jens Petersen 9914f51b1b add $ to ghc.attr library path; update changelog date 2014-10-16 17:04:18 +09:00
Jens Petersen 33502e39eb ghc.attr needs to handle requires for /usr/bin files too 2014-10-16 15:51:29 +09:00
Jens Petersen 2da26f9db5 improve %ghc_fix_dynamic_rpath not to assume cwd = pkg_name 2014-09-10 16:07:29 +09:00
Jens Petersen 3efe41dd0c no longer disable debuginfo by default
cblrpm checks if there are C files in a package
if not it disables debuginfo
2014-08-29 16:04:33 +09:00
Jens Petersen 19ad5a530b drop -O2 for ghc-7.8
it uses too much build mem

eg
- highlighting-kate OOM with 4GB ram
- happy needs > 3GB
2014-08-28 17:34:35 +09:00
Jens Petersen 8479b07853 disable shared/dyn for non-intel until we move to ghc-7.8 2014-08-22 11:48:32 +09:00
Jens Petersen d02dbabc22 add ghc.attr for running ghc-deps.sh and use internal rpm dep generator
- update test-rebuild.sh to f22 for master
2014-08-21 15:34:31 +09:00
Jens Petersen 7a5198b86b fix warning in macros.ghc-extra about unused %pkgnamever 2014-08-20 22:09:31 +09:00
Peter Robinson c4f882c42c - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild 2014-08-16 15:44:07 +00:00
Jens Petersen 8598900333 ready for ghc-7.8: no longer need execstack hack nor disable dyn on non-intel 2014-08-03 23:29:14 +09:00
Jens Petersen 88337f50f5 macros.ghc-srpm moved to separate ghc-srpm-macros src package 2014-06-27 10:57:08 +09:00
Jens Petersen 4ef4fab228 add aarch64; and ppc64le hscolour 2014-06-06 19:57:00 +09:00
Jens Petersen 72f890df77 adding missing ppc64 and s390* archs and new ppc64le to ghc_arches 2014-06-01 17:56:21 +09:00
Jens Petersen 06868afd57 fix version in latest changelog 2014-06-01 17:42:43 +09:00
Jens Petersen 69ab773f59 condition use of execstack since no prelink on ppc64le or arm64 2014-05-30 18:25:07 +09:00
Dennis Gilmore e91dddece5 add %ghc_arches back to macros.ghc-srpm to maintain compatability with
- existing specs
2014-05-21 09:21:45 -05:00
Jens Petersen e3136771b3 rename macros source files removing ghc-rpm- prefix 2014-05-17 17:29:11 +09:00
Jens Petersen 972cb47448 do bcond cabal configure --enable-tests for both Bin and Lib pkgs 2014-05-16 23:47:47 +09:00
Jens Petersen 0273f7e1eb enable configure bcond check for tests 2014-05-16 23:25:42 +09:00
Jens Petersen e67c7efd4d use -O2 also for executable (Bin) packages and allow it to be overrided 2014-05-13 18:29:22 +09:00
Jens Petersen 48199c851a fix new requires, build on all archs and make hscolour conditional on arch
- ghc-srpm-macros subpackage noarch
- set Url field when generating subpackages
2014-04-30 12:44:15 +09:00
Jens Petersen eaa615f948 move macros.ghc-srpm from redhat-rpm-config to new ghc-srpm-macros
update license tag to GPLv3+
2014-04-28 19:16:03 +09:00
Jens Petersen 8f2ef1279a no _pkgdocdir in RHEL7 and docdir path different to F20+ 2014-03-28 17:40:33 +09:00
Jens Petersen 671df91867 abort ghc_fix_dynamic_rpath if no chrpath 2014-03-17 12:24:45 +09:00
Jens Petersen f67d26b5d6 quote %ghc_lib_build in changelog 2014-02-27 10:32:52 +09:00
Ville Skyttä 98b6135469 Install macros to %{_rpmconfigdir}/macros.d.
https://lists.fedoraproject.org/pipermail/devel/2014-January/195026.html
2014-02-14 00:02:58 +02:00
Jens Petersen e4c93cb77e set datasubdir in cabal_configure for ghc-7.8
pkg datadir should not be arch dependent!
2014-02-10 18:36:05 +09:00
Jens Petersen 3ec60c7a31 quote ghc_fix_dynamic_rpath error message 2014-01-10 11:48:58 +09:00
Jens Petersen caadeff016 bump version 2014-01-10 10:56:25 +09:00
Jens Petersen 87a97e89f3 ghc_fix_dynamic_rpath: abort for non-existent executable name 2014-01-10 10:54:19 +09:00
Jens Petersen 6c6978937a cabal-tweak-flag: add flag manual field to enforce flag changes 2014-01-10 10:51:38 +09:00
Jens Petersen a7b6b974ed test-rebuild.sh: el6 git does not have branch --list option 2013-11-28 19:21:31 +09:00
Jens Petersen 649621d68e test-rebuild.sh: epel support 2013-11-28 19:16:42 +09:00
Jens Petersen 493f56fc43 test-rebuild.sh: drop branch arg and switch to os version branch
need to support epel later
2013-11-20 19:50:50 +09:00
Jens Petersen 585415b5d9 test-rebuild.sh: missing close paren 2013-11-20 19:46:48 +09:00
Jens Petersen 0b2f17698e test-rebuild.sh: check branch agrees with installation 2013-11-20 19:44:54 +09:00
Jens Petersen 4d2eb25803 add ghcpkgdocdir
allows for unversioned haddock dirs similarly to _pkgdocdir
2013-10-15 18:08:08 +09:00
Jens Petersen 795c0c522b ghc-deps.sh: fix ghc-pkg path when bootstrapping new ghc version
ghc-7.7 has bin subdir
2013-09-10 12:42:26 +09:00
Jens Petersen 0cd6abba00 fix ghc-deps.sh when bootstrapping a new ghc version
ie do not assume bindir/ghc is the same ghc version just built
2013-09-09 23:17:35 +09:00
Jens Petersen db486c2fbb use objdump -p instead of ldd to read executable dependencies
hopefully more robust against ghc-7.7's relocatable dynamic linking
2013-09-09 22:55:47 +09:00
Jens Petersen a2f7c2b71a update ghc-deps.sh for rts changes as of ghc-7.7.20130828
ghc-7.8 rts now lives in its own subdir
2013-09-07 22:08:03 +09:00
Jens Petersen c7830b0a64 unversion htmldir's like pkg docdir's; drop ghc_docdir 2013-08-27 19:31:45 +09:00
Jens Petersen 8bc7b06720 add %ghc_docdir for package's docdir
I think rpm or at least redhat-rpm-config should provide such a macro
2013-07-26 14:34:17 +09:00
Jens Petersen 40a7e828d4 also make %ghc_lib_build docdir unversioned
require redhat-rpm-config >= 9.1.0-50.fc20
2013-07-26 12:18:47 +09:00
Jens Petersen e5c7bca0e8 in F20 docdir's are now unversioned
https://fedoraproject.org/wiki/Changes/UnversionedDocdirs
2013-07-26 11:40:49 +09:00
Jens Petersen 2e67bb2ce5 check for bindir before looking for executables in ghc_clear_execstack 2013-07-11 10:41:16 +09:00
Jens Petersen 49912b0df5 add ghc_clear_execstack and use it also in ghc_lib_install 2013-07-10 16:32:39 +09:00
Jens Petersen 1b79de9a6f drop doc/prof obsoletes/provides for subpkgs; clear executable stack flag for exec's
- changes are to %ghc_lib_subpackage and %ghc_bin_install
2013-07-10 15:36:54 +09:00
Jens Petersen f0c10c9f13 only configure with --global if not subpackaging libs 2013-06-21 01:41:43 +09:00
Jens Petersen e08038a4a4 reenable hscolour 2013-06-20 17:32:19 +09:00
Jens Petersen 328fc11463 turn off hscolour for bootstrap 2013-06-20 16:36:11 +09:00
Jens Petersen 3790c3a7fb add --global to %cabal_configure; bump to 1.0 2013-06-19 16:36:17 +09:00
Jens Petersen 27ddc9ecb2 extra: add %_isa to shared requires 2013-06-19 16:33:44 +09:00
Jens Petersen 6dad230ddb extra ghc_lib_subpackage: fix missing backslashes and updates Summary's 2013-06-17 13:54:55 +09:00
Jens Petersen 54b338816d merge remaining extra macros into %ghc_lib_subpackage 2013-06-17 13:49:03 +09:00
Jens Petersen ecaa01415c extra macros cleanup: merge all remaining macros into %ghc_lib_subpackage 2013-06-17 13:47:03 +09:00
Jens Petersen 80fec1cbd1 configure builds with ghc -O2 (#880135) 2013-06-06 17:57:46 +09:00
Jens Petersen aae062eae8 fix missing \ in -m conditional 2013-06-05 12:50:18 +09:00
Jens Petersen 9761c94426 drop -h option from extra macros and make -m work again 2013-06-05 12:43:26 +09:00
Jens Petersen 6d8c8e6f0c drop %ghc_compiler to avoid srpm problems in koji etc 2013-05-17 17:51:41 +09:00
Jens Petersen 0dd634c574 RPATH that needs to be fixed is not always first 2013-05-07 15:40:46 +09:00
Jens Petersen 1b2339d407 move configure --htmldir to ghc_lib_build; %ghc_compiler; move %ghc_devel_requires to extra
but now I fear that %ghc_compiler needs to be in macros.ghc-srpm for mock/koji
2013-05-04 23:34:41 +09:00
Jens Petersen 237337a6c6 fix %cabal -no-user-package-conf error in last commit
ghc takes "-no-user-package-db" vs ghc-pkg's "--no-user-package-db"
2013-04-24 16:08:41 +09:00
Jens Petersen 6910d07de7 for ghc-7.6 use --global-package-db and --no-user-package-db 2013-04-23 20:09:58 +09:00
Jens Petersen 73b0bd180f large update for simplified reworked revision of Packaging Guidelines
- see https://fedorahosted.org/fpc/ticket/194 for discussion
- move section and multiple library metamacros to new extra subpackage
- packaging no longer depends on availability of shared libs
  so is same now for all primary and secondary archs: ie there is always
  a binary base library package
- drop ghc_add_basepkg_file macro and ghc_exclude_docdir
2013-04-23 18:15:11 +09:00
Ralf Corsépius 9921428d92 Remove %config from %{_sysconfdir}/rpm/macros.*
(https://fedorahosted.org/fpc/ticket/259).
2013-03-20 07:55:15 +01:00
Jens Petersen 15903c519c add changelog entries for %pkgdir fix and %ghc_with_lib_for_ghci 2013-02-26 18:39:44 +01:00
Jens Petersen f37546310e only add %pkgdir/ to filelist if it exists
fixes haskell-platform build on secondary
2013-02-26 18:32:00 +01:00
Jens Petersen ff319a0028 add %ghc_with_lib_for_ghci to enable building ghci library file
Normally not needed since ghci can now load .a files
2013-02-26 18:19:02 +01:00
Jens Petersen 7dad4d39bd move test-rebuild.sh here from haskell-sig.git 2013-02-14 19:43:21 +09:00
Dennis Gilmore 6153b67702 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild 2013-02-13 17:17:21 -06:00
Jens Petersen 11c364e456 simplify cabal-tweak-flag script to take one flag value 2013-01-22 12:22:28 +09:00
Jens Petersen 436bfaf65d %ghc_fix_dynamic_rpath for cleaning up executables linked against own libs 2013-01-22 11:31:08 +09:00
Jens Petersen 59daf96cb2 make only ghc-PKG own libdir/ghc-ver/pkg-ver/ (#893777)
thanks to Michael Scherer for reporting
2013-01-18 18:52:08 +09:00
Jens Petersen 6af89aa214 add cabal-tweak-flag script for toggling flag default 2012-12-03 16:00:06 +09:00
Jens Petersen 4add3928b3 re-enable hscolour 2012-11-17 23:11:03 +09:00
Jens Petersen 548aff606e bootstrap hscolour 2012-11-17 22:34:36 +09:00
Jens Petersen 44c764437c revert also the doc indexing changes from the spec file 2012-11-16 16:38:37 +09:00
Jens Petersen 93b9c369fc revert the ghc doc index changes back to just using a (now optional) cronjob
The overhead to re-indexing in posttrans and postun seems too high
2012-11-16 16:25:00 +09:00
Jens Petersen 8af2ba71ac test-rebuild.sh: moved to haskell-sig/bin 2012-11-16 16:21:40 +09:00
Jens Petersen 29279d4a5b silence output from gen_contents_index 2012-10-30 11:20:39 +09:00
Jens Petersen ea552a4daf add haddock reindexing for %postun also
This will slow down removal of ghc-*-devel pkgs but seems no simple
way round that and removal is less common than installing anyway.
2012-10-30 11:00:23 +09:00
Jens Petersen 9e0aa2550c bring back doc re-indexing in posttrans using /var/lib/rpm-state/ghc/ 2012-10-29 20:02:06 +09:00
Jens Petersen bda56fd9b1 BR redhat-rpm-config not ghc-rpm-macros; don't set without_hscolour in macros.ghc 2012-10-25 18:13:54 +09:00
Jens Petersen 4d0b6136b6 test-rebuild.sh: protect the rpm query commands for when no output 2012-10-20 15:05:25 +09:00
Jens Petersen 82a1405dd8 test-rebuild.sh: test if package is installed before yum install 2012-10-20 14:34:44 +09:00
Jens Petersen 1433654678 test-rebuild.sh: revert the erroneous yum install change 2012-10-20 14:29:10 +09:00
Jens Petersen 30bb029b38 test-rebuild.sh: fix yum install arg; also generate --scripts output 2012-10-20 14:26:12 +09:00
Jens Petersen 345bcf3e91 test-rebuild.sh: dont move into arch subdir 2012-10-09 17:57:03 +09:00
Jens Petersen fdb0081a16 test-rebuild.sh: allow running in cwd without arg 2012-10-09 16:38:47 +09:00
Jens Petersen b968d18349 test-rebuild.sh: fix nvr list 2012-10-09 16:26:45 +09:00
Jens Petersen 2950c5e61e test-rebuild.sh: make yum install quiet 2012-10-09 16:22:37 +09:00
Jens Petersen e519a84941 test-rebuild.sh: run fedpkg verrel in the right dir 2012-10-09 13:24:52 +09:00
Jens Petersen a13d4b8b20 test-rebuild.sh: use "fedpkg verrel" to find built rpms 2012-10-09 13:22:50 +09:00
Jens Petersen 85455e4eb0 test-rebuild.sh: yum install packages one by one 2012-10-09 13:16:23 +09:00
Jens Petersen 880c4fcd5d test-rebuild.sh: for now just output to stdout 2012-10-09 13:06:49 +09:00
Jens Petersen 395cffc7aa test-rebuild.sh: diff returns non-zero when there is a diff 2012-10-09 13:01:11 +09:00
Jens Petersen c818743e11 test-rebuild.sh: try to fix diff output 2012-10-09 12:39:43 +09:00
Jens Petersen 20b1088ae2 fix missing html haddock output 2012-10-09 12:28:27 +09:00
Jens Petersen e0729035a0 need to pass --html to "cabal haddock" to get html and not just hoogle 2012-10-09 12:25:41 +09:00
Jens Petersen 798c11607f rename test-rebuild to test-rebuild.sh 2012-10-09 12:23:36 +09:00
Jens Petersen a32bb68aba test-rebuild: display diff output better 2012-10-09 12:23:03 +09:00
Jens Petersen 73b6ce9c57 test-rebuild: add file listing and output diff's 2012-10-09 10:57:48 +09:00
Jens Petersen 4f1f547f24 test-rebuild: filter out rpmlib lines; diff can't filter lines 2012-10-05 19:58:56 +09:00
Jens Petersen a8bcd3741f test-rebuild: set -e; require fresh arch dir 2012-10-05 19:49:32 +09:00
Jens Petersen 6f947c0328 test-rebuild: use n-v-r, and keep tmp dir around 2012-10-05 19:39:08 +09:00
Jens Petersen e399d7ff29 test-rebuild: rename test/ to test-tmp/ ; use ls -t; exclude rpmlib(FileDigests) 2012-10-05 19:27:16 +09:00
Jens Petersen 1bb678c64a test-rebuild: really fix yum-builddep; list subpackages by name-ver 2012-10-05 19:15:07 +09:00
Jens Petersen ca5159471f test-rebuild: 2nd arg for fedora branch 2012-10-05 19:07:51 +09:00
Jens Petersen eb601b5e70 test-rebuild: allow building from cwd or existing subdir; builddep on spec file 2012-10-05 19:05:57 +09:00
Jens Petersen 8b059158ba test-rebuild: fix builddep command and ghc-PKG rpm listing 2012-10-05 19:02:54 +09:00
Jens Petersen 07fccfd9a1 add comment about for unbootstrapping hscolour; add test-rebuild script for testing changes
so far script gives diffs of requires and provides
2012-10-05 18:55:03 +09:00
Jens Petersen 5d116cb4cc no need to BR hscolour 2012-09-20 12:05:40 +09:00
Jens Petersen a23376405b fix broken duplicate hash output for haskell-platform binaries when locally installed 2012-09-19 20:00:54 +09:00
Jens Petersen e330117e14 fix missing %endif 2012-09-08 21:25:38 +09:00
Jens Petersen b95424a06b ghc-rpm-macros now requires hscolour so packages no longer need to BR it
- this can be disabled for bootstrapping by setting without_hscolour
2012-09-08 21:18:30 +09:00
Jens Petersen befa5e103e make haddock build hoogle files, no longer need to disable building ghci lib files 2012-08-24 22:23:20 +09:00
Jens Petersen ae161ab66c update the upstream comment in the spec file 2012-07-26 16:04:01 +09:00
Dennis Gilmore 1d2eebf689 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild 2012-07-19 00:59:27 -05:00
Jens Petersen ac776c377e provide doc from devel again to silence rpmlint warning 2012-06-25 11:58:19 +09:00
Jens Petersen 20cbe43332 cabal-tweak-dep-ver: match complete dep name and not beyond "," 2012-06-22 17:03:46 +09:00
Jens Petersen 59008edb14 cabal-tweak-dep-ver: make a backup file the first time 2012-06-22 15:21:43 +09:00
Jens Petersen 1cb0fba5fb cabal-tweak-dep-ver: quote wildcards in match string and show file name when no match 2012-06-22 14:47:51 +09:00
Jens Petersen 7cdea6ff7e replace %cabal_tweak_dep_ver with cabal-tweak-dep-ver script
rpmbuild doesn't handle spaces in quoted args
2012-06-22 13:46:59 +09:00
Jens Petersen bab627bc22 cabal_tweak_dep_ver: use backup arg as extra suffix prefix 2012-06-22 12:51:04 +09:00
Jens Petersen 8a8de3a39a new cabal_tweak_dep_ver macro for tweaking versions of depends
%cabal_tweak_dep_ver dep old new [backup]
changes old version bound to new for dep with optional backup suffix

eg %cabal_tweak_dep_ver haskell-src-exts 1.12 1.14 2
2012-06-22 12:49:41 +09:00
Jens Petersen 8e22621418 ghc-dep.sh: only use buildroot package.conf.d if it exists 2012-06-09 22:00:32 +09:00
Jens Petersen 1b8536abf1 ghc-deps.sh: look in buildroot package.conf.d for program deps 2012-06-08 14:00:43 +09:00
Jens Petersen c013051271 add a meta-package option to ghc_devel_package and use in ghc_devel_requires 2012-06-08 11:53:40 +09:00
Jens Petersen dae8fa2606 let ghc_bin_install take an arg to disable implicit stripping for subpackages 2012-06-07 20:14:06 +09:00
Jens Petersen fa247e69af ghc_description, ghc_devel_description, ghc_devel_post_postun can take args 2012-06-07 19:32:38 +09:00
Jens Petersen bbc5f8f364 fix doc handling of subpackages for ghc_without_shared 2012-06-07 17:15:42 +09:00
Jens Petersen 8fc16e2daa without ghc_exclude_docdir include doc dir also for subpackages 2012-06-07 15:00:29 +09:00
Jens Petersen 64b3d676b2 add changelog for previous commit: --disable-library-for-ghci and common_summary 2012-06-07 11:15:52 +09:00
Jens Petersen c6d9f1f431 move --disable-library-for-ghci to %ghc_lib_build; revert recent common_summary and common_description changes
- need the previous common_summary and common_description behaviour for ghc
  and haskell-platform subpackaging
2012-06-07 11:11:24 +09:00
Jens Petersen 88a603f537 disable generating ghci .o files by default; add variable cabal_configure_extra_options to cabal_configure 2012-06-05 19:16:29 +09:00
Jens Petersen 5abcaaca33 add ghc_lib_build_without_haddock; no longer drop into subpackage dirs 2012-06-05 11:40:54 +09:00
Jens Petersen 89972ec757 add changelog about rename ghc_binlib_package to ghc_lib_subpackage 2012-05-25 23:58:01 +09:00
Jens Petersen 8f4190a52c rename ghc_binlib_package to ghc_lib_subpackage; fix new missing end of line backslashes 2012-05-25 23:52:09 +09:00
Jens Petersen 6b6cf52f6d don't build .o when no ghci; support meta-packages; optional common_summary and common_description
- only  build ghci .o library files on ghc_arches_with_ghci
- support meta packages like haskell-platform without base lib files
- make it possible not to have to use common_summary and common_description
2012-05-25 22:10:06 +09:00
Jens Petersen 7ffdbdc6d5 change of rpm metadata hash format for new ghc-7.4
- drop prof meta hash data
- no longer include doc files automatically by default
- no longer provide doc subpackage
- do not provide prof when without_prof set
2012-03-21 17:41:59 +09:00
Jens Petersen 8cf968c984 fix handling of devel docdir for non-shared builds
- simplify ghc_bootstrap
2012-02-23 18:10:50 +09:00
Jens Petersen ab41e2f6c8 allow dynamic linking of Setup with ghc_without_shared set 2012-01-19 18:33:08 +09:00
Jens Petersen 488948b8d7 clarify changelog to mention filelist 2012-01-06 22:57:28 +09:00
Jens Petersen fe1a0f23ee ghc_add_basepkg_file adds path to base lib package filelist 2012-01-06 22:56:31 +09:00
Jens Petersen 2089fc7bf1 add ghc_devel_post_postun to help koji 2011-12-28 12:05:32 +09:00
Jens Petersen 19872dc6fe add ghc_package, ghc_description, ghc_devel_package, ghc_devel_description 2011-12-27 23:50:55 +09:00
Jens Petersen 227b33e94e bump to 0.15 2011-12-27 15:08:53 +09:00
Jens Petersen e8e6da4176 when building for non-shared archs move installed docfiles to devel docdir 2011-12-27 15:06:50 +09:00
Jens Petersen 683aba9d80 new ghc_files wrapper macro which takes base doc files as args
- uses new ghc_shared_files and ghc_devel_files macros
2011-12-27 09:57:08 +09:00
Jens Petersen 72e5db37b5 use ghc system config when compiling Setup; don't setup hscolour if without_hscolour 2011-12-02 22:20:12 +09:00
Jens Petersen d32b4577e8 test for HsColour directly in "cabal haddock" instead of using without_haddock 2011-11-17 14:36:50 +09:00
Jens Petersen ebf81c0113 .gitignore: ignore local ghc-rpm-macros-*/ dirs 2011-11-17 11:07:00 +09:00
Jens Petersen b1204c472c fix double listing of docdir in base lib package 2011-11-12 21:59:12 +09:00
Jens Petersen fb65ca3a00 also disable testsuite in ghc_bootstrap 2011-11-01 21:24:30 +09:00
Jens Petersen 7229f10396 replace devel ghc requires with ghc-compiler 2011-11-01 21:18:49 +09:00
Jens Petersen 0b163b3d06 add ghc_bootstrapping to ghc_bootstrap; fix ghc-deps.sh when bootstrapping 2011-10-18 17:43:47 +09:00
Jens Petersen bd7f38e058 add ghc_exclude_docdir to exclude docdir from filelists 2011-10-15 13:01:58 +09:00
Jens Petersen fb1984734b fix devel subpackage's prof and doc obsoletes and provides versions 2011-09-30 10:43:58 +09:00
Jens Petersen 5995766e80 don't use ghc-deps.sh when ghc_bootstrapping; add %ghc_test config 2011-09-13 10:14:17 +09:00
Jens Petersen dfb8f0169d drop without_testsuite from ghc_bootstrap since it breaks koji 2011-08-03 17:14:24 +09:00
Jens Petersen f0b5c1b565 drop defattr's; move depgen setup to ghc_lib_install 2011-07-01 13:54:49 +09:00
Jens Petersen 283779dff1 requires redhat-rpm-config for ghc_arches 2011-06-27 11:55:16 +09:00
Jens Petersen 4773ef18ac ghc_bootstrap: add ghc_without_dynamic and drop without_hscolour 2011-06-17 17:55:06 +09:00
Jens Petersen 5d0da9c487 fix missing quotation in ghc_check_bootstrap 2011-06-17 17:11:17 +09:00
Jens Petersen e6a0b6cbfe change ghc_bootstrap to a macro that disables shared and prof libs, docs, and testsuite
- ghc_bootstrap is now a macro which sets ghc_bootstrapping,
  ghc_without_shared, without_prof, without_haddock, without_hscolour,
  without_manual, without_testsuite
- tweaks to ghc_check_bootstrap
2011-06-17 17:00:17 +09:00
Jens Petersen ed9a00f761 add ghc_check_bootstrap 2011-06-17 12:29:21 +09:00
Jens Petersen 232d0166b5 rename back to macros.ghc again; revert previous devel summary ordering change 2011-06-02 13:35:47 +09:00
Jens Petersen 4b65f2f48e move macros back to /etc/rpm and add %macro_file 2011-05-28 15:02:35 +09:00
Jens Petersen e29cbf2a99 fix the file for macros.ghc move 2011-05-28 12:39:44 +09:00
Jens Petersen da128f954a move macros.ghc to /usr/lib/rpm to avoid conflict with redhat-rpm-config 2011-05-28 12:19:35 +09:00
Jens Petersen 1bc67af711 merge prof subpackages into devel to simplify packaging 2011-05-16 10:58:56 +09:00
Jens Petersen eab5583c0d include ghc_pkg_c_deps even when -c option used 2011-05-09 18:56:37 +09:00
Jens Petersen c81c65671b ghc-deps.sh: fix ghclibdir path documentation 2011-05-09 13:59:58 +09:00
Jens Petersen 15b76d9f76 improve the bootstrap abort error text 2011-05-08 23:23:11 +09:00
Jens Petersen 8af86b797a drop ghc_pkg_deps from ghc_package_devel and ghc_package_prof 2011-05-08 23:09:07 +09:00
Jens Petersen cbf3d70e56 provides ghc-*-doc still needed for current lib templates 2011-04-01 16:54:19 +09:00
Jens Petersen 78a6eab552 fix self-bootstrap check 2011-03-28 16:45:18 +09:00
Jens Petersen cd30bb3547 check PKGBASEDIR, ghc bootstrapping, ghc_reindex_haddock nop, drop ghc-*-doc provides
- ghc-deps.sh: check PKGBASEDIR exists to avoid warning for bin package
- abort cabal_configure if ghc is not self-bootstrapped
- make ghc_reindex_haddock a safe no-op
- no longer provide ghc-*-doc
- no longer run ghc_reindex_haddock in ghc-*-devel scripts
2011-03-28 15:57:59 +09:00
Jens Petersen 82b34c5629 add ghc_pkg_obsoletes to shared lib package too 2011-03-10 15:02:39 +09:00
Jens Petersen 30ceea2628 add docdir when subpackaging packages too 2011-03-09 15:12:41 +09:00
Jens Petersen c9936dc158 subminor version bump 2011-02-13 02:11:03 +10:00
Jens Petersen b2d74bab08 fix the defines of ghc_without_dynamic and ghc_without_shared 2011-02-13 02:10:18 +10:00
Jens Petersen 75e22924a6 fix macro.ghc path for cat 2011-02-13 01:19:40 +10:00
Jens Petersen 2c0b10d5d5 disable shared and dynamic on secondary archs
- 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
2011-02-13 01:07:05 +10:00
Jens Petersen 26005406d3 revert setting without_shared and without_dynamic on secondary archs 2011-02-11 01:50:04 +10:00
Jens Petersen 30f51fc80d more non-shared fixes to avoid dynamic and shared on secondary archs
- only link Setup dynamically if without_shared and without_dynamic not set
- set without_shared and without_dynamic by default on secondary archs
  in cabal_bin_build and cabal_lib_build
- add cabal_configure_options to pass extra options to cabal_configure
2011-02-11 00:33:37 +10:00
Jens Petersen 1f4312aeaa fix ghc-deps.sh for without_shared libraries 2011-02-10 22:11:02 +10:00
Dennis Gilmore ee9ff3e826 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild 2011-02-08 19:31:55 -06:00
Jens Petersen 876ea626db simplify adding shared subpackage license file; own ghc-deps.sh not /usr/lib/rpm 2011-01-29 22:34:52 +10:00
Jens Petersen a1abcaaa78 add rpm hash requires for dynamic executables in ghc-deps.sh
- compile Setup in cabal macro
- use _rpmconfigdir
2011-01-23 15:05:38 +10:00
Jens Petersen ed934fb2e1 fix the filelist docdir for-loop 2011-01-22 23:38:19 +10:00
Jens Petersen 85779fa14f fix Requires misindent in ghc_devel_requires 2011-01-22 23:02:28 +10:00
Jens Petersen b13abaef50 bunch of tweaks, cleanup, and improvements
- drop deprecated ghcdocdir and ghcpkgdir
- new ghclibdocdir
- replace some missed RPM_BUILD_ROOT's
- bring back ghc requires in ghc_devel_requires
- improve prof summary and description
- add without_prof and without_haddock option macros
2011-01-22 22:48:18 +10:00
Jens Petersen 0f8bb5330b compile Setup to help speed up builds 2011-01-21 10:48:06 +10:00
Jens Petersen 4d6720d40f make sure license is in binlib shared subpackage and add option to exclude package from ghc_packages_list
- put docdir (license) also into shared lib subpackage
- add ghc_binlib_package option to exclude package from ghc_packages_list
- condition lib base package additional description for srpm
2011-01-20 18:25:37 +10:00
Jens Petersen 086f1bc5e0 more ghc libraries subpackaging fixes and other cleanup
- use buildroot instead of RPM_BUILD_ROOT
- rename ghcpkgbasedir to ghclibdir
- split "[name-version]" args into "[name] [version]" args
- move remaining name and version macro options (-n and -v) to args
- drop deprecated -o options
2011-01-03 20:37:32 +09:00
Jens Petersen abebb6d20d bump version to 0.11 2010-12-30 21:22:35 +09:00
Jens Petersen c6c20a5951 add support for subpackaging multiple libraries for ghc 2010-12-30 21:19:29 +09:00
Jens Petersen 7d50a02159 revert disabling debug_package since it behaves inconsistently with redhat-rpm-config 2010-12-20 19:05:33 +10:00
Jens Petersen 21e17e3468 drop with_devhelp since html-help option gone from haddock-2.8.0 2010-11-26 12:29:14 +10:00
Jens Petersen 2f1663e620 ignore ghc's builtin pseudo-libs 2010-11-23 23:48:16 +10:00
Jens Petersen 3ca7af736f bring back the explicit n-v-r internal package requires for devel and prof packages 2010-11-23 17:08:28 +10:00
Jens Petersen 7232a81da9 implement rpm ghc-pkg hash metadata for precise automatic library dependency tracking
- add buildroot/ghcpkgbasedir to ghc-deps.sh args
- calculate package and metadata by checking all library files in stdin
- prof depends on devel, devel on base
- update macros.ghc:
  -  rename ghc_requires to ghc_devel_requires
  - drop ghc_doc_requires
  - ghc_reindex_haddock is deprecated and now a no-op
2010-11-23 15:01:27 +10:00
Jens Petersen 02c69a3bd2 fix without_shared build so it actually works 2010-09-30 13:12:47 +10:00
Jens Petersen 742ca58b86 add ghc-deps.sh for hash rpm metadata and add ghc_pkg_obsoletes
- add ghc-deps.sh for ghc package hash rpm metadata provides and requires
- turn on hash provides and disable debuginfo by default
- make shared and hscolour default
- use without_shared and without_hscolour to disble them
- add ghc_pkg_obsoletes for obsoleting old packages
- use ghcpkgbasedir
- always obsolete -doc packages, but keep -o for now for backward compatibility
2010-09-30 12:21:16 +10:00
Fedora Release Engineering 8c3e84353f dist-git conversion 2010-07-28 15:34:54 +00:00
Jens Petersen 17c8f12bbb improve changelog 2010-07-17 08:09:36 +00:00
Jens Petersen 601aa5ffc1 - fix ghc_strip_dynlinked when no dynlinked files
- devel should provide doc also when not obsoleting
2010-07-17 08:08:37 +00:00
Jens Petersen 4e21230c7d merge -doc into -devel and provide -o obsoletes doc subpackage option 2010-07-15 14:43:34 +00:00
Jens Petersen 428e0de417 - support hscolour'ing of src via haddock
- really remove redundant summary and description option flags
2010-06-28 07:33:22 +00:00
18 changed files with 1665 additions and 277 deletions

View File

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/ghc-rpm-macros-*/

10
AUTHORS
View File

@ -1,3 +1,11 @@
Maintainer:
Jens Petersen <petersen@redhat.com>
Initial implementation:
Bryan O'Sullivan
Jens Petersen
Yaakov Nemoy
Yaakov Nemoy
Contributions from:
Peter Trommler
Ondřej Súkup

View File

@ -1,21 +0,0 @@
# Makefile for source rpm: ghc-rpm-macros
# $Id: Makefile,v 1.1 2009/05/13 05:10:46 kevin Exp $
NAME := ghc-rpm-macros
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))
ifeq ($(MAKEFILE_COMMON),)
# attept a checkout
define checkout-makefile-common
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
endef
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
endif
include $(MAKEFILE_COMMON)

3
Setup.hs Normal file
View File

@ -0,0 +1,3 @@
import Distribution.Simple
main = defaultMain

34
cabal-tweak-dep-ver Executable file
View File

@ -0,0 +1,34 @@
#!/bin/sh
set -e +x
USAGE="Usage: $0 dep old new"
if [ $# -ne 3 ]; then
echo "$USAGE"
exit 1
fi
DEP=$1
OLD=$(echo $2 | sed -e "s/*/\\\\*/g" -e "s/\./\\\\./g")
NEW=$3
CABALFILE=$(ls *.cabal)
if [ $(echo $CABALFILE | wc -w) -ne 1 ]; then
echo "There needs to be one .cabal file in the current dir!"
exit 1
fi
BREAK=[^[:alnum:]-]
if ! grep -q "$BREAK$DEP$BREAK[^,]*$OLD" $CABALFILE; then
echo "$CABALFILE does not match: $DEP $OLD"
exit 1
fi
if [ ! -f $CABALFILE.orig ]; then
BACKUP=.orig
fi
sed -i$BACKUP -e "s/\($BREAK$DEP$BREAK[^,]*\)$OLD/\1$NEW/g" $CABALFILE

30
cabal-tweak-drop-dep Executable file
View File

@ -0,0 +1,30 @@
#!/bin/sh
set -e +x
USAGE="Usage: $0 dep"
if [ $# -ne 1 ]; then
echo "$USAGE"
exit 1
fi
DEP=$1
CABALFILE=$(ls *.cabal)
if [ $(echo $CABALFILE | wc -w) -ne 1 ]; then
echo "There needs to be one .cabal file in the current dir!"
exit 1
fi
if [ ! -f $CABALFILE.orig ]; then
BACKUP=.orig
fi
if grep "$DEP" $CABALFILE | sed -e "s/$DEP//" | grep -q -e "[A-Za-z]"; then
echo "$0: deleting whole $DEP lines not safe - try more precise pattern"
exit 1
fi
sed -i$BACKUP -e "/$DEP/d" $CABALFILE

50
cabal-tweak-flag Executable file
View File

@ -0,0 +1,50 @@
#!/bin/sh
# TODO:
# support setting flag when no upstream default
set -e +x
USAGE="Usage: $0 FLAG [True|False]"
if [ $# -ne 2 ]; then
echo "$USAGE"
exit 1
fi
FLAG=$1
NEW=$2
case $NEW in
True) OLD=False ;;
False) OLD=True ;;
*) echo "Flag value can only be set to True or False" ; exit 1 ;;
esac
CABALFILE=$(ls *.cabal)
if [ $(echo $CABALFILE | wc -w) -ne 1 ]; then
echo "There needs to be one .cabal file in the current dir!"
exit 1
fi
if ! grep -q -i "^flag *$FLAG" $CABALFILE; then
echo "$CABALFILE does not have flag $FLAG"
exit 1
fi
if ! grep -A3 -i "^flag *$FLAG" $CABALFILE | grep -q -i "default:"; then
echo "$CABALFILE: $FLAG flag might not have a default"
exit 1
fi
if ! grep -A3 -i "^flag *$FLAG" $CABALFILE | grep -q -i "default: *$OLD"; then
echo "$CABALFILE: $FLAG flag already defaults to $NEW"
exit 1
fi
if [ ! -f $CABALFILE.orig ]; then
BACKUP=.orig
fi
sed -i$BACKUP -e "/[Ff]lag *$FLAG/,/[Dd]efault: *$OLD/ s/\( \+\)\([Dd]efault:[ \t]*\)$OLD/\1\2$NEW\n\1manual: True/" $CABALFILE

43
ghc-deps.sh Executable file
View File

@ -0,0 +1,43 @@
#!/bin/sh
# find rpm provides and requires for Haskell GHC libraries
[ $# -ne 2 ] && echo "Usage: $(basename $0) [--provides|--requires] %{buildroot}%{ghclibdir}" && exit 1
set +x
mode=$1
pkgbasedir=$2
pkgconfdir=$pkgbasedir/package.conf.d
ghc_pkg="/usr/lib/rpm/ghc-pkg-wrapper $pkgbasedir"
case $mode in
--provides) field=id ;;
--requires) field=depends ;;
*) echo "$(basename $0): Need --provides or --requires"
exit 1
;;
esac
ghc_ver=$(basename $pkgbasedir | sed -e s/ghc-//)
files=$(cat)
for i in $files; do
case $i in
# exclude builtin_rts.conf
$pkgconfdir/*-*.conf)
name=$(grep "^name: " $i | sed -e "s/name: //")
ids=$($ghc_pkg field $name $field | sed -e "s/rts//" -e "s/bin-package-db-[^ ]\+//")
for d in $ids; do
case $d in
*-*) echo "ghc-devel($d)" ;;
*) ;;
esac
done
;;
*)
;;
esac
done

32
ghc-pkg-wrapper Executable file
View File

@ -0,0 +1,32 @@
#!/bin/sh
[ $# -lt 1 ] && echo "Usage: `basename $0` %{buildroot}%{ghclibdir} ..." && exit 1
set +x
PKGBASEDIR=$1
shift
PKGCONFDIR=$PKGBASEDIR/package.conf.d
GHC_VER=$(basename $PKGBASEDIR | sed -e s/ghc-//)
# for a ghc build use the new ghc-pkg
INPLACE_GHCPKG=$PKGBASEDIR/../../bin/ghc-pkg-$GHC_VER
if [ -x "$INPLACE_GHCPKG" ]; then
case $GHC_VER in
7.4.*)
GHC_PKG="$PKGBASEDIR/ghc-pkg --global-conf=$PKGCONFDIR"
;;
7.6.*)
GHC_PKG="$PKGBASEDIR/ghc-pkg --global-package-db=$PKGCONFDIR"
;;
# 7.8 and 7.10
*)
GHC_PKG="env LD_LIBRARY_PATH=$(dirname $PKGBASEDIR) $PKGBASEDIR/bin/ghc-pkg --global-package-db=$PKGCONFDIR"
;;
esac
else
GHC_PKG="/usr/bin/ghc-pkg-${GHC_VER} -f $PKGCONFDIR"
fi
$GHC_PKG -v0 --simple-output $* | uniq

View File

@ -1,230 +0,0 @@
# "cabal"
%cabal %{_bindir}/runghc Setup
# configure
%cabal_configure \
%cabal configure --prefix=%{_prefix} --libdir=%{_libdir} --docdir=%{_docdir}/%{name}-%{version} --htmldir=%{ghcdocdir} --libsubdir='$compiler/$pkgid' %{?with_shared:--enable-shared} %{?with_dynamic:--ghc-option=-dynamic}
# install
%cabal_install %cabal copy --destdir=${RPM_BUILD_ROOT} -v
# root dir for ghc docs
%ghcdocbasedir %{_docdir}/ghc/html
# ghcdocdir [pkgname]
%ghcdocdir() %{ghcdocbasedir}/libraries/%{?1}%{!?1:%{pkg_name}}-%{version}
# top library dir
%ghcpkgbasedir %{_libdir}/ghc-%{ghc_version}
# ghcpkgdir [pkgname]
%ghcpkgdir() %{ghcpkgbasedir}/%{?1}%{!?1:%{pkg_name}}-%{version}
# ghc_gen_filelists [pkgname]
%ghc_gen_filelists() \
pkgname=%{?1}%{!?1:%{pkg_name}} \
basefile=ghc-${pkgname} \
pkgnamever=${pkgname}-%{version} \
rm -f ${basefile}.files ${basefile}-devel.files ${basefile}-prof.files ${basefile}-doc.files \
echo "%defattr(-,root,root,-)" > ${basefile}.files \
if [ -d "${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{version}" ]; then \
%{!?1:echo "%{_docdir}/%{name}-%{version}" >> ${basefile}%{!?with_shared:-devel}.files} %{?1::} \
fi \
%if %{with shared} \
if [ -d "${RPM_BUILD_ROOT}%{ghcpkgdir}" ]; then \
echo "%dir %{ghcpkgdir}" >> ${basefile}.files \
echo "%attr(755,root,root) %{ghcpkgdir}/libHS${pkgnamever}-ghc%{ghc_version}.so" >> ${basefile}.files \
fi \
%endif \
echo "%defattr(-,root,root,-)" > ${basefile}-devel.files \
echo "%{_libdir}/ghc-%{ghc_version}/package.conf.d/${pkgnamever}*.conf" >> ${basefile}-devel.files \
if [ -d "${RPM_BUILD_ROOT}%{ghcpkgdir}" ]; then \
find ${RPM_BUILD_ROOT}%{ghcpkgdir} -type d | sed "s/^/%dir /" >> ${basefile}-devel.files \
find ${RPM_BUILD_ROOT}%{ghcpkgdir} ! \\( -type d -o -name "*_p.a" -o -name "*.p_hi" -o -name "libHS*.so" \\) >> ${basefile}-devel.files \
fi \
echo "%defattr(-,root,root,-)" > ${basefile}-prof.files \
if [ -d "${RPM_BUILD_ROOT}%{ghcpkgdir}" ]; then \
find ${RPM_BUILD_ROOT}%{ghcpkgdir} \\( -name "*_p.a" -o -name "*.p_hi" \\) >> ${basefile}-prof.files \
fi \
echo "%defattr(-,root,root,-)" > ${basefile}-doc.files \
if [ -d "${RPM_BUILD_ROOT}%{ghcdocdir}" ]; then \
echo "%{ghcdocdir}" >> ${basefile}-doc.files \
fi \
sed -i -e "s!${RPM_BUILD_ROOT}!!g" ${basefile}.files ${basefile}-devel.files ${basefile}-prof.files \
%{nil}
# compiler version
%ghc_version %{!?ghc_version_override:%(ghc --numeric-version)}%{?ghc_version_override}
# create and install package.conf file
# cabal_pkg_conf [pkgname]
%cabal_pkg_conf \
%cabal register --gen-pkg-config \
mkdir -p $RPM_BUILD_ROOT%{_libdir}/ghc-%{ghc_version}/package.conf.d \
install --mode=0644 %{?1}%{!?1:%{pkg_name}}-%{version}.conf $RPM_BUILD_ROOT%{_libdir}/ghc-%{ghc_version}/package.conf.d
# devel pkg basic requires
%ghc_requires Requires: ghc = %{ghc_version}\
Requires(post): ghc = %{ghc_version}\
Requires(postun): ghc = %{ghc_version}\
%if %{with shared}\
Requires: ghc-%{-n:%{-n*}}%{!-n:%{pkg_name}} = %{-v:%{-v*}}%{!-v:%{version}}-%{release}\
%endif
# doc pkg basic requires
%ghc_doc_requires Requires: ghc-doc = %{ghc_version}\
Requires(post): ghc-doc = %{ghc_version}\
Requires(postun): ghc-doc = %{ghc_version}
# prof pkg basic requires
%ghc_prof_requires Requires: ghc-prof = %{ghc_version}\
Requires: ghc-%{-n:%{-n*}}%{!-n:%{pkg_name}}-devel = %{-v:%{-v*}}%{!-v:%{version}}-%{release}
# ghc_lib_package [-n pkgname] [-c cdepslist] [-h pkgdepslist]
%ghc_lib_package(n:c:h:)\
%define ghc_pkg_name %{-n:ghc-%{-n*}}%{!-n:ghc-%{pkg_name}}\
%if %{with shared}\
%files -n %{ghc_pkg_name} -f %{ghc_pkg_name}.files\
%defattr(-,root,root,-)\
%endif\
\
%ghc_package_devel\
\
%ghc_package_doc\
\
%ghc_package_prof\
%{nil}
# ghc_binlib_package [-n pkgname] [-c cdepslist] [-h pkgdepslist] [-l licensetag] [-v version]
%ghc_binlib_package(n:c:h:l:v:s:d:)\
%define local_pkg_name %{-n:%{-n*}}%{!-n:%{pkg_name}}\
%define ghc_pkg_name ghc-%{local_pkg_name}\
%package -n %{ghc_pkg_name}\
Summary: %{?common_summary}%{!?common_summary:%{local_pkg_name} library}\
Group: System Environment/Libraries\
%{-v:Version: %{-v*}}\
%{-l:License: %{-l*}}\
\
%description -n %{ghc_pkg_name}\
%{?common_description}%{!?common_description:Haskell %{local_pkg_name} library.}\
\
This package provides the shared library.\
\
%ghc_lib_package\
%{nil}
%ghc_pkg_recache %{_bindir}/ghc-pkg recache --no-user-package-conf || :
# for docs post and postun
%ghc_reindex_haddock ( cd %{ghcdocbasedir}/libraries && [ -x "./gen_contents_index" ] && ./gen_contents_index ) || :
# ghc_package_devel [-n pkgname] [-c cdepslist] [-h pkgdepslist] [-l licensetag] [-v version]
%ghc_package_devel(n:c:h:l:v:s:d:)\
%define local_pkg_name %{-n:%{-n*}}%{!-n:%{pkg_name}}\
%define ghc_pkg_name ghc-%{local_pkg_name}\
%package -n %{ghc_pkg_name}-devel\
Summary: %{?common_summary}%{!?common_summary:%{local_pkg_name} library} development files\
Group: Development/Libraries\
%{-v:Version: %{-v*}}\
%{-l:License: %{-l*}}\
%{?ghc_requires}\
%{!-h:%{?ghc_pkg_deps:Requires: %{ghc_pkg_deps}}}\
%{-h:Requires: %{-h*}}\
%{!-c:%{?ghc_pkg_c_deps:Requires: %{ghc_pkg_c_deps}}}\
%{-c:Requires: %{-c*}}\
\
%description -n %{ghc_pkg_name}-devel\
%{?common_description}%{!?common_description:Haskell %{local_pkg_name} library.}\
\
This package contains the development files.\
\
%post -n %{ghc_pkg_name}-devel\
%ghc_pkg_recache\
\
%postun -n %{ghc_pkg_name}-devel\
%ghc_pkg_recache\
\
%files -n %{ghc_pkg_name}-devel -f %{ghc_pkg_name}-devel.files\
%defattr(-,root,root,-)\
%{nil}
# re-index haddock
%ghc_reindex_haddock ( cd %{ghcdocbasedir}/libraries && [ -x "./gen_contents_index" ] && ./gen_contents_index ) || :
# ghc_package_doc [-n pkgname] [-h pkgdepslist] [-l licensetag] [-v version]
%ghc_package_doc(n:h:l:v:s:d:)\
%define local_pkg_name %{-n:%{-n*}}%{!-n:%{pkg_name}}\
%define ghc_pkg_name ghc-%{local_pkg_name}\
%package -n %{ghc_pkg_name}-doc\
Summary: Documentation for %{?common_summary}%{!?common_summary:%{local_pkg_name} library}\
Group: Development/Libraries\
%{-v:Version: %{-v*}}\
%{-l:License: %{-l*}}\
%{?ghc_doc_requires}\
%{!-h:%{?ghc_pkg_deps:Requires: %(echo %{ghc_pkg_deps} | sed -e "s/\\(ghc-[^, ]*\\)-devel/\\1-doc/g")}}\
%{-h:Requires: %(echo %{-h*} | sed -e "s/\\(ghc-[^, ]*\\)-devel/\\1-doc/g")}\
\
%description -n %{ghc_pkg_name}-doc\
%{?common_description}%{!?common_description:Haskell %{local_pkg_name} library.}\
\
This package contains development documentation files.\
\
%post -n %{ghc_pkg_name}-doc\
%ghc_reindex_haddock\
\
%postun -n %{ghc_pkg_name}-doc\
if [ "$1" -eq 0 ] ; then\
%ghc_reindex_haddock\
fi\
\
%files -n %{ghc_pkg_name}-doc -f %{ghc_pkg_name}-doc.files\
%defattr(-,root,root,-)\
%{nil}
# ghc_package_prof [-n pkgname] [-c cdepslist] [-h pkgdepslist] [-l licensetag] [-v version]
%ghc_package_prof(n:h:l:v:s:d:)\
%define local_pkg_name %{-n:%{-n*}}%{!-n:%{pkg_name}}\
%define ghc_pkg_name ghc-%{local_pkg_name}\
%package -n %{ghc_pkg_name}-prof\
Summary: Profiling libraries for %{?common_summary}%{!?common_summary:%{local_pkg_name}}\
Group: Development/Libraries\
%{-v:Version: %{-v*}}\
%{-l:License: %{-l*}}\
%{?ghc_prof_requires}\
%{!-h:%{?ghc_pkg_deps:Requires: %(echo %{ghc_pkg_deps} | sed -e "s/\\(ghc-[^, ]*\\)-devel/\\1-prof/g")}}\
%{-h:Requires: %(echo %{-h*} | sed -e "s/\\(ghc-[^, ]*\\)-devel/\\1-prof/g")}\
\
%description -n %{ghc_pkg_name}-prof\
%{?common_description}%{!?common_description:Haskell %{local_pkg_name} library.}\
\
This package contains the profiling library.\
\
%files -n %{ghc_pkg_name}-prof -f %{ghc_pkg_name}-prof.files\
%defattr(-,root,root,-)\
%{nil}
# ghc_strip_dynlinked
%ghc_strip_dynlinked\
%if 0%{!?__debug_package:1}\
find $RPM_BUILD_ROOT -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \\; -print | xargs strip\
%endif
# ghc_bin_build
%ghc_bin_build\
%cabal_configure --ghc\
%cabal build
# ghc_lib_build
%ghc_lib_build\
%cabal_configure --ghc -p\
%cabal build\
%cabal haddock
# ghc_bin_install
%ghc_bin_install\
%cabal_install\
%ghc_strip_dynlinked
# ghc_lib_install
%ghc_lib_install\
%cabal_install\
%cabal_pkg_conf\
%ghc_gen_filelists\
%ghc_strip_dynlinked

File diff suppressed because it is too large Load Diff

3
ghc.attr Normal file
View File

@ -0,0 +1,3 @@
%__ghc_provides %{_rpmconfigdir}/ghc-deps.sh --provides %{buildroot}%{ghclibdir}
%__ghc_requires %{_rpmconfigdir}/ghc-deps.sh --requires %{buildroot}%{ghclibdir}
%__ghc_path ^%{ghclibdir}/package.conf.d/.*\.conf$

View File

@ -1 +0,0 @@
ghc-rpm-macros-0_1-6_fc10:HEAD:ghc-rpm-macros-0.1-6.fc10.src.rpm:1242200218

241
macros.ghc Normal file
View File

@ -0,0 +1,241 @@
# RPM Macros for packaging Haskell cabalized packages -*-rpm-spec-*-
# see https://fedoraproject.org/wiki/Packaging:Haskell for more details
# "cabal"
%cabal [ -x Setup ] || ghc --make %{!?ghc_user_conf:-no-user-package-db} %{!?ghc_static_setup:-dynamic} Setup\
LANG=C.utf8\
./Setup
# compiler version
%ghc_version %{!?ghc_version_override:%(ghc --numeric-version)}%{?ghc_version_override}
%ghc_set_gcc_flags\
# -Wunused-label is extremely noisy\
%ifarch s390x\
CFLAGS="${CFLAGS:-$(echo %optflags | sed -e 's/-Wall //' -e 's/-Werror=format-security //')}"\
%else\
CFLAGS="${CFLAGS:-%optflags}"\
%endif\
export CFLAGS\
%global _hardened_ldflags %{nil}\
export LDFLAGS="${LDFLAGS:-%{?__global_ldflags}}"\
%{nil}
# configure
%cabal_configure\
%ghc_set_gcc_flags\
if ! [ -f Setup.hs -o -f Setup.lhs ]; then\
cp %{_datadir}/ghc-rpm-macros/Setup.hs .\
fi\
%cabal --version\
%cabal configure --prefix=%{_prefix} --libdir=%{_libdir} --docdir=%{_ghcdocdir} --libsubdir='$compiler/$pkgid' --datasubdir='$pkgid' --libexecsubdir='$pkgid' --ghc %{?_ghcdynlibdir:--dynlibdir=%{_ghcdynlibdir}} %{!?ghc_without_dynamic:--enable-executable-dynamic} %{?with_tests:--enable-tests} %{?ghc_subpackaging:--user}%{!?ghc_subpackaging:--global} --ghc-options="${CFLAGS:+$(echo ' '$CFLAGS | sed -e 's/ / -optc/g')} ${LDFLAGS:+$(echo ' '$LDFLAGS | sed -e 's/ / -optl/g')}" --disable-executable-stripping --disable-library-stripping %{?cabal_configure_options} $cabal_configure_extra_options
# install
%cabal_install %cabal copy --destdir=%{buildroot} %{?cabal_install_options}
# tests
%cabal_test\
%if %{with tests}\
%cabal test %{?cabal_test_options}\
%endif
# no _pkgdocdir in EPEL <= 7
%ghc_pkgdocdir %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}}
# root dir for ghc docs (used by ghc.spec)
%ghc_html_dir %{_docdir}/ghc/html
# deprecates
%ghcdocbasedir %ghc_html_dir
# libraries doc dir (internal)
%ghc_html_libraries_dir %{ghc_html_dir}/libraries
# deprecates
%ghclibdocdir %ghc_html_libraries_dir
# pkg doc dir
%ghc_html_pkg_dir %{ghc_html_libraries_dir}/%{pkg_name}-%{version}
# deprecates
%ghcpkgdocdir %ghc_html_pkg_dir
# top library dir
%ghclibdir %{_libdir}/ghc-%{ghc_version}
%_ghclicensedir %{?_defaultlicensedir}%{!?_defaultlicensedir:%_docdir}
# ghc_gen_filelists [name] [version]
%ghc_gen_filelists()\
%define pkgname %{?1}%{!?1:%{pkg_name}}\
%define pkgver %{?2}%{!?2:%{version}}\
%define pkgnamever %{pkgname}-%{pkgver}\
%define basepkg %{?ghc_name}%{!?ghc_name:ghc}-%{pkgname}\
%define docdir %{ghclibdocdir}/%{pkgnamever}\
if [ -z "$(ls %{buildroot}%{ghclibdir}/package.conf.d/)" ]; then\
echo "%{buildroot}%{ghclibdir}/package.conf.d/*.conf not found"\
exit 1\
fi\
rm -f %{basepkg}.files %{basepkg}-devel.files\
touch %{basepkg}.files %{basepkg}-devel.files\
ls %{buildroot}%{ghclibdir}/package.conf.d/%{pkgnamever}*.conf >> %{basepkg}-devel.files\
pkgdir="%{ghclibdir}/%{pkgnamever}"\
if [ -d "%{buildroot}${pkgdir}" ]; then\
%if %{defined _ghcdynlibdir}\
echo "${pkgdir}" >> %{basepkg}-devel.files\
%else\
echo "%%dir ${pkgdir}" >> %{basepkg}.files\
find %{buildroot}${pkgdir} -mindepth 1 -type d | sed "s/^/%dir /" >> %{basepkg}-devel.files\
find %{buildroot}${pkgdir} ! \\( -type d -o -name "libHS*.so" \\) >> %{basepkg}-devel.files\
%endif\
echo "%%attr(755,root,root) %{?_ghcdynlibdir}%{!?_ghcdynlibdir:${pkgdir}}/libHS%{pkgnamever}-*ghc%{ghc_version}.so" >> %{basepkg}.files\
fi\
if [ -d "%{buildroot}%{docdir}" ]; then\
echo "%{docdir}" >> %{basepkg}-devel.files\
fi\
%if 0%{?1:1}\
for i in $(ls %{buildroot}%{_ghclicensedir}/%{!?1:%{name}}%{?1:%{basepkg}}); do\
echo "%%license %{?1:%{pkgnamever}/}$i" >> %{basepkg}.files\
done\
%endif\
for i in %{basepkg}.files %{basepkg}-devel.files; do\
if [ -f "$i" ]; then\
sed -i -e "s!%{buildroot}!!g" $i\
fi\
done\
%{nil}
# create and install package.conf file
# cabal_pkg_conf [name] [version]
%cabal_pkg_conf()\
%define pkgname %{?1}%{!?1:%{pkg_name}}\
%define pkgver %{?2}%{!?2:%{version}}\
%define pkgnamever %{pkgname}-%{pkgver}\
%cabal register --gen-pkg-config\
if [ -d %{pkgnamever}.conf ]; then\
for i in $(ls "%{pkgnamever}.conf/"); do\
sub=$(echo $i | sed -e "s/^[0-9]\\+-//")\
install -D --mode=0644 %{pkgnamever}.conf/${i} %{buildroot}%{ghclibdir}/package.conf.d/${sub}.conf\
done\
else\
install -D --mode=0644 %{pkgnamever}.conf %{buildroot}%{ghclibdir}/package.conf.d/%{pkgnamever}.conf\
fi\
%{nil}
# ghc_bin_build
%ghc_bin_build\
%undefine _enable_debug_packages\
%cabal_configure\
%cabal build %{?ghc_smp_mflags} %{?cabal_build_options}
# ghc_lib_build_without_haddock [name] [version]
%ghc_lib_build_without_haddock()\
%undefine _enable_debug_packages\
%if 0%{?rhel} && 0%{?rhel} < 8\
licensedirversion=%{?2:-%2}\
%endif\
%cabal_configure %{!?without_prof:-p} --enable-shared %{?pkg_name:--htmldir=%{ghclibdocdir}/%{pkg_name}-%{version}} %{?1:--docdir=%{_ghclicensedir}/ghc-%1${licensedirversion} --htmldir=%{ghclibdocdir}/%1-%2} %{?ghc_subpackaging:--user}%{!?ghc_subpackaging:--global} %{?ghc_with_lib_for_ghci:--enable-library-for-ghci}\
%cabal build %{?ghc_smp_mflags} %{?cabal_build_options}\
%{nil}
# ghc_lib_build [name] [version]
%ghc_lib_build()\
%ghc_lib_build_without_haddock %{?1} %{?2}\
%if %{undefined without_haddock}\
%define pkgname %{?1}%{!?1:%{pkg_name}}\
%define pkgver %{?2}%{!?2:%{version}}\
if [ -n dist/build/libHS%{pkgname}-%{pkgver}*.so ]; then\
%cabal haddock --html --hyperlink-source --hoogle %{?cabal_haddock_options}\
fi\
%endif\
%{nil}
# install bin package
%ghc_bin_install()\
%{!?_fileattrsdir:%global _use_internal_dependency_generator 0}\
%{!?_fileattrsdir:%global __find_requires %{_rpmconfigdir}/ghc-deps.sh %{buildroot}%{ghclibdir}}\
%cabal_install\
%{?ghc_subpackaging:%ghc_fix_rpath %{subpkgs}}\
%{nil}
# ghc_lib_install [name] [version]
%ghc_lib_install()\
%{!?_fileattrsdir:%global _use_internal_dependency_generator 0}\
%{!?_fileattrsdir:%global __find_provides %{_rpmconfigdir}/rpmdeps --provides}\
%{!?_fileattrsdir:%global __find_requires %{_rpmconfigdir}/ghc-deps.sh %{buildroot}%{ghclibdir}}\
%cabal_install\
%cabal_pkg_conf %{?1} %{?2}\
%ghc_gen_filelists %{?1} %{?2}\
%{?ghc_subpackaging:%ghc_fix_rpath %{subpkgs}}\
%{nil}
# ghc_fix_rpath lib-ver ...
%ghc_fix_rpath()\
%if %{undefined ghc_without_dynamic}\
if ! type chrpath > /dev/null; then exit 1; fi\
for i in $(find %{buildroot} -type f -exec sh -c "file {} | grep -q 'dynamically linked'" \\; -print); do\
for lib in %*; do\
if [ -x "$i" ]; then\
rpath=$(chrpath $i | sed -e "s@^$i: R.*PATH=@@")\
case $rpath in\
*$PWD/$lib/dist/build*)\
case %{ghc_version} in\
7.10.*)\
pkgid=$(cd %{buildroot}%{ghclibdir}/package.conf.d; ls ${lib}* | sed -e "s/.conf$//")\
syspath=$(%{_rpmconfigdir}/ghc-pkg-wrapper %{buildroot}%{ghclibdir} --global --package-db=%{buildroot}%{ghclibdir}/package.conf.d field $pkgid library-dirs) ;;\
8.0)\
pkgid=$(cd %{buildroot}%{ghclibdir}; echo ${lib}*)\
syspath=$(%{_rpmconfigdir}/ghc-pkg-wrapper %{buildroot}%{ghclibdir} --global --package-db=%{buildroot}%{ghclibdir}/package.conf.d field $lib library-dirs | grep $pkgid) ;;\
*)\
syspath="" ;;\
esac\
newrpath=$(echo $rpath | sed -e "s@$PWD/$lib/dist/build@${syspath}@g" -e "s/::/:/" -e "s/^://" -e "s/:$//")\
chrpath -r $newrpath $i\
;;\
esac\
else\
echo "%%ghc_fix_rpath: no $i executable"\
exit 1\
fi\
done\
done\
%endif\
%{nil}
# Deprecated by ghc_fix_rpath:
# ghc_fix_dynamic_rpath prog ...
%ghc_fix_dynamic_rpath()\
%if %{undefined ghc_without_dynamic}\
if ! type chrpath > /dev/null; then exit 1; fi\
pdir=$(pwd)\
for i in %*; do\
case $i in\
/*) prog=%{buildroot}$i ;;\
*) prog=%{buildroot}%{_bindir}/$i ;;\
esac\
if [ -x "$prog" ]; then\
rpath=$(chrpath $prog | sed -e "s@^$prog: R.*PATH=@@")\
case $rpath in\
*$pdir*)\
newrpath=$(echo $rpath | sed -e "s@$pdir/dist/build@%{ghclibdir}/%{pkg_name}-%{version}@g")\
chrpath -r $newrpath $prog\
;;\
esac\
else\
echo "%%ghc_fix_dynamic_rpath: no such file $prog"\
exit 1\
fi\
done\
%endif\
%{nil}
%ghc_pkg_recache %{_bindir}/ghc-pkg-%{ghc_version} recache --no-user-package-db || :
# deprecated
%ghc_bootstrap\
%global without_prof 1\
%global without_haddock 1\
%global without_manual 1
# skip prof libs and documentation
%ghc_quick_build\
%global without_prof 1\
%global without_haddock 1

100
macros.ghc-extra Normal file
View File

@ -0,0 +1,100 @@
# RPM Macros for packaging Haskell packages with multiple libs -*-rpm-spec-*-
# ghc_lib_subpackage [-c cdepslist] [-d] [-l licensetag] [-x] [name-version]
# for backward compat also support: ghc_lib_subpackage name version
%ghc_lib_subpackage(c:dl:x)\
%define pkgname %{?2:%{1}}%{!?2:%{lua:\
local pv = rpm.expand("%1")\
local _, _, name = string.find(pv, "^([%a%d-]+)-")\
print(name)\
}}\
%define pkgver %{?2}%{!?2:%{lua:\
local pv = rpm.expand("%1")\
print(string.sub(pv, string.find(pv, "[%d.]+$")))\
}}\
%{!-x:%{?1:%global ghc_packages_list %{?ghc_packages_list} %{pkgname}-%{pkgver}}}\
%define ghc_prefix %{?ghc_name}%{!?ghc_name:ghc}\
%define basepkg %{ghc_prefix}-%{pkgname}\
%package -n %{basepkg}\
Summary: Haskell %{pkgname} library\
%if 0%{?rhel} && 0%{?rhel} < 6\
Group: System/Libraries\
%endif\
%{?1:Version: %{pkgver}}\
%{-l:License: %{-l*}}\
Url: http://hackage.haskell.org/package/%{pkgname}\
%{?ghc_pkg_obsoletes:Obsoletes: %(echo "%{ghc_pkg_obsoletes}" | sed -e "s/\\(%{ghc_prefix}-[^, ]*\\)-devel/\\1/g")}\
\
%description -n %{basepkg}\
This package provides the Haskell %{pkgname} library.\
\
%package -n %{basepkg}-devel\
Summary: Haskell %{pkgname} library development files\
%if 0%{?rhel} && 0%{?rhel} < 6\
Group: Development/Languages/Other\
%endif\
%{?1:Version: %{pkgver}}\
%{-l:License: %{-l*}}\
Requires(post): %{ghc_prefix}-compiler = %{ghc_version}\
Requires(postun): %{ghc_prefix}-compiler = %{ghc_version}\
Requires: %{ghc_prefix}-%{pkgname}%{?_isa} = %{pkgver}-%{release}\
%{?ghc_pkg_c_deps:Requires: %{ghc_pkg_c_deps}}\
%{-c:Requires: %{-c*}}\
%{?ghc_pkg_obsoletes:Obsoletes: %{ghc_pkg_obsoletes}}\
\
%description -n %{basepkg}-devel\
This package provides the Haskell %{pkgname} library development files.\
\
%post -n %{basepkg}-devel\
%ghc_pkg_recache\
\
%postun -n %{basepkg}-devel\
%ghc_pkg_recache\
\
%files -n %{basepkg} -f %{!-d:%{pkgname}-%{pkgver}/}%{basepkg}.files\
%if 0%{?rhel} && 0%{?rhel} < 6\
%defattr(-,root,root,-)\
%endif\
%{?base_doc_files:%doc %base_doc_files}\
\
%files -n %{basepkg}-devel -f %{!-d:%{pkgname}-%{pkgver}/}%{basepkg}-devel.files\
%if 0%{?rhel} && 0%{?rhel} < 6\
%defattr(-,root,root,-)\
%endif\
%{?devel_doc_files:%doc %devel_doc_files}\
%{nil}
# ghc_libs_build [name-version] ...
%ghc_libs_build()\
HOME=$PWD\
%global ghc_subpackaging 1\
for i in %*; do\
name=$(echo $i | sed -e "s/\\(.*\\)-.*/\\1/")\
ver=$(echo $i | sed -e "s/.*-\\(.*\\)/\\1/")\
cd $name-$ver\
case $name in\
haskell-platform)\
%ghc_lib_build_without_haddock $name $ver\
;;\
*)\
%ghc_lib_build $name $ver\
./Setup register --inplace\
;;\
esac\
cd ..\
done\
%{nil}
# ghc_libs_install [name-version] ...
%ghc_libs_install()\
HOME=$PWD\
args="%*"\
for i in $args; do\
cd $i\
name=$(echo $i | sed -e "s/\\(.*\\)-.*/\\1/")\
ver=$(echo $i | sed -e "s/.*-\\(.*\\)/\\1/")\
%ghc_lib_install $name $ver\
cd ..\
done\
%ghc_fix_rpath $args\
%{nil}

9
macros.ghc-os Normal file
View File

@ -0,0 +1,9 @@
# OS specific settings
%_ghcdocdir %{_ghclicensedir}/%{name}
%_ghcdynlibdir %{_libdir}
%ghc_without_dynamic 1
%cabal_install_options -v

77
tests/test-rebuild.sh Executable file
View File

@ -0,0 +1,77 @@
#!/bin/sh
# for testing updates to ghc-rpm-macros etc
# In a pkg dir run
# $ ./test-rebuild.sh
# or clone a pkg branch:
# $ ./test-rebuild.sh [pkg]
set -e
PKG=${1:-$(fedpkg gimmespec | sed -e "s/.spec//")}
[ -d "$PKG" -o -f "$PKG.spec" ] || fedpkg clone -a $PKG
[ -d "$PKG" ] && cd $PKG
ARCH=$(arch)
#if [ -d $ARCH ]; then
# echo Please move existing $ARCH/
# exit 1
#fi
if [ -f /etc/os-release ]; then
eval $(grep VERSION_ID /etc/os-release)
if git branch -a | grep -q f$VERSION_ID; then
BRANCH=f$VERSION_ID
else
case $VERSION_ID in
7.*) BRANCH=epel7 ;;
*) BRANCH=master ;;
esac
fi
else
# assume RHEL6
BRANCH=el6
fi
if [ "* $BRANCH" != "$(git branch | grep '^*')" ]; then
fedpkg switch-branch $BRANCH
fi
if [ "* $BRANCH" != "$(git branch | grep '^*')" ]; then
echo "Git branch does not match Fedora installation!"
exit 1
fi
git pull
if [ "$UID" != "0" ]; then
SUDO="sudo"
else
SUDO=""
fi
echo Running dnf builddep:
$SUDO dnf builddep $PKG.spec
fedpkg local
VERREL=$(fedpkg verrel | sed -e "s/^$PKG-//")
TMP=test-tmp
mkdir -p $TMP/
PKGS=$(cd $ARCH; rpm -qp $(ls *-$VERREL*.rpm))
for i in $PKGS; do
# FIXME: should check NVR is same before building
rpm -q --quiet $i || $SUDO dnf install -q $i
for k in list requires provides scripts; do
rpm -qp --$k $ARCH/$i.rpm | grep -v rpmlib > $TMP/$i.$k.test || :
rpm -q --$k $i | grep -v rpmlib > $TMP/$i.$k.installed || :
diff -u $TMP/$i.$k.installed $TMP/$i.$k.test -I /usr/lib/.build-id || :
done
done