summaryrefslogtreecommitdiff
path: root/rpm.spec.in
blob: 47a2c0b4c8209d144c6ca252dbf095ea6d020e03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
%define	with_python_subpackage	@WITH_PYTHON_SUBPACKAGE@%{nil}
%define	with_python_version	@WITH_PYTHON_VERSION@%{nil}
%define with_perl_subpackage	0
%define	with_bzip2		@WITH_BZIP2@%{nil}
%define	with_apidocs		@WITH_APIDOCS@%{nil}
%define with_internal_db	@WITH_INTERNAL_DB@%{nil}
%define strip_binaries		0

# XXX legacy requires './' payload prefix to be omitted from rpm packages.
%define	_noPayloadPrefix	1

%define	__prefix	/usr
%{expand: %%define __share %(if [ -d %{__prefix}/share/man ]; then echo /share ; else echo %%{nil} ; fi)}

Summary: The RPM package management system.
Name: rpm
%define version @VERSION@
Version: %{version}
%{expand: %%define rpm_version %{version}}
Release: 0.84
Group: System Environment/Base
Source: ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/rpm-%{rpm_version}.tar.gz
Copyright: GPL
Conflicts: patch < 2.5
%ifos linux
Prereq: gawk fileutils textutils mktemp shadow-utils
%endif
Requires: popt = 1.7
Obsoletes: rpm-perl < %{version}

%if !%{with_internal_db}
BuildRequires: db3-devel

# XXX glibc-2.1.92 has incompatible locale changes that affect statically
# XXX linked binaries like /bin/rpm.
%ifnarch ia64
Requires: glibc >= 2.1.92
%endif
%endif

BuildRequires: zlib-devel
# XXX Red Hat 5.2 has not bzip2 or python
%if %{with_bzip2}
BuildRequires: bzip2 >= 0.9.0c-2
%endif
%if %{with_python_subpackage}
BuildRequires: python-devel >= %{with_python_version}
%endif
%if %{with_perl_subpackage}
BuildRequires: perl >= 0:5.00503
%endif

BuildRoot: %{_tmppath}/%{name}-root

%description
The RPM Package Manager (RPM) is a powerful command line driven
package management system capable of installing, uninstalling,
verifying, querying, and updating software packages. Each software
package consists of an archive of files along with information about
the package like its version, a description, etc.

%package devel
Summary:  Development files for manipulating RPM packages.
Group: Development/Libraries
Requires: rpm = %{rpm_version}, popt = 1.7

%description devel
This package contains the RPM C library and header files. These
development files will simplify the process of writing programs that
manipulate RPM packages and databases. These files are intended to
simplify the process of creating graphical package managers or any
other tools that need an intimate knowledge of RPM packages in order
to function.

This package should be installed if you want to develop programs that
will manipulate RPM packages and databases.

%package build
Summary: Scripts and executable programs used to build packages.
Group: Development/Tools
Requires: rpm = %{rpm_version}, patch >= 2.5, file
Provides: rpmbuild(VendorConfig) = %{version}

%description build
The rpm-build package contains the scripts and executable programs
that are used to build packages using the RPM Package Manager.

%if %{with_python_subpackage}
%package python
Summary: Python bindings for apps which will manipulate RPM packages.
Group: Development/Libraries
Requires: rpm = %{rpm_version}
Requires: python >= %{with_python_version}
Requires: popt = 1.7

%description python
The rpm-python package contains a module that permits applications
written in the Python programming language to use the interface
supplied by RPM Package Manager libraries.

This package should be installed if you want to develop Python
programs that will manipulate RPM packages and databases.
%endif

%if %{with_perl_subpackage}
%package perl
Summary: Native bindings to the RPM API for Perl.
Group: Development/Languages
URL: http://www.cpan.org
Provides: perl(RPM::Database) = %{rpm_version}
Provides: perl(RPM::Header) = %{rpm_version}
Requires: rpm = %{rpm_version}
Requires: perl >= 0:5.00503
Requires: popt = 1.7
Obsoletes: perl-Perl-RPM

%description perl
The Perl-RPM module is an attempt to provide Perl-level access to the
complete application programming interface that is a part of the Red
Hat Package Manager (RPM). Rather than have scripts rely on executing
RPM commands and parse the resulting output, this module aims to give
Perl programmers the ability to do anything that would otherwise have
been done in C or C++.

The interface is being designed and laid out as a collection of
classes, at least some of which are also available as tied-hash
implementations.

At this time, the interface only provides access to the database of
installed packages, and header data retrieval for RPM and SRPM files
is not yet installed. Error management and the export of most defined
constants, through RPM::Error and RPM::Constants, respectively, are
also available.

%endif

%package -n popt
Summary: A C library for parsing command line parameters.
Group: Development/Libraries
Version: 1.7

%description -n popt
Popt is a C library for parsing command line parameters. Popt was
heavily influenced by the getopt() and getopt_long() functions, but it
improves on them by allowing more powerful argument expansion. Popt
can parse arbitrary argv[] style arrays and automatically set
variables based on command line arguments. Popt allows command line
arguments to be aliased via configuration files and includes utility
functions for parsing arbitrary strings into argv[] arrays using
shell-like rules.

%prep
%setup -q

%build

%ifos linux
CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{__prefix} --sysconfdir=/etc --localstatedir=/var --infodir='${prefix}%{__share}/info' --mandir='${prefix}%{__share}/man' --with-python=%{with_python_version} --without-javaglue
%else
CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{__prefix}
%endif

# XXX workaround ia64 gcc-3.1-0.18 miscompilation
%ifarch ia64
make CFLAGS="-g -O0 -DIA64_SUCKS_ROCKS" files.o files.lo -C build
%endif

make

%if %{with_perl_subpackage}
{ cd Perl-RPM
  CFLAGS="$RPM_OPT_FLAGS" perl Makefile.PL RPM_BUILD=1
  export SUBDIR="%{_builddir}/%{buildsubdir}"
  make INC="-I. -I$SUBDIR/lib -I$SUBDIR/rpmdb -I$SUBDIR/rpmio -I$SUBDIR/popt" \
    LDDLFLAGS="-shared -L$SUBDIR/lib/.libs -L$SUBDIR/rpmdb/.libs -L$SUBDIR/rpmio/.libs -L$SUBDIR/popt/.libs" %{?_smp_mflags}
}
%endif

%install
rm -rf $RPM_BUILD_ROOT

make DESTDIR="$RPM_BUILD_ROOT" install

%ifos linux

# Save list of packages through cron
mkdir -p ${RPM_BUILD_ROOT}/etc/cron.daily
install -m 755 scripts/rpm.daily ${RPM_BUILD_ROOT}/etc/cron.daily/rpm

mkdir -p ${RPM_BUILD_ROOT}/etc/logrotate.d
install -m 644 scripts/rpm.log ${RPM_BUILD_ROOT}/etc/logrotate.d/rpm

mkdir -p $RPM_BUILD_ROOT/etc/rpm

mkdir -p $RPM_BUILD_ROOT/var/spool/repackage
mkdir -p $RPM_BUILD_ROOT/var/lib/rpm
for dbi in \
	Basenames Conflictname Dirnames Group Installtid Name Providename \
	Provideversion Removetid Requirename Requireversion Triggername \
	Sigmd5 Sha1header Filemd5s Packages \
	__db.001 __db.002 __db.003 __db.004 __db.005 __db.006 __db.007 \
	__db.008 __db.009
do
    touch $RPM_BUILD_ROOT/var/lib/rpm/$dbi
done

%endif

%if %{with_apidocs}
gzip -9n apidocs/man/man*/* || :
%endif

%if %{with_perl_subpackage}
{ cd Perl-RPM
  eval `perl '-V:installsitearch'`
  eval `perl '-V:installarchlib'`
  mkdir -p $RPM_BUILD_ROOT/$installarchlib
  make PREFIX=${RPM_BUILD_ROOT}%{__prefix} \
    INSTALLMAN1DIR=${RPM_BUILD_ROOT}%{__prefix}%{__share}/man/man1 \
    INSTALLMAN3DIR=${RPM_BUILD_ROOT}%{__prefix}%{__share}/man/man3 \
	install
  rm -f $RPM_BUILD_ROOT/$installarchlib/perllocal.pod
  rm -f $RPM_BUILD_ROOT/$installsitearch/auto/RPM/.packlist
  cd ..
}
%endif

%if %{strip_binaries}
{ cd $RPM_BUILD_ROOT
  %{__strip} ./bin/rpm
  %{__strip} .%{__prefix}/bin/rpm2cpio
}
%endif

%clean
rm -rf $RPM_BUILD_ROOT

%pre
%ifos linux
if [ -f /var/lib/rpm/packages.rpm ]; then
    echo "
You have (unsupported)
	/var/lib/rpm/packages.rpm	db1 format installed package headers
Please install rpm-4.0.4 first, and do
	rpm --rebuilddb
to convert your database from db1 to db3 format.
"
    exit 1
fi
/usr/sbin/groupadd -g 37 @RPMGROUP@				> /dev/null 2>&1
/usr/sbin/useradd  -r -d /var/lib/rpm -u 37 -g 37 @RPMUSER@	> /dev/null 2>&1
%endif
exit 0

%post
%ifos linux
/sbin/ldconfig
/bin/chown @RPMUSER@.@RPMGROUP@ /var/lib/rpm/[A-Z]*
%endif
exit 0

%ifos linux
%postun
/sbin/ldconfig
if [ $1 = 0 ]; then
    /usr/sbin/userdel rpm
    /usr/sbin/groupdel rpm
fi


%post devel -p /sbin/ldconfig
%postun devel -p /sbin/ldconfig

%post -n popt -p /sbin/ldconfig
%postun -n popt -p /sbin/ldconfig
%endif

%if %{with_python_subpackage}
%post python -p /sbin/ldconfig
%postun python -p /sbin/ldconfig
%endif

%define	rpmattr		%attr(0755, @RPMUSER@, @RPMGROUP@)

%files
%defattr(-,root,root)
%doc RPM-PGP-KEY RPM-GPG-KEY CHANGES GROUPS doc/manual/[a-z]*
%attr(0755, @RPMUSER@, @RPMGROUP@)	/bin/rpm

%ifos linux
%config(noreplace,missingok)	/etc/cron.daily/rpm
%config(noreplace,missingok)	/etc/logrotate.d/rpm
%dir				/etc/rpm
#%config(noreplace,missingok)	/etc/rpm/macros.*
%attr(0755, @RPMUSER@, @RPMGROUP@)	%dir /var/lib/rpm
%attr(0755, @RPMUSER@, @RPMGROUP@)	%dir /var/spool/repackage

%define	rpmdbattr %attr(0644, @RPMUSER@, @RPMGROUP@) %verify(not md5 size mtime) %ghost %config(missingok,noreplace)
%rpmdbattr	/var/lib/rpm/Basenames
%rpmdbattr	/var/lib/rpm/Conflictname
%rpmdbattr	/var/lib/rpm/__db.0*
%rpmdbattr	/var/lib/rpm/Dirnames
%rpmdbattr	/var/lib/rpm/Filemd5s
%rpmdbattr	/var/lib/rpm/Group
%rpmdbattr	/var/lib/rpm/Installtid
%rpmdbattr	/var/lib/rpm/Name
%rpmdbattr	/var/lib/rpm/Packages
%rpmdbattr	/var/lib/rpm/Providename
%rpmdbattr	/var/lib/rpm/Provideversion
%rpmdbattr	/var/lib/rpm/Removetid
%rpmdbattr	/var/lib/rpm/Requirename
%rpmdbattr	/var/lib/rpm/Requireversion
%rpmdbattr	/var/lib/rpm/Sigmd5
%rpmdbattr	/var/lib/rpm/Sha1header
%rpmdbattr	/var/lib/rpm/Triggername

%endif

%rpmattr	%{__prefix}/bin/rpm2cpio
%rpmattr	%{__prefix}/bin/gendiff
%rpmattr	%{__prefix}/bin/rpmdb
#%rpmattr	%{__prefix}/bin/rpm[eiu]
%rpmattr	%{__prefix}/bin/rpmsign
%rpmattr	%{__prefix}/bin/rpmquery
%rpmattr	%{__prefix}/bin/rpmverify

%{__prefix}/lib/librpm-@VERSION@.so
%{__prefix}/lib/librpmdb-@VERSION@.so
%{__prefix}/lib/librpmio-@VERSION@.so
%{__prefix}/lib/librpmbuild-@VERSION@.so

%attr(0755, @RPMUSER@, @RPMGROUP@)	%dir %{__prefix}/lib/rpm
%rpmattr	%{__prefix}/lib/rpm/config.guess
%rpmattr	%{__prefix}/lib/rpm/config.sub
%rpmattr	%{__prefix}/lib/rpm/convertrpmrc.sh
%attr(0644, @RPMUSER@, @RPMGROUP@)	%{__prefix}/lib/rpm/macros
%rpmattr	%{__prefix}/lib/rpm/mkinstalldirs
%rpmattr	%{__prefix}/lib/rpm/rpm.*
%rpmattr	%{__prefix}/lib/rpm/rpm2cpio.sh
%rpmattr	%{__prefix}/lib/rpm/rpm[deiukqv]
%rpmattr	%{__prefix}/lib/rpm/tgpg
%attr(0644, @RPMUSER@, @RPMGROUP@)	%{__prefix}/lib/rpm/rpmpopt*
%attr(0644, @RPMUSER@, @RPMGROUP@)	%{__prefix}/lib/rpm/rpmrc

%ifarch i386 i486 i586 i686 athlon
%attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/i[3456]86*
%attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/athlon*
%endif
%ifarch alpha alphaev5 alphaev56 alphapca56 alphaev6 alphaev67
%attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/alpha*
%endif
%ifarch sparc sparcv9 sparc64
%attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/sparc*
%endif
%ifarch ia64
%attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/ia64*
%endif
%ifarch powerpc ppc ppciseries ppcpseries ppcmac
%attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/ppc*
%endif
%ifarch s390 s390x
%attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/s390*
%endif
%ifarch armv3l armv4l
%attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/armv[34][lb]*
%endif
%ifarch mips mipsel
%attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/mips*
%endif
%attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/noarch*

#%attr(-, @RPMUSER@, @RPMGROUP@)		%{__prefix}/lib/rpm/@RPMCANONVENDOR@

%lang(cs)	%{__prefix}/*/locale/cs/LC_MESSAGES/rpm.mo
%lang(da)	%{__prefix}/*/locale/da/LC_MESSAGES/rpm.mo
%lang(de)	%{__prefix}/*/locale/de/LC_MESSAGES/rpm.mo
%lang(fi)	%{__prefix}/*/locale/fi/LC_MESSAGES/rpm.mo
%lang(fr)	%{__prefix}/*/locale/fr/LC_MESSAGES/rpm.mo
%lang(is)	%{__prefix}/*/locale/is/LC_MESSAGES/rpm.mo
%lang(ja)	%{__prefix}/*/locale/ja/LC_MESSAGES/rpm.mo
%lang(ko)	%{__prefix}/*/locale/ko/LC_MESSAGES/rpm.mo
%lang(no)	%{__prefix}/*/locale/no/LC_MESSAGES/rpm.mo
%lang(pl)	%{__prefix}/*/locale/pl/LC_MESSAGES/rpm.mo
%lang(pt)	%{__prefix}/*/locale/pt/LC_MESSAGES/rpm.mo
%lang(pt_BR)	%{__prefix}/*/locale/pt_BR/LC_MESSAGES/rpm.mo
%lang(ro)	%{__prefix}/*/locale/ro/LC_MESSAGES/rpm.mo
%lang(ru)	%{__prefix}/*/locale/ru/LC_MESSAGES/rpm.mo
%lang(sk)	%{__prefix}/*/locale/sk/LC_MESSAGES/rpm.mo
%lang(sl)	%{__prefix}/*/locale/sl/LC_MESSAGES/rpm.mo
%lang(sr)	%{__prefix}/*/locale/sr/LC_MESSAGES/rpm.mo
%lang(sv)	%{__prefix}/*/locale/sv/LC_MESSAGES/rpm.mo
%lang(tr)	%{__prefix}/*/locale/tr/LC_MESSAGES/rpm.mo

%{__prefix}%{__share}/man/man1/gendiff.1*
%{__prefix}%{__share}/man/man8/rpm.8*
%{__prefix}%{__share}/man/man8/rpm2cpio.8*
#%lang(fr)	%{__prefix}%{__share}/man/fr/man[18]/*.[18]*
%lang(ja)	%{__prefix}%{__share}/man/ja/man[18]/*.[18]*
#%lang(ko)	%{__prefix}%{__share}/man/ko/man[18]/*.[18]*
%lang(pl)	%{__prefix}%{__share}/man/pl/man[18]/*.[18]*
%lang(ru)	%{__prefix}%{__share}/man/ru/man[18]/*.[18]*
%lang(sk)	%{__prefix}%{__share}/man/sk/man[18]/*.[18]*

%files build
%defattr(-,root,root)
%dir %{__prefix}/src/@RPMCANONVENDOR@
%dir %{__prefix}/src/@RPMCANONVENDOR@/BUILD
%dir %{__prefix}/src/@RPMCANONVENDOR@/SPECS
%dir %{__prefix}/src/@RPMCANONVENDOR@/SOURCES
%dir %{__prefix}/src/@RPMCANONVENDOR@/SRPMS
%dir %{__prefix}/src/@RPMCANONVENDOR@/RPMS
%{__prefix}/src/@RPMCANONVENDOR@/RPMS/*
%rpmattr	%{__prefix}/bin/rpmbuild
%rpmattr	%{__prefix}/lib/rpm/brp-*
%rpmattr	%{__prefix}/lib/rpm/check-files
%rpmattr	%{__prefix}/lib/rpm/check-prereqs
%rpmattr	%{__prefix}/lib/rpm/config.site
#%rpmattr	%{__prefix}/lib/rpm/cpanflute
#%rpmattr	%{__prefix}/lib/rpm/cpanflute2
%rpmattr	%{__prefix}/lib/rpm/cross-build
%rpmattr	%{__prefix}/lib/rpm/find-lang.sh
%rpmattr	%{__prefix}/lib/rpm/find-prov.pl
%rpmattr	%{__prefix}/lib/rpm/find-provides
%rpmattr	%{__prefix}/lib/rpm/find-provides.perl
%rpmattr	%{__prefix}/lib/rpm/find-req.pl
%rpmattr	%{__prefix}/lib/rpm/find-requires
%rpmattr	%{__prefix}/lib/rpm/find-requires.perl
%rpmattr	%{__prefix}/lib/rpm/get_magic.pl
%rpmattr	%{__prefix}/lib/rpm/getpo.sh
%rpmattr	%{__prefix}/lib/rpm/http.req
%rpmattr	%{__prefix}/lib/rpm/javadeps
%rpmattr	%{__prefix}/lib/rpm/magic.prov
%rpmattr	%{__prefix}/lib/rpm/magic.req
%rpmattr	%{__prefix}/lib/rpm/perl.prov
#%rpmattr	%{__prefix}/lib/rpm/Specfile.pm

# XXX remove executable bit to disable autogenerated perl requires for now.
%rpmattr	%{__prefix}/lib/rpm/perl.req
#%attr(0644, @RPMUSER@, @RPMGROUP@) %{__prefix}/lib/rpm/perl.req

%rpmattr	%{__prefix}/lib/rpm/rpm[bt]
#%rpmattr	%{__prefix}/lib/rpm/rpmdiff
#%rpmattr	%{__prefix}/lib/rpm/rpmdiff.cgi
%rpmattr	%{__prefix}/lib/rpm/trpm
%rpmattr	%{__prefix}/lib/rpm/u_pkg.sh
%rpmattr	%{__prefix}/lib/rpm/vpkg-provides.sh
%rpmattr	%{__prefix}/lib/rpm/vpkg-provides2.sh

%{__prefix}%{__share}/man/man8/rpmbuild.8*

%if %{with_python_subpackage}
%files python
%defattr(-,root,root)
%{__prefix}/lib/python%{with_python_version}/site-packages/rpmmodule.so
#%{__prefix}/lib/python%{with_python_version}/site-packages/poptmodule.so
%{__prefix}/lib/python%{with_python_version}/site-packages/rpmdb
%endif

%if %{with_perl_subpackage}
%files perl
%defattr(-,root,root)
%rpmattr	%{__prefix}/bin/rpmprune
%{perl_sitearch}/auto/*
%{perl_sitearch}/RPM
%{perl_sitearch}/RPM.pm
%{__prefix}%{__share}/man/man1/rpmprune.1*
%{__prefix}%{__share}/man/man3/RPM*
%endif

%files devel
%defattr(-,root,root)
%if %{with_apidocs}
%doc @WITH_APIDOCS_TARGET@
%endif
%{__prefix}/include/rpm
%{__prefix}/lib/librpm.a
%{__prefix}/lib/librpm.la
%{__prefix}/lib/librpm.so
%{__prefix}/lib/librpmdb.a
%{__prefix}/lib/librpmdb.la
%{__prefix}/lib/librpmdb.so
%{__prefix}/lib/librpmio.a
%{__prefix}/lib/librpmio.la
%{__prefix}/lib/librpmio.so
%{__prefix}/lib/librpmbuild.a
%{__prefix}/lib/librpmbuild.la
%{__prefix}/lib/librpmbuild.so
%{__prefix}%{__share}/man/man8/rpmcache.8*
%{__prefix}%{__share}/man/man8/rpmgraph.8*
%rpmattr	%{__prefix}/lib/rpm/rpmcache
%rpmattr	%{__prefix}/bin/rpmgraph

%files -n popt
%defattr(-,root,root)
%{__prefix}/lib/libpopt.so.*
%{__prefix}%{__share}/man/man3/popt.3*
%lang(cs)	%{__prefix}/*/locale/cs/LC_MESSAGES/popt.mo
%lang(da)	%{__prefix}/*/locale/da/LC_MESSAGES/popt.mo
%lang(gl)	%{__prefix}/*/locale/gl/LC_MESSAGES/popt.mo
%lang(hu)	%{__prefix}/*/locale/hu/LC_MESSAGES/popt.mo
%lang(is)	%{__prefix}/*/locale/is/LC_MESSAGES/popt.mo
%lang(ko)	%{__prefix}/*/locale/ko/LC_MESSAGES/popt.mo
%lang(no)	%{__prefix}/*/locale/no/LC_MESSAGES/popt.mo
%lang(pt)	%{__prefix}/*/locale/pt/LC_MESSAGES/popt.mo
%lang(ro)	%{__prefix}/*/locale/ro/LC_MESSAGES/popt.mo
%lang(ru)	%{__prefix}/*/locale/ru/LC_MESSAGES/popt.mo
%lang(sk)	%{__prefix}/*/locale/sk/LC_MESSAGES/popt.mo
%lang(sl)	%{__prefix}/*/locale/sl/LC_MESSAGES/popt.mo
%lang(sv)	%{__prefix}/*/locale/sv/LC_MESSAGES/popt.mo
%lang(tr)	%{__prefix}/*/locale/tr/LC_MESSAGES/popt.mo
%lang(uk)	%{__prefix}/*/locale/uk/LC_MESSAGES/popt.mo
%lang(wa)	%{__prefix}/*/locale/wa/LC_MESSAGES/popt.mo
%lang(zh_CN)	%{__prefix}/*/locale/zh_CN.GB2312/LC_MESSAGES/popt.mo

# XXX These may end up in popt-devel but it hardly seems worth the effort now.
%{__prefix}/lib/libpopt.a
%{__prefix}/lib/libpopt.la
%{__prefix}/lib/libpopt.so
%{__prefix}/include/popt.h

%changelog
* Tue Aug 20 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.84
- python: stupid typo broke ts.check().
- fix: add epoch to "already installed" check.

* Mon Aug 19 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.82
- add --with-efence to configure, check install/upgrade with efence.
- beecrypt: short hex string conversion overflows target buffer.
- mark "successors only" packages in transaction.
- reap scriptlets with SIGCHLD handler.
- rename PSM_t to rpmpsm, add methods and refcounts to manage.
- remove %%configure/%%makeinstall from arch-os/macros, default is OK.
- don't export MALLOC_CHECK_ to scriptlets.
- squeaky clean memory leak checking.
- always malloc rpmfi structure, refcounts are correct in rpmtsRun().
- skip redundant /sbin/ldconfig scripts on upgrade (if possible).

* Thu Aug 15 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.81
- rollback: re-create empty transaction set for multiple rollbacks.
- fix: %%basename typo (Dmitry V. Levin<ldv@altlinux.org>).
- fix: queryformat segfaults (Dmitry V. Levin<ldv@altlinux.org>).

* Wed Aug 14 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.80
- fix: rebuilddb stat'ed target, not source, for rename sanity, take 2.
- python: explicit method to set transFlags.
- python: stuff package name into a string for repackage/erase callbacks.

* Tue Aug 13 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.79
- supply transitive closure for CLI packages from rpmdb-redhat database.
- fix: rebuilddb stat'ed target, not source, for rename sanity.
- create /var/lib/rpm if non-existent in, say, a chroot.
- erased packages are now repackaged into /var/spool/repackage.

* Fri Aug  9 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.77
- python: add return codes for rollbacks and fooDB methods.
- avoid generating fingerprints for locale/zoneinfo sub-directories.
- python: add (optional) ts.check() callback.
- python: include instance in IDTXload, filename in IDTXglob, return
- python: argument to ts.addErase (if integer) deletes that instance.
- python: rpmmi methods to return this instance, and number of members.

* Wed Aug  7 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.75
- fix: src.rpm installs need fd pos at payload.

* Tue Aug  6 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.73
- python: bindings to import pubkeys and display openpgp packets.

* Mon Aug  5 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.72
- python: bare bones rollback bindings.
- python: enable threads on callbacks and longish rpmlib calls.
- python: expose RPMTAG_SOURCEPACKAGE to identify source headers.
- python: eliminate rpm.headerFromPackage() tuple return, deprecated.
- python: add ts.hdrFromFdno(fdno) method.
- fix: check for lead magic, better error message on failure (#69751).
- python: the death of rpmdb-py.[ch], use ts.fooDB() methods instead.
- python: the death of rpm.headerFromPackage(), use ts.hdrFromFdno().
- python: permit direct ts.dbMatch() python iterations.
- python: the death of rpm.checksig(), use ts.hdrFromFdno() instead.
- add bitmask for precise control of signature/digest verification.

* Sun Aug  4 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.68
- resurrect --rollback.
- renumber the callback types to be an orthogonal bit mask.
- provide repackage progress callbacks, compression is slow.
- fix: don't repackage %%ghost files.
- add --predefine to define macros before reading macro configuration.

* Fri Aug  2 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.67
- fix: identify athlon with 3DNOWEXT as "athlon", not "i786" (#70539).
- fix: repair --root with --verify (#70527).
- fix: signed pubkeys were imported incorrectly (#68291).
- include tgpg script to verify signatures using only gpg.
- check header blobs on export (i.e. rpmdbAdd())..
- enable iterator header blob checks for install/erase modes.
- python: _vsflags_up2date macro to configure verify signature flags.

* Thu Aug  1 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.63
- add check-files to rpm-build manifest.
- python: methods to disable all new features for benchmarking.
- preserve rpmdb file attributes across --rebuilddb (#70367).

* Wed Jul 31 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.62
- make --querytags a common option, fix errant regex (#70135).
- db3: increase mpool and cachesize, compile w/o --enable-debug.
- configurable (default off) build failure if missing %%doc files (PLD).
- configurable (default off) build failure iff unpackaged files (PLD).
- change from default off to default on.

* Tue Jul 30 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.59
- prevent stale locks in __db files by closing databases on signals.

* Mon Jul 29 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.58
- popt: display sub-table options only once on --usage.
- wire --nosignatures et al as common options, rework CLI options.
- python: don't segfault in ts.GetKeys() on erased packages.
- update trpm.
- factor all mode-specific options into mode-specific tables.
- treat an unspecified epoch as Epoch: 0 everywhere.

* Thu Jul 25 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.57
- python: remove the old initdb/rebuilddb methods, use ts.fooDB().
- python: 1st crack at backport to 1.5.2.
- popt: fix --usage (#62234).
- fix: --repackage repaired (#67217).
- fix: rpm2cpio disables signature checks (i.e. same behavior).

* Wed Jul 24 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.55
- imbue %ghost with missingok attribute with --verify (#68933).
- fix: segfault if given a text file as 2nd arg to -Uvh (#69508).
- python: add ts.hdrCheck(), ts.rebuildDB() methods.
- python: iterating on an ts object returns transaction elements now.
-add yellowdog as vendor.

* Tue Jul 23 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.53
- verify signatures/digests retrieved through rpmdbNextIterator().

* Sun Jul 21 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.52
- add methods to make signature handling opaque wrto rpmts.

* Sat Jul 20 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.51
- popt: parse file into string of options (#56860).
- version added to *.la dependency libraries (#69063).
- expose digests in rpmio API, but hide internal beecrypt API (#68999).

* Mon Jul 15 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.50
- have rpmdb-redhat autoconfigure rpm to use %%_solve_dbpath.

* Sun Jul 14 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.49
- python: sanity check fixes on rpmts/rpmte methods.

* Sat Jul 13 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.48
- install rpmal.h and rpmhash.h, implicit rpmps.hinclude, for now.
- revert headerFree/headerLink/headerUnlink debugging.
- popt: mingw32 portability configure check (#67911).
- teach gendiff about unreadable files (#42666).

* Fri Jul 12 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.47
- display signature details using rpm -qi.
- skip signing packages already signed with same key (#62118).

* Thu Jul 11 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.45
- placeholders for manifest constants for SuSE patch packages.
- fix: repair 2ndary match criteria with rpmdb iterators.
- update for sv.po.

* Sat Jul  6 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.43
- fix: permit deletions of added packages (#67108).

* Fri Jul  5 2002 Jeff Johnson <jbj@redhat.com> 4,1-0.42
- fix: do lazy open of database in rpmtsInitDB() (#67994).
- update rpmcache.8.

* Thu Jul  4 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.40
- fix: forgot lazy open of database on --freshen path (#67907).
- proof-of-concept rpmcache functionality.

* Wed Jul  3 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.39
- use rpmfi in showQueryPackage(), eliminating headerGetEntry().

* Sun Jun 30 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.38
- turn off annoying gpg secmem warning.
- warn only once for each NOKEY/UNTRUSTED key id.
- factor common options into table, add rpmcliInit() and rpmcliFini().
- add preliminary rpmgraph(8) and rpmcache(8) executables to rpm-devel.

* Fri Jun 28 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.36
- fix: multiple relocations (#67596).
- add --build/--program-prefix, delete libtoolize, from %%configure.
- find-lang.sh: make sure that mo pattern matches leading '/' (#67368).
- disambiguate added/installed dependency failures (#50388).
- rescusitate remote ftp globs (#67678).
- open rpmdb early RDONLY, reopen later RDWR, avoid signed srpm noise.

* Thu Jun 27 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.33
- use rpmdb-redhat for suggestions if/when configured (#67430).
- disambiguate failures to import (with error messages, duh).

* Mon Jun 24 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.32
- python: link internal libelf (if used) directly into rpmmodule.so.

* Fri Jun 21 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.31
- fix: reading macro files can corrupt memory if BUFSIZ is teensy.
- fix: assertion failure iff incomplete package install (#66837).

* Thu Jun 20 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.29
- add translated man pages from PLD.
- resurrect libelf with Elf64, prelink verify should work everywhere.

* Wed Jun 19 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.28
- ix86: make sure that rpm can verify prelinked shared libraries.
- don't install /usr/lib/rpm/redhat per-vendor configuration anymore.

* Sat Jun 15 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.27
- beecrypt: merge changes from beecrypt-2.3.0.
- beecrypt: merge doxygen markup with rpmapi doco.
- beecrypt: revert cpu/arch compile option mixup (#66752).

* Wed Jun 12 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.26
- fix: separate existence and number checks for problems found (#66552).

* Mon Jun 10 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.25
- document digital signature verification in rpm.8.

* Sun Jun  9 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.24
- add /usr/lib/rpm/redhat/* per-vendor configuration.
- remove build mode compatibility aliases, documented and gone.

* Wed Jun  5 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.23
- python: portability fiddles (#54350).
- check inodes (but not blocks) on FAT file systems (#64256).

* Tue Jun  4 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.22
- use /etc/rpm/platform (if it exists), rather than uname(2), for arch.

* Mon Jun  3 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.21
- python: include rpmdb module, renamed from bsddb3.

* Sat Jun  1 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.20
- fix: use getgrnam, not getpwnam, to convert gid -> group.
- fix: avoid sign extension, use only 16 bits, when verifying rdev.
- python: separate {add,del}Macro methods, prepare for macro dictionary.
- i18n: copy current production PO files to top-of-stack.

* Tue May 28 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.19
- python: add rpmal/rpmte/rpmfd methods to bindings.
- perl: drop cpanflute and cpanflute2, will be in Chip's CPAN package.
- python: eliminate legacy db methods, add ts.dbMatch method.

* Sun May 26 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.17
- fix: un-resurrect "()(64bit)" markings using objdump on i386.

* Fri May 24 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.16
- python: add rpmds/rpmfi/rpmts methods.
- python: re-enable rpm-python sub-package.
- fix: resurrect "()(64bit)" markings using objdump.

* Sun May 19 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.15
- Grand Renaming of rpm data types.
- fix: synthesize unpacking progress callbacks for packages w/o files.

* Thu May 16 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.14
- opaque (well mostly) rpmTransactionSet using methods.

* Mon May  6 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.13
- rework most of rpmdb.c prepatory to implementing duplicates.
- fix: 2 memory leaks in headerSprintf.
- fix: db mire's access out-of-bounds memory.
- plug most install mode leaks.

* Fri May  3 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.12
- use DBT_DB_MALLOC to eliminate re-malloc'ing header blobs.

* Thu May  2 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.11
- eliminate db1 support.
- enable CDB by default.

* Wed May  1 2002 Jeff Johnson <jbj@redhat.com>	4.1-0.10
- attempt to make peace with automake-1.6.1, autoconf-2.53.
- rip out two layers of dbN gook, internal Berkeley db is here to stay.

* Fri Apr 19 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.09
- fix: queries that evaluated to "" incorrectly returned NULL.
- fix: packages produced by rpm-4.0 dinna merge signature tags.

* Sun Apr 14 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.08
- use build time to choose one of multiple alternative suggestions.
- add --nosuggests to disable suggested resolutions.

* Sat Apr 13 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.07
- merge conflicts into problems, handle as transaction set variable.

* Fri Apr 12 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.06
- use rpmdb-redhat to suggest dependency resolution(s).

* Thu Apr 11 2002 Jeff Johnson <jbj@redhat.com> 4.1-0.05
- rescusitate --rebuild.

* Wed Apr 10 2002 Jeff Johnsion <jbj@redhat.com> 4.1-0.04
- beecrypt: add types.h, eliminate need for config.gnu.h.

* Sat Mar 16 2002 Jeff Johnson <jbj@redhat.com>
- *really* dump signature header immutable region.

* Sun Mar 10 2002 Jeff Johnson <jbj@redhat.com>
- make --addsign and --resign behave exactly the same.
- splint annotations, signature cleanup.
- drill ts/fi through verify mode, add methods to keep fi abstract.
- use mmap when calculating file digests on verify, ~20% faster.
- permit --dbpath and --root with signature (i.e. --import) modes.