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 755 convertdb1 %{buildroot}/usr/lib/rpm
157 install -m 644 db3/db.h %{buildroot}/usr/include/rpm
158 # remove .la file and the static variant of libpopt
159 # have to remove the dependency from other .la files as well
160 #for f in %{buildroot}/%{_libdir}/*.la; do
161 #    sed -i -e "s,/%_lib/libpopt.la,-lpopt,g" $f
162 #done
163 mkdir -p %{buildroot}%{_sysconfdir}/rpm
164 cp -a tizen_macros %{buildroot}/usr/lib/rpm
165 mkdir -p %{buildroot}/usr/lib/rpm/tizen
166 install -m 755 %{SOURCE13} %{buildroot}/usr/lib/rpm/tizen
167 %if 0%{?enable_security}
168 install -m 644 %{SOURCE22} ${RPM_BUILD_ROOT}%{_sysconfdir}/device-sec-policy
169 %endif
170 ln -s ../tizen_macros %{buildroot}/usr/lib/rpm/tizen/macros
171 for d in BUILD RPMS SOURCES SPECS SRPMS BUILDROOT ; do
172   mkdir -p %{buildroot}/usr/src/packages/$d
173   chmod 755 %{buildroot}/usr/src/packages/$d
174 done
175 for d in %{buildroot}/usr/lib/rpm/platform/*-linux/macros ; do
176   dd=${d%%-linux/macros}
177   dd=${dd##*/}
178   mkdir %{buildroot}/usr/src/packages/RPMS/$dd
179   chmod 755 %{buildroot}/usr/src/packages/RPMS/$dd
180 done
181 mkdir -p %{buildroot}/var/lib/rpm
182 gzip -9 %{buildroot}/%{_mandir}/man[18]/*.[18]
183 export RPM_BUILD_ROOT
184 chmod 755 doc/manual
185 rm -rf doc/manual/Makefile*
186 rm -f %{buildroot}/usr/lib/rpmpopt
187 rm -rf %{buildroot}%{_mandir}/{fr,ja,ko,pl,ru,sk}
188 rm -f %{buildroot}%{_prefix}/share/locale/de/LC_MESSAGES/rpm.mo
189 rm -f %{buildroot}/usr/lib/rpm/cpanflute %{buildroot}/usr/lib/rpm/cpanflute2
190 install -m 755 %{SOURCE5} %{buildroot}/usr/lib/rpm
191 install -m 755 %{SOURCE6} %{buildroot}/usr/lib/rpm
192 install -m 755 scripts/find-supplements{,.ksyms} %{buildroot}/usr/lib/rpm
193 install -m 755 scripts/firmware.prov %{buildroot}/usr/lib/rpm
194 install -m 755 scripts/debuginfo.prov %{buildroot}/usr/lib/rpm
195 rm -f %{buildroot}/usr/lib/locale %{buildroot}/usr/lib/rpmrc
196 mkdir -p %{buildroot}/etc/rpm
197 chmod 755 %{buildroot}/etc/rpm
198 # remove some nonsense or non-working scripts
199 pushd %{buildroot}/usr/lib/rpm/
200 for f in rpm2cpio.sh rpm.daily rpmdiff* rpm.log rpm.xinetd freshen.sh u_pkg.sh \
201          magic magic.mgc magic.mime* rpmfile *.pl javadeps brp-redhat \
202          brp-strip-static-archive vpkg-provides*.sh http.req sql.req tcl.req \
203          rpmdb_* brp-sparc64-linux brp-strip-comment-note brp-java-gcjcompile
204 do
205     rm -f $f
206 done
207 for i in /usr/share/automake-*/*; do
208   if test -f "$i" && test -f "${i##*/}"; then
209     rm -f "${i##*/}"
210   fi
211 done
212 popd
213 gzip -9 CHANGES
214 rm -rf %{buildroot}/%{_libdir}/python%{py_ver}
215 rm -f %{buildroot}%{_libdir}/*.la
216 rm -f %{buildroot}%{_libdir}/rpm-plugins/*.la
217 sh %{buildroot}/usr/lib/rpm/find-lang.sh %{buildroot} rpm
218 %ifarch armv7hl
219 # rpm is using the host_cpu as default for the platform, but armv7hl is not known by the kernel.
220 # so we need to enforce the platform here.
221 # We don't want to use armv7l because it would make us incompatible to Fedora and MeeGo plattforms.
222 echo -n armv7hl-suse-linux> %{buildroot}/etc/rpm/platform
223 %endif
224
225 %post
226 test -f var/lib/rpm/Packages || rpm --initdb
227 rm -f var/lib/rpm/Filemd5s var/lib/rpm/Filedigests var/lib/rpm/Requireversion var/lib/rpm/Provideversion
228
229
230 %files -f rpm.lang
231 %defattr(-,root,root)
232 %doc    CHANGES.gz COPYING GROUPS
233 %doc    doc/manual
234 %doc    RPM-HOWTO RPM-Tips
235         /etc/rpm
236         /bin/rpm
237         /usr/bin/*
238         %exclude /usr/bin/rpmbuild
239         /usr/lib/rpm
240 %dir    %{_libdir}/rpm-plugins
241         %{_libdir}/rpm-plugins/exec.so
242         %{_libdir}/rpm-plugins/sepolicy.so
243         %{_libdir}/librpm.so.*
244         %{_libdir}/librpmbuild.so.*
245         %{_libdir}/librpmio.so.*
246         %{_libdir}/librpmsign.so.*
247 %doc    %{_mandir}/man[18]/*.[18]*
248 %dir    /var/lib/rpm
249 %dir    %attr(755,root,root) /usr/src/packages/BUILD
250 %dir    %attr(755,root,root) /usr/src/packages/SPECS
251 %dir    %attr(755,root,root) /usr/src/packages/SOURCES
252 %dir    %attr(755,root,root) /usr/src/packages/SRPMS
253 %dir    %attr(755,root,root) /usr/src/packages/RPMS
254 %dir    %attr(755,root,root) /usr/src/packages/BUILDROOT
255 %dir    %attr(755,root,root) /usr/src/packages/RPMS/*
256
257 %files build
258 %defattr(-,root,root)
259 /usr/bin/rpmbuild
260
261 %files devel
262 %defattr(644,root,root,755)
263         /usr/include/rpm
264         %{_libdir}/librpm.so
265         %{_libdir}/librpmbuild.so
266         %{_libdir}/librpmio.so
267         %{_libdir}/librpmsign.so
268         %{_libdir}/pkgconfig/rpm.pc
269 %if 0%{?enable_security}
270 %files security-plugin
271 %defattr(-,root,root)
272 %{_libdir}/rpm-plugins/msm.so
273 %config(noreplace) %{_sysconfdir}/device-sec-policy
274 %endif