%bcond_with bootstrap %bcond_without stack %define pkg_name haskell-platform %define year_version 2018 %define pkg_version 8.6.3 %define pkg_release 1%{?_dist_release} %define ghc_version %{pkg_version} %define cabal_version 2.4.0.0 %define stack_version 1.9.3 %ifarch %{ix86} %define rpmarch i386 %endif %ifarch x86_64 %define rpmarch x86_64 %endif Summary: An advanced purely-functional programming language Name: %{pkg_name} Version: %{year_version}.%{pkg_version} Release: %{pkg_release} License: BSD-like Group: Applications/Languages Source0: %{name}-%{pkg_version}.tar.gz Source1: packages.haskell Source2: packages.cabal-install Source3: packages.stack Source11: macros.cabal Source21: download-packages.pl Source22: generate-list.sh %if !%{with bootstrap} # ./download-packages.pl # ./generate-list.sh Source101: ObjectName-1.1.0.1.tar.gz Source102: ObjectName.cabal Source103: call-stack-0.1.0.tar.gz Source104: call-stack.cabal Source105: HUnit-1.6.0.0.tar.gz Source106: HUnit.cabal Source107: fgl-5.7.0.1.tar.gz Source108: fgl.cabal Source109: fixed-0.2.1.1.tar.gz Source110: fixed.cabal Source111: half-0.3.tar.gz Source112: half.cabal Source113: html-1.0.1.2.tar.gz Source114: html.cabal Source115: integer-logarithms-1.0.2.2.tar.gz Source116: integer-logarithms.cabal Source117: network-2.8.0.0.tar.gz Source118: network.cabal Source119: parallel-3.2.2.0.tar.gz Source120: parallel.cabal Source121: primitive-0.6.4.0.tar.gz Source122: primitive.cabal Source123: random-1.1.tar.gz Source124: random.cabal Source125: regex-base-0.93.2.tar.gz Source126: regex-base.cabal Source127: regex-posix-0.95.2.tar.gz Source128: regex-posix.cabal Source129: regex-compat-0.95.1.tar.gz Source130: regex-compat.cabal Source131: split-0.2.3.3.tar.gz Source132: split.cabal Source133: hashable-1.2.7.0.tar.gz Source134: hashable.cabal Source135: async-2.2.1.tar.gz Source136: async.cabal Source137: StateVar-1.1.1.1.tar.gz Source138: StateVar.cabal Source139: syb-0.7.tar.gz Source140: syb.cabal Source141: haskell-src-1.0.3.0.tar.gz Source142: haskell-src.cabal Source143: network-uri-2.6.1.0.tar.gz Source144: network-uri.cabal Source145: scientific-0.3.6.2.tar.gz Source146: scientific.cabal Source147: case-insensitive-1.2.0.11.tar.gz Source148: case-insensitive.cabal Source149: attoparsec-0.13.2.2.tar.gz Source150: attoparsec.cabal Source151: OpenGLRaw-3.3.1.0.tar.gz Source152: OpenGLRaw.cabal Source153: HTTP-4000.3.12.tar.gz Source154: HTTP.cabal Source155: GLURaw-2.0.0.4.tar.gz Source156: GLURaw.cabal Source157: OpenGL-3.0.2.2.tar.gz Source158: OpenGL.cabal Source159: GLUT-2.7.0.14.tar.gz Source160: GLUT.cabal Source161: tf-random-0.5.tar.gz Source162: tf-random.cabal Source163: erf-2.0.0.0.tar.gz Source164: erf.cabal Source165: QuickCheck-2.12.6.1.tar.gz Source166: QuickCheck.cabal Source167: unordered-containers-0.2.9.0.tar.gz Source168: unordered-containers.cabal Source169: vector-0.12.0.1.tar.gz Source170: vector.cabal Source171: zlib-0.6.2.tar.gz Source172: zlib.cabal Source173: base16-bytestring-0.1.1.6.tar.gz Source174: base16-bytestring.cabal Source175: base64-bytestring-1.0.0.2.tar.gz Source176: base64-bytestring.cabal Source177: cryptohash-sha256-0.11.101.0.tar.gz Source178: cryptohash-sha256.cabal Source179: ed25519-0.0.5.0.tar.gz Source180: ed25519.cabal Source181: tar-0.5.1.0.tar.gz Source182: tar.cabal Source183: hackage-security-0.5.3.0.tar.gz Source184: hackage-security.cabal Source185: echo-0.1.3.tar.gz Source186: echo.cabal Source187: edit-distance-0.2.2.1.tar.gz Source188: edit-distance.cabal Source189: resolv-0.1.1.2.tar.gz Source190: resolv.cabal Source191: digest-0.0.1.2.tar.gz Source192: digest.cabal Source193: zip-archive-0.3.3.tar.gz Source194: zip-archive.cabal Source195: cabal-install-2.4.0.0.tar.gz Source196: cabal-install.cabal %if %{with stack} Source197: annotated-wl-pprint-0.7.0.tar.gz Source198: annotated-wl-pprint.cabal Source199: auto-update-0.1.4.tar.gz Source200: auto-update.cabal Source201: base-compat-0.10.5.tar.gz Source202: base-compat.cabal Source203: base-orphans-0.8.tar.gz Source204: base-orphans.cabal Source205: base-prelude-1.3.tar.gz Source206: base-prelude.cabal Source207: basement-0.0.8.tar.gz Source208: basement.cabal Source209: bindings-uname-0.1.tar.gz Source210: bindings-uname.cabal Source211: bitarray-0.0.1.1.tar.gz Source212: bitarray.cabal Source213: blaze-builder-0.4.1.0.tar.gz Source214: blaze-builder.cabal Source215: byteable-0.1.1.tar.gz Source216: byteable.cabal Source217: cabal-doctest-1.0.6.tar.gz Source218: cabal-doctest.cabal Source219: cereal-0.5.7.0.tar.gz Source220: cereal.cabal Source221: clock-0.7.2.tar.gz Source222: clock.cabal Source223: cmdargs-0.10.20.tar.gz Source224: cmdargs.cabal Source225: colour-2.3.4.tar.gz Source226: colour.cabal Source227: contravariant-1.5.tar.gz Source228: contravariant.cabal Source229: data-default-class-0.1.2.0.tar.gz Source230: data-default-class.cabal Source231: dlist-0.8.0.5.tar.gz Source232: dlist.cabal Source233: easy-file-0.2.2.tar.gz Source234: easy-file.cabal Source235: file-embed-0.0.11.tar.gz Source236: file-embed.cabal Source237: filelock-0.1.1.2.tar.gz Source238: filelock.cabal Source239: githash-0.1.3.0.tar.gz Source240: githash.cabal Source241: hinotify-0.4.tar.gz Source242: hinotify.cabal Source243: hourglass-0.2.12.tar.gz Source244: hourglass.cabal Source245: hspec-discover-2.6.0.tar.gz Source246: hspec-discover.cabal Source247: hspec-expectations-0.8.2.tar.gz Source248: hspec-expectations.cabal Source249: http-types-0.12.2.tar.gz Source250: http-types.cabal Source251: logict-0.6.0.2.tar.gz Source252: logict.cabal Source253: microlens-0.4.10.tar.gz Source254: microlens.cabal Source255: mime-types-0.1.0.8.tar.gz Source256: mime-types.cabal Source257: mintty-0.1.2.tar.gz Source258: mintty.cabal Source259: monad-loops-0.4.3.tar.gz Source260: monad-loops.cabal Source261: old-locale-1.0.0.7.tar.gz Source262: old-locale.cabal Source263: open-browser-0.2.1.0.tar.gz Source264: open-browser.cabal Source265: parser-combinators-1.0.0.tar.gz Source266: parser-combinators.cabal Source267: path-pieces-0.2.1.tar.gz Source268: path-pieces.cabal Source269: quickcheck-io-0.2.0.tar.gz Source270: quickcheck-io.cabal Source271: regex-applicative-0.3.3.tar.gz Source272: regex-applicative.cabal Source273: safe-0.3.17.tar.gz Source274: safe.cabal Source275: semigroups-0.18.5.tar.gz Source276: semigroups.cabal Source277: setenv-0.1.1.3.tar.gz Source278: setenv.cabal Source279: silently-1.2.5.tar.gz Source280: silently.cabal Source281: stm-chans-3.0.0.4.tar.gz Source282: stm-chans.cabal Source283: store-core-0.4.4.tar.gz Source284: store-core.cabal Source285: streaming-commons-0.2.1.0.tar.gz Source286: streaming-commons.cabal Source287: system-filepath-0.4.14.tar.gz Source288: system-filepath.cabal Source289: tagged-0.8.6.tar.gz Source290: tagged.cabal Source291: text-metrics-0.3.0.tar.gz Source292: text-metrics.cabal Source293: th-abstraction-0.2.8.0.tar.gz Source294: th-abstraction.cabal Source295: th-expand-syns-0.4.4.0.tar.gz Source296: th-expand-syns.cabal Source297: time-locale-compat-0.1.1.5.tar.gz Source298: time-locale-compat.cabal Source299: transformers-compat-0.6.2.tar.gz Source300: transformers-compat.cabal Source301: typed-process-0.2.3.0.tar.gz Source302: typed-process.cabal Source303: unix-compat-0.5.1.tar.gz Source304: unix-compat.cabal Source305: unliftio-core-0.1.2.0.tar.gz Source306: unliftio-core.cabal Source307: uuid-types-1.0.3.tar.gz Source308: uuid-types.cabal Source309: vector-algorithms-0.8.0.1.tar.gz Source310: vector-algorithms.cabal Source311: void-0.7.2.tar.gz Source312: void.cabal Source313: gitrev-1.3.1.tar.gz Source314: gitrev.cabal Source315: attoparsec-iso8601-1.0.1.0.tar.gz Source316: attoparsec-iso8601.cabal Source317: memory-0.14.18.tar.gz Source318: memory.cabal Source319: unicode-transforms-0.3.5.tar.gz Source320: unicode-transforms.cabal Source321: blaze-markup-0.8.2.2.tar.gz Source322: blaze-markup.cabal Source323: socks-0.5.6.tar.gz Source324: socks.cabal Source325: extra-1.6.14.tar.gz Source326: extra.cabal Source327: ansi-terminal-0.8.2.tar.gz Source328: ansi-terminal.cabal Source329: cookie-0.4.4.tar.gz Source330: cookie.cabal Source331: smallcheck-1.1.5.tar.gz Source332: smallcheck.cabal Source333: old-time-1.1.0.3.tar.gz Source334: old-time.cabal Source335: megaparsec-7.0.4.tar.gz Source336: megaparsec.cabal Source337: regex-applicative-text-0.1.0.1.tar.gz Source338: regex-applicative-text.cabal Source339: system-fileio-0.3.16.4.tar.gz Source340: system-fileio.cabal Source341: distributive-0.6.tar.gz Source342: distributive.cabal Source343: infer-license-0.2.0.tar.gz Source344: infer-license.cabal Source345: th-lift-0.7.11.tar.gz Source346: th-lift.cabal Source347: microlens-th-0.4.2.3.tar.gz Source348: microlens-th.cabal Source349: generic-deriving-1.12.2.tar.gz Source350: generic-deriving.cabal Source351: th-reify-many-0.1.8.tar.gz Source352: th-reify-many.cabal Source353: transformers-base-0.4.5.2.tar.gz Source354: transformers-base.cabal Source355: exceptions-0.10.0.tar.gz Source356: exceptions.cabal Source357: constraints-0.10.1.tar.gz Source358: constraints.cabal Source359: Glob-0.9.3.tar.gz Source360: Glob.cabal Source361: unliftio-0.2.9.0.tar.gz Source362: unliftio.cabal Source363: aeson-1.4.2.0.tar.gz Source364: aeson.cabal Source365: mono-traversable-1.0.9.0.tar.gz Source366: mono-traversable.cabal Source367: pem-0.2.4.tar.gz Source368: pem.cabal Source369: cryptonite-0.25.tar.gz Source370: cryptonite.cabal Source371: asn1-types-0.3.2.tar.gz Source372: asn1-types.cabal Source373: blaze-html-0.9.1.1.tar.gz Source374: blaze-html.cabal Source375: hspec-core-2.6.0.tar.gz Source376: hspec-core.cabal Source377: ansi-wl-pprint-0.6.8.2.tar.gz Source378: ansi-wl-pprint.cabal Source379: http-api-data-0.4.tar.gz Source380: http-api-data.cabal Source381: unix-time-0.4.0.tar.gz Source382: unix-time.cabal Source383: neat-interpolation-0.3.2.4.tar.gz Source384: neat-interpolation.cabal Source385: comonad-5.0.4.tar.gz Source386: comonad.cabal Source387: th-lift-instances-0.1.11.tar.gz Source388: th-lift-instances.cabal Source389: monad-control-1.0.2.3.tar.gz Source390: monad-control.cabal Source391: temporary-1.3.tar.gz Source392: temporary.cabal Source393: retry-0.7.7.0.tar.gz Source394: retry.cabal Source395: resourcet-1.2.2.tar.gz Source396: resourcet.cabal Source397: http-client-0.5.14.tar.gz Source398: http-client.cabal Source399: rio-0.1.6.0.tar.gz Source400: rio.cabal Source401: path-0.6.1.tar.gz Source402: path.cabal Source403: aeson-compat-0.3.9.tar.gz Source404: aeson-compat.cabal Source405: cryptohash-0.11.9.tar.gz Source406: cryptohash.cabal Source407: asn1-encoding-0.9.5.tar.gz Source408: asn1-encoding.cabal Source409: hspec-smallcheck-0.5.2.tar.gz Source410: hspec-smallcheck.cabal Source411: hspec-2.6.0.tar.gz Source412: hspec.cabal Source413: optparse-applicative-0.14.3.0.tar.gz Source414: optparse-applicative.cabal Source415: fast-logger-2.4.11.tar.gz Source416: fast-logger.cabal Source417: bifunctors-5.5.3.tar.gz Source418: bifunctors.cabal Source419: th-orphans-0.13.6.tar.gz Source420: th-orphans.cabal Source421: resource-pool-0.2.3.2.tar.gz Source422: resource-pool.cabal Source423: lifted-base-0.2.3.12.tar.gz Source424: lifted-base.cabal Source425: conduit-1.3.1.tar.gz Source426: conduit.cabal Source427: path-io-1.4.0.tar.gz Source428: path-io.cabal Source429: asn1-parse-0.9.4.tar.gz Source430: asn1-parse.cabal Source431: optparse-simple-0.1.0.tar.gz Source432: optparse-simple.cabal Source433: semigroupoids-5.3.1.tar.gz Source434: semigroupoids.cabal Source435: profunctors-5.3.tar.gz Source436: profunctors.cabal Source437: th-utilities-0.2.0.1.tar.gz Source438: th-utilities.cabal Source439: lifted-async-0.10.0.3.tar.gz Source440: lifted-async.cabal Source441: enclosed-exceptions-1.0.3.tar.gz Source442: enclosed-exceptions.cabal Source443: yaml-0.10.4.0.tar.gz Source444: yaml.cabal Source445: conduit-extra-1.3.0.tar.gz Source446: conduit-extra.cabal Source447: x509-1.7.5.tar.gz Source448: x509.cabal Source449: free-5.1.tar.gz Source450: free.cabal Source451: either-5.0.1.tar.gz Source452: either.cabal Source453: shelly-1.8.1.tar.gz Source454: shelly.cabal Source455: project-template-0.2.0.1.tar.gz Source456: project-template.cabal Source457: monad-logger-0.3.30.tar.gz Source458: monad-logger.cabal Source459: cryptonite-conduit-0.2.2.tar.gz Source460: cryptonite-conduit.cabal Source461: x509-store-1.6.7.tar.gz Source462: x509-store.cabal Source463: store-0.5.0.1.tar.gz Source464: store.cabal Source465: mustache-2.3.0.tar.gz Source466: mustache.cabal Source467: fsnotify-0.3.0.1.tar.gz Source468: fsnotify.cabal Source469: persistent-2.9.0.tar.gz Source470: persistent.cabal Source471: x509-validation-1.6.11.tar.gz Source472: x509-validation.cabal Source473: x509-system-1.6.6.tar.gz Source474: x509-system.cabal Source475: persistent-template-2.5.4.tar.gz Source476: persistent-template.cabal Source477: persistent-sqlite-2.9.0.tar.gz Source478: persistent-sqlite.cabal Source479: tls-1.4.1.tar.gz Source480: tls.cabal Source481: connection-0.2.8.tar.gz Source482: connection.cabal Source483: http-client-tls-0.3.5.3.tar.gz Source484: http-client-tls.cabal Source485: http-conduit-2.3.4.tar.gz Source486: http-conduit.cabal Source487: hpack-0.31.1.tar.gz Source488: hpack.cabal Source489: stack-1.9.3.tar.gz Source490: stack.cabal %endif %endif BuildRoot: %{_tmppath}/%{name}-%{pkg_version}-root BuildRequires: ghc = %{ghc_version} BuildRequires: gmp-devel zlib-devel freeglut-devel BuildRequires: libffi-devel %if !%{with bootstrap} BuildRequires: haskell-platform = %{%version} %if %{with stack} BuildRequires: docbook-utils docbook-utils-pdf docbook-style-xsl %endif %endif Requires: ghc = %{ghc_version} Requires: freeglut-devel Conflicts: alex Conflicts: happy Conflicts: haskell-platform-base Conflicts: cabal-install Conflicts: hscolour Vendor: Project Vine Distribution: Vine Linux Packager: ara_t %description Haskell is a computer programming language. In particular, it is a polymorphically statically typed, lazy, purely functional language, quite different from most other programming languages. The language is named for Haskell Brooks Curry, whose work in mathematical logic serves as a foundation for functional languages. %if !%{with bootstrap} %package dep Summary: Dummy package to delete haskell-related packages Group: Applications/Languages BuildArch: noarch Requires: haskell-platform = %{version}-%{release} %description dep This package is a dummy package to delete haskell-related packages such as libghc-*, yaml and xmonad. %endif %prep %{__rm} -rf ${RPM_BUILD_ROOT} %setup -q -n %{name}-%{pkg_version} %{__mkdir_p} %{ghc_pkg_confdir} %build export PATH=${RPM_BUILD_ROOT}%{_bindir}:${PATH} export LANG=en_US.utf8 PKGNAME=%{name}-%{version} ######################################## # alex / happy / HsColour ######################################## cd %{_builddir}/%{name}-%{pkg_version} cd packages for pkg in `cat ../etc/build.packages`; do pushd ${pkg} %ghc_make_setup %ghc_setup_configure ${PKGNAME} ${pkg} %ghc_setup_build %if !%{with bootstrap} %if %{with stack} %{ghc_setup_haddock} %endif %endif %ghc_setup_copy_resister ${pkg} popd done ######################################## # haskell-platform (full packages without stack) ######################################## %if !%{with bootstrap} for pkg in `cat %{SOURCE1}`; do %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz pushd ${pkg} %ghc_fix_dependencies ${pkg} %ghc_make_setup %ghc_setup_configure ${PKGNAME} ${pkg} %ghc_setup_build %if %{with stack} %ghc_setup_haddock %endif %ghc_setup_copy_resister ${pkg} popd done # cabal-install cd %{_builddir} for pkg in `cat %{SOURCE2}`; do %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz pushd ${pkg} %ghc_fix_dependencies ${pkg} %ghc_make_setup if [ ${pkg} = "cabal-install-%{cabal_version}" ] then %ghc_setup configure \ --user \ --prefix=%{_prefix} \ --docdir=%{_docdir}/${PKGNAME}/${pkg} %ghc_setup_build %ghc_setup copy --destdir=${RPM_BUILD_ROOT} else %ghc_setup configure --user %ghc_setup_build %ghc_setup copy %ghc_setup register --inplace fi popd done %endif # %if !%{with bootstrap} ######################################## # haskell-platform (stack) ######################################## %if !%{with bootstrap} %if %{with stack} cd %{_builddir} for pkg in `cat %{SOURCE3}`; do %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz pushd ${pkg} %ghc_fix_dependencies ${pkg} case ${pkg} in "stack-%{stack_version}") cabal install --enable-documentation ;; *) cabal install --force-reinstalls ;; esac popd done %endif # %if %{with stack} %endif # %if !%{with bootstrap} %install %if !%{with bootstrap} # hscolour cd ${RPM_BUILD_ROOT}%{_bindir} %{__ln_s} HsColour hscolour # stack %if %{with stack} %{__install} -m 755 ${HOME}/.cabal/bin/stack \ ${RPM_BUILD_ROOT}%{_bindir} cd ${HOME}/.cabal/share/doc/%{rpmarch}-linux-ghc-%{ghc_version} %{__mv} stack-%{stack_version} \ ${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{version} %endif # %if %{with stack} %endif # %if !%{with bootstrap} # macros for building haskell-platform-related packages %{__mkdir_p} ${RPM_BUILD_ROOT}%{_sysconfdir}/rpm %{__cp} %{SOURCE11} ${RPM_BUILD_ROOT}/%{_sysconfdir}/rpm/ %clean %{__rm} -rf ${RPM_BUILD_ROOT} %post %ghc_pkg_recache %postun %ghc_pkg_recache %files %defattr(-, root, root) %{_bindir}/ %{_libdir}/%{name}-%{version}/ %{_libdir}/ghc-%{ghc_version}/package.conf.d/ %{_datadir}/%{name}-%{version}/ %{_docdir}/%{name}-%{version}/ %if !%{with bootstrap} %{_mandir}/man1/ %endif %{_sysconfdir}/rpm/ %if !%{with bootstrap} %files dep %endif %changelog * Sat Dec 15 2018 Toshiaki Ara 2018.8.6.3-1 - update to 8.6.3 * Wed Aug 08 2018 Toshiaki Ara 2018.8.4.3-2 - rebuild with ghc-8.4.3-2 * Fri Jul 20 2018 Toshiaki Ara 2018.8.4.3-1 - update to 8.4.3 * Thu May 17 2018 Toshiaki Ara 2018.8.4.2-1 - update to 8.4.2 - add /etc/rpm/macros.cabal - add haskell-platform-dep package for deleting haskell-related packages - rewrite using macro * Sat Jan 06 2018 Toshiaki Ara 2017.8.2.2-1 - update to 8.2.2 * Wed Feb 01 2017 Toshiaki Ara 2016.8.0.1-1 - update to 2016.8.0.1 * Tue May 03 2016 Toshiaki Ara 2015.7.10.3-3 - modify SPEC file without usage of cabal-install * Mon Apr 11 2016 Toshiaki Ara 2015.7.10.3-2 - correct SPEC file * Fri Feb 19 2016 Toshiaki Ara 2015.7.10.3-1 - update to 7.10.3 * Mon Feb 15 2016 Toshiaki Ara 2013.2.0.0-4 - delete subpackage cabal-install - delete %%{cabal_version} from Requires: cabal-install-%%{cabal_version} - add BuildRequires: libffi-devel * Thu Feb 11 2016 Toshiaki Ara 2013.2.0.0-3 - correct Requires * Thu Feb 11 2016 Toshiaki Ara 2013.2.0.0-2 - install Haskell libraries into %%{_libdir}/ghc-lib - add BuildRequires: hscolour - devide insto subpackages * Thu Feb 04 2016 Toshiaki Ara 2013.2.0.0-1 - new package