RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Ralf S. Engelschall
Root: /v/rpm/cvs Email: rse@rpm5.org
Module: rpm Date: 28-Jun-2007 17:10:15
Branch: HEAD Handle: 2007062816101500
Modified files:
rpm CHANGES macros.in
Log:
Allow Berkeley-DB and SQLite specific RPM DB per-tag parameters
in "macros" according to the dynamically selected DB API.
No Berkeley-DB parameters are changed here! We just introduce an
additional macro expansion abstraction layer which allows the selection
of the various _dbi_config[_xxxx] macros according to the macros _dbapi
and _dbapi_rebuild.
This allows us to configure *different* sets of parameters for
Berkeley-DB and SQLite *at the same time* and let the right set selected
by RPM dynamically under runtime (usually in case of a database
migration where both formats are used in parallel). This becomes even
more important once we will allow RPM to be built with just Berkeley-DB
or just SQLite support only (as SQLite doesn't understand all the
Berkeley-DB parameters).
Summary:
Revision Changes Path
1.1412 +1 -0 rpm/CHANGES
1.165 +79 -33 rpm/macros.in
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1411 -r1.1412 CHANGES
--- rpm/CHANGES 28 Jun 2007 06:05:29 -0000 1.1411
+++ rpm/CHANGES 28 Jun 2007 15:10:15 -0000 1.1412
@@ -1,4 +1,5 @@
4.5 -> 5.0:
+ - rse: allow Berkeley-DB/SQLite-specific RPM DB per-tag parameters according to dynamically selected DB API
- rse: introduce --with-bugreport=<email-address> and require this before unsupported Autoconf operations
- rse: simplify internal Berkeley-DB handling in rpmdb/ and allow (unsupported) --with-db=external
- pmatilaj: remove hardcoded "libtermcap" vs. Bash kludge in lib/psm.c
@@ .
patch -p0 <<'@@ .'
Index: rpm/macros.in
============================================================================
$ cvs diff -u -r1.164 -r1.165 macros.in
--- rpm/macros.in 27 Jun 2007 11:59:13 -0000 1.164
+++ rpm/macros.in 28 Jun 2007 15:10:15 -0000 1.165
@@ -1,7 +1,7 @@
#/*! \page config_macros Default configuration: @USRLIBRPM@/macros
# \verbatim
#
-# $Id: macros.in,v 1.164 2007/06/27 11:59:13 rse Exp $
+# $Id: macros.in,v 1.165 2007/06/28 15:10:15 rse 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
@@ -607,8 +607,7 @@
%__dbi_transient %{__dbi_rebuild} temporary private
%__dbi_perms perms=0644
-#
-#--- Hash database configuration
+# database configuration: Berkeley-DB, Hash
%__dbi_htconfig \
hash \
%{__dbi_other}\
@@ -623,8 +622,7 @@
%{!?_rpmdb_rebuild:%{__dbi_htconfig_current}}\
%{nil}
-#
-#--- Btree database configuration
+# database configuration: Berkeley-DB, Btree
%__dbi_btconfig \
btree \
%{__dbi_other}\
@@ -639,35 +637,82 @@
%{!?_rpmdb_rebuild:%{__dbi_btconfig_current}}\
%{nil}
-%_dbi_tags Packages:Name:Basenames:Group:Requirename:Providename:Conflictname:Triggername:Dirnames:Requireversion:Provideversion:Installtid:Sigmd5:Sha1header:Filemd5s:Depends:Pubkeys:Packagecolor
-
-%_dbi_config_Dirnames %{_dbi_btconfig}
-%_dbi_config_Requireversion %{_dbi_btconfig}
-%_dbi_config_Provideversion %{_dbi_btconfig}
-%_dbi_config_Installtid %{_dbi_btconfig}
-%_dbi_config_Removetid %{_dbi_btconfig}
-
-%_dbi_config_Basenames %{_dbi_btconfig}
-%_dbi_config_Conflictname %{_dbi_btconfig}
-%_dbi_config_Filedigests %{_dbi_htconfig}
-%_dbi_config_Group %{_dbi_btconfig}
-%_dbi_config_Name %{_dbi_btconfig}
-%_dbi_config_Packagecolor %{_dbi_htconfig}
-%_dbi_config_Providename %{_dbi_btconfig}
-%_dbi_config_Pubkeys %{_dbi_htconfig}
-%_dbi_config_Requirename %{_dbi_btconfig}
-%_dbi_config_Sha1header %{_dbi_htconfig}
-%_dbi_config_Sigmd5 %{_dbi_htconfig}
-%_dbi_config_Triggername %{_dbi_btconfig}
-
-# "Packages" should have shared/exclusive fcntl(2) lock using "lockdbfd".
-%_dbi_config_Packages %{_dbi_btconfig} lockdbfd
+# database configuration: SQLite
+%__dbi_sqlconfig_current %{nil}
+%__dbi_sqlconfig_rebuild nofsync
+%_dbi_sqlconfig \
+ %{?_rpmdb_rebuild:%{__dbi_sqlconfig_rebuild}}\
+ %{!?_rpmdb_rebuild:%{__dbi_sqlconfig_current}}\
+%{nil}
-# "Depends" is a per-transaction cache of known dependency resolutions.
-%_dbi_config_Depends %{_dbi_btconfig} temporary private
+# database tags
+%_dbi_tags Packages:Name:Basenames:Group:Requirename:Providename:Conflictname:Triggername:Dirnames:Requireversion:Provideversion:Installtid:Sigmd5:Sha1header:Filemd5s:Depends:Pubkeys:Packagecolor
-# The default database configuration to use
-%_dbi_config %{_dbi_btconfig}
+# database configuration: Berkeley-DB [dbapi 3 hooks]
+%_dbi_config_3 %{_dbi_btconfig}
+%_dbi_config_3_Dirnames %{_dbi_btconfig}
+%_dbi_config_3_Requireversion %{_dbi_btconfig}
+%_dbi_config_3_Provideversion %{_dbi_btconfig}
+%_dbi_config_3_Installtid %{_dbi_btconfig}
+%_dbi_config_3_Removetid %{_dbi_btconfig}
+%_dbi_config_3_Basenames %{_dbi_btconfig}
+%_dbi_config_3_Conflictname %{_dbi_btconfig}
+%_dbi_config_3_Filedigests %{_dbi_htconfig}
+%_dbi_config_3_Group %{_dbi_btconfig}
+%_dbi_config_3_Name %{_dbi_btconfig}
+%_dbi_config_3_Packagecolor %{_dbi_htconfig}
+%_dbi_config_3_Providename %{_dbi_btconfig}
+%_dbi_config_3_Pubkeys %{_dbi_htconfig}
+%_dbi_config_3_Requirename %{_dbi_btconfig}
+%_dbi_config_3_Sha1header %{_dbi_htconfig}
+%_dbi_config_3_Sigmd5 %{_dbi_htconfig}
+%_dbi_config_3_Triggername %{_dbi_btconfig}
+%_dbi_config_3_Packages %{_dbi_btconfig} lockdbfd
+%_dbi_config_3_Depends %{_dbi_btconfig} temporary private
+
+# database configuration: SQLite [dbapi 4 hooks]
+%_dbi_config_4 %{_dbi_sqlconfig}
+%_dbi_config_4_Dirnames %{_dbi_sqlconfig}
+%_dbi_config_4_Requireversion %{_dbi_sqlconfig}
+%_dbi_config_4_Provideversion %{_dbi_sqlconfig}
+%_dbi_config_4_Installtid %{_dbi_sqlconfig}
+%_dbi_config_4_Removetid %{_dbi_sqlconfig}
+%_dbi_config_4_Basenames %{_dbi_sqlconfig}
+%_dbi_config_4_Conflictname %{_dbi_sqlconfig}
+%_dbi_config_4_Filedigests %{_dbi_sqlconfig}
+%_dbi_config_4_Group %{_dbi_sqlconfig}
+%_dbi_config_4_Name %{_dbi_sqlconfig}
+%_dbi_config_4_Packagecolor %{_dbi_sqlconfig}
+%_dbi_config_4_Providename %{_dbi_sqlconfig}
+%_dbi_config_4_Pubkeys %{_dbi_sqlconfig}
+%_dbi_config_4_Requirename %{_dbi_sqlconfig}
+%_dbi_config_4_Sha1header %{_dbi_sqlconfig}
+%_dbi_config_4_Sigmd5 %{_dbi_sqlconfig}
+%_dbi_config_4_Triggername %{_dbi_sqlconfig}
+%_dbi_config_4_Packages %{_dbi_sqlconfig}
+%_dbi_config_4_Depends %{_dbi_sqlconfig}
+
+# database configuration [code entry hooks]
+%_dbi_config %{expand:%%{_dbi_config_%{_dbapi_used}}}
+%_dbi_config_Dirnames %{expand:%%{_dbi_config_%{_dbapi_used}_Dirnames}}
+%_dbi_config_Requireversion %{expand:%%{_dbi_config_%{_dbapi_used}_Requireversion}}
+%_dbi_config_Provideversion %{expand:%%{_dbi_config_%{_dbapi_used}_Provideversion}}
+%_dbi_config_Installtid %{expand:%%{_dbi_config_%{_dbapi_used}_Installtid}}
+%_dbi_config_Removetid %{expand:%%{_dbi_config_%{_dbapi_used}_Removetid}}
+%_dbi_config_Basenames %{expand:%%{_dbi_config_%{_dbapi_used}_Basenames}}
+%_dbi_config_Conflictname %{expand:%%{_dbi_config_%{_dbapi_used}_Conflictname}}
+%_dbi_config_Filedigests %{expand:%%{_dbi_config_%{_dbapi_used}_Filedigests}}
+%_dbi_config_Group %{expand:%%{_dbi_config_%{_dbapi_used}_Group}}
+%_dbi_config_Name %{expand:%%{_dbi_config_%{_dbapi_used}_Name}}
+%_dbi_config_Packagecolor %{expand:%%{_dbi_config_%{_dbapi_used}_Packagecolor}}
+%_dbi_config_Providename %{expand:%%{_dbi_config_%{_dbapi_used}_Providename}}
+%_dbi_config_Pubkeys %{expand:%%{_dbi_config_%{_dbapi_used}_Pubkeys}}
+%_dbi_config_Requirename %{expand:%%{_dbi_config_%{_dbapi_used}_Requirename}}
+%_dbi_config_Sha1header %{expand:%%{_dbi_config_%{_dbapi_used}_Sha1header}}
+%_dbi_config_Sigmd5 %{expand:%%{_dbi_config_%{_dbapi_used}_Sigmd5}}
+%_dbi_config_Triggername %{expand:%%{_dbi_config_%{_dbapi_used}_Triggername}}
+%_dbi_config_Packages %{expand:%%{_dbi_config_%{_dbapi_used}_Packages}}
+%_dbi_config_Depends %{expand:%%{_dbi_config_%{_dbapi_used}_Depends}}
# Database API configuration:
#
@@ -676,11 +721,12 @@
# 3: Berkeley-DB 3.x/4.x API (default)
# 4: SQLite 3.x API (alternative)
#
-# There are two macros so that --rebuilddb can convert the
+# There are different macros so that --rebuilddb can convert the
# database between formats (usually for upgrading purposes)
#
%_dbapi 3
%_dbapi_rebuild 3
+%_dbapi_used %{?_rpmdb_rebuild:%{_dbapi_rebuild}}%{!?_rpmdb_rebuild:%{_dbapi}}
#
# Export package NEVRA (stamped with install tid) info for HRMIB on this path.
@@ .
Received on Thu Jun 28 17:10:15 2007