[Dbconfig-common-changes] dbconfig-common/dpkg common, 1.35,
1.35.2.1 config, 1.25, 1.25.2.1 config.oracle, NONE,
1.1.2.1 postinst, 1.18, 1.18.2.1 postinst.oracle, NONE,
1.1.2.1 postrm.oracle, NONE, 1.1.2.1 preinst.oracle, NONE,
1.1.2.1 prerm, 1.12, 1.12.2.1 prerm.oracle, NONE, 1.1.2.1
xerakko-guest at haydn.debian.org
xerakko-guest at haydn.debian.org
Fri Dec 30 09:57:46 CET 2005
Update of /cvsroot/dbconfig-common/dbconfig-common/dpkg
In directory haydn:/tmp/cvs-serv5136/dpkg
Modified Files:
Tag: ORACLE
common config postinst prerm
Added Files:
Tag: ORACLE
config.oracle postinst.oracle postrm.oracle preinst.oracle
prerm.oracle
Log Message:
more files for initial support for oracle
Index: common
===================================================================
RCS file: /cvsroot/dbconfig-common/dbconfig-common/dpkg/common,v
retrieving revision 1.35
retrieving revision 1.35.2.1
diff -u -d -r1.35 -r1.35.2.1
--- common 21 Dec 2005 03:04:31 -0000 1.35
+++ common 30 Dec 2005 08:57:38 -0000 1.35.2.1
@@ -4,7 +4,7 @@
# usage: /usr/share/dbconfig-common/dpkg/common $package $dpkg_argv
# (where $dpkg_argv is $@ as passed to the maintainer scripts)
-#set -x
+set -x
# get some internal helper functions, like _dbc_sanity_check
. /usr/share/dbconfig-common/internal/common
@@ -38,8 +38,11 @@
# templates common to postgresql database types
dbc_pgsql_templates="pgsql/method remote/host remote/newhost pgsql/app-pass pgsql/admin-user pgsql/admin-pass remote/port pgsql/authmethod-admin pgsql/authmethod-user pgsql/changeconf pgsql/manualconf db/dbname db/app-user pgsql/no-empty-passwords"
+ # templates common to Oracle database types
+ dbc_oracle_templates="remote/host remote/newhost oracle/app-pass oracle/admin-user oracle/admin-pass oracle/sys-pass oracle/system-pass oracle/authmethod-app-user oracle/changeconf oracle/manualconf db/dbname db/app-user oracle/database-template oracle/oracle-home"
+
# all dbtypes supported by dbconfig-common
- dbc_all_supported_dbtypes="mysql pgsql"
+ dbc_all_supported_dbtypes="mysql pgsql oracle"
###
### source the pre-existing config, if it exists
@@ -78,6 +81,7 @@
dbc_default_admin="root"
dbc_default_dbuser=`echo $dbc_package | tr -d +. | cut -c -16`;
dbc_dbvendor="MySQL"
+ dbc_use_startupdb="false"
;;
pgsql)
. /usr/share/dbconfig-common/internal/pgsql
@@ -94,9 +98,28 @@
dbc_default_dbuser=`echo $dbc_package | tr -d +-.`;
dbc_use_dbuser="false"
dbc_dbvendor="PostgreSQL"
+ dbc_use_startupdb="false"
+ ;;
+ oracle)
+ . /usr/share/dbconfig-common/internal/oracle
+ dbc_createuser_cmd='dbc_oracle_createuser'
+ dbc_checkuser_cmd='dbc_oracle_check_user'
+ dbc_createdb_cmd='dbc_oracle_createdb'
+ dbc_startupdb_cmd='dbc_oracle_startupdb'
+ dbc_dropdb_cmd='dbc_oracle_dropdb'
+ dbc_dropuser_cmd='dbc_oracle_dropuser'
+ dbc_sqlexec_cmd='dbc_oracle_exec_command'
+ dbc_sqlfile_cmd='dbc_oracle_exec_file'
+ dbc_dump_cmd='dbc_oracle_dump'
+ dbc_register_templates="$dbc_standard_templates $dbc_oracle_templates"
+ dbc_default_admin="oracle"
+ dbc_default_dbuser=`echo $dbc_package | tr -d +-.`;
+ dbc_use_dbuser="false"
+ dbc_dbvendor="Oracle"
+ dbc_use_startupdb="true"
;;
*)
- dbc_register_templates="$dbc_standard_templates $dbc_mysql_templates $dbc_pgsql_templates"
+ dbc_register_templates="$dbc_standard_templates $dbc_mysql_templates $dbc_pgsql_templates $dbc_oracle_templates"
;;
esac
}
@@ -138,8 +161,10 @@
_dbc_sanity_check package packageconfig || dbc_install_error
# if the package configuration does not exist then there is
- # nothing to preseed.
+ # nothing to preseed, only the ORACLE_HOME
if [ ! -f "$dbc_packageconfig" ]; then
+ dbc_oracle_home=`grep -v "#" /etc/oratab|grep ":" | cut -d ":" -f 2 | head -n 1`
+ db_set $dbc_package/oracle/oracle-home "$dbc_oracle_home"
return 0
fi
@@ -156,11 +181,12 @@
# set the app user password
db_set $dbc_package/$dbc_dbtype/app-pass "$dbc_dbpass"
-
+
# set the remote server/port
db_set $dbc_package/remote/host "$dbc_dbserver"
- db_set $dbc_package/remote/port "$dbc_dbport"
-
+ if [ "$dbc_dbtype" != "oracle" ]; then
+ db_set $dbc_package/remote/port "$dbc_dbport"
+ fi
# set the name of the database to be created
db_set $dbc_package/db/dbname "$dbc_dbname"
@@ -179,6 +205,7 @@
# set the database administrator pass
db_set $dbc_package/pgsql/admin-pass "$dbc_dbadmpass"
fi
+
if [ "$dbc_authmethod_user" != "ident" ]; then
# set the database user pass
db_set $dbc_package/pgsql/app-pass "$dbc_dbpass"
@@ -189,6 +216,26 @@
db_set $dbc_package/pgsql/method "tcp/ip + ssl"
fi
;;
+ "oracle")
+ # set the athentication method for app
+ db_set $dbc_package/oracle/authmethod-app-user "$dbc_authmethod__app_user"
+
+ # set the database template for $pkg
+ db_set $dbc_package/oracle/database-template "$dbc_database_template"
+ # set the "sys" user pass
+ echo "fixada la contrasenya del sys-pass"
+ db_set $dbc_package/oracle/sys-pass "$dbc_sys_pass"
+
+ # set the "system" user pass
+ db_set $dbc_package/oracle/system-pass "$dbc_system_pass"
+
+ # set the database administrator pass
+ db_set $dbc_package/oracle/admin-pass "$dbc_dbadmpass"
+
+ # set the ORACLE_HOME variable
+ db_set $dbc_package/oracle/oracle-home "$dbc_oracle_home"
+
+ ;;
esac
}
@@ -221,7 +268,9 @@
# get the db server/port
db_get $dbc_package/remote/host && dbc_dbserver="$RET"
- db_get $dbc_package/remote/port && dbc_dbport="$RET"
+ if [ "$dbc_dbtype" != "oracle" ]; then
+ db_get $dbc_package/remote/port && dbc_dbport="$RET"
+ fi
# get the name of the database to be created
db_get $dbc_package/db/dbname && dbc_dbname="$RET"
@@ -245,6 +294,14 @@
dbc_ssl="true"
fi
;;
+ "oracle")
+ db_get $dbc_package/oracle/sys-pass && dbc_sys_pass="$RET"
+ db_get $dbc_package/oracle/system-pass && dbc_system_pass="$RET"
+ db_get $dbc_package/oracle/authmethod-app-user && dbc_authmethod_app_user="$RET"
+ db_get $dbc_package/oracle/database-template && dbc_database_template="$RET"
+ db_get $dbc_package/oracle/oracle-home && dbc_oracle_home="$RET"
+
+ ;;
esac
}
@@ -346,6 +403,30 @@
## end postgresql specific settings
##
+##
+## oracle specific settings. if you don't use oracle,
+## you can safely ignore all of these
+##
+
+# dbc_sys_pass: password for oracle sys user
+dbc_sys_pass="$dbc_sys_pass"
+
+# dbc_system_pass: password for oracle system use
+dbc_system_pass="$dbc_system_pass"
+
+# dbc_authmethod_app_user: authentication type for oracle app user.
+dbc_authmethod_app_user="$dbc_authmethod_app_user"
+
+# dbc_database_template: database template used to create the oracle database.
+dbc_database_template="$dbc_database_template"
+
+# dbc_oracle_home: ORACLE_HOME directory.
+dbc_oracle_home="$dbc_oracle_home"
+
+##
+## end oracle specific settings
+##
+
EOF
ucf "$tfile" "$dbc_packageconfig"
rm -f "$tfile"
@@ -523,14 +604,30 @@
##
## exactly what you'd think
##
+
dbc_forget_dbadmin_password(){
echo dbconfig-common: flushing administrative password >&2
db_reset $dbc_package/$dbc_dbtype/admin-pass
db_fset $dbc_package/$dbc_dbtype/admin-pass seen false
+ if [ "$dbc_dbtype" = "oracle" ]; then
+ db_reset $dbc_package/$dbc_dbtype/sys-pass
+ db_fset $dbc_package/$dbc_dbtype/sys-pass seen false
+ db_reset $dbc_package/$dbc_dbtype/system-pass
+ db_fset $dbc_package/$dbc_dbtype/system-pass seen false
+ fi
db_reset $dbc_package/password-confirm
db_fset $dbc_package/password-confirm seen false
}
+dbc_forget_sys_password(){
+ echo dbconfig-common: flushing sys password >&2
+ db_reset $dbc_package/$dbc_dbtype/sys-pass
+ db_fset $dbc_package/$dbc_dbtype/sys-pass seen false
+ db_reset $dbc_package/$dbc_dbtype/system-pass
+ db_fset $dbc_package/$dbc_dbtype/system-pass seen false
+ db_reset $dbc_package/password-confirm
+ db_fset $dbc_package/password-confirm seen false
+}
##
## exactly what you'd think
##
@@ -576,6 +673,66 @@
dbc_dbadmpass="$RET"
}
+dbc_get_system_pass(){
+ local pass1 have_system_pass
+
+ db_fget $dbc_package/$dbc_dbtype/system-pass seen
+ if [ "$RET" = "true" ]; then
+ have_system_pass="yes"
+ fi
+ echo DEMANANT EL SYSTEM PASS DEBUG >>/tmp/executat
+ # make sure the passwords are the same, safely
+ while [ ! "$have_system_pass" ]; do
+ # get the administrative password
+ db_input high $dbc_package/$dbc_dbtype/system-pass || true
+ db_go || true
+ db_get $dbc_package/$dbc_dbtype/system-pass
+ pass1="$RET"
+
+ if [ "$dbc_dbtype" = "oracle" -a ! "$pass1" ]; then
+ db_input high $dbc_package/oracle/no-empty-passwords || true
+ db_reset $dbc_package/$dbc_dbtype/system-pass
+ db_fset $dbc_package/$dbc_dbtype/system-pass seen false
+ db_go || true
+ else
+ have_system_pass="yes"
+ fi
+ done
+
+ db_get $dbc_package/$dbc_dbtype/system-pass
+ dbc_system_pass="$RET"
+}
+
+dbc_get_sys_pass(){
+ local pass1 have_sys_pass
+
+ db_fget $dbc_package/$dbc_dbtype/sys-pass seen
+ if [ "$RET" = "true" ]; then
+ have_sys_pass="yes"
+ fi
+
+ echo DEMANANT EL SYS PASS DEBUG >>/tmp/executat
+ # make sure the passwords are the same, safely
+ while [ ! "$have_sys_pass" ]; do
+ # get the administrative password
+ db_input high $dbc_package/$dbc_dbtype/sys-pass || true
+ db_go || true
+ db_get $dbc_package/$dbc_dbtype/sys-pass
+ pass1="$RET"
+
+ if [ "$dbc_dbtype" = "oracle" -a ! "$pass1" ]; then
+ db_input high $dbc_package/oracle/no-empty-passwords || true
+ db_reset $dbc_package/$dbc_dbtype/sys-pass
+ db_fset $dbc_package/$dbc_dbtype/sys-pass seen false
+ db_go || true
+ else
+ have_sys_pass="yes"
+ fi
+ done
+
+ db_get $dbc_package/$dbc_dbtype/sys-pass
+ dbc_dbadmpass="$RET"
+}
##
## exactly what you'd think
##
@@ -641,6 +798,9 @@
if [ "$dbc_remember_app_pass" != "true" ]; then
dbc_forget_app_password
fi
+ if [ "$dbc_remember_sys_pass" != "true" ]; then
+ dbc_forget_sys_password
+ fi
}
##
@@ -669,6 +829,11 @@
dbc_dbtype_installed="yes"
fi
;;
+ "oracle")
+ if [ -f /etc/oraInst.loc ]; then
+ dbc_dbtype_installed="yes"
+ fi
+ ;;
"")
;;
esac
Index: config
===================================================================
RCS file: /cvsroot/dbconfig-common/dbconfig-common/dpkg/config,v
retrieving revision 1.25
retrieving revision 1.25.2.1
diff -u -d -r1.25 -r1.25.2.1
--- config 7 Nov 2005 19:21:27 -0000 1.25
+++ config 30 Dec 2005 08:57:40 -0000 1.25.2.1
@@ -58,10 +58,12 @@
## if they want to import settings from a previous
## non-dbc version, do that and mark the questions
## skipped
+ ## Here will be needed more work to support oracle.
##
if [ "$dbc_load_include" ] && [ -f "$ifile" ]; then
db_input high $dbc_package/import-oldsettings || true
eval `dbconfig-load-include $dbc_load_include_args -f $iformat $ifile`
+
for f in database-type $dbc_dbtype/method remote/host remote/newhost remote/port pgsql/authmethod-admin pgsql/authmethod-user $dbc_dbtype/admin-user db/app-user db/dbname; do
db_fset $dbc_package/$f seen true || true
done
@@ -70,7 +72,9 @@
db_set $dbc_package/db/app-user "$dbc_dbuser"
db_set $dbc_package/db/dbname "$dbc_dbname"
db_set $dbc_package/remote/host "$dbc_dbserver"
- db_set $dbc_package/remote/port "$dbc_dbport"
+ if [ "$dbc_dbtype" = "mysql" -o "$dbc_dbtype" = "pgsql" ]; then
+ db_set $dbc_package/remote/port "$dbc_dbport"
+ fi
db_set $dbc_package/$dbc_dbtype/app-pass "$dbc_dbpass"
db_set $dbc_package/password-confirm "$dbc_dbpass"
fi
@@ -139,7 +143,7 @@
fi
# there's a bit more to do with client/server rdbms
- if [ "$dbc_dbtype" = "mysql" -o "$dbc_dbtype" = "pgsql" ]; then
+ if [ "$dbc_dbtype" = "mysql" -o "$dbc_dbtype" = "pgsql" -o "$dbc_dbtype" = "oracle" ]; then
# if these haven't been specified, use defaults
if [ ! "$dbc_dbadmin" ]; then
dbc_dbadmin="$dbc_default_admin";
@@ -149,9 +153,10 @@
fi
if [ ! "$dbc_dbname" ]; then
dbc_dbname=`echo $dbc_package | tr -d +-.`;
+
fi
fi
-
+ dbc_dbname=`echo $dbc_dbname |cut -b -8`
# pre-seed any already defined values into debconf as defaults
if [ "$dbc_upgrade" ]; then
db_set $dbc_package/dbconfig-upgrade "$dbc_upgrade"
@@ -183,6 +188,22 @@
if [ "$dbc_ssl" = "true" -a "$dbc_dbtype" = "pgsql" ]; then
db_set $dbc_package/pgsql/method "tcp/ip + ssl"
fi
+
+ if [ "$dbc_sys_pass" ]; then
+ db_set $dbc_package/oracle/sys-pass "$dbc_sys_pass"
+ fi
+ if [ "$dbc_system_pass" ]; then
+ db_set $dbc_package/oracle/system-pass "$dbc_system_pass"
+ fi
+ if [ "$dbc_authmethod_app_user" ]; then
+ db_set $dbc_package/oracle/authmethod-app-user "$dbc_authmethod_app_user"
+ fi
+ if [ "$dbc_database_template" ]; then
+ db_set $dbc_package/oracle/database-template "$dbc_database_template"
+ fi
+ if [ "$dbc_oracle_home" ]; then
+ db_set $dbc_package/oracle/oracle-home "$dbc_oracle_home"
+ fi
db_input low $dbc_package/$dbc_dbtype/method || true
;;
# state 4 - do stuff based on the connection method
@@ -304,7 +325,16 @@
if [ "$need_userpw" != "false" ]; then
dbc_get_app_pass
fi
+
+ db_input low $dbc_package/$dbc_dbtype/sys-user || true
+ if [ "$need_syspw" != "false" ]; then
+ dbc_get_sys_pass
+ fi
+
+ if [ "$need_systempw" != "false" ]; then
+ dbc_get_system_pass
+ fi
# get the name of the database to use
db_input low $dbc_package/db/dbname || true
;;
--- NEW FILE: config.oracle ---
dbc_hardcoded_dbtype=oracle
. /usr/share/dbconfig-common/dpkg/config $@
Index: postinst
===================================================================
RCS file: /cvsroot/dbconfig-common/dbconfig-common/dpkg/postinst,v
retrieving revision 1.18
retrieving revision 1.18.2.1
diff -u -d -r1.18 -r1.18.2.1
--- postinst 7 Nov 2005 19:21:27 -0000 1.18
+++ postinst 30 Dec 2005 08:57:41 -0000 1.18.2.1
@@ -51,17 +51,25 @@
# don't perform the following block of code during upgrades
if [ ! "${importing_from_non_dbc}" ]; then
- ###
- ### now, create the app user account
- ###
- $dbc_createuser_cmd || dbc_install_error "creating user"
- [ "$dbc_tried_again" ] && return 0
###
### create the database
###
$dbc_createdb_cmd || dbc_install_error "creating database"
[ "$dbc_tried_again" ] && return 0
+
+ ###
+ ### startup database instance
+ ###
+ if [ "$dbc_use_startupdb" ]; then
+ $dbc_startupdb_cmd || dbc_install_error "starting database instance"
+ fi
+
+ ###
+ ### now, create the app user account
+ ###
+ $dbc_createuser_cmd || dbc_install_error "creating user"
+ [ "$dbc_tried_again" ] && return 0
###
### populate the database
--- NEW FILE: postinst.oracle ---
dbc_hardcoded_dbtype=oracle
. /usr/share/dbconfig-common/dpkg/postinst $@
--- NEW FILE: postrm.oracle ---
dbc_hardcoded_dbtype=oracle
. /usr/share/dbconfig-common/dpkg/postrm $@
--- NEW FILE: preinst.oracle ---
dbc_hardcoded_dbtype=oracle
. /usr/share/dbconfig-common/dpkg/preinst $@
Index: prerm
===================================================================
RCS file: /cvsroot/dbconfig-common/dbconfig-common/dpkg/prerm,v
retrieving revision 1.12
retrieving revision 1.12.2.1
diff -u -d -r1.12 -r1.12.2.1
--- prerm 7 Nov 2005 19:21:27 -0000 1.12
+++ prerm 30 Dec 2005 08:57:41 -0000 1.12.2.1
@@ -2,12 +2,13 @@
### some global variables etc
###
dbc_go(){
- local need_admin_pw
+ local need_admin_pw need_sys_pw
. /usr/share/dbconfig-common/dpkg/common
dbc_config $@
need_admin_pw="yup"
+ need_sys_pw="yup"
if [ "$dbc_command" = "upgrade" ]; then
###
@@ -84,6 +85,12 @@
dbc_get_admin_pass
fi
+ if [ "$need_sys_pw" ]; then
+ dbc_get_sys_pass
+ fi
+ if [ "$need_system_pw" ]; then
+ dbc_get_system_pass
+ fi
# dump the database into a temporary file
_dbc_now=`date +%Y-%m-%d-%H.%M`
_dbc_dbfile=`mktemp /var/tmp/$dbc_package.$dbc_dbname.$_dbc_now.$dbc_dbtype.XXXXXX`
--- NEW FILE: prerm.oracle ---
dbc_hardcoded_dbtype=oracle
. /usr/share/dbconfig-common/dpkg/prerm $@
More information about the Dbconfig-common-changes
mailing list