Browse Source

xmonad/xmobar: rebuild with ghc-8.4.2

git-svn-id: http://trac.vinelinux.org/repos/projects/specs@11632 ec354946-7b23-47d6-9f5a-488ba84defc7
ara_t 6 years ago
parent
commit
8651754db2

+ 56 - 66
x/xmobar/xmobar-vl.spec

@@ -1,9 +1,7 @@
 %define pkg_name    xmobar
-%define pkg_version 0.24.5
+%define pkg_version 0.26
 %define pkg_release 1%{?_dist_release}
 
-%define ghc_version 8.2.2
-
 Summary:     a minimalistic text based status bar
 Summary(ja): テキストを基礎とした最小のステータスバー
 Name:    %{pkg_name}
@@ -14,20 +12,19 @@ License: BSD3
 Group:   User Interface/Desktops
 URL:     http://hackage.haskell.org
 
-Source0: %{name}-%{version}.tar.gz
-Source1: packages
+Source0: packages
 
-# num=11; for pkg in `cat packages`; do echo "Source${num}: ${pkg}.tar.gz"; num=`expr ${num} + 1`; done
-Source11: cereal-0.5.4.0.tar.gz
-Source12: hinotify-0.3.9.tar.gz
-Source13: libmpd-0.9.0.7.tar.gz
-Source14: timezone-series-0.1.8.tar.gz
-Source15: timezone-olson-0.1.8.tar.gz
+# Patch for building with hinotify-3.10
+Source2: xmobar-0.26_with_hinotify-3.10.patch
 
-# to fix wrong dependencies in cabal files
-# do not use '-'
-%define timezoneolson_version 0.1.7
-Source101: timezone-olson.cabal
+Source11: hinotify-0.3.10.tar.gz
+Source12: hinotify.cabal
+Source13: timezone-series-0.1.9.tar.gz
+Source14: timezone-series.cabal
+Source15: timezone-olson-0.1.9.tar.gz
+Source16: timezone-olson.cabal
+Source17: xmobar-0.26.tar.gz
+Source18: xmobar.cabal
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
 
@@ -37,6 +34,7 @@ BuildRequires: libffi-devel gmp-devel zlib-devel
 BuildRequires: xorg-x11-devel
 BuildRequires: libXpm-devel
 
+Requires: haskell-platform-dep
 Requires: xmonad-contrib
 Requires: libXpm
 
@@ -44,6 +42,7 @@ Vendor: Project Vine
 Distribution: Vine Linux
 Packager: ara_t
 
+
 %description
 Xmobar is a minimalistic text based status bar.
 
@@ -57,73 +56,58 @@ Xmobarはテキストを基礎とした最小のステータスバーです。
 
 %prep
 %{__rm} -rf ${RPM_BUILD_ROOT}
-%{__rm} -rf %{_builddir}/package.conf
-%{__rm} -rf ${HOME}/.ghc
-%setup -q
-
-# Initialise the package db
-ghc-pkg init %{_builddir}/package.conf
 
 %build
-PKG_CONF_DIR=${RPM_BUILD_ROOT}%{_libdir}/ghc-%{ghc_version}/package.conf.d
-%{__rm} -rf ${PKG_CONF_DIR}
-%{__mkdir_p} ${PKG_CONF_DIR}
+%ghc_pkg_init
 
-# install dependent packages
 cd %{_builddir}
-for pkg in `cat %{SOURCE1}`; do
-  %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz
-  cd ${pkg}
-  # fix wrong dependencies
-  case ${pkg} in
-      "timezone-olson-%{timezoneolson_version}") %{__cp} %{SOURCE101} . ;;
-      *) ;;
-  esac
-  cabal configure \
-    --prefix=%{_prefix} \
-    --libdir=%{_libdir}/ghc-lib/%{name}/${pkg} \
-    --libsubdir= \
-    --datadir=%{_datadir}/%{name}/${pkg} \
-    --datasubdir= \
-    --docdir=%{_docdir}/%{name}/${pkg}
-
-  cabal build
-  cabal haddock
-  cabal copy --destdir=${RPM_BUILD_ROOT}
-  cabal register --inplace
-  cabal register --gen-pkg-config=${PKG_CONF_DIR}/%{name}_${pkg}.conf
-  cd ..
+for pkg in `sed '$d' %{SOURCE0}`; do
+    %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz
+    pushd ${pkg}
+        %ghc_fix_dependencies ${pkg}
+        %cabal_configure2 %{name} ${pkg}
+        %cabal_build
+        %cabal_haddock
+        %cabal_copy_resister %{name}_${pkg}
+    popd
+done
+
+cd %{_builddir}
+for pkg in `tail -n 1 %{SOURCE0}`; do
+    %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz
+    pushd ${pkg}
+        %ghc_fix_dependencies ${pkg}
+
+        # Patch for building with hinotify-3.10
+        %{__patch} -p1 < %{SOURCE2}
+
+        %cabal_configure2 %{name} ${pkg} \
+            --flags="with_utf8" --flags="with_xft" \
+            --flags="with_threaded" --flags="with_inotify" \
+            --flags="with_datazone" --flags="with_xpm"
+        %cabal_build
+        %cabal_haddock
+        %cabal_copy_resister %{name}_${pkg}
+    popd
 done
 
-# build xmobar
-cd %{_builddir}/%{name}-%{version}
-cabal configure \
-    --prefix=%{_prefix} \
-    --libdir=%{_libdir}/ghc-lib/%{name}-%{version} \
-    --libsubdir= \
-    --datadir=%{_datadir}/%{name}-%{version} \
-    --datasubdir= \
-    --docdir=%{_docdir}/%{name}/%{name}-%{version} \
-    --flags="with_utf8" --flags="with_xft" \
-    --flags="with_threaded" --flags="with_inotify" \
-    --flags="with_datazone" --flags="with_xpm"
-
-cabal build
 
 %install
-cabal copy --destdir=${RPM_BUILD_ROOT}
+# copy documents
+pushd %{_builddir}/%{name}-%{version}
+    %{__cp} readme.md \
+     ${RPM_BUILD_ROOT}%{_docdir}/%{name}/%{name}-%{version}
+popd
 
-%{__cp} license news.md readme.md \
- ${RPM_BUILD_ROOT}%{_docdir}/%{name}/%{name}-%{version}
 
 %clean
 %{__rm} -rf ${RPM_BUILD_ROOT}
 
 %post
-ghc-pkg recache
+%ghc_pkg_recache
 
 %postun
-ghc-pkg recache
+%ghc_pkg_recache
 
 
 %files
@@ -135,6 +119,12 @@ ghc-pkg recache
 
 
 %changelog
+* Fri May 18 2018 Toshiaki Ara <ara_t@384.jp> 0.26-1
+- update to 0.26
+- rebuild using ghc-8.4.2
+- add Patch for building with hinotify-3.10 (Source2)
+- rewrite using macro
+
 * Tue Jan 09 2018 Toshiaki Ara <ara_t@384.jp> 0.24.5-2
 - update to 0.24.5
 - rebuild using ghc-8.2.2

+ 46 - 63
x/xmonad-contrib/xmonad-contrib-vl.spec

@@ -1,8 +1,6 @@
 %define pkg_name    xmonad-contrib
 %define pkg_version 0.13
-%define pkg_release 1%{?_dist_release}
-
-%define ghc_version 8.2.2
+%define pkg_release 3%{?_dist_release}
 
 Summary:     Third party extensions for xmonad
 Summary(ja): サードパーティーによるxmonad拡張
@@ -14,17 +12,19 @@ License: BSD3
 Group:   User Interface/Desktops
 URL:     http://hackage.haskell.org
 
-Source0: %{name}-%{version}.tar.gz
-Source1: packages
+Source0: packages
 
-# num=11; for pkg in `cat packages`; do echo "Source${num}: ${pkg}.tar.gz"; num=`expr ${num} + 1`; done
-Source11: X11-xft-0.3.1.tar.gz
-Source12: old-time-1.1.0.3.tar.gz
+# Patch for building ghc-8.4
+Source1: xmonad-contrib-0.13_using_ghc-8.4.patch
 
-# to fix wrong dependencies in cabal files
-# do not use '-'
-%define oldtime_version 1.1.0.3
-Source101: old-time.cabal
+Source11: X11-xft-0.3.1.tar.gz
+Source12: X11-xft.cabal
+Source13: old-time-1.1.0.3.tar.gz
+Source14: old-time.cabal
+Source15: random-1.1.tar.gz
+Source16: random.cabal
+Source17: xmonad-contrib-0.13.tar.gz
+Source18: xmonad-contrib.cabal
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
 
@@ -35,12 +35,14 @@ BuildRequires: libffi-devel gmp-devel zlib-devel
 BuildRequires: xorg-x11-devel
 BuildRequires: docbook-utils docbook-utils-pdf docbook-style-xsl
 
+Requires: haskell-platform-dep
 Requires: xmonad
 
 Vendor: Project Vine
 Distribution: Vine Linux
 Packager: ara_t
 
+
 %description
 Third party tiling algorithms, configurations and scripts to xmonad,
  a tiling window manager for X.
@@ -52,72 +54,45 @@ Third party tiling algorithms, configurations and scripts to xmonad,
 
 %prep
 %{__rm} -rf ${RPM_BUILD_ROOT}
-%{__rm} -rf %{_builddir}/package.conf
-%{__rm} -rf ${HOME}/.ghc
-%setup -q
-
-# Initialise the package db
-ghc-pkg init %{_builddir}/package.conf
 
 %build
-PKG_CONF_DIR=${RPM_BUILD_ROOT}%{_libdir}/ghc-%{ghc_version}/package.conf.d
-%{__mkdir_p} ${PKG_CONF_DIR}
+%ghc_pkg_init
 
-# install dependent packages
 cd %{_builddir}
-for pkg in `cat %{SOURCE1}`; do
-  %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz
-  cd ${pkg}
-  # fix wrong dependencies
-  case ${pkg} in
-      "old-time-%{oldtime_version}") %{__cp} %{SOURCE101} . ;;
-      *) ;;
-  esac
-
-  cabal configure \
-        --prefix=%{_prefix} \
-        --libdir=%{_libdir}/ghc-lib/%{name}/${pkg} \
-        --libsubdir= \
-        --datadir=%{_datadir}/%{name}/${pkg} \
-        --datasubdir= \
-        --docdir=%{_docdir}/%{name}/${pkg}
-
-  cabal build
-  cabal haddock
-  cabal copy --destdir=${RPM_BUILD_ROOT}
-  cabal register --inplace
-  cabal register --gen-pkg-config=${PKG_CONF_DIR}/%{name}_${pkg}.conf
-  cd ..
+for pkg in `cat %{SOURCE0}`; do
+    %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz
+    pushd ${pkg}
+        %ghc_fix_dependencies ${pkg}
+
+        case ${pkg} in
+            "%{name}-%{version}") %{__patch} -p1 < %{SOURCE1} ;;
+            *) ;;
+        esac
+
+        %cabal_configure2 %{name} ${pkg}
+        %cabal_build
+        %cabal_haddock
+        %cabal_copy_resister %{name}_${pkg}
+    popd
 done
 
-# build xmonad-contrib
-cd %{_builddir}/%{name}-%{version}
-cabal configure \
-    --prefix=%{_prefix} \
-    --libdir=%{_libdir}/ghc-lib/%{name}/%{name}-%{version} \
-    --libsubdir= \
-    --datadir=%{_datadir}/%{name}/%{name}-%{version} \
-    --datasubdir= \
-    --docdir=%{_docdir}/%{name}/%{name}-%{version}
-
-cabal build
-cabal haddock
-cabal copy --destdir=${RPM_BUILD_ROOT}
-cabal register --inplace
-cabal register --gen-pkg-config=${PKG_CONF_DIR}/%{pkg_name}-%{version}.conf
 
 %install
-%{__cp} CHANGES.md LICENSE README.md \
- ${RPM_BUILD_ROOT}%{_docdir}/%{name}/%{name}-%{version}
+# copy documents
+pushd %{_builddir}/%{name}-%{version}
+    %{__cp} CHANGES.md LICENSE README.md \
+     ${RPM_BUILD_ROOT}%{_docdir}/%{name}/%{name}-%{version}
+popd
+
 
 %clean
 %{__rm} -rf ${RPM_BUILD_ROOT}
 
 %post
-ghc-pkg recache
+%ghc_pkg_recache
 
 %postun
-ghc-pkg recache
+%ghc_pkg_recache
 
 
 %files
@@ -128,6 +103,14 @@ ghc-pkg recache
 
 
 %changelog
+* Fri May 18 2018 Toshiaki Ara <ara_t@384.jp> 0.13-3
+- rebuild using ghc-8.4.2
+- add Patch for building with ghc-8.4 (Source1)
+- rewrite using macro
+
+* Thu May 10 2018 Toshiaki Ara <ara_t@384.jp> 0.13-2
+- rebuild using ghc-8.4.2
+
 * Tue Jan 09 2018 Toshiaki Ara <ara_t@384.jp> 0.13-1
 - update to 0.13
 - rebuild using ghc-8.0.2

+ 43 - 75
x/xmonad-extras/xmonad-extras-vl.spec

@@ -1,9 +1,7 @@
 %define pkg_name    xmonad-extras
-%define pkg_version 0.13.2
+%define pkg_version 0.13.3
 %define pkg_release 1%{?_dist_release}
 
-%define ghc_version 8.2.2
-
 Summary:     Various modules for xmonad
 Summary(ja): xmonadのための様々なモジュール
 Name:    %{pkg_name}
@@ -14,24 +12,20 @@ License: BSD3
 Group:   User Interface/Desktops
 URL:     http://hackage.haskell.org
 
-Source0: %{name}-%{version}.tar.gz
-Source1: packages
-
-# num=11; for pkg in `cat packages`; do echo "Source${num}: ${pkg}.tar.gz"; num=`expr ${num} + 1`; done
-Source11: language-c-0.7.1.tar.gz
-Source12: c2hs-0.28.3.tar.gz
-Source13: alsa-core-0.5.0.1.tar.gz
-Source14: ghc-paths-0.1.0.9.tar.gz
-Source15: libmpd-0.9.0.7.tar.gz
-Source16: transformers-compat-0.5.1.4.tar.gz
-Source17: alsa-mixer-0.2.0.3.tar.gz
-Source18: exceptions-0.8.3.tar.gz
-Source19: hint-0.7.0.tar.gz
-
-# to fix wrong dependencies in cabal files
-# do not use '-'
-%define exceptions_version 0.8.3
-Source51: exceptions.cabal
+Source0: packages
+
+Source11: alsa-core-0.5.0.1.tar.gz
+Source12: alsa-core.cabal
+Source13: libmpd-0.9.0.8.tar.gz
+Source14: libmpd.cabal
+Source15: language-c-0.7.2.tar.gz
+Source16: language-c.cabal
+Source17: c2hs-0.28.3.tar.gz
+Source18: c2hs.cabal
+Source19: alsa-mixer-0.2.0.3.tar.gz
+Source20: alsa-mixer.cabal
+Source21: xmonad-extras-0.13.3.tar.gz
+Source22: xmonad-extras.cabal
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
 
@@ -43,12 +37,15 @@ BuildRequires: alsa-lib-devel
 BuildRequires: ncurses-devel
 BuildRequires: docbook-utils docbook-utils-pdf docbook-style-xsl
 
+Requires: haskell-platform-dep
 Requires: xmonad xmonad-contrib
 
+
 Vendor: Project Vine
 Distribution: Vine Linux
 Packager: ara_t
 
+
 %description
 Various modules for xmonad that cannot be added to xmonad-contrib
  because of additional dependencies.
@@ -60,73 +57,39 @@ xmonad-contribに含まれなかったモジュールを含みます。
 
 %prep
 %{__rm} -rf ${RPM_BUILD_ROOT}
-%{__rm} -rf %{_builddir}/package.conf
-%{__rm} -rf ${HOME}/.ghc
-%setup -q
-
-# Initialise the package db
-ghc-pkg init %{_builddir}/package.conf
 
 %build
-PKG_CONF_DIR=${RPM_BUILD_ROOT}%{_libdir}/ghc-%{ghc_version}/package.conf.d
-%{__mkdir_p} ${PKG_CONF_DIR}
+export PATH=${RPM_BUILD_ROOT}%{_bindir}:${PATH}
+%ghc_pkg_init
 
-export PATH=${RPM_BUILD_ROOT}%{_bindir}:${HOME}/.cabal/bin:${PATH}
-
-# install dependent packages
 cd %{_builddir}
-for pkg in `cat %{SOURCE1}`; do
-  %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz
-  cd ${pkg}
-  # fix wrong dependencies
-  case ${pkg} in
-      "exceptions-%{exceptions_version}") %{__cp} %{SOURCE51} . ;;
-      *) ;;
-  esac
-
-  cabal configure \
-        --prefix=%{_prefix} \
-        --libdir=%{_libdir}/ghc-lib/%{name}/${pkg} \
-        --libsubdir= \
-        --datadir=%{_datadir}/%{name}/${pkg} \
-        --datasubdir= \
-        --docdir=%{_docdir}/%{name}/${pkg}
-
-  cabal build
-  cabal haddock
-  cabal copy --destdir=${RPM_BUILD_ROOT}
-  cabal register --inplace
-  cabal register --gen-pkg-config=${PKG_CONF_DIR}/%{name}_${pkg}.conf
-  cd ..
+for pkg in `cat %{SOURCE0}`; do
+    %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz
+    pushd ${pkg}
+        %ghc_fix_dependencies ${pkg}
+        %cabal_configure2 %{name} ${pkg}
+        %cabal_build
+        %cabal_haddock
+        %cabal_copy_resister %{name}_${pkg}
+    popd
 done
 
-# build xmonad-extras
-cd %{_builddir}/%{name}-%{version}
-cabal configure \
-    --prefix=%{_prefix} \
-    --libdir=%{_libdir}/ghc-lib/%{name}/%{name}-%{version} \
-    --libsubdir= \
-    --datadir=%{_datadir}/%{name}/%{name}-%{version} \
-    --datasubdir= \
-    --docdir=%{_docdir}/%{name}/%{name}-%{version}
-
-cabal build
-cabal haddock
-cabal copy --destdir=${RPM_BUILD_ROOT}
-cabal register --inplace
-cabal register --gen-pkg-config=${PKG_CONF_DIR}/%{pkg_name}-%{version}.conf
-
-# %install
-# %{__cp} LICENSE ${RPM_BUILD_ROOT}%{_docdir}/%{name}/%{name}-%{version}
+%install
+# copy documents
+pushd %{_builddir}/%{name}-%{version}
+    %{__cp} CHANGELOG.md LICENSE README.md \
+     ${RPM_BUILD_ROOT}%{_docdir}/%{name}/%{name}-%{version}
+popd
+
 
 %clean
 %{__rm} -rf ${RPM_BUILD_ROOT}
 
 %post
-ghc-pkg recache
+%ghc_pkg_recache
 
 %postun
-ghc-pkg recache
+%ghc_pkg_recache
 
 
 %files
@@ -139,6 +102,11 @@ ghc-pkg recache
 
 
 %changelog
+* Fri May 18 2018 Toshiaki Ara <ara_t@384.jp> 0.13.3-1
+- update to 0.13.3
+- rebuild using ghc-8.4.2
+- rewrite using macro
+
 * Tue Jan 09 2018 Toshiaki Ara <ara_t@384.jp> 0.13.2-1
 - update to 0.13.2
 - build using ghc-8.2.2

+ 27 - 23
x/xmonad-utils/xmonad-utils-vl.spec

@@ -1,8 +1,6 @@
 %define pkg_name    xmonad-utils
 %define pkg_version 0.1.3.3
-%define pkg_release 6%{?_dist_release}
-
-%define ghc_version 8.2.2
+%define pkg_release 7%{?_dist_release}
 
 Summary:     a small collection of X utilities when running XMonad
 Summary(ja): XMonadのためのXユーティリティ集
@@ -14,7 +12,11 @@ License: BSD3
 Group:   User Interface/Desktops
 URL:     http://hackage.haskell.org
 
-Source0: %{name}-%{version}.tar.gz
+Source0: packages
+
+Source11: xmonad-utils-0.1.3.3.tar.gz
+Source12: xmonad-utils.cabal
+
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
 
@@ -25,12 +27,15 @@ BuildRequires: libffi-devel gmp-devel zlib-devel
 BuildRequires: xorg-x11-devel
 BuildRequires: ncurses-devel
 
+Requires: haskell-platform-dep
 Requires: xmonad
 
+
 Vendor: Project Vine
 Distribution: Vine Linux
 Packager: ara_t
 
+
 %description
 A small collection of X utilities useful when running XMonad. It includes:
 - hxsel: which returns the text currently in the X selection;
@@ -42,36 +47,31 @@ A small collection of X utilities useful when running XMonad. It includes:
 
 %prep
 %{__rm} -rf ${RPM_BUILD_ROOT}
-%{__rm} -rf %{_builddir}/package.conf
-%{__rm} -rf ${HOME}/.ghc
-%setup -q
-
-# Initialise the package db
-ghc-pkg init %{_builddir}/package.conf
 
 %build
-cabal configure \
-    --prefix=%{_prefix} \
-    --libdir=%{_libdir}/ghc-lib/%{name}/%{name}-%{version} \
-    --libsubdir= \
-    --datadir=%{_datadir}/%{name}/%{name}-%{version} \
-    --datasubdir= \
-    --docdir=%{_docdir}/%{name}/%{name}-%{version}
+%ghc_pkg_init
 
-cabal build
-cabal copy --destdir=${RPM_BUILD_ROOT}
+cd %{_builddir}
+for pkg in `cat %{SOURCE0}`; do
+    %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz
+    pushd ${pkg}
+        %ghc_fix_dependencies ${pkg}
+        %cabal_configure2 %{name} ${pkg}
+        %cabal_build
+        %cabal_haddock
+        %cabal_copy_resister %{name}_${pkg}
+    popd
+done
 
-%install
-%{__cp} LICENSE ${RPM_BUILD_ROOT}%{_docdir}/%{name}/%{name}-%{version}
 
 %clean
 %{__rm} -rf ${RPM_BUILD_ROOT}
 
 %post
-ghc-pkg recache
+%ghc_pkg_recache
 
 %postun
-ghc-pkg recache
+%ghc_pkg_recache
 
 
 %files
@@ -81,6 +81,10 @@ ghc-pkg recache
 
 
 %changelog
+* Fri May 18 2018 Toshiaki Ara <ara_t@384.jp> 0.1.3.3-7
+- rebuild using ghc-8.4.2
+- rewrite using macro
+
 * Tue Jan 09 2018 Toshiaki Ara <ara_t@384.jp> 0.1.3.3-6
 - rebuild using ghc-8.2.2
 

+ 68 - 72
x/xmonad/xmonad-vl.spec

@@ -1,8 +1,6 @@
 %define pkg_name    xmonad
 %define pkg_version 0.13
-%define pkg_release 1%{?_dist_release}
-
-%define ghc_version 8.2.2
+%define pkg_release 2%{?_dist_release}
 
 Summary:     Lightweight X11 window manager written in Haskell
 Summary(ja): Haskellで書かれたタイル型ウィンドウマネージャ
@@ -14,20 +12,22 @@ License: BSD3
 Group:   User Interface/Desktops
 URL:     http://hackage.haskell.org
 
-Source0: %{name}-%{version}.tar.gz
-Source1: packages
-Source2: xmonad.desktop
+Source0: packages
+Source1: xmonad.desktop
 
-# num=11; for pkg in `cat packages`; do echo "Source${num}: ${pkg}.tar.gz"; num=`expr ${num} + 1`; done
-Source11: X11-1.8.tar.gz
-Source12: extensible-exceptions-0.1.1.4.tar.gz
-Source13: setlocale-1.0.0.5.tar.gz
-Source14: utf8-string-1.0.1.1.tar.gz
+# Patch for building ghc-8.4
+Source2: xmonad-0.13_using_ghc-8.4.patch
 
-# to fix wrong dependencies in cabal files
-# do not use '-'
-%define utf8string_version 1.0.1.1
-Source101: utf8-string.cabal
+Source11: X11-1.8.tar.gz
+Source12: X11.cabal
+Source13: extensible-exceptions-0.1.1.4.tar.gz
+Source14: extensible-exceptions.cabal
+Source15: setlocale-1.0.0.6.tar.gz
+Source16: setlocale.cabal
+Source17: utf8-string-1.0.1.1.tar.gz
+Source18: utf8-string.cabal
+Source19: xmonad-0.13.tar.gz
+Source20: xmonad.cabal
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
 
@@ -36,13 +36,17 @@ BuildRequires: libffi-devel gmp-devel zlib-devel
 
 BuildRequires: libghc-data-default-class
 BuildRequires: libghc-dlist
+BuildRequires: libghc-old-locale
 BuildRequires: libghc-data-default
+BuildRequires: libghc-semigroups
 
 BuildRequires: xorg-x11-devel
 BuildRequires: libXrandr-devel libXinerama-devel
 BuildRequires: docbook-utils docbook-utils-pdf docbook-style-xsl
 
 Requires: libXrandr-devel libXinerama-devel
+Requires: haskell-platform-dep
+
 
 Vendor: Project Vine
 Distribution: Vine Linux
@@ -81,85 +85,70 @@ XmonadはHaskellで設定され、ユーザーが設定ファイルを書くこ
 
 %prep
 %{__rm} -rf ${RPM_BUILD_ROOT}
-%{__rm} -rf %{_builddir}/package.conf
-%{__rm} -rf ${HOME}/.ghc
-%setup -q
-
-# Initialise the package db
-ghc-pkg init %{_builddir}/package.conf
 
 %build
-PKG_CONF_DIR=${RPM_BUILD_ROOT}%{_libdir}/ghc-%{ghc_version}/package.conf.d
-%{__rm} -rf ${PKG_CONF_DIR}
-%{__mkdir_p} ${PKG_CONF_DIR}
+%ghc_pkg_init
 
-# install dependent packages
 cd %{_builddir}
-for pkg in `cat %{SOURCE1}`; do
-  %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz
-  cd ${pkg}
-  case ${pkg} in
-      "utf8-string-%{utf8string_version}") %{__cp} %{SOURCE101} . ;;
-      *) ;;
-  esac
-
-  cabal configure \
-    --prefix=%{_prefix} \
-    --libdir=%{_libdir}/ghc-lib/%{name}/${pkg} \
-    --libsubdir= \
-    --datadir=%{_datadir}/%{name}/${pkg} \
-    --datasubdir= \
-    --docdir=%{_docdir}/%{name}/${pkg}
-
-  cabal build
-  cabal haddock
-  cabal copy --destdir=${RPM_BUILD_ROOT}
-  cabal register --inplace
-  cabal register --gen-pkg-config=${PKG_CONF_DIR}/%{name}_${pkg}.conf
-  cd ..
+for pkg in `sed '$d' %{SOURCE0}`; do
+    %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz
+    pushd ${pkg}
+        %ghc_fix_dependencies ${pkg}
+        %cabal_configure2 %{name} ${pkg}
+        %cabal_build
+        %cabal_haddock
+        %cabal_copy_resister %{name}_${pkg}
+    popd
 done
 
 # build xmonad
-cd %{_builddir}/%{name}-%{version}
-cabal configure \
-    --prefix=%{_prefix} \
-    --libdir=%{_libdir}/ghc-lib/%{name}/%{name}-%{version} \
-    --libsubdir= \
-    --datadir=%{_datadir}/%{name}/%{name}-%{version} \
-    --datasubdir= \
-    --docdir=%{_docdir}/%{name}/%{name}-%{version}
-
-cabal build
-cabal haddock
-cabal copy --destdir=${RPM_BUILD_ROOT}
-cabal register --inplace
-cabal register --gen-pkg-config=${PKG_CONF_DIR}/%{pkg_name}-%{version}.conf
+for pkg in `tail -n 1 %{SOURCE0}`; do
+    %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz
+    pushd ${pkg}
+        %ghc_fix_dependencies ${pkg}
+
+        # Patch for building ghc-8.4
+        %{__patch} -p1 < %{SOURCE2}
+
+        %cabal_configure2 %{name} %{name}-%{version}
+        %cabal_build
+        %cabal_haddock
+        %cabal_copy_resister %{pkgname}-%{version}
+    popd
+done
+
 
 %install
 %{__mkdir_p} ${RPM_BUILD_ROOT}%{_datadir}/man/man1
-(cd ${RPM_BUILD_ROOT}%{_datadir}/%{name}/%{name}-%{version}/man
- %{__mv} xmonad.1 ${RPM_BUILD_ROOT}%{_datadir}/man/man1
- %{__mv} xmonad.1.html xmonad.hs \
-  ${RPM_BUILD_ROOT}%{_docdir}/%{name}/%{name}-%{version}
-)
+
+# copy man file
+pushd ${RPM_BUILD_ROOT}%{_datadir}/%{name}/%{name}-%{version}/man
+    %{__mv} xmonad.1 ${RPM_BUILD_ROOT}%{_datadir}/man/man1
+    %{__mv} xmonad.1.html xmonad.hs \
+     ${RPM_BUILD_ROOT}%{_docdir}/%{name}/%{name}-%{version}
+popd
+
 %{__rm} -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-%{version}/man
 
 # xsession desktop entry
 %{__mkdir_p} %{buildroot}%{_datadir}/xsessions/
-%{__install} -m 644 %{SOURCE2} ${RPM_BUILD_ROOT}%{_datadir}/xsessions/
+%{__install} -m 644 %{SOURCE1} ${RPM_BUILD_ROOT}%{_datadir}/xsessions/
 
-%{__cp} CHANGES.md LICENSE README.md STYLE \
- ${RPM_BUILD_ROOT}%{_docdir}/%{name}/%{name}-%{version}
+# copy documents
+pushd %{_builddir}/%{name}-%{version}
+    %{__cp} CHANGES.md LICENSE README.md STYLE \
+     ${RPM_BUILD_ROOT}%{_docdir}/%{name}/%{name}-%{version}
+popd
 
 %clean
 %{__rm} -rf ${RPM_BUILD_ROOT}
 
 
 %post
-ghc-pkg recache
+%ghc_pkg_recache
 
 %postun
-ghc-pkg recache
+%ghc_pkg_recache
 
 
 %files
@@ -173,7 +162,14 @@ ghc-pkg recache
 
 
 %changelog
-* Tue Jan 09 2018 Toshiaki Ara <ara_t@384.jp> 0.13
+* Fri May 18 2018 Toshiaki Ara <ara_t@384.jp> 0.13-2
+- rebuild using ghc-8.4.2
+- add Patch for building with ghc-8.4 (Source2)
+- add BuildRequires: libghc-old-locale
+- add BuildRequires: libghc-semigroups
+- rewrite using macro
+
+* Tue Jan 09 2018 Toshiaki Ara <ara_t@384.jp> 0.13-1
 - update to 0.13
 - build using ghc-8.2.2