Remove some old craft
[platform/upstream/rpm.git] / packaging / rpm.spec
1 Name:           rpm
2 BuildRequires:  binutils
3 BuildRequires:  bzip2
4 BuildRequires:  libfile-devel
5 BuildRequires:  findutils
6 BuildRequires:  gcc
7 BuildRequires:  gettext-tools
8 BuildRequires:  glibc-devel
9 BuildRequires:  gzip
10 BuildRequires:  libacl-devel
11 BuildRequires:  bzip2-devel
12 BuildRequires:  libcap-devel
13 BuildRequires:  libelf-devel
14 BuildRequires:  libtool
15 BuildRequires:  lua-devel
16 BuildRequires:  make
17 BuildRequires:  pkgconfig(ncurses)
18 BuildRequires:  patch
19 BuildRequires:  popt-devel
20 BuildRequires:  xz-devel
21 BuildRequires:  zlib-devel
22 BuildRequires:  nss-devel
23 %if 0%{?enable_security}
24 BuildRequires:  uthash-devel
25 BuildRequires:  libxml2-devel
26 BuildRequires:  libattr-devel
27 BuildRequires:  libsmack-devel
28 %endif
29
30 Provides:       rpminst
31 Provides:       rpm-libs
32 Summary:        The RPM Package Manager
33 License:        GPL-2.0+
34 Group:          System/Packages
35 Version:        4.10.1
36 Release:        0
37 Source0:        rpm-%{version}.tar.bz2
38 Source1:        db-4.8.30.tar.bz2
39 Source2:        db-4.8.30-integration.dif
40 Source4:        rpm-tizen_macros
41 Source5:        rpmsort
42 Source6:        symset-table
43 Source8:        rpmconfigcheck
44 Source13:       find-docs.sh
45 Source22:       device-sec-policy
46 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
47 #
48 # avoid bootstrapping problem
49 %define _binary_payload w9.bzdio
50
51 %description
52 RPM Package Manager is the main tool for managing the software packages
53 of the SuSE Linux distribution.
54
55 RPM can be used to install and remove software packages. With rpm, it
56 is easy to update packages.  RPM keeps track of all these manipulations
57 in a central database.  This way it is possible to get an overview of
58 all installed packages.  RPM also supports database queries.
59
60 %package devel
61 Summary:        Include Files and Libraries mandatory for Development
62 Group:          System/Packages
63 Requires:       rpm = %{version}
64 # for people confusing the one with the other
65 #Recommends:     rpm-build = %{version}
66 Requires:       popt-devel
67
68 %description devel
69 This package contains the RPM C library and header files.  These
70 development files will simplify the process of writing programs which
71 manipulate RPM packages and databases and are intended to make it
72 easier to create graphical package managers or any other tools that
73 need an intimate knowledge of RPM packages in order to function.
74
75 %package build
76 Summary:        Tools and Scripts to create rpm packages
77 Group:          System/Packages
78 Requires:       rpm = %{version}
79 Provides:       rpmbuild rpm:%_bindir/rpmbuild
80 # SUSE's build essentials
81 Requires:       bzip2
82 Requires:       xz
83 Requires:       gzip
84 Requires:       binutils
85 Requires:       make
86 Requires:       gcc
87 Requires:       findutils
88 Requires:       patch
89 Requires:       glibc-devel
90
91 %description build
92 If you want to build a rpm, you need this package. It provides rpmbuild
93 and requires some packages that are usually required 
94
95 %package security-plugin
96 Summary: MSM security plugin for rpm
97 Group: Development/Libraries
98 Requires: rpm = %{version}-%{release}
99 Requires: libsmack
100 Requires: libxml2
101 Requires: file
102 Requires: uthash
103 Requires: nss
104
105 %description security-plugin
106 This package contains the MSM security plugin for rpm that performs
107 security-related functionality. 
108
109
110 %prep
111 %setup -q -n rpm-%{version}
112 rm -rf sqlite
113 tar xjf %{S:1}
114 ln -s db-4.8.30 db
115 chmod -R u+w db/*
116 # will get linked from db3
117 rm -f rpmdb/db.h
118 patch -p0 < %{S:2}
119
120 if [ -s /etc/rpm/tizen_macros ]; then
121         cp -a /etc/rpm/tizen_macros %{SOURCE4}
122 fi
123 cp -a %{SOURCE4} tizen_macros
124 rm -f m4/libtool.m4
125 rm -f m4/lt*.m4
126
127 %build
128 CPPFLAGS="$CPPFLAGS `pkg-config --cflags nss`"
129 export CPPFLAGS 
130 export CFLAGS="%{optflags} -ffunction-sections"
131 export LDFLAGS="-Wl,-Bsymbolic-functions -ffunction-sections"
132 %ifarch armv5tel
133 export CFLAGS="-g -O0 -fno-strict-aliasing -ffunction-sections"
134 %endif
135
136 %if %{_target_cpu}
137 %ifarch %arm
138 BUILDTARGET="--build=%{_target_cpu}-tizen-linux-gnueabi"
139 %else
140 BUILDTARGET="--build=%{_target_cpu}-tizen-linux"
141 %endif
142 %endif
143
144 autoreconf -i -f
145 ./configure --disable-dependency-tracking --prefix=%{_prefix} --mandir=%{_mandir} --infodir=%{_infodir} \
146 --libdir=%{_libdir} --sysconfdir=/etc --localstatedir=/var  --with-lua \
147 --with-acl --with-cap  --enable-shared %{?with_python: --enable-python} $BUILDTARGET
148
149 make %{?_smp_mflags}
150
151 %install
152 mkdir -p %{buildroot}/usr/lib
153 mkdir -p %{buildroot}/usr/share/locale
154 ln -s ../share/locale %{buildroot}/usr/lib/locale
155 %make_install
156 install -m 644 db3/db.h %{buildroot}/usr/include/rpm
157 # remove .la file and the static variant of libpopt
158 # have to remove the dependency from other .la files as well
159 #for f in %{buildroot}/%{_libdir}/*.la; do
160 #    sed -i -e "s,/%_lib/libpopt.la,-lpopt,g" $f
161 #done
162 mkdir -p %{buildroot}%{_sysconfdir}/rpm
163 cp -a tizen_macros %{buildroot}/usr/lib/rpm
164 mkdir -p %{buildroot}/usr/lib/rpm/tizen
165 install -m 755 %{SOURCE13} %{buildroot}/usr/lib/rpm/tizen
166 %if 0%{?enable_security}
167 install -m 644 %{SOURCE22} ${RPM_BUILD_ROOT}%{_sysconfdir}/device-sec-policy
168 %endif
169 ln -s ../tizen_macros %{buildroot}/usr/lib/rpm/tizen/macros
170 for d in BUILD RPMS SOURCES SPECS SRPMS BUILDROOT ; do
171   mkdir -p %{buildroot}/usr/src/packages/$d
172   chmod 755 %{buildroot}/usr/src/packages/$d
173 done
174 for d in %{buildroot}/usr/lib/rpm/platform/*-linux/macros ; do
175   dd=${d%%-linux/macros}
176   dd=${dd##*/}
177   mkdir %{buildroot}/usr/src/packages/RPMS/$dd
178   chmod 755 %{buildroot}/usr/src/packages/RPMS/$dd
179 done
180 mkdir -p %{buildroot}/var/lib/rpm
181 gzip -9 %{buildroot}/%{_mandir}/man[18]/*.[18]
182 export RPM_BUILD_ROOT
183 chmod 755 doc/manual
184 rm -rf doc/manual/Makefile*
185 rm -f %{buildroot}/usr/lib/rpmpopt
186 rm -rf %{buildroot}%{_mandir}/{fr,ja,ko,pl,ru,sk}
187 rm -f %{buildroot}%{_prefix}/share/locale/de/LC_MESSAGES/rpm.mo
188 rm -f %{buildroot}/usr/lib/rpm/cpanflute %{buildroot}/usr/lib/rpm/cpanflute2
189 install -m 755 %{SOURCE5} %{buildroot}/usr/lib/rpm
190 install -m 755 %{SOURCE6} %{buildroot}/usr/lib/rpm
191 install -m 755 scripts/find-supplements{,.ksyms} %{buildroot}/usr/lib/rpm
192 install -m 755 scripts/firmware.prov %{buildroot}/usr/lib/rpm
193 install -m 755 scripts/debuginfo.prov %{buildroot}/usr/lib/rpm
194 rm -f %{buildroot}/usr/lib/locale %{buildroot}/usr/lib/rpmrc
195 mkdir -p %{buildroot}/etc/rpm
196 chmod 755 %{buildroot}/etc/rpm
197 # remove some nonsense or non-working scripts
198 pushd %{buildroot}/usr/lib/rpm/
199 for f in rpm2cpio.sh rpm.daily rpmdiff* rpm.log rpm.xinetd freshen.sh u_pkg.sh \
200          magic magic.mgc magic.mime* rpmfile *.pl javadeps brp-redhat \
201          brp-strip-static-archive vpkg-provides*.sh http.req sql.req tcl.req \
202          rpmdb_* brp-sparc64-linux brp-strip-comment-note brp-java-gcjcompile
203 do
204     rm -f $f
205 done
206 for i in /usr/share/automake-*/*; do
207   if test -f "$i" && test -f "${i##*/}"; then
208     rm -f "${i##*/}"
209   fi
210 done
211 popd
212 gzip -9 CHANGES
213 rm -rf %{buildroot}/%{_libdir}/python%{py_ver}
214 rm -f %{buildroot}%{_libdir}/*.la
215 rm -f %{buildroot}%{_libdir}/rpm-plugins/*.la
216 sh %{buildroot}/usr/lib/rpm/find-lang.sh %{buildroot} rpm
217 %ifarch armv7hl
218 # rpm is using the host_cpu as default for the platform, but armv7hl is not known by the kernel.
219 # so we need to enforce the platform here.
220 # We don't want to use armv7l because it would make us incompatible to Fedora and MeeGo plattforms.
221 echo -n armv7hl-suse-linux> %{buildroot}/etc/rpm/platform
222 %endif
223
224 %post
225 test -f var/lib/rpm/Packages || rpm --initdb
226 rm -f var/lib/rpm/Filemd5s var/lib/rpm/Filedigests var/lib/rpm/Requireversion var/lib/rpm/Provideversion
227
228
229 %files -f rpm.lang
230 %defattr(-,root,root)
231 %doc    COPYING GROUPS
232         /etc/rpm
233         /bin/rpm
234         /usr/bin/*
235         %exclude /usr/bin/rpmbuild
236         /usr/lib/rpm
237 %dir    %{_libdir}/rpm-plugins
238         %{_libdir}/rpm-plugins/exec.so
239         %{_libdir}/rpm-plugins/sepolicy.so
240         %{_libdir}/librpm.so.*
241         %{_libdir}/librpmbuild.so.*
242         %{_libdir}/librpmio.so.*
243         %{_libdir}/librpmsign.so.*
244 %doc    %{_mandir}/man[18]/*.[18]*
245 %dir    /var/lib/rpm
246 %dir    %attr(755,root,root) /usr/src/packages/BUILD
247 %dir    %attr(755,root,root) /usr/src/packages/SPECS
248 %dir    %attr(755,root,root) /usr/src/packages/SOURCES
249 %dir    %attr(755,root,root) /usr/src/packages/SRPMS
250 %dir    %attr(755,root,root) /usr/src/packages/RPMS
251 %dir    %attr(755,root,root) /usr/src/packages/BUILDROOT
252 %dir    %attr(755,root,root) /usr/src/packages/RPMS/*
253
254 %files build
255 %defattr(-,root,root)
256 /usr/bin/rpmbuild
257
258 %files devel
259 %defattr(644,root,root,755)
260         /usr/include/rpm
261         %{_libdir}/librpm.so
262         %{_libdir}/librpmbuild.so
263         %{_libdir}/librpmio.so
264         %{_libdir}/librpmsign.so
265         %{_libdir}/pkgconfig/rpm.pc
266 %if 0%{?enable_security}
267 %files security-plugin
268 %defattr(-,root,root)
269 %{_libdir}/rpm-plugins/msm.so
270 %config(noreplace) %{_sysconfdir}/device-sec-policy
271 %endif