source: projects/specs/trunk/x/xmonad/xmonad-vl.spec @ 10169

Revision 10169, 4.8 KB checked in by ara_t, 8 years ago (diff)

Haskellで書かれたタイル型ウィンドウマネージャ

Line 
1%define pkg_name    xmonad
2%define pkg_version 0.12
3%define pkg_release 3%{?_dist_release}
4
5%define ghc_version 7.10.3
6
7Summary:     Lightweight X11 window manager written in Haskell
8Summary(ja): Haskellで書かれたタイル型ウィンドウマネージャ
9Name:    %{pkg_name}
10Version: %{pkg_version}
11Release: %{pkg_release}
12
13License: BSD3
14Group:   User Interface/Desktops
15URL:     http://hackage.haskell.org
16
17Source0: %{name}-%{version}.tar.gz
18Source1: X11-1.6.1.2.tar.gz
19Source2: extensible-exceptions-0.1.1.4.tar.gz
20Source3: setlocale-1.0.0.3.tar.gz
21Source4: utf8-string-1.0.1.1.tar.gz
22
23Source100: packages
24Source200: xmonad.desktop
25
26BuildRoot: %{_tmppath}/%{name}-%{version}-root
27
28BuildRequires: ghc haskell-platform-base cabal-install
29BuildRequires: libffi-devel gmp-devel zlib-devel
30
31BuildRequires: libghc-data-default-class
32BuildRequires: libghc-dlist
33BuildRequires: libghc-data-default
34
35BuildRequires: xorg-x11-devel
36BuildRequires: docbook-utils docbook-utils-pdf docbook-style-xsl
37BuildRequires: hscolour
38
39Requires: ghc
40Requires: libghc-data-default
41
42Vendor: Project Vine
43Distribution: Vine Linux
44Packager: Toshiaki Ara <ara_t@384.jp>
45
46
47%description
48Xmonad is a minimalist tiling window manager for X, written in Haskell.
49Windows are managed using automatic layout algorithms, which can be dynamically
50reconfigured. At any time windows are arranged so as to maximise the use of
51screen real estate. All features of the window manager are accessible purely
52from the keyboard: a mouse is entirely optional.
53Xmonad is configured in Haskell, and custom layout algorithms may be implemented
54 by the user in config files.
55A principle of Xmonad is predictability: the user should know in advance
56 precisely the window arrangement that will result from any action.
57
58Please sample configure file as follows.
59`cp %{_docdir}/%{name}/%{name}-%{version}/xmonad.hs ~/.xmonad/`
60
61
62%description -l ja
63XmonadはHaskellで書かれたタイル型ウィンドウマネージャです。
64ウィンドウは自動的レイアウトアルゴリズムによって管理されており、
65ウィンドウはいつでも最大化されて配置されます。
66純粋にキーボード操作だけで操作することが可能であり、
67マウスの使用は単にオプションです。
68XmonadはHaskellで設定され、ユーザーが設定ファイルを書くことで
69レイアウトをカスタマイズすることができます。
70
71設定ファイルの例が
72%{_docdir}/%{name}/%{name}-%{version}/xmonad.hs
73にあるため、
74~/.xmonad 以下にコピーして使用して下さい。
75
76
77%prep
78%{__rm} -rf ${RPM_BUILD_ROOT}
79%setup -q
80# Initialise the package db
81ghc-pkg init %{_builddir}/package.conf
82
83%build
84PKG_CONF_DIR=${RPM_BUILD_ROOT}%{_libdir}/ghc-%{ghc_version}/package.conf.d
85%{__mkdir_p} ${PKG_CONF_DIR}
86
87# install dependent packages
88cd %{_builddir}
89for pkg in `cat %{SOURCE100}`; do
90  %{__tar} xzf %{_sourcedir}/${pkg}.tar.gz
91  cd ${pkg}
92  cabal configure \
93    --prefix=%{_prefix} \
94    --libdir=%{_libdir}/ghc-lib/%{name}/${pkg} \
95    --libsubdir= \
96    --datadir=%{_datadir}/%{name}/${pkg} \
97    --datasubdir= \
98    --docdir=%{_docdir}/%{name}/${pkg}
99
100  cabal build
101  cabal haddock
102  cabal copy --destdir=${RPM_BUILD_ROOT}
103  cabal register --inplace
104  cabal register --gen-pkg-config=${PKG_CONF_DIR}/%{name}_${pkg}.conf
105  cd ..
106done
107
108# build xmonad
109cd %{_builddir}/%{name}-%{version}
110cabal configure \
111    --prefix=%{_prefix} \
112    --libdir=%{_libdir}/ghc-lib/%{name}/%{name}-%{version} \
113    --libsubdir= \
114    --datadir=%{_datadir}/%{name}/%{name}-%{version} \
115    --datasubdir= \
116    --docdir=%{_docdir}/%{name}/%{name}-%{version}
117
118cabal build
119cabal haddock
120cabal copy --destdir=${RPM_BUILD_ROOT}
121cabal register --inplace
122cabal register --gen-pkg-config=${PKG_CONF_DIR}/%{name}-%{version}.conf
123
124%install
125%{__mkdir_p} ${RPM_BUILD_ROOT}%{_datadir}/man/man1
126(cd ${RPM_BUILD_ROOT}%{_datadir}/%{name}/%{name}-%{version}/man
127 %{__mv} xmonad.1 ${RPM_BUILD_ROOT}%{_datadir}/man/man1
128 %{__mv} xmonad.1.html xmonad.hs \
129  ${RPM_BUILD_ROOT}%{_docdir}/%{name}/%{name}-%{version}
130)
131%{__rm} -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}-%{version}/man
132
133# xsession desktop entry
134%{__mkdir_p} %{buildroot}%{_datadir}/xsessions/
135%{__install} -m 644 %{SOURCE200} ${RPM_BUILD_ROOT}%{_datadir}/xsessions/
136
137%{__cp} CHANGES.md LICENSE README.md STYLE \
138 ${RPM_BUILD_ROOT}%{_docdir}/%{name}/%{name}-%{version}
139
140%clean
141%{__rm} -rf ${RPM_BUILD_ROOT}
142
143
144%post
145ghc-pkg recache
146
147%postun
148ghc-pkg recache
149
150
151%files
152%defattr(-, root, root)
153%{_bindir}/
154%{_libdir}/ghc-%{ghc_version}/
155%{_libdir}/ghc-lib/
156%{_datadir}/xsessions/
157%{_docdir}/
158%{_mandir}/
159
160
161%changelog
162* Tue Apr 12 2016 Toshiaki Ara <ara_t@384.jp> 0.12-3
163- correct SPEC file
164
165* Tue Mar 01 2016 Toshiaki Ara <ara_t@384.jp> 0.12-2
166- rebuild under dependent rpm packages
167
168* Sat Feb 27 2016 Toshiaki Ara <ara_t@384.jp> 0.12-1
169- new package
Note: See TracBrowser for help on using the repository browser.