From Fedora Project Wiki
No edit summary
Line 4: Line 4:
<pre>
<pre>
%define hsc_name ghc
%define hsc_name ghc
%define hsc_version 6.8.2
%define hsc_version 6.8.3
%define pkg_name xmonad
%define pkg_name progWithLibs
%define pkg_libdir %{_libdir}/%{hsc_name}-%{hsc_version}/%{pkg_name}-%{version}
%define pkg_libdir %{_libdir}/%{hsc_name}-%{hsc_version}/%{pkg_name}-%{version}


Line 16: Line 16:
License: BSD
License: BSD
Group: User Interface/X
Group: User Interface/X
URL: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/xmonad
URL: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/%{pkg_name}
Source: http://hackage.haskell.org/packages/archive/xmonad/%{version}/xmonad-%{version}.tar.gz
Source: http://hackage.haskell.org/packages/archive/%{pkg_name}/%{version}/%{pkg_name}-%{version}.tar.gz
Summary: A tiling window manager
Summary: Summary of %{pkg_name}
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: ghc = %{hsc_version}, ghc682-prof, haddock
BuildRequires: %{hsc_name} = %{hsc_version}, %{hsc_name}-prof = %{hsc_version}, haddock
BuildRequires: libXinerama-devel, libX11-devel, libXext-devel
BuildRequires: ...
BuildRequires: ghc-x11 = 1.4.1, ghc-x11-prof = 1.4.1
Requires: %{hsc_name} = %{hsc_version}
Requires: ghc = %{hsc_version}
Requires: ...
Requires: ghc-x11 = 1.4.1


%description
%description
xmonad is a tiling window manager for X. Windows are arranged
Description of %{pkg_name}.
automatically to tile the screen without gaps or overlap, maximising
screen use. All features of the window manager are accessible from
the keyboard: a mouse is strictly optional. xmonad is written and
extensible in Haskell. Custom layout algorithms, and other
extensions, may be written by the user in config files. Layouts are
applied dynamically, and different layouts may be used on each
workspace. Xinerama is fully supported, allowing windows to be tiled
on several screens.
 


%package -n %{hsc_name}-%{pkg_name}
%package -n %{hsc_name}-%{pkg_name}
Summary: A tiling window manager
Summary: Summary of %{pkg_name}
Group: Development/Libraries
Group: Development/Libraries
Requires: %{hsc_name} = %{hsc_version}
Requires: %{hsc_name} = %{hsc_version}


%description -n %{hsc_name}-%{pkg_name}
%description -n %{hsc_name}-%{pkg_name}
xmonad is a tiling window manager for X. Windows are arranged
automatically to tile the screen without gaps or overlap, maximising
screen use. All features of the window manager are accessible from
the keyboard: a mouse is strictly optional. xmonad is written and
extensible in Haskell. Custom layout algorithms, and other
extensions, may be written by the user in config files. Layouts are
applied dynamically, and different layouts may be used on each
workspace. Xinerama is fully supported, allowing windows to be tiled
on several screens.
This package contains libraries for %{hsc_name} %{hsc_version}.
This package contains libraries for %{hsc_name} %{hsc_version}.


Line 62: Line 41:
Group: Development/Libraries
Group: Development/Libraries
Requires: %{hsc_name}-%{pkg_name} = %{version}
Requires: %{hsc_name}-%{pkg_name} = %{version}


%description -n %{hsc_name}-%{pkg_name}-prof
%description -n %{hsc_name}-%{pkg_name}-prof
xmonad is a tiling window manager for X. Windows are arranged
automatically to tile the screen without gaps or overlap, maximising
screen use. All features of the window manager are accessible from
the keyboard: a mouse is strictly optional. xmonad is written and
extensible in Haskell. Custom layout algorithms, and other
extensions, may be written by the user in config files. Layouts are
applied dynamically, and different layouts may be used on each
workspace. Xinerama is fully supported, allowing windows to be tiled
on several screens.
This package contains profiling libraries for %{hsc_name} %{hsc_version}.
This package contains profiling libraries for %{hsc_name} %{hsc_version}.


Line 116: Line 84:
%ghc_postun_script
%ghc_postun_script


%files
%defattr(-,root,root,-)
%doc LICENSE
%{_bindir}/xmonad


%files -n %{hsc_name}-%{pkg_name} -f %{name}-files
%files -n %{hsc_name}-%{pkg_name} -f %{name}-files
%defattr(-,root,root,-)
%doc dist/doc/html
%doc dist/doc/html
%doc LICENSE TODO README
%doc LICENSE TODO README
Line 123: Line 97:


%files -n %{hsc_name}-%{pkg_name}-prof -f %{name}-files.prof
%files -n %{hsc_name}-%{pkg_name}-prof -f %{name}-files.prof
%%doc LICENSE
%files
%defattr(-,root,root,-)
%defattr(-,root,root,-)
%{_bindir}/xmonad
%doc LICENSE
%doc LICENSE


Line 136: Line 105:
- Replaced content with macros
- Replaced content with macros
- Removed funky naming scheme with something more straight forward
- Removed funky naming scheme with something more straight forward


* Wed Jul  2 2008 Yaakov M. Nemoy <yankee@koan> - 0.7-2
* Wed Jul  2 2008 Yaakov M. Nemoy <yankee@koan> - 0.7-2
Line 144: Line 112:
- changed URL
- changed URL
- changed Source
- changed Source


* Thu Jun 26 2008 cabal-rpm <cabal-devel@haskell.org> - 0.7-1
* Thu Jun 26 2008 cabal-rpm <cabal-devel@haskell.org> - 0.7-1
- spec file autogenerated by cabal-rpm
- spec file autogenerated by cabal-rpm
</pre>
</pre>

Revision as of 06:48, 22 August 2008

Library and Binary Template

This is a sample spec file for a Haskell Cabal package. This sample demonstrates how to package a Haskell Cabal package that contains a library and binary together. It was generated automatically using cabal-rpm. It contains a few minor bugs, including missing dependency declarations. This is due to a limitation in cabal-rpm that needs to be fixed. They have been filled in manually.

%define hsc_name ghc
%define hsc_version 6.8.3
%define pkg_name progWithLibs
%define pkg_libdir %{_libdir}/%{hsc_name}-%{hsc_version}/%{pkg_name}-%{version}

%define debug_package %{nil}
#Haskell compilers do not traditionally emit DWARF data.

Name: %{pkg_name}
Version: 0.7
Release: 3%{?dist}
License: BSD
Group: User Interface/X
URL: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/%{pkg_name}
Source: http://hackage.haskell.org/packages/archive/%{pkg_name}/%{version}/%{pkg_name}-%{version}.tar.gz
Summary: Summary of %{pkg_name}
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{hsc_name} = %{hsc_version}, %{hsc_name}-prof = %{hsc_version}, haddock
BuildRequires: ...
Requires: %{hsc_name} = %{hsc_version}
Requires: ...

%description
Description of %{pkg_name}.

%package -n %{hsc_name}-%{pkg_name}
Summary: Summary of %{pkg_name}
Group: Development/Libraries
Requires: %{hsc_name} = %{hsc_version}

%description -n %{hsc_name}-%{pkg_name}
This package contains libraries for %{hsc_name} %{hsc_version}.


%package -n %{hsc_name}-%{pkg_name}-prof
Summary: Profiling libraries for %{hsc_name}-%{pkg_name}
Group: Development/Libraries
Requires: %{hsc_name}-%{pkg_name} = %{version}

%description -n %{hsc_name}-%{pkg_name}-prof
This package contains profiling libraries for %{hsc_name} %{hsc_version}.


%prep
%setup -q -n %{pkg_name}-%{version}


%build
%ghc_autotools -l -p enable
%ghc_build
%ghc_haddock
%ghc_gen_scripts


%install
rm -rf ${RPM_BUILD_ROOT}
%ghc_install
%ghc_install_scripts
%ghc_gen_filelists %{name}

cd ${RPM_BUILD_ROOT}/%{_datadir}/doc/%{hsc_name}-%{pkg_name}-%{version}
rm -rf doc LICENSE TODO README


%clean
rm -rf ${RPM_BUILD_ROOT}
%pre -n %{hsc_name}-%{pkg_name}
%ghc_preinst_script


%post -n %{hsc_name}-%{pkg_name}
%ghc_postinst_script


%preun -n %{hsc_name}-%{pkg_name}
%ghc_preun_script


%postun -n %{hsc_name}-%{pkg_name}
%ghc_postun_script


%files
%defattr(-,root,root,-)
%doc LICENSE
%{_bindir}/xmonad

%files -n %{hsc_name}-%{pkg_name} -f %{name}-files
%defattr(-,root,root,-)
%doc dist/doc/html
%doc LICENSE TODO README


%files -n %{hsc_name}-%{pkg_name}-prof -f %{name}-files.prof
%defattr(-,root,root,-)
%doc LICENSE


%changelog
* Wed Aug 12 2008 Yaakov M. Nemoy <yankee@koan> - 0.7-3
- Replaced content with macros
- Removed funky naming scheme with something more straight forward

* Wed Jul  2 2008 Yaakov M. Nemoy <yankee@koan> - 0.7-2
- added BuildRequires
- added Requires
- changed Group
- changed URL
- changed Source

* Thu Jun 26 2008 cabal-rpm <cabal-devel@haskell.org> - 0.7-1
- spec file autogenerated by cabal-rpm