]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - spl.spec.in
Update ChangeLog with a high level summary of the changes from
[FreeBSD/FreeBSD.git] / spl.spec.in
1 # The following block is used to allow the source RPM to be rebuilt 
2 # against arbitrary kernels.  It ensure the release name is correct
3 # and the proper build/install requires are set.
4
5 # When require_kdir is defined we do one of two things:
6 #   require_kver: Ideally defined to match the kernel.
7 #  !require_kver: A best guess is made.
8 %if 0%{?require_kdir:1}
9 %if 0%{?require_kver:1}
10 %define kver %{require_kver}
11 %define kdir %{require_kdir}
12 %else
13 %{!?require_kobj: %define require_kobj %{require_kdir}}
14 %define kdir %{require_kdir}
15 %define kuts %{require_kobj}/include/linux/utsrelease.h \
16              %{require_kobj}/include/linux/version.h
17 %define kver %((grep UTS_RELEASE %{kuts}) | cut -f2 -d'"' | tail -1)
18 %endif
19
20 # When require_kdir is not defined we do one of two things:
21 #    require_kver: Locate the requested kernel in default dirs.
22 #   !require_kver: Locate the newest kernel in default dirs.
23 %else
24 %if 0%{?require_kver:1}
25 %define kver %{require_kver}
26 %define kdef %{_prefix}/src/kernels/%{kver} %{_prefix}/src/linux-%{kver}
27 %define kdir %((echo X; ls -1d %kdef 2>/dev/null)|sed -e 's/linux-//'|tail -1)
28 %else
29 %define kdef %{_prefix}/src/kernels/* %{_prefix}/src/linux-*
30 %define kdir %((echo X; ls -1d %kdef 2>/dev/null)|sed -e 's/linux-//'|tail -1)
31 %define kver %(basename %{kdir})
32 %endif
33 %endif
34
35 # Kernel objects may not be located with the source.  Assume 
36 # that they are but allow this to be overrided if required.
37 %if 0%{?require_kobj:1}
38 %define kobj %{require_kobj}
39 %else
40 %define kobj %{kdir}
41 %endif
42
43 # Each distro has its own kernel package naming convention.
44 %if 0%{?ch4}
45 %define kstr chaos-kernel
46 %define kdev chaos-kernel-devel
47 %else
48 %define kstr kernel
49 %define kdev kernel-devel
50 %endif
51
52 %define debug_package %{nil}
53
54 # The kernel version should only be appended to a binary RPM.
55 # When building a source RPM it must be kernel version agnostic.
56 %define name     @PACKAGE@
57 %define version  @VERSION@
58
59 %if %{?build_src_rpm:1}0
60 %define release  @SPL_META_RELEASE@
61 %else
62 %define release  @SPL_META_RELEASE@_%(echo %{kver} | sed -e 's/-/_/g')
63 %endif
64
65 %if 0%{?require_kver:1}
66 %define buildrequires %{kdev}=%{kver}
67 %else
68 %define buildrequires %{kdev}
69 %endif
70
71 Summary:         Solaris Porting Layer
72 Group:           Utilities/System
73 Name:            %{name}
74 Version:         %{version}
75 Release:         %{release}
76 License:         GPL
77 URL:             git://eris.llnl.gov/spl.git
78 BuildRoot:       %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
79 Source:          %{name}-%{version}.tar.gz
80 Requires:        %{kstr} = %{kver}
81 BuildRequires:   %{buildrequires}
82
83 %description
84 The %{name} package contains kernel modules and support utilities for
85 emulating Solaris style primatives in the linux kernel. These include,
86 but are not limited too, atomic, condvar, debug, error, memory, kobject,
87 kstat, mutex, rwlock, taskq, thread, time, and vnode APIs.
88
89 %package devel
90 Summary:         Solaris Porting Layer Headers and Symbols
91 Group:           Development/Libraries
92 Requires:        %{kstr} = %{kver}
93 BuildRequires:   %{buildrequires}
94
95 %description devel
96 The %{name}-devel package contains the header files and Module{s}.symvers
97 symbols needed for building additional modules which use %{name}.
98
99 %prep
100 %setup
101 %build
102 %configure --with-linux=%{kdir} --with-linux-obj=%{kobj}
103 make
104
105 %install
106 rm -rf $RPM_BUILD_ROOT
107 make DESTDIR=$RPM_BUILD_ROOT install
108
109 %clean
110 rm -rf $RPM_BUILD_ROOT
111
112 %files
113 %defattr(-, root, root)
114 %doc AUTHORS ChangeLog COPYING DISCLAIMER INSTALL
115 %{_sbindir}/*
116 /lib/modules/*
117
118 %files devel
119 %defattr(-,root,root)
120 %{_prefix}/src/*
121
122 %post
123 if [ -f /boot/System.map-%{kver} ]; then
124         depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
125 else
126         depmod -ae %{kver} || exit 0
127 fi
128
129 %postun
130 if [ -f /boot/System.map-%{kver} ]; then
131         depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
132 else
133         depmod -ae %{kver} || exit 0
134 fi