- fix: hard fail on locked dbopen if CDB locking not in use.
- fix: dbconfig with mp_mmapsize=16Mb/mp_size=1Mb for
"everything ENOSPC" failure check.
CVS patchset: 4942
CVS date: 2001/07/14 20:09:56
- document more popt aliases for --help usage.
- remove --tarbuild from man page(s), use -t[abpcils] instead (#48666).
- fix: scope multi-mode options like --nodeps correctly (#48825).
+ - isolate cdb access configuration (experimental, use at your own risk).
+ - fix: hard fail on locked dbopen if CDB locking not in use.
+ - fix: dbconfig with mp_mmapsize=16Mb/mp_size=1Mb for
+ "everything ENOSPC" failure check.
4.0 -> 4.0.[12]
- add doxygen and lclint annotations most everywhere.
dnl XXX AM_MAINTAINER_MODE
dnl Set of available languages.
-ALL_LINGUAS="cs da de en_RN es eu_ES fi fr gl hu id is it ja ko no pl pt pt_BR ro ru sk sl sr sv tr uk wa zh zh_CN.GB2312"
+ALL_LINGUAS="cs da de en_RN es eu_ES fi fr gl.old hu id is it ja ko no pl pt pt_BR ro ru sk sl sr sv tr uk wa zh zh_CN.GB2312"
LIBOBJS=
#/*! \page config_macros Default configuration: /usr/lib/rpm/macros
# \verbatim
#
-# $Id: macros.in,v 1.84 2001/07/10 17:59:11 jbj Exp $
+# $Id: macros.in,v 1.85 2001/07/14 20:09:56 jbj Exp $
#
# This is a global RPM configuration file. All changes made here will
# be lost when the rpm package is upgraded. Any per-system configuration
#%__dbi_other usedbenv create joinenv mpool txn log \
# mp_mmapsize=8Mb mp_size=512Kb verify usecursors
+# XXX enable at your own risk, CDB access to rpmdb isn't cooked yet.
+#%__dbi_cdb create joinenv cdb mpool
+
# XXX The "traditional" rpmdb shared/exclusive fcntl(2) lock on Packages model:
-%__dbi_other verify usecursors
+%__dbi_other verify usecursors %{?__dbi_cdb}
# Note: adding nofsync here speeds up --rebuilddb a lot.
%__dbi_rebuild nofsync !log !txn !cdb
%define with_internal_db @WITH_INTERNAL_DB@ %{nil}
%define strip_binaries 1
+# XXX enable at your own risk, CDB access to rpmdb isn't cooked yet.
+%define enable_cdb create cdb
+
# XXX legacy requires './' payload prefix to be omitted from rpm packages.
%define _noPayloadPrefix 1
cat << E_O_F > $RPM_BUILD_ROOT/etc/rpm/macros.db1
%%_dbapi 1
E_O_F
+cat << E_O_F > $RPM_BUILD_ROOT/etc/rpm/macros.cdb
+%{?enable_cdb:#%%__dbi_cdb %{enable_cdb}}
+E_O_F
mkdir -p $RPM_BUILD_ROOT/var/lib/rpm
for dbi in \
Basenames Conflictname Dirnames Group Installtid Name Providename \
Provideversion Removetid Requirename Requireversion Triggername \
- Packages __db.001 __db.002 __db.003 __db.004
+ 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
%config(noreplace,missingok) /etc/cron.daily/rpm
%config(noreplace,missingok) /etc/logrotate.d/rpm
%dir /etc/rpm
-%config(noreplace,missingok) /etc/rpm/macros.db1
+%config(noreplace,missingok) /etc/rpm/macros.*
%attr(0755, @RPMUSER@, @RPMGROUP@) %dir /var/lib/rpm
%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.001
-%rpmdbattr /var/lib/rpm/__db.002
+%rpmdbattr /var/lib/rpm/__db.0*
%rpmdbattr /var/lib/rpm/Dirnames
%rpmdbattr /var/lib/rpm/Group
%rpmdbattr /var/lib/rpm/Installtid
rc = fcntl(fdno, F_SETLK, (void *) &l);
if (rc) {
- rpmError(
- (!dbi->dbi_use_dbenv ? RPMERR_FLOCK : RPMWARN_FLOCK),
+ /* Warning only if using CDB locking. */
+ rc = ((dbi->dbi_use_dbenv &&
+ (dbi->dbi_eflags & DB_INIT_CDB))
+ ? 0 : 1);
+ rpmError( (rc ? RPMERR_FLOCK : RPMWARN_FLOCK),
_("cannot get %s lock on %s/%s\n"),
((dbi->dbi_mode & (O_RDWR|O_WRONLY))
? _("exclusive") : _("shared")),
dbhome, (dbfile ? dbfile : ""));
- rc = (!dbi->dbi_use_dbenv ? 1 : 0);
} else if (dbfile) {
rpmMessage(RPMMESS_DEBUG,
_("locked db index %s/%s\n"),
if (!dbi->dbi_use_dbenv) { /* db3 dbenv is always used now. */
dbi->dbi_use_dbenv = 1;
dbi->dbi_eflags |= (DB_INIT_MPOOL|DB_JOINENV);
- dbi->dbi_mp_mmapsize = 8 * 1024 * 1024;
- dbi->dbi_mp_size = 512 * 1024;
+ dbi->dbi_mp_mmapsize = 16 * 1024 * 1024;
+ dbi->dbi_mp_size = 1 * 1024 * 1024;
dbi->dbi_tear_down = 1;
}
int minimal = flags & RPMDB_FLAG_MINIMAL;
if (!_initialized || dbiTagsMax == 0) {
- char * filename;
- int i;
- i = sizeof("//__db.000");
- if (prefix) i += strlen(prefix);
- if (dbpath) i += strlen(dbpath);
- filename = alloca(i);
- for (i = 0; i < 16; i++) {
- sprintf(filename, "%s/%s/__db.%03d",
- (prefix ? prefix : ""), (dbpath ? dbpath : ""), i);
- (void) rpmCleanPath(filename);
- (void) unlink(filename);
+#if 0
+ static int _enable_cdb = -1;
+
+ /* XXX hack in suoport for CDB, otherwise nuke the state. */
+ if (_enable_cdb < 0)
+ _enable_cdb = rpmExpandNumeric("%{?__dbi_cdb:1}");
+
+ if (!_enable_cdb) {
+ char * filename;
+ int i;
+
+ i = sizeof("//__db.000");
+ if (prefix) i += strlen(prefix);
+ if (dbpath) i += strlen(dbpath);
+ filename = alloca(i);
+ for (i = 0; i < 16; i++) {
+ sprintf(filename, "%s/%s/__db.%03d",
+ (prefix ? prefix : ""), (dbpath ? dbpath : ""), i);
+ (void) rpmCleanPath(filename);
+ (void) unlink(filename);
+ }
}
+#endif
dbiTagsInit();
_initialized++;
}
#/*! \page config_rpmrc Default configuration: /usr/lib/rpm/rpmrc
# \verbatim
#
-# $Id: rpmrc.in,v 2.38 2001/06/19 11:38:51 jbj Exp $
+# $Id: rpmrc.in,v 2.39 2001/07/14 20:09:56 jbj Exp $
#
# This is a global RPM configuration file. All changes made here will
# be lost when the rpm package is upgraded. Any per-system configuration
buildarch_compat: s390: noarch
buildarch_compat: s390x: noarch
-macrofiles: @RPMCONFIGDIR@/macros:@RPMCONFIGDIR@/%{_target}/macros:@SYSCONFIGDIR@/macros.specspo:@SYSCONFIGDIR@/macros.db1:@SYSCONFIGDIR@/macros:@SYSCONFIGDIR@/%{_target}/macros:~/.rpmmacros
+macrofiles: @RPMCONFIGDIR@/macros:@RPMCONFIGDIR@/%{_target}/macros:@SYSCONFIGDIR@/macros.specspo:@SYSCONFIGDIR@/macros.db1:@SYSCONFIGDIR@/macros.cdb:@SYSCONFIGDIR@/macros:@SYSCONFIGDIR@/%{_target}/macros:~/.rpmmacros
# \endverbatim
#*/