[Fedora-directory-commits] adminserver/include i18n.h,1.5,1.6
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/adminserver/include
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv32253/adminserver/include
Modified Files:
i18n.h
Log Message:
Resolves: bug 239502, bug 186280
Description: adminserver: autotools, FHS, clean up CGI parameters
Fix Description: Too numerous to mention
Index: i18n.h
===================================================================
RCS file: /cvs/dirsec/adminserver/include/i18n.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- i18n.h 31 Mar 2006 22:58:21 -0000 1.5
+++ i18n.h 9 May 2007 00:26:35 -0000 1.6
@@ -178,8 +178,6 @@
#define MAX_ACCEPT_LANGUAGE 16
#define MAX_ACCEPT_LENGTH 18
-typedef char ACCEPT_LANGUAGE_LIST[MAX_ACCEPT_LANGUAGE][MAX_ACCEPT_LENGTH];
-
NSAPI_PUBLIC
int
XP_AccLangList(char* AcceptLanguage,
15 years, 10 months
[Fedora-directory-commits] adminserver/admserv/schema/ldif adminglobal.ldif, NONE, 1.1 admintasks.ldif, NONE, 1.1 global.ldif, 1.6, NONE tasks.ldif, 1.7, NONE
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/adminserver/admserv/schema/ldif
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv32253/adminserver/admserv/schema/ldif
Added Files:
adminglobal.ldif admintasks.ldif
Removed Files:
global.ldif tasks.ldif
Log Message:
Resolves: bug 239502, bug 186280
Description: adminserver: autotools, FHS, clean up CGI parameters
Fix Description: Too numerous to mention
--- NEW FILE adminglobal.ldif ---
# BEGIN COPYRIGHT BLOCK
# Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
# Copyright (C) 2005 Red Hat, Inc.
# All rights reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# END COPYRIGHT BLOCK
dn: ou=UserPreferences
objectclass: top
objectclass: organizationalUnit
ou: UserPreferences
aci: (targetattr = "*")(version 3.0; acl "Allow saving of User Preferences"; allow (add) userdn = "ldap:///all";)
dn: ou=Admin, ou=Global Preferences
objectclass: top
objectclass: organizationalUnit
objectclass: extensibleObject
ou: admin
nsmerge: ADD_IF_EMPTY
dn: ou=1.0, ou=Admin, ou=Global Preferences
objectclass: top
objectclass: organizationalunit
objectclass: extensibleObject
ou: 1.0
nsmerge: ADD_IF_EMPTY
dn: cn=Common, ou=Global Preferences
objectclass: top
objectclass: nsResourceRef
objectclass: nsGlobalParameters
objectclass: extensibleObject
cn: common
nsuniqueattribute: uid
nsuseridformat: firstletter_lastname
nsUserRDNComponent: uid
nsGroupRDNComponent: cn
nsmerge: {nsuniqueattribute}ADD_IF_EMPTY
nsmerge: {nsuseridformat}ADD_IF_EMPTY
nsmerge: {nsuserrdncomponent}ADD_IF_EMPTY
nsmerge: {nsgrouprdncomponent}ADD_IF_EMPTY
dn: cn=Client, ou=Admin, ou=Global Preferences
objectclass: top
objectclass: nsResourceRef
objectclass: nsAdminGlobalParameters
objectclass: extensibleObject
cn: Client
nsadminenduserhtmlindex: [--Category:general,General][--Option:edit.cgi?userpinfo,Personal Information][--Option:edit.cgi?userpasswd,Password]
nsnickname: admin,,Fedora Administration Server
nsnickname: https,netshare,Fedora Enterprise Server
nsnickname: httpd,httpd,Fedora FastTrack Server
nsnickname: msg,msg,Fedora Messaging Server
nsnickname: news,news,Fedora Collabra Server
nsnickname: proxy,proxy,Fedora Proxy Server
nsnickname: lmspd,lmspd,Fedora Media Server
nsnickname: slapd,slapd,Fedora Directory Server
nsnickname: cert,cert,Fedora Certificate Server
nsnickname: compass,compass,Fedora Compass Server
nsnickname: catalog,catalog,Fedora Catalog Server
nsnickname: calendar,calendar,Fedora Calendar Server
nsmerge: {nsadminenduserhtmlindex}MULTI_MERGE
nsmerge: {nsnickname}MULTI_MERGE
dn: cn=PublicViews, ou=1.0, ou=Admin, ou=Global Preferences
objectclass: top
objectclass: nsAdminConsoleUser
cn: PublicViews
aci: (targetattr = "*")(version 3.0; acl "Allow Authenticated Users to Save Public Views"; allow (all) userdn = "ldap:///all";)
dn: cn=CustomView, ou=1.0, ou=Admin, ou=Global Preferences
objectclass: top
objectclass: nsResourceRef
cn: CustomView
dn: cn=ResourceEditorExtension, ou=1.0, ou=Admin, ou=Global Preferences
objectclass: top
objectclass: nsResourceRef
objectclass: extensibleObject
cn: ResourceEditorExtension
nsmerge: ADD_IF_EMPTY
dn: cn=inetorgPerson, cn=ResourceEditorExtension, ou=1.0, ou=Admin, ou=Global Preferences
cn: inetorgPerson
objectclass: nsResourceRef
objectclass: nsAdminResourceEditorExtension
objectclass: top
objectclass: extensibleObject
nsclassname: com.netscape.management.client.ug.ResEditorUserPage
nsclassname: com.netscape.management.client.ug.ResEditorAccountPage
nsclassname: com.netscape.management.client.ug.LanguagePage
nsclassname: com.netscape.management.client.ug.ResEditorNTUser
nsclassname: com.netscape.management.client.ug.ResEditorPosixUser
nsmerge: {nsclassname}MULTI_MERGE
dn: cn=organizationalPerson, cn=ResourceEditorExtension, ou=1.0, ou=Admin, ou=Global Preferences
cn: organizationalPerson
objectclass: nsResourceRef
objectclass: nsAdminResourceEditorExtension
objectclass: top
objectclass: extensibleObject
nsclassname: com.netscape.management.client.ug.ResEditorUserPage
nsclassname: com.netscape.management.client.ug.ResEditorAccountPage
nsclassname: com.netscape.management.client.ug.LanguagePage
nsmerge: {nsclassname}MULTI_MERGE
dn: cn=groupofuniquenames, cn=ResourceEditorExtension, ou=1.0, ou=Admin, ou=Global Preferences
cn: groupofuniquenames
objectclass: nsResourceRef
objectclass: nsAdminResourceEditorExtension
objectclass: top
objectclass: extensibleObject
nsclassname: com.netscape.management.client.ug.ResEditorGroupInfo
nsclassname: com.netscape.management.client.ug.ResEditorGroupMembers
nsclassname: com.netscape.management.client.ug.ResEditorAccountPage
nsclassname: com.netscape.management.client.ug.LanguagePage
nsclassname: com.netscape.management.client.ug.ResEditorGroupInfo
nsclassname: com.netscape.management.client.ug.ResEditorGroupMembers
nsclassname: com.netscape.management.client.ug.ResEditorAccountPage
nsclassname: com.netscape.management.client.ug.LanguagePage
nsmerge: {nsclassname}MULTI_MERGE
dn: cn=organizationalunit, cn=ResourceEditorExtension, ou=1.0, ou=Admin, ou=Global Preferences
cn: organizationalunit
objectclass: nsResourceRef
objectclass: nsAdminResourceEditorExtension
objectclass: top
objectclass: extensibleObject
nsclassname: com.netscape.management.client.ug.OUPage
nsclassname: com.netscape.management.client.ug.LanguagePage
nsmerge: {nsclassname}MULTI_MERGE
dn: cn=defaultObjectClassesContainer, ou=1.0, ou=Admin, ou=Global Preferences
objectclass: top
objectclass: nsResourceRef
cn: DefaultObjectClassesContainer
dn: cn=user, cn=defaultObjectClassesContainer, ou=1.0, ou=Admin, ou=Global Preferences
objectclass: top
objectclass: nsResourceRef
objectclass: nsdefaultObjectClasses
cn: user
nsdefaultObjectClass: top
nsdefaultObjectClass: person
nsdefaultObjectClass: organizationalPerson
nsdefaultObjectClass: inetorgperson
dn: cn=group, cn=defaultObjectClassesContainer, ou=1.0, ou=Admin, ou=Global Preferences
objectclass: top
objectclass: nsResourceRef
objectclass: nsdefaultObjectClasses
cn: group
nsdefaultObjectClass: top
nsdefaultObjectClass: groupofuniquenames
dn: cn=ou, cn=defaultObjectClassesContainer, ou=1.0, ou=Admin, ou=Global Preferences
objectclass: top
objectclass: nsResourceRef
objectclass: nsdefaultObjectClasses
cn: ou
nsdefaultObjectClass: top
nsdefaultObjectClass: organizationalunit
dn: cn=topologyplugin, ou=1.0, ou=Admin, ou=Global Preferences
objectclass: top
objectclass: nsResourceRef
objectclass: extensibleObject
cn: topologyplugin
nsmerge: ADD_IF_EMPTY
dn: cn=defaultplugin, cn=topologyplugin, ou=1.0, ou=Admin, ou=Global Preferences
objectclass: top
objectclass: nstopologyplugin
objectclass: extensibleObject
cn: defaultplugin
nsclassname: com.netscape.management.client.topology.DefaultTopologyPlugin
nsmerge: {nsclassname}MULTI_MERGE
--- NEW FILE admintasks.ldif ---
# BEGIN COPYRIGHT BLOCK
# Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
# Copyright (C) 2005 Red Hat, Inc.
# All rights reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# END COPYRIGHT BLOCK
# Top level Task branch
dn: cn=Tasks
objectclass: top
objectclass: nsResourceRef
#
# Operation Task Group
#
dn: cn=Operation, cn=Tasks
objectclass: top
objectclass: nstaskgroup
nsTaskLabel: Operation Tasks Group
dn: cn=Stop, cn=Operation, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref: admin/stopadm.html
nsexecref: stopsrv
nsclassname: com.netscape.management.admserv.task.Stop(a)fedora-admserv-1.0.jar
dn: cn=Restart, cn=Operation, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref: admin/restartadm.html
nsexecref: restartsrv
nsclassname: com.netscape.management.admserv.task.Restart(a)fedora-admserv-1.0.jar
dn: cn=Authenticate, cn=Operation, cn=Tasks
objectclass: top
objectclass: nstask
nshelpref: admin/userauth.html
nsexecref: userauth
dn: cn=ListOldServers, cn=Operation, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref:
nsexecref: listOldSrvs
dn: cn=StartConfigDS, cn=Operation, cn=Tasks
objectclass: top
objectclass: nstask
nshelpref:
nsexecref: start_config_ds
dn: cn=MigrateConfig, cn=Operation, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref:
nsexecref: migrateConfig
dn: cn=MergeConfig, cn=Operation, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref:
nsexecref: mergeConfig
dn: cn=StatusPing, cn=Operation, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref:
nsexecref: statusping
nsLogSuppress: true
#
# Configuration Task Group
#
dn: cn=Configuration, cn=Tasks
objectclass: top
objectclass: nstaskgroup
nsTaskLabel: Configuration Tasks Group
dn: cn=ServerSetup, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref:
nsexecref: config
nsclassname: com.netscape.management.admserv.task.ServerSetup(a)fedora-admserv-1.0.jar
dn: cn=DirectorySetup, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref:
nsexecref: dsconfig
dn: cn=UGDirectorySetup, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref:
nsexecref: ugdsconfig
dn: cn=AccessSetup, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref:
nsexecref: admpw
dn: cn=Logging, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref: admin/logging.html
nsexecref: config
nsclassname: com.netscape.management.admserv.task.Logging(a)fedora-admserv-1.0.jar
dn: cn=SecurityOp, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref:
nsexecref: security
dn: cn=CertSetup, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref: admin/certrequest.html
nsexecref:
nsclassname: com.netscape.management.admserv.task.CertSetup(a)fedora-admserv-1.0.jar
dn: cn=SSLActivate, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref: admin/ssl_activate.html
nsexecref: sec-activate
dn: cn=ReadLog, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref: admin/logging.html
nsexecref: ReadLog
dn: cn=HTMLAdmin, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref: admin/htmladmin.html
nsexecref: htmladmin
dn: cn=StatPingServ, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref: admin/statpingserv.html
nsexecref: statpingserv
dn: cn=ViewData, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref: admin/viewdata.html
nsexecref: viewdata
dn: cn=ViewLog, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref: admin/viewlog.html
nsexecref: viewlog
dn: cn=MonReplication, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref: admin/monreplication.html
nsexecref: monreplication
dn: cn=repl-monitor-cgi.pl, cn=configuration, cn=Tasks
objectclass: top
objectclass: nstask
objectclass: nsAdminObject
nshelpref: admin/monreplication.html
nsexecref: repl-monitor-cgi.pl
# Top level Command branch
#
# DT 3/15/98
dn: cn=Commands
objectclass: top
objectclass: nsResourceRef
# Runtime task/sie resync command
#
# DT 3/15/98
dn: cn=sync-task-sie-data, cn=Commands
objectclass: top
objectclass: nstask
nshelpref: admin/sync-task-sie-data.html
nsexecref: runtime
dn: cn=change-sie-password, cn=Commands
objectclass: top
objectclass: nstask
nshelpref:
nsexecref: runtime
--- global.ldif DELETED ---
--- tasks.ldif DELETED ---
15 years, 10 months
[Fedora-directory-commits] adminserver/admserv/newinst/src ux-config.cc, 1.10, 1.11 ux-config.h, 1.6, 1.7 ux-dialog.cc, 1.10, 1.11 ux-dialog.h, 1.4, 1.5 ux-remove.cc, 1.6, 1.7 ux-update.cc, 1.22, 1.23
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/adminserver/admserv/newinst/src
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv32253/adminserver/admserv/newinst/src
Modified Files:
ux-config.cc ux-config.h ux-dialog.cc ux-dialog.h ux-remove.cc
ux-update.cc
Log Message:
Resolves: bug 239502, bug 186280
Description: adminserver: autotools, FHS, clean up CGI parameters
Fix Description: Too numerous to mention
Index: ux-config.cc
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/newinst/src/ux-config.cc,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ux-config.cc 12 May 2006 00:41:35 -0000 1.10
+++ ux-config.cc 9 May 2007 00:26:33 -0000 1.11
@@ -39,12 +39,14 @@
#include <signal.h>
}
-#include "global.h"
-#include "dialog.h"
+#include "setuputil/global.h"
+#include "setuputil/dialog.h"
#include "ux-config.h"
#include "ux-dialog.h"
-extern const char *DEFAULT_SYSUSER = "root";
+#include "config.h"
+
+extern const char *DEFAULT_SYSUSER;
/*********************************************************************
**
@@ -58,8 +60,7 @@
** and can be executed from anywhere.
**
** - The stand-alone configuration program used to re-configure
-** the administration server. In this case, the program has
-** to be executed from the serverroot.
+** the administration server.
**
** SIDE EFFECTS:
** None
@@ -144,7 +145,6 @@
int err = 0;
umask(022);
- _serverRoot = InstUtil::getCurrentDir();
if (installMode() == Interactive)
{
@@ -153,18 +153,7 @@
if (_infoFile == (char *) NULL)
{
- // Not executing from the shell, check if this is the
- // server root
- if (InstUtil::isServerRoot(_serverRoot) == False)
- {
- err = -1;
- snprintf(errMsg, sizeof(errMsg), "ERROR: %s is not a server root\n",_serverRoot.data());
- errMsg[sizeof(errMsg)-1] = 0;
- }
- else
- {
- _runFromShell = False;
- }
+ _runFromShell = False;
}
else if (InstUtil::fileExists(_infoFile) == False)
{
@@ -187,7 +176,8 @@
{
if (_logFile == (char *) NULL)
{
- _logFile = _serverRoot + "/" + SETUP_DIR + "/" + INSTALL_LOG;
+ NSString logdir(LOGDIR);
+ _logFile = logdir + "/" + INSTALL_LOG;
}
_installLog = new InstallLog (_logFile);
}
@@ -218,7 +208,6 @@
{
_adminInfo = _installInfo->createSection("admin");
}
- _serverRoot = _installInfo->get(SERVER_ROOT);
}
else
{
@@ -227,7 +216,6 @@
// installation database.
// PVO
char buf[SML_BUF];
-// _infoFile = _serverRoot + "/" + SETUP_DIR + "/" + INSTALL_INF; -- PVO
_infoFile = tmpnam(buf);
_installInfo = new InstallInfo();
_adminInfo = _installInfo->createSection("admin");
@@ -264,20 +252,18 @@
NVPair admConf;
LdapError ldapError;
char *ldapURL = NULL;
- char *ldapUser = NULL;
- char *installDN = NULL;
NSString siePwd = NULL;
NSString siePort = NULL;
NSString hostName = InstUtil::guessHostname();
/* First, determine whether Admin is already configured */
- snprintf(tmp, sizeof(tmp), "%s/admin-serv/config/adm.conf", _serverRoot.data());
+ snprintf(tmp, sizeof(tmp), "%s/local.conf", CONFIGDIR);
tmp[sizeof(tmp)-1] = 0;
admConf.setFormat(2);
admConf.read(tmp);
- getDefaultLdapInfo(_serverRoot, &ldapURL, &ldapUser, &installDN );
+ getDefaultLdapInfo(CONFIGDIR, &ldapURL, NULL, NULL );
if (admConf.isEmpty() == False)
{
@@ -286,7 +272,7 @@
/* Use admin id and admin pwd to access DS */
sieDN = _installInfo->get(MC_ADMIN_ID);
siePwd = _installInfo->get(MC_ADMIN_PWD);
- siePort = admConf.get("port");
+ siePort = admConf.get("nsServerPort");
if (sieDN != (char *) NULL && siePwd != (char *) NULL && ldapURL != NULL)
{
@@ -309,7 +295,7 @@
}
}
- snprintf(tmp, sizeof(tmp), "%s/admin-serv/config/admpw", _serverRoot.data());
+ snprintf(tmp, sizeof(tmp), "%s/admpw", CONFIGDIR);
tmp[sizeof(tmp)-1] = 0;
admConf.read(tmp);
@@ -357,7 +343,6 @@
if (_runFromShell == False)
{
- _installInfo->set(SERVER_ROOT, _serverRoot.data());
_installInfo->set(MACHINE_NAME, hostName);
_installInfo->set(INSTALL_TYPE, DEFAULT_INSTALL_TYPE);
if (ldapURL)
@@ -369,13 +354,13 @@
_installInfo->set(CONFIG_LDAP_URL, NSString("ldap://") +
_installInfo->get(MACHINE_NAME) +
":389/" +
- "o=" + InstUtil::guessDomain());
+ "o=NetscapeRoot");
ldapURL = (char *) _installInfo->get(CONFIG_LDAP_URL);
}
- _installInfo->set(SS_USER_ID, InstUtil::getDefaultUser(_serverRoot));
- _installInfo->set(SS_GROUP, InstUtil::getDefaultGroup(_serverRoot));
+ _installInfo->set(SS_USER_ID, InstUtil::getDefaultUser(CONFIGDIR));
+ _installInfo->set(SS_GROUP, InstUtil::getDefaultGroup(CONFIGDIR));
}
}
@@ -557,16 +542,8 @@
if (installType() == Express)
{
-#ifdef LINUX
- NSString httpd = "/usr/sbin";
-#else
-#ifdef HPUX
- NSString httpd = "/opt/hpws/apache/bin";
-#else
- NSString httpd = "/usr/local/apache2/bin";
-#endif
-#endif
- _adminInfo->set("ApacheDir", httpd);
+ NSString httpd = HTTPD;
+ _adminInfo->set("Apache", httpd);
goto SS8;
}
askApache.registerDialogNext(this);
@@ -759,14 +736,18 @@
NSString errMsg;
NSString sysUser;
- snprintf(tmp, sizeof(tmp), "%s/bin/admin/ns-admin", _serverRoot.data());
+ snprintf(tmp, sizeof(tmp), "%s/local.conf", CONFIGDIR);
tmp[sizeof(tmp)-1] = 0;
if (stat(tmp, &fi) == 0)
{
sysUser = getpwuid(fi.st_uid)->pw_name;
}
- else
+ else if (InstUtil::isSelfRootUser())
+ {
+ sysUser = DEFAULT_HTTPDUSER;
+ }
+ else /* not root, just use process user id */
{
sysUser = InstUtil::getSelfUserID();
}
@@ -788,12 +769,12 @@
char stopProgram[BIG_BUF];
struct stat fi;
- snprintf(pid, sizeof(pid), "%s/admin-serv/logs/pid", _serverRoot.data());
+ snprintf(pid, sizeof(pid), "%s/%s", PIDDIR, PIDFILE);
pid[sizeof(pid)-1] = 0;
if (stat(pid, &fi) == 0)
{
- snprintf(stopProgram, sizeof(stopProgram), "%s/stop-admin", _serverRoot.data());
+ snprintf(stopProgram, sizeof(stopProgram), "%s/stop-admin", CMDBINDIR);
stopProgram[sizeof(stopProgram)-1] = 0;
if (stat (stopProgram, &fi) != 0)
{
@@ -802,19 +783,6 @@
}
system(stopProgram);
}
-
- /* Stop SNMP Master Agent if running */
- int magpid;
- FILE* fhdl;
- snprintf(pid, sizeof(pid), "%s/admin-serv/logs/pid_masteragt", _serverRoot.data());
- pid[sizeof(pid)-1] = 0;
- if ((fhdl = fopen(pid, "r")) != NULL)
- {
- fscanf(fhdl, "%d\n", &magpid);
- fclose(fhdl);
- kill(magpid, SIGKILL);
- unlink(pid);
- }
}
int
@@ -825,7 +793,7 @@
disableWinMode();
- snprintf(tmp, sizeof(tmp), "%s/bin/admin/ns-update -f %s", _serverRoot.data(), _infoFile.data());
+ snprintf(tmp, sizeof(tmp), "%s/ns-update -f %s", CMDBINDIR, _infoFile.data());
tmp[sizeof(tmp)-1] = 0;
err = system(tmp);
@@ -858,7 +826,7 @@
}
}
-static char *get_value(char * file, char * attr) {
+static char *get_value(const char * file, const char * attr) {
char cmd[1024];
char buf[1024];
FILE *fp;
@@ -888,37 +856,32 @@
}
NSString
-AdminPreInstall::verifyApacheDir(const char *dir) const
+AdminPreInstall::verifyApache(const char *path) const
{
- char path[1024];
char errMsg[SML_BUF];
+ NSString apacheRoot;
struct stat st;
char *v;
- snprintf(path, sizeof(path), "%s/httpd.worker", dir);
- path[sizeof(path)-1] = 0;
if (stat(path, &st) != 0) {
- snprintf(path, sizeof(path), "%s/httpd", dir);
- path[sizeof(path)-1] = 0;
- if (stat(path, &st) != 0) {
- snprintf(errMsg, sizeof(errMsg), "Can't find Apache in %s", dir);
- errMsg[sizeof(errMsg)-1] = 0;
- return errMsg;
- }
+ snprintf(errMsg, sizeof(errMsg), "Unable to locate Apache binary %s\n.", path);
+ errMsg[sizeof(errMsg)-1] = 0;
+ return errMsg;
}
v = get_value(path, "APACHE_MPM_DIR");
- if (strcmp(v, "server/mpm/worker")) {
- snprintf(errMsg, sizeof(errMsg), "The Admininistration Server requires an Apache web server that provides the worker model.");
+ if (!v || strcmp(v, "server/mpm/worker")) {
+ snprintf(errMsg, sizeof(errMsg),
+ "The Admininistration Server requires an Apache web "
+ "server that provides the worker (multi-threaded) model.\n%s was not "
+ "built with this option. See '%s -V' for more details", path, path);
errMsg[sizeof(errMsg)-1] = 0;
return errMsg;
}
- v = get_value(path, "HTTPD_ROOT");
- snprintf(path, sizeof(path), "%s/modules", v);
- path[sizeof(path)-1] = 0;
- if (stat(path, &st) != 0) {
- snprintf(errMsg, sizeof(errMsg), "Unable to locate Apache modules in %s\n.", path);
+ apacheRoot = getApacheRoot(path);
+ if (!apacheRoot.data() || !apacheRoot.length()) {
+ snprintf(errMsg, sizeof(errMsg), "Unable to locate Apache modules for %s\n.", path);
errMsg[sizeof(errMsg)-1] = 0;
return errMsg;
}
@@ -929,27 +892,17 @@
}
NSString
-AdminPreInstall::getApacheRoot(const char *dir) const
+AdminPreInstall::getApacheRoot(const char *path) const
{
- char path[1024];
+ char mypath[1024];
char errMsg[SML_BUF];
struct stat st;
char *v;
- snprintf(path, sizeof(path), "%s/httpd.worker", dir);
- path[sizeof(path)-1] = 0;
- if (stat(path, &st) != 0) {
- snprintf(path, sizeof(path), "%s/httpd", dir);
- path[sizeof(path)-1] = 0;
- if (stat(path, &st) != 0) {
- return NULL;
- }
- }
-
v = get_value(path, "HTTPD_ROOT");
- snprintf(path, sizeof(path), "%s/modules", v);
- path[sizeof(path)-1] = 0;
- if (stat(path, &st) != 0) {
+ snprintf(mypath, sizeof(mypath), "%s/modules", v);
+ mypath[sizeof(mypath)-1] = 0;
+ if (stat(mypath, &st) != 0) {
return NULL;
}
Index: ux-config.h
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/newinst/src/ux-config.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ux-config.h 28 Oct 2005 22:44:18 -0000 1.6
+++ ux-config.h 9 May 2007 00:26:33 -0000 1.7
@@ -30,6 +30,11 @@
**
** HISTORY:
** $Log$
+** Revision 1.7 2007/05/09 00:26:33 rmeggins
+** Resolves: bug 239502, bug 186280
+** Description: adminserver: autotools, FHS, clean up CGI parameters
+** Fix Description: Too numerous to mention
+**
** Revision 1.6 2005/10/28 22:44:18 nhosoi
** 171942 ��� Change Admin Server version to 1.0
** 1) changing Admin Server version to 1.0 including ou in the Global preferences
@@ -97,8 +102,8 @@
**
**
*********************************************************************/
-#include "dialog.h"
-#include "ux-util.h"
+#include "setuputil/dialog.h"
+#include "setuputil/ux-util.h"
extern const char *DEFAULT_SYSUSER;
class AdminPreInstall:public DialogManager
@@ -125,8 +130,8 @@
NSString verifyAdminPort(const char *port) const;
NSString verifyAdminSysUser(const char *sysUser) const;
NSString guessAdminSysUser() const;
- NSString verifyApacheDir(const char*) const;
- NSString getApacheRoot(const char *dir) const;
+ NSString verifyApache(const char*path) const;
+ NSString getApacheRoot(const char *path) const;
void setupServerAdmin();
int prepareUpgrade();
@@ -134,7 +139,6 @@
private:
Bool _runFromShell;
- NSString _serverRoot;
NSString _infoFile;
InstallInfo *_installInfo;
Index: ux-dialog.cc
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/newinst/src/ux-dialog.cc,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ux-dialog.cc 31 Mar 2006 22:58:20 -0000 1.10
+++ ux-dialog.cc 9 May 2007 00:26:33 -0000 1.11
@@ -26,12 +26,14 @@
#include <string.h>
}
-#include "utf8.h"
-#include "ux-util.h"
-#include "dialog.h"
+#include "setuputil/utf8.h"
+#include "setuputil/ux-util.h"
+#include "setuputil/dialog.h"
#include "ux-dialog.h"
#include "ux-config.h"
+#include "config.h"
+
/*
** Forward References
*/
@@ -164,7 +166,7 @@
"Run Administration Server as",
-DEFAULT_SYSUSER,
+DEFAULT_HTTPDUSER,
askSysUserSetup,
askSysUserNext
@@ -561,20 +563,12 @@
DialogInput askApache(
"The Administration Server runs on the Apache web server. Please provide the\n"
-"directory where the Apache binary (httpd or httpd.worker) may be found. The\n"
-"Administration Server needs an Apache compiled with the worker model.\n",
+"absolute path and filename of the Apache binary. The Administration \n"
+"Server needs an Apache compiled with the worker (multi-threaded) model.\n",
-"Apache Directory",
+"Apache",
-#ifdef LINUX
-"/usr/sbin/",
-#else
-#ifdef HPUX
-"/opt/hpws/apache/bin",
-#else
-"/usr/local/apache2/bin",
-#endif
-#endif
+HTTPD,
askApacheSetup,
askApacheNext
);
@@ -582,7 +576,7 @@
DialogAction
askApacheSetup(Dialog *me)
{
- dialogSetup(me, "ApacheDir", ((AdminPreInstall *) me->manager()->parent())->getDefaultScript());
+ dialogSetup(me, "Apache", ((AdminPreInstall *) me->manager()->parent())->getDefaultScript());
return DIALOG_SAME;
}
@@ -590,20 +584,20 @@
askApacheNext(Dialog *me)
{
const char *buf = me->input();
- const char *ApacheDir;
+ const char *Apache;
NSString errMsg;
AdminPreInstall *installer = (AdminPreInstall *) me->manager()->parent();
if (buf[0] == 0)
{
- ApacheDir = me->defaultAns();
+ Apache = me->defaultAns();
}
else
{
- ApacheDir = buf;
+ Apache = buf;
}
- errMsg = installer->verifyApacheDir(ApacheDir);
+ errMsg = installer->verifyApache(Apache);
if (errMsg != (char *) NULL)
{
@@ -612,8 +606,8 @@
return DIALOG_SAME;
}
- me->manager()->getDefaultScript()->set("ApacheDir", ApacheDir);
- me->manager()->getDefaultScript()->set("ApacheRoot", installer->getApacheRoot(ApacheDir));
+ me->manager()->getDefaultScript()->set("Apache", Apache);
+ me->manager()->getDefaultScript()->set("ApacheRoot", installer->getApacheRoot(Apache));
return DIALOG_NEXT;
}
Index: ux-dialog.h
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/newinst/src/ux-dialog.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ux-dialog.h 18 Aug 2005 19:06:43 -0000 1.4
+++ ux-dialog.h 9 May 2007 00:26:33 -0000 1.5
@@ -18,7 +18,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* END COPYRIGHT BLOCK **/
-#include "dialog.h"
+#include "setuputil/dialog.h"
extern DialogYesNo askReconfig;
extern DialogInput askAdminPort;
extern DialogInput askAdminUser;
Index: ux-remove.cc
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/newinst/src/ux-remove.cc,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ux-remove.cc 12 May 2006 00:41:35 -0000 1.6
+++ ux-remove.cc 9 May 2007 00:26:33 -0000 1.7
@@ -42,9 +42,11 @@
#include <signal.h> /* kill() */
}
-#include "global.h"
-#include "ux-util.h"
-#include "ldapu.h"
+#include "setuputil/global.h"
+#include "setuputil/ux-util.h"
+#include "setuputil/ldapu.h"
+
+#include "config.h"
int main(int argc, char *argv[])
{
Index: ux-update.cc
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/newinst/src/ux-update.cc,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- ux-update.cc 12 May 2006 00:41:35 -0000 1.22
+++ ux-update.cc 9 May 2007 00:26:33 -0000 1.23
@@ -45,14 +45,16 @@
}
-#include "global.h"
-#include "code.h"
-#include "ux-util.h"
-#include "ldapu.h"
-#include "setupldap.h"
-#include "uninstall.h"
+#include "setuputil/global.h"
+#include "setuputil/code.h"
+#include "setuputil/ux-util.h"
+#include "setuputil/ldapu.h"
+#include "setuputil/setupldap.h"
+#include "setuputil/uninstall.h"
#include "../common/include/acidef.h"
+#include "config.h"
+
static int set_locate_admserv_aci(Ldap *ldap);
static int repair_group_expansion_aci(Ldap *ldap);
static void replaceTokensInFile(const char *sourcefile, const char *destfile, const char * const *ary);
@@ -65,14 +67,14 @@
#define EPOCH_32BIT_END_TIME "20380118031417" /* <correct end time> minus 1 day */
-const char *DEFAULT_SYSUSER = "root";
-const char *DEFAULT_TASKCONF = "admin-serv/ldif/tasks.ldif";
-const char *DEFAULT_GLOBALCONF = "admin-serv/ldif/global.ldif";
+const char *DEFAULT_SYSUSER = DEFAULT_HTTPDUSER;
+const char *DEFAULT_DATADIR = DATADIR;
+const char *DEFAULT_TASKCONF = "admintasks.ldif"; /* relative to DATADIR */
+const char *DEFAULT_GLOBALCONF = "adminglobal.ldif"; /* relative to DATADIR */
const char *CHOWN_CMD = "chown -R %s %s >/dev/null 2>&1";
const char *CHGRP_CMD = "chgrp -R %s %s >/dev/null 2>&1";
const char *SHARED_CHGRP_CMD = "chgrp -R %s %s/shared >/dev/null 2>&1";
-const char *SSCONF_CHGRP_CMD = "chgrp -R %s %s/shared/config/ssusers.conf >/dev/null 2>&1";
const char *SECALIAS_CHGRP_CMD = "chgrp -R %s %s/alias >/dev/null 2>&1";
const char *DEFAULT_ADMIN_CONFIG_ACI = "(targetattr=*)(version 3.0; acl \"Enable delegated admin to access configuration\"; allow (read,search) groupdn=\"ldap:///%s\";)";
@@ -211,7 +213,7 @@
return result;
}
-static char *get_value(char * file, char * attr) {
+static char *get_value(const char * file, char * attr) {
char cmd[1024];
char buf[1024];
FILE *fp;
@@ -240,24 +242,16 @@
}
static NSString
-findApacheRoot(const char *dir)
+findApacheRoot(const char *path)
{
- char path[1024];
+ char mypath[1024];
struct stat st;
char *v;
- snprintf(path, sizeof(path), "%s/httpd.worker", dir);
- if (stat(path, &st) != 0) {
- snprintf(path, sizeof(path), "%s/httpd", dir);
- if (stat(path, &st) != 0) {
- return NULL;
- }
- }
-
v = get_value(path, "HTTPD_ROOT");
if (v) {
- sprintf(path, "%s/modules", v);
- if (stat(path, &st) != 0) {
+ sprintf(mypath, "%s/modules", v);
+ if (stat(mypath, &st) != 0) {
return NULL;
}
}
@@ -265,7 +259,7 @@
return v;
}
-static char *get_version(char * file) {
+static char *get_version(const char * file) {
char cmd[1024];
char buf[1024];
FILE *fp;
@@ -295,25 +289,20 @@
static NSString
findApacheVersion(const char *dir)
{
- char path[1024];
struct stat st;
char *v;
- snprintf(path, sizeof(path), "%s/httpd.worker", dir);
- if (stat(path, &st) != 0) {
- snprintf(path, sizeof(path), "%s/httpd", dir);
- if (stat(path, &st) != 0) {
- return NULL;
- }
+ if (stat(dir, &st) != 0) {
+ return NULL;
}
- v = get_version(path);
+ v = get_version(dir);
return v;
}
void
-configTasks(const Ldap *ldap, const char *sroot, const char *sieDN)
+configTasks(const Ldap *ldap, const char *datadir, const char *sieDN)
{
char tmp[BIG_BUF];
LdapErrorCode err;
@@ -321,7 +310,7 @@
printf("Configuring Administration Tasks in Directory Server...\n");
installLog->logMessage(INFO, "Admin", "Configuring Administration Tasks in Directory Server");
- sprintf(tmp, "%s/%s", sroot, DEFAULT_TASKCONF);
+ sprintf(tmp, "%s/%s", datadir, DEFAULT_TASKCONF);
err = setupReplaceLdifEntries(ldap, sieDN, tmp, sieDN);
@@ -333,7 +322,7 @@
}
void
-configGlobalParameters(const Ldap *ldap, const char *sroot, const char *subTreeDN)
+configGlobalParameters(const Ldap *ldap, const char *datadir, const char *subTreeDN)
{
char tmp[BIG_BUF];
LdapErrorCode err;
@@ -341,7 +330,7 @@
printf("Configuring Global Parameters in Directory Server...\n");
installLog->logMessage(INFO, "Admin", "Configuring global parameters...");
- sprintf(tmp, "%s/%s", sroot, DEFAULT_GLOBALCONF);
+ sprintf(tmp, "%s/%s", datadir, DEFAULT_GLOBALCONF);
err = setupUpdateLdifEntries(ldap, subTreeDN, tmp, NULL);
@@ -353,65 +342,8 @@
}
-/*
- * Cleanup prevoius installation after upgrading from 6.0x
- */
-int
-cleanup_after_upgrade(const char *sroot)
-{
- struct stat fi;
- char buf[BIG_BUF];
-
- // Move admin-serv/config/secmod.db to the alias directory;
- // Starting with as 6.1 secmod.db is in the alias directory.
- sprintf(buf, "%s/admin-serv/config/secmod.db", sroot);
- if (stat(buf, &fi) == 0) {
- char to[BIG_BUF];
- sprintf(to, "%s/alias/secmod.db", sroot);
- if (link(buf, to) == 0) {
- unlink(buf);
- }
- }
-
- // Remove admin-serv/config/libnssckbi.so;
- // Starting with as 6.1 secmod.db is in the alias directory.
- sprintf(buf, "%s/admin-serv/config/libnssckbi.%s", sroot, SHLIB_EXT);
- if (stat(buf, &fi) == 0) {
- unlink(buf);
- }
-
- // Remove admin-serv/config/res directory. Not packaged starting with as61.
- sprintf(buf, "%s/admin-serv/config/res", sroot);
- if (stat(buf, &fi) == 0) {
- char cmd[BIG_BUF];
- sprintf(cmd, "rm -fr %s", buf);
- system(cmd);
- }
-
- // Remove adminsdk 60
- sprintf(buf, "%s/lib/libadminutil60.%s", sroot, SHLIB_EXT);
- if (stat(buf, &fi) == 0) {
- unlink(buf);
- }
- sprintf(buf, "%s/lib/libadmsslutil60.%s", sroot, SHLIB_EXT);
- if (stat(buf, &fi) == 0) {
- unlink(buf);
- }
-
- // Remove admserv jars from the previous installation
- sprintf(buf, "%s/java/jars/admserv60.jar", sroot);
- if (stat(buf, &fi) == 0) {
- char cmd[BIG_BUF];
- sprintf(cmd, "rm %s/java/jars/admserv60*", sroot);
- system(cmd);
- }
-
- return 0;
-}
-
-
void
-start_admserv(const char *sroot)
+start_admserv()
{
char pid[BIG_BUF];
char startProgram[BIG_BUF];
@@ -419,17 +351,17 @@
struct stat fi;
int ret;
- sprintf(pid, "%s/admin-serv/logs/pid", sroot);
+ sprintf(pid, "%s/%s", PIDDIR, PIDFILE);
tmpnam(startLog);
if (stat(pid, &fi) == 0)
{
- sprintf(startProgram, "%s/restart-admin > %s 2>&1", sroot, startLog);
+ sprintf(startProgram, "%s/restart-admin > %s 2>&1", CMDBINDIR, startLog);
}
else
{
- sprintf(startProgram, "%s/start-admin > %s 2>&1", sroot, startLog);
+ sprintf(startProgram, "%s/start-admin > %s 2>&1", CMDBINDIR, startLog);
}
ret = system(startProgram);
@@ -497,7 +429,7 @@
*/
void
-admin_chown(const char *sroot, uid_t tuid, const char *tuser, gid_t tgid, const char *tgrp)
+admin_chown(const char *path, uid_t tuid, const char *tuser, gid_t tgid, const char *tgrp)
{
/*
* Changing ownership is possible only if I am installing as
@@ -514,15 +446,14 @@
/*
* First, check to see who currently is the admin user
*/
- sprintf(tmp, "%s/admin-serv", sroot);
- stat(tmp, &fi);
+ stat(path, &fi);
admin_uid = fi.st_uid;
my_uid = geteuid();
- chown(sroot, tuid, tgid);
+ chown(path, tuid, tgid);
- dir = opendir(sroot);
+ dir = opendir(path);
while ((entry = readdir(dir)) != NULL)
{
if (strcmp(entry->d_name, ".") && strcmp(entry->d_name, "..") &&
@@ -533,9 +464,9 @@
if ((my_uid == fi.st_uid || admin_uid == fi.st_uid) &&
tuid != fi.st_uid)
{
- sprintf(tmp, CHOWN_CMD, tuser, sroot);
+ sprintf(tmp, CHOWN_CMD, tuser, path);
system(tmp);
- sprintf(tmp, CHGRP_CMD, tgrp, sroot);
+ sprintf(tmp, CHGRP_CMD, tgrp, path);
system(tmp);
}
}
@@ -562,7 +493,7 @@
}
void
-create_admserv(char *hn, const char *sroot)
+create_admserv(char *hn)
{
char httpuser[SML_BUF], httppw[SML_BUF];
char hosts[MED_BUF], addrs[MED_BUF];
@@ -573,8 +504,7 @@
char SSgroup[SML_BUF];
char ldapURL[MED_BUF];
char apacheRoot[BIG_BUF];
- char apacheDir[BIG_BUF];
- char apacheBin[BIG_BUF];
+ char apache[BIG_BUF];
char apacheVersion[BIG_BUF];
struct stat st;
NSString hostip = InstUtil::getHostIpAddress(hn);
@@ -587,8 +517,6 @@
NSString tmp;
const char *adminBrand = "Fedora";
- chdir(sroot);
-
if (NULL == adminInstallInfo) {
fatal_error("Admin Info is not set or invalid.", "", "");
}
@@ -606,30 +534,26 @@
}
strcpy(adminUser, s);
- s = adminInstallInfo->get("ApacheDir");
+ s = adminInstallInfo->get("Apache");
if (NULL == s) {
- fatal_error("InstallInfo: Apache Directory \"ApacheDir\" is missing.", "", "");
+ fatal_error("InstallInfo: Apache path \"Apache\" is missing.", "", "");
}
- strcpy(apacheDir, s);
+ strcpy(apache, s);
s = adminInstallInfo->get("ApacheRoot");
if (!s) {
- NSString ar = findApacheRoot(apacheDir);
+ NSString ar = findApacheRoot(apache);
strcpy(apacheRoot, (const char *)ar);
} else {
strcpy(apacheRoot, s);
}
- snprintf(apacheBin, sizeof(apacheBin), "%s/httpd.worker", apacheDir);
- if (stat(apacheBin, &st) != 0) {
- snprintf(apacheBin, sizeof(apacheBin), "%s/httpd", apacheDir);
- if (stat(apacheBin, &st) != 0) {
- fatal_error("Can't find Apache in %s", apacheDir, NULL);
- }
+ if (stat(apache, &st) != 0) {
+ fatal_error("Can't find Apache in %s", apache, NULL);
}
apacheVersion[0] = '\0';
- tmp = findApacheVersion(apacheDir);
+ tmp = findApacheVersion(apache);
if ((const char*)tmp) {
strcpy(apacheVersion, (const char *)tmp);
}
@@ -728,20 +652,19 @@
}
else
{
- installLog->logMessage(INFO, "Admin", "Writing configuration data to %s/admin-serv/config", sroot);
+ installLog->logMessage(INFO, "Admin", "Writing configuration data to %s", CONFIGDIR);
}
-/* create alias subdirectory and cert.log file */
- sprintf(dir, "%s%calias", sroot, PATH_DELIM);
+ /* create key/cert db dir */
if ((mkdir(dir, 0750) == -1) && (errno != EEXIST))
{
fatal_error("Can't create directory %s (error: %s)", dir, system_errmsg());
}
- logUninstallInfo(sroot, "admin", "admin", dir);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", dir);
/* make sure the config directory is owned by the ssuser */
- sprintf(tstr, "%s/admin-serv/config", sroot);
+ sprintf(tstr, "%s", CONFIGDIR);
chown_file(SSuser, SSgroup, tstr);
/*
@@ -749,7 +672,7 @@
*/
/* MLM - this should actually do more httpconf type of stuff
* (maybe an admconf.c?) */
- sprintf(tstr, "%s/admin-serv/config/admpw", sroot);
+ sprintf(tstr, "%s/admpw", CONFIGDIR);
if (!(f = fopen(tstr, "w")))
{
fatal_error("Can't write to %s (error: %s)", tstr, system_errmsg());
@@ -760,59 +683,11 @@
fclose(f);
chmod(tstr, S_IRUSR | S_IWUSR);
chown_file(SSuser, SSgroup, tstr);
- logUninstallInfo(sroot, "admin", "admin", tstr);
-
- /* create admin-serv/modules directory */
- sprintf(dir, "%s%cadmin-serv%cmodules", sroot, PATH_DELIM, PATH_DELIM);
- if ((mkdir(dir, 0750) == -1) && (errno != EEXIST))
- {
- fatal_error("Can't create directory %s (error: %s)", dir, system_errmsg());
- }
-
- logUninstallInfo(sroot, "admin", "admin", dir);
-
-#ifdef SHOW_CONFIG_FILES
- if (installMode != Silent)
- printf("Wrote %s\n", tstr);
-#endif
-
- /*
- * Write new LDAP local DB default files
- */
- sprintf(tstr, "%s/%s", sroot, DEFAULT_LDAPSWITCH);
- if (!(f = fopen(tstr, "w")))
- {
- fatal_error("Can't write to %s (error: %s)", tstr, system_errmsg());
- }
- if (ldapURL[0] == '\0')
- { /* No external LDAP */
- fatal_error("No LDAP server defined - exiting", NULL, NULL);
- }
- else
- { /* Use external LDAP */
- fprintf(f, "directory default %s\n", ldapURL);
- }
- fclose(f);
-
- logUninstallInfo(sroot, "admin", "admin", tstr);
- chown_file(SSuser, SSgroup, tstr);
-
- sprintf(tstr, "chmod 640 %s/%s", sroot, DEFAULT_LDAPSWITCH);
- system(tstr);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", tstr);
hexp = make_shexp(hosts);
aexp = make_shexp(addrs);
- sprintf(tstr, "%s/%s", sroot, DEFAULT_SSUSERCONF);
- if (!(f = fopen(tstr, "w")))
- fatal_error("Can't write to %s (error: %s)", tstr,
- system_errmsg());
- fprintf(f, "SuiteSpotUser\t%s\n", SSuser);
- fprintf(f, "SuiteSpotGroup\t%s\n", SSgroup);
- fclose(f);
-
- logUninstallInfo(sroot, "admin", "admin", tstr);
-
if (!geteuid())
{
/* Current pw ent, target pw ent */
@@ -837,7 +712,7 @@
if (installMode == Interactive)
printf("Changing ownership to admin user %s...\n", adminUser);
- admin_chown(sroot, tuid, adminUser, tgid, tgp->gr_name);
+ admin_chown(CONFIGDIR, tuid, adminUser, tgid, tgp->gr_name);
#ifdef HPUX
/*
@@ -858,11 +733,9 @@
* This is ok because running user is either root or part of the
* SSgroup
*/
- sprintf(tstr, SHARED_CHGRP_CMD, SSgroup, sroot);
- system(tstr);
- sprintf(tstr, SSCONF_CHGRP_CMD, SSgroup, sroot);
+ sprintf(tstr, SHARED_CHGRP_CMD, SSgroup, CONFIGDIR);
system(tstr);
- sprintf(tstr, SECALIAS_CHGRP_CMD, SSgroup, sroot);
+ sprintf(tstr, SECALIAS_CHGRP_CMD, SSgroup, CONFIGDIR);
system(tstr);
}
@@ -895,8 +768,10 @@
LdapEntry *configEntry = new LdapEntry(&ldap);
// Check if there's already an SIE for this Admin
- sprintf(tstr, "%s/admin-serv/config/adm.conf", sroot);
- NVPair admConf(tstr);
+ sprintf(tstr, "%s/adm.conf", CONFIGDIR);
+ NVPair admConf;
+ admConf.setFormat(2);
+ admConf.read(tstr);
adminDomain = installInfo->get(DS_ADMIN_DOMAIN);
@@ -910,28 +785,7 @@
}
}
- /*
- * Generate pwd for the SIE
- */
-
-/*
- char password[9];
-
- srand(getpid() + time(NULL));
- for (int i = 0; i < 8 ; i++)
- {
- int charoff = rand() % 52;
- if (charoff < 26)
- password[i] = (char) charoff + 'A';
- else
- password[i] = (char) charoff - 26 + 'a';
- }
-
- password[8] = 0;
-
-*/
-
- sprintf(tstr, "%s/%s/admin/admin.inf", sroot, SETUP_DIR);
+ sprintf(tstr, "%s/%s/admin/admin.inf", CONFIGDIR, SETUP_DIR);
NVPair adminInf(tstr);
NVPair *adminInfo = adminInf.getSection("admin");
@@ -947,7 +801,7 @@
appEntry->addAttribute("nsProductVersion", adminInfo->get(PKG_VERSION));
appEntry->addAttribute("nsBuildNumber", adminInfo->get(PKG_BUILDNUMBER));
appEntry->addAttribute("nsRevisionNumber", adminInfo->get(PKG_REVISION));
- appEntry->addAttribute("nsInstalledLocation", sroot);
+ appEntry->addAttribute("nsInstalledLocation", CONFIGDIR);
adminInfo->stampTime();
appEntry->addAttribute("installationTimeStamp", adminInfo->timeStamp());
@@ -996,10 +850,10 @@
sieEntry->addAttribute("nsServerId", "admin-serv");
sieEntry->addAttribute("userPassword", httppw);
sieEntry->addAttribute("serverHostName", hn);
- sieEntry->addAttribute("serverRoot", sroot);
+ sieEntry->addAttribute("serverRoot", CONFIGDIR);
sieEntry->addAttribute("serverProductName", "Administration Server");
- ldapError = createSIE(sieEntry, appEntry, hn, sroot, adminDomain, adminBrand);
+ ldapError = createSIE(sieEntry, appEntry, hn, CONFIGDIR, adminDomain, adminBrand);
sieDN = sieEntry->entryDN();
isieDN = appEntry->entryDN();
@@ -1099,72 +953,26 @@
* Write Tasks node
*/
- configTasks(&ldap, sroot, sieDN);
+ configTasks(&ldap, DATADIR, sieDN);
// Write global configuration paramters
-
- sprintf(tstr, "%s/shared/config/ds.conf", sroot);
- if (!(f = fopen(tstr,"w")))
- {
- printf("Warning - Can't write to %s (error: %s)", tstr, system_errmsg());
- }
- else
- {
- fprintf(f, "%s:%s\n", DS_ADMIN_DOMAIN, adminDomain.data());
- logUninstallInfo(sroot, "admin", "admin", tstr);
- }
-
char *adminDomainDN;
adminDomainDN = formAdminDomainDN(adminDomain);
- configGlobalParameters(&ldap, sroot, adminDomainDN);
+ configGlobalParameters(&ldap, DATADIR, adminDomainDN);
nsSetupFree (adminDomainDN);
/*
***************************************************************
- * Fix ACIs under o=netscapeRoot
- ***************************************************************
- */
- /*ldapError = repair_group_expansion_aci(&ldap);
- if (ldapError != OKAY)
- {
- sprintf(dir, "%d", ldapError.errorCode());
- fatal_error("ERROR: cannot modify root ACIs (%s:%s)", dir, ldapError.msg());
- }*/
-
- /*ldapError = set_locate_admserv_aci(&ldap);
- if (ldapError != OKAY)
- {
- sprintf(dir, "%d", ldapError.errorCode());
- fatal_error("ERROR: cannot modify root ACIs (%s:%s)", dir, ldapError.msg());
- }*/
-
- /*
- ***************************************************************
* Write new adm.conf (new for Admin40)
***************************************************************
*/
-
- LDAPURLDesc *ludpp = NULL;
- ldap_url_parse((char *) installInfo->get(CONFIG_LDAP_URL), &ludpp);
-
-/*
-
- fprintf(f, "ldapHost: %s\n", ludpp->lud_host);
- fprintf(f, "ldapPort: %d\n", ludpp->lud_port);
- fprintf(f, "sie: %s\n", sieDN.data());
- fprintf(f, "userdn: %s\n", ldap.rebindDN());
- fprintf(f, "isie: %s\n", isieDN.data());
- fprintf(f, "port: %d\n", port);
- fclose(f);
-
-*/
-
- admConf.set("ldapHost", ludpp->lud_host);
- admConf.set("ldapPort", (unsigned long)ludpp->lud_port);
+ admConf.set("ldapurl", installInfo->get(CONFIG_LDAP_URL));
admConf.set("sie", sieDN.data());
admConf.set("userdn", ldap.rebindDN());
admConf.set("isie", isieDN.data());
- admConf.set("port", (unsigned long)port);
+ admConf.set("sysuser", SSuser);
+ admConf.set("sysgroup", SSgroup);
+ admConf.set(DS_ADMIN_DOMAIN, adminDomain.data());
if (ldapStart == NULL)
{
@@ -1189,26 +997,26 @@
admConf.set("ldapStart", ldapStart);
}
- sprintf(tstr, "%s/admin-serv/config/adm.conf", sroot);
+ sprintf(tstr, "%s/adm.conf", CONFIGDIR);
admConf.setFormat(2);
admConf.write(tstr);
chmod(tstr, S_IRUSR | S_IWUSR);
chown_file(SSuser, SSgroup, tstr);
- logUninstallInfo(sroot, "admin", "admin", tstr);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", tstr);
// Mark to remove the following guys which are
// created later on also
- sprintf(tstr, "%s/admin-serv/config/local.conf", sroot);
- logUninstallInfo(sroot, "admin", "admin", tstr);
- sprintf(tstr, "%s/admin-serv/logs/access", sroot);
- logUninstallInfo(sroot, "admin", "admin", tstr);
- sprintf(tstr, "%s/admin-serv/logs/error", sroot);
- logUninstallInfo(sroot, "admin", "admin", tstr);
- sprintf(tstr, "%s/admin-serv/logs/admpw.log", sroot);
- logUninstallInfo(sroot, "admin", "admin", tstr);
- sprintf(tstr, "%s/admin-serv/logs/dsconfig.log", sroot);
- logUninstallInfo(sroot, "admin", "admin", tstr);
+ sprintf(tstr, "%s/local.conf", CONFIGDIR);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", tstr);
+ sprintf(tstr, "%s/access", LOGDIR);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", tstr);
+ sprintf(tstr, "%s/error", LOGDIR);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", tstr);
+ sprintf(tstr, "%s/admpw.log", LOGDIR);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", tstr);
+ sprintf(tstr, "%s/dsconfig.log", LOGDIR);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", tstr);
/* PVO remember to set access permission here */
@@ -1221,118 +1029,104 @@
char **restartarray = (char **)malloc(3*sizeof(char *)); /* 1 token, 1 replacement, NULL terminated */
char src[BIG_BUF];
- char instance[BIG_BUF];
- snprintf(instance, sizeof(instance), "%s-%s", "admin-serv", hn);
- ss = strchr(instance, '.');
- if (ss) *ss = 0;
httparray[0] = "%%%sroot%%%";
- httparray[1] = (char *)sroot;
+ httparray[1] = (char *)CONFIGDIR;
httparray[2] = "%%%module_dir%%%";
httparray[3] = (char *)apacheRoot;
httparray[4] = NULL;
admservarray[0] = "%%%sroot%%%";
- admservarray[1] = (char *)sroot;
+ admservarray[1] = (char *)CONFIGDIR;
admservarray[2] = NULL;
nssarray[0] = "%%%sroot%%%";
- nssarray[1] = (char *)sroot;
+ nssarray[1] = (char *)CONFIGDIR;
nssarray[2] = NULL;
consolearray[0] = "%%%sroot%%%";
- consolearray[1] = (char *)sroot;
+ consolearray[1] = (char *)CONFIGDIR;
consolearray[2] = "%%%httpduser%%%";
consolearray[3] = (char *)SSuser;
consolearray[4] = "%%%httpdgroup%%%";
consolearray[5] = (char *)SSgroup;
consolearray[6] = "%%%httpport%%%";
consolearray[7] = (char *)dir; /* sprint'd earlier */
- consolearray[8] = "%%%instancename%%%";
- consolearray[9] = (char *)instance;
- consolearray[10] = NULL;
+ consolearray[8] = NULL;
startarray[0] = "%%%sroot%%%";
- startarray[1] = (char *)sroot;
+ startarray[1] = (char *)CONFIGDIR;
startarray[2] = "%%%httpd%%%";
- startarray[3] = (char *)apacheBin;
+ startarray[3] = (char *)apache;
startarray[4] = NULL;
stoparray[0] = "%%%sroot%%%";
- stoparray[1] = (char *)sroot;
+ stoparray[1] = (char *)CONFIGDIR;
stoparray[2] = NULL;
restartarray[0] = "%%%sroot%%%";
- restartarray[1] = (char *)sroot;
+ restartarray[1] = (char *)CONFIGDIR;
restartarray[2] = NULL;
if (0 == strncmp(apacheVersion, "2.2", 3)) {
- snprintf(src, sizeof(tstr), "%s/shared/config/template/httpd-2.2.conf.tmpl", sroot);
+ snprintf(src, sizeof(tstr), "%s/template/httpd-2.2.conf.tmpl", CONFIGDIR);
} else {
- snprintf(src, sizeof(tstr), "%s/shared/config/template/httpd.conf.tmpl", sroot);
+ snprintf(src, sizeof(tstr), "%s/template/httpd.conf.tmpl", CONFIGDIR);
}
- snprintf(tstr, sizeof(tstr), "%s/admin-serv/config/httpd.conf", sroot);
+ snprintf(tstr, sizeof(tstr), "%s/httpd.conf", CONFIGDIR);
replaceTokensInFile(src, tstr, httparray);
chmod(tstr, S_IRUSR | S_IWUSR);
- logUninstallInfo(sroot, "admin", "admin", tstr);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", tstr);
- snprintf(tstr, sizeof(tstr), "%s/admin-serv/config/admserv.conf", sroot);
- snprintf(src, sizeof(tstr), "%s/shared/config/template/admserv.conf.tmpl", sroot);
+ snprintf(tstr, sizeof(tstr), "%s/admserv.conf", CONFIGDIR);
+ snprintf(src, sizeof(tstr), "%s/template/admserv.conf.tmpl", CONFIGDIR);
replaceTokensInFile(src, tstr, admservarray);
chmod(tstr, S_IRUSR | S_IWUSR);
- logUninstallInfo(sroot, "admin", "admin", tstr);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", tstr);
- snprintf(tstr, sizeof(tstr), "%s/admin-serv/config/nss.conf", sroot);
- snprintf(src, sizeof(tstr), "%s/shared/config/template/nss.conf.tmpl", sroot);
+ snprintf(tstr, sizeof(tstr), "%s/nss.conf", CONFIGDIR);
+ snprintf(src, sizeof(tstr), "%s/template/nss.conf.tmpl", CONFIGDIR);
replaceTokensInFile(src, tstr, nssarray);
chmod(tstr, S_IRUSR | S_IWUSR);
chown_file(SSuser, SSgroup, tstr);
- logUninstallInfo(sroot, "admin", "admin", tstr);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", tstr);
- snprintf(tstr, sizeof(tstr), "%s/admin-serv/config/console.conf", sroot);
+ snprintf(tstr, sizeof(tstr), "%s/console.conf", CONFIGDIR);
/*
all of the dynamic information goes into console.conf, so we should
not overwrite that information during an upgrade */
if (stat(tstr, &st)) {
- snprintf(src, sizeof(tstr), "%s/shared/config/template/console.conf.tmpl", sroot);
+ snprintf(src, sizeof(tstr), "%s/template/console.conf.tmpl", CONFIGDIR);
replaceTokensInFile(src, tstr, consolearray);
chmod(tstr, S_IRUSR | S_IWUSR);
chown_file(SSuser, SSgroup, tstr);
- logUninstallInfo(sroot, "admin", "admin", tstr);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", tstr);
}
- snprintf(tstr, sizeof(tstr), "%s/start-admin", sroot);
- snprintf(src, sizeof(tstr), "%s/shared/config/template/start-admin.tmpl", sroot);
+ snprintf(tstr, sizeof(tstr), "%s/start-admin", CONFIGDIR);
+ snprintf(src, sizeof(tstr), "%s/template/start-admin.tmpl", CONFIGDIR);
replaceTokensInFile(src, tstr, startarray);
chmod(tstr, 0755);
- logUninstallInfo(sroot, "admin", "admin", tstr);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", tstr);
- snprintf(tstr, sizeof(tstr), "%s/stop-admin", sroot);
- snprintf(src, sizeof(tstr), "%s/shared/config/template/stop-admin.tmpl", sroot);
+ snprintf(tstr, sizeof(tstr), "%s/stop-admin", CONFIGDIR);
+ snprintf(src, sizeof(tstr), "%s/template/stop-admin.tmpl", CONFIGDIR);
replaceTokensInFile(src, tstr, stoparray);
chmod(tstr, 0755);
- logUninstallInfo(sroot, "admin", "admin", tstr);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", tstr);
- snprintf(tstr, sizeof(tstr), "%s/restart-admin", sroot);
- snprintf(src, sizeof(tstr), "%s/shared/config/template/restart-admin.tmpl", sroot);
+ snprintf(tstr, sizeof(tstr), "%s/restart-admin", CONFIGDIR);
+ snprintf(src, sizeof(tstr), "%s/template/restart-admin.tmpl", CONFIGDIR);
replaceTokensInFile(src, tstr, restartarray);
chmod(tstr, 0755);
- logUninstallInfo(sroot, "admin", "admin", tstr);
+ logUninstallInfo(CONFIGDIR, "admin", "admin", tstr);
- sprintf(tstr, "%s/java/jars", sroot);
- chmod(tstr, 0755);
-
- sprintf(tstr, "%s/bin/admin/admconfig", sroot);
- chmod(tstr, 0755);
-
- sprintf(tstr, "%s/uninstall", sroot);
- chmod(tstr, 0750);
{
// Generating local.conf
int error_code = 0;
- snprintf(tstr, sizeof(tstr), "%s/admin-serv/config", sroot);
+ snprintf(tstr, sizeof(tstr), "%s", CONFIGDIR);
PsetHndl pset = psetCreate("admin-serv", (char *)tstr,
(char *)ldap.rebindDN(), httppw,
&error_code);
@@ -1340,18 +1134,6 @@
}
-int
-update_schema(const char *sroot)
-{
- char schema_file[BIG_BUF];
-
- sprintf(schema_file, "%s/setup/admin/ns-common-schema.conf", sroot);
- return setupInsertPluginSchemaEntries(installInfo->get(CONFIG_LDAP_URL),
- installInfo->get(MC_ADMIN_ID),
- installInfo->get(MC_ADMIN_PWD),
- schema_file);
-}
-
/*
* 359259: Add ACIs under o=netscapeRoot to allow regular, non-admin users to
* locate admin servers. This is required for downloads of jars referenced from
@@ -1560,7 +1342,6 @@
main(int argc, char *argv[])
{
char hn[SML_BUF];
- const char *sroot;
struct stat fi;
int opt;
@@ -1622,7 +1403,6 @@
// Some additional checking in case
if (installInfo->get(MACHINE_NAME) == NULL ||
- installInfo->get(SERVER_ROOT) == NULL ||
installInfo->get(CONFIG_LDAP_URL) == NULL ||
installInfo->get(MC_ADMIN_ID) == NULL ||
installInfo->get(MC_ADMIN_PWD) == NULL ||
@@ -1645,17 +1425,6 @@
hn[0] = '\0';
- if (stat(DEFAULT_ADMINCONF, &fi) == 0)
- {
- // PVO - already configured
- // Probably should check DS instead
- }
-
- sroot = installInfo->get(SERVER_ROOT);
- if (NULL == sroot) {
- fatal_error("InstallInfo: Server Root \"ServerRoot\" is missing.", "", "");
- }
-
/*
* Get the full hostname.
*/
@@ -1666,15 +1435,9 @@
}
strcpy(hn, machine_name);
- cleanup_after_upgrade(sroot);
-
- create_admserv(hn, sroot);
-
-#ifdef NEED_ADMIN_SERVER_IN_SERVERS_LIST
- addToServerList(sroot);
-#endif
+ create_admserv(hn);
- start_admserv(sroot);
+ start_admserv();
installLog->logMessage(SUCCESS, "Admin", "Administration Server post-configuration");
15 years, 10 months
[Fedora-directory-commits] adminserver/admserv/newinst/insadm config.c, 1.8, 1.9
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/adminserver/admserv/newinst/insadm
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv32253/adminserver/admserv/newinst/insadm
Modified Files:
config.c
Log Message:
Resolves: bug 239502, bug 186280
Description: adminserver: autotools, FHS, clean up CGI parameters
Fix Description: Too numerous to mention
Index: config.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/newinst/insadm/config.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- config.c 12 May 2006 00:41:30 -0000 1.8
+++ config.c 9 May 2007 00:26:33 -0000 1.9
@@ -68,7 +68,6 @@
#define DEFAULT_GLOBALCONF "admin-serv/ldif/global.ldif"
#define DEFAULT_SIECONF "admin-serv/config/adm.conf"
-#define DEFAULT_MAGNUSCONF "admin-serv/config/magnus.conf"
#define DEFAULT_NSFCCONF "admin-serv/config/nsfc.conf"
#define DEFAULT_OBJCONF "admin-serv/config/obj.conf"
#define DEFAULT_ACLCONF "adminacl/generated.https-admserv.acl"
15 years, 10 months
[Fedora-directory-commits] adminserver/admserv/cgi-src40 cgicommon.h, NONE, 1.1 cgicommon.properties, NONE, 1.1 Makefile, 1.12, 1.13 ReadLog.c, 1.5, 1.6 admpw.c, 1.7, 1.8 config.c, 1.6, 1.7 download.c, 1.6, 1.7 dsconfig.c, 1.6, 1.7 dsconfig.properties, 1.3, 1.4 getport.c, 1.4, 1.5 help.c, 1.7, 1.8 htmladmin.c, 1.7, 1.8 htmladmin.properties, 1.5, 1.6 mergeConfig.cpp, 1.5, 1.6 migrateConfig.c, 1.5, 1.6 monreplication.c, 1.5, 1.6 restartsrv.c, 1.5, 1.6 sec-activate.c, 1.7, 1.8 sec-activate.properties, 1.3, 1.4
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/adminserver/admserv/cgi-src40
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv32253/adminserver/admserv/cgi-src40
Modified Files:
Makefile ReadLog.c admpw.c config.c download.c dsconfig.c
dsconfig.properties getport.c help.c htmladmin.c
htmladmin.properties mergeConfig.cpp migrateConfig.c
monreplication.c restartsrv.c sec-activate.c
sec-activate.properties security.c security.properties
setport.c snmpconf.c snmpmctl.c start_config_ds.c
statpingserv.c statusping.c stopsrv.c ugdsconfig.c viewdata.c
viewlog.c viewlog.properties
Added Files:
cgicommon.h cgicommon.properties
Removed Files:
listOldSrvs.c listOldSrvs.properties
Log Message:
Resolves: bug 239502, bug 186280
Description: adminserver: autotools, FHS, clean up CGI parameters
Fix Description: Too numerous to mention
--- NEW FILE cgicommon.h ---
/** BEGIN COPYRIGHT BLOCK
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* END COPYRIGHT BLOCK **/
#ifndef CGICOMMON_H
#define CGICOMMON_H
#define COMMON_RESOURCE_FILE "cgicommon"
#define resource_key(a,b) a b
/* These are the defines to use in C code for localized messages */
#define CMN_CONFIGPROBLEM resource_key(COMMON_RESOURCE_FILE, "1")
#define CMN_SSL_INIT_ERROR resource_key(COMMON_RESOURCE_FILE, "2")
/* These are other properties */
#define DSOBJECTCLASS "nsdirectoryserver" /* name of table in cgicommon */
#define DSCONFIGENTRY "cn=config"
#define DSSECURITYDIR "nsslapd-certdir"
#endif /* CGICOMMON_H */
--- NEW FILE cgicommon.properties ---
//# BEGIN COPYRIGHT BLOCK
//# Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
//# Copyright (C) 2005 Red Hat, Inc.
//# All rights reserved.
//#
//# This program is free software; you can redistribute it and/or
//# modify it under the terms of the GNU General Public License
//# as published by the Free Software Foundation; either version 2
//# of the License, or (at your option) any later version.
//#
//# This program is distributed in the hope that it will be useful,
//# but WITHOUT ANY WARRANTY; without even the implied warranty of
//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//# GNU General Public License for more details.
//#
//# You should have received a copy of the GNU General Public License
//# along with this program; if not, write to the Free Software
//# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//#
//# END COPYRIGHT BLOCK
// ICU resource file
// This file contains resources common to all CGI programs
// see cgicommon.h
root {
// messages displayed to user - these can be localized
cgicommon1 { "Could not read the Admin Server CGI config file %s/adm.conf: error code %d" }
cgicommon2 { "SSL related initialization failed" }
}
Index: Makefile
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/Makefile,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- Makefile 13 Oct 2006 22:59:04 -0000 1.12
+++ Makefile 9 May 2007 00:26:30 -0000 1.13
@@ -52,6 +52,11 @@
LIBNT=$(OBJDIR)/lib/libnt.$(LIB_SUFFIX)
endif
+LIBADMIN=$(OBJDIR)/lib/libadmin.a
+LIBBASE=$(OBJDIR)/lib/libbase.a
+LIBSI18N=$(OBJDIR)/lib/libsi18n.a
+#LIBLDAPU=$(OBJDIR)/lib/libldapu.a
+
# Resource Bundle Compiler
ifeq ($(ARCH), WINNT)
ICU_GENRB = $(ICU_BINPATH)/genrb.exe
@@ -406,34 +411,34 @@
cd $(BINDIR); \
$(CCC) $(NONSHARED) $(CFLAGS) $(MCC_INCLUDE) -o admpw \
$(SRCDIR)/admpw.c \
- $(OBJDIR)/lib/libadmin.a \
+ $(LIBADMIN) \
$(ADMINSERVERLINKS)
$(BINDIR)/config: config.c $(GLUEOBJS)
cd $(BINDIR); \
$(CCC) $(NONSHARED) $(CFLAGS) $(MCC_INCLUDE) -o config \
$(SRCDIR)/config.c \
- $(OBJDIR)/lib/libadmin.a \
- $(OBJDIR)/lib/libbase.a \
- $(OBJDIR)/lib/libsi18n.a \
- $(OBJDIR)/lib/libldapu.a \
+ $(LIBADMIN) \
+ $(LIBBASE) \
+ $(LIBSI18N) \
+ $(LIBLDAPU) \
$(ADMINSERVERLINKS)
$(BINDIR)/dsconfig: dsconfig.c $(GLUEOBJS)
cd $(BINDIR); \
$(CCC) $(NONSHARED) $(CFLAGS) $(MCC_INCLUDE) -o dsconfig \
$(SRCDIR)/dsconfig.c \
- $(OBJDIR)/lib/libbase.a \
- $(OBJDIR)/lib/libsi18n.a \
- $(OBJDIR)/lib/libldapu.a \
+ $(LIBBASE) \
+ $(LIBSI18N) \
+ $(LIBLDAPU) \
$(ADMINSERVERLINKS)
$(BINDIR)/ugdsconfig: ugdsconfig.c $(GLUEOBJS)
cd $(BINDIR); \
$(CCC) $(NONSHARED) $(CFLAGS) $(MCC_INCLUDE) -I$(SETUPUTIL_INCLUDE) -o ugdsconfig \
$(SRCDIR)/ugdsconfig.c \
- $(OBJDIR)/lib/libbase.a \
- $(OBJDIR)/lib/libsi18n.a \
+ $(LIBBASE) \
+ $(LIBSI18N) \
$(SETUPADMINSERVERLINKS)
$(BINDIR)/mergeConfig: mergeConfig.cpp $(GLUEOBJS)
@@ -446,20 +451,20 @@
cd $(BINDIR); \
$(CCC) $(NONSHARED) $(CFLAGS) $(MCC_INCLUDE) -o monreplication \
$(SRCDIR)/monreplication.c \
- $(OBJDIR)/lib/libadmin.a \
- $(OBJDIR)/lib/libbase.a \
- $(OBJDIR)/lib/libsi18n.a \
- $(OBJDIR)/lib/libldapu.a \
+ $(LIBADMIN) \
+ $(LIBBASE) \
+ $(LIBSI18N) \
+ $(LIBLDAPU) \
$(ADMINSERVERLINKS)
$(BINDIR)/viewlog: viewlog.c $(GLUEOBJS)
cd $(BINDIR); \
$(CCC) $(NONSHARED) $(CFLAGS) $(MCC_INCLUDE) -o viewlog \
$(SRCDIR)/viewlog.c \
- $(OBJDIR)/lib/libadmin.a \
- $(OBJDIR)/lib/libbase.a \
- $(OBJDIR)/lib/libsi18n.a \
- $(OBJDIR)/lib/libldapu.a \
+ $(LIBADMIN) \
+ $(LIBBASE) \
+ $(LIBSI18N) \
+ $(LIBLDAPU) \
$(ADMINSERVERLINKS)
@@ -467,10 +472,10 @@
cd $(BINDIR); \
$(CCC) $(NONSHARED) $(CFLAGS) $(MCC_INCLUDE) -I$(SETUPUTIL_INCLUDE) -o viewdata \
$(SRCDIR)/viewdata.c \
- $(OBJDIR)/lib/libadmin.a \
- $(OBJDIR)/lib/libbase.a \
- $(OBJDIR)/lib/libsi18n.a \
- $(OBJDIR)/lib/libldapu.a \
+ $(LIBADMIN) \
+ $(LIBBASE) \
+ $(LIBSI18N) \
+ $(LIBLDAPU) \
$(SETUPADMINSERVERLINKS)
$(BINDIR)/statpingserv: statpingserv.c $(GLUEOBJS)
@@ -483,10 +488,10 @@
cd $(BINDIR); \
$(CCC) $(NONSHARED) $(CFLAGS) $(MCC_INCLUDE) -I$(SETUPUTIL_INCLUDE) -o htmladmin \
$(SRCDIR)/htmladmin.c \
- $(OBJDIR)/lib/libadmin.a \
- $(OBJDIR)/lib/libbase.a \
- $(OBJDIR)/lib/libsi18n.a \
- $(OBJDIR)/lib/libldapu.a \
+ $(LIBADMIN) \
+ $(LIBBASE) \
+ $(LIBSI18N) \
+ $(LIBLDAPU) \
$(SETUPADMINSERVERLINKS)
$(BINDIR)/%: %.c $(GLUEOBJS)
Index: ReadLog.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/ReadLog.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ReadLog.c 11 May 2006 14:29:30 -0000 1.5
+++ ReadLog.c 9 May 2007 00:26:30 -0000 1.6
@@ -88,35 +88,35 @@
int getLogNames()
{
char line[BIG_LINE];
- char *admroot = getenv("ADMSERV_ROOT");
- char *serverroot = getenv("NETSITE_ROOT");
+ const char *logdir = util_get_log_dir();
char filename[BIG_LINE];
FILE *f;
- char *c;
- PR_snprintf(filename, sizeof(filename), "%s/local.conf", admroot);
- if((f = fopen(filename, "r" )) != NULL)
+ if (!logdir) {
+ return 0;
+ }
+
+ if (!util_find_file_in_paths(filename, sizeof(filename), "local.conf",
+ CONFIGDIR, "", "admin-serv/config")) {
+ return 0;
+ }
+
+ f = fopen(filename, "r");
+
+ if(f)
{
while(!feof(f))
{
fgets(line, sizeof(line), f);
- /*
- Convert config attr ids to lowercase for case
- insensitive comparison. Line is in the format:
- "configuration.nsErrorLog: admin-serv/logs/error"
- */
- for(c=line; *c && *c != ':'; c++) {
- *c = tolower(*c);
- }
- if(strstr(line, "nserrorlog"))
+ if(PL_strcasestr(line, "nserrorlog"))
{
- PR_snprintf(errorlog, sizeof(errorlog), "%s/%s", serverroot, getLogName(line));
+ PR_snprintf(errorlog, sizeof(errorlog), "%s/%s", logdir, getLogName(line));
}
else
- if(strstr(line, "nsaccesslog"))
+ if(PL_strcasestr(line, "nsaccesslog"))
{
- PR_snprintf(accesslog, sizeof(accesslog), "%s/%s", serverroot, getLogName(line));
+ PR_snprintf(accesslog, sizeof(accesslog), "%s/%s", logdir, getLogName(line));
}
}
fclose(f);
Index: admpw.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/admpw.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- admpw.c 10 Oct 2006 19:56:29 -0000 1.7
+++ admpw.c 9 May 2007 00:26:30 -0000 1.8
@@ -31,15 +31,19 @@
* If admpw.uid is found in cgi parameters, update uid in the config/admpw file
* If admpw.pw is found in cgi parameters, update password in:
* 1) "userPassword" attribute in the SIE on the DS
- * 2) siepid: parameter in config/adm.conf
- * 3) config/admpw file. The password is stored in encrypted form
+ * 2) config/admpw file. The password is stored in encrypted form
*/
-#include "libadmin/libadmin.h"
#include <stdio.h>
#include <stdarg.h> /* for vsprintf */
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
+
+/* NSS - for password hashing */
+#include <pk11func.h>
+#include <pk11pqg.h>
+#include <base64.h>
/* NSS - for password hashing */
#include <pk11func.h>
@@ -52,14 +56,15 @@
#include "libadmsslutil/psetcssl.h"
#include "libadmsslutil/admsslutil.h"
-static void output_admuid(char *file);
+#include "libadmin/libadmin.h"
+
+#include "config.h"
+
+static void output_admuid(AdmldapInfo admInfo);
static void update_uidpwd();
-static void update_admpwd(char *newuid, char *newpw);
-static void update_adm_conf(char *newpw);
+static void update_admpwd(char *newuid, char *newpw, const char *filename);
static void update_ds(char *newpw);
-#define SHA1_LENGTH 20
-
static char *
sha1_pw_enc(const char *pwd)
{
@@ -67,20 +72,16 @@
char *enc;
char *retval;
SECStatus rc;
+ int32 pwdlen = strlen(pwd);
/* SHA1 hash the user's key */
- rc = PK11_HashBuf(SEC_OID_SHA1, hash, (unsigned char *)pwd, strlen(pwd));
+ rc = PK11_HashBuf(SEC_OID_SHA1, hash, (unsigned char *)pwd, pwdlen);
/* convert to base64 */
if (!(enc = BTOA_DataToAscii(hash, sizeof(hash)))) {
return NULL;
}
/* add "{SHA}" in front of string */
- if ((retval = (char *) malloc(strlen(enc) + 5)) == NULL)
- {
- PORT_Free(enc);
- return (NULL);
- }
- sprintf(retval, "{SHA}%s", enc);
+ retval = PR_smprintf("{SHA}%s", enc);
PORT_Free(enc);
return retval;
@@ -97,8 +98,11 @@
if (!log_enabled) return;
if (logfp==NULL) {
- PR_snprintf(logfile, sizeof(logfile), "%s/../logs/admpw.dbg", getenv("ADMSERV_ROOT"));
- logfp = fopen(logfile, "w");
+ const char *logdir = util_get_log_dir();
+ if (logdir) {
+ PR_snprintf(logfile, sizeof(logfile), "%s/admpw.dbg", logdir);
+ logfp = fopen(logfile, "w");
+ }
}
if (logfp != NULL) {
@@ -142,13 +146,8 @@
static Resource *i18nResource = NULL;
static void i18nInit() {
- char resPath[256], *execPath;
- execPath = getcwd(resPath, 256);
- if (execPath) {
- PL_strncpyz(resPath, execPath, sizeof(resPath));
- PL_strcatn(resPath, sizeof(resPath), "/property");
- i18nResource = res_init_resource(resPath, RESOURCE_FILE);
- }
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
+
if (getenv("HTTP_ACCEPT_LANGUAGE")) {
acceptLanguage = getenv("HTTP_ACCEPT_LANGUAGE");
}
@@ -160,9 +159,10 @@
}
static const char *i18nMsg(char *msgid, char *defaultMsg) {
const char *msg=NULL;
+ static char buf[BUFSIZ]; /* ok - not threaded code */
if (i18nResource) {
- msg = res_getstring(i18nResource, msgid, acceptLanguage);
+ msg = res_getstring(i18nResource, msgid, acceptLanguage, buf, sizeof(buf), NULL);
}
if (msg == NULL) {
msg = (const char*)defaultMsg;
@@ -178,17 +178,20 @@
int _ai=ADMUTIL_Init();
char *method = getenv("REQUEST_METHOD");
- char *root = getenv("NETSITE_ROOT");
char *qs = 0, *op=0;
char error_info[128];
- char filename[BIG_LINE];
+ AdmldapInfo admInfo;
+ int errorcode = 0;
logMsg(" In %s\n", argv[0]);
- i18nInit();
- PR_snprintf(filename, sizeof(filename), "%s/admpw", getenv("ADMSERV_ROOT"));
+ i18nInit();
+ admInfo = admldapBuildInfoOnly(CONFIGDIR, &errorcode);
+ if (!admInfo || errorcode) {
+ rpt_err(SYSTEM_ERROR, i18nMsg(DBT_OPEN_ADMPW, "Can not open admpw file"), NULL, NULL);
+ }
- /* GET or POST method */
+ /* GET or POST method */
if (!method || !*method) {
/* non UI CGI */
rpt_err(SYSTEM_ERROR, i18nMsg(DBT_NO_METHOD,"No method is specified"), NULL, NULL);
@@ -212,26 +215,27 @@
rpt_err(INCORRECT_USAGE, error_info, NULL, NULL);
}
- logMsg("method=%s\n", method);
+ logMsg("method=%s\n", method);
op=get_cgi_var("op", NULL, NULL);
- logMsg("op=%s\n", op);
+ logMsg("op=%s\n", op);
- if (op == NULL) {
+ if (op == NULL) {
rpt_err(INCORRECT_USAGE, i18nMsg(DBT_NO_OPERATION, "No operation defined"), NULL, NULL);
}
- else if (strcmp(op,"get")==0) {
- output_admuid(filename);
- }
- else if (strcmp(op,"set")==0) {
- update_uidpwd();
- }
- else {
+ else if (strcmp(op,"get")==0) {
+ output_admuid(admInfo);
+ }
+ else if (strcmp(op,"set")==0) {
+ update_uidpwd(admInfo);
+ }
+ else {
PR_snprintf(error_info, sizeof(error_info), i18nMsg(DBT_UNKNOWN_OPERATION, "Unknown Operation (%s)"), op);
rpt_err(INCORRECT_USAGE, error_info, NULL, NULL);
}
-
+
+ destroyAdmldap(admInfo);
exit(0);
return 0;
}
@@ -242,46 +246,36 @@
* Output user name from the admpwd. The password does not need to be sent
*/
-static void output_admuid(char *filename) {
- FILE *f = fopen(filename, "r");
- char *uid=NULL ,*pw=NULL, *col=NULL;
- static char inbuf[BIG_LINE];
-
- if (f==NULL) {
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_OPEN_ADMPW, "Can not open admpw file"), NULL, NULL);
- }
- if (fgets(inbuf, sizeof(inbuf), f) == NULL) {
- fclose(f);
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_READ_ADMPW, "Can not read admpw file"), NULL, NULL);
- }
- logMsg("line=%s@\n", inbuf);
- fclose(f);
+static void output_admuid(AdmldapInfo admInfo) {
+ char *uid=admldapGetLocalAdminName(admInfo);
- col = strchr(inbuf, ':');
- if (col == NULL) {
+ if (uid == NULL) {
rpt_err(SYSTEM_ERROR, i18nMsg(DBT_ADMPW_CORRUPTED, "admpw file corrupted"), NULL, NULL);
}
- uid = inbuf; *col=0; pw=col+1;
- logMsg("uid=%s, pw=%s\n", uid, pw);
+ logMsg("uid=%s, pw=%s\n", uid, "(secret)");
fprintf(stdout, "Content-type: text/html\n\n");
- fprintf(stdout, "admpw.uid: %s\n", uid);
+ fprintf(stdout, "admpw.uid: %s\n", uid);
+ PL_strfree(uid);
}
/*
* Modify local superuser username and password
*/
-static void update_uidpwd() {
+static void update_uidpwd(AdmldapInfo admInfo) {
FILE *f;
char *uid=NULL ,*pw=NULL, *col=NULL;
char *newuid=NULL, *newpw=NULL;
static char filename[BIG_LINE];
static char inbuf[BIG_LINE];
+ char *tmpfile = admldapGetAdmpwFilePath(admInfo);
- PR_snprintf(filename, sizeof(filename), "%s/admpw", getenv("ADMSERV_ROOT"));
+ PR_snprintf(filename, sizeof(filename), tmpfile);
+ PL_strfree(tmpfile);
+ uid = admldapGetLocalAdminName(admInfo);
newuid = get_cgi_var("admpw.uid",NULL, NULL);
newpw = get_cgi_var("admpw.pw",NULL, NULL);
if (newuid==NULL && newpw==NULL) {
@@ -313,12 +307,18 @@
}
if (newpw != NULL) {
+ int errorCode = ADMSSL_InitSimple(CONFIGDIR, SECURITYDIR, 1 /* force to use hashing */);
+ if (errorCode) {
+ rpt_err(APP_ERROR,
+ i18nMsg(DBT_SECURITY_INIT, "Security Initialization Failed"),
+ NULL, NULL);
+ }
+
update_ds(newpw);
- update_adm_conf(newpw);
- update_admpwd(newuid, sha1_pw_enc(newpw));
+ update_admpwd(newuid, sha1_pw_enc(newpw), filename);
}
else {
- update_admpwd(newuid, pw);
+ update_admpwd(newuid, pw, filename);
}
rpt_success(NULL);
@@ -327,15 +327,12 @@
/*
* Modify admpw.
*/
-static void update_admpwd(char *newuid, char *newpw) {
+static void update_admpwd(char *newuid, char *newpw, const char *filename) {
FILE *f;
int cnt;
- static char filename[BIG_LINE];
static char outbuf[BIG_LINE];
- PR_snprintf(filename, sizeof(filename), "%s/admpw", getenv("ADMSERV_ROOT"));
-
f = fopen(filename, "w");
if (f==NULL) {
rpt_err(SYSTEM_ERROR, i18nMsg(DBT_OPEN_ADMPW_WR, "Can not open admpw file for writing"), NULL, NULL);
@@ -354,56 +351,6 @@
}
/*
- * Modify adm.conf
- */
-static void update_adm_conf(char *newpw) {
-
- FILE *f;
- int i, modified=0;
- static char filename[BIG_LINE];
- char buf[80];
- int linecnt=0;
- char *lines[50];
- static char inbuf[BIG_LINE];
-
-
- PR_snprintf(filename, sizeof(filename), "%s/adm.conf", getenv("ADMSERV_ROOT"));
-
- f = fopen(filename, "r");
- if (f==NULL) {
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_OPEN_ADMCONF_RD, "Can not open adm.conf for reading"), NULL, NULL);
- }
-
- while(fgets(inbuf, sizeof(inbuf), f) != NULL) {
- if (strstr(inbuf,"siepid:") == inbuf) { /* Line starts with "Password:" */
- PR_snprintf(buf, sizeof(buf), "siepid: %s\n", newpw);
- lines[linecnt++] = strdup(buf);
- modified=1;
- }
- else {
- lines[linecnt++] = strdup(inbuf);
- }
- }
- fclose(f);
-
- if (!modified) {
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_NO_SIEPID, "Parameter siepid: not found in adm.conf"), NULL, NULL);
- }
-
- f = fopen(filename, "w");
- if (f==NULL) {
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_OPEN_ADMCONF_WR, "Can not open adm.conf for writing"), NULL, NULL);
- }
-
- for (i=0; i < linecnt; i++) {
- fprintf(f, "%s", lines[i]);
- }
-
- fclose(f);
-
-}
-
-/*
* Modify userpassword in the DS
*/
static void update_ds(char *pwd) {
@@ -446,13 +393,8 @@
/* Initialize the pset */
- errorCode = ADMSSL_InitSimple();
- if (errorCode) {
- rpt_err(APP_ERROR, i18nMsg(DBT_SECURITY_INIT, "Security Initialization Failed"), NULL, NULL);
- }
-
pset = psetCreateSSL("admin-serv",
- /* configRoot */ NULL,
+ /* configRoot */ CONFIGDIR,
/* userDN */ binddn,
/* passwd */ bindpw,
/* errorcode */ &rv);
Index: config.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/config.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- config.c 31 Mar 2006 22:58:20 -0000 1.6
+++ config.c 9 May 2007 00:26:30 -0000 1.7
@@ -37,18 +37,23 @@
#include <errno.h>
#endif
#include <string.h>
-#include "libadmin/libadmin.h"
-#include "libadmin/install.h"
+
#include "libadminutil/resource.h"
#include "libadminutil/distadm.h"
#include "libadminutil/admutil.h"
#include "libadmsslutil/psetcssl.h"
#include "libadmsslutil/admsslutil.h"
+#include "libadmin/install.h"
+
+#include "config.h"
+
#ifdef XP_WIN32
#define EADDRINUSE WSAEADDRINUSE
#endif
+static char msgbuf[BUFSIZ]; /* ok - not threaded code */
+
/*
properties file name = "config.properties"
*/
@@ -81,12 +86,10 @@
#define DBT_ACCESSLOG_INVALID resource_key(RESOURCE_FILE, "23")
#define DBT_ERRORLOG_INVALID resource_key(RESOURCE_FILE, "24")
-static int update_adm_conf(char *newport);
-static int read_adm_conf();
+static char * read_conf(char *file, char *name);
static int update_conf(char *file, char *name, char *val);
static int validate_addr(char* ip);
static int validate_logfile(char* name);
-static int get_logfile_path(char *name, char *buf, size_t bufsize);
#ifdef XP_UNIX
static int rename_pidlog_file(PsetHndl pset, char* newname);
static int change_uid_all(char *dir, int curuid, int newuid);
@@ -100,7 +103,6 @@
int _ai = ADMUTIL_Init();
PsetHndl pset;
char *method;
- char *admroot = getenv("ADMSERV_ROOT");
int rv, cnt, i, j, x, errorCode;
int err;
int *errp = &err;
@@ -120,7 +122,6 @@
AttributeList resultList, updateList, addList, nvl;
AttrNameList nl;
AttributePtr nv;
- char resPath[256], *execPath;
char *acceptLanguage = (char*)"en";
Resource *i18nResource = NULL;
AdmldapInfo adminfo = NULL;
@@ -130,12 +131,8 @@
while (waitforever);
#endif
- execPath = getcwd(resPath, 256);
- if (execPath) {
- PL_strncpyz(resPath, execPath, sizeof(resPath));
- PL_strcatn(resPath, sizeof(resPath), "/property");
- i18nResource = res_init_resource(resPath, RESOURCE_FILE);
- }
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
+
valsbuf[0] = NULL;
valsbuf[1] = NULL;
@@ -147,7 +144,8 @@
/* non UI CGI */
if (i18nResource)
rpt_err(SYSTEM_ERROR,
- res_getstring(i18nResource, DBT_NO_METHOD, acceptLanguage),
+ res_getstring(i18nResource, DBT_NO_METHOD, acceptLanguage,
+ msgbuf, sizeof(msgbuf), NULL),
NULL, NULL);
else rpt_err(SYSTEM_ERROR, "No method is specified", NULL, NULL);
}
@@ -159,7 +157,7 @@
if (i18nResource)
rpt_err(INCORRECT_USAGE,
res_getstring(i18nResource, DBT_NO_QUERY_STRING,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
NULL, NULL);
else rpt_err(INCORRECT_USAGE, "NO QUERY_STRING DATA", NULL, NULL);
}
@@ -173,7 +171,8 @@
else {
if (i18nResource)
PR_snprintf(error_info, sizeof(error_info),
- res_getstring(i18nResource, DBT_UNKNOWN_METHOD, acceptLanguage),
+ res_getstring(i18nResource, DBT_UNKNOWN_METHOD, acceptLanguage,
+ msgbuf, sizeof(msgbuf), NULL),
method);
else PR_snprintf(error_info, sizeof(error_info), "Unknown Method (%s)", method);
rpt_err(INCORRECT_USAGE, error_info, NULL, NULL);
@@ -188,7 +187,7 @@
if (i18nResource)
rpt_err(ELEM_MISSING,
res_getstring(i18nResource, DBT_NO_USER_NAME,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
NULL, NULL);
else rpt_err(ELEM_MISSING, "NO USER NAME", NULL, NULL);
}
@@ -200,7 +199,7 @@
if (i18nResource)
rpt_err(ELEM_MISSING,
res_getstring(i18nResource, DBT_NO_USER_DN,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
NULL, NULL);
else rpt_err(ELEM_MISSING, "NO USER DN!", NULL, NULL);
}
@@ -213,7 +212,7 @@
if (i18nResource)
rpt_err(ELEM_MISSING,
res_getstring(i18nResource, DBT_NO_USER_DN,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
NULL, NULL);
else rpt_err(ELEM_MISSING, "NO USER DN!", NULL, NULL);
}
@@ -222,28 +221,26 @@
if (binddn) rv = ADM_GetCurrentPassword(&err, &bindpw);
- if (admroot) {
- adminfo = admldapBuildInfo(admroot, &rv);
- if (adminfo) {
- binddn = admldapGetSIEDN(adminfo);
- bindpw = admldapGetSIEPWD(adminfo);
- }
+ adminfo = admldapBuildInfo(CONFIGDIR, &rv);
+ if (adminfo) {
+ binddn = admldapGetSIEDN(adminfo);
+ bindpw = admldapGetSIEPWD(adminfo);
}
- errorCode = ADMSSL_InitSimple();
+ errorCode = ADMSSL_InitSimple(CONFIGDIR, SECURITYDIR, 0);
if (errorCode) {
if (i18nResource)
rpt_err(APP_ERROR,
res_getstring(i18nResource,
DBT_SSL_INIT_ERROR,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
NULL, NULL);
else rpt_err(APP_ERROR, "SSL related initialization failed", NULL, NULL);
}
/* Initialize the pset */
pset = psetCreateSSL("admin-serv",
- /* configRoot */ NULL,
+ /* configRoot */ CONFIGDIR,
/* userDN */ binddn,
/* passwd */ bindpw,
/* errorcode */ &rv);
@@ -252,11 +249,11 @@
PR_snprintf(error_info, sizeof(error_info),
"PSET_ERROR_NUMBER: %d\nPSET_ERROR_INFO: %s",
rv,
- psetErrorString(rv, NULL));
+ psetErrorString(rv, NULL, msgbuf, sizeof(msgbuf), NULL));
if (i18nResource)
rpt_err(APP_ERROR,
res_getstring(i18nResource, DBT_PSET_CREATE_ERROR,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
NULL, error_info);
else rpt_err(APP_ERROR, "PSET Creation Failed", NULL, error_info);
}
@@ -271,7 +268,8 @@
psetDelete(pset);
if (i18nResource)
rpt_err(INCORRECT_USAGE,
- res_getstring(i18nResource, DBT_NO_OP, acceptLanguage),
+ res_getstring(i18nResource, DBT_NO_OP, acceptLanguage,
+ msgbuf, sizeof(msgbuf), NULL),
NULL, NULL);
else rpt_err(INCORRECT_USAGE, "No operation defined", NULL, NULL);
}
@@ -285,7 +283,8 @@
else {
if (i18nResource)
PR_snprintf(error_info, sizeof(error_info),
- res_getstring(i18nResource, DBT_ILLEGAL_OP, acceptLanguage),
+ res_getstring(i18nResource, DBT_ILLEGAL_OP, acceptLanguage,
+ msgbuf, sizeof(msgbuf), NULL),
operation);
else PR_snprintf(error_info, sizeof(error_info), "Illegal operation defined (%s)", operation);
rpt_err(INCORRECT_USAGE, error_info, NULL, NULL);
@@ -299,7 +298,8 @@
psetDelete(pset);
if (i18nResource)
rpt_err(INCORRECT_USAGE,
- res_getstring(i18nResource, DBT_NO_ATTRS, acceptLanguage),
+ res_getstring(i18nResource, DBT_NO_ATTRS, acceptLanguage,
+ msgbuf, sizeof(msgbuf), NULL),
NULL, NULL);
else rpt_err(INCORRECT_USAGE, "No attribute specified ", NULL, NULL);
}
@@ -328,11 +328,11 @@
PR_snprintf(error_info, sizeof(error_info),
"PSET_ERROR_NUMBER: %d\nPSET_ERROR_INFO: %s",
errorCode,
- psetErrorString(errorCode, NULL));
+ psetErrorString(errorCode, NULL, msgbuf, sizeof(msgbuf), NULL));
if (i18nResource)
rpt_err(APP_ERROR,
res_getstring(i18nResource, DBT_PSET_GET_ERROR,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
NULL, error_info);
else rpt_err(APP_ERROR, "PSET Get Failed", NULL, error_info);
}
@@ -343,29 +343,32 @@
if (i18nResource)
rpt_warning(WARNING,
res_getstring(i18nResource, DBT_PSET_PARTIAL_GET,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
NULL, NULL);
else rpt_warning(WARNING, "Partial Get\n", NULL, NULL);
}
else {
psetDelete(pset);
+ pset = NULL;
if (i18nResource)
rpt_warning(APP_ERROR,
res_getstring(i18nResource, DBT_ATTR_NOT_EXIST,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
NULL, NULL);
else rpt_err(APP_ERROR, "Attribute(s) does not exist", NULL, NULL);
}
}
else rpt_success(NULL);
- nvl = resultList;
- while (nv = *nvl++) {
- fprintf(stdout, "%s: %s\n",
- nv->attrName,
- nv->attrVal ? (nv->attrVal[0] ? nv->attrVal[0] : "") : "");
+ if (resultList) {
+ nvl = resultList;
+ while (nv = *nvl++) {
+ fprintf(stdout, "%s: %s\n",
+ nv->attrName,
+ nv->attrVal ? (nv->attrVal[0] ? nv->attrVal[0] : "") : "");
+ }
+ deleteAttributeList(resultList);
}
- deleteAttributeList(resultList);
#if 0
if (execPath) fprintf(stdout, "execPath: %s\n", execPath);
else fprintf(stdout, "execPath: EMPTY\n");
@@ -399,7 +402,7 @@
if (i18nResource)
PR_snprintf(error_info, sizeof(error_info),
res_getstring(i18nResource, DBT_ATTR_NO_VALUE,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
inputs[x]);
else PR_snprintf(error_info, sizeof(error_info), "Attribute[%s] does not have value",
inputs[x]);
@@ -412,7 +415,7 @@
if (i18nResource)
PR_snprintf(error_info, sizeof(error_info),
res_getstring(i18nResource, DBT_ATTR_NO_VALUE,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
inputs[x]);
else PR_snprintf(error_info, sizeof(error_info), "Attribute[%s] does not have value",
inputs[x]);
@@ -448,23 +451,23 @@
err = update_conf("console.conf", "Listen", valptr);
}
- if(err == 0) {
- err = update_adm_conf(valptr);
- }
-
if (err < 0)
{
psetDelete(pset);
if (i18nResource)
{
if (err == -1)
- PR_snprintf(error_info, sizeof(error_info), res_getstring(i18nResource, DBT_PORT_INVALID, acceptLanguage));
+ PR_snprintf(error_info, sizeof(error_info), res_getstring(i18nResource, DBT_PORT_INVALID, acceptLanguage,
+ msgbuf, sizeof(msgbuf), NULL));
else if (err == -2)
- PR_snprintf(error_info, sizeof(error_info), res_getstring(i18nResource, DBT_PORT_INUSE, acceptLanguage));
+ PR_snprintf(error_info, sizeof(error_info), res_getstring(i18nResource, DBT_PORT_INUSE, acceptLanguage,
+ msgbuf, sizeof(msgbuf), NULL));
else if (err == -3)
- PR_snprintf(error_info, sizeof(error_info), res_getstring(i18nResource, DBT_PORT_EACCESS, acceptLanguage));
+ PR_snprintf(error_info, sizeof(error_info), res_getstring(i18nResource, DBT_PORT_EACCESS, acceptLanguage,
+ msgbuf, sizeof(msgbuf), NULL));
else
- PR_snprintf(error_info, sizeof(error_info), res_getstring(i18nResource, DBT_PORT_NOT_AVAIL, acceptLanguage));
+ PR_snprintf(error_info, sizeof(error_info), res_getstring(i18nResource, DBT_PORT_NOT_AVAIL, acceptLanguage,
+ msgbuf, sizeof(msgbuf), NULL));
}
else
{
@@ -482,29 +485,41 @@
if (i18nResource)
PR_snprintf(error_info, sizeof(error_info),
res_getstring(i18nResource, DBT_ATTR_INVALID_VALUE,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
nameptr);
else PR_snprintf(error_info, sizeof(error_info), "Attribute[%s] has invalid value",
nameptr);
rpt_err(APP_ERROR, error_info, NULL, NULL);
}
else {
+ char line[BIG_LINE];
+ char *val = read_conf("console.conf", "Listen");
+ char *ptr = NULL;
+
+ if (val) {
+ ptr = strchr(val, ':');
+ }
+
+ if (ptr) {
+ ++ptr; /* ptr points to the start of the port number in host:port */
+ } else if (val) {
+ ptr = val; /* Listen only specifies the port number */
+ } else {
+ /* console.conf should always have Listen with the server port */
+ ptr = "80"; /* default httpd port? */
+ }
/*
If ip address is not defined, it means that server should
listen on all interfaces. This is dependant upon console
to always include the port string first.
*/
if (valptr && valptr[0] ) {
- char line[BIG_LINE];
- int port = read_adm_conf();
- PR_snprintf(line, sizeof(line), "%s:%d", valptr, port);
- err = update_conf("console.conf", "Listen", line);
+ PR_snprintf(line, sizeof(line), "%s:%s", valptr, ptr);
} else {
- char line[BIG_LINE];
- int port = read_adm_conf();
- PR_snprintf(line, sizeof(line), "%d", port);
- err = update_conf("console.conf", "Listen", line);
+ PR_snprintf(line, sizeof(line), "%s", ptr);
}
+ err = update_conf("console.conf", "Listen", line);
+ PL_strfree(val);
}
}
@@ -516,17 +531,15 @@
if (i18nResource)
PR_snprintf(error_info, sizeof(error_info),
res_getstring(i18nResource, DBT_ACCESSLOG_INVALID,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
nameptr);
else PR_snprintf(error_info, sizeof(error_info), "Invalid access log file specified");
rpt_err(APP_ERROR, error_info, NULL, NULL);
}
else {
- char newpath[BIG_LINE];
- char pathline[BIG_LINE];
- get_logfile_path(valptr, newpath, sizeof(newpath));
- PR_snprintf(pathline, sizeof(pathline), "%s %s", newpath, "common");
+ char *pathline = PR_smprintf("%s/%s %s", LOGDIR, valptr, "common");
err = update_conf("console.conf", "CustomLog", pathline);
+ PR_smprintf_free(pathline);
}
}
@@ -538,14 +551,13 @@
if (i18nResource)
PR_snprintf(error_info, sizeof(error_info),
res_getstring(i18nResource, DBT_ERRORLOG_INVALID,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
nameptr);
else PR_snprintf(error_info, sizeof(error_info), "Invalid error log file specified");
rpt_err(APP_ERROR, error_info, NULL, NULL);
}
else {
- char newpath[BIG_LINE];
- get_logfile_path(valptr, newpath, sizeof(newpath));
+ char *newpath = PR_smprintf("%s/%s", LOGDIR, valptr);
err = update_conf("console.conf", "ErrorLog", newpath);
}
}
@@ -588,11 +600,11 @@
PR_snprintf(error_info, sizeof(error_info),
"PSET_ERROR_NUMBER: %d\nPSET_ERROR_INFO: %s\n",
errorCode,
- psetErrorString(errorCode, NULL));
+ psetErrorString(errorCode, NULL, msgbuf, sizeof(msgbuf), NULL));
if (i18nResource)
rpt_err(APP_ERROR,
res_getstring(i18nResource, DBT_PSET_SET_ERROR,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
NULL, error_info);
else rpt_err(APP_ERROR, "PSET Set Failed", NULL, error_info);
}
@@ -605,14 +617,15 @@
addList[i]->attrVal);
if (errorCode) {
psetDelete(pset);
+ pset = NULL;
PR_snprintf(error_info, sizeof(error_info),
"PSET_ERROR_NUMBER: %d\nPSET_ERROR_INFO: %s\n",
errorCode,
- psetErrorString(errorCode, NULL));
+ psetErrorString(errorCode, NULL, msgbuf, sizeof(msgbuf), NULL));
if (i18nResource)
rpt_err(APP_ERROR,
res_getstring(i18nResource, DBT_PSET_ADD_ERROR,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
NULL, error_info);
else rpt_err(APP_ERROR, "PSET Add Failed", NULL, error_info);
}
@@ -622,10 +635,11 @@
else {
if (j) {
psetDelete(pset);
+ pset = NULL;
if (i18nResource)
rpt_err(APP_ERROR,
res_getstring(i18nResource, DBT_PSET_SET_NOT_EXIST,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
NULL, NULL);
else rpt_err(APP_ERROR,
"PSET SET OP Failed for setting non-existing attribute",
@@ -648,85 +662,34 @@
/*
- * Modify Port in adm.conf
- */
-static int update_adm_conf(char *newport) {
-
- FILE *f;
- int i, modified=0;
- static char filename[BIG_LINE];
- static char inbuf[BIG_LINE];
- static char buf[BIG_LINE];
- int linecnt=0;
- char *lines[50];
-
- PR_snprintf(filename, sizeof(filename), "%s/adm.conf", getenv("ADMSERV_ROOT"));
-
- f = fopen(filename, "r");
- if (f==NULL) {
- rpt_err(SYSTEM_ERROR, "Can not open adm.conf for reading", NULL, NULL);
- }
-
- while(fgets(inbuf, sizeof(inbuf), f) != NULL) {
- if (strncasecmp(inbuf,"port:",5) == 0) { /* Line starts with "Port:" */
- PR_snprintf(buf, sizeof(buf), "port: %s\n", newport);
- lines[linecnt++] = strdup(buf);
- modified=1;
- }
- else {
- lines[linecnt++] = strdup(inbuf);
- }
- }
- fclose(f);
-
- if (!modified) { /* Add the Port attribute */
- PR_snprintf(buf, sizeof(buf), "Port: %s\n", newport);
- lines[linecnt++] = strdup(buf);
- }
-
- f = fopen(filename, "w");
- if (f==NULL) {
- fclose(f);
- rpt_err(SYSTEM_ERROR, "Can not open adm.conf for writing", NULL, NULL);
- }
-
- for (i=0; i < linecnt; i++) {
- fprintf(f, "%s", lines[i]);
- }
-
- fclose(f);
-
- return 0;
-
-}
-
-/*
- * Get Port from adm.conf
+ * Get Val from the specified conf file
+ * The returned value is allocated - caller must free
*/
-static int read_adm_conf() {
-
+static char * read_conf(char *file, char *name) {
FILE *f;
static char filename[BIG_LINE];
static char inbuf[BIG_LINE];
- static int port = -1;
+ char * retval = NULL;
- PR_snprintf(filename, sizeof(filename), "%s/adm.conf", getenv("ADMSERV_ROOT"));
+ util_find_file_in_paths(filename, sizeof(filename), file, CONFIGDIR, "", "admin-serv/config");
f = fopen(filename, "r");
if (f==NULL) {
- rpt_err(SYSTEM_ERROR, "Can not open adm.conf for reading", NULL, NULL);
+ char msg[BIG_LINE];
+ PR_snprintf(msg, BIG_LINE, "Cannot open file %s for reading", filename);
+ rpt_err(SYSTEM_ERROR, msg, NULL, NULL);
}
while(fgets(inbuf, sizeof(inbuf), f) != NULL) {
- if (strncasecmp(inbuf,"port:",5) == 0) { /* Line starts with "Port:" */
- char *p = strtok(inbuf, ":");
- p = strtok(NULL, ":");
- port = atoi(p);
+ if (strncasecmp(inbuf,name,strlen(name)) == 0) { /* Line starts with name */
+ char *p = strtok(inbuf, " ");
+ p = strtok(NULL, " ");
+ retval = PL_strdup(p);
}
}
fclose(f);
- return port;
+ return retval;
}
#define CONF_LINES 16*1024
@@ -743,12 +706,8 @@
static char buf[BIG_LINE];
int linecnt=0;
char *lines[CONF_LINES];
- char *admserv = getenv("ADMSERV_ROOT");
-
- if (!admserv)
- return 1;
- PR_snprintf(filename, sizeof(filename), "%s/%s", admserv, file);
+ util_find_file_in_paths(filename, sizeof(filename), file, CONFIGDIR, "", "admin-serv/config");
f = fopen(filename, "r");
if (f==NULL) {
@@ -805,18 +764,22 @@
static int rename_pidlog_file(PsetHndl pset, char* newname) {
char oldpath[BIG_LINE];
char newpath[BIG_LINE];
- char *sroot = getenv("NETSITE_ROOT");
int errorCode;
+ if (!newname || !*newname ||
+ !util_is_valid_path_string(newname)) {
+ return 0;
+ }
+
char *oldname = psetGetAttrSingleValue(pset,
"configuration.nsPidLog",
&errorCode);
if (oldname != NULL && strcmp(oldname, newname) != 0) {
- PR_snprintf(oldpath, sizeof(oldpath), "%s/%s", sroot, oldname);
- PR_snprintf(newpath, sizeof(newpath), "%s/%s", sroot, newname);
- if(rename (oldpath, newpath) == 0)
- return 1;
- return update_conf("console.conf", "PidFile", newname);
+ PR_snprintf(oldpath, sizeof(oldpath), "%s/%s", PIDDIR, oldname);
+ PR_snprintf(newpath, sizeof(newpath), "%s/%s", PIDDIR, newname);
+ if(rename (oldpath, newpath) != 0)
+ return 0;
+ return !update_conf("console.conf", "PidFile", newname);
}
else return 1;
}
@@ -864,77 +827,53 @@
/*
* Verify if newuname can be used as the admin server uid. The new uid must
- * belong to the SuiteSpot administrator group (recorded in ssusers.conf)
+ * belong to the sysgroup (recorded in adm.conf)
*
* Returns error : -1
* ok : uid for the newuname
*/
#ifdef XP_UNIX
static int verify_server_uname(char *newuname) {
-
- FILE *f;
- int i=0, ssgrp_found=0, grmem_found=0;
- static char filename[BIG_LINE];
- static char linebuf[BIG_LINE];
- static char buf[BIG_LINE];
+ AdmldapInfo admInfo = NULL;
char *grpname;
struct group *grp;
struct passwd *pwd;
+ int errorcode = 0;
+ int i = 0;
+ int grmem_found = 0;
+ char buf[BUFSIZ];
- /*
- * Read 'SuiteSpotGroup' attribute from
- * <server-root>/shared/config/ssusers.conf
- */
- PR_snprintf(filename, sizeof(filename), "%s/shared/config/ssusers.conf", getenv("NETSITE_ROOT"));
-
- f = fopen(filename, "r");
- if (f==NULL) {
- rpt_err(SYSTEM_ERROR, "Can not open ssusers.conf for reading", NULL, NULL);
+ admInfo = admldapBuildInfoOnly(CONFIGDIR, &errorcode);
+ if (!admInfo || errorcode) {
+ rpt_err(SYSTEM_ERROR, "Can not open adm.conf for reading", NULL, NULL);
return -1;
}
- while(fgets(linebuf, sizeof(linebuf), f) != NULL) {
-
- /* Remove newline ch */
- if (linebuf[strlen(linebuf)-1] == '\n') {
- linebuf[strlen(linebuf)-1]=0;
- }
-
- if ( (grpname = strchr(linebuf, '\t')) == NULL) {
- fclose(f);
- rpt_err(SYSTEM_ERROR, "Bad format for ssusers.conf entries", NULL, NULL);
- return -1;
- }
-
- *grpname++=0;
-
- if (strcasecmp(linebuf,"SuiteSpotGroup") == 0) {
- ssgrp_found=1;
- break;
- }
- }
- fclose(f);
+ grpname = admldapGetSysGroup(admInfo); /* makes a copy */
+ destroyAdmldap(admInfo);
- if (!ssgrp_found) {
- rpt_err(SYSTEM_ERROR, "SuiteSpotGroup not found in ssusers.conf", NULL, NULL);
+ if (!grpname) {
+ rpt_err(SYSTEM_ERROR, "sysgropup not found in adm.conf", NULL, NULL);
return -1;
}
grp = getgrnam(grpname);
if (grp == NULL) {
- PR_snprintf(buf, sizeof(buf), "SuiteSpotGroup '%s' does not exist", grpname);
+ PR_snprintf(buf, sizeof(buf), "sysgroup '%s' does not exist", grpname);
rpt_err(SYSTEM_ERROR, buf, NULL, NULL);
+ PL_strfree(grpname);
return -1;
}
/*
- * newuname must belong to the SuiteSpot group
+ * newuname must belong to the admin server group
*/
pwd = getpwnam(newuname);
if (pwd == NULL) {
PR_snprintf(buf, sizeof(buf), "Can not change Server UID, "
"User '%s' does not exist", newuname);
rpt_err(INCORRECT_USAGE, buf, NULL, NULL);
+ PL_strfree(grpname);
return -1;
}
@@ -948,13 +887,14 @@
if (!grmem_found && pwd->pw_gid != grp->gr_gid) {
PR_snprintf(buf, sizeof(buf), "Can not change Server UID, "
- "User '%s' does not belong to the SuiteSpot Group '%s'", newuname, grpname);
+ "User '%s' does not belong to the group '%s'", newuname, grpname);
rpt_err(INCORRECT_USAGE, buf, NULL, NULL);
+ PL_strfree(grpname);
return -1;
}
+ PL_strfree(grpname);
return pwd->pw_uid;
-
}
#endif
@@ -1081,26 +1021,21 @@
*/
static int validate_logfile(char *name) {
FILE *f;
- char fullname[BIG_LINE];
+ char *fullname;
+
+ if (!name || !*name ||
+ !util_is_valid_path_string(name)) {
+ return 0; /* error */
+ }
- get_logfile_path(name, fullname, sizeof(fullname));
+ fullname = PR_smprintf("%s/%s", LOGDIR, name);
f = fopen(fullname, "a+");
+ PR_smprintf_free(fullname);
if (f != NULL) {
fclose(f);
return 1; /* ok*/
}
- return 0; /* error */
-}
-
-static int get_logfile_path(char *name, char *buf, size_t bufsize) {
-
- if (name[0] == '/') {
- PR_snprintf(buf, bufsize,"%s",name);
- }
- else {
- PR_snprintf(buf, bufsize,"%s/%s", getenv("NETSITE_ROOT"), name);
- }
- return 0;
+ return 0; /* error */
}
Index: download.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/download.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- download.c 12 May 2006 00:41:29 -0000 1.6
+++ download.c 9 May 2007 00:26:30 -0000 1.7
@@ -65,12 +65,11 @@
# define STRDUP strdup
#endif
+#include "config.h"
+
#define PATH_LENGTH 1024
-#define MAX_NUM_DOWNLOADS 32
-#define MENU_BLOCK "<download_menu_block>"
-#define MENU_BLOCK_CLOSE "</download_menu_block>"
-#define MENU_OPTIONS_BLOCK "<download_menu_options>"
+#define MYHTMLFILE "admserv.html"
#define DSGW_BLOCK "<dsgw_menu_block>"
#define DSGW_BLOCK_CLOSE "</dsgw_menu_block>"
@@ -95,100 +94,16 @@
exit(0);
}
-static int
-dsgw_exists ()
-{
- char *serverroot = NULL;
- char path[PATH_LENGTH];
- SYS_DIR *dp1;
-
- if (!(serverroot = getenv("NETSITE_ROOT")))
- error_exit("NETSITE_ROOT not found");
-
- /* Check whether dsgw is installed */
- safe_snprintf(path, sizeof(path), "%s%cdsgw", serverroot, FILE_SEP);
-
- if (!(dp1 = dir_open(path)))
- {
- return 0;
- }
-
- dir_close(dp1);
- return 1;
-}
-
-static int
-populate_download_menu(char *platforms[], char *paths[])
-{
- int baselen;
- char path[PATH_LENGTH];
- char line[PATH_LENGTH];
- char *serverroot = NULL;
- SYS_DIR *dp1, *dp2;
- SYS_DIRENT *ep1, *ep2;
- int count = 0;
-
- if (!(serverroot = getenv("NETSITE_ROOT")))
- error_exit("NETSITE_ROOT not found");
-
- /* build list of supported downloads of the form <sr>/dist/<OSname>/n*.zip */
-
- safe_snprintf(path, sizeof(path), "%s%cdist", serverroot, FILE_SEP);
-
- baselen = strlen(path);
-
- if (!(dp1 = dir_open(path)))
- error_exit("Unable to open NETSITE_ROOT/dist");
-
- while ((ep1 = dir_read(dp1)))
- {
- /* don't check anything starting with . */
- if (dir_name(ep1)[0] == '.')
- continue;
-
- /* check if this is a dir and has an executable */
- safe_snprintf(&(path[baselen]), sizeof(path) - baselen, "%c%s", FILE_SEP, dir_name(ep1));
- if (!(dp2 = dir_open(path)))
- continue;
-
- while ((ep2 = dir_read(dp2)))
- {
- if (dir_name(ep2)[0] == '.')
- continue;
-
- if (!STRNCASECMP(dir_name(ep2), "uxmcc", 5) ||
- !STRNCASECMP(dir_name(ep2), "ntmcc", 5) ||
- !STRNCASECMP(dir_name(ep2), "winmcc", 6))
- {
- platforms[count] = STRDUP(dir_name(ep1));
- safe_snprintf(line, sizeof(line), "%s:%s", dir_name(ep1), dir_name(ep2));
- paths[count++] = STRDUP(line);
- }
- }
-
- dir_close(dp2);
- }
-
- dir_close(dp1);
-
- return (count);
-}
-
int
main(int argc, char *argv[])
{
- char *platforms[MAX_NUM_DOWNLOADS];
- char *paths[MAX_NUM_DOWNLOADS];
char line[PATH_LENGTH];
FILE *html;
- int count, i, menublock, dsgwblock, has_dsgw;
+ int i, dsgwblock, has_dsgw;
char *acceptLanguage = NULL;
char *loc;
- memset(platforms, 0, MAX_NUM_DOWNLOADS * sizeof(char *));
- memset(paths, 0, MAX_NUM_DOWNLOADS * sizeof(char *));
- count = populate_download_menu(platforms, paths);
- has_dsgw = dsgw_exists();
+ has_dsgw = 1; /* hardcoded for now until we can figure out a better mechanism */
acceptLanguage = getenv("HTTP_ACCEPT_LANGUAGE");
if (acceptLanguage == NULL)
@@ -202,7 +117,8 @@
loc = strtok(strdup(acceptLanguage), ",");
while (1)
{
- safe_snprintf(line, sizeof(line), "..%cjava%chtml%c%c%c%cstart-console.html", FILE_SEP, FILE_SEP, FILE_SEP, loc[0],loc[1],FILE_SEP);
+ safe_snprintf(line, sizeof(line), "%s%c%c%c%c%s",
+ HTMLDIR, FILE_SEP, loc[0],loc[1], FILE_SEP, MYHTMLFILE);
if ((html = fopen(line, "r")) != NULL)
{
break;
@@ -212,10 +128,11 @@
loc = strtok(NULL, ", ");
if (loc == NULL)
{
- safe_snprintf(line, sizeof(line), "..%cjava%chtml%cstart-console.html", FILE_SEP, FILE_SEP, FILE_SEP);
+ safe_snprintf(line, sizeof(line), "%s%c%s",
+ HTMLDIR, FILE_SEP, MYHTMLFILE);
if ((html = fopen(line, "r")) == NULL)
{
- error_exit("start-console.html not found");
+ error_exit(MYHTMLFILE " not found");
}
break;
}
@@ -224,47 +141,29 @@
printf("Content-type: text/html\n\n");
- menublock = 0;
dsgwblock = 0;
while (fgets(line, PATH_LENGTH, html))
{
- if (!STRNCASECMP(line, MENU_BLOCK, strlen(MENU_BLOCK)))
- {
- menublock = 1;
- continue;
- }
- else if (!STRNCASECMP(line, DSGW_BLOCK, strlen(DSGW_BLOCK)))
+ if (!STRNCASECMP(line, DSGW_BLOCK, strlen(DSGW_BLOCK)))
{
dsgwblock = 1;
continue;
}
- if (!STRNCASECMP(line, MENU_BLOCK_CLOSE, strlen(MENU_BLOCK_CLOSE)))
- {
- menublock = 0;
- continue;
- }
- else if (!STRNCASECMP(line, DSGW_BLOCK_CLOSE, strlen(DSGW_BLOCK_CLOSE)))
+ if (!STRNCASECMP(line, DSGW_BLOCK_CLOSE, strlen(DSGW_BLOCK_CLOSE)))
{
dsgwblock =0;
continue;
}
- if (!STRNCASECMP(line, MENU_OPTIONS_BLOCK, strlen(MENU_OPTIONS_BLOCK)))
- {
- for (i = 0 ; i < count ; i++)
- printf("<option value='%s'>%s\n", paths[i], platforms[i]);
- continue;
- }
-
- if (!menublock && !dsgwblock)
+ if (!dsgwblock)
{
printf("%s", line);
continue;
}
- if ((menublock && count > 0) || (dsgwblock && has_dsgw))
+ if (dsgwblock && has_dsgw)
printf("%s", line);
}
Index: dsconfig.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/dsconfig.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- dsconfig.c 11 May 2006 14:29:30 -0000 1.6
+++ dsconfig.c 9 May 2007 00:26:30 -0000 1.7
@@ -26,20 +26,19 @@
*/
/*
- * Default Directory Server setting get/set. Read/modify DS ldap url from dbswitch.conf
+ * Default Directory Server setting get/set. Read/modify DS ldap url from adm.conf
*
* Get Operation
* in: op=getconfig
* out: dsconfig.host=<host from DS ldap url>
* out: dsconfig.port=<port from DS ldap url>
* out: dsconfig.basedn=<dn from DS ldap url>
- * out: dsconfig.sll= 'true' if ldaps used, 'false' if ldap used
+ * out: dsconfig.ssl= 'true' if ldaps used, 'false' if ldap used
*
* Set Operation
* in:op=setconfig&dsconfig.host=<host>&dsconfig.port=<port>&
- * dsconfig.basedn=<basedn>&dsconfig.ssl=<true|false>
- * 1) modify DS ldap url in dbswitch.conf with supplied parameters
- * 2) modify ldapHost: and ldapPort: in adm.conf
+ * dsconfig.ssl=<true|false>
+ * 1) modify DS ldap url in adm.conf with supplied parameters
*/
#include "libadmin/libadmin.h"
@@ -58,6 +57,8 @@
#include "libadmsslutil/certmgt.h"
#include "cert.h"
+#include "config.h"
+
/*#ifdef XP_WIN32
#define strcasecmp stricmp
#define strncasecmp _strnicmp
@@ -66,8 +67,7 @@
static void handle_getconfig();
static void handle_setconfig();
static char *create_new_ldapurl(char *new_host, int new_port, char *new_basedn, int new_ssl);
-static void update_adm_conf(char *ldapHost, int ldapPort, char *sieDN, char *isieDN);
-static void update_dbswitch_conf(char *ldapURL);
+static void update_adm_conf(char *ldapURL, char *sieDN, char *isieDN);
static char *nonull_value(char *str);
@@ -81,8 +81,12 @@
if (!log_enabled) return;
+ if (!util_get_log_dir()) {
+ return;
+ }
+
if (logfp==NULL) {
- PR_snprintf(logfile, sizeof(logfile), "%s/../logs/dsconfig.dbg", getenv("ADMSERV_ROOT"));
+ PR_snprintf(logfile, sizeof(logfile), "%s/dsconfig.dbg", util_get_log_dir());
logfp = fopen(logfile, "w");
}
@@ -107,19 +111,13 @@
#define DBT_NO_QUERY_STRING resource_key(RESOURCE_FILE, "3")
#define DBT_NO_OPERATION resource_key(RESOURCE_FILE, "4")
#define DBT_UNKNOWN_OPERATION resource_key(RESOURCE_FILE, "5")
-#define DBT_RD_DBSWITCH resource_key(RESOURCE_FILE, "6")
-#define DBT_BAD_DBSWITCH resource_key(RESOURCE_FILE, "7")
-#define DBT_BAD_LDAPURL resource_key(RESOURCE_FILE, "8")
#define DBT_BAD_PORT resource_key(RESOURCE_FILE, "9")
#define DBT_NO_CERTDB resource_key(RESOURCE_FILE, "10")
#define DBT_OPEN_CERTDB resource_key(RESOURCE_FILE, "11")
#define DBT_BAD_SSL resource_key(RESOURCE_FILE, "12")
-#define DBT_OPEN_DBSWITCH_RD resource_key(RESOURCE_FILE, "13")
-#define DBT_NO_DBHANDLE resource_key(RESOURCE_FILE, "14")
-#define DBT_OPEN_DBSWITCH_WR resource_key(RESOURCE_FILE, "15")
#define DBT_OPEN_ADM_RD resource_key(RESOURCE_FILE, "16")
-#define DBT_NO_LDAPHOST resource_key(RESOURCE_FILE, "17")
-#define DBT_NO_LDAPPORT resource_key(RESOURCE_FILE, "18")
+#define DBT_NO_LDAPURL resource_key(RESOURCE_FILE, "17")
+#define DBT_BAD_LDAPURL resource_key(RESOURCE_FILE, "18")
#define DBT_OPEN_ADM_WR resource_key(RESOURCE_FILE, "19")
#define DBT_NO_SIE resource_key(RESOURCE_FILE, "20")
#define DBT_NO_ISIE resource_key(RESOURCE_FILE, "21")
@@ -129,13 +127,8 @@
static Resource *i18nResource = NULL;
static void i18nInit() {
- char resPath[256], *execPath;
- execPath = getcwd(resPath, 256);
- if (execPath) {
- PL_strncpyz(resPath, execPath, sizeof(resPath));
- PL_strcatn(resPath, sizeof(resPath), "/property");
- i18nResource = res_init_resource(resPath, RESOURCE_FILE);
- }
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
+
if (getenv("HTTP_ACCEPT_LANGUAGE")) {
acceptLanguage = getenv("HTTP_ACCEPT_LANGUAGE");
}
@@ -147,9 +140,10 @@
}
static const char *i18nMsg(char *msgid, char *defaultMsg) {
const char *msg=NULL;
+ static char msgbuf[BUFSIZ]; /* ok - not threaded code */
if (i18nResource) {
- msg = res_getstring(i18nResource, msgid, acceptLanguage);
+ msg = res_getstring(i18nResource, msgid, acceptLanguage, msgbuf, sizeof(msgbuf), NULL);
}
if (msg == NULL) {
msg = (const char*)defaultMsg;
@@ -169,7 +163,6 @@
int _ai=ADMUTIL_Init();
char *method = getenv("REQUEST_METHOD");
- char *root = getenv("NETSITE_ROOT");
char *qs = 0, *op=0;
char error_info[128];
@@ -224,41 +217,47 @@
return 0;
}
+static char *
+get_ldap_url()
+{
+ char *ldapurl = NULL;
+ int errorcode = 0;
+ AdmldapInfo admInfo = NULL;
+
+ logMsg("In get_ldap_url\n");
+ admInfo = admldapBuildInfoOnly(CONFIGDIR, &errorcode);
+ if (!admInfo || errorcode) {
+ logMsg("Could not get ldap info from config - %d", errorcode);
+ return NULL;
+ }
+ ldapurl = admldapGetDirectoryURL(admInfo); /* returns a copy */
+ destroyAdmldap(admInfo);
+
+ logMsg("Finished get_ldap_url, url is %s\n", ldapurl);
+
+ return ldapurl;
+}
/*
* Return current ldap url setting
*/
static void handle_getconfig()
{
- DBConfDBInfo_t *db_info;
int rc;
LDAPURLDesc *ludp;
- char dbswitch_file[BIG_LINE];
+ char *ldapurl = NULL;
logMsg("In handle_getconfig\n");
- PR_snprintf(dbswitch_file, sizeof(dbswitch_file), "%s/shared/config/dbswitch.conf", getenv("NETSITE_ROOT"));
-
- logMsg("dbswitch=%s\n", dbswitch_file);
-
- if (( rc = dbconf_read_default_dbinfo(dbswitch_file, &db_info ))!= LDAPU_SUCCESS ) {
- logMsg("dbconf_read_default_dbinfo(%s), rc=%d\n", dbswitch_file, rc);
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_RD_DBSWITCH, "Failed to read dbswitch.conf"), NULL, NULL);
- }
- if ( db_info == NULL ) {
- logMsg("dbconf_read_default_dbinfo(), returned db_info=NULL\n");
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_RD_DBSWITCH, "Failed to read dbswitch.conf"), NULL, NULL);
- }
+ ldapurl = get_ldap_url();
+ logMsg("baseurl=%s\n", ldapurl);
- if ( strcasecmp( db_info->dbname, DBCONF_DEFAULT_DBNAME ) != 0 ) {
- logMsg("db_info->dbname is '%s', expecting '%s'\n", db_info->dbname, DBCONF_DEFAULT_DBNAME);
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_BAD_DBSWITCH, "Bad content/format of dbswitch.conf"), NULL, NULL);
- }
- logMsg("baseurl=%s\n", db_info->url);
-
- if (( rc = ldap_url_parse( db_info->url, &ludp )) != 0 ) {
- logMsg("ldap_url_parse(%s) failed, rc=%d\n", db_info->url, rc);
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_BAD_LDAPURL,"Bad ldap url in dbswitch.conf"), NULL, NULL);
+ if (( rc = ldap_url_parse( ldapurl, &ludp )) != 0 ) {
+ char error_info[128];
+ PR_snprintf(error_info, sizeof(error_info),
+ i18nMsg(DBT_BAD_LDAPURL, "LDAP URL (%s) is invalid"), ldapurl);
+ logMsg("ldap_url_parse(%s) failed, rc=%d\n", ldapurl, rc);
+ rpt_err(SYSTEM_ERROR, error_info, NULL, NULL);
}
else {
int ssl;
@@ -282,46 +281,22 @@
fprintf(stdout, "NMC_Status: 0\n");
}
-}
-
-/* return true if all of the chars in s are valid chars for use in
- file and directory names, and false otherwise. This means that
- the string must begin with a letter or number, and must contain
- letters, numbers, '-' and '_'.
-*/
-static int
-is_valid_path_string(const char *s)
-{
- int ret = 0;
- if (s) {
- if (isalnum(*s)) {
- ret = 1;
- for(; ret && *s; ++s) {
- ret = isalnum(*s) || (*s == '-') || (*s == '_');
- }
- }
- }
- return ret;
+ PL_strfree(ldapurl);
}
/*
* Modify ldap url setting
*/
static void handle_setconfig() {
- char *sieDN=NULL, *isieDN=NULL, *host=NULL, *basedn=NULL, *ldapURL=NULL, *port_s=NULL, *ssl_s=NULL, *alias=NULL;
+ char *sieDN=NULL, *isieDN=NULL, *host=NULL, *basedn=NULL, *ldapURL=NULL, *port_s=NULL, *ssl_s=NULL;
int ssl=-1, port=-1;
- char keyfile[512], certfile[512];
- /* basedn can not be changed any more Miodrag 08/21/98
- basedn = get_cgi_var( "dsconfig.basedn", NULL, NULL );
- */
sieDN = get_cgi_var( "dsconfig.sieDN", NULL, NULL );
isieDN = get_cgi_var( "dsconfig.isieDN", NULL, NULL );
host = get_cgi_var( "dsconfig.host", NULL, NULL );
port_s = get_cgi_var( "dsconfig.port", NULL, NULL );
ssl_s = get_cgi_var( "dsconfig.ssl", NULL, NULL );
- alias = get_cgi_var( "dsconfig.alias", NULL, NULL );
if (port_s != NULL) {
port = atoi( port_s);
@@ -331,19 +306,7 @@
}
if (ssl_s != NULL) {
if (strcasecmp(ssl_s, "true") == 0) {
- if(!alias)
- rpt_err(INCORRECT_USAGE, i18nMsg(DBT_NO_CERTDB,"No certificate database specified for LDAP/SSL usage!"), NULL, NULL);
- if (!is_valid_path_string(alias)) {
- rpt_err(INCORRECT_USAGE, i18nMsg(DBT_NO_CERTDB,"Invalid alias prefix for certificate database specified for LDAP/SSL usage!"), NULL, NULL);
- }
ssl = 1;
- PR_snprintf(keyfile, sizeof(keyfile), "alias%c%s-key3.db",
- FILE_PATHSEP,
- alias);
- PR_snprintf(certfile, sizeof(certfile), "alias%c%s-cert8.db",
- FILE_PATHSEP,
- alias);
- set_security(NULL, getenv("NETSITE_ROOT"), NULL, certfile, keyfile);
}
else if (strcasecmp(ssl_s, "false") == 0) {
ssl = 0;
@@ -358,8 +321,7 @@
logMsg("new ldap url = %s", nonull_value(ldapURL));
if (ldapURL != NULL) {
- update_dbswitch_conf(ldapURL);
- update_adm_conf(host, port, sieDN, isieDN);
+ update_adm_conf(ldapURL, sieDN, isieDN);
fprintf(stdout, "Content-type: text/html\n\n");
fprintf(stdout, "NMC_Status: 0\n");
@@ -372,35 +334,20 @@
*/
static char* create_new_ldapurl(char *new_host, int new_port, char *new_basedn, int new_ssl)
{
- DBConfDBInfo_t *db_info;
int rc;
LDAPURLDesc *ludp;
int sslflag;
char url[BIG_LINE];
+ char *curldapurl = NULL;
char *host, *basedn, *ssl;
int port;
- char dbswitch_file[BIG_LINE];
- PR_snprintf(dbswitch_file, sizeof(dbswitch_file), "%s/shared/config/dbswitch.conf", getenv("NETSITE_ROOT"));
+ curldapurl = get_ldap_url();
+ logMsg("baseurl=%s\n", curldapurl);
- if (( rc = dbconf_read_default_dbinfo(dbswitch_file, &db_info ))!= LDAPU_SUCCESS ) {
- logMsg("dbconf_read_default_dbinfo(%s), rc=%d\n", dbswitch_file, rc);
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_RD_DBSWITCH,"Failed to read dbswitch.conf"), NULL, NULL);
- }
- if ( db_info == NULL ) {
- logMsg("dbconf_read_default_dbinfo(), returned db_info=NULL\n");
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_RD_DBSWITCH,"Failed to read dbswitch.conf"), NULL, NULL);
- }
-
- if ( strcasecmp( db_info->dbname, DBCONF_DEFAULT_DBNAME ) != 0 ) {
- logMsg("db_info->dbname is '%s', expecting '%s'\n", db_info->dbname, DBCONF_DEFAULT_DBNAME);
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_BAD_DBSWITCH,"Bad content/format of dbswitch.conf"), NULL, NULL);
- }
- logMsg("baseurl=%s\n", db_info->url);
-
- if (( rc = ldap_url_parse( db_info->url, &ludp )) != 0 ) {
- logMsg("ldap_url_parse(%s) failed, rc=%d\n", db_info->url, rc);
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_BAD_LDAPURL,"Bad ldap url in dbswitch.conf"), NULL, NULL);
+ if (( rc = ldap_url_parse( curldapurl, &ludp )) != 0 ) {
+ logMsg("ldap_url_parse(%s) failed, rc=%d\n", curldapurl, rc);
+ rpt_err(SYSTEM_ERROR, i18nMsg(DBT_BAD_LDAPURL,"Bad ldap url in adm.conf"), NULL, NULL);
}
else {
@@ -413,136 +360,42 @@
PR_snprintf(url, sizeof(url), "ldap%s://%s:%d/%s", ssl, host, port, basedn);
}
+ PL_strfree(curldapurl);
return strdup(url);
}
-static char inbuf[BIG_LINE];
-
-/*
- * Modify dbswitch.conf
- */
-static void update_dbswitch_conf(char *ldapURL) {
-
- FILE *f;
- int i, modified=0;
- static char filename[BIG_LINE];
- char buf[80];
- int linecnt=0;
- char *lines[100];
-
-
- PR_snprintf(filename, sizeof(filename), "%s/shared/config/dbswitch.conf", getenv("NETSITE_ROOT"));
-
- f = fopen(filename, "r");
- if (f==NULL) {
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_OPEN_DBSWITCH_RD,"Can not open dbswitch.conf for reading"), NULL, NULL);
- }
-
- while(fgets(inbuf, sizeof(inbuf), f) != NULL) {
- if (strncasecmp(inbuf,"directory default ", strlen("directory default ")) == 0) {
- PR_snprintf(buf, sizeof(buf), "directory default %s\n", ldapURL);
- lines[linecnt++] = strdup(buf);
- modified=1;
- }
- else {
- lines[linecnt++] = strdup(inbuf);
- }
-
- }
- fclose(f);
-
- if (!modified) {
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_NO_DBHANDLE,"Dbhandle 'default' not found in dbswitch.conf"), NULL, NULL);
- }
-
-
- f = fopen(filename, "w");
- if (f==NULL) {
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_OPEN_DBSWITCH_WR,"Can not open dbswitch.conf for writing"), NULL, NULL);
- return;
- }
-
- for (i=0; i < linecnt; i++) {
- fprintf(f, "%s", lines[i]);
- }
-
- fclose(f);
-
-}
-
/*
* Modify adm.conf
*/
-static void update_adm_conf(char *ldapHost, int ldapPort, char *sieDN, char *isieDN) {
-
- FILE *f;
- int i, modifiedHost=0, modifiedPort=0, modifiedSIE=0, modifiedISIE=0;
- static char filename[BIG_LINE];
- char buf[500];
- int linecnt=0;
- char *lines[50];
-
- PR_snprintf(filename, sizeof(filename), "%s/adm.conf", getenv("ADMSERV_ROOT"));
-
- f = fopen(filename, "r");
- if (f==NULL) {
+static void update_adm_conf(char *ldapURL, char *sieDN, char *isieDN) {
+ AdmldapInfo admInfo = NULL;
+ int errorcode = 0;
+
+ /* get a handle to the current one */
+ admInfo = admldapBuildInfoOnly(CONFIGDIR, &errorcode);
+ if (!admInfo || errorcode) {
rpt_err(SYSTEM_ERROR, i18nMsg(DBT_OPEN_ADM_RD, "Can not open adm.conf for reading"), NULL, NULL);
}
- while(fgets(inbuf, sizeof(inbuf), f) != NULL) {
- if (strstr(inbuf,"ldapHost:") == inbuf) { /* Line starts with "ldapHost:" */
- PR_snprintf(buf, sizeof(buf), "ldapHost: %s\n", ldapHost);
- lines[linecnt++] = strdup(buf);
- modifiedHost=1;
- }
- else if (strstr(inbuf,"ldapPort:") == inbuf) { /* Line starts with "ldapPort:" */
- PR_snprintf(buf, sizeof(buf), "ldapPort: %d\n", ldapPort);
- lines[linecnt++] = strdup(buf);
- modifiedPort=1;
- }
- else if ((strncasecmp(inbuf, "sie:", strlen("sie:")) == 0) &&
- (sieDN)) { /* Line starts with "sie:" */
- PR_snprintf(buf, sizeof(buf), "sie: %s\n", sieDN);
- lines[linecnt++] = strdup(buf);
- modifiedSIE=1;
- }
- else if ((strncasecmp(inbuf, "isie:", strlen("isie:")) == 0) &&
- (isieDN)) { /* Line starts with "isie:" */
- PR_snprintf(buf, sizeof(buf), "isie: %s\n", isieDN);
- lines[linecnt++] = strdup(buf);
- modifiedISIE=1;
- }
- else {
- lines[linecnt++] = strdup(inbuf);
- }
-
- }
- fclose(f);
-
- if (!modifiedHost) {
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_NO_LDAPHOST, "Parameter ldapHost: not found in adm.conf"), NULL, NULL);
- }
-
- if (!modifiedPort) {
- rpt_err(SYSTEM_ERROR, i18nMsg(DBT_NO_LDAPPORT, "Parameter ldapPort: not found in adm.conf"), NULL, NULL);
+ if (ldapURL) {
+ if (admldapSetDirectoryURL(admInfo, ldapURL)) {
+ char error_info[128];
+ PR_snprintf(error_info, sizeof(error_info),
+ i18nMsg(DBT_BAD_LDAPURL, "LDAP URL (%s) is invalid"), ldapURL);
+ rpt_err(SYSTEM_ERROR, error_info, NULL, NULL);
+ }
}
- if ((sieDN) && (!modifiedSIE)) {
+ if (sieDN && admldapSetSIEDN(admInfo, sieDN)) {
rpt_err(SYSTEM_ERROR, i18nMsg(DBT_NO_SIE, "Parameter sie: not found in adm.conf"), NULL, NULL);
}
- if ((isieDN) && (!modifiedISIE)) {
+ if (isieDN && admldapSetISIEDN(admInfo, isieDN)) {
rpt_err(SYSTEM_ERROR, i18nMsg(DBT_NO_ISIE, "Parameter isie: not found in adm.conf"), NULL, NULL);
}
- f = fopen(filename, "w");
- if (f==NULL) {
+ if (admldapWriteInfoFile(admInfo)) {
rpt_err(SYSTEM_ERROR, i18nMsg(DBT_OPEN_ADM_WR, "Can not open adm.conf for writing"), NULL, NULL);
}
-
- for (i=0; i < linecnt; i++) {
- fprintf(f, "%s", lines[i]);
- }
-
- fclose(f);
+ destroyAdmldap(admInfo);
}
Index: dsconfig.properties
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/dsconfig.properties,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- dsconfig.properties 18 Aug 2005 18:59:03 -0000 1.3
+++ dsconfig.properties 9 May 2007 00:26:30 -0000 1.4
@@ -29,19 +29,13 @@
dsconfig3 { "No data in QUERY_STRING environment variable" }
dsconfig4 { "No operation is defined" }
dsconfig5 { "Unknown Operation (%s)" }
-dsconfig6 { "Failed to read dbswitch.conf" }
-dsconfig7 { "Bad content/format of dbswitch.conf" }
-dsconfig8 { "Bad ldap url in dbswitch.conf" }
dsconfig9 { "Bad value for dsconfig.port" }
dsconfig10 { "No certificate database specified for LDAP/SSL usage!" }
dsconfig11 { "Cannot open certificate database for LDAP/SSL usage!" }
dsconfig12 { "Bad value for dsconfig.ssl" }
-dsconfig13 { "Can not open dbswitch.conf for reading" }
-dsconfig14 { "Dbhandle 'default' not found in dbswitch.conf" }
-dsconfig15 { "Can not open dbswitch.conf for writing" }
dsconfig16 { "Can not open adm.conf for reading" }
-dsconfig17 { "Parameter ldapHost: not found in adm.conf" }
-dsconfig18 { "Parameter ldapPort: not found in adm.conf" }
+dsconfig17 { "Parameter ldapurl: not found in adm.conf" }
+dsconfig18 { "LDAP URL (%s) is invalid" }
dsconfig19 { "Can not open adm.conf for writing" }
dsconfig20 { "Parameter sie: not found in adm.conf" }
dsconfig21 { "Parameter isie: not found in adm.conf" }
Index: getport.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/getport.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- getport.c 18 Aug 2005 18:59:03 -0000 1.4
+++ getport.c 9 May 2007 00:26:30 -0000 1.5
@@ -83,7 +83,7 @@
if (binddn) rv = ADM_GetCurrentPassword(&err, &bindpw);
/* Initialize the pset */
- rv = ADMSSL_InitSimple();
+ rv = ADMSSL_InitSimple(CONFIGDIR, SECURITYDIR);
if (rv) {
rpt_err(APP_ERROR, "SSL related initialization failed", NULL, NULL);
}
Index: help.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/help.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- help.c 11 May 2006 14:29:30 -0000 1.7
+++ help.c 9 May 2007 00:26:30 -0000 1.8
@@ -32,6 +32,7 @@
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
+#include <unistd.h>
#ifdef XP_UNIX
# include <dirent.h>
@@ -57,6 +58,8 @@
# define STRCASECMP _stricmp
#endif
+#include "config.h"
+
#define PATH_LENGTH 1024
#define DIR_ARG "helpdir"
#define TOKEN_ARG "token"
@@ -77,7 +80,8 @@
#define DOC_BLOCK "<document>"
#define DOCLIST_EBLOCK "</doclist>"
#define COMMENT_CHAR ';'
-#define BASE_DIR ".."
+#define BASE_DIR ".." /* for relative URLs */
+#define HELPSUBDIR "help" /* subdirectory of MANUALDIR */
#define TEST_DEPTH 10
#define DEFAULT_LANG "en"
@@ -237,6 +241,7 @@
char *getLocale() {
char *loc;
char path[PATH_LENGTH];
+ SYS_DIR *dir = NULL;
/* Go through the list of locales in the HTTP_ACCEPT_LANGUAGE
env var and check if at least one of them is available
@@ -244,21 +249,24 @@
loc = strtok(strdup(localeList), ",");
while (1){
if (loc) {
- safe_snprintf(path, sizeof(path), "%s%c%c%c", BASE_DIR, FILE_SEP, loc[0], loc[1]);
- if (dir_open(path)) {
+ safe_snprintf(path, sizeof(path), "%s%c%c%c", MANUALDIR, FILE_SEP, loc[0], loc[1]);
+ if ((dir = dir_open(path))) {
/* return only the first 2 characters of the language code e.g. return en for en-US */
loc[2] = '\0';
+ dir_close(dir);
return loc;
}
}
loc = strtok(NULL, ",");
if (!loc) {
/* default to English (en) */
- safe_snprintf(path, sizeof(path), "%s%c%s", BASE_DIR, FILE_SEP, DEFAULT_LANG);
- if (dir_open(path))
+ safe_snprintf(path, sizeof(path), "%s%c%s", MANUALDIR, FILE_SEP, DEFAULT_LANG);
+ if ((dir = dir_open(path))) {
+ dir_close(dir);
return DEFAULT_LANG;
- else
+ } else {
error_exit("No help available for any of the languages set for the browser");
+ }
}
}
}
@@ -280,17 +288,17 @@
/* Open the target file and return the contents */
- safe_snprintf(path, sizeof(path), "%s%c%s%c%s%c%s", BASE_DIR, FILE_SEP, locale, FILE_SEP,
+ safe_snprintf(path, sizeof(path), "%s%c%s%c%s%c%s", MANUALDIR, FILE_SEP, locale, FILE_SEP,
product, FILE_SEP, content);
if (!(file = fopen(path, "r")))
{
- safe_snprintf(path, sizeof(path), "unable to open file: %s", path);
+ safe_snprintf(base, sizeof(base), "unable to open file: %s", path);
if (debugPrintout)
{
- printf("%s<P>\n", path);
+ printf("%s<P>\n", base);
fflush( stdout );
}
- return error_exit(path);
+ return error_exit(base);
}
if (debugPrintout)
{
@@ -337,7 +345,7 @@
/* open a frameset file, either from the product dir, or the master file
* in the help dir. */
- safe_snprintf(path, sizeof(path), "%s%c%s%c%s%c%s", BASE_DIR, FILE_SEP, locale, FILE_SEP, product, FILE_SEP, FRAMESET_FILE);
+ safe_snprintf(path, sizeof(path), "%s%c%s%c%s%c%s", MANUALDIR, FILE_SEP, locale, FILE_SEP, product, FILE_SEP, FRAMESET_FILE);
if (debugPrintout)
{
printf("opening frameset file: %s<P>\n", path);
@@ -345,7 +353,7 @@
if (!(frameset = fopen(path, "r")))
{
/* product frameset failed, so try global one */
- safe_snprintf(path, sizeof(path), "%s", FRAMESET_FILE);
+ safe_snprintf(path, sizeof(path), "%s%c%s%c%s%c%s", MANUALDIR, FILE_SEP, HELPSUBDIR, FILE_SEP, FRAMESET_FILE);
if (!(frameset = fopen(path, "r")))
{
if (debugPrintout)
@@ -506,7 +514,7 @@
}
/* first, see if locale directory exists in its parent */
- safe_snprintf(path, sizeof(path), "%s", BASE_DIR);
+ safe_snprintf(path, sizeof(path), "%s", MANUALDIR);
if (!file_or_dir_exists(path, locale)) {
if (debugPrintout) {
printf( "No help files for locale [%s]<P>\n", locale?locale:"");
@@ -515,7 +523,7 @@
return error_exit("Failed to open help for locale.");
}
/* ok, locale directory is good, check product directory */
- safe_snprintf(path, sizeof(path), "%s%c%s", BASE_DIR, FILE_SEP, locale);
+ safe_snprintf(path, sizeof(path), "%s%c%s", MANUALDIR, FILE_SEP, locale);
if (!file_or_dir_exists(path, product)) {
if (debugPrintout) {
printf( "No help files for product [%s] in locale [%s]<P>\n", product?product:"", locale);
@@ -524,7 +532,7 @@
return error_exit("Failed to open help for given product.");
}
/* Ok, product directory exists, check for the mapfile */
- safe_snprintf(path, sizeof(path), "%s%c%s%c%s", BASE_DIR, FILE_SEP, locale,
+ safe_snprintf(path, sizeof(path), "%s%c%s%c%s", MANUALDIR, FILE_SEP, locale,
FILE_SEP, product);
if (!file_or_dir_exists(path, mapfile)) {
if (debugPrintout) {
@@ -533,7 +541,7 @@
}
return error_exit("Failed to open help for given product.");
}
- safe_snprintf(path, sizeof(path), "%s%c%s%c%s%c%s", BASE_DIR, FILE_SEP, locale,
+ safe_snprintf(path, sizeof(path), "%s%c%s%c%s%c%s", MANUALDIR, FILE_SEP, locale,
FILE_SEP, product?product:"", FILE_SEP, mapfile);
if (debugPrintout)
{
@@ -692,12 +700,15 @@
{
FILE *template;
char line[PATH_LENGTH];
- char base[50];
+ char base[PATH_MAX];
+ char library_file[PATH_MAX];
printf("Content-type: text/html\n\n");
/* open the library template file from the help dir. */
- if (!(template = fopen(LIBRARY_FILE, "r")))
+ safe_snprintf(library_file, sizeof(library_file), "%s%c%s%c%s", MANUALDIR, FILE_SEP,
+ HELPSUBDIR, FILE_SEP, LIBRARY_FILE);
+ if (!(template = fopen(library_file, "r")))
return error_exit("unable to open a valid library template file");
/* Spit the template file back out, except substitute the generate
@@ -735,7 +746,7 @@
*endp = '\0';
- safe_snprintf(base, sizeof(base), "%s%c%s", BASE_DIR, FILE_SEP, locale);
+ safe_snprintf(base, sizeof(base), "%s%c%s", MANUALDIR, FILE_SEP, locale);
check_directory(base, prefix, suffix, 0);
}
Index: htmladmin.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/htmladmin.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- htmladmin.c 11 May 2006 14:29:30 -0000 1.7
+++ htmladmin.c 9 May 2007 00:26:30 -0000 1.8
@@ -36,10 +36,11 @@
#include "libadmsslutil/admsslutil.h"
#include "libadmin/cluster.h"
#include "ldap.h"
-#include "ldapu.h"
#include <ldap_ssl.h>
#include "prnetdb.h"
#include "plstr.h"
+
+#include "config.h"
/*
properties file name = "htmladmin.properties"
@@ -139,7 +140,7 @@
char*
getResourceString(char *key) {
- return (char *)(res_getstring(i18nResource, key, acceptLanguage));
+ return (char *)(res_getstring(i18nResource, key, acceptLanguage, NULL, 0, NULL));
}
/*
@@ -156,7 +157,6 @@
#define SERVERGROUP_OBJTYPE "(|(objectclass=nsadmingroup)(objectclass=nslegacyadmingroup))"
#define SERVERGROUP_ATTR "nsadmingroupname"
-#define SERVERGROUP_SERVERROOT_ATTR "nsconfigroot"
#define ISIE_OBJTYPE "(|(objectclass=nsapplication)(objectclass=nslegacyapplication))"
#define ISIE_PRODNAME_ATTR "nsproductname"
@@ -164,7 +164,6 @@
#define SIE_OBJTYPE "(|(objectclass=netscapeserver)(objectclass=nslegacyserver))"
#define SIE_SERVERID_ATTR "nsserverid"
-#define SIE_SERVERROOT_ATTR "serverroot"
#define ADMIN_OBJTYPE "(|(objectclass=nsadminserver)(objectclass=nslegacyadminserver))"
#define ADMIN_HOST "serverhostname"
@@ -317,22 +316,16 @@
* Get the AdmldapInfo struct for ldap SDK API.
*/
-AdmldapInfo get_adm_ldapinfo() {
+AdmldapInfo get_adm_ldapinfo(const char *configdir, const char *securitydir) {
AdmldapInfo ldapInfo = NULL;
int rv;
- char admroot[BIG_LINE];
-
- PR_snprintf(admroot, BIG_LINE, "%s%cadmin-serv%cconfig",
- getenv("NETSITE_ROOT"),
- FILE_PATHSEP,
- FILE_PATHSEP);
- ldapInfo = admldapBuildInfo(admroot, &rv);
+ ldapInfo = admldapBuildInfo((char *)configdir, &rv);
if(!ldapInfo)
exit(0);
- rv = ADMSSL_InitSimple();
+ rv = ADMSSL_InitSimple((char *)configdir, (char *)securitydir, 0);
if(rv)
exit(0);
@@ -810,109 +803,34 @@
return server;
}
-
-/* NT ONLY
- for some reason admin server on NT has a thread pool of 1
- for cgi execution. This will cause the server to hang if
- a cgi tries to contect another cgi locate on the same server.
-
- This hack is added to resolve this problem for NT ONLY.
- Returns 1 if the host and port given belongs to the Admin Server spawning this CGI,
- 0 otherwise.
- */
-
-int is_local_admin(char *host, int port) {
-
- char localhost[NBUF_SIZE];
- int localport, is_local=0;
- char *endptr;
-
- FILE *f;
- char *admConf = PR_smprintf("%s%cadm.conf", getenv("ADMSERV_ROOT"), FILE_PATHSEP);
- localhost[0] = 0;
-
- /* get host name(FQDN) and port number from config file */
- f = fopen(admConf, "r");
- if (f!=NULL) {
- int lineno = 1;
- char *line = (char *)malloc(MAX_LEN);
- while (!admutil_getline(f, MAX_LEN, lineno, line)) {
- if (strstr(line,"port:") == line) {
- localport = strtol(strstr(line, " "), &endptr, 10);
- }
- if (strstr(line,"host:") == line) {
- PR_snprintf(localhost, sizeof(localhost), "%s", (strstr(line, " ")+1));
- }
- lineno++;
- }
- free(line);
- fclose(f);
- }
-
- is_local = ((localport == port) && !strcmp(localhost, host));
-
- PR_smprintf_free(admConf);
-
- return is_local;
-}
-
-
/* rate is specified in seconds */
-int get_topology_refresh_rate() {
+static int get_topology_refresh_rate(AdmldapInfo admInfo) {
- char *endptr;
+ char *val = NULL;
+ char *endptr = NULL;
int rate = 300;
-
- FILE *f;
- char *admConf = PR_smprintf("%s%cadm.conf", getenv("ADMSERV_ROOT"), FILE_PATHSEP);
-
- /* get host name(FQDN) and port number from config file */
- f = fopen(admConf, "r");
- if (f!=NULL) {
- int lineno = 1;
- char *line = (char *)malloc(MAX_LEN);
- while (!admutil_getline(f, MAX_LEN, lineno, line)) {
- if (strstr(line,"ExpressRefreshRate:") == line) {
- rate = strtol(strstr(line, " "), &endptr, 10);
- }
- lineno++;
- }
- free(line);
- fclose(f);
- }
- PR_smprintf_free(admConf);
+ if (val = admldapGetExpressRefreshRate(admInfo)) {
+ rate = strtol(val, &endptr, 10);
+ PL_strfree(val);
+ }
return rate;
}
/* rate is specified in seconds */
-int get_cgi_timeout_rate() {
+static int get_cgi_timeout_rate(AdmldapInfo admInfo) {
- char *endptr;
+ char *endptr = NULL;
+ char *val = NULL;
int rate = 60;
- FILE *f;
- char *admConf = PR_smprintf("%s%cadm.conf", getenv("ADMSERV_ROOT"), FILE_PATHSEP);
-
- /* get host name(FQDN) and port number from config file */
- f = fopen(admConf, "r");
- if (f!=NULL) {
- int lineno = 1;
- char *line = (char *)malloc(MAX_LEN);
- while (!admutil_getline(f, MAX_LEN, lineno, line)) {
- if (strstr(line,"ExpressCGITimeout:") == line) {
- rate = strtol(strstr(line, " "), &endptr, 10);
- }
- lineno++;
- }
- free(line);
- fclose(f);
+ if (val = admldapGetExpressCGITimeout(admInfo)) {
+ rate = strtol(val, &endptr, 10);
+ PL_strfree(val);
}
- PR_smprintf_free(admConf);
-
return rate;
}
@@ -961,92 +879,6 @@
}
-
-char *AS_dirs(LDAP *server, LDAPMessage *sie_entry) {
-
- char *ptr, *accesslog, *errorlog;
- char dirs[BIG_LINE];
- int ldapError;
-
- char **vals;
-
- LDAPMessage *sieconf_entry, *sieconf_result;
-
- if((ldapError = ldap_search_s(server, ldap_get_dn(server, sie_entry), LDAP_SCOPE_SUBTREE,
- ADMINCONF_OBJTYPE, NULL, 0, &sieconf_result)) != LDAP_SUCCESS)
- return NULL;
- sieconf_entry = ldap_first_entry(server, sieconf_result);
-
- if((vals = ldap_get_values(server, sieconf_entry, ADMINCONF_ACCESSLOG)) != NULL) {
- accesslog = strdup(vals[0]);
- ptr = strrchr(accesslog, FILE_PATHSEP);
- ptr[0] = '\0';
- ldap_value_free(vals);
- }
-
- if((vals = ldap_get_values(server, sieconf_entry, ADMINCONF_ERRORLOG)) != NULL) {
- errorlog = strdup(vals[0]);
- ptr = strrchr(errorlog, FILE_PATHSEP);
- ptr[0] = '\0';
- ldap_value_free(vals);
- }
-
- if(accesslog && errorlog && strcmp(accesslog, errorlog))
- PR_snprintf(dirs, sizeof(dirs), "%s|%s", accesslog, errorlog);
- else if(accesslog)
- PL_strncpyz(dirs, accesslog, sizeof(dirs));
- else if(errorlog)
- PL_strncpyz(dirs, errorlog, sizeof(dirs));
- else
- PR_snprintf(dirs, sizeof(dirs), "admin-serv%clogs", FILE_PATHSEP);
-
- return strdup(dirs);
-}
-
-
-
-char *MS_dirs(LDAP *server, LDAPMessage *sie_entry, char *serverroot) {
-
- char *ptr;
- char *dirs = NULL;
- int ldapError;
-
- char **vals;
-
- LDAPMessage *sieconf_entry, *sieconf_result;
-
- if(!serverroot)
- return NULL;
-
- if((ldapError = ldap_search_s(server, ldap_get_dn(server, sie_entry), LDAP_SCOPE_SUBTREE,
- MSGCONF_OBJTYPE, NULL, 0, &sieconf_result)) != LDAP_SUCCESS)
- return NULL;
-
- for(sieconf_entry = ldap_first_entry(server, sieconf_result);
- sieconf_entry != NULL;
- sieconf_entry = ldap_next_entry(server, sieconf_entry)) {
-
- if((vals = ldap_get_values(server, sieconf_entry, MSGCONF_LOGDIR)) != NULL) {
- ptr = strstr(vals[0], serverroot);
- ptr = &(ptr[strlen(serverroot)+1]);
-
- if(!dirs)
- dirs = strdup(ptr);
- else {
- dirs = (char *)realloc(dirs, (strlen(dirs) + strlen(ptr) + 1));
- sprintf(dirs, "%s|%s", dirs, ptr);
- }
- ldap_value_free(vals);
- }
- }
-
- if(dirs)
- return strdup(dirs);
- else
- return NULL;
-}
-
-
int output_topology(AdmldapInfo ldapInfo,
char *binddn,
char *bindpw,
@@ -1069,7 +901,6 @@
char viewparam[BIG_LINE];
char **view_list;
- char *serverroot = NULL;
int first_servergroup;
int legacy;
@@ -1177,16 +1008,6 @@
}
else
return -1;
-
- /* get the server root (might be needed for log viewer CGI) */
-
- if(serverroot)
- free(serverroot);
- serverroot = NULL;
- if((vals = ldap_get_values(server, servergroup_entry, SERVERGROUP_SERVERROOT_ATTR)) != NULL) {
- serverroot = strdup(vals[0]);
- ldap_value_free(vals);
- }
/* ISIE */
@@ -1301,36 +1122,18 @@
/* directories to pass info log CGI based on product */
if(strstr(ldap_get_dn(server, sie_entry), "Administration")) {
- /* Admin Server - get from DS */
- char *dirs = AS_dirs(server, sie_entry);
- if(dirs) {
-
-
-
- running = server_status(server_host, server_port[0]);
- if(running == 1) {
- if(is_local_admin(server_host, server_port[0])) {
-
- /* if this ever changes, use PR_smprintf instead of malloc + sprintf */
- href = (char *)malloc(strlen(getResourceString(DBT_OUTPUT_TOPOLOGY_LOCAL_SERVER_ENTRY)) +
- strlen(admin_url) + 1);
- sprintf(href,
- (const char*)getResourceString(DBT_OUTPUT_TOPOLOGY_LOCAL_SERVER_ENTRY),
- admin_url);
- }
- else {
-
- /* if this ever changes, use PR_smprintf instead of malloc + sprintf */
- href = (char *)malloc(strlen(getResourceString(DBT_OUTPUT_TOPOLOGY_SERVER_ENTRY)) +
- strlen(htmladmin_strdup_escaped(ldap_get_dn(server, sie_entry))) +
- (view ? strlen(viewparam) : 0) +
- 1);
- sprintf(href,
- getResourceString(DBT_OUTPUT_TOPOLOGY_SERVER_ENTRY),
- htmladmin_strdup_escaped(ldap_get_dn(server, sie_entry)),
- view ? viewparam : "");
- }
- }
+ running = server_status(server_host, server_port[0]);
+ if(running == 1) {
+ /* if this ever changes, use PR_smprintf instead of malloc + sprintf */
+ href = (char *)malloc(strlen(getResourceString(DBT_OUTPUT_TOPOLOGY_SERVER_ENTRY)) +
+ strlen(htmladmin_strdup_escaped(ldap_get_dn(server, sie_entry))) +
+ (view ? strlen(viewparam) : 0) +
+ 1);
+ sprintf(href,
+ getResourceString(DBT_OUTPUT_TOPOLOGY_SERVER_ENTRY),
+ htmladmin_strdup_escaped(ldap_get_dn(server, sie_entry)),
+ view ? viewparam : "");
+ }
/* if this ever changes, use PR_smprintf instead of malloc + sprintf */
@@ -1342,12 +1145,11 @@
/* if this ever changes, use PR_smprintf instead of malloc + sprintf */
- log_link = (char *)malloc(strlen(getResourceString(DBT_OUTPUT_TOPOLOGY_ADMIN_LOG_LINK)) + strlen(admin_url) + strlen(htmladmin_strdup_escaped(vals[0])) + strlen(htmladmin_strdup_escaped(dirs)) + 2);
+ log_link = (char *)malloc(strlen(getResourceString(DBT_OUTPUT_TOPOLOGY_ADMIN_LOG_LINK)) + strlen(admin_url) + strlen(htmladmin_strdup_escaped(vals[0])) + 2);
sprintf(log_link,
(const char*)getResourceString(DBT_OUTPUT_TOPOLOGY_ADMIN_LOG_LINK),
admin_url,
- htmladmin_strdup_escaped(vals[0]),
- htmladmin_strdup_escaped(dirs));
+ htmladmin_strdup_escaped(vals[0]));
fprintf(stdout,
(const char*)getResourceString(DBT_OUTPUT_TOPOLOGY_STATUS),
@@ -1356,7 +1158,6 @@
(running == 1) ? getResourceString(DBT_OUTPUT_TOPOLOGY_ON) : ((running == -1) ? getResourceString(DBT_OUTPUT_TOPOLOGY_UNKNOWN) : getResourceString(DBT_OUTPUT_TOPOLOGY_OFF)),
(running == 1) ? href : "");
- }
}
else if(strstr(ldap_get_dn(server, sie_entry), "Directory")) {
char *repl_link;
@@ -1403,13 +1204,12 @@
htmladmin_strdup_escaped(vals[0]));
/* if this ever changes, use PR_smprintf instead of malloc + sprintf */
- repl_link = (char *)malloc(strlen(getResourceString(DBT_OUTPUT_TOPOLOGY_DIRECTORY_REPL_LINK)) + strlen(admin_url)*2 + strlen(htmladmin_strdup_escaped(host)) + strlen(getenv("NETSITE_ROOT")) + /*space for port num*/ 12);
+ repl_link = (char *)malloc(strlen(getResourceString(DBT_OUTPUT_TOPOLOGY_DIRECTORY_REPL_LINK)) + strlen(admin_url)*2 + strlen(htmladmin_strdup_escaped(host)) + /*space for port num*/ 12);
sprintf(repl_link, (const char*)getResourceString(DBT_OUTPUT_TOPOLOGY_DIRECTORY_REPL_LINK),
admin_url,
htmladmin_strdup_escaped(host),
server_port[0],
- admin_url,
- getenv("NETSITE_ROOT"));
+ admin_url);
fprintf(stdout,
(const char*)getResourceString(DBT_OUTPUT_TOPOLOGY_STATUS_WITH_REPL),
@@ -1501,7 +1301,7 @@
admin_url,
htmladmin_strdup_escaped(ldap_get_dn(server, sie_entry)));
- log_link = (char *)malloc(strlen(getResourceString(DBT_OUTPUT_TOPOLOGY_CMS_LOG_LINK)) + strlen(admin_url) + strlen(htmladmin_strdup_escaped(ldap_get_dn(server, sie_entry))) + 2);
+ log_link = (char *)malloc(strlen(getResourceString(DBT_OUTPUT_TOPOLOGY_CMS_LOG_LINK)) + strlen(admin_url) + strlen(htmladmin_strdup_escaped(vals[0])) + 2);
sprintf(log_link, (const char*)getResourceString(DBT_OUTPUT_TOPOLOGY_CMS_LOG_LINK),
admin_url,
htmladmin_strdup_escaped(vals[0]));
@@ -1544,7 +1344,7 @@
char *bindpw,
char *serverid,
char *service,
- char *serverroot) {
+ AdmldapInfo ldapInfo) {
PRFileDesc *sockd;
char *admin_host = NULL;
@@ -1593,10 +1393,7 @@
if(!strncmp(serverid, "cert-", 5)) {
int content_length;
- if(!serverroot)
- return;
-
- content_length = strlen("serverRoot=&instanceID=") + strlen(serverroot) + strlen(serverid) - 5;
+ content_length = strlen("instanceID=") + strlen(serverid) - 5;
/* minus "cert-" */
/* start a CMS server - why the heck does it need all these parameters ?!?! */
@@ -1607,7 +1404,6 @@
strlen(admin_port) +
strlen((char *)auth) +
5 + /* can't be >5 digits for content length */
- strlen(htmladmin_strdup_escaped(serverroot)) +
strlen(htmladmin_strdup_escaped(serverid)) +
3); /* space + 2 newline characters */
@@ -1617,7 +1413,6 @@
atoi(admin_port),
(char *)auth,
content_length,
- htmladmin_strdup_escaped(serverroot),
htmladmin_strdup_escaped(&(serverid[5]))); /* takes everything after "cert-" */
}
else {
@@ -1634,9 +1429,9 @@
}
if(strstr(admin_url, "https")) {
- sockd = make_http_request("https", admin_host, atoi(admin_port), request, get_cgi_timeout_rate(), &errorcode);
+ sockd = make_http_request("https", admin_host, atoi(admin_port), request, get_cgi_timeout_rate(ldapInfo), &errorcode);
} else {
- sockd = make_http_request("http", admin_host, atoi(admin_port), request, get_cgi_timeout_rate(), &errorcode);
+ sockd = make_http_request("http", admin_host, atoi(admin_port), request, get_cgi_timeout_rate(ldapInfo), &errorcode);
}
@@ -1658,7 +1453,7 @@
char *bindpw,
char *serverid,
char *service,
- char *serverroot) {
+ AdmldapInfo ldapInfo) {
PRFileDesc *sockd;
char *admin_host = NULL;
@@ -1708,10 +1503,7 @@
if(!strncmp(serverid, "cert-", 5)) {
int content_length;
- if(!serverroot)
- return;
-
- content_length = strlen("serverRoot=&instanceID=") + strlen(serverroot) + strlen(serverid) - 5;
+ content_length = strlen("instanceID=") + strlen(serverid) - 5;
/* minus "cert-" */
/* stop a CMS server - why the heck does it need all these parameters ?!?! */
@@ -1722,7 +1514,6 @@
strlen(admin_port) +
strlen((char *)auth) +
5 + /* can't be >10 digits for content length */
- strlen(htmladmin_strdup_escaped(serverroot)) +
strlen(htmladmin_strdup_escaped(serverid)) +
3); /* space + 2 newline characters */
@@ -1733,7 +1524,6 @@
atoi(admin_port),
(char *)auth,
content_length,
- htmladmin_strdup_escaped(serverroot),
htmladmin_strdup_escaped(&(serverid[5]))); /* takes everything after "cert-" */
}
else {
@@ -1751,9 +1541,9 @@
}
if(strstr(admin_url, "https")) {
- sockd = make_http_request("https", admin_host, atoi(admin_port), request, get_cgi_timeout_rate(), &errorcode);
+ sockd = make_http_request("https", admin_host, atoi(admin_port), request, get_cgi_timeout_rate(ldapInfo), &errorcode);
} else {
- sockd = make_http_request("http", admin_host, atoi(admin_port), request, get_cgi_timeout_rate(), &errorcode);
+ sockd = make_http_request("http", admin_host, atoi(admin_port), request, get_cgi_timeout_rate(ldapInfo), &errorcode);
}
if (sockd == NULL) {
@@ -1788,8 +1578,7 @@
int rv;
- PR_snprintf(line, sizeof(line), "%s%cbin/admin/admin/bin/property", getenv("NETSITE_ROOT"), FILE_PATHSEP);
- i18nResource = res_init_resource(line, RESOURCE_FILE);
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
acceptLanguage = "en";
if (lang) acceptLanguage = strdup(lang);
@@ -1798,7 +1587,7 @@
fprintf(stdout, getResourceString(DBT_MAIN_CONTENT_TYPE));
- if(!strcmp(m, "GET")) {
+ if(m && !strcmp(m, "GET")) {
get_begin(qs);
@@ -1854,7 +1643,7 @@
int i;
int found;
- ldapInfo = get_adm_ldapinfo();
+ ldapInfo = get_adm_ldapinfo(CONFIGDIR, SECURITYDIR);
if(!get_bindinfo(&binddn, &bindpw))
exit(0);
@@ -1898,10 +1687,11 @@
*/
+ ldapInfo = get_adm_ldapinfo(CONFIGDIR, SECURITYDIR);
+
fprintf(stdout, getResourceString(DBT_MAIN_TOPOLOGY_HEADER),
- get_topology_refresh_rate(), view ? viewparam : "");
+ get_topology_refresh_rate(ldapInfo), view ? viewparam : "");
- ldapInfo = get_adm_ldapinfo();
if(!get_bindinfo(&binddn, &bindpw))
exit(0);
@@ -1918,7 +1708,6 @@
char *service = NULL;
char *admin_url;
char **serverid;
- char **serverroot;
char *sie;
int count, max_count;
@@ -1947,8 +1736,6 @@
if((serverid = ldap_get_values(server, sie_entry, SIE_SERVERID_ATTR)) == NULL)
goto output_topology;
- serverroot = ldap_get_values(server, sie_entry, SIE_SERVERROOT_ATTR);
-
if(!get_host_and_port(server, sie, sie_entry, &host, &ports))
goto output_topology;
@@ -1958,12 +1745,12 @@
goto output_topology;
count=0;
- max_count=get_cgi_timeout_rate()/SERVER_PING_RATE;
+ max_count=get_cgi_timeout_rate(ldapInfo)/SERVER_PING_RATE;
rv = server_status(host, active_port);
if(rv == 1) {
/* Server's running, shut it down */
- stop_server(admin_url, binddn, bindpw, serverid[0], service, serverroot ? serverroot[0] : NULL);
+ stop_server(admin_url, binddn, bindpw, serverid[0], service, ldapInfo);
while((server_status(host, active_port) == 1) && (count < max_count)) {
sleep(SERVER_PING_RATE);
count++;
@@ -1978,7 +1765,8 @@
}
else if((rv == 0) && (!strstr(sie, "Administration"))) {
/* Server's down, start it up (except for Admin Servers) */
- start_server(admin_url, binddn, bindpw, serverid[0], service, serverroot ? serverroot[0] : NULL);
+ start_server(admin_url, binddn, bindpw, serverid[0], service,
+ ldapInfo);
while((server_status(host, active_port) == 0) && (count < max_count)) {
sleep(SERVER_PING_RATE);
count++;
Index: htmladmin.properties
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/htmladmin.properties,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- htmladmin.properties 2 Nov 2005 01:15:17 -0000 1.5
+++ htmladmin.properties 9 May 2007 00:26:30 -0000 1.6
@@ -53,12 +53,12 @@
htmladmin31 { "</HTML>\n" }
//#/* html resource string - stop_server()*/
htmladmin40 { "GET /%s/tasks/operation/cgi_service?cmd=stop&object=|service|%s HTTP/1.0\nAuthorization: Basic %s\n\n" }
-htmladmin41 { "POST /%s/tasks/operation/Stop HTTP/1.0\nHost: %s:%d\nAuthorization: Basic %s\nContent-length: %d\nContent-Type: application/x-www-form-urlencoded\n\nserverRoot=%s&instanceID=%s\n\n" }
+htmladmin41 { "POST /%s/tasks/operation/Stop HTTP/1.0\nHost: %s:%d\nAuthorization: Basic %s\nContent-length: %d\nContent-Type: application/x-www-form-urlencoded\n\ninstanceID=%s\n\n" }
htmladmin42 { "GET /%s/tasks/operation/Stop HTTP/1.0\nAuthorization: Basic %s\n\n" }
htmladmin43 { "<H2>Server Error</H2>\n<p>The server could not be stopped. Please reload the page and check the error logs for more details." }
//#/* html resource string - start_server()*/
htmladmin50 { "GET /%s/tasks/operation/cgi_service?cmd=start&object=|service|%s HTTP/1.0\nAuthorization: Basic %s\n\n" }
-htmladmin51 { "POST /%s/tasks/operation/Start HTTP/1.0\nHost: %s:%d\nAuthorization: Basic %s\nContent-length: %d\nContent-Type: application/x-www-form-urlencoded\n\nserverRoot=%s&instanceID=%s\n\n" }
+htmladmin51 { "POST /%s/tasks/operation/Start HTTP/1.0\nHost: %s:%d\nAuthorization: Basic %s\nContent-length: %d\nContent-Type: application/x-www-form-urlencoded\n\ninstanceID=%s\n\n" }
htmladmin52 { "GET /%s/tasks/operation/Start HTTP/1.0\nAuthorization: Basic %s\n\n" }
htmladmin53 { "<H2>Server Error</H2>\n<p>The server could not be started. Please reload the page and check the error logs for more details." }
//#/* html resource string - output_topology() */
@@ -73,7 +73,7 @@
htmladmin68 { " <A HREF=\"%s/admin-serv/tasks/operation/Stop?return_format=html\" onclick=\"return confirm_admin_stop()\"><IMG SRC=\"../icons/togon.gif\" border=0 align=ABSCENTER></A>" }
htmladmin69 { " <A HREF=\"HTMLAdmin?op=serveractivate&obj=%s%s\" onclick=\"return confirm_admin_stop()\"><IMG SRC=\"../icons/togon.gif\" border=0 align=ABSCENTER></A>" }
htmladmin70 { "<A HREF=\"%s/admin-serv/tasks/configuration/ViewData?sie=%s\" target=\"main\">Server Info</A> <font color=\"#FFFFFF\">|</font>\n" }
-htmladmin71 { "<A HREF=\"%s/admin-serv/tasks/configuration/ViewLog?id=%s&directories=%s\" target=\"main\">Logs</A> <font color=\"#FFFFFF\">|</font>\n" }
+htmladmin71 { "<A HREF=\"%s/admin-serv/tasks/configuration/ViewLog?id=%s\" target=\"main\">Logs</A> <font color=\"#FFFFFF\">|</font>\n" }
htmladmin72 { "<font face=\"Helvetica, Arial, Sans-serif\"><font size=-1>%s%s Status=<b>%s</b>%s</font></font>\n\n" }
htmladmin73 { "On" }
htmladmin74 { "Off" }
@@ -83,7 +83,7 @@
htmladmin78 { "<A HREF=\"%s/admin-serv/tasks/configuration/ViewData?sie=%s\" target=\"main\">Server Info</A> <font color=\"#FFFFFF\">|</font>\n" }
htmladmin79 { "<A HREF=\"%s/admin-serv/tasks/configuration/ViewLog?id=%s\" target=\"main\">Logs</A> <font color=\"#FFFFFF\">|</font>\n" }
htmladmin80 { "<A HREF=\"%s/admin-serv/tasks/configuration/ViewData?sie=%s\" target=\"main\">Server Info</A> <font color=\"#FFFFFF\">|</font>\n" }
-htmladmin81 { "<A HREF=\"%s/admin-serv/tasks/configuration/ViewLog?id=%s&directories=%s\" target=\"main\">Logs</A>\n" }
+htmladmin81 { "<A HREF=\"%s/admin-serv/tasks/configuration/ViewLog?id=%s\" target=\"main\">Logs</A>\n" }
htmladmin82 { "<font face=\"Helvetica, Arial, Sans-serif\"><font size=-1>%s%s</font></font>\n\n" }
htmladmin83 { "<tr>\n<td>\n<table BORDER=0 CELLSPACING=0 CELLPADDING=0>\n<tr>\n<td><img src=\"../icons/16space.gif\" BORDER=0 height=16 width=64></td>\n\n<td>\n<table BORDER=0 CELLSPACING=0 CELLPADDING=0 COLS=1 WIDTH=\"100%%\">\n<tr>\n<td><font face=\"Helvetica, Arial, Sans-serif\"><font size=-1><b><font color=\"#666699\">*</font></b>b <b>%s</b></font></font></td>\n</tr>\n</table>\n</td>\n\n" }
htmladmin84 { " <A HREF=\"HTMLAdmin?op=serveractivate&obj=%s%s\" onclick=\"return confirm_stop()\"><IMG SRC=\"../icons/togon.gif\" border=0 align=ABSCENTER></A>" }
@@ -100,9 +100,9 @@
htmladmin95 { " <A HREF=\"HTMLAdmin?op=serveractivate&obj=%s%s\" onclick=\"return confirm_stop()\"><IMG SRC=\"../icons/togon.gif\" border=0 align=ABSCENTER></A>" }
htmladmin96 { " <A HREF=\"HTMLAdmin?op=serveractivate&obj=%s%s\"><IMG SRC=\"../icons/togoff.gif\" border=0 align=ABSCENTER></A>" }
htmladmin97 { "<td><font face=\"Helvetica, Arial, Sans-serif\"><font size=-1><A HREF=\"%s/admin-serv/tasks/configuration/ViewData?sie=%s\" target=\"main\">Server Info</A> <font color=\"#FFFFFF\">|</font></font></font></td>\n" }
-htmladmin98 { "<td><font face=\"Helvetica, Arial, Sans-serif\"><font size=-1><A HREF=\"%s/admin-serv/tasks/configuration/ViewLog?id=%s&directories=%s%clogs\" target=\"main\">Logs</A> <font color=\"#FFFFFF\">|</font></font></font></td>\n" }
+htmladmin98 { "<td><font face=\"Helvetica, Arial, Sans-serif\"><font size=-1><A HREF=\"%s/admin-serv/tasks/configuration/ViewLog?id=%s\" target=\"main\">Logs</A> <font color=\"#FFFFFF\">|</font></font></font></td>\n" }
htmladmin99 { "</p>\n</td>\n</tr>\n\n" }
htmladmin100 { "<font face=\"Helvetica, Arial, Sans-serif\"><font size=-1>%s%s%s Status=<b>%s</b>%s</font></font>\n\n" }
-htmladmin101 { "<A HREF=\"%s/admin-serv/tasks/configuration/MonReplication?servhost=%s&servport=%d&admurl=%s&siteroot=%s\" target=\"main\">Replication Status</A> <font color=\"#FFFFFF\">|</font>\n" }
+htmladmin101 { "<A HREF=\"%s/admin-serv/tasks/configuration/MonReplication?servhost=%s&servport=%d&admurl=%s\" target=\"main\">Replication Status</A> <font color=\"#FFFFFF\">|</font>\n" }
}
Index: mergeConfig.cpp
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/mergeConfig.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- mergeConfig.cpp 31 Mar 2006 22:58:20 -0000 1.5
+++ mergeConfig.cpp 9 May 2007 00:26:30 -0000 1.6
@@ -35,9 +35,10 @@
#include "libadmsslutil/psetcssl.h"
#include "libadmsslutil/admsslutil.h"
#include "libadminutil/resource.h"
-#include "ldapu.h"
+#include "setuputil/ldapu.h"
#include <ldap_ssl.h>
+#include "config.h"
/*
properties file name = "mergeConfig.properties"
@@ -74,7 +75,8 @@
char*
getResourceString(char *key) {
- return (char *)(res_getstring(i18nResource, key, acceptLanguage));
+ static char buf[BUFSIZ]; /* ok - not threaded code */
+ return (char *)(res_getstring(i18nResource, key, acceptLanguage, buf, sizeof(buf), NULL));
}
@@ -774,8 +776,6 @@
char *method;
int rv;
- char admroot[BIG_LINE];
- char *server_root = NULL;
char error_info[BIG_LINE];
AdmldapInfo ldapInfo = NULL;
char line[BIG_LINE];
@@ -811,13 +811,10 @@
return 1;
if(!strcmp(method, "GET")) {
- server_root = getenv("NETSITE_ROOT");
-
/* ---------------------- INIT i18n ---------------------------------------- */
char *lang=getenv("HTTP_ACCEPT_LANGUAGE");
- PR_snprintf(line, sizeof(line), "%s%cbin/admin/admin/bin/property", server_root, FILE_PATHSEP);
- i18nResource = res_init_resource(line, RESOURCE_FILE);
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
acceptLanguage = "en";
if (lang) acceptLanguage = strdup(lang);
@@ -848,18 +845,13 @@
if (source_binddn) rv = ADM_GetCurrentPassword(&err, &source_bindpw);
- PR_snprintf(admroot, sizeof(admroot), "%s%cadmin-serv%cconfig",
- server_root,
- FILE_PATHSEP,
- FILE_PATHSEP);
-
- ldapInfo = admldapBuildInfo(admroot, &rv);
+ ldapInfo = admldapBuildInfo(CONFIGDIR, &rv);
if (!ldapInfo) {
rpt_err(INCORRECT_USAGE, getResourceString(DBT_INVALID_SOURCE_SR), NULL, NULL);
}
- rv = ADMSSL_InitSimple();
+ rv = ADMSSL_InitSimple(CONFIGDIR, SECURITYDIR, 0);
if (rv) {
PR_snprintf(error_info, sizeof(error_info), getResourceString(DBT_ADMSSL_INITFAIL), rv);
rpt_err(APP_ERROR, error_info, NULL, NULL);
Index: migrateConfig.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/migrateConfig.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- migrateConfig.c 31 Mar 2006 22:58:20 -0000 1.5
+++ migrateConfig.c 9 May 2007 00:26:30 -0000 1.6
@@ -60,8 +60,10 @@
#include "libadminutil/resource.h"
-static int update_adm_conf(char *newport);
-static int update_magnus_conf(char *newport);
+#include "config.h"
+
+static char msgbuf[BUFSIZ]; /* ok - not threaded code */
+
/*
properties file name = "config.properties"
*/
@@ -108,7 +110,6 @@
int stop;
int t;
char *oldSR = 0;
- char *newSR = getenv("NETSITE_ROOT");
char error_info[128];
PsetHndl pset;
char *method;
@@ -129,7 +130,7 @@
AttributeList resultList, updateList=NULL, addList=NULL;
AttrNameList nl;
AttributePtr nv;
- char resPath[256], buf[1024], cpcmd[1024], *execPath, *tmpptr;
+ char buf[1024], cpcmd[1024], *tmpptr;
const char *errMsg = NULL;
PRFileInfo fileInfo;
#if 0
@@ -138,12 +139,7 @@
while (waitforever);
#endif
- execPath = getcwd(resPath, 256);
- if (execPath) {
- PL_strncpyz(resPath, execPath, sizeof(resPath));
- PL_strcatn(resPath, sizeof(resPath), "/property");
- i18nResource = res_init_resource(resPath, RESOURCE_FILE);
- }
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
if (lang) acceptLanguage = strdup(lang);
@@ -154,7 +150,8 @@
if (!method || !*method) {
/* non UI CGI */
if (i18nResource &&
- (errMsg = res_getstring(i18nResource, DBT_NO_METHOD, acceptLanguage)))
+ (errMsg = res_getstring(i18nResource, DBT_NO_METHOD, acceptLanguage,
+ msgbuf, sizeof(msgbuf), NULL)))
rpt_err(SYSTEM_ERROR, errMsg, NULL, NULL);
else rpt_err(SYSTEM_ERROR, "No method is specified", NULL, NULL);
}
@@ -166,7 +163,7 @@
if (i18nResource &&
(errMsg = res_getstring(i18nResource,
DBT_NO_QUERY_STRING,
- acceptLanguage)))
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL)))
rpt_err(INCORRECT_USAGE, errMsg, NULL, NULL);
else rpt_err(INCORRECT_USAGE, "NO QUERY_STRING DATA", NULL, NULL);
}
@@ -181,7 +178,7 @@
if (i18nResource &&
(errMsg = res_getstring(i18nResource,
DBT_UNKNOWN_METHOD,
- acceptLanguage)))
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL)))
PR_snprintf(error_info, sizeof(error_info), errMsg, method);
else PR_snprintf(error_info, sizeof(error_info), "Unknown Method (%s)", method);
rpt_err(INCORRECT_USAGE, error_info, NULL, NULL);
@@ -196,7 +193,7 @@
if (i18nResource &&
(errMsg = res_getstring(i18nResource,
DBT_NO_USER_NAME,
- acceptLanguage)))
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL)))
rpt_err(ELEM_MISSING, errMsg, NULL, NULL);
else rpt_err(ELEM_MISSING, "NO USER NAME", NULL, NULL);
}
@@ -208,7 +205,7 @@
if (i18nResource &&
(errMsg = res_getstring(i18nResource,
DBT_NO_USER_DN,
- acceptLanguage)))
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL)))
rpt_err(ELEM_MISSING,errMsg, NULL, NULL);
else rpt_err(ELEM_MISSING, "NO USER DN!", NULL, NULL);
}
@@ -221,7 +218,7 @@
if (i18nResource &&
(errMsg = res_getstring(i18nResource,
DBT_NO_USER_DN,
- acceptLanguage)))
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL)))
rpt_err(ELEM_MISSING, errMsg, NULL, NULL);
else rpt_err(ELEM_MISSING, "NO USER DN!", NULL, NULL);
}
@@ -229,12 +226,12 @@
}
if (binddn) rv = ADM_GetCurrentPassword(&err, &bindpw);
- rv = ADMSSL_InitSimple();
+ rv = ADMSSL_InitSimple(CONFIGDIR, SECURITYDIR);
if (rv) {
if (i18nResource &&
(errMsg = res_getstring(i18nResource,
DBT_SSL_INIT_ERROR,
- acceptLanguage)))
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL)))
rpt_err(APP_ERROR, errMsg, NULL, NULL);
else rpt_err(APP_ERROR, "SSL related initialization failed", NULL, NULL);
}
@@ -242,7 +239,7 @@
/* Initialize the pset */
pset = psetCreateSSL("admin-serv",
- /* configRoot */ NULL,
+ /* configRoot */ CONFIGDIR,
/* userDN */ binddn,
/* passwd */ bindpw,
/* errorcode */ &rv);
@@ -251,11 +248,11 @@
PR_snprintf(error_info, sizeof(error_info),
"PSET_ERROR_NUMBER: %d\nPSET_ERROR_INFO: %s",
rv,
- psetErrorString(rv, NULL));
+ psetErrorString(rv, NULL, msgbuf, sizeof(msgbuf), NULL));
if (i18nResource &&
(errMsg = res_getstring(i18nResource,
DBT_PSET_CREATE_ERROR,
- acceptLanguage)))
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL)))
rpt_err(APP_ERROR, errMsg, NULL, error_info);
else rpt_err(APP_ERROR, "PSET Creation Failed", NULL, error_info);
}
@@ -270,7 +267,7 @@
if (i18nResource &&
(errMsg = res_getstring(i18nResource,
DBT_NO_OLD_SERVER_ROOT,
- acceptLanguage)))
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL)))
rpt_err(INCORRECT_USAGE, errMsg, NULL, NULL);
else rpt_err(INCORRECT_USAGE, "No old server root specified", NULL, NULL);
}
@@ -282,7 +279,7 @@
if (i18nResource &&
(errMsg = res_getstring(i18nResource,
DBT_ERROR_OPEN_FILE,
- acceptLanguage)))
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL)))
PR_snprintf(error_info, sizeof(error_info), errMsg, fileName);
else PR_snprintf(error_info, sizeof(error_info), "Error open file: %s", fileName);
rpt_err(SYSTEM_ERROR, error_info, NULL, NULL);
@@ -302,7 +299,7 @@
if (i18nResource &&
(errMsg = res_getstring(i18nResource,
DBT_ERROR_OPEN_FILE,
- acceptLanguage)))
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL)))
PR_snprintf(error_info, sizeof(error_info), errMsg, fileName);
else PR_snprintf(error_info, sizeof(error_info), "Error reading file: %s", fileName);
rpt_err(SYSTEM_ERROR, error_info, NULL, NULL);
@@ -332,19 +329,6 @@
addSingleValueAttribute(updateList, i++, nameptr, valptr);
}
if (!PL_strcmp(nameptr, "configuration.nsServerPort")) {
- err = update_adm_conf(valptr);
- if(err >= 0)
- err = update_magnus_conf(valptr);
- if (err < 0) {
- psetDelete(pset);
- if (i18nResource &&
- (errMsg = res_getstring(i18nResource,
- DBT_ERROR_OPEN_FILE,
- acceptLanguage)))
- PR_snprintf(error_info, sizeof(error_info), errMsg, "adm.conf");
- else PR_snprintf(error_info, sizeof(error_info), "Error open file: adm.conf");
- rpt_err(SYSTEM_ERROR, error_info, NULL, NULL);
- }
val = psetGetAttrSingleValue(pset, "adminurl", &errorCode);
if (val) {
char urlBuf[256];
@@ -371,11 +355,11 @@
PR_snprintf(error_info, sizeof(error_info),
"PSET_ERROR_NUMBER: %d\nPSET_ERROR_INFO: %s\n",
errorCode,
- psetErrorString(errorCode, NULL));
+ psetErrorString(errorCode, NULL, msgbuf, sizeof(msgbuf), NULL));
if (i18nResource &&
(errMsg = res_getstring(i18nResource,
DBT_PSET_SET_ERROR,
- acceptLanguage)))
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL)))
rpt_err(APP_ERROR, errMsg, NULL, error_info);
else rpt_err(APP_ERROR, "PSET Set Failed", NULL, error_info);
}
@@ -390,11 +374,11 @@
PR_snprintf(error_info, sizeof(error_info),
"PSET_ERROR_NUMBER: %d\nPSET_ERROR_INFO: %s\n",
errorCode,
- psetErrorString(errorCode, NULL));
+ psetErrorString(errorCode, NULL, msgbuf, sizeof(msgbuf), NULL));
if (i18nResource &&
(errMsg = res_getstring(i18nResource,
DBT_PSET_ADD_ERROR,
- acceptLanguage)))
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL)))
rpt_err(APP_ERROR, errMsg, NULL, error_info);
else rpt_err(APP_ERROR, "PSET Add Failed", NULL, error_info);
}
@@ -402,114 +386,8 @@
}
rpt_success(NULL);
- PR_snprintf(fileName, sizeof(fileName), "%s/userdb/certmap.conf", oldSR);
- if (PR_GetFileInfo(fileName, &fileInfo) == PR_SUCCESS) {
- if ((fileInfo.type == PR_FILE_FILE) && newSR) {
- PR_snprintf(cpcmd, sizeof(cpcmd), "cp %s %s/shared/config/certmap.conf", fileName, newSR);
- system(cpcmd);
- }
- }
if (updateList) deleteAttributeList(updateList);
if (addList) deleteAttributeList(addList);
psetDelete(pset);
if (i18nResource) res_destroy_resource(i18nResource);
}
-
-
-/*
- * Modify Port in adm.conf
- */
-static int update_adm_conf(char *newport) {
-
- FILE *f;
- int i, modified=0;
- static char filename[BIG_LINE];
- static char inbuf[BIG_LINE];
- static char buf[BIG_LINE];
- int linecnt=0;
- char *lines[50];
- int port;
- const char *errMsg = NULL;
-
- PR_snprintf(filename, sizeof(filename), "%s/adm.conf", getenv("ADMSERV_ROOT"));
-
- f = fopen(filename, "r");
- if (f==NULL) return -1;
-
- while(fgets(inbuf, sizeof(inbuf), f) != NULL) {
- if (STRNCASECMP(inbuf,"port:",5) == 0) { /* Line starts with "Port:" */
- PR_snprintf(buf, sizeof(buf), "port: %s\n", newport);
- lines[linecnt++] = strdup(buf);
- modified=1;
- }
- else {
- lines[linecnt++] = strdup(inbuf);
- }
- }
- fclose(f);
-
- if (!modified) { /* Add the Port attribute */
- PR_snprintf(buf, sizeof(buf), "Port: %s\n", newport);
- lines[linecnt++] = strdup(buf);
- }
-
- f = fopen(filename, "w");
- if (f==NULL) return -1;
-
- for (i=0; i < linecnt; i++) {
- fprintf(f, "%s", lines[i]);
- }
-
- fclose(f);
-
- return 0;
-}
-
-
-/*
- * Modify Port in magnus.conf
- */
-static int update_magnus_conf(char *newport) {
-
- FILE *f;
- int i, modified=0;
- static char filename[BIG_LINE];
- static char inbuf[BIG_LINE];
- static char buf[BIG_LINE];
- int linecnt=0;
- char *lines[50];
- int port;
-
- PR_snprintf(filename, sizeof(filename), "%s/magnus.conf", getenv("ADMSERV_ROOT"));
-
- f = fopen(filename, "r");
- if (f==NULL) return -1;
-
- while(fgets(inbuf, sizeof(inbuf), f) != NULL) {
- if (STRNCASECMP(inbuf,"Port",4) == 0) { /* Line starts with "Port:" */
- PR_snprintf(buf, sizeof(buf), "Port %s\n", newport);
- lines[linecnt++] = strdup(buf);
- modified=1;
- }
- else {
- lines[linecnt++] = strdup(inbuf);
- }
- }
- fclose(f);
-
- if (!modified) { /* Add the Port attribute */
- PR_snprintf(buf, sizeof(buf), "Port %s\n", newport);
- lines[linecnt++] = strdup(buf);
- }
-
- f = fopen(filename, "w");
- if (f==NULL) return -1;
-
- for (i=0; i < linecnt; i++) {
- fprintf(f, "%s", lines[i]);
- }
-
- fclose(f);
-
- return 0;
-}
Index: monreplication.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/monreplication.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- monreplication.c 31 Mar 2006 22:58:20 -0000 1.5
+++ monreplication.c 9 May 2007 00:26:30 -0000 1.6
@@ -32,6 +32,8 @@
#include <sys/types.h>
#include "libadmin/libadmin.h"
+#include "config.h"
+
#define MY_PAGE "monreplication.html"
#define DEF_SIZE "25"
@@ -51,17 +53,14 @@
char*
getResourceString(char *key) {
- return (char *)(res_getstring(i18nResource, key, acceptLanguage));
+ static char msgbuf[BUFSIZ]; /* ok - not threaded code */
+ return (char *)(res_getstring(i18nResource, key, acceptLanguage,
+ msgbuf, sizeof(msgbuf), NULL));
}
static void i18nInit() {
- char resPath[256], *execPath;
- execPath = getcwd(resPath, 256);
- if (execPath) {
- PL_strncpyz(resPath, execPath, sizeof(resPath));
- PL_strcatn(resPath, sizeof(resPath), "/property");
- i18nResource = res_init_resource(resPath, RESOURCE_FILE);
- }
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
+
if (getenv("HTTP_ACCEPT_LANGUAGE")) {
acceptLanguage = getenv("HTTP_ACCEPT_LANGUAGE");
}
@@ -77,7 +76,6 @@
char *host;
char *port;
char *admurl;
- char *siteroot;
char refreshurl[256] = {'\0'};
char refreshinterval[16];
char configfile[256] = {'\0'};
@@ -92,7 +90,6 @@
host = get_cgi_var("servhost", NULL, NULL);
port = get_cgi_var("servport", NULL, NULL);
admurl = get_cgi_var("admurl", NULL, NULL);
- siteroot = get_cgi_var("siteroot", NULL, NULL);
}
@@ -120,9 +117,6 @@
else if(directive_is(line, "ADMURL")) {
output_input("hidden", "admurl", refreshurl, NULL);
}
- else if(directive_is(line, "SITEROOT")) {
- output_input("hidden", "siteroot", siteroot, NULL);
- }
else if(directive_is(line, "CONFIGFILE")) {
output_input("text", "configfile", configfile, "size=80");
}
Index: restartsrv.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/restartsrv.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- restartsrv.c 31 Mar 2006 22:58:20 -0000 1.5
+++ restartsrv.c 9 May 2007 00:26:30 -0000 1.6
@@ -50,6 +50,9 @@
#endif
#include "libadminutil/resource.h"
+#include "libadmin/libadmin.h"
+
+#include "config.h"
#define RESOURCE_FILE "restartsrv"
@@ -113,18 +116,12 @@
#ifdef XP_UNIX
char line[BIG_LINE];
#endif
+ char msgbuf[BUFSIZ];
char *acceptLanguage = (char*)"en", *lang=getenv((char*)"HTTP_ACCEPT_LANGUAGE");
Resource *i18nResource = NULL;
- char resPath[256], *execPath;
-
- execPath = getcwd(resPath, 256);
- if (execPath) {
- PL_strncpyz(resPath, execPath, sizeof(resPath));
- PL_strcatn(resPath, sizeof(resPath), "/property");
- i18nResource = res_init_resource(resPath, RESOURCE_FILE);
- }
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
if (lang) acceptLanguage = strdup(lang);
@@ -174,15 +171,17 @@
rpt_err(SYSTEM_ERROR,
res_getstring(i18nResource,
DBT_NO_NEW_PROCESS,
- acceptLanguage),
+ acceptLanguage,
+ msgbuf, sizeof(msgbuf), NULL),
NULL, NULL);
else rpt_err(SYSTEM_ERROR,
"Couldn't create a new process to stop admin server",
NULL, NULL);
break;
case 0:
- PR_snprintf(line, sizeof(line), "%s/restart-admin", getenv("NETSITE_ROOT"));
- restart(line);
+ if (util_find_file_in_paths(line, sizeof(line), "restart-admin", CMDBINDIR, "../..", "")) {
+ restart(line);
+ }
exit(0);
break;
default:
@@ -192,7 +191,8 @@
if (i18nResource)
rpt_unknown(res_getstring(i18nResource,
DBT_RESTART_ACK,
- acceptLanguage));
+ acceptLanguage,
+ msgbuf, sizeof(msgbuf), NULL));
else rpt_unknown("Admin server should restart on user request");
break;
}
@@ -294,16 +294,12 @@
static char filename[BIG_LINE];
static char buf[BIG_LINE];
char * p = NULL;
- char *admserv = getenv("ADMSERV_ROOT");
-
- if (!admserv)
- return NULL;
- PR_snprintf(filename, sizeof(filename), "%s/httpd.conf", admserv);
+ util_find_file_in_paths(filename, sizeof(filename), "console.conf", CONFIGDIR, "", "admin-serv/config");
f = fopen(filename, "r");
if (f==NULL) {
- rpt_err(SYSTEM_ERROR, "Can not open file httpd.conf for reading", NULL, NULL);
+ rpt_err(SYSTEM_ERROR, "Can not open file console.conf for reading", NULL, NULL);
}
while(fgets(inbuf, sizeof(inbuf), f) != NULL) {
@@ -322,7 +318,7 @@
PR_snprintf(buf, sizeof(buf),"%s",p);
}
else {
- PR_snprintf(buf, sizeof(buf),"%s/../%s", admserv, p);
+ util_find_file_in_paths(buf, sizeof(buf), p, LOGDIR, "..", "admin-serv");
}
free(p);
p = strdup(buf);
Index: sec-activate.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/sec-activate.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- sec-activate.c 12 May 2006 00:41:29 -0000 1.7
+++ sec-activate.c 9 May 2007 00:26:30 -0000 1.8
@@ -43,6 +43,10 @@
#include "libadmsslutil/psetcssl.h"
#include "libadmsslutil/admsslutil.h"
+#include "libadmin/libadmin.h"
+
+#include "config.h"
+
#ifdef __cplusplus
}
#endif
@@ -71,16 +75,16 @@
#define DBT_PSET_ATTR_CREATE resource_key(RESOURCE_FILE, "14")
#define DBT_PSET_ATTR_MODIFY resource_key(RESOURCE_FILE, "15")
#define DBT_PSET_INV_ATTR resource_key(RESOURCE_FILE, "16")
-#define DBT_SERVER_XML_MOD resource_key(RESOURCE_FILE, "17")
+#define DBT_ADMIN_CONF_MOD resource_key(RESOURCE_FILE, "17")
-static int update_conf(char *file, char *name, char *val);
+static int update_conf(char *configdir, char *file, char *name, char *val);
Resource *i18nResource;
char *acceptLanguage;
char*
getResourceString(char *key) {
- return (char *)(res_getstring(i18nResource, key, acceptLanguage));
+ return (char *)(res_getstring(i18nResource, key, acceptLanguage, NULL, 0, NULL));
}
typedef struct family_input_s family_input;
@@ -481,12 +485,9 @@
char *ssl3_act = NULL;
char *clientauth = NULL;
- char admroot[BIG_LINE];
- char *server_root = NULL;
+ char *configdir; /* where to find config files */
+ char *securitydir = NULL; /* where to find security files */
family_input *family_head = NULL;
- char *trustdb;
- char key_file[BIG_LINE]; /* parsing trustdb */
- char cert_file[BIG_LINE];
char error_info[BIG_LINE];
AdmldapInfo ldapInfo = NULL;
char *lang;
@@ -497,18 +498,16 @@
if(method && *method) {
lang=getenv("HTTP_ACCEPT_LANGUAGE");
- PR_snprintf(line, sizeof(line), "%s%cbin/admin/admin/bin/property", getenv("NETSITE_ROOT"), FILE_PATHSEP);
}
else {
if(!argv[1] || !argv[2]) {
- rpt_err(INCORRECT_USAGE, "Usage: sec-activate [server root] [SSL enabled]\n[server root] = The server root of the target Admin Server\n[SSL enabled] = 'on' or 'off'", NULL, NULL);
+ rpt_err(INCORRECT_USAGE, "Usage: sec-activate [configdir] [SSL enabled]\n[configdir] = The location of the config and security files of the target Admin Server\n[SSL enabled] = 'on' or 'off'", NULL, NULL);
}
lang = NULL;
- PR_snprintf(line, sizeof(line), "%s%cbin/admin/admin/bin/property", argv[1], FILE_PATHSEP);
}
- i18nResource = res_init_resource(line, RESOURCE_FILE);
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
if(!i18nResource)
- rpt_err(INCORRECT_USAGE, "Invalid server root specified.", NULL, NULL);
+ rpt_err(INCORRECT_USAGE, "Localized property files not found in " PROPERTYDIR, NULL, NULL);
acceptLanguage = "en";
if (lang) acceptLanguage = strdup(lang);
@@ -522,7 +521,7 @@
rpt_err(ELEM_MISSING, getResourceString(DBT_PSET_INIT_NO_USERNAME), NULL, NULL);
else {
/* No DN, maybe it is local super */
- localAdmin = admGetLocalAdmin(NULL, &rv);
+ localAdmin = admGetLocalAdmin(CONFIGDIR, &rv);
if (localAdmin) {
if (PORT_Strcmp(username, localAdmin))
rpt_err(ELEM_MISSING, getResourceString(DBT_PSET_INIT_NO_USERDN), NULL, NULL);
@@ -537,33 +536,24 @@
if(!method || !*method) {
/* non-UI CGI - can't call ADMSSL_InitSimple() */
- server_root = strdup(argv[1]);
- if(server_root[strlen(server_root)-1] == FILE_PATHSEP)
- server_root[strlen(server_root)-1] = '\0';
- PR_snprintf(admroot, sizeof(admroot), "%s%cadmin-serv%cconfig",
- server_root,
- FILE_PATHSEP,
- FILE_PATHSEP);
-
- ldapInfo = admldapBuildInfoCbk(admroot, pwdCbk, &rv);
+ securitydir = strdup(argv[1]);
+ configdir = strdup(argv[1]); /* same as securitydir */
+ ldapInfo = admldapBuildInfoCbk(configdir, pwdCbk, &rv);
if (!ldapInfo) {
rpt_err(INCORRECT_USAGE, getResourceString(DBT_INV_SR), NULL, NULL);
}
- rv = ADMSSL_Init(ldapInfo, admroot);
+ rv = ADMSSL_Init(ldapInfo, SECURITYDIR, 1);
if (rv) {
PR_snprintf(error_info, sizeof(error_info), getResourceString(DBT_PSET_INIT_FAILURE), rv);
rpt_err(APP_ERROR, error_info, NULL, NULL);
}
}
else {
- server_root = getenv("NETSITE_ROOT");
- PR_snprintf(admroot, sizeof(admroot), "%s%cadmin-serv%cconfig",
- server_root,
- FILE_PATHSEP,
- FILE_PATHSEP);
- rv = ADMSSL_InitSimple();
+ configdir = CONFIGDIR;
+ securitydir = SECURITYDIR;
+ rv = ADMSSL_InitSimple(configdir, securitydir, 1);
if (rv) {
rpt_err(APP_ERROR, getResourceString(DBT_ADMSSL_INIT_FAIL), NULL, NULL);
}
@@ -572,7 +562,7 @@
/* Initialize the pset */
pset = psetCreateSSL("admin-serv",
- admroot,
+ configdir,
/* userDN */ NULL,
/* passwd */ NULL,
/* errorcode */ &rv);
@@ -591,7 +581,7 @@
rpt_err(INCORRECT_USAGE, getResourceString(DBT_CMDLINE_STATUS_USAGE), NULL, NULL);
}
/* change "security" in LDAP and adm.conf to "on"/"off" */
- set_security(pset, server_root, security, NULL, NULL);
+ set_security(pset, configdir, security);
rpt_success(getResourceString(DBT_SUCCESS));
}
@@ -606,8 +596,6 @@
free(return_string);
}
else if (!PORT_Strcmp(method, "POST")) {
- char trustdbVN[] = "trustdb";
-
fprintf(stdout, "Content-type: text/html\n\n");
post_begin(stdin);
@@ -618,38 +606,24 @@
ssl3_act = get_cgi_var("ssl3-activated", "", "");
clientauth = get_cgi_var("clientauth", "", "");
- /* char *qs = getenv("QUERY_STRING");*/
-
/* Parse out complete family list */
get_family_input(&family_head);
- if((trustdb = get_cgi_var(trustdbVN, "", "")) == NULL) {
- char * scratch = PR_smprintf(getResourceString(DBT_CGI_MISSING_ARGS), trustdbVN);
- rpt_err(ELEM_MISSING, NULL, scratch, NULL);
- PR_smprintf_free(scratch); /* never executed */
- }
-
/* SET SSL VARIABLES via pset */
/* first, cipher family info */
SetSSLFamilyAttributes(pset, family_head, ssl2, ssl3, ssl2_act, ssl3_act);
- /* next, set keyfile and certfile (based on trust db) */
- PR_snprintf(key_file, sizeof(key_file), "alias/%s-key3.db", trustdb);
- PR_snprintf(cert_file, sizeof(cert_file), "alias/%s-cert8.db", trustdb);
-
- set_attribute(pset, "configuration.encryption.nsKeyfile", key_file);
- set_attribute(pset, "configuration.encryption.nsCertfile", cert_file);
set_attribute(pset, "configuration.encryption.nsSSLClientAuth", clientauth);
/* change "security" in LDAP and adm.conf to "on"/"off" */
- set_security(pset, server_root, security, cert_file, key_file);
+ set_security(pset, configdir, security);
- /* change security parameters in server.xml, new for iWS6 */
+ /* change security parameters in console.conf */
if (strcmp(security, "off")==0) {
- rv = update_conf("console.conf", "NSSEngine", "off");
+ rv = update_conf(configdir, "console.conf", "NSSEngine", "off");
if (rv < 0) {
- rpt_err(APP_ERROR, NULL, getResourceString(DBT_SERVER_XML_MOD), NULL);
+ rpt_err(APP_ERROR, NULL, getResourceString(DBT_ADMIN_CONF_MOD), NULL);
}
}
else if (strcmp(security, "on")==0) {
@@ -665,8 +639,8 @@
if (strlen(clientauth) == 0) {
clientauth = (char*)"off";
}
- rv = update_conf("console.conf", "NSSEngine", "on");
- rv = update_conf("console.conf", "NSSNickname", certnickname);
+ rv = update_conf(configdir, "console.conf", "NSSEngine", "on");
+ rv = update_conf(configdir, "console.conf", "NSSNickname", certnickname);
strcpy(protocols, "");
@@ -676,19 +650,19 @@
strcat(protocols, "SSLv3,TLSv1,");
protocols[strlen(protocols) - 1] = '\0'; /* remove trailing comma */
- rv = update_conf("console.conf", "NSSProtocol", protocols);
+ rv = update_conf(configdir, "console.conf", "NSSProtocol", protocols);
snprintf(ciphers, sizeof(ciphers), "%s,%s", ssl2, ssl3);
ciphers[sizeof(ciphers)-1] = 0;
- rv = update_conf("console.conf", "NSSCipherSuite", ciphers);
+ rv = update_conf(configdir, "console.conf", "NSSCipherSuite", ciphers);
if (!strcmp(clientauth, "on"))
- rv = update_conf("console.conf", "NSSVerifyClient", "require");
+ rv = update_conf(configdir, "console.conf", "NSSVerifyClient", "require");
else
- rv = update_conf("console.conf", "NSSVerifyClient", "none");
+ rv = update_conf(configdir, "console.conf", "NSSVerifyClient", "none");
if (rv < 0) {
- rpt_err(APP_ERROR, NULL, getResourceString(DBT_SERVER_XML_MOD), NULL);
+ rpt_err(APP_ERROR, NULL, getResourceString(DBT_ADMIN_CONF_MOD), NULL);
}
} else {
rpt_err(INCORRECT_USAGE, getResourceString(DBT_CGI_INVALID_ARGS), NULL, NULL);
@@ -709,7 +683,7 @@
* Modify any attribute in a configuration file with a name/value pair
* If the attribute value is NULL, remove it from the file completely.
*/
-static int update_conf(char *file, char *name, char *val) {
+static int update_conf(char *configdir, char *file, char *name, char *val) {
FILE *f;
int i, modified=0;
@@ -718,12 +692,11 @@
static char buf[BIG_LINE];
int linecnt=0;
char *lines[2048];
- char *admserv = getenv("ADMSERV_ROOT");
- if (!admserv)
+ if (!configdir)
return -1;
- PR_snprintf(filename, sizeof(filename), "%s/%s", admserv, file);
+ PR_snprintf(filename, sizeof(filename), "%s/%s", configdir, file);
f = fopen(filename, "r");
if (f==NULL) {
Index: sec-activate.properties
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/sec-activate.properties,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- sec-activate.properties 18 Aug 2005 18:59:03 -0000 1.3
+++ sec-activate.properties 9 May 2007 00:26:30 -0000 1.4
@@ -26,8 +26,8 @@
sec-activate1 { "NO USER NAME!" }
sec-activate2 { "NO USER DN!" }
-sec-activate3 { "Usage: sec-activate [server root] [SSL enabled]\n[server root] = The server root of the target Admin Server\n[SSL enabled] = 'on' or 'off'" }
-sec-activate4 { "ERROR: Invalid server root specified." }
+sec-activate3 { "Usage: sec-activate [configdir] [SSL enabled]\n[configdir] = The directory containing the configuration and security database files for the target Admin Server\n[SSL enabled] = 'on' or 'off'" }
+sec-activate4 { "ERROR: Invalid configdir specified." }
sec-activate5 { "ERROR: Failed to perform security initialization for communication with LDAP in SSL mode (error code = %d)" }
sec-activate6 { "SSL related initialization failed" }
sec-activate7 { "PSET Creation Failed" }
@@ -40,6 +40,6 @@
sec-activate14 { "PSET attribute creation or local cache update failed!" }
sec-activate15 { "PSET attribute modification failed!" }
sec-activate16 { "Invalid SIE attribute found!" }
-sec-activate17 { "Failed to modify configuration file server.xml!" }
+sec-activate17 { "Failed to modify admin server configuration!" }
}
Index: security.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/security.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- security.c 11 May 2006 14:29:30 -0000 1.8
+++ security.c 9 May 2007 00:26:30 -0000 1.9
@@ -55,6 +55,11 @@
#include "libadminutil/distadm.h"
#include "libadminutil/resource.h"
#include "libadmsslutil/certmgt.h"
+#include "libadmsslutil/psetcssl.h"
+
+#include "config.h"
+
+#include "cgicommon.h"
#ifdef __cplusplus
}
@@ -101,8 +106,6 @@
#define RESOURCE_FILE "security"
-#define resource_key(a,b) a b
-
/* main resource string */
#define DBT_PARAMETERMISSING resource_key(RESOURCE_FILE, "1")
#define DBT_MISSING_THIS resource_key(RESOURCE_FILE, "2")
@@ -182,21 +185,31 @@
#define DBT_DECODE_CRL_ERROR resource_key(RESOURCE_FILE, "110")
#define DBT_REMOVE_ERROR resource_key(RESOURCE_FILE, "111")
#define DBT_INSTALL_ERROR resource_key(RESOURCE_FILE, "112")
+#define DBT_INVALID_CRL resource_key(RESOURCE_FILE, "113")
/* key and certificate migration */
#define DBT_ALIAS resource_key(RESOURCE_FILE, "120")
#define DBT_KEY_OR_CERT_NOTFOUND resource_key(RESOURCE_FILE, "121")
#define DBT_UNABLE_TO_MIGRATE resource_key(RESOURCE_FILE, "122")
#define DBT_INVALID_SERVER_ROOT resource_key(RESOURCE_FILE, "123")
+#define DBT_MIGRATION_NOT_SUPPORTED resource_key(RESOURCE_FILE, "124")
+
+/* more module codes */
+#define DBT_INVALID_OP resource_key(RESOURCE_FILE, "150")
Resource *i18nResource;
+Resource *i18nResource_common;
char *acceptLanguage;
static char * cur_pwd = 0; /* for use in changePassword and getPassword_cb */
static char*
getResourceString(char *key) {
- return (char *)(res_getstring(i18nResource, key, acceptLanguage));
+ if (key && !strncmp(key, COMMON_RESOURCE_FILE, strlen(COMMON_RESOURCE_FILE))) {
+ return (char *)(res_getstring(i18nResource_common, key, acceptLanguage, NULL, 0, NULL));
+ } else {
+ return (char *)(res_getstring(i18nResource, key, acceptLanguage, NULL, 0, NULL));
+ }
}
static char * getParameter(char *key, char *keyName) {
@@ -206,13 +219,6 @@
return get_cgi_var(key, getResourceString(DBT_PARAMETERMISSING), line);
}
-static char ** getMultivaluedParam(char *key, char *keyName) {
-
- PR_snprintf(line, sizeof(line), getResourceString(DBT_MISSING_THIS), keyName);
-
- return get_cgi_multiple(key, getResourceString(DBT_PARAMETERMISSING), line);
-}
-
static void closeAllSecurityDB() {
/* close all db */
NSS_Shutdown();
@@ -241,162 +247,22 @@
extra);
}
-static int
-copyFile(const char *srcname, const char *destname)
-{
- PRFileDesc *srcp = NULL, *destp = NULL;
- PRInt32 bytes;
- char buf[BUFSIZ];
- int ret = 0;
-
- srcp = PR_Open(srcname, PR_RDONLY, 0);
- if(!srcp) {
- rpt_err(APP_ERROR, "Cannot open src file for copy!", NULL, NULL);
- goto cleanup_and_return;
- }
- destp = PR_Open(destname, PR_RDWR|PR_CREATE_FILE, PR_IRUSR|PR_IWUSR);
- if(!destp) {
- rpt_err(APP_ERROR, "Cannot open dest file for copy!", NULL, NULL);
- goto cleanup_and_return;
- }
- while (0 < (bytes = PR_Read(srcp, buf, sizeof(buf)))) {
- PRInt32 remaining = bytes;
- PRInt32 byteswritten = 0;
- while (((byteswritten = PR_Write(destp, buf+byteswritten, remaining)) != remaining) &&
- (byteswritten > 0)) {
- remaining -= byteswritten;
- }
- if (byteswritten < 0) {
- rpt_err(APP_ERROR, "Cannot write data to dest file for file copy!", NULL, NULL);
- goto cleanup_and_return;
- }
- }
- if (bytes < 0) {
- rpt_err(APP_ERROR, "Cannot read data from src for file copy!", NULL, NULL);
- } else if (bytes == 0) {
- ret = 1; /* success */
- }
-
-cleanup_and_return:
- if (destp) {
- PR_Close(destp);
- }
- if (srcp) {
- PR_Close(srcp);
- }
-
- return ret;
-}
-
/* return true if all of the chars in s are valid chars for use in
- file and directory names, and false otherwise. This means that
- the string must begin with a letter or number, and must contain
- letters, numbers, '-' and '_'.
+ a secmod module name. This string is passed to the shell in
+ double quotes, so the user should not have to pass in any odd
+ chars or quoting. Look for chars which would indicate someone
+ is attempting something fishy.
*/
static int
-is_valid_path_string(const char *s)
+is_valid_name_string(const char *s)
{
- int ret = 0;
- if (s) {
- if (isalnum(*s)) {
- ret = 1;
- for(; ret && *s; ++s) {
- ret = isalnum(*s) || (*s == '-') || (*s == '_');
- }
- }
- }
- return ret;
-}
-
-/* try various ways to determine if the given name is a valid
- file or directory - this value is passed in as a form
- parameter, and our motto is "Don't trust the user!"
- If the given filetype is directory, also check to see if the optional
- given filename (may be NULL) is in the given directory
-*/
-static int
-verify_file_or_dir(
- const char *name, /* name of file or directory to check */
- PRFileType filetype, /* type of name */
- const char *childname, /* optional child file/dir to check inside given parent name */
- size_t childlen, /* only compare first childlen chars of childname - use -1 for entire string */
- PRFileType childtype /* type of child */
-)
-{
- int ret = 0;
- PRFileInfo fileinfo;
- /* first, just a simple access check */
- PRStatus status = PR_GetFileInfo(name, &fileinfo);
- ret = ((status == PR_SUCCESS) && (fileinfo.type == filetype));
- if (ret) {
- /* checks out ok - let's split it into the base name and the parent dir,
- open the parent dir, and see if the base name exists in the parent dir
- */
- char *copy = PL_strdup(name);
- size_t len = strlen(copy);
- char *ptr = ©[len-1];
- /* get the basename - a really bad name may look like
- /path/foo/// or even ///////////////// */
- for (; (ptr > copy) && (*ptr == '/'); --ptr) {
- /* do nothing */
- }
- if ((ptr == copy) && (*ptr == '/')) {
- /* bad - string consists of nothing but '/' */
- ptr = NULL;
- ret = 0;
- } else {
- PRDir *pdir;
- PRDirEntry *pent;
-
- ret = 0;
- if (*ptr == '/') {
- *ptr = 0; /* terminate the string at the first trailing '/' */
- }
- ptr = strrchr(copy, '/');
- if (!ptr) {
- ptr = copy;
- copy = PL_strdup(".");
- } else {
- *ptr = 0;
- ++ptr;
- ptr = PL_strdup(ptr);
- }
- /* copy now points at the parent, ptr at the child */
- if (pdir = PR_OpenDir(copy)) {
- for(pent = PR_ReadDir(pdir, PR_SKIP_BOTH); pent && !ret;
- pent = PR_ReadDir(pdir, PR_SKIP_BOTH)) {
- ret = !strcmp(pent->name, ptr);
- }
- PR_CloseDir(pdir);
- }
- if (ret && childname && (filetype == PR_FILE_DIRECTORY)) {
- ret = 0;
- /* we've verified that name is a valid directory - see if
- the given filename exists in that directory */
- if (pdir = PR_OpenDir(name)) {
- for(pent = PR_ReadDir(pdir, PR_SKIP_BOTH); pent && !ret;
- pent = PR_ReadDir(pdir, PR_SKIP_BOTH)) {
- if (childlen > 0) {
- ret = !strncmp(pent->name, childname, childlen);
- } else {
- ret = !strcmp(pent->name, childname);
- }
- }
- PR_CloseDir(pdir);
- if (ret) {
- /* child exists - check type */
- char *fullname = PR_smprintf("%s%c%s", name, FILE_PATHSEP, childname);
- status = PR_GetFileInfo(fullname, &fileinfo);
- ret = ((status == PR_SUCCESS) && (fileinfo.type == childtype));
- PR_smprintf_free(fullname);
- }
- }
- }
- }
- PL_strfree(copy);
- PL_strfree(ptr);
- }
- return ret;
+ int isvalid = 1;
+ for(;isvalid && s && *s; ++s) {
+ isvalid = (isalnum(*s) || (*s == ' ') || (*s == '.') || (*s == ',') ||
+ (*s == '+') || (*s == '=') || (*s == '@') || (*s == '-') ||
+ (*s == '_'));
+ }
+ return isvalid;
}
/*
@@ -534,6 +400,100 @@
return (str==NULL?(char *)"(null)":str);
}
+static int
+psetHasObjectClass(PsetHndl pset, const char *ocname)
+{
+ int rval = 0;
+ char *val = NULL;
+ ValueType nodeObjectClass = psetGetObjectClass(pset, "" /* use root node */, &rval);
+ ValueType iter = nodeObjectClass;
+
+ rval = 0;
+ while ((!rval) && ((val = *iter++))) {
+ rval = !PL_strcasecmp(ocname, val);
+ }
+
+ deleteValue(nodeObjectClass);
+ return rval;
+}
+
+/*
+ * With the FHS work, plus the injunction against
+ * paths in CGI parameters, we should get the
+ * securitydir (key/cert db file dir) from the server config,
+ * using the pset interface
+ */
+static char *
+getSecurityDir(AdmldapInfo info, const char *sie)
+{
+ int rval = 0;
+ char *securitydir = NULL;
+ PsetHndl pset;
+
+ if (!PL_strncasecmp(sie, "admin-serv", strlen("admin-serv"))) {
+ return PL_strdup(SECURITYDIR); /* same as admin server security dir */
+ }
+
+ /* create pset with this dn */
+ pset = psetCreateSSL((char *)sie, CONFIGDIR, NULL, NULL, &rval);
+ if (pset && ((rval == PSET_OP_OK) || (rval == PSET_LOCAL_OPEN_FAIL))) { /* only admin-serv uses local file */
+ securitydir = psetGetAttrSingleValue(pset, "configuration.encryption.certdir", &rval);
+ if (!securitydir && psetHasObjectClass(pset, DSOBJECTCLASS)) {
+ char *host = psetGetAttrSingleValue(pset, "serverHostName", &rval);
+ char *sport = psetGetAttrSingleValue(pset, "nsServerPort", &rval);
+ char *ssecport = psetGetAttrSingleValue(pset, "nsSecureServerPort", &rval);
+ char *ssecurity = psetGetAttrSingleValue(pset, "nsServerSecurity", &rval);
+ int port, security;
+ char *user = NULL;
+ char *binddn = NULL;
+ char *bindpw = admldapGetSIEPWD(info);
+ int freebindpw = 1;
+
+ ADM_GetUserDNString(&rval, &user);
+ if (!user) {
+ ADM_GetCurrentUsername(&rval, &user);
+ }
+ /* if user is just attr val, get dn */
+ binddn = admldapGetUserDN(info, user);
+ if (!bindpw) {
+ freebindpw = 0;
+ ADM_GetCurrentPassword(&rval, &bindpw);
+ }
+ security = (ssecurity && !PL_strcasecmp(ssecurity, "on")) ? 1 : 0;
+ if (security) {
+ if (ssecport) {
+ port = atoi(ssecport);
+ } else {
+ port = 636;
+ }
+ } else {
+ if (sport) {
+ port = atoi(sport);
+ } else {
+ port = 389;
+ }
+ }
+
+ psetDelete(pset);
+ pset = psetRealCreateSSL(host, port, security, DSCONFIGENTRY,
+ binddn, bindpw, NULL, &rval);
+ securitydir = psetGetAttrSingleValue(pset, DSSECURITYDIR, &rval);
+ PL_strfree(host);
+ PL_strfree(sport);
+ PL_strfree(ssecport);
+ PL_strfree(ssecurity);
+ PL_strfree(binddn);
+ if (freebindpw) {
+ PL_strfree(bindpw);
+ }
+ }
+ }
+ psetDelete(pset);
+
+ return securitydir;
+}
+
+
/*
* Print cert attributes
*/
@@ -1003,12 +963,10 @@
/*
* Initialize NSS
*/
-static void securityInitialization(char* sie) {
+static void securityInitialization(char* securitydir) {
- char prefix[BIG_LINE];
PRUint32 flags = 0;
char *db_name;
- char configdir[BIG_LINE];
int const minPwdLen = 8;
int const pwdRequired = 1;
@@ -1017,12 +975,8 @@
PK11_ConfigurePKCS11(NULL,NULL,NULL,db_name,NULL,NULL,NULL,NULL,
minPwdLen, pwdRequired);
- PR_snprintf(configdir, sizeof(configdir), "%s%calias", getenv("NETSITE_ROOT"), FILE_PATHSEP);
-
- PR_snprintf(prefix, sizeof(prefix), "%s-", sie);
-
/* init NSS */
- if (NSS_Initialize(configdir, prefix, prefix, "secmod.db", flags)) {
+ if (NSS_Initialize(securitydir, NULL, NULL, SECMOD_DB, flags)) {
rpt_err(GENERAL_FAILURE,
getResourceString(DBT_INTERNAL_ERROR),
getResourceString(DBT_OPEN_CERTDB_FAIL),
@@ -1555,7 +1509,9 @@
char msg[BIG_LINE];
int list_type = (type && !PORT_Strcmp(type, "CKL"))? SEC_KRL_TYPE : SEC_CRL_TYPE;
- if (!verify_file_or_dir(filename, PR_FILE_FILE, NULL, 0, (PRFileType)0)) {
+ if (!filename || !*filename ||
+ !util_is_valid_path_string(filename) ||
+ !util_verify_file_or_dir(SECURITYDIR, PR_FILE_DIRECTORY, filename, -1, PR_FILE_FILE)) {
/* invalid file */
PR_snprintf(msg, sizeof(msg), getResourceString(DBT_NO_FILE_EXISTS), filename);
errorRpt(FILE_ERROR, msg);
@@ -1615,6 +1571,9 @@
if ( SECFailure == ATOB_ConvertAsciiToItem(&derCrl, DERCert) ) {
errorRpt(SYSTEM_ERROR, getResourceString(DBT_DECODE_CRL_ERROR));
}
+ } else {
+ PR_snprintf(msg, sizeof(msg), getResourceString(DBT_INVALID_CRL), filename);
+ errorRpt(FILE_ERROR, msg);
}
}
@@ -1857,37 +1816,20 @@
* Add/remove pkcs 11 module from the secmod db
*/
static void moduleOperation(char* op) {
- char binary[BIG_LINE];
- char install_dir[BIG_LINE];
- char database_dir[BIG_LINE];
- char libpath[BIG_LINE];
+ const char *binary = "modutil"; /* PATH and LD_LIBRARY_PATH must already be set correctly */
+ const char *install_dir = LIBDIR;
+ const char *database_dir = SECURITYDIR;
char *filename, *filetype, *dllname;
char cmd[BIG_LINE];
char msg[BIG_LINE];
- PR_snprintf(binary, sizeof(binary), "%s%cshared%cbin%cmodutil",
- getenv("NETSITE_ROOT"),
- FILE_PATHSEP,
- FILE_PATHSEP,
- FILE_PATHSEP);
-
- PR_snprintf(install_dir, sizeof(install_dir), "%s%clib",
- getenv("NETSITE_ROOT"),
- FILE_PATHSEP);
-
- PR_snprintf(database_dir, sizeof(database_dir), "%s%calias",
- getenv("NETSITE_ROOT"),
- FILE_PATHSEP);
-
- PR_snprintf(libpath, sizeof(libpath), "%s/lib", getenv("NETSITE_ROOT"));
-
dllname = get_cgi_var("dllname", NULL, NULL);
if (!PORT_Strcmp(op, "remove")) {
- if (!dllname || !verify_file_or_dir(dllname, PR_FILE_FILE, NULL, 0, (PRFileType)0)) {
- PR_snprintf(msg, sizeof(msg), getResourceString(DBT_MISSING_MODULE_NAME));
- rpt_err(INCORRECT_USAGE, msg, NULL, NULL);
- }
+ if (!dllname || !*dllname || !is_valid_name_string(dllname)) {
+ PR_snprintf(msg, sizeof(msg), getResourceString(DBT_MISSING_MODULE_NAME));
+ rpt_err(INCORRECT_USAGE, msg, NULL, NULL);
+ }
PR_snprintf(cmd, sizeof(cmd), "%s -dbdir %s -force -nocertdb -delete \"%s\" 2>&1",
binary,
database_dir,
@@ -1898,15 +1840,17 @@
filename = getParameter("filename",getResourceString(DBT_MISSING_FILE));
filetype = getParameter("format",getResourceString(DBT_MISSING_FORMAT));
- if((PR_Access(filename, PR_ACCESS_EXISTS) == PR_FAILURE) ||
- !verify_file_or_dir(filename, PR_FILE_FILE, NULL, 0, (PRFileType)0)) {
+ /* see if filename exists in SECURITYDIR */
+ if(!util_is_valid_path_string(filename) ||
+ !util_verify_file_or_dir(SECURITYDIR, PR_FILE_DIRECTORY, filename, -1, PR_FILE_FILE)) {
PR_snprintf(msg, sizeof(msg), getResourceString(DBT_NO_FILE_EXISTS), filename);
rpt_err(FILE_ERROR, msg, NULL, NULL);
}
+ /* dllname is the internal name of the module - the user must
+ have specified a valid name */
if((filetype && (!PORT_Strcmp(filetype, "dll"))) &&
- (!dllname || !PORT_Strcmp(dllname, "") ||
- !verify_file_or_dir(dllname, PR_FILE_FILE, NULL, 0, (PRFileType)0))) {
+ (!dllname || !PORT_Strcmp(dllname, "") || !is_valid_name_string(dllname))) {
PR_snprintf(msg, sizeof(msg), getResourceString(DBT_MISSING_MODULE_NAME));
rpt_err(INCORRECT_USAGE, msg, NULL, NULL);
}
@@ -1936,19 +1880,10 @@
rpt_err(INCORRECT_USAGE, msg, NULL, NULL);
}
- }
-
-/* 601256 Include <server-root>/lib into the shared libarary path on Unix */
-#if defined XP_UNIX
-#if defined HPUX
- extend_env("SHLIB_PATH", libpath);
-#elif defined AIX
- extend_env("LIBPATH", libpath);
- extend_env("LD_LIBRARY_PATH", libpath);
-#else
- extend_env("LD_LIBRARY_PATH", libpath);
-#endif
-#endif
+ } else { /* invalid op */
+ PR_snprintf(msg, sizeof(msg), getResourceString(DBT_INVALID_OP), op);
+ rpt_err(INCORRECT_USAGE, msg, NULL, NULL);
+ }
if(system(cmd) != 0) {
if (!PORT_Strcmp(op, "add")) {
@@ -1958,7 +1893,7 @@
}
rpt_err(APP_ERROR, msg, NULL, NULL);
- }
+ }
}
/*
@@ -1998,266 +1933,16 @@
}
}
-/* Lists all files in a directory. */
-static char **list_directory(char *path)
-{
- char **ar = NULL;
- PRDir *ds;
- PRDirEntry *d;
- int entryCount = 0;
-
- if(!(ds = PR_OpenDir(path))) {
- return NULL;
- }
-
- /* PR_SKIP_BOTH, to skip . and .. as file */
- while( (d = PR_ReadDir(ds, PR_SKIP_BOTH)) ) {
- ar = (char **) PORT_Realloc(ar, (entryCount+1)*sizeof(char *));
- ar[entryCount] = (char *) PORT_Alloc(PORT_Strlen(d->name) + 2);
- strcpy(ar[entryCount], d->name);
- entryCount++;
- }
- PR_CloseDir(ds);
-
- /*will have put the sort backin later
- qsort((void *)ar, p, sizeof(char *), _dumbsort);*/
- ar = (char **) PORT_Realloc(ar, (entryCount+1)*sizeof(char *));
- ar[entryCount] = NULL;
-
-
- return ar;
-}
-
/* Makes a list of the aliases installed on machine. */
static void listAlias()
{
- char *path = NULL;
- char *remstr;
- char *keystr = "-key";
- char **alist;
- int x;
- char * serverRoot = getParameter("old_server_root",getResourceString(DBT_OLD_SERVER_ROOT));
-
- /* see if serverRoot is legitimate, and also make sure it contains an "alias" directory */
- if (!verify_file_or_dir(serverRoot, PR_FILE_DIRECTORY, "alias", 0, PR_FILE_DIRECTORY)) {
- errorRpt(INCORRECT_USAGE, getResourceString(DBT_INVALID_SERVER_ROOT));
- }
-
- /* if we got here, serverRoot has passed our rigorous integrity checks and contains an alias directory */
- path = PR_smprintf("%s%calias", serverRoot, FILE_PATHSEP);
- alist = list_directory(path);
- if (alist == NULL) {
- errorRpt(INCORRECT_USAGE, getResourceString(DBT_READ_ALIAS));
- }
-
- fprintf(stdout, "<ALIAS>\n");
-
- for (x=0; alist[x]; x++) {
- if ((remstr = (PORT_Strstr(alist[x], keystr))) != NULL) {
- /* *(alist[x] + (PORT_Strlen(alist[x]) - PORT_Strlen(remstr))) = '\0'; */
- fprintf(stdout, "\t<%s></%s>\n", alist[x], alist[x]);
- }
- }
-
- fprintf(stdout, "</ALIAS>\n");
-}
-
-static char* normalizeCommandLine(char* cmd) {
- char* tmpcmd = PORT_Strdup(cmd);
- char sysDeptPathSep = PR_GetDirectorySeparator();
- int i;
-
- for (i=0; tmpcmd[i] != '\0'; i++) {
- if ((tmpcmd[i] == '/') ||
- (tmpcmd[i] == '\\')) {
- tmpcmd[i] = sysDeptPathSep;
- }
- }
-
- return tmpcmd;
-}
-
-static void keyCertMigrate(char* alias, char* sie) {
- int aliasLen;
- char cert7[] = "cert7";
- char key3[] = "key3";
- char const mask[] = "%s%calias%c%s-%s.db";
- char * newRoot;
- char * oldRoot;
- char msg[BIG_LINE];
-
-#if XP_UNIX
- char const cmd[] = "cp %s %s%calias%c%s-%s.db";
-#else
- char const cmd[] = "copy %s %s%calias%c%s-%s.db";
-#endif
-
- oldRoot = getParameter("old_server_root", getResourceString(DBT_OLD_SERVER_ROOT));
- if (!verify_file_or_dir(oldRoot, PR_FILE_DIRECTORY, "alias", 0, PR_FILE_DIRECTORY) ||
- !is_valid_path_string(alias))
- {
- PR_snprintf(msg, sizeof(msg), getResourceString(DBT_NO_FILE_EXISTS), oldRoot);
- errorRpt(INCORRECT_USAGE, msg);
- }
- newRoot = getenv("NETSITE_ROOT");
-
- aliasLen = PORT_Strlen(alias);
-
- /*
- * Time to save any current cert7 or key3 file we currently have.
- */
- {
- char * backCertFile;
- char * backKeyFile;
- char const backupMask[] = "%s%calias%c%s-%s.db_bak%d";
- char * scratch;
- int i;
-
- i = PORT_Strlen(newRoot) + sizeof(backupMask) + aliasLen + 20; /* overkill but safe */
-
- backCertFile = (char *) PORT_Alloc(i);
- backKeyFile = (char *) PORT_Alloc(i);
- scratch = (char *) PORT_Alloc(i);
-
- i = 0;
-
- do {
- do {
- sprintf(backCertFile, backupMask, newRoot, FILE_PATHSEP, FILE_PATHSEP, alias, cert7, ++i);
- } while (PR_SUCCESS == PR_Access(backCertFile, PR_ACCESS_EXISTS));
- sprintf(backKeyFile, backupMask, newRoot, FILE_PATHSEP, FILE_PATHSEP, alias, key3, i);
- } while (PR_SUCCESS == PR_Access(backKeyFile, PR_ACCESS_EXISTS));
-
- sprintf(scratch, mask, newRoot, FILE_PATHSEP, FILE_PATHSEP, alias, cert7);
-
- if (PR_SUCCESS == PR_Access(scratch, PR_ACCESS_EXISTS)) {
- /* really make sure the file exists */
- char *dir = PR_smprintf("%s%calias", newRoot, FILE_PATHSEP);
- char *file = PR_smprintf("%s-%s.db", alias, cert7);
- if (verify_file_or_dir(dir, PR_FILE_DIRECTORY, file, 0, PR_FILE_FILE)) {
- PR_Rename(scratch, backCertFile);
- if (!verify_file_or_dir(backCertFile, PR_FILE_FILE, NULL, 0, (PRFileType)0)) {
- PR_snprintf(msg, sizeof(msg), getResourceString(DBT_NO_FILE_EXISTS), backCertFile);
- errorRpt(INCORRECT_USAGE, msg);
- }
- } else {
- PR_snprintf(msg, sizeof(msg), getResourceString(DBT_NO_FILE_EXISTS), scratch);
- errorRpt(INCORRECT_USAGE, msg);
- }
- PR_smprintf_free(dir);
- PR_smprintf_free(file);
- }
-
- sprintf(scratch, mask, newRoot, FILE_PATHSEP, FILE_PATHSEP, alias, key3);
-
- if (PR_SUCCESS == PR_Access(scratch, PR_ACCESS_EXISTS)) {
- /* really make sure the file exists */
- char *dir = PR_smprintf("%s%calias", newRoot, FILE_PATHSEP);
- char *file = PR_smprintf("%s-%s.db", alias, key3);
- if (verify_file_or_dir(dir, PR_FILE_DIRECTORY, file, 0, PR_FILE_FILE)) {
- PR_Rename(scratch, backKeyFile);
- if (!verify_file_or_dir(backKeyFile, PR_FILE_FILE, NULL, 0, (PRFileType)0)) {
- PR_snprintf(msg, sizeof(msg), getResourceString(DBT_NO_FILE_EXISTS), backKeyFile);
- errorRpt(INCORRECT_USAGE, msg);
- }
- } else {
- PR_snprintf(msg, sizeof(msg), getResourceString(DBT_NO_FILE_EXISTS), scratch);
- errorRpt(INCORRECT_USAGE, msg);
- }
- PR_smprintf_free(dir);
- PR_smprintf_free(file);
- }
-
- PORT_Free(backCertFile);
- PORT_Free(backKeyFile);
- PORT_Free(scratch);
- }
-
- /*
- * We now take a peek at the old environment and determine
- * if we can reuse the old cert and key files or if we
- * need to start from scratch.
- */
- {
- char cert[] = "cert";
- char * fileName;
- char key[] = "key";
- char * oldCert;
- int i;
-
- i = PORT_Strlen(oldRoot) + sizeof(mask) + aliasLen + 20; /* overkill but safe */
-
- fileName = (char *) PORT_Alloc(i);
-
- sprintf(fileName, mask, oldRoot, FILE_PATHSEP, FILE_PATHSEP, alias, cert);
- if ((PR_SUCCESS == PR_Access(fileName, PR_ACCESS_EXISTS)) &&
- verify_file_or_dir(fileName, PR_FILE_FILE, NULL, 0, (PRFileType)0)) {
- oldCert = PORT_Strdup(fileName);
- sprintf(fileName, mask, oldRoot, FILE_PATHSEP, FILE_PATHSEP, alias, key);
- if ((PR_SUCCESS == PR_Access(fileName, PR_ACCESS_EXISTS)) &&
- verify_file_or_dir(fileName, PR_FILE_FILE, NULL, 0, (PRFileType)0)) {
- } else {
- PORT_Free(oldCert);
- oldCert = 0;
- }
- } else {
- oldCert = 0;
- }
-
- if (oldCert) {
- securityInitialization(sie);
- closeAllSecurityDB();
- PORT_Free(oldCert);
- } else {
- sprintf(fileName, mask, oldRoot, FILE_PATHSEP, FILE_PATHSEP, alias, cert);
- if ((PR_SUCCESS == PR_Access(fileName, PR_ACCESS_EXISTS)) &&
- verify_file_or_dir(fileName, PR_FILE_FILE, NULL, 0, (PRFileType)0)) {
- } else {
- PR_snprintf(msg, sizeof(msg), getResourceString(DBT_NO_FILE_EXISTS), fileName);
- errorRpt(INCORRECT_USAGE, msg);
- }
- oldCert = PORT_Strdup(fileName);
- sprintf(fileName, mask, oldRoot, FILE_PATHSEP, FILE_PATHSEP, alias, key);
- if ((PR_SUCCESS == PR_Access(fileName, PR_ACCESS_EXISTS)) &&
- verify_file_or_dir(fileName, PR_FILE_FILE, NULL, 0, (PRFileType)0)) {
- char *newfile = PR_smprintf("%s%calias%c%s-%s.db",
- newRoot, FILE_PATHSEP, FILE_PATHSEP,
- alias, cert7);
- if (!copyFile(oldCert, newfile) ||
- !verify_file_or_dir(newfile, PR_FILE_FILE, NULL, 0, (PRFileType)0)) {
- errorRpt(INCORRECT_USAGE, getResourceString(DBT_UNABLE_TO_MIGRATE));
- }
- PR_smprintf_free(newfile);
- newfile = PR_smprintf("%s%calias%c%s-%s.db",
- newRoot, FILE_PATHSEP, FILE_PATHSEP,
- alias, key3);
- if (!copyFile(fileName, newfile) ||
- !verify_file_or_dir(newfile, PR_FILE_FILE, NULL, 0, (PRFileType)0)) {
- errorRpt(INCORRECT_USAGE, getResourceString(DBT_UNABLE_TO_MIGRATE));
- }
- PR_smprintf_free(newfile);
- } else {
- PR_snprintf(msg, sizeof(msg), getResourceString(DBT_NO_FILE_EXISTS), fileName);
- errorRpt(INCORRECT_USAGE, msg);
- }
- PORT_Free(oldCert);
- }
- PORT_Free(fileName);
- }
-
- PORT_Free(oldRoot);
- PORT_Free(newRoot);
+ errorRpt(INCORRECT_USAGE, getResourceString(DBT_MIGRATION_NOT_SUPPORTED));
}
-char* toLowerCase(char* str) {
- char* lowerCase = (char*)PORT_ZAlloc(PORT_Strlen(str)+1);
- int i;
-
- for(i=0; str[i] != '\0'; i++) {
- lowerCase[i] = PORT_Tolower(str[i]);
- }
-
- return lowerCase;
+/* migration via CGI is no longer supported - migration is performed
+ as part of install/upgrade or as a separate command line utility */
+static void keyCertMigrate() {
+ errorRpt(INCORRECT_USAGE, getResourceString(DBT_MIGRATION_NOT_SUPPORTED));
}
int main(int argc, char *argv[])
@@ -2266,8 +1951,11 @@
int _ai = ADMUTIL_Init();
char * m = getenv("REQUEST_METHOD");
char * qs = 0;
- char *sie;
+ char *securitydir = NULL; /* looked up via sie */
char msg[BIG_LINE];
+ AdmldapInfo ldapInfo; /* our config */
+ int rc = 0;
+ char *sie;
#if 0
CGI_Debug("security");
@@ -2276,8 +1964,8 @@
/*setup i18n stuff*/
{
char *lang=getenv("HTTP_ACCEPT_LANGUAGE");
- PR_snprintf(line, sizeof(line), "%s%cbin/admin/admin/bin/property", getenv("NETSITE_ROOT"), FILE_PATHSEP);
- i18nResource = res_init_resource(line, RESOURCE_FILE);
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
+ i18nResource_common = res_find_and_init_resource(PROPERTYDIR, COMMON_RESOURCE_FILE);
acceptLanguage = "en";
if (lang) acceptLanguage = strdup(lang);
@@ -2296,39 +1984,37 @@
post_begin(stdin);
- sie = toLowerCase(getParameter("sie", getResourceString(DBT_SIE)));
+ sie = getParameter("sie", getResourceString(DBT_SIE));
+ ldapInfo = admldapBuildInfoOnly(CONFIGDIR, &rc);
+ if (rc || !ldapInfo) {
+ PR_snprintf(line, sizeof(line), getResourceString(CMN_CONFIGPROBLEM), CONFIGDIR, rc);
+ errorRpt(FILE_ERROR, line);
+ }
+
+ securitydir = getSecurityDir(ldapInfo, sie);
{
char* operation = getParameter("formop",getResourceString(DBT_OP));
- if (!operation) {
- /* if we got here it means front end pass back
- a bogus operation string */
- PR_snprintf(line, sizeof(line), getResourceString(DBT_NO_OP), operation);
- errorRpt(INCORRECT_USAGE, line);
+ if (!operation) {
+ /* if we got here it means front end pass back
+ a bogus operation string */
+ PR_snprintf(line, sizeof(line), getResourceString(DBT_NO_OP), operation);
+ errorRpt(INCORRECT_USAGE, line);
} else if (!PORT_Strcmp(operation, "MIGRATE_DB")) {
- keyCertMigrate(getParameter("alias",getResourceString(DBT_ALIAS)),
- sie);
-
+ keyCertMigrate();
} else {
/*only initialize db when we are not trying to migrate
if we initialize db then we won't be able to migrate because
security library will hog up the file and we can not remove it.*/
- char *dbdir = PR_smprintf("%s%calias", getenv("NETSITE_ROOT"), FILE_PATHSEP);
- char *certdbname = PR_smprintf("%s-cert8.db", sie);
- char *keydbname = PR_smprintf("%s-key3.db", sie);
- if (!is_valid_path_string(sie) ||
- !verify_file_or_dir(dbdir, PR_FILE_DIRECTORY, certdbname, 0, PR_FILE_FILE) ||
- !verify_file_or_dir(dbdir, PR_FILE_DIRECTORY, keydbname, 0, PR_FILE_FILE)) {
- PR_snprintf(msg, sizeof(msg), getResourceString(DBT_NO_FILE_EXISTS), certdbname);
+ if (!util_verify_file_or_dir(securitydir, PR_FILE_DIRECTORY, NULL, 0, PR_FILE_FILE)) {
+ PR_snprintf(msg, sizeof(msg), getResourceString(DBT_NO_FILE_EXISTS),
+ securitydir ? securitydir : "(null)");
errorRpt(INCORRECT_USAGE, msg);
- }
- PR_smprintf_free(dbdir);
- PR_smprintf_free(certdbname);
- PR_smprintf_free(keydbname);
+ }
/* we got here, we think sie is a valid prefix */
- securityInitialization(sie);
+ securityInitialization(securitydir);
if (!PORT_Strcmp(operation, "LIST_CERTIFICATE")) {
/* list cert */
Index: security.properties
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/security.properties,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- security.properties 18 Aug 2005 18:59:03 -0000 1.3
+++ security.properties 9 May 2007 00:26:30 -0000 1.4
@@ -58,13 +58,13 @@
security44 { "Unable to delete the CRL or CKL specified." }
security45 { "Unable to find the CRL or CKL specified." }
//#/* module operation */
-security50 { "Could not open file %s." }
+security50 { "Could not open file %s. File does not exist or filename is invalid." }
security51 { "Could not add module found in file %s." }
security52 { "The module has been successfully added. Please restart the console for changes to take effect." }
security53 { "No file specified. Enter the full path of a file." }
security54 { "No file format specified." }
security55 { "Invalid file format." }
-security56 { "No module name specified. Please enter the module name." }
+security56 { "No module name or incorrect module name specified. Please enter a valid module name." }
security57 { "The module has been successfully removed. Please restart the console for changes to take effect." }
security58 { "Module might not have been removed." }
security59 { "Additional information available in %s." }
@@ -96,10 +96,15 @@
security110 { "Error decoding the CRL/CKL file. Please make sure it is valid." }
security111 { "Error deleting the existing CRL/CKL in replacement process." }
security112 { "Error writing the new CRL/CKL into the certificate database." }
+security113 { "The file %s does not contain a valid CRL/CKL" }
//#/* key/cert migration */
security120 { "Alias" }
security121 { "Key or Certificate database doesn't exist in the old server root specified" }
security122 { "Unable to migrate old Key or certificate database to new server. Make sure there aren't any server using the key and certificate database." }
security123 { "Invalid server specified." }
-
+security124 { "Migration of old key and certificate databases is no longer supported."
+ " Migration will usually be performed as part of upgrade installation, or"
+ " as a separate migration command. Please refer to the Admin Server guide"
+ " for more information." }
+security150 { "The module operation code \"%s\" is not valid." }
}
Index: setport.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/setport.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- setport.c 18 Aug 2005 18:59:03 -0000 1.4
+++ setport.c 9 May 2007 00:26:30 -0000 1.5
@@ -112,7 +112,7 @@
if (binddn) rv = ADM_GetCurrentPassword(&err, &bindpw);
- rv = ADMSSL_InitSimple();
+ rv = ADMSSL_InitSimple(CONFIGDIR, SECURITYDIR);
if (rv) {
rpt_err(APP_ERROR, "SSL related initialization failed", NULL, NULL);
}
Index: snmpconf.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/snmpconf.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- snmpconf.c 11 May 2006 14:29:30 -0000 1.6
+++ snmpconf.c 9 May 2007 00:26:30 -0000 1.7
@@ -33,6 +33,8 @@
#include "libadminutil/distadm.h"
#include "libadmin/sconf.h"
+#include "config.h"
+
#define INTsystem_free free
#define INTsystem_malloc malloc
#define INTsystem_realloc realloc
@@ -112,13 +114,8 @@
static Resource *i18nResource = NULL;
static void i18nInit() {
- char resPath[256], *execPath;
- execPath = getcwd(resPath, 256);
- if (execPath) {
- PL_strncpyz(resPath, execPath, sizeof(resPath));
- PL_strcatn(resPath, sizeof(resPath), "/property");
- i18nResource = res_init_resource(resPath, RESOURCE_FILE);
- }
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
+
if (getenv("HTTP_ACCEPT_LANGUAGE")) {
acceptLanguage = getenv("HTTP_ACCEPT_LANGUAGE");
}
Index: snmpmctl.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/snmpmctl.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- snmpmctl.c 11 May 2006 14:29:30 -0000 1.6
+++ snmpmctl.c 9 May 2007 00:26:30 -0000 1.7
@@ -55,6 +55,8 @@
#include "libadminutil/admutil.h"
#include "libadmin/sconf.h"
+#include "config.h"
+
#define MASTERAGT_PID "pid_masteragt"
#define MAGT_CONF "/plugins/snmp/magt/CONFIG"
#define SEPERATOR 0x1F
@@ -130,13 +132,8 @@
static Resource *i18nResource = NULL;
static void i18nInit() {
- char resPath[256], *execPath;
- execPath = getcwd(resPath, 256);
- if (execPath) {
- PL_strncpyz(resPath, execPath, sizeof(resPath));
- PL_strcatn(resPath, sizeof(resPath), "/property");
- i18nResource = res_init_resource(resPath, RESOURCE_FILE);
- }
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
+
if (getenv("HTTP_ACCEPT_LANGUAGE")) {
acceptLanguage = getenv("HTTP_ACCEPT_LANGUAGE");
}
Index: start_config_ds.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/start_config_ds.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- start_config_ds.c 31 Mar 2006 22:58:20 -0000 1.5
+++ start_config_ds.c 9 May 2007 00:26:30 -0000 1.6
@@ -32,27 +32,9 @@
#include <stdlib.h>
#include <string.h>
-#ifdef XP_UNIX
-# define FILE_SEP '/'
-# define STRNCASECMP strncasecmp
-# define SLEEP sleep
-# include <unistd.h>
-#else /* XP_WIN32 */
-# define FILE_SEP '/'
-# define STRNCASECMP _strnicmp
-# define SLEEP _sleep
-#endif
-
-#define PATH_LENGTH 1024
-#define ADMIN_CONFIG_FILE "adm.conf"
-#define COMMENT_CHAR '#'
-#define LDAP_START_KEY "ldapStart"
+#include <config.h>
-void
-error(char *msg)
-{
- printf("StartConfigDS Error: %s\n", msg);
-}
+#include <libadminutil/admutil.h>
int
error_exit(char *msg)
@@ -67,7 +49,7 @@
int
success_exit()
{
- SLEEP(10);
+ sleep(10);
printf("Content-type: text/html\n");
printf("Content-length: 13\n\n");
printf("NMC_Status: 0");
@@ -76,72 +58,23 @@
exit(0) ;
}
-static char *
-caseless_strstr(char *string, char *pattern)
-{
- char *p;
-
- if (!string || !pattern)
- return (NULL);
-
- for (p = string ; *p ; p++)
- {
- if (!STRNCASECMP(p, pattern, strlen(pattern)))
- return (p);
- }
-
- return (NULL);
-}
-
int
main(int argc, char *argv[])
{
- char path[PATH_LENGTH], line[PATH_LENGTH];
- char *admroot = NULL;
- char *srvroot = NULL;
- FILE *configfile = NULL;
- char *p;
- int ret_val;
+ int ret_val = 0;
+ char *startcmd = 0;
+ AdmldapInfo info;
/* find and open the AS config file adm.conf */
+ info = admldapBuildInfoOnly(CONFIGDIR, &ret_val);
- if (!(admroot = getenv("ADMSERV_ROOT")))
- return error_exit("ADMSERV_ROOT not found");
-
- if (!(srvroot = getenv("NETSITE_ROOT")))
- return error_exit("NETSITE_ROOT not found");
-
- snprintf(path, sizeof(path), "%s%c%s", admroot, FILE_SEP, ADMIN_CONFIG_FILE);
- path[sizeof(path)-1] = 0;
-
- if (!(configfile = fopen(path, "r")))
+ if (!info) {
return error_exit("Failed to open adm.conf");
+ }
- /* look for config DS start executable path */
-
- while (fgets(line, PATH_LENGTH, configfile))
- {
- if (line[0] == COMMENT_CHAR)
- continue;
-
- if (STRNCASECMP(line, LDAP_START_KEY, strlen(LDAP_START_KEY)))
- continue;
-
- /* found. chew whitespace, build full executable path and execute. */
-
- p = line;
- p += strlen(LDAP_START_KEY);
- while (*p != ':')
- p++;
- p++;
- while ((*p == ' ') || (*p == '\t'))
- p++;
-
- snprintf(path, sizeof(path), "%s%c%s", srvroot, FILE_SEP, p);
- path[sizeof(path)-1] = 0;
-
- /* this should probably be an explicit fork/exec, but I don't have the time... */
- if ((ret_val = system(path)) == -1)
+ startcmd = admldapGetLdapStart(info);
+ if (startcmd) {
+ if ((ret_val = system(startcmd)) == -1)
return error_exit("system() returned -1");
if (ret_val != 0)
Index: statpingserv.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/statpingserv.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- statpingserv.c 11 May 2006 14:29:30 -0000 1.5
+++ statpingserv.c 9 May 2007 00:26:30 -0000 1.6
@@ -129,7 +129,7 @@
rpt_success("The server is DOWN.");
return 1;
}
- file = strdup("../icons/togoff.gif");
+ file = PR_smprintf("%s/togoff.gif", ICONDIR);
}
else {
/* SERVER IS RUNNING - output of ON button */
@@ -137,7 +137,7 @@
rpt_success("The server is UP.");
return 1;
}
- file = strdup("../icons/togon.gif");
+ file = PR_smprintf("%s/togon.gif", ICONDIR);
}
PR_Close(req_socket);
@@ -152,6 +152,7 @@
PR_Sync(PR_STDOUT);
gif = PR_Open(file, PR_RDONLY, 0);
+ PR_smprintf_free(file);
if(!gif)
rpt_err(APP_ERROR, "Cannot open gif file!", NULL, NULL);
while (0 < (bytes = PR_Read(gif, gifbuf, sizeof(gifbuf)))) {
Index: statusping.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/statusping.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- statusping.c 18 Aug 2005 18:59:03 -0000 1.3
+++ statusping.c 9 May 2007 00:26:30 -0000 1.4
@@ -21,7 +21,7 @@
/*
* Server ping
*
- * This cgi provide a way for java front end to pin the server for status
+ * This cgi provide a way for java front end to ping the server for status
*
*/
Index: stopsrv.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/stopsrv.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- stopsrv.c 31 Mar 2006 22:58:20 -0000 1.5
+++ stopsrv.c 9 May 2007 00:26:30 -0000 1.6
@@ -38,6 +38,9 @@
#endif
#include "libadminutil/resource.h"
+#include "libadmin/libadmin.h"
+
+#include "config.h"
#define RESOURCE_FILE "stopsrv"
@@ -64,7 +67,7 @@
char*
getResourceString(char *key) {
- return (char *)(res_getstring(i18nResource, key, acceptLanguage));
+ return (char *)(res_getstring(i18nResource, key, acceptLanguage, NULL, 0, NULL));
}
/* html resource string */
@@ -72,19 +75,14 @@
{
int _ai=ADMUTIL_Init();
char *m = getenv("REQUEST_METHOD");
+ char msgbuf[BUFSIZ];
char line[BIG_LINE];
char *lang=getenv("HTTP_ACCEPT_LANGUAGE");
- char resPath[256], *execPath;
char *return_format = NULL;
char *qs = 0;
- execPath = getcwd(resPath, 256);
- if (execPath) {
- PL_strncpyz(resPath, execPath, sizeof(resPath));
- PL_strcatn(resPath, sizeof(resPath), "/property");
- i18nResource = res_init_resource(resPath, RESOURCE_FILE);
- }
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
if (lang) acceptLanguage = strdup(lang);
@@ -113,7 +111,7 @@
rpt_err(SYSTEM_ERROR,
res_getstring(i18nResource,
DBT_NO_NEW_PROCESS,
- acceptLanguage),
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL),
NULL, NULL);
}
}
@@ -142,8 +140,9 @@
#else
sleep(5);
#endif
- PR_snprintf(line, sizeof(line), "%s/stop-admin", getenv("NETSITE_ROOT"));
- system(line);
+ if (util_find_file_in_paths(line, sizeof(line), "stop-admin", CMDBINDIR, "../..", "")) {
+ system(line);
+ }
exit(0);
break;
default:
@@ -158,7 +157,7 @@
else {
rpt_unknown(res_getstring(i18nResource,
DBT_SHUTDOWN_ACK,
- acceptLanguage));
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL));
}
}
else {
@@ -181,7 +180,7 @@
else {
rpt_unknown(res_getstring(i18nResource,
DBT_SHUTDOWN_ACK,
- acceptLanguage));
+ acceptLanguage, msgbuf, sizeof(msgbuf), NULL));
}
}
else {
Index: ugdsconfig.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/ugdsconfig.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ugdsconfig.c 31 Mar 2006 22:58:20 -0000 1.6
+++ ugdsconfig.c 9 May 2007 00:26:30 -0000 1.7
@@ -62,11 +62,15 @@
#include "libadmsslutil/psetcssl.h"
#include "libadmsslutil/admsslutil.h"
#include "libadmsslutil/certmgt.h"
-#include "utf8.h"
+#include "util.h"
#include "cert.h"
-static void handle_getconfig();
-static void handle_setconfig();
+#include "libadmin/libadmin.h"
+
+#include "config.h"
+
+static void handle_getconfig(const char *configdir, const char *securitydir);
+static void handle_setconfig(const char *configdir, const char *securitydir);
static char *getGlobalInfoDN(char *siedn);
static char *nonull_value(char *str);
@@ -83,19 +87,21 @@
/* Automatically enable logging if <cgi-name>.dbg file exists in the logs directory */
if (!log_enabled && !enable_verified) {
+ const char *logdir = util_get_log_dir();
enable_verified = 1;
- PR_snprintf(logfile, sizeof(logfile), "%s/../logs/ugdsconfig.dbg", getenv("ADMSERV_ROOT"));
- logfp = fopen(logfile, "r");
- if (logfp == NULL) {
- return;
- }
- log_enabled = 1;
- fclose(logfp);
- logfp=NULL;
- }
+ if (util_is_dir_ok(logdir)) {
+ PR_snprintf(logfile, sizeof(logfile), "%s/ugdsconfig.dbg", logdir);
+ logfp = fopen(logfile, "r");
+ if (logfp == NULL) {
+ return;
+ }
+ log_enabled = 1;
+ fclose(logfp);
+ logfp=NULL;
+ }
+ }
if (logfp==NULL) {
- PR_snprintf(logfile, sizeof(logfile), "%s/../logs/ugdsconfig.dbg", getenv("ADMSERV_ROOT"));
logfp = fopen(logfile, "w");
}
@@ -134,13 +140,8 @@
static Resource *i18nResource = NULL;
static void i18nInit() {
- char resPath[256], *execPath;
- execPath = getcwd(resPath, 256);
- if (execPath) {
- PL_strncpyz(resPath, execPath, sizeof(resPath));
- PL_strcatn(resPath, sizeof(resPath), "/property");
- i18nResource = res_init_resource(resPath, RESOURCE_FILE);
- }
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
+
if (getenv("HTTP_ACCEPT_LANGUAGE")) {
acceptLanguage = getenv("HTTP_ACCEPT_LANGUAGE");
}
@@ -152,9 +153,10 @@
}
static const char *i18nMsg(char *msgid, char *defaultMsg) {
const char *msg=NULL;
+ static char buf[BUFSIZ]; /* ok - not threaded code */
if (i18nResource) {
- msg = res_getstring(i18nResource, msgid, acceptLanguage);
+ msg = res_getstring(i18nResource, msgid, acceptLanguage, buf, sizeof(buf), NULL);
}
if (msg == NULL) {
msg = (const char*)defaultMsg;
@@ -176,7 +178,6 @@
int _ai=ADMUTIL_Init();
char *method = getenv("REQUEST_METHOD");
- char *root = getenv("NETSITE_ROOT");
char *qs = 0, *op=0;
logMsg(" In %s\n", argv[0]);
@@ -218,10 +219,10 @@
rpt_err(INCORRECT_USAGE, i18nMsg(DBT_NO_OPERATION,"No operation is defined"), NULL, NULL);
}
if (strcmp(op,"getconfig") == 0) {
- handle_getconfig();
+ handle_getconfig(CONFIGDIR, SECURITYDIR);
}
else if (strcmp(op,"setconfig") == 0) {
- handle_setconfig();
+ handle_setconfig(CONFIGDIR, SECURITYDIR);
}
else {
PR_snprintf(error_info, sizeof(error_info), i18nMsg(DBT_UNKNOWN_OPERATION,"Unknown Operation (%s)"), op);
@@ -235,29 +236,28 @@
/*
* Return current U/G directory setting
*/
-static void handle_getconfig()
+static void handle_getconfig(const char *configdir, const char *securitydir)
{
char *inforef=NULL, *globaldirurl=NULL, *dirurl=NULL, *binddn=NULL, *bindpw=NULL;
AdmldapInfo adminfo;
- char *admroot = getenv("ADMSERV_ROOT");
int rc;
logMsg("In handle_getconfig\n");
- if(ADMSSL_InitSimple()) {
+ if(ADMSSL_InitSimple((char *)configdir, (char *)securitydir, 0)) {
rpt_err(SYSTEM_ERROR, i18nMsg(DBT_ADMSSL_INIT_FAILED,"Cannot initialize SSL"), NULL, NULL);
}
- adminfo = admldapBuildInfo(admroot, &rc);
+ adminfo = admldapBuildInfo((char *)configdir, &rc);
if (adminfo == NULL) {
- logMsg("admldapBuildInfo failed, rc=%d, admroot=%s\n", rc, nonull_value(admroot));
+ logMsg("admldapBuildInfo failed, rc=%d, admroot=%s\n", rc, nonull_value((char *)configdir));
PR_snprintf(error_info, sizeof(error_info), i18nMsg(DBT_BUILD_LDAPINFO,"Failed to build ldap info (err=%d)"), rc);
rpt_err(SYSTEM_ERROR, error_info, NULL, NULL);
}
if (admldapGetSecurity(adminfo)) {
if (!admldapBuildInfoSSL(adminfo, &rc)) {
- logMsg("admldapBuildInfo failed, rc=%d, admroot=%s\n", rc, nonull_value(admroot));
+ logMsg("admldapBuildInfo failed, rc=%d, admroot=%s\n", rc, nonull_value((char *)configdir));
PR_snprintf(error_info, sizeof(error_info), i18nMsg(DBT_BUILD_LDAPINFO,"Failed to build ldap info (err=%d)"), rc);
rpt_err(SYSTEM_ERROR, error_info, NULL, NULL);
}
@@ -297,10 +297,9 @@
/*
* Modify U/G Directory setting
*/
-static void handle_setconfig() {
+static void handle_setconfig(const char *configdir, const char *securitydir) {
char *inforef=NULL, *dirurl=NULL, *binddn=NULL, *bindpw=NULL;
- char *admroot = getenv("ADMSERV_ROOT");
char *siedn;
AdmldapInfo adminfo;
LDAPURLDesc *url;
@@ -308,12 +307,12 @@
logMsg("In handle_setconfig\n");
- if(ADMSSL_InitSimple()) {
+ if(ADMSSL_InitSimple((char *)configdir, (char *)securitydir, 0)) {
rpt_err(SYSTEM_ERROR, i18nMsg(DBT_ADMSSL_INIT_FAILED,"Cannot initialize SSL"), NULL, NULL);
}
inforef = get_cgi_var( "ugdsconfig.inforef", NULL, NULL );
- dirurl = localToUTF8((const char*)get_cgi_var( "ugdsconfig.dirurl", NULL, NULL ));
+ dirurl = util_local_to_utf8((const char*)get_cgi_var( "ugdsconfig.dirurl", NULL, NULL ));
binddn = get_cgi_var( "ugdsconfig.binddn", NULL, NULL );
bindpw = get_cgi_var( "ugdsconfig.bindpw", NULL, NULL );
@@ -323,16 +322,16 @@
logMsg("bindpw size=%d\n", strlen(nonull_value(bindpw)));
- adminfo = admldapBuildInfo(admroot, &rc);
+ adminfo = admldapBuildInfo((char *)configdir, &rc);
if (adminfo == NULL) {
- logMsg("admldapBuildInfo failed, rc=%d, admroot=%s\n", rc, nonull_value(admroot));
+ logMsg("admldapBuildInfo failed, rc=%d, admroot=%s\n", rc, nonull_value((char *)configdir));
PR_snprintf(error_info, sizeof(error_info), i18nMsg(DBT_BUILD_LDAPINFO,"Failed to build ldap info (err=%d)"), rc);
rpt_err(SYSTEM_ERROR, error_info, NULL, NULL);
}
if (admldapGetSecurity(adminfo)) {
if (!admldapBuildInfoSSL(adminfo, &rc)) {
- logMsg("admldapBuildInfo failed, rc=%d, admroot=%s\n", rc, nonull_value(admroot));
+ logMsg("admldapBuildInfo failed, rc=%d, admroot=%s\n", rc, nonull_value((char *)configdir));
PR_snprintf(error_info, sizeof(error_info), i18nMsg(DBT_BUILD_LDAPINFO,"Failed to build ldap info (err=%d)"), rc);
rpt_err(SYSTEM_ERROR, error_info, NULL, NULL);
}
@@ -344,7 +343,8 @@
inforef = getGlobalInfoDN(siedn);
}
- if (!admldapSetAdmGrpUserDirectoryCGI(NULL, NULL, NULL, inforef, &rc)) {
+ if (!admldapSetAdmGrpUserDirectoryCGI(adminfo, NULL, NULL, NULL, inforef, &rc)) {
+ adminfo = NULL; /* gets destroyed upon failure */
logMsg("admldapSetAdmGrpDirectoryCGI failed, rc=%d, inforef=%s\n", rc, nonull_value(inforef));
PR_snprintf(error_info, sizeof(error_info), i18nMsg(DBT_GLOBAL_SETUSERDIR,"Failed to set link to the Domain User Directory Info (err=%d)"), rc);
rpt_err(SYSTEM_ERROR, error_info, NULL, NULL);
@@ -356,16 +356,6 @@
PR_snprintf(error_info, sizeof(error_info), i18nMsg(DBT_NO_SETPARAM,"Parameter %s missing"), "ugdsconfig.dirurl");
rpt_err(INCORRECT_USAGE, error_info, NULL, NULL);
}
- /*if (binddn==NULL) {
- logMsg("param ugdsconfig.binddn missing");
- PR_snprintf(error_info, sizeof(error_info), i18nMsg(DBT_NO_SETPARAM,"Parameter %s missing"), "ugdsconfig.binddn");
- rpt_err(INCORRECT_USAGE, error_info, NULL, NULL);
- }*/
- /*if (bindpw==NULL) {
- logMsg("param ugdsconfig.bindpw missing");
- PR_snprintf(error_info, sizeof(error_info), i18nMsg(DBT_NO_SETPARAM,"Parameter %s missing"), "ugdsconfig.bindpw");
- rpt_err(INCORRECT_USAGE, error_info, NULL, NULL);
- }*/
if ((rc = ldap_url_parse(dirurl, & url)) != 0) {
logMsg("Bad ugdsconfig.dirurl");
@@ -373,13 +363,18 @@
rpt_err(INCORRECT_USAGE, error_info, NULL, NULL);
}
- if (!admldapSetAdmGrpUserDirectoryCGI(dirurl, binddn, bindpw, NULL, &rc)) {
+ if (!admldapSetAdmGrpUserDirectoryCGI(adminfo, dirurl, binddn, bindpw, NULL, &rc)) {
+ adminfo = NULL; /* gets destroyed upon failure */
logMsg("admldapSetAdmGrpDirectoryCGI failed, rc=%d\n", rc);
PR_snprintf(error_info, sizeof(error_info), i18nMsg(DBT_LOCAL_SETUSERDIR,"Failed to set User Directory Parameters for the Admin Group (err=%d)"), rc);
rpt_err(SYSTEM_ERROR, error_info, NULL, NULL);
}
}
+ if (adminfo) {
+ destroyAdmldap(adminfo);
+ }
+
rpt_success(NULL);
}
Index: viewdata.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/viewdata.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- viewdata.c 11 May 2006 14:29:30 -0000 1.6
+++ viewdata.c 9 May 2007 00:26:30 -0000 1.7
@@ -36,9 +36,9 @@
#include "libadmsslutil/admsslutil.h"
#include "libadmin/libadmin.h"
#include "libadmin/cluster.h"
-#include "ldapu.h"
#include <ldap_ssl.h>
-#include "setupinst.h"
+
+#include "config.h"
#define MY_PAGE "viewdata.html"
@@ -88,17 +88,12 @@
char*
getResourceString(char *key) {
- return (char *)(res_getstring(i18nResource, key, acceptLanguage));
+ static char msgbuf[BUFSIZ]; /* ok - not threaded code */
+ return (char *)(res_getstring(i18nResource, key, acceptLanguage, msgbuf, sizeof(msgbuf), NULL));
}
static void i18nInit() {
- char resPath[256], *execPath;
- execPath = getcwd(resPath, 256);
- if (execPath) {
- PL_strncpyz(resPath, execPath, sizeof(resPath));
- PL_strcatn(resPath, sizeof(resPath), "/property");
- i18nResource = res_init_resource(resPath, RESOURCE_FILE);
- }
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
if (getenv("HTTP_ACCEPT_LANGUAGE")) {
acceptLanguage = getenv("HTTP_ACCEPT_LANGUAGE");
}
@@ -109,22 +104,16 @@
* Get the AdmldapInfo struct for ldap SDK API.
*/
-AdmldapInfo get_adm_ldapinfo() {
+AdmldapInfo get_adm_ldapinfo(const char *configdir, const char *securitydir) {
AdmldapInfo ldapInfo = NULL;
int rv;
- char admroot[BIG_LINE];
-
- PR_snprintf(admroot, sizeof(admroot), "%s%cadmin-serv%cconfig",
- getenv("NETSITE_ROOT"),
- FILE_PATHSEP,
- FILE_PATHSEP);
- ldapInfo = admldapBuildInfo(admroot, &rv);
+ ldapInfo = admldapBuildInfo((char *)configdir, &rv);
if(!ldapInfo)
exit(0);
- rv = ADMSSL_InitSimple();
+ rv = ADMSSL_InitSimple((char *)configdir, (char *)securitydir, 0);
if(rv)
exit(0);
@@ -413,7 +402,7 @@
char *qs = getenv("QUERY_STRING");
char line[BIG_LINE];
FILE *html = open_html_file(MY_PAGE);
- char *sie;
+ char *sie = NULL;
char *request;
int errorcode;
@@ -425,7 +414,7 @@
LDAPMessage *entry;
int ldapError;
- AdmldapInfo ldapInfo = get_adm_ldapinfo();
+ AdmldapInfo ldapInfo = get_adm_ldapinfo(CONFIGDIR, SECURITYDIR);
i18nInit();
@@ -445,6 +434,10 @@
sie=get_cgi_var("sie", NULL, NULL);
}
+ if (!sie) { /* error - incorrect usage */
+ rpt_err(INCORRECT_USAGE, "This program must be called as a GET CGI with the sie parameter", NULL, NULL);
+ }
+
while(next_html_line(html, line)) {
if(parse_line(line, NULL)) {
if(directive_is(line, "SHOW_DATA")) {
Index: viewlog.c
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/viewlog.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- viewlog.c 31 Mar 2006 22:58:20 -0000 1.5
+++ viewlog.c 9 May 2007 00:26:30 -0000 1.6
@@ -34,9 +34,21 @@
#include <sys/types.h>
#include "libadmin/libadmin.h"
+#include "config.h"
+#include "libadmsslutil/psetcssl.h"
+#include "libadmsslutil/admsslutil.h"
+
+#include "config.h"
+
+#include "cgicommon.h"
+
+
#define MY_PAGE "viewlog.html"
#define DEF_SIZE "25"
+#define LOGDIRATTR "nslogdir"
+#define ERRORLOGATTR "nserrorlog"
+
/*
* i18n conversions defines and function;
* properties file = "viewlog.properties"
@@ -70,10 +82,15 @@
static char *acceptLanguage = (char*)"en";
static Resource *i18nResource = NULL;
+static Resource *i18nResource_common = NULL;
-char*
+static char*
getResourceString(char *key) {
- return (char *)(res_getstring(i18nResource, key, acceptLanguage));
+ if (key && !strncmp(key, COMMON_RESOURCE_FILE, strlen(COMMON_RESOURCE_FILE))) {
+ return (char *)(res_getstring(i18nResource_common, key, acceptLanguage, NULL, 0, NULL));
+ } else {
+ return (char *)(res_getstring(i18nResource, key, acceptLanguage, NULL, 0, NULL));
+ }
}
void search_file(FILE *cmd, int num, char *str) {
@@ -126,32 +143,23 @@
}
static void i18nInit() {
- char resPath[256], *execPath;
- execPath = getcwd(resPath, 256);
- if (execPath) {
- PL_strncpyz(resPath, execPath, sizeof(resPath));
- PL_strcatn(resPath, sizeof(resPath), "/property");
- i18nResource = res_init_resource(resPath, RESOURCE_FILE);
- }
+ i18nResource = res_find_and_init_resource(PROPERTYDIR, RESOURCE_FILE);
+ i18nResource_common = res_find_and_init_resource(PROPERTYDIR, COMMON_RESOURCE_FILE);
+
if (getenv("HTTP_ACCEPT_LANGUAGE")) {
acceptLanguage = getenv("HTTP_ACCEPT_LANGUAGE");
}
}
-void display_logfiles(char *dirs, char *default_logfile)
+void display_logfiles(char *logdir, char *default_logfile)
{
int x;
int cnt=0;
- int remcnt=0;
char *seps = "/";
char *token;
char *curlog = NULL;
- char *keyword = NULL;
char **logfiles;
- char full_directory[PATH_MAX];
- char *current_dir;
- char temp_dirs[BIG_LINE];
int at_least_one=0;
if (default_logfile != NULL) {
@@ -163,30 +171,18 @@
}
fprintf(stdout, getResourceString(DBT_DISPLAY_LOGFILE_SELECT_BEGIN));
- PL_strncpyz(temp_dirs, dirs, sizeof(temp_dirs));
- current_dir = strtok(temp_dirs, "|");
-
- while(current_dir) {
- PR_snprintf(full_directory, sizeof(full_directory), "%s%c%s",
- getenv("NETSITE_ROOT"),
- FILE_PATHSEP,
- current_dir);
-
- logfiles = list_directory(full_directory, 0);
+ logfiles = list_directory(logdir, 0);
- for(x=0; logfiles && logfiles[x]; x++) {
- if (curlog && !strcmp(curlog, logfiles[x])) {
- fprintf(stdout, getResourceString(DBT_DISPLAY_LOGFILE_VALUE_SELECTED),
- logfiles[x], logfiles[x]);
- }
- else {
- fprintf(stdout, getResourceString(DBT_DISPLAY_LOGFILE_SELECT_VALUE),
- logfiles[x], logfiles[x]);
- }
- at_least_one = 1;
+ for(x=0; logfiles && logfiles[x]; x++) {
+ if (curlog && !strcmp(curlog, logfiles[x])) {
+ fprintf(stdout, getResourceString(DBT_DISPLAY_LOGFILE_VALUE_SELECTED),
+ logfiles[x], logfiles[x]);
}
-
- current_dir = strtok(NULL, "|");
+ else {
+ fprintf(stdout, getResourceString(DBT_DISPLAY_LOGFILE_SELECT_VALUE),
+ logfiles[x], logfiles[x]);
+ }
+ at_least_one = 1;
}
if(!at_least_one)
@@ -197,168 +193,62 @@
}
-int already_exists(char *list, char *element) {
- char *temp = strdup(list);
- char *ptr;
-
- ptr = strtok(temp, "|");
- while(ptr) {
- if(!strcmp(ptr, element))
- return 1;
- ptr = strtok(NULL, "|");
- }
- return 0;
-}
-
-
-/*
- * Given a list of log directories, find the one containing file.
- */
-
-char *get_current_dir(char *directories, char *file) {
-
- char temp[BIG_LINE];
- char path[PATH_MAX];
- char *ptr;
- char **list;
- int i;
-
- if(!file)
- return NULL;
-
- PL_strncpyz(temp, directories, sizeof(temp));
-
- ptr = strtok(temp, "|");
- while(ptr != NULL) {
- PR_snprintf(path, sizeof(path), "%s%c%s",
- getenv("NETSITE_ROOT"),
- FILE_PATHSEP,
- ptr);
- list = list_directory(path, 0);
- i=0;
- while(list && list[i] != NULL) {
- if(!strcmp(list[i], file))
- return strdup(ptr);
- i++;
- }
- ptr = strtok(NULL, "|");
- }
-
- return NULL;
-}
-
-
/*
- * Given the server's ID, find the directories containing all log files for that instance.
- * This is hardcoded for each 4.0/4.1 server product type.
+ * Given the server's ID, find the log directory for that instance.
+ * Note that the earlier version of the product supported having multiple log file
+ * directories. This version assumes all log files are in the same directory. This
+ * is a result of the FHS work which encourages the use of one log directory per
+ * product or instance.
*/
-char *guess_directories(char *id) {
+char *get_log_dir(char *id) {
- char config_file[PATH_MAX];
- FILE *file;
- char inbuf[BIG_LINE];
- char *return_dirs = NULL;
- char *ptr, *ptr2;
+ char *return_dir = NULL;
+ PsetHndl pset = NULL;
+ int rv = 0;
char *errorlog_attr = NULL;
char *accesslog_attr = NULL;
- if(!strncmp(id, "slapd-", 6)) {
- /* DIRECTORY SERVER */
- PR_snprintf(config_file, sizeof(config_file), "%s%c%s%cconfig%cslapd.conf",
- getenv("NETSITE_ROOT"),
- FILE_PATHSEP,
- id,
- FILE_PATHSEP,
- FILE_PATHSEP);
- file = fopen(config_file, "r");
- if(!file) {
- /* This might be a 5.0 version, get it from dse.ldif */
- PR_snprintf(config_file, sizeof(config_file), "%s%c%s%cconfig%cdse.ldif",
- getenv("NETSITE_ROOT"),
- FILE_PATHSEP,
- id,
- FILE_PATHSEP,
- FILE_PATHSEP);
- errorlog_attr = strdup("nsslapd-errorlog:");
- accesslog_attr = strdup("nsslapd-accesslog:");
- }
- else {
- errorlog_attr = strdup("errorlog\t");
- accesslog_attr = strdup("accesslog\t");
+ rv = ADMSSL_InitSimple(CONFIGDIR, SECURITYDIR, 0);
+ if (rv) {
+ if (i18nResource) {
+ char msgbuf[BUFSIZ];
+ rpt_err(APP_ERROR,
+ getResourceString(CMN_SSL_INIT_ERROR),
+ NULL, NULL);
+ } else {
+ rpt_err(APP_ERROR, "SSL related initialization failed", NULL, NULL);
}
}
- else if(!strncmp(id, "https-", 6)) {
- /* ENTERPRISE SERVER */
- PR_snprintf(config_file, sizeof(config_file), "%s%c%s%cconfig%cmagnus.conf",
- getenv("NETSITE_ROOT"),
- FILE_PATHSEP,
- id,
- FILE_PATHSEP,
- FILE_PATHSEP);
- errorlog_attr = strdup("ErrorLog\t");
- }
- else if(!strncmp(id, "cert-", 5)) {
- /* CERT SERVER */
- PR_snprintf(config_file, sizeof(config_file), "%s%c%s%cconfig%cCMS.cfg",
- getenv("NETSITE_ROOT"),
- FILE_PATHSEP,
- id,
- FILE_PATHSEP,
- FILE_PATHSEP);
- errorlog_attr = strdup("logError.fileName=");
- accesslog_attr = strdup("logAudit.fileName=");
- }
- file = fopen(config_file, "r");
- if(!file)
- return NULL;
- while(fgets(inbuf, sizeof(inbuf), file)) {
- if((accesslog_attr && strstr(inbuf, accesslog_attr)) ||
- (errorlog_attr && strstr(inbuf, errorlog_attr))) {
- int x;
- char *net_root = getenv("NETSITE_ROOT");
- if(strchr(net_root, '/')) {
- if(FILE_PATHSEP == '\\') {
- /* replace */
- x=0;
- while(net_root[x] != '\0') {
- if(net_root[x] == '/')
- net_root[x] = FILE_PATHSEP;
- x++;
- }
- }
- }
- else {
- if(FILE_PATHSEP == '/') {
- /* replace */
- x=0;
- while(net_root[x] != '\0') {
- if(net_root[x] == '\\')
- net_root[x] = FILE_PATHSEP;
- x++;
- }
- }
- }
+ pset = psetCreateSSL(id, CONFIGDIR, NULL, NULL, &rv);
- ptr = strstr(inbuf, net_root);
- ptr = &(ptr[strlen(net_root)+1]);
-
- ptr2 = strrchr(ptr, FILE_PATHSEP);
- ptr2[0] = '\0';
-
- if(!return_dirs)
- return_dirs = strdup(ptr);
- else {
- if(!already_exists(return_dirs, ptr)) {
- return_dirs = (char *)realloc(return_dirs, (strlen(return_dirs) + strlen(ptr) + 1));
- sprintf(return_dirs, "%s|%s", return_dirs, ptr);
+ if (pset) {
+ return_dir = psetGetAttrSingleValue(pset, LOGDIRATTR, &rv);
+ if (!return_dir) { /* no log dir - get dir from error log */
+ char *errorlog = psetGetAttrSingleValue(pset, ERRORLOGATTR, &rv);
+ if (errorlog) {
+ char *ptr = strrchr(errorlog, FILE_PATHSEP);
+ if (ptr) {
+ *ptr = '\0';
+ return_dir = errorlog;
}
}
}
+ psetDelete(pset);
+ }
+
+ if(!return_dir) {
+ if (!strncasecmp(id, "admin-", 6)) {
+ return PR_smprintf("%s%c%s", LOGDIR, FILE_PATHSEP, id); /* this is us */
+ } else if (!strncmp(id, "slapd-", 6)) {
+ /* DIRECTORY SERVER and admin server share the same log dir parent */
+ return_dir = PR_smprintf("%s%c%s", LOGDIR, FILE_PATHSEP, id);
+ }
}
- return return_dirs;
+
+ return return_dir;
}
@@ -372,11 +262,12 @@
char *num=NULL;
char *str=NULL;
char *file;
- char *directories;
+ char *logdir;
char *id;
char **logfiles = NULL;
char tmp[BIG_LINE];
int x;
+ char msg[BUFSIZ];
i18nInit();
@@ -388,7 +279,6 @@
num=get_cgi_var("num", NULL, NULL);
str=get_cgi_var("str", NULL, NULL);
file=get_cgi_var("file", NULL, NULL);
- directories=get_cgi_var("directories", NULL, NULL);
id=get_cgi_var("id", NULL, NULL);
if(!id)
@@ -396,11 +286,6 @@
getResourceString(DBT_NO_ID),
getResourceString(DBT_NO_ID_DESC), NULL);
- if((!directories) && (!id))
- rpt_err(INCORRECT_USAGE,
- getResourceString(DBT_NO_DIR),
- getResourceString(DBT_NO_DIR_DESC), NULL);
-
if(num) {
for(x=0; num[x]; x++) {
if(!isdigit(num[x]))
@@ -410,25 +295,25 @@
}
}
else
- /* need at least the directory to look in */
rpt_err(INCORRECT_USAGE,
- getResourceString(DBT_NO_DIR),
- getResourceString(DBT_NO_DIR_DESC), NULL);
+ getResourceString(DBT_NO_ID),
+ getResourceString(DBT_NO_ID_DESC), NULL);
if(!num) num=DEF_SIZE;
- if(!directories) {
- directories = guess_directories(id);
- if(!directories)
+ if(!logdir) {
+ logdir = get_log_dir(id);
+ if(!logdir) {
+ PR_snprintf(msg, sizeof(msg), getResourceString(DBT_NO_DIR_FOUND), id);
rpt_err(INCORRECT_USAGE,
- getResourceString(DBT_NO_DIR),
- getResourceString(DBT_NO_DIR_FOUND), NULL);
+ getResourceString(DBT_NO_DIR), msg, NULL);
+ }
}
while(next_html_line(html, line)) {
if(parse_line(line, NULL)) {
if(directive_is(line, "LOG_TO_VIEW")) {
- display_logfiles(directories, file);
+ display_logfiles(logdir, file);
}
else if(directive_is(line, "NUM_TO_VIEW")) {
output_input("text", "num", num, NULL);
@@ -436,9 +321,9 @@
else if(directive_is(line, "STRING_TO_VIEW")) {
output_input("text", "str", str, NULL);
}
- else if(directive_is(line, "HIDDEN_DIR")) {
- /* keep hidden track of what the current log directories and id are */
- fprintf(stdout, (const char*)getResourceString(DBT_MAIN_HIDDEN_TRACK), directories, id);
+ else if(directive_is(line, "HIDDEN_ID")) {
+ /* keep hidden track of what the current id are */
+ fprintf(stdout, (const char*)getResourceString(DBT_MAIN_HIDDEN_TRACK), id);
}
else if(directive_is(line, "ID_TITLE")) {
fprintf(stdout, (const char*)getResourceString(DBT_MAIN_ID_TITLE), id);
@@ -447,14 +332,16 @@
FILE *cmd;
char full_path[PATH_MAX];
- char *current_dir = get_current_dir(directories, file);
- if(!current_dir)
- continue;
#ifdef AIX
fflush(stdout);
#endif
+ if (!file || !*file ||
+ util_is_valid_path_string(file) ||
+ util_verify_file_or_dir(logdir, PR_FILE_DIRECTORY, file, -1, PR_FILE_FILE)) {
+ continue;
+ }
- PR_snprintf(full_path, sizeof(full_path), "%s%c%s%c%s", getenv("NETSITE_ROOT"), FILE_PATHSEP, current_dir, FILE_PATHSEP, file);
+ PR_snprintf(full_path, sizeof(full_path), "%s%c%s", logdir, FILE_PATHSEP, file);
form_unescape(full_path); /* bug 27409, 31807 */
cmd = fopen(full_path, "r");
fprintf(stdout, getResourceString(DBT_MAIN_WIDTH));
Index: viewlog.properties
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/cgi-src40/viewlog.properties,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- viewlog.properties 18 Aug 2005 18:59:03 -0000 1.3
+++ viewlog.properties 9 May 2007 00:26:30 -0000 1.4
@@ -28,11 +28,10 @@
viewlog2 { "The number of entries should be a number." }
viewlog3 { "Last %s accesses to %s%s%s:" }
viewlog4 { " with " }
-viewlog5 { "No directory found." }
-viewlog6 { "Please specify a directory to search for log files." }
+viewlog5 { "Log directory not found." }
viewlog7 { "Invalid file." }
viewlog8 { "Cannot find specified log file in directories chosen." }
-viewlog9 { "Cannot find directories based on server id." }
+viewlog9 { "Cannot find directories based on server id %s. You may need to start the configuration directory server." }
viewlog10 { "No server id specified." }
viewlog11 { "Please specify a server id." }
viewlog20 { "<select name=file>\n" }
@@ -40,7 +39,7 @@
viewlog22 { "<option value=%s>%s\n" }
viewlog23 { "<option value=No log files>No log files\n" }
viewlog24 { "</select>" }
-viewlog25 { "<input type=\"hidden\" name=\"directories\" value=\"%s\">\n<input type=\"hidden\" name=\"id\" value=\"%s\">\n" }
+viewlog25 { "<input type=\"hidden\" name=\"id\" value=\"%s\">\n" }
viewlog26 { "<table BORDER=0 CELLSPACING=2 CELLPADDING=2 WIDTH=\"100%%\">\n<tr>\n<td><font size=+1 font face=\"helvetica, arial, sans-serif\"><b>%s Logs</b></font></td>\n</tr>\n<tr>\n<td BACKGROUND=\"../icons/hr.gif\"> </td>\n</tr>\n<tr><td></table>\n" }
viewlog27 { "<hr width=50%%>\n" }
viewlog28 { "<table border=1 width=100%%><tr><th>%s</th></tr></table>\n" }
--- listOldSrvs.c DELETED ---
--- listOldSrvs.properties DELETED ---
15 years, 10 months
[Fedora-directory-commits] adminserver/admserv/html admserv.html, NONE, 1.1 viewlog.html, 1.1, 1.2
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/adminserver/admserv/html
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv32253/adminserver/admserv/html
Modified Files:
viewlog.html
Added Files:
admserv.html
Log Message:
Resolves: bug 239502, bug 186280
Description: adminserver: autotools, FHS, clean up CGI parameters
Fix Description: Too numerous to mention
--- NEW FILE admserv.html ---
<!--
BEGIN COPYRIGHT BLOCK
Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
Copyright (C) 2005 Red Hat, Inc.
All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
END COPYRIGHT BLOCK
-->
<html>
<head>
<title>Fedora Management Console</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" link="#666699" vlink="#666699" alink="#333366">
<table border="0" width="100%" cellspacing="0" cellpadding="6">
<tr bgcolor="#9999cc">
<td>
<table border="0" cellspacing="0" cellpadding="6">
<tr>
<td><font size="-1" face="Verdana, sans-serif" color="white">Fedora<b><br>
Server Products</b></font> </td>
</tr>
</table>
</td>
<td colspan="4"><font size="+1" face="Verdana, sans-serif" color="white">Services
for Users</font></td>
<td width="20%"> </td>
</tr>
<tr valign="TOP">
<td> </td>
<td colspan="4">
<table border="0" cellspacing="0" cellpadding="0">
<tr valign="TOP">
<td><img src="../icons/spacer.gif" width="6" height="6"></td>
<td></td>
</tr>
<tr valign="top">
<td><img src="../icons/goto.gif" width="10" height="15"> </td>
<td><font face="Verdana, sans-serif"><a href="/clients/dsgw/bin/lang?context=pb">
Directory Server Express</a></font><font size="-1" face="Verdana, sans-serif"><br>
Search for users by name, user ID or extension.</font><font size="-1" face="Verdana, sans-serif">
</font></td>
</tr>
<tr valign="top">
<td> </td>
<td> </td>
</tr>
<tr valign="top">
<td><img src="../icons/goto.gif" width="10" height="15"> </td>
<td><font face="Verdana, sans-serif"><a href="/clients/orgchart/html/index.html">
Directory Server Org Charts</a></font><font size="-1" face="Verdana, sans-serif"><br>
Browse org charts of your organization.</font><font size="-1" face="Verdana, sans-serif">
</font></td>
</tr>
<tr valign="TOP">
<td> </td>
<td> </td>
</tr>
</table>
</td>
<td> </td>
</tr>
<tr valign="TOP">
<td> </td>
<td bgcolor="#9999cc" colspan="4"> <font color="white" size="+1"><font face="Verdana, sans-serif">Services
for Administrators</font></font></td>
<td> </td>
</tr>
<tr valign="TOP">
<td> </td>
<td colspan="4">
<table border="0" cellspacing="0" cellpadding="0">
<tr valign="TOP">
<td><img src="../icons/spacer.gif" width="6" height="6"></td>
<td></td>
</tr>
<tr valign="top">
<td><img src="../icons/goto.gif" width="10" height="15"> </td>
<td><font face="Verdana, sans-serif"><a href="/clients/dsgw/bin/lang?context=dsgw">
Directory Server Gateway</a></font><font size="-1" face="Verdana, sans-serif"><br>
Search for and edit directory entries.</font><font size="-1" face="Verdana, sans-serif">
</font></td>
</tr>
<tr valign="top">
<td> </td>
<td> </td>
</tr>
<tr valign="TOP">
<td><img src="../icons/goto.gif" width="10" height="15"> </td>
<td><font face="Verdana, sans-serif"><a href='http://fedora.redhat.com/'>Fedora Home Page</a></font><font size="-1" face="Verdana, sans-serif"><br>
Check for upgrades and information about Fedora server products.</font><font size="-1" face="Verdana, sans-serif">
</font></td>
</tr>
<tr valign="TOP">
<td> </td>
<td> </td>
</tr>
<tr valign="TOP">
<td><img src="../icons/goto.gif" width="10" height="15"> </td>
<td><font face="Verdana, sans-serif"><a href='/admin-serv/tasks/configuration/HTMLAdmin?op=index'>Fedora
Administration Express</a></font><font size="-1" face="Verdana, sans-serif"><br>
View server status and configuration/log data.</font><font size="-1" face="Verdana, sans-serif">
</font></td>
</tr>
<tr valign="TOP">
<td> </td>
<td> </td>
</tr>
</table>
</td>
<td> </td>
</tr>
<tr valign="TOP">
<td> </td>
<td colspan="4"><font size="-1" face="Verdana, sans-serif">
<!-- BEGIN COPYRIGHT BLOCK -->
Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.<br>
Copyright (C) 2005 Red Hat, Inc.<br>
All rights reserved.<br>
<br>
This program is free software; you can redistribute it and/or<br>
modify it under the terms of the GNU General Public License<br>
as published by the Free Software Foundation; either version 2<br>
of the License, or (at your option) any later version.<br>
<br>
This program is distributed in the hope that it will be useful,<br>
but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>
GNU General Public License for more details.<br>
<br>
You should have received a copy of the GNU General Public License<br>
along with this program; if not, write to the Free Software<br>
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.<br>
<!-- END COPYRIGHT BLOCK -->
</font></td>
<td> </td>
</tr>
</table>
</body>
</html>
Index: viewlog.html
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/html/viewlog.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- viewlog.html 24 Jul 2006 12:53:20 -0000 1.1
+++ viewlog.html 9 May 2007 00:26:31 -0000 1.2
@@ -44,7 +44,7 @@
<!-- ELEMADD txt="Only show entries with: " -->
<!-- STRING_TO_VIEW -->
<!-- ENDELEM -->
-<!-- HIDDEN_DIR -->
+<!-- HIDDEN_ID -->
<!-- SUBMIT -->
</font></font>
</form>
15 years, 10 months
[Fedora-directory-commits] adminserver/admserv Makefile, 1.7, 1.8 pkgadmin.mk, 1.49, 1.50
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/adminserver/admserv
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv32253/adminserver/admserv
Modified Files:
Makefile pkgadmin.mk
Log Message:
Resolves: bug 239502, bug 186280
Description: adminserver: autotools, FHS, clean up CGI parameters
Fix Description: Too numerous to mention
Index: Makefile
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/Makefile,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Makefile 18 Jan 2006 18:24:20 -0000 1.7
+++ Makefile 9 May 2007 00:26:30 -0000 1.8
@@ -49,7 +49,6 @@
all: $(ALLTARGETS)
do-src:
-# cd src; $(MAKE) BUILD_MODULE=HTTP_ADMIN $(MFLAGS)
mkdir -p $(OBJDIR)/admin-lib
do-cgi-src:
@@ -58,7 +57,6 @@
do-html:
cd html; $(MAKE) BUILD_MODULE=HTTP_ADMIN $(MFLAGS)
-#do-console: jfc ldapjdk
do-console:
cd console; $(MAKE) BUILD_MODULE=HTTP_ADMIN $(MFLAGS)
@@ -74,12 +72,6 @@
do-viewurl:
cd viewurl/nt; $(MAKE) BUILD_MODULE=HTTP_ADMIN $(MFLAGS)
-#
-# remove end user access for admin server 4.5
-#
-#do-user-forms:
-# cd user-forms ; $(MAKE) BUILD_MODULE=HTTP_ADMIN $(MFLAGS)
-
do-ldap-stuffs:
cd schema ; $(MAKE) BUILD_MODULE=HTTP_ADMIN $(MFLAGS)
@@ -87,7 +79,6 @@
cd src; $(MAKE) BUILD_MODULE=HTTP_ADMIN clean $(MFLAGS)
cd cgi-src40; $(MAKE) BUILD_MODULE=HTTP_ADMIN clean $(MFLAGS)
cd html; $(MAKE) BUILD_MODULE=HTTP_ADMIN clean $(MFLAGS)
- cd icons; $(MAKE) BUILD_MODULE=HTTP_ADMIN clean $(MFLAGS)
+ cd icons40; $(MAKE) BUILD_MODULE=HTTP_ADMIN clean $(MFLAGS)
cd cfgstuff; $(MAKE) BUILD_MODULE=HTTP_ADMIN clean $(MFLAGS)
cd do-viewurl/nt; $(MAKE) BUILD_MODULE=HTTP_ADMIN clean $(MFLAGS)
-# cd user-forms; $(MAKE) BUILD_MODULE=HTTP_ADMIN clean $(MFLAGS)
Index: pkgadmin.mk
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/pkgadmin.mk,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- pkgadmin.mk 19 Jun 2006 18:59:44 -0000 1.49
+++ pkgadmin.mk 9 May 2007 00:26:30 -0000 1.50
@@ -52,7 +52,6 @@
CLIENT_DIR=$(UNZIPPED_DIR)/$(ADM_CLIENT)
#BASELIB_UNZIPPED_DIR=$(PKGTOP)/base/unzipped/base/lib
-#FILTER_DUP_FILES=$(BUILD_ROOT)/admserv/filter-dupfiles.sh
CHMOD=chmod
CPIO=cpio -pdum$(VERBOSE)
15 years, 10 months
[Fedora-directory-commits] adminserver AUTHORS, NONE, 1.1 COPYING, NONE, 1.1 ChangeLog, NONE, 1.1 INSTALL, NONE, 1.1 Makefile.am, NONE, 1.1 Makefile.in, NONE, 1.1 NEWS, NONE, 1.1 README, NONE, 1.1 aclocal.m4, NONE, 1.1 autogen.sh, NONE, 1.1 compile, NONE, 1.1 config.guess, NONE, 1.1 config.h.in, NONE, 1.1 config.sub, NONE, 1.1 configure, NONE, 1.1 configure.ac, NONE, 1.1 depcomp, NONE, 1.1 install-sh, NONE, 1.1 ltmain.sh, NONE, 1.1 missing, NONE, 1.1 Makefile, 1.21, NONE
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/adminserver
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv32253/adminserver
Added Files:
AUTHORS COPYING ChangeLog INSTALL Makefile.am Makefile.in NEWS
README aclocal.m4 autogen.sh compile config.guess config.h.in
config.sub configure configure.ac depcomp install-sh ltmain.sh
missing
Removed Files:
Makefile
Log Message:
Resolves: bug 239502, bug 186280
Description: adminserver: autotools, FHS, clean up CGI parameters
Fix Description: Too numerous to mention
--- NEW FILE AUTHORS ---
--- NEW FILE COPYING ---
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
--- NEW FILE ChangeLog ---
--- NEW FILE INSTALL ---
Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
These are generic installation instructions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. (Caching is
disabled by default to prevent problems with accidental use of stale
cache files.)
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You only need
`configure.ac' if you want to change it or regenerate `configure' using
a newer version of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that the
`configure' script does not know about. Run `./configure --help' for
details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not support the `VPATH'
variable, you have to compile the package for one architecture at a
time in the source code directory. After you have installed the
package for one architecture, use `make distclean' before reconfiguring
for another architecture.
Installation Names
==================
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Specifying the System Type
==========================
There may be some features `configure' cannot figure out automatically,
but needs to determine by the type of machine the package will run on.
Usually, assuming the package is built to be run on the _same_
architectures, `configure' can figure that out, but if it prints a
message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share, you
can create a site shell script called `config.site' that gives default
values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script). Here is a another example:
/bin/bash ./configure CONFIG_SHELL=/bin/bash
Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
configuration-related scripts to be executed by `/bin/bash'.
`configure' Invocation
======================
`configure' recognizes the following options to control how it operates.
`--help'
`-h'
Print a summary of the options to `configure', and exit.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.
--- NEW FILE Makefile.am ---
# BEGIN COPYRIGHT BLOCK
# Copyright (C) 2006 Red Hat, Inc.
# All rights reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# END COPYRIGHT BLOCK
NULLSTRING :=
SPACE := $(NULLSTRING) # the space is between the ) and the #
COLON := $(NULLSTRING):# a colon
# look for included m4 files in the ./m4/ directory
ACLOCAL_AMFLAGS = -I m4
#SUBDIRS = mod_admserv mod_restartd
# however, because the makefiles for the modules ignore a destdir passed
# in to make install, we just skip install for the subdirs . . .
# install-recursive : override SUBDIRS=
# install-exec-recursive : override SUBDIRS=
# # . . . and instead install them ourselves
# install-exec-hook: all-recursive
# @$(NORMAL_INSTALL)
# test -z "$(moddir)" || $(mkdir_p) "$(DESTDIR)$(moddir)"
# @list='mod_admserv mod_restartd'; for p in $$list; do \
# for p1 in $$p/.libs/libmod*.* \
# ; do \
# echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) '$$p1' '$(DESTDIR)$(moddir)'"; \
# $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) "$$p1" "$(DESTDIR)$(moddir)" || exit 1; \
# done ; \
# done
install-data-hook:
@for file in $(RESOURCE_BUNDLES_ROOT) ; do \
basefile=`basename $$file` ; \
destfile=`basename $$file | sed -e s,_root,/root,` ; \
destdir=`dirname $$destfile` ; \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) '$(DESTDIR)$(propertydir)/$$basefile' '$(DESTDIR)$(propertydir)/$$destfile'"; \
$(mkdir_p) "$(DESTDIR)$(propertydir)/$$destdir" ; \
mv "$(DESTDIR)$(propertydir)/$$basefile" "$(DESTDIR)$(propertydir)/$$destfile" || exit 1; \
cp "$(DESTDIR)$(propertydir)/$$destfile" "$(DESTDIR)$(propertydir)/$$destdir/en.res" || exit 1; \
cp "$(DESTDIR)$(propertydir)/$$destfile" "$(DESTDIR)$(propertydir)/$$destdir/en_US.res" || exit 1; \
done
cgibindir = $(libdir)@cgibindir@
cmdbindir = $(sbindir)
moddir = @moddir@
propertydir = $(datadir)@propertydir@
htmldir = $(datadir)@htmldir@
icondir = $(datadir)@icondir@
configdir = @instconfigdir@/@instancename@
securitydir = $(configdir) # same as configdir for now
httpdconf = @httpdconf@
manualdir = $(datadir)@manualdir@
helpdir = $(manualdir)/help
initdir = $(sysconfdir)@initdir@
instconfigdir = @instconfigdir@
instancename = @instancename@
piddir = @piddir@
pidfile = @pidfile@
logdir = $(localstatedir)@logdir@/$(instancename)
HTTPD = @HTTPD@
httpduser = @httpduser@
modnssbindir = @modnssbindir@
ldifdir = $(datadir)@ldifdir@
libbase_a_SOURCES = lib/base/file.cpp lib/base/nscperror.c \
lib/base/system.cpp lib/base/nscputil.cpp
libsi18n_a_SOURCES = lib/libsi18n/coreres.c lib/libsi18n/getlang.c \
lib/libsi18n/getstrprop.c lib/libsi18n/propset.c lib/libsi18n/reshash.c lib/libsi18n/txtfile.c
libadmin_a_SOURCES = lib/libadmin/cluster.c lib/libadmin/dllglue.c \
lib/libadmin/error.c lib/libadmin/form_get.c lib/libadmin/httpcon.c lib/libadmin/install.c \
lib/libadmin/referer.c lib/libadmin/template.c lib/libadmin/util.c
AM_CPPFLAGS = @adminutil_inc@ @icu_inc@ @ldapsdk_inc@ @nss_inc@ @nspr_inc@ -DUSE_ADMSERV=1 \
-I$(srcdir)/include -I$(srcdir)/include/base
if WINNT
AM_CPPFLAGS += -DXP_WINNT
else
AM_CPPFLAGS += -DXP_UNIX
endif
AM_CPPFLAGS +=-DPROPERTYDIR=\"$(propertydir)\" -DLIBDIR=\"$(libdir)\" \
-DPIDDIR=\"$(piddir)\" -DHTMLDIR=\"$(htmldir)\" -DICONDIR=\"$(icondir)\" \
-DCMDBINDIR=\"$(cmdbindir)\" -DMANUALDIR=\"$(manualdir)\" \
-DCONFIGDIR=\"$(instconfigdir)/$(instancename)\" -DSECURITYDIR=\"$(instconfigdir)/$(instancename)\" \
-DLOGDIR=\"$(logdir)\" -DHTTPD=\"$(HTTPD)\" -DDEFAULT_HTTPDUSER=\"$(httpduser)\" \
-DPIDFILE=\"$(PIDFILE)\" -DDATADIR=\"$(datadir)\"
lib_LTLIBRARIES = libds-admin-serv.la
DEFAULT_LIBS = libds-admin-serv.la @adminutil_lib@ -ladmsslutil@adminutil_ver@ -ladminutil@adminutil_ver@ \
@icu_lib@ -licui18n -licuuc -licudata @ldapsdk_lib@ -lssldap60 -lprldap60 -lldap60 -lldif60 \
@nss_lib@ -lsmime3 -lssl3 -lnss3 @nspr_lib@ -lnspr4 -lplc4
SETUPUTIL_LIBS = @setuputil_lib@ -ldsinstall
ldif_DATA = admserv/schema/ldif/admintasks.ldif admserv/schema/ldif/adminglobal.ldif
cgibin_PROGRAMS = mergeConfig admpw security ugdsconfig ReadLog start_config_ds \
config statpingserv viewdata dsconfig monreplication restartsrv \
statusping viewlog htmladmin sec-activate stopsrv download help
cgibin_SCRIPTS = admserv/cgi-src40/Cgi.pm
nodist_cmdbin_SCRIPTS = admserv/cfgstuff/start-admin admserv/cfgstuff/stop-admin admserv/cfgstuff/restart-admin
cmdbin_PROGRAMS = ds-admin-config ds-admin-remove ds-admin-update
libds_admin_serv_la_SOURCES = $(libbase_a_SOURCES) $(libsi18n_a_SOURCES) $(libadmin_a_SOURCES)
# source files for our CGI programs
download_SOURCES = admserv/cgi-src40/download.c
help_SOURCES = admserv/cgi-src40/help.c
start_config_ds_SOURCES = admserv/cgi-src40/start_config_ds.c
admpw_SOURCES = admserv/cgi-src40/admpw.c
security_SOURCES = admserv/cgi-src40/security.c
ugdsconfig_SOURCES = admserv/cgi-src40/ugdsconfig.c
mergeConfig_SOURCES = admserv/cgi-src40/mergeConfig.cpp
ReadLog_SOURCES = admserv/cgi-src40/ReadLog.c
config_SOURCES = admserv/cgi-src40/config.c
statpingserv_SOURCES = admserv/cgi-src40/statpingserv.c
viewdata_SOURCES = admserv/cgi-src40/viewdata.c
dsconfig_SOURCES = admserv/cgi-src40/dsconfig.c
monreplication_SOURCES = admserv/cgi-src40/monreplication.c
restartsrv_SOURCES = admserv/cgi-src40/restartsrv.c
statusping_SOURCES = admserv/cgi-src40/statusping.c
viewlog_SOURCES = admserv/cgi-src40/viewlog.c
htmladmin_SOURCES = admserv/cgi-src40/htmladmin.c
sec_activate_SOURCES = admserv/cgi-src40/sec-activate.c
stopsrv_SOURCES = admserv/cgi-src40/stopsrv.c
ds_admin_config_SOURCES = admserv/newinst/src/ux-config.cc admserv/newinst/src/ux-dialog.cc
ds_admin_remove_SOURCES = admserv/newinst/src/ux-remove.cc
ds_admin_update_SOURCES = admserv/newinst/src/ux-update.cc
# special - uses setuputil
mergeConfig_CPPFLAGS = @setuputil_inc@ $(AM_CPPFLAGS)
# setup special
ds_admin_config_CPPFLAGS = -I$(srcdir)/admserv/newinst/common/include -I$(srcdir)/admserv/newinst/src @setuputil_inc@ $(AM_CPPFLAGS)
ds_admin_remove_CPPFLAGS = -I$(srcdir)/admserv/newinst/common/include -I$(srcdir)/admserv/newinst/src @setuputil_inc@ $(AM_CPPFLAGS)
ds_admin_update_CPPFLAGS = -I$(srcdir)/admserv/newinst/common/include -I$(srcdir)/admserv/newinst/src @setuputil_inc@ $(AM_CPPFLAGS)
# libs to use for each program - they are different in some cases - so can't just use global ldflags
admpw_LDADD = $(DEFAULT_LIBS)
start_config_ds_LDADD = $(DEFAULT_LIBS)
security_LDADD = $(DEFAULT_LIBS)
ugdsconfig_LDADD = $(DEFAULT_LIBS)
mergeConfig_LDADD = $(SETUPUTIL_LIBS) $(DEFAULT_LIBS)
ReadLog_LDADD = $(DEFAULT_LIBS)
config_LDADD = $(DEFAULT_LIBS)
statpingserv_LDADD = $(DEFAULT_LIBS)
viewdata_LDADD = $(DEFAULT_LIBS)
dsconfig_LDADD = $(DEFAULT_LIBS)
monreplication_LDADD = $(DEFAULT_LIBS)
restartsrv_LDADD = $(DEFAULT_LIBS)
statusping_LDADD = $(DEFAULT_LIBS)
viewlog_LDADD = $(DEFAULT_LIBS)
htmladmin_LDADD = $(DEFAULT_LIBS)
sec_activate_LDADD = $(DEFAULT_LIBS)
stopsrv_LDADD = $(DEFAULT_LIBS)
# setup special
ds_admin_config_LDADD = $(SETUPUTIL_LIBS) $(DEFAULT_LIBS) @curses_lib@
ds_admin_remove_LDADD = $(SETUPUTIL_LIBS) $(DEFAULT_LIBS)
ds_admin_update_LDADD = $(SETUPUTIL_LIBS) $(DEFAULT_LIBS)
############## Data Files ################
HTMLDIR = admserv/html
dist_html_DATA = $(HTMLDIR)/htmladmin.html $(HTMLDIR)/monreplication.html $(HTMLDIR)/viewdata.html $(HTMLDIR)/viewlog.html $(HTMLDIR)/admserv.html
ICONDIR = admserv/icons40
dist_icon_DATA = $(ICONDIR)/16space.gif $(ICONDIR)/directorysmall.gif $(ICONDIR)/group2.gif $(ICONDIR)/togoff.gif \
$(ICONDIR)/adminics.gif $(ICONDIR)/dms.jpg $(ICONDIR)/help.gif $(ICONDIR)/messagingic.gif $(ICONDIR)/togon.gif \
$(ICONDIR)/cert16.gif $(ICONDIR)/domain16.gif $(ICONDIR)/host.gif $(ICONDIR)/N24b.gif \
$(ICONDIR)/enterpriseic.gif $(ICONDIR)/hr.gif $(ICONDIR)/oldservic.gif $(ICONDIR)/goto.gif \
$(ICONDIR)/spacer.gif
dist_help_DATA = admserv/cgi-src40/help.js admserv/cgi-src40/library.html \
admserv/cgi-src40/head.html admserv/cgi-src40/frameset.html
nodist_config_DATA = admserv/cfgstuff/console.conf admserv/cfgstuff/admserv.conf \
admserv/cfgstuff/nss.conf admserv/cfgstuff/httpd.conf
if APACHE22
HTTPD_CONF_SRC = admserv/cfgstuff/httpd-2.2.conf.in
else
HTTPD_CONF_SRC = admserv/cfgstuff/httpd.conf.in
endif
MOSTLYCLEANFILES = $(nodist_cmdbin_SCRIPTS) $(nodist_config_DATA)
# Resource Bundle Compiler
if WINNT
ICU_GENRB = @icu_bin(a)/genrb.exe
else
ICU_GENRB = sh $(srcdir)/admserv/genrb_wrapper.sh @icu_bin@ @icu_libdir@
endif
# need to create the LD_LIBRARY_PATH,SHLIB_PATH string to use in scripts
# sort also strips out duplicates
TMPLIBDIRS = $(sort $(nspr_libdir) $(nss_libdir) $(ldapsdk_libdir) $(adminutil_libdir) $(setuputil_libdir) $(icu_libdir))
# libdir must come at the end, so remove it from the list if it is already there,
# and add it to the end (e.g. ldapsdk_libdir may already be libdir)
LIBDIRS = $(filter-out $(libdir),$(TMPLIBDIRS)) $(libdir)
# now put it in the canonical form
LIBPATH = $(subst $(SPACE),$(COLON),$(LIBDIRS))
# The root resource bundle is based on English (en) locale;
# This bundle must be always distributed and there is no need to have
# *_en.properties resource bundle source files.
RESOURCE_BUNDLES_ROOT = \
admserv/cgi-src40/admpw_root.res admserv/cgi-src40/mergeConfig_root.res \
admserv/cgi-src40/security_root.res admserv/cgi-src40/config_root.res \
admserv/cgi-src40/stopsrv_root.res \
admserv/cgi-src40/dsconfig_root.res admserv/cgi-src40/monreplication_root.res \
admserv/cgi-src40/ugdsconfig_root.res admserv/cgi-src40/htmladmin_root.res \
admserv/cgi-src40/restartsrv_root.res admserv/cgi-src40/viewdata_root.res \
admserv/cgi-src40/sec-activate_root.res \
admserv/cgi-src40/viewlog_root.res
MOSTLYCLEANFILES += $(RESOURCE_BUNDLES_ROOT)
# property file installation is handled specially
nodist_property_DATA = $(RESOURCE_BUNDLES_ROOT)
# French resource bundles (for the French localization in the future)
#RESOURCE_BUNDLES_FR = foo_fr.res
# German resource bundles (for the German localization in the future)
#RESOURCE_BUNDLES_DE = foo_de.res
%_root.res : %.properties
$(ICU_GENRB) -s. -d. --encoding 8859-1 --package-name $* $+
%_fr.res : %_fr.properties
$(ICU_GENRB) -s. -d. --encoding 8859-2 --package-name $* $+
%_de.res : %_de.properties
$(ICU_GENRB) -s. -d. --encoding 8859-2 --package-name $* $+
# these are for the config files and scripts that we need to generate and replace
# the paths and other tokens with the real values set during configure/make
# note that we cannot just use AC_OUTPUT to do this for us, since it will do things like this:
# ADMConfigDir = ${prefix}/etc/packagename
# i.e. it literally copies in '${prefix}' rather than expanding it out - we want this instead:
# ADMConfigDir = /etc/packagename
fixupcmd = sed \
-e 's,@HTTPD\@,$(HTTPD),g' \
-e 's,@cgibindir\@,$(cgibindir),g' \
-e 's,@cmdbindir\@,$(cmdbindir),g' \
-e 's,@moddir\@,$(moddir),g' \
-e 's,@modnssbindir\@,$(modnssbindir),g' \
-e 's,@propertydir\@,$(propertydir),g' \
-e 's,@htmldir\@,$(htmldir),g' \
-e 's,@icondir\@,$(icondir),g' \
-e 's,@manualdir\@,$(manualdir),g' \
-e 's,@configdir\@,$(configdir),g' \
-e 's,@securitydir\@,$(securitydir),g' \
-e 's,@httpduser\@,$(httpduser),g' \
-e 's,@httpdgroup\@,$(httpdgroup),g' \
-e 's,@piddir\@,$(piddir),g' \
-e 's,@pidfile\@,$(pidfile),g' \
-e 's,@admservport\@,$(admservport),g'
-e 's,@LIBPATH\@,$(LIBPATH),g'
% : %.in
mkdir -p $(dir $@)
$(fixupcmd) $^ > $@
# because the source may be either httpd.conf.in or httpd-2.2.conf.in
admserv/cfgstuff/httpd.conf: $(HTTPD_CONF_SRC)
--- NEW FILE Makefile.in ---
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@WINNT_TRUE@am__append_1 = -DXP_WINNT
@WINNT_FALSE@am__append_2 = -DXP_UNIX
cgibin_PROGRAMS = mergeConfig$(EXEEXT) admpw$(EXEEXT) \
security$(EXEEXT) ugdsconfig$(EXEEXT) ReadLog$(EXEEXT) \
start_config_ds$(EXEEXT) config$(EXEEXT) statpingserv$(EXEEXT) \
viewdata$(EXEEXT) dsconfig$(EXEEXT) monreplication$(EXEEXT) \
restartsrv$(EXEEXT) statusping$(EXEEXT) viewlog$(EXEEXT) \
htmladmin$(EXEEXT) sec-activate$(EXEEXT) stopsrv$(EXEEXT) \
download$(EXEEXT) help$(EXEEXT)
cmdbin_PROGRAMS = ds-admin-config$(EXEEXT) ds-admin-remove$(EXEEXT) \
ds-admin-update$(EXEEXT)
DIST_COMMON = README $(am__configure_deps) $(dist_help_DATA) \
$(dist_html_DATA) $(dist_icon_DATA) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
compile config.guess config.sub depcomp install-sh ltmain.sh \
missing
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/fhs.m4 \
$(top_srcdir)/m4/httpd.m4 $(top_srcdir)/m4/nspr.m4 \
$(top_srcdir)/m4/nss.m4 $(top_srcdir)/m4/mozldap.m4 \
$(top_srcdir)/m4/icu.m4 $(top_srcdir)/m4/adminutil.m4 \
$(top_srcdir)/m4/setuputil.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno configure.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(cgibindir)" \
"$(DESTDIR)$(cmdbindir)" "$(DESTDIR)$(cgibindir)" \
"$(DESTDIR)$(cmdbindir)" "$(DESTDIR)$(helpdir)" \
"$(DESTDIR)$(htmldir)" "$(DESTDIR)$(icondir)" \
"$(DESTDIR)$(ldifdir)" "$(DESTDIR)$(configdir)" \
"$(DESTDIR)$(propertydir)"
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libds_admin_serv_la_LIBADD =
am__dirstamp = $(am__leading_dot)dirstamp
am__objects_1 = lib/base/file.lo lib/base/nscperror.lo \
lib/base/system.lo lib/base/nscputil.lo
am__objects_2 = lib/libsi18n/coreres.lo lib/libsi18n/getlang.lo \
lib/libsi18n/getstrprop.lo lib/libsi18n/propset.lo \
lib/libsi18n/reshash.lo lib/libsi18n/txtfile.lo
am__objects_3 = lib/libadmin/cluster.lo lib/libadmin/dllglue.lo \
lib/libadmin/error.lo lib/libadmin/form_get.lo \
lib/libadmin/httpcon.lo lib/libadmin/install.lo \
lib/libadmin/referer.lo lib/libadmin/template.lo \
lib/libadmin/util.lo
am_libds_admin_serv_la_OBJECTS = $(am__objects_1) $(am__objects_2) \
$(am__objects_3)
libds_admin_serv_la_OBJECTS = $(am_libds_admin_serv_la_OBJECTS)
cgibinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
cmdbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(cgibin_PROGRAMS) $(cmdbin_PROGRAMS)
am_ReadLog_OBJECTS = admserv/cgi-src40/ReadLog.$(OBJEXT)
ReadLog_OBJECTS = $(am_ReadLog_OBJECTS)
am__DEPENDENCIES_1 = libds-admin-serv.la
ReadLog_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_admpw_OBJECTS = admserv/cgi-src40/admpw.$(OBJEXT)
admpw_OBJECTS = $(am_admpw_OBJECTS)
admpw_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_config_OBJECTS = admserv/cgi-src40/config.$(OBJEXT)
config_OBJECTS = $(am_config_OBJECTS)
config_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_download_OBJECTS = admserv/cgi-src40/download.$(OBJEXT)
download_OBJECTS = $(am_download_OBJECTS)
download_LDADD = $(LDADD)
am_ds_admin_config_OBJECTS = \
admserv/newinst/src/ds_admin_config-ux-config.$(OBJEXT) \
admserv/newinst/src/ds_admin_config-ux-dialog.$(OBJEXT)
ds_admin_config_OBJECTS = $(am_ds_admin_config_OBJECTS)
am__DEPENDENCIES_2 =
ds_admin_config_DEPENDENCIES = $(am__DEPENDENCIES_2) \
$(am__DEPENDENCIES_1)
am_ds_admin_remove_OBJECTS = \
admserv/newinst/src/ds_admin_remove-ux-remove.$(OBJEXT)
ds_admin_remove_OBJECTS = $(am_ds_admin_remove_OBJECTS)
ds_admin_remove_DEPENDENCIES = $(am__DEPENDENCIES_2) \
$(am__DEPENDENCIES_1)
am_ds_admin_update_OBJECTS = \
admserv/newinst/src/ds_admin_update-ux-update.$(OBJEXT)
ds_admin_update_OBJECTS = $(am_ds_admin_update_OBJECTS)
ds_admin_update_DEPENDENCIES = $(am__DEPENDENCIES_2) \
$(am__DEPENDENCIES_1)
am_dsconfig_OBJECTS = admserv/cgi-src40/dsconfig.$(OBJEXT)
dsconfig_OBJECTS = $(am_dsconfig_OBJECTS)
dsconfig_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_help_OBJECTS = admserv/cgi-src40/help.$(OBJEXT)
help_OBJECTS = $(am_help_OBJECTS)
help_LDADD = $(LDADD)
am_htmladmin_OBJECTS = admserv/cgi-src40/htmladmin.$(OBJEXT)
htmladmin_OBJECTS = $(am_htmladmin_OBJECTS)
htmladmin_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_mergeConfig_OBJECTS = \
admserv/cgi-src40/mergeConfig-mergeConfig.$(OBJEXT)
mergeConfig_OBJECTS = $(am_mergeConfig_OBJECTS)
mergeConfig_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
am_monreplication_OBJECTS = \
admserv/cgi-src40/monreplication.$(OBJEXT)
monreplication_OBJECTS = $(am_monreplication_OBJECTS)
monreplication_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_restartsrv_OBJECTS = admserv/cgi-src40/restartsrv.$(OBJEXT)
restartsrv_OBJECTS = $(am_restartsrv_OBJECTS)
restartsrv_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_sec_activate_OBJECTS = admserv/cgi-src40/sec-activate.$(OBJEXT)
sec_activate_OBJECTS = $(am_sec_activate_OBJECTS)
sec_activate_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_security_OBJECTS = admserv/cgi-src40/security.$(OBJEXT)
security_OBJECTS = $(am_security_OBJECTS)
security_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_start_config_ds_OBJECTS = \
admserv/cgi-src40/start_config_ds.$(OBJEXT)
start_config_ds_OBJECTS = $(am_start_config_ds_OBJECTS)
start_config_ds_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_statpingserv_OBJECTS = admserv/cgi-src40/statpingserv.$(OBJEXT)
statpingserv_OBJECTS = $(am_statpingserv_OBJECTS)
statpingserv_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_statusping_OBJECTS = admserv/cgi-src40/statusping.$(OBJEXT)
statusping_OBJECTS = $(am_statusping_OBJECTS)
statusping_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_stopsrv_OBJECTS = admserv/cgi-src40/stopsrv.$(OBJEXT)
stopsrv_OBJECTS = $(am_stopsrv_OBJECTS)
stopsrv_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_ugdsconfig_OBJECTS = admserv/cgi-src40/ugdsconfig.$(OBJEXT)
ugdsconfig_OBJECTS = $(am_ugdsconfig_OBJECTS)
ugdsconfig_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_viewdata_OBJECTS = admserv/cgi-src40/viewdata.$(OBJEXT)
viewdata_OBJECTS = $(am_viewdata_OBJECTS)
viewdata_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_viewlog_OBJECTS = admserv/cgi-src40/viewlog.$(OBJEXT)
viewlog_OBJECTS = $(am_viewlog_OBJECTS)
viewlog_DEPENDENCIES = $(am__DEPENDENCIES_1)
cgibinSCRIPT_INSTALL = $(INSTALL_SCRIPT)
nodist_cmdbinSCRIPT_INSTALL = $(INSTALL_SCRIPT)
SCRIPTS = $(cgibin_SCRIPTS) $(nodist_cmdbin_SCRIPTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CXXFLAGS) $(CXXFLAGS)
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(libds_admin_serv_la_SOURCES) $(ReadLog_SOURCES) \
$(admpw_SOURCES) $(config_SOURCES) $(download_SOURCES) \
$(ds_admin_config_SOURCES) $(ds_admin_remove_SOURCES) \
$(ds_admin_update_SOURCES) $(dsconfig_SOURCES) $(help_SOURCES) \
$(htmladmin_SOURCES) $(mergeConfig_SOURCES) \
$(monreplication_SOURCES) $(restartsrv_SOURCES) \
$(sec_activate_SOURCES) $(security_SOURCES) \
$(start_config_ds_SOURCES) $(statpingserv_SOURCES) \
$(statusping_SOURCES) $(stopsrv_SOURCES) $(ugdsconfig_SOURCES) \
$(viewdata_SOURCES) $(viewlog_SOURCES)
DIST_SOURCES = $(libds_admin_serv_la_SOURCES) $(ReadLog_SOURCES) \
$(admpw_SOURCES) $(config_SOURCES) $(download_SOURCES) \
$(ds_admin_config_SOURCES) $(ds_admin_remove_SOURCES) \
$(ds_admin_update_SOURCES) $(dsconfig_SOURCES) $(help_SOURCES) \
$(htmladmin_SOURCES) $(mergeConfig_SOURCES) \
$(monreplication_SOURCES) $(restartsrv_SOURCES) \
$(sec_activate_SOURCES) $(security_SOURCES) \
$(start_config_ds_SOURCES) $(statpingserv_SOURCES) \
$(statusping_SOURCES) $(stopsrv_SOURCES) $(ugdsconfig_SOURCES) \
$(viewdata_SOURCES) $(viewlog_SOURCES)
dist_helpDATA_INSTALL = $(INSTALL_DATA)
dist_htmlDATA_INSTALL = $(INSTALL_DATA)
dist_iconDATA_INSTALL = $(INSTALL_DATA)
ldifDATA_INSTALL = $(INSTALL_DATA)
nodist_configDATA_INSTALL = $(INSTALL_DATA)
nodist_propertyDATA_INSTALL = $(INSTALL_DATA)
DATA = $(dist_help_DATA) $(dist_html_DATA) $(dist_icon_DATA) \
$(ldif_DATA) $(nodist_config_DATA) $(nodist_property_DATA)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
APACHE22_FALSE = @APACHE22_FALSE@
APACHE22_TRUE = @APACHE22_TRUE@
APXS = @APXS@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
HTTPD = @HTTPD@
ICU_CONFIG = @ICU_CONFIG@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
WINNT_FALSE = @WINNT_FALSE@
WINNT_TRUE = @WINNT_TRUE@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
adminutil_inc = @adminutil_inc@
adminutil_lib = @adminutil_lib@
adminutil_libdir = @adminutil_libdir@
adminutil_ver = @adminutil_ver@
admservport = @admservport@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
cgibindir = $(libdir)@cgibindir@
cmdbindir = $(sbindir)
curses_lib = @curses_lib@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = $(datadir)@htmldir@
httpdconf = @httpdconf@
httpdgroup = @httpdgroup@
httpduser = @httpduser@
icondir = $(datadir)@icondir@
icu_bin = @icu_bin@
icu_inc = @icu_inc@
icu_lib = @icu_lib@
icu_libdir = @icu_libdir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
instancename = @instancename@
instconfigdir = @instconfigdir@
ldapsdk_inc = @ldapsdk_inc@
ldapsdk_lib = @ldapsdk_lib@
ldapsdk_libdir = @ldapsdk_libdir@
ldifdir = $(datadir)@ldifdir@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
logdir = $(localstatedir)@logdir@/$(instancename)
mandir = @mandir@
manualdir = $(datadir)@manualdir@
mkdir_p = @mkdir_p@
moddir = @moddir@
modnssbindir = @modnssbindir@
nspr_inc = @nspr_inc@
nspr_lib = @nspr_lib@
nspr_libdir = @nspr_libdir@
nss_inc = @nss_inc@
nss_lib = @nss_lib@
nss_libdir = @nss_libdir@
oldincludedir = @oldincludedir@
piddir = @piddir@
pidfile = @pidfile@
prefix = @prefix@
program_transform_name = @program_transform_name@
propertydir = $(datadir)@propertydir@
sbindir = @sbindir@
setuputil_bin = @setuputil_bin@
setuputil_inc = @setuputil_inc@
setuputil_lib = @setuputil_lib@
setuputil_libdir = @setuputil_libdir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
# BEGIN COPYRIGHT BLOCK
# Copyright (C) 2006 Red Hat, Inc.
# All rights reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# END COPYRIGHT BLOCK
NULLSTRING :=
SPACE := $(NULLSTRING) # the space is between the ) and the #
COLON := $(NULLSTRING):# a colon
# look for included m4 files in the ./m4/ directory
ACLOCAL_AMFLAGS = -I m4
configdir = @instconfigdir@/@instancename@
securitydir = $(configdir) # same as configdir for now
helpdir = $(manualdir)/help
initdir = $(sysconfdir)@initdir@
libbase_a_SOURCES = lib/base/file.cpp lib/base/nscperror.c \
lib/base/system.cpp lib/base/nscputil.cpp
libsi18n_a_SOURCES = lib/libsi18n/coreres.c lib/libsi18n/getlang.c \
lib/libsi18n/getstrprop.c lib/libsi18n/propset.c lib/libsi18n/reshash.c lib/libsi18n/txtfile.c
libadmin_a_SOURCES = lib/libadmin/cluster.c lib/libadmin/dllglue.c \
lib/libadmin/error.c lib/libadmin/form_get.c lib/libadmin/httpcon.c lib/libadmin/install.c \
lib/libadmin/referer.c lib/libadmin/template.c lib/libadmin/util.c
AM_CPPFLAGS = @adminutil_inc@ @icu_inc@ @ldapsdk_inc@ @nss_inc@ \
@nspr_inc@ -DUSE_ADMSERV=1 -I$(srcdir)/include \
-I$(srcdir)/include/base $(am__append_1) $(am__append_2) \
-DPROPERTYDIR=\"$(propertydir)\" -DLIBDIR=\"$(libdir)\" \
-DPIDDIR=\"$(piddir)\" -DHTMLDIR=\"$(htmldir)\" \
-DICONDIR=\"$(icondir)\" -DCMDBINDIR=\"$(cmdbindir)\" \
-DMANUALDIR=\"$(manualdir)\" \
-DCONFIGDIR=\"$(instconfigdir)/$(instancename)\" \
-DSECURITYDIR=\"$(instconfigdir)/$(instancename)\" \
-DLOGDIR=\"$(logdir)\" -DHTTPD=\"$(HTTPD)\" \
-DDEFAULT_HTTPDUSER=\"$(httpduser)\" -DPIDFILE=\"$(PIDFILE)\" \
-DDATADIR=\"$(datadir)\"
lib_LTLIBRARIES = libds-admin-serv.la
DEFAULT_LIBS = libds-admin-serv.la @adminutil_lib@ -ladmsslutil@adminutil_ver@ -ladminutil@adminutil_ver@ \
@icu_lib@ -licui18n -licuuc -licudata @ldapsdk_lib@ -lssldap60 -lprldap60 -lldap60 -lldif60 \
@nss_lib@ -lsmime3 -lssl3 -lnss3 @nspr_lib@ -lnspr4 -lplc4
SETUPUTIL_LIBS = @setuputil_lib@ -ldsinstall
ldif_DATA = admserv/schema/ldif/admintasks.ldif admserv/schema/ldif/adminglobal.ldif
cgibin_SCRIPTS = admserv/cgi-src40/Cgi.pm
nodist_cmdbin_SCRIPTS = admserv/cfgstuff/start-admin admserv/cfgstuff/stop-admin admserv/cfgstuff/restart-admin
libds_admin_serv_la_SOURCES = $(libbase_a_SOURCES) $(libsi18n_a_SOURCES) $(libadmin_a_SOURCES)
# source files for our CGI programs
download_SOURCES = admserv/cgi-src40/download.c
help_SOURCES = admserv/cgi-src40/help.c
start_config_ds_SOURCES = admserv/cgi-src40/start_config_ds.c
admpw_SOURCES = admserv/cgi-src40/admpw.c
security_SOURCES = admserv/cgi-src40/security.c
ugdsconfig_SOURCES = admserv/cgi-src40/ugdsconfig.c
mergeConfig_SOURCES = admserv/cgi-src40/mergeConfig.cpp
ReadLog_SOURCES = admserv/cgi-src40/ReadLog.c
config_SOURCES = admserv/cgi-src40/config.c
statpingserv_SOURCES = admserv/cgi-src40/statpingserv.c
viewdata_SOURCES = admserv/cgi-src40/viewdata.c
dsconfig_SOURCES = admserv/cgi-src40/dsconfig.c
monreplication_SOURCES = admserv/cgi-src40/monreplication.c
restartsrv_SOURCES = admserv/cgi-src40/restartsrv.c
statusping_SOURCES = admserv/cgi-src40/statusping.c
viewlog_SOURCES = admserv/cgi-src40/viewlog.c
htmladmin_SOURCES = admserv/cgi-src40/htmladmin.c
sec_activate_SOURCES = admserv/cgi-src40/sec-activate.c
stopsrv_SOURCES = admserv/cgi-src40/stopsrv.c
ds_admin_config_SOURCES = admserv/newinst/src/ux-config.cc admserv/newinst/src/ux-dialog.cc
ds_admin_remove_SOURCES = admserv/newinst/src/ux-remove.cc
ds_admin_update_SOURCES = admserv/newinst/src/ux-update.cc
# special - uses setuputil
mergeConfig_CPPFLAGS = @setuputil_inc@ $(AM_CPPFLAGS)
# setup special
ds_admin_config_CPPFLAGS = -I$(srcdir)/admserv/newinst/common/include -I$(srcdir)/admserv/newinst/src @setuputil_inc@ $(AM_CPPFLAGS)
ds_admin_remove_CPPFLAGS = -I$(srcdir)/admserv/newinst/common/include -I$(srcdir)/admserv/newinst/src @setuputil_inc@ $(AM_CPPFLAGS)
ds_admin_update_CPPFLAGS = -I$(srcdir)/admserv/newinst/common/include -I$(srcdir)/admserv/newinst/src @setuputil_inc@ $(AM_CPPFLAGS)
# libs to use for each program - they are different in some cases - so can't just use global ldflags
admpw_LDADD = $(DEFAULT_LIBS)
start_config_ds_LDADD = $(DEFAULT_LIBS)
security_LDADD = $(DEFAULT_LIBS)
ugdsconfig_LDADD = $(DEFAULT_LIBS)
mergeConfig_LDADD = $(SETUPUTIL_LIBS) $(DEFAULT_LIBS)
ReadLog_LDADD = $(DEFAULT_LIBS)
config_LDADD = $(DEFAULT_LIBS)
statpingserv_LDADD = $(DEFAULT_LIBS)
viewdata_LDADD = $(DEFAULT_LIBS)
dsconfig_LDADD = $(DEFAULT_LIBS)
monreplication_LDADD = $(DEFAULT_LIBS)
restartsrv_LDADD = $(DEFAULT_LIBS)
statusping_LDADD = $(DEFAULT_LIBS)
viewlog_LDADD = $(DEFAULT_LIBS)
htmladmin_LDADD = $(DEFAULT_LIBS)
sec_activate_LDADD = $(DEFAULT_LIBS)
stopsrv_LDADD = $(DEFAULT_LIBS)
# setup special
ds_admin_config_LDADD = $(SETUPUTIL_LIBS) $(DEFAULT_LIBS) @curses_lib@
ds_admin_remove_LDADD = $(SETUPUTIL_LIBS) $(DEFAULT_LIBS)
ds_admin_update_LDADD = $(SETUPUTIL_LIBS) $(DEFAULT_LIBS)
############## Data Files ################
HTMLDIR = admserv/html
dist_html_DATA = $(HTMLDIR)/htmladmin.html $(HTMLDIR)/monreplication.html $(HTMLDIR)/viewdata.html $(HTMLDIR)/viewlog.html $(HTMLDIR)/admserv.html
ICONDIR = admserv/icons40
dist_icon_DATA = $(ICONDIR)/16space.gif $(ICONDIR)/directorysmall.gif $(ICONDIR)/group2.gif $(ICONDIR)/togoff.gif \
$(ICONDIR)/adminics.gif $(ICONDIR)/dms.jpg $(ICONDIR)/help.gif $(ICONDIR)/messagingic.gif $(ICONDIR)/togon.gif \
$(ICONDIR)/cert16.gif $(ICONDIR)/domain16.gif $(ICONDIR)/host.gif $(ICONDIR)/N24b.gif \
$(ICONDIR)/enterpriseic.gif $(ICONDIR)/hr.gif $(ICONDIR)/oldservic.gif $(ICONDIR)/goto.gif \
$(ICONDIR)/spacer.gif
dist_help_DATA = admserv/cgi-src40/help.js admserv/cgi-src40/library.html \
admserv/cgi-src40/head.html admserv/cgi-src40/frameset.html
nodist_config_DATA = admserv/cfgstuff/console.conf admserv/cfgstuff/admserv.conf \
admserv/cfgstuff/nss.conf admserv/cfgstuff/httpd.conf
@APACHE22_FALSE@HTTPD_CONF_SRC = admserv/cfgstuff/httpd.conf.in
@APACHE22_TRUE@HTTPD_CONF_SRC = admserv/cfgstuff/httpd-2.2.conf.in
MOSTLYCLEANFILES = $(nodist_cmdbin_SCRIPTS) $(nodist_config_DATA) \
$(RESOURCE_BUNDLES_ROOT)
@WINNT_FALSE@ICU_GENRB = sh $(srcdir)/admserv/genrb_wrapper.sh @icu_bin@ @icu_libdir@
# Resource Bundle Compiler
@WINNT_TRUE@ICU_GENRB = @icu_bin(a)/genrb.exe
# need to create the LD_LIBRARY_PATH,SHLIB_PATH string to use in scripts
# sort also strips out duplicates
TMPLIBDIRS = $(sort $(nspr_libdir) $(nss_libdir) $(ldapsdk_libdir) $(adminutil_libdir) $(setuputil_libdir) $(icu_libdir))
# libdir must come at the end, so remove it from the list if it is already there,
# and add it to the end (e.g. ldapsdk_libdir may already be libdir)
LIBDIRS = $(filter-out $(libdir),$(TMPLIBDIRS)) $(libdir)
# now put it in the canonical form
LIBPATH = $(subst $(SPACE),$(COLON),$(LIBDIRS))
# The root resource bundle is based on English (en) locale;
# This bundle must be always distributed and there is no need to have
# *_en.properties resource bundle source files.
RESOURCE_BUNDLES_ROOT = \
admserv/cgi-src40/admpw_root.res admserv/cgi-src40/mergeConfig_root.res \
admserv/cgi-src40/security_root.res admserv/cgi-src40/config_root.res \
admserv/cgi-src40/stopsrv_root.res \
admserv/cgi-src40/dsconfig_root.res admserv/cgi-src40/monreplication_root.res \
admserv/cgi-src40/ugdsconfig_root.res admserv/cgi-src40/htmladmin_root.res \
admserv/cgi-src40/restartsrv_root.res admserv/cgi-src40/viewdata_root.res \
admserv/cgi-src40/sec-activate_root.res \
admserv/cgi-src40/viewlog_root.res
# property file installation is handled specially
nodist_property_DATA = $(RESOURCE_BUNDLES_ROOT)
# these are for the config files and scripts that we need to generate and replace
# the paths and other tokens with the real values set during configure/make
# note that we cannot just use AC_OUTPUT to do this for us, since it will do things like this:
# ADMConfigDir = ${prefix}/etc/packagename
# i.e. it literally copies in '${prefix}' rather than expanding it out - we want this instead:
# ADMConfigDir = /etc/packagename
fixupcmd = sed \
-e 's,@HTTPD\@,$(HTTPD),g' \
-e 's,@cgibindir\@,$(cgibindir),g' \
-e 's,@cmdbindir\@,$(cmdbindir),g' \
-e 's,@moddir\@,$(moddir),g' \
-e 's,@modnssbindir\@,$(modnssbindir),g' \
-e 's,@propertydir\@,$(propertydir),g' \
-e 's,@htmldir\@,$(htmldir),g' \
-e 's,@icondir\@,$(icondir),g' \
-e 's,@manualdir\@,$(manualdir),g' \
-e 's,@configdir\@,$(configdir),g' \
-e 's,@securitydir\@,$(securitydir),g' \
-e 's,@httpduser\@,$(httpduser),g' \
-e 's,@httpdgroup\@,$(httpdgroup),g' \
-e 's,@piddir\@,$(piddir),g' \
-e 's,@pidfile\@,$(pidfile),g' \
-e 's,@admservport\@,$(admservport),g'
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
.SUFFIXES: .c .cc .cpp .lo .o .obj
am--refresh:
@:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
cd $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h1
@if test ! -f $@; then \
rm -f stamp-h1; \
$(MAKE) stamp-h1; \
else :; fi
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_srcdir) && $(AUTOHEADER)
rm -f stamp-h1
touch $@
distclean-hdr:
-rm -f config.h stamp-h1
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
$(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \
done
uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
done
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
lib/base/$(am__dirstamp):
@$(mkdir_p) lib/base
@: > lib/base/$(am__dirstamp)
lib/base/$(DEPDIR)/$(am__dirstamp):
@$(mkdir_p) lib/base/$(DEPDIR)
@: > lib/base/$(DEPDIR)/$(am__dirstamp)
lib/base/file.lo: lib/base/$(am__dirstamp) \
lib/base/$(DEPDIR)/$(am__dirstamp)
lib/base/nscperror.lo: lib/base/$(am__dirstamp) \
lib/base/$(DEPDIR)/$(am__dirstamp)
lib/base/system.lo: lib/base/$(am__dirstamp) \
lib/base/$(DEPDIR)/$(am__dirstamp)
lib/base/nscputil.lo: lib/base/$(am__dirstamp) \
lib/base/$(DEPDIR)/$(am__dirstamp)
lib/libsi18n/$(am__dirstamp):
@$(mkdir_p) lib/libsi18n
@: > lib/libsi18n/$(am__dirstamp)
lib/libsi18n/$(DEPDIR)/$(am__dirstamp):
@$(mkdir_p) lib/libsi18n/$(DEPDIR)
@: > lib/libsi18n/$(DEPDIR)/$(am__dirstamp)
lib/libsi18n/coreres.lo: lib/libsi18n/$(am__dirstamp) \
lib/libsi18n/$(DEPDIR)/$(am__dirstamp)
lib/libsi18n/getlang.lo: lib/libsi18n/$(am__dirstamp) \
lib/libsi18n/$(DEPDIR)/$(am__dirstamp)
lib/libsi18n/getstrprop.lo: lib/libsi18n/$(am__dirstamp) \
lib/libsi18n/$(DEPDIR)/$(am__dirstamp)
lib/libsi18n/propset.lo: lib/libsi18n/$(am__dirstamp) \
lib/libsi18n/$(DEPDIR)/$(am__dirstamp)
lib/libsi18n/reshash.lo: lib/libsi18n/$(am__dirstamp) \
lib/libsi18n/$(DEPDIR)/$(am__dirstamp)
lib/libsi18n/txtfile.lo: lib/libsi18n/$(am__dirstamp) \
lib/libsi18n/$(DEPDIR)/$(am__dirstamp)
lib/libadmin/$(am__dirstamp):
@$(mkdir_p) lib/libadmin
@: > lib/libadmin/$(am__dirstamp)
lib/libadmin/$(DEPDIR)/$(am__dirstamp):
@$(mkdir_p) lib/libadmin/$(DEPDIR)
@: > lib/libadmin/$(DEPDIR)/$(am__dirstamp)
lib/libadmin/cluster.lo: lib/libadmin/$(am__dirstamp) \
lib/libadmin/$(DEPDIR)/$(am__dirstamp)
lib/libadmin/dllglue.lo: lib/libadmin/$(am__dirstamp) \
lib/libadmin/$(DEPDIR)/$(am__dirstamp)
lib/libadmin/error.lo: lib/libadmin/$(am__dirstamp) \
lib/libadmin/$(DEPDIR)/$(am__dirstamp)
lib/libadmin/form_get.lo: lib/libadmin/$(am__dirstamp) \
lib/libadmin/$(DEPDIR)/$(am__dirstamp)
lib/libadmin/httpcon.lo: lib/libadmin/$(am__dirstamp) \
lib/libadmin/$(DEPDIR)/$(am__dirstamp)
lib/libadmin/install.lo: lib/libadmin/$(am__dirstamp) \
lib/libadmin/$(DEPDIR)/$(am__dirstamp)
lib/libadmin/referer.lo: lib/libadmin/$(am__dirstamp) \
lib/libadmin/$(DEPDIR)/$(am__dirstamp)
lib/libadmin/template.lo: lib/libadmin/$(am__dirstamp) \
lib/libadmin/$(DEPDIR)/$(am__dirstamp)
lib/libadmin/util.lo: lib/libadmin/$(am__dirstamp) \
lib/libadmin/$(DEPDIR)/$(am__dirstamp)
libds-admin-serv.la: $(libds_admin_serv_la_OBJECTS) $(libds_admin_serv_la_DEPENDENCIES)
$(CXXLINK) -rpath $(libdir) $(libds_admin_serv_la_LDFLAGS) $(libds_admin_serv_la_OBJECTS) $(libds_admin_serv_la_LIBADD) $(LIBS)
install-cgibinPROGRAMS: $(cgibin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(cgibindir)" || $(mkdir_p) "$(DESTDIR)$(cgibindir)"
@list='$(cgibin_PROGRAMS)'; for p in $$list; do \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
|| test -f $$p1 \
; then \
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(cgibinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(cgibindir)/$$f'"; \
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(cgibinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(cgibindir)/$$f" || exit 1; \
else :; fi; \
done
uninstall-cgibinPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(cgibin_PROGRAMS)'; for p in $$list; do \
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f '$(DESTDIR)$(cgibindir)/$$f'"; \
rm -f "$(DESTDIR)$(cgibindir)/$$f"; \
done
clean-cgibinPROGRAMS:
@list='$(cgibin_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
echo " rm -f $$p $$f"; \
rm -f $$p $$f ; \
done
install-cmdbinPROGRAMS: $(cmdbin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(cmdbindir)" || $(mkdir_p) "$(DESTDIR)$(cmdbindir)"
@list='$(cmdbin_PROGRAMS)'; for p in $$list; do \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
|| test -f $$p1 \
; then \
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(cmdbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(cmdbindir)/$$f'"; \
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(cmdbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(cmdbindir)/$$f" || exit 1; \
else :; fi; \
done
uninstall-cmdbinPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(cmdbin_PROGRAMS)'; for p in $$list; do \
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f '$(DESTDIR)$(cmdbindir)/$$f'"; \
rm -f "$(DESTDIR)$(cmdbindir)/$$f"; \
done
clean-cmdbinPROGRAMS:
@list='$(cmdbin_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
echo " rm -f $$p $$f"; \
rm -f $$p $$f ; \
done
admserv/cgi-src40/$(am__dirstamp):
@$(mkdir_p) admserv/cgi-src40
@: > admserv/cgi-src40/$(am__dirstamp)
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp):
@$(mkdir_p) admserv/cgi-src40/$(DEPDIR)
@: > admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
admserv/cgi-src40/ReadLog.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
ReadLog$(EXEEXT): $(ReadLog_OBJECTS) $(ReadLog_DEPENDENCIES)
@rm -f ReadLog$(EXEEXT)
$(LINK) $(ReadLog_LDFLAGS) $(ReadLog_OBJECTS) $(ReadLog_LDADD) $(LIBS)
admserv/cgi-src40/admpw.$(OBJEXT): admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
admpw$(EXEEXT): $(admpw_OBJECTS) $(admpw_DEPENDENCIES)
@rm -f admpw$(EXEEXT)
$(LINK) $(admpw_LDFLAGS) $(admpw_OBJECTS) $(admpw_LDADD) $(LIBS)
admserv/cgi-src40/config.$(OBJEXT): admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
config$(EXEEXT): $(config_OBJECTS) $(config_DEPENDENCIES)
@rm -f config$(EXEEXT)
$(LINK) $(config_LDFLAGS) $(config_OBJECTS) $(config_LDADD) $(LIBS)
admserv/cgi-src40/download.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
download$(EXEEXT): $(download_OBJECTS) $(download_DEPENDENCIES)
@rm -f download$(EXEEXT)
$(LINK) $(download_LDFLAGS) $(download_OBJECTS) $(download_LDADD) $(LIBS)
admserv/newinst/src/$(am__dirstamp):
@$(mkdir_p) admserv/newinst/src
@: > admserv/newinst/src/$(am__dirstamp)
admserv/newinst/src/$(DEPDIR)/$(am__dirstamp):
@$(mkdir_p) admserv/newinst/src/$(DEPDIR)
@: > admserv/newinst/src/$(DEPDIR)/$(am__dirstamp)
admserv/newinst/src/ds_admin_config-ux-config.$(OBJEXT): \
admserv/newinst/src/$(am__dirstamp) \
admserv/newinst/src/$(DEPDIR)/$(am__dirstamp)
admserv/newinst/src/ds_admin_config-ux-dialog.$(OBJEXT): \
admserv/newinst/src/$(am__dirstamp) \
admserv/newinst/src/$(DEPDIR)/$(am__dirstamp)
ds-admin-config$(EXEEXT): $(ds_admin_config_OBJECTS) $(ds_admin_config_DEPENDENCIES)
@rm -f ds-admin-config$(EXEEXT)
$(CXXLINK) $(ds_admin_config_LDFLAGS) $(ds_admin_config_OBJECTS) $(ds_admin_config_LDADD) $(LIBS)
admserv/newinst/src/ds_admin_remove-ux-remove.$(OBJEXT): \
admserv/newinst/src/$(am__dirstamp) \
admserv/newinst/src/$(DEPDIR)/$(am__dirstamp)
ds-admin-remove$(EXEEXT): $(ds_admin_remove_OBJECTS) $(ds_admin_remove_DEPENDENCIES)
@rm -f ds-admin-remove$(EXEEXT)
$(CXXLINK) $(ds_admin_remove_LDFLAGS) $(ds_admin_remove_OBJECTS) $(ds_admin_remove_LDADD) $(LIBS)
admserv/newinst/src/ds_admin_update-ux-update.$(OBJEXT): \
admserv/newinst/src/$(am__dirstamp) \
admserv/newinst/src/$(DEPDIR)/$(am__dirstamp)
ds-admin-update$(EXEEXT): $(ds_admin_update_OBJECTS) $(ds_admin_update_DEPENDENCIES)
@rm -f ds-admin-update$(EXEEXT)
$(CXXLINK) $(ds_admin_update_LDFLAGS) $(ds_admin_update_OBJECTS) $(ds_admin_update_LDADD) $(LIBS)
admserv/cgi-src40/dsconfig.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
dsconfig$(EXEEXT): $(dsconfig_OBJECTS) $(dsconfig_DEPENDENCIES)
@rm -f dsconfig$(EXEEXT)
$(LINK) $(dsconfig_LDFLAGS) $(dsconfig_OBJECTS) $(dsconfig_LDADD) $(LIBS)
admserv/cgi-src40/help.$(OBJEXT): admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
help$(EXEEXT): $(help_OBJECTS) $(help_DEPENDENCIES)
@rm -f help$(EXEEXT)
$(LINK) $(help_LDFLAGS) $(help_OBJECTS) $(help_LDADD) $(LIBS)
admserv/cgi-src40/htmladmin.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
htmladmin$(EXEEXT): $(htmladmin_OBJECTS) $(htmladmin_DEPENDENCIES)
@rm -f htmladmin$(EXEEXT)
$(LINK) $(htmladmin_LDFLAGS) $(htmladmin_OBJECTS) $(htmladmin_LDADD) $(LIBS)
admserv/cgi-src40/mergeConfig-mergeConfig.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
mergeConfig$(EXEEXT): $(mergeConfig_OBJECTS) $(mergeConfig_DEPENDENCIES)
@rm -f mergeConfig$(EXEEXT)
$(CXXLINK) $(mergeConfig_LDFLAGS) $(mergeConfig_OBJECTS) $(mergeConfig_LDADD) $(LIBS)
admserv/cgi-src40/monreplication.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
monreplication$(EXEEXT): $(monreplication_OBJECTS) $(monreplication_DEPENDENCIES)
@rm -f monreplication$(EXEEXT)
$(LINK) $(monreplication_LDFLAGS) $(monreplication_OBJECTS) $(monreplication_LDADD) $(LIBS)
admserv/cgi-src40/restartsrv.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
restartsrv$(EXEEXT): $(restartsrv_OBJECTS) $(restartsrv_DEPENDENCIES)
@rm -f restartsrv$(EXEEXT)
$(LINK) $(restartsrv_LDFLAGS) $(restartsrv_OBJECTS) $(restartsrv_LDADD) $(LIBS)
admserv/cgi-src40/sec-activate.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
sec-activate$(EXEEXT): $(sec_activate_OBJECTS) $(sec_activate_DEPENDENCIES)
@rm -f sec-activate$(EXEEXT)
$(LINK) $(sec_activate_LDFLAGS) $(sec_activate_OBJECTS) $(sec_activate_LDADD) $(LIBS)
admserv/cgi-src40/security.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
security$(EXEEXT): $(security_OBJECTS) $(security_DEPENDENCIES)
@rm -f security$(EXEEXT)
$(LINK) $(security_LDFLAGS) $(security_OBJECTS) $(security_LDADD) $(LIBS)
admserv/cgi-src40/start_config_ds.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
start_config_ds$(EXEEXT): $(start_config_ds_OBJECTS) $(start_config_ds_DEPENDENCIES)
@rm -f start_config_ds$(EXEEXT)
$(LINK) $(start_config_ds_LDFLAGS) $(start_config_ds_OBJECTS) $(start_config_ds_LDADD) $(LIBS)
admserv/cgi-src40/statpingserv.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
statpingserv$(EXEEXT): $(statpingserv_OBJECTS) $(statpingserv_DEPENDENCIES)
@rm -f statpingserv$(EXEEXT)
$(LINK) $(statpingserv_LDFLAGS) $(statpingserv_OBJECTS) $(statpingserv_LDADD) $(LIBS)
admserv/cgi-src40/statusping.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
statusping$(EXEEXT): $(statusping_OBJECTS) $(statusping_DEPENDENCIES)
@rm -f statusping$(EXEEXT)
$(LINK) $(statusping_LDFLAGS) $(statusping_OBJECTS) $(statusping_LDADD) $(LIBS)
admserv/cgi-src40/stopsrv.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
stopsrv$(EXEEXT): $(stopsrv_OBJECTS) $(stopsrv_DEPENDENCIES)
@rm -f stopsrv$(EXEEXT)
$(LINK) $(stopsrv_LDFLAGS) $(stopsrv_OBJECTS) $(stopsrv_LDADD) $(LIBS)
admserv/cgi-src40/ugdsconfig.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
ugdsconfig$(EXEEXT): $(ugdsconfig_OBJECTS) $(ugdsconfig_DEPENDENCIES)
@rm -f ugdsconfig$(EXEEXT)
$(LINK) $(ugdsconfig_LDFLAGS) $(ugdsconfig_OBJECTS) $(ugdsconfig_LDADD) $(LIBS)
admserv/cgi-src40/viewdata.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
viewdata$(EXEEXT): $(viewdata_OBJECTS) $(viewdata_DEPENDENCIES)
@rm -f viewdata$(EXEEXT)
$(LINK) $(viewdata_LDFLAGS) $(viewdata_OBJECTS) $(viewdata_LDADD) $(LIBS)
admserv/cgi-src40/viewlog.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
viewlog$(EXEEXT): $(viewlog_OBJECTS) $(viewlog_DEPENDENCIES)
@rm -f viewlog$(EXEEXT)
$(LINK) $(viewlog_LDFLAGS) $(viewlog_OBJECTS) $(viewlog_LDADD) $(LIBS)
install-cgibinSCRIPTS: $(cgibin_SCRIPTS)
@$(NORMAL_INSTALL)
test -z "$(cgibindir)" || $(mkdir_p) "$(DESTDIR)$(cgibindir)"
@list='$(cgibin_SCRIPTS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
if test -f $$d$$p; then \
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
echo " $(cgibinSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(cgibindir)/$$f'"; \
$(cgibinSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(cgibindir)/$$f"; \
else :; fi; \
done
uninstall-cgibinSCRIPTS:
@$(NORMAL_UNINSTALL)
@list='$(cgibin_SCRIPTS)'; for p in $$list; do \
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
echo " rm -f '$(DESTDIR)$(cgibindir)/$$f'"; \
rm -f "$(DESTDIR)$(cgibindir)/$$f"; \
done
install-nodist_cmdbinSCRIPTS: $(nodist_cmdbin_SCRIPTS)
@$(NORMAL_INSTALL)
test -z "$(cmdbindir)" || $(mkdir_p) "$(DESTDIR)$(cmdbindir)"
@list='$(nodist_cmdbin_SCRIPTS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
if test -f $$d$$p; then \
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
echo " $(nodist_cmdbinSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(cmdbindir)/$$f'"; \
$(nodist_cmdbinSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(cmdbindir)/$$f"; \
else :; fi; \
done
uninstall-nodist_cmdbinSCRIPTS:
@$(NORMAL_UNINSTALL)
@list='$(nodist_cmdbin_SCRIPTS)'; for p in $$list; do \
f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
echo " rm -f '$(DESTDIR)$(cmdbindir)/$$f'"; \
rm -f "$(DESTDIR)$(cmdbindir)/$$f"; \
done
mostlyclean-compile:
-rm -f *.$(OBJEXT)
-rm -f admserv/cgi-src40/ReadLog.$(OBJEXT)
-rm -f admserv/cgi-src40/admpw.$(OBJEXT)
-rm -f admserv/cgi-src40/config.$(OBJEXT)
-rm -f admserv/cgi-src40/download.$(OBJEXT)
-rm -f admserv/cgi-src40/dsconfig.$(OBJEXT)
-rm -f admserv/cgi-src40/help.$(OBJEXT)
-rm -f admserv/cgi-src40/htmladmin.$(OBJEXT)
-rm -f admserv/cgi-src40/mergeConfig-mergeConfig.$(OBJEXT)
-rm -f admserv/cgi-src40/monreplication.$(OBJEXT)
-rm -f admserv/cgi-src40/restartsrv.$(OBJEXT)
-rm -f admserv/cgi-src40/sec-activate.$(OBJEXT)
-rm -f admserv/cgi-src40/security.$(OBJEXT)
-rm -f admserv/cgi-src40/start_config_ds.$(OBJEXT)
-rm -f admserv/cgi-src40/statpingserv.$(OBJEXT)
-rm -f admserv/cgi-src40/statusping.$(OBJEXT)
-rm -f admserv/cgi-src40/stopsrv.$(OBJEXT)
-rm -f admserv/cgi-src40/ugdsconfig.$(OBJEXT)
-rm -f admserv/cgi-src40/viewdata.$(OBJEXT)
-rm -f admserv/cgi-src40/viewlog.$(OBJEXT)
-rm -f admserv/newinst/src/ds_admin_config-ux-config.$(OBJEXT)
-rm -f admserv/newinst/src/ds_admin_config-ux-dialog.$(OBJEXT)
-rm -f admserv/newinst/src/ds_admin_remove-ux-remove.$(OBJEXT)
-rm -f admserv/newinst/src/ds_admin_update-ux-update.$(OBJEXT)
-rm -f lib/base/file.$(OBJEXT)
-rm -f lib/base/file.lo
-rm -f lib/base/nscperror.$(OBJEXT)
-rm -f lib/base/nscperror.lo
-rm -f lib/base/nscputil.$(OBJEXT)
-rm -f lib/base/nscputil.lo
-rm -f lib/base/system.$(OBJEXT)
-rm -f lib/base/system.lo
-rm -f lib/libadmin/cluster.$(OBJEXT)
-rm -f lib/libadmin/cluster.lo
-rm -f lib/libadmin/dllglue.$(OBJEXT)
-rm -f lib/libadmin/dllglue.lo
-rm -f lib/libadmin/error.$(OBJEXT)
-rm -f lib/libadmin/error.lo
-rm -f lib/libadmin/form_get.$(OBJEXT)
-rm -f lib/libadmin/form_get.lo
-rm -f lib/libadmin/httpcon.$(OBJEXT)
-rm -f lib/libadmin/httpcon.lo
-rm -f lib/libadmin/install.$(OBJEXT)
-rm -f lib/libadmin/install.lo
-rm -f lib/libadmin/referer.$(OBJEXT)
-rm -f lib/libadmin/referer.lo
-rm -f lib/libadmin/template.$(OBJEXT)
-rm -f lib/libadmin/template.lo
-rm -f lib/libadmin/util.$(OBJEXT)
-rm -f lib/libadmin/util.lo
-rm -f lib/libsi18n/coreres.$(OBJEXT)
-rm -f lib/libsi18n/coreres.lo
-rm -f lib/libsi18n/getlang.$(OBJEXT)
-rm -f lib/libsi18n/getlang.lo
-rm -f lib/libsi18n/getstrprop.$(OBJEXT)
-rm -f lib/libsi18n/getstrprop.lo
-rm -f lib/libsi18n/propset.$(OBJEXT)
-rm -f lib/libsi18n/propset.lo
-rm -f lib/libsi18n/reshash.$(OBJEXT)
-rm -f lib/libsi18n/reshash.lo
-rm -f lib/libsi18n/txtfile.$(OBJEXT)
-rm -f lib/libsi18n/txtfile.lo
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/ReadLog.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/admpw.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/config.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/download.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/dsconfig.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/help.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/htmladmin.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/mergeConfig-mergeConfig.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/monreplication.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/restartsrv.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/sec-activate.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/security.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/start_config_ds.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/statpingserv.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/statusping.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/stopsrv.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/ugdsconfig.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/viewdata.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/viewlog.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-config.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-dialog.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/newinst/src/$(DEPDIR)/ds_admin_remove-ux-remove.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/newinst/src/$(DEPDIR)/ds_admin_update-ux-update.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/base/$(DEPDIR)/file.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/base/$(DEPDIR)/nscperror.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/base/$(DEPDIR)/nscputil.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/base/$(DEPDIR)/system.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libadmin/$(DEPDIR)/cluster.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libadmin/$(DEPDIR)/dllglue.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libadmin/$(DEPDIR)/error.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libadmin/$(DEPDIR)/form_get.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libadmin/$(DEPDIR)/httpcon.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libadmin/$(DEPDIR)/install.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libadmin/$(DEPDIR)/referer.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libadmin/$(DEPDIR)/template.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libadmin/$(DEPDIR)/util.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libsi18n/$(DEPDIR)/coreres.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libsi18n/$(DEPDIR)/getlang.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libsi18n/$(DEPDIR)/getstrprop.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libsi18n/$(DEPDIR)/propset.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libsi18n/$(DEPDIR)/reshash.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libsi18n/$(DEPDIR)/txtfile.Plo(a)am__quote@
.c.o:
@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`; \
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`; \
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCC_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`; \
@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Plo"; else rm -f "$$depbase.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
.cc.o:
@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`; \
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \
@am__fastdepCXX_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
.cc.obj:
@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`; \
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCXX_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cc.lo:
@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`; \
@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \
@am__fastdepCXX_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Plo"; else rm -f "$$depbase.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
admserv/newinst/src/ds_admin_config-ux-config.o: admserv/newinst/src/ux-config.cc
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_config_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT admserv/newinst/src/ds_admin_config-ux-config.o -MD -MP -MF "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-config.Tpo" -c -o admserv/newinst/src/ds_admin_config-ux-config.o `test -f 'admserv/newinst/src/ux-config.cc' || echo '$(srcdir)/'`admserv/newinst/src/ux-config.cc; \
@am__fastdepCXX_TRUE@ then mv -f "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-config.Tpo" "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-config.Po"; else rm -f "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-config.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='admserv/newinst/src/ux-config.cc' object='admserv/newinst/src/ds_admin_config-ux-config.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_config_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o admserv/newinst/src/ds_admin_config-ux-config.o `test -f 'admserv/newinst/src/ux-config.cc' || echo '$(srcdir)/'`admserv/newinst/src/ux-config.cc
admserv/newinst/src/ds_admin_config-ux-config.obj: admserv/newinst/src/ux-config.cc
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_config_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT admserv/newinst/src/ds_admin_config-ux-config.obj -MD -MP -MF "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-config.Tpo" -c -o admserv/newinst/src/ds_admin_config-ux-config.obj `if test -f 'admserv/newinst/src/ux-config.cc'; then $(CYGPATH_W) 'admserv/newinst/src/ux-config.cc'; else $(CYGPATH_W) '$(srcdir)/admserv/newinst/src/ux-config.cc'; fi`; \
@am__fastdepCXX_TRUE@ then mv -f "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-config.Tpo" "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-config.Po"; else rm -f "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-config.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='admserv/newinst/src/ux-config.cc' object='admserv/newinst/src/ds_admin_config-ux-config.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_config_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o admserv/newinst/src/ds_admin_config-ux-config.obj `if test -f 'admserv/newinst/src/ux-config.cc'; then $(CYGPATH_W) 'admserv/newinst/src/ux-config.cc'; else $(CYGPATH_W) '$(srcdir)/admserv/newinst/src/ux-config.cc'; fi`
admserv/newinst/src/ds_admin_config-ux-dialog.o: admserv/newinst/src/ux-dialog.cc
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_config_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT admserv/newinst/src/ds_admin_config-ux-dialog.o -MD -MP -MF "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-dialog.Tpo" -c -o admserv/newinst/src/ds_admin_config-ux-dialog.o `test -f 'admserv/newinst/src/ux-dialog.cc' || echo '$(srcdir)/'`admserv/newinst/src/ux-dialog.cc; \
@am__fastdepCXX_TRUE@ then mv -f "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-dialog.Tpo" "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-dialog.Po"; else rm -f "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-dialog.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='admserv/newinst/src/ux-dialog.cc' object='admserv/newinst/src/ds_admin_config-ux-dialog.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_config_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o admserv/newinst/src/ds_admin_config-ux-dialog.o `test -f 'admserv/newinst/src/ux-dialog.cc' || echo '$(srcdir)/'`admserv/newinst/src/ux-dialog.cc
admserv/newinst/src/ds_admin_config-ux-dialog.obj: admserv/newinst/src/ux-dialog.cc
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_config_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT admserv/newinst/src/ds_admin_config-ux-dialog.obj -MD -MP -MF "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-dialog.Tpo" -c -o admserv/newinst/src/ds_admin_config-ux-dialog.obj `if test -f 'admserv/newinst/src/ux-dialog.cc'; then $(CYGPATH_W) 'admserv/newinst/src/ux-dialog.cc'; else $(CYGPATH_W) '$(srcdir)/admserv/newinst/src/ux-dialog.cc'; fi`; \
@am__fastdepCXX_TRUE@ then mv -f "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-dialog.Tpo" "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-dialog.Po"; else rm -f "admserv/newinst/src/$(DEPDIR)/ds_admin_config-ux-dialog.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='admserv/newinst/src/ux-dialog.cc' object='admserv/newinst/src/ds_admin_config-ux-dialog.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_config_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o admserv/newinst/src/ds_admin_config-ux-dialog.obj `if test -f 'admserv/newinst/src/ux-dialog.cc'; then $(CYGPATH_W) 'admserv/newinst/src/ux-dialog.cc'; else $(CYGPATH_W) '$(srcdir)/admserv/newinst/src/ux-dialog.cc'; fi`
admserv/newinst/src/ds_admin_remove-ux-remove.o: admserv/newinst/src/ux-remove.cc
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_remove_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT admserv/newinst/src/ds_admin_remove-ux-remove.o -MD -MP -MF "admserv/newinst/src/$(DEPDIR)/ds_admin_remove-ux-remove.Tpo" -c -o admserv/newinst/src/ds_admin_remove-ux-remove.o `test -f 'admserv/newinst/src/ux-remove.cc' || echo '$(srcdir)/'`admserv/newinst/src/ux-remove.cc; \
@am__fastdepCXX_TRUE@ then mv -f "admserv/newinst/src/$(DEPDIR)/ds_admin_remove-ux-remove.Tpo" "admserv/newinst/src/$(DEPDIR)/ds_admin_remove-ux-remove.Po"; else rm -f "admserv/newinst/src/$(DEPDIR)/ds_admin_remove-ux-remove.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='admserv/newinst/src/ux-remove.cc' object='admserv/newinst/src/ds_admin_remove-ux-remove.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_remove_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o admserv/newinst/src/ds_admin_remove-ux-remove.o `test -f 'admserv/newinst/src/ux-remove.cc' || echo '$(srcdir)/'`admserv/newinst/src/ux-remove.cc
admserv/newinst/src/ds_admin_remove-ux-remove.obj: admserv/newinst/src/ux-remove.cc
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_remove_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT admserv/newinst/src/ds_admin_remove-ux-remove.obj -MD -MP -MF "admserv/newinst/src/$(DEPDIR)/ds_admin_remove-ux-remove.Tpo" -c -o admserv/newinst/src/ds_admin_remove-ux-remove.obj `if test -f 'admserv/newinst/src/ux-remove.cc'; then $(CYGPATH_W) 'admserv/newinst/src/ux-remove.cc'; else $(CYGPATH_W) '$(srcdir)/admserv/newinst/src/ux-remove.cc'; fi`; \
@am__fastdepCXX_TRUE@ then mv -f "admserv/newinst/src/$(DEPDIR)/ds_admin_remove-ux-remove.Tpo" "admserv/newinst/src/$(DEPDIR)/ds_admin_remove-ux-remove.Po"; else rm -f "admserv/newinst/src/$(DEPDIR)/ds_admin_remove-ux-remove.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='admserv/newinst/src/ux-remove.cc' object='admserv/newinst/src/ds_admin_remove-ux-remove.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_remove_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o admserv/newinst/src/ds_admin_remove-ux-remove.obj `if test -f 'admserv/newinst/src/ux-remove.cc'; then $(CYGPATH_W) 'admserv/newinst/src/ux-remove.cc'; else $(CYGPATH_W) '$(srcdir)/admserv/newinst/src/ux-remove.cc'; fi`
admserv/newinst/src/ds_admin_update-ux-update.o: admserv/newinst/src/ux-update.cc
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_update_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT admserv/newinst/src/ds_admin_update-ux-update.o -MD -MP -MF "admserv/newinst/src/$(DEPDIR)/ds_admin_update-ux-update.Tpo" -c -o admserv/newinst/src/ds_admin_update-ux-update.o `test -f 'admserv/newinst/src/ux-update.cc' || echo '$(srcdir)/'`admserv/newinst/src/ux-update.cc; \
@am__fastdepCXX_TRUE@ then mv -f "admserv/newinst/src/$(DEPDIR)/ds_admin_update-ux-update.Tpo" "admserv/newinst/src/$(DEPDIR)/ds_admin_update-ux-update.Po"; else rm -f "admserv/newinst/src/$(DEPDIR)/ds_admin_update-ux-update.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='admserv/newinst/src/ux-update.cc' object='admserv/newinst/src/ds_admin_update-ux-update.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_update_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o admserv/newinst/src/ds_admin_update-ux-update.o `test -f 'admserv/newinst/src/ux-update.cc' || echo '$(srcdir)/'`admserv/newinst/src/ux-update.cc
admserv/newinst/src/ds_admin_update-ux-update.obj: admserv/newinst/src/ux-update.cc
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_update_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT admserv/newinst/src/ds_admin_update-ux-update.obj -MD -MP -MF "admserv/newinst/src/$(DEPDIR)/ds_admin_update-ux-update.Tpo" -c -o admserv/newinst/src/ds_admin_update-ux-update.obj `if test -f 'admserv/newinst/src/ux-update.cc'; then $(CYGPATH_W) 'admserv/newinst/src/ux-update.cc'; else $(CYGPATH_W) '$(srcdir)/admserv/newinst/src/ux-update.cc'; fi`; \
@am__fastdepCXX_TRUE@ then mv -f "admserv/newinst/src/$(DEPDIR)/ds_admin_update-ux-update.Tpo" "admserv/newinst/src/$(DEPDIR)/ds_admin_update-ux-update.Po"; else rm -f "admserv/newinst/src/$(DEPDIR)/ds_admin_update-ux-update.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='admserv/newinst/src/ux-update.cc' object='admserv/newinst/src/ds_admin_update-ux-update.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_admin_update_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o admserv/newinst/src/ds_admin_update-ux-update.obj `if test -f 'admserv/newinst/src/ux-update.cc'; then $(CYGPATH_W) 'admserv/newinst/src/ux-update.cc'; else $(CYGPATH_W) '$(srcdir)/admserv/newinst/src/ux-update.cc'; fi`
admserv/cgi-src40/mergeConfig-mergeConfig.o: admserv/cgi-src40/mergeConfig.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mergeConfig_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT admserv/cgi-src40/mergeConfig-mergeConfig.o -MD -MP -MF "admserv/cgi-src40/$(DEPDIR)/mergeConfig-mergeConfig.Tpo" -c -o admserv/cgi-src40/mergeConfig-mergeConfig.o `test -f 'admserv/cgi-src40/mergeConfig.cpp' || echo '$(srcdir)/'`admserv/cgi-src40/mergeConfig.cpp; \
@am__fastdepCXX_TRUE@ then mv -f "admserv/cgi-src40/$(DEPDIR)/mergeConfig-mergeConfig.Tpo" "admserv/cgi-src40/$(DEPDIR)/mergeConfig-mergeConfig.Po"; else rm -f "admserv/cgi-src40/$(DEPDIR)/mergeConfig-mergeConfig.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='admserv/cgi-src40/mergeConfig.cpp' object='admserv/cgi-src40/mergeConfig-mergeConfig.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mergeConfig_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o admserv/cgi-src40/mergeConfig-mergeConfig.o `test -f 'admserv/cgi-src40/mergeConfig.cpp' || echo '$(srcdir)/'`admserv/cgi-src40/mergeConfig.cpp
admserv/cgi-src40/mergeConfig-mergeConfig.obj: admserv/cgi-src40/mergeConfig.cpp
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mergeConfig_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT admserv/cgi-src40/mergeConfig-mergeConfig.obj -MD -MP -MF "admserv/cgi-src40/$(DEPDIR)/mergeConfig-mergeConfig.Tpo" -c -o admserv/cgi-src40/mergeConfig-mergeConfig.obj `if test -f 'admserv/cgi-src40/mergeConfig.cpp'; then $(CYGPATH_W) 'admserv/cgi-src40/mergeConfig.cpp'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-src40/mergeConfig.cpp'; fi`; \
@am__fastdepCXX_TRUE@ then mv -f "admserv/cgi-src40/$(DEPDIR)/mergeConfig-mergeConfig.Tpo" "admserv/cgi-src40/$(DEPDIR)/mergeConfig-mergeConfig.Po"; else rm -f "admserv/cgi-src40/$(DEPDIR)/mergeConfig-mergeConfig.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='admserv/cgi-src40/mergeConfig.cpp' object='admserv/cgi-src40/mergeConfig-mergeConfig.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mergeConfig_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o admserv/cgi-src40/mergeConfig-mergeConfig.obj `if test -f 'admserv/cgi-src40/mergeConfig.cpp'; then $(CYGPATH_W) 'admserv/cgi-src40/mergeConfig.cpp'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-src40/mergeConfig.cpp'; fi`
.cpp.o:
@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`; \
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \
@am__fastdepCXX_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
.cpp.obj:
@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`; \
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCXX_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cpp.lo:
@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`; \
@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \
@am__fastdepCXX_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Plo"; else rm -f "$$depbase.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
-rm -rf lib/base/.libs lib/base/_libs
-rm -rf lib/libadmin/.libs lib/libadmin/_libs
-rm -rf lib/libsi18n/.libs lib/libsi18n/_libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
install-dist_helpDATA: $(dist_help_DATA)
@$(NORMAL_INSTALL)
test -z "$(helpdir)" || $(mkdir_p) "$(DESTDIR)$(helpdir)"
@list='$(dist_help_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(dist_helpDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(helpdir)/$$f'"; \
$(dist_helpDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(helpdir)/$$f"; \
done
uninstall-dist_helpDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_help_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(helpdir)/$$f'"; \
rm -f "$(DESTDIR)$(helpdir)/$$f"; \
done
install-dist_htmlDATA: $(dist_html_DATA)
@$(NORMAL_INSTALL)
test -z "$(htmldir)" || $(mkdir_p) "$(DESTDIR)$(htmldir)"
@list='$(dist_html_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(dist_htmlDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
$(dist_htmlDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
done
uninstall-dist_htmlDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_html_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(htmldir)/$$f'"; \
rm -f "$(DESTDIR)$(htmldir)/$$f"; \
done
install-dist_iconDATA: $(dist_icon_DATA)
@$(NORMAL_INSTALL)
test -z "$(icondir)" || $(mkdir_p) "$(DESTDIR)$(icondir)"
@list='$(dist_icon_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(dist_iconDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(icondir)/$$f'"; \
$(dist_iconDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(icondir)/$$f"; \
done
uninstall-dist_iconDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_icon_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(icondir)/$$f'"; \
rm -f "$(DESTDIR)$(icondir)/$$f"; \
done
install-ldifDATA: $(ldif_DATA)
@$(NORMAL_INSTALL)
test -z "$(ldifdir)" || $(mkdir_p) "$(DESTDIR)$(ldifdir)"
@list='$(ldif_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(ldifDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(ldifdir)/$$f'"; \
$(ldifDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(ldifdir)/$$f"; \
done
uninstall-ldifDATA:
@$(NORMAL_UNINSTALL)
@list='$(ldif_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(ldifdir)/$$f'"; \
rm -f "$(DESTDIR)$(ldifdir)/$$f"; \
done
install-nodist_configDATA: $(nodist_config_DATA)
@$(NORMAL_INSTALL)
test -z "$(configdir)" || $(mkdir_p) "$(DESTDIR)$(configdir)"
@list='$(nodist_config_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(nodist_configDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(configdir)/$$f'"; \
$(nodist_configDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(configdir)/$$f"; \
done
uninstall-nodist_configDATA:
@$(NORMAL_UNINSTALL)
@list='$(nodist_config_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(configdir)/$$f'"; \
rm -f "$(DESTDIR)$(configdir)/$$f"; \
done
install-nodist_propertyDATA: $(nodist_property_DATA)
@$(NORMAL_INSTALL)
test -z "$(propertydir)" || $(mkdir_p) "$(DESTDIR)$(propertydir)"
@list='$(nodist_property_DATA)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(nodist_propertyDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(propertydir)/$$f'"; \
$(nodist_propertyDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(propertydir)/$$f"; \
done
uninstall-nodist_propertyDATA:
@$(NORMAL_UNINSTALL)
@list='$(nodist_property_DATA)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(propertydir)/$$f'"; \
rm -f "$(DESTDIR)$(propertydir)/$$f"; \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
mkdir $(distdir)
$(mkdir_p) $(distdir)/$(HTMLDIR) $(distdir)/$(ICONDIR) $(distdir)/admserv/cgi-src40 $(distdir)/m4
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& cd $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) \
config.h
installdirs:
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(cgibindir)" "$(DESTDIR)$(cmdbindir)" "$(DESTDIR)$(cgibindir)" "$(DESTDIR)$(cmdbindir)" "$(DESTDIR)$(helpdir)" "$(DESTDIR)$(htmldir)" "$(DESTDIR)$(icondir)" "$(DESTDIR)$(ldifdir)" "$(DESTDIR)$(configdir)" "$(DESTDIR)$(propertydir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-rm -f admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
-rm -f admserv/cgi-src40/$(am__dirstamp)
-rm -f admserv/newinst/src/$(DEPDIR)/$(am__dirstamp)
-rm -f admserv/newinst/src/$(am__dirstamp)
-rm -f lib/base/$(DEPDIR)/$(am__dirstamp)
-rm -f lib/base/$(am__dirstamp)
-rm -f lib/libadmin/$(DEPDIR)/$(am__dirstamp)
-rm -f lib/libadmin/$(am__dirstamp)
-rm -f lib/libsi18n/$(DEPDIR)/$(am__dirstamp)
-rm -f lib/libsi18n/$(am__dirstamp)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-cgibinPROGRAMS clean-cmdbinPROGRAMS clean-generic \
clean-libLTLIBRARIES clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf admserv/cgi-src40/$(DEPDIR) admserv/newinst/src/$(DEPDIR) lib/base/$(DEPDIR) lib/libadmin/$(DEPDIR) lib/libsi18n/$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-hdr distclean-libtool distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-cgibinPROGRAMS install-cgibinSCRIPTS \
install-cmdbinPROGRAMS install-dist_helpDATA \
install-dist_htmlDATA install-dist_iconDATA install-ldifDATA \
install-nodist_cmdbinSCRIPTS install-nodist_configDATA \
install-nodist_propertyDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-exec-am: install-libLTLIBRARIES
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -rf admserv/cgi-src40/$(DEPDIR) admserv/newinst/src/$(DEPDIR) lib/base/$(DEPDIR) lib/libadmin/$(DEPDIR) lib/libsi18n/$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-cgibinPROGRAMS uninstall-cgibinSCRIPTS \
uninstall-cmdbinPROGRAMS uninstall-dist_helpDATA \
uninstall-dist_htmlDATA uninstall-dist_iconDATA \
uninstall-info-am uninstall-ldifDATA uninstall-libLTLIBRARIES \
uninstall-nodist_cmdbinSCRIPTS uninstall-nodist_configDATA \
uninstall-nodist_propertyDATA
.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
clean-cgibinPROGRAMS clean-cmdbinPROGRAMS clean-generic \
clean-libLTLIBRARIES clean-libtool ctags dist dist-all \
dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip distcheck \
distclean distclean-compile distclean-generic distclean-hdr \
distclean-libtool distclean-tags distcleancheck distdir \
distuninstallcheck dvi dvi-am html html-am info info-am \
install install-am install-cgibinPROGRAMS \
install-cgibinSCRIPTS install-cmdbinPROGRAMS install-data \
install-data-am install-data-hook install-dist_helpDATA \
install-dist_htmlDATA install-dist_iconDATA install-exec \
install-exec-am install-info install-info-am install-ldifDATA \
install-libLTLIBRARIES install-man \
install-nodist_cmdbinSCRIPTS install-nodist_configDATA \
install-nodist_propertyDATA install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-cgibinPROGRAMS \
uninstall-cgibinSCRIPTS uninstall-cmdbinPROGRAMS \
uninstall-dist_helpDATA uninstall-dist_htmlDATA \
uninstall-dist_iconDATA uninstall-info-am uninstall-ldifDATA \
uninstall-libLTLIBRARIES uninstall-nodist_cmdbinSCRIPTS \
uninstall-nodist_configDATA uninstall-nodist_propertyDATA
#SUBDIRS = mod_admserv mod_restartd
# however, because the makefiles for the modules ignore a destdir passed
# in to make install, we just skip install for the subdirs . . .
# install-recursive : override SUBDIRS=
# install-exec-recursive : override SUBDIRS=
# # . . . and instead install them ourselves
# install-exec-hook: all-recursive
# @$(NORMAL_INSTALL)
# test -z "$(moddir)" || $(mkdir_p) "$(DESTDIR)$(moddir)"
# @list='mod_admserv mod_restartd'; for p in $$list; do \
# for p1 in $$p/.libs/libmod*.* \
# ; do \
# echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) '$$p1' '$(DESTDIR)$(moddir)'"; \
# $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) "$$p1" "$(DESTDIR)$(moddir)" || exit 1; \
# done ; \
# done
install-data-hook:
@for file in $(RESOURCE_BUNDLES_ROOT) ; do \
basefile=`basename $$file` ; \
destfile=`basename $$file | sed -e s,_root,/root,` ; \
destdir=`dirname $$destfile` ; \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) '$(DESTDIR)$(propertydir)/$$basefile' '$(DESTDIR)$(propertydir)/$$destfile'"; \
$(mkdir_p) "$(DESTDIR)$(propertydir)/$$destdir" ; \
mv "$(DESTDIR)$(propertydir)/$$basefile" "$(DESTDIR)$(propertydir)/$$destfile" || exit 1; \
cp "$(DESTDIR)$(propertydir)/$$destfile" "$(DESTDIR)$(propertydir)/$$destdir/en.res" || exit 1; \
cp "$(DESTDIR)$(propertydir)/$$destfile" "$(DESTDIR)$(propertydir)/$$destdir/en_US.res" || exit 1; \
done
# French resource bundles (for the French localization in the future)
#RESOURCE_BUNDLES_FR = foo_fr.res
# German resource bundles (for the German localization in the future)
#RESOURCE_BUNDLES_DE = foo_de.res
%_root.res : %.properties
$(ICU_GENRB) -s. -d. --encoding 8859-1 --package-name $* $+
%_fr.res : %_fr.properties
$(ICU_GENRB) -s. -d. --encoding 8859-2 --package-name $* $+
%_de.res : %_de.properties
$(ICU_GENRB) -s. -d. --encoding 8859-2 --package-name $* $+
-e 's,@LIBPATH\@,$(LIBPATH),g'
% : %.in
mkdir -p $(dir $@)
$(fixupcmd) $^ > $@
# because the source may be either httpd.conf.in or httpd-2.2.conf.in
admserv/cfgstuff/httpd.conf: $(HTTPD_CONF_SRC)
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
--- NEW FILE NEWS ---
--- NEW FILE README ---
--- NEW FILE aclocal.m4 ---
# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
# serial 48 AC_PROG_LIBTOOL
# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
# -----------------------------------------------------------
# If this macro is not defined by Autoconf, define it here.
m4_ifdef([AC_PROVIDE_IFELSE],
[],
[m4_define([AC_PROVIDE_IFELSE],
[m4_ifdef([AC_PROVIDE_$1],
[$2], [$3])])])
# AC_PROG_LIBTOOL
# ---------------
AC_DEFUN([AC_PROG_LIBTOOL],
[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
AC_PROVIDE_IFELSE([AC_PROG_CXX],
[AC_LIBTOOL_CXX],
[define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
])])
dnl And a similar setup for Fortran 77 support
AC_PROVIDE_IFELSE([AC_PROG_F77],
[AC_LIBTOOL_F77],
[define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
])])
dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
AC_PROVIDE_IFELSE([AC_PROG_GCJ],
[AC_LIBTOOL_GCJ],
[AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
[AC_LIBTOOL_GCJ],
[AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
[AC_LIBTOOL_GCJ],
[ifdef([AC_PROG_GCJ],
[define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
ifdef([A][M_PROG_GCJ],
[define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
ifdef([LT_AC_PROG_GCJ],
[define([LT_AC_PROG_GCJ],
defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
])])# AC_PROG_LIBTOOL
# _AC_PROG_LIBTOOL
# ----------------
AC_DEFUN([_AC_PROG_LIBTOOL],
[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
# This can be used to rebuild libtool when needed
LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
AC_SUBST(LIBTOOL)dnl
# Prevent multiple expansion
define([AC_PROG_LIBTOOL], [])
])# _AC_PROG_LIBTOOL
# AC_LIBTOOL_SETUP
# ----------------
AC_DEFUN([AC_LIBTOOL_SETUP],
[AC_PREREQ(2.50)dnl
AC_REQUIRE([AC_ENABLE_SHARED])dnl
AC_REQUIRE([AC_ENABLE_STATIC])dnl
AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_REQUIRE([AC_CANONICAL_BUILD])dnl
AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AC_PROG_LD])dnl
AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
AC_REQUIRE([AC_PROG_NM])dnl
AC_REQUIRE([AC_PROG_LN_S])dnl
AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
AC_REQUIRE([AC_OBJEXT])dnl
AC_REQUIRE([AC_EXEEXT])dnl
dnl
AC_LIBTOOL_SYS_MAX_CMD_LEN
AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
AC_LIBTOOL_OBJDIR
AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
_LT_AC_PROG_ECHO_BACKSLASH
case $host_os in
aix3*)
# AIX sometimes has problems with the GCC collect2 program. For some
# reason, if we set the COLLECT_NAMES environment variable, the problems
# vanish in a puff of smoke.
if test "X${COLLECT_NAMES+set}" != Xset; then
COLLECT_NAMES=
export COLLECT_NAMES
fi
;;
esac
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
Xsed='sed -e 1s/^X//'
[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
# Same as above, but do not quote variable references.
[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
# Sed substitution to delay expansion of an escaped shell variable in a
# double_quote_subst'ed string.
delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
# Sed substitution to avoid accidental globbing in evaled expressions
no_glob_subst='s/\*/\\\*/g'
# Constants:
rm="rm -f"
# Global variables:
default_ofile=libtool
can_build_shared=yes
# All known linkers require a `.a' archive for static linking (except MSVC,
# which needs '.lib').
libext=a
ltmain="$ac_aux_dir/ltmain.sh"
ofile="$default_ofile"
with_gnu_ld="$lt_cv_prog_gnu_ld"
AC_CHECK_TOOL(AR, ar, false)
AC_CHECK_TOOL(RANLIB, ranlib, :)
AC_CHECK_TOOL(STRIP, strip, :)
old_CC="$CC"
old_CFLAGS="$CFLAGS"
# Set sane defaults for various variables
test -z "$AR" && AR=ar
test -z "$AR_FLAGS" && AR_FLAGS=cru
test -z "$AS" && AS=as
test -z "$CC" && CC=cc
test -z "$LTCC" && LTCC=$CC
test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
test -z "$DLLTOOL" && DLLTOOL=dlltool
test -z "$LD" && LD=ld
test -z "$LN_S" && LN_S="ln -s"
test -z "$MAGIC_CMD" && MAGIC_CMD=file
test -z "$NM" && NM=nm
test -z "$SED" && SED=sed
test -z "$OBJDUMP" && OBJDUMP=objdump
test -z "$RANLIB" && RANLIB=:
test -z "$STRIP" && STRIP=:
test -z "$ac_objext" && ac_objext=o
# Determine commands to create old-style static archives.
old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
old_postinstall_cmds='chmod 644 $oldlib'
old_postuninstall_cmds=
if test -n "$RANLIB"; then
case $host_os in
openbsd*)
old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
;;
*)
old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
;;
esac
old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
fi
_LT_CC_BASENAME([$compiler])
# Only perform the check for file, if the check method requires it
case $deplibs_check_method in
file_magic*)
[...6885 lines suppressed...]
# _AM_MANGLE_OPTION(NAME)
# -----------------------
AC_DEFUN([_AM_MANGLE_OPTION],
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
# _AM_SET_OPTION(NAME)
# ------------------------------
# Set option NAME. Presently that only means defining a flag for this option.
AC_DEFUN([_AM_SET_OPTION],
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
# _AM_SET_OPTIONS(OPTIONS)
# ----------------------------------
# OPTIONS is a space-separated list of Automake options.
AC_DEFUN([_AM_SET_OPTIONS],
[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
# -------------------------------------------
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
# Check to make sure that the build environment is sane. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 4
# AM_SANITY_CHECK
# ---------------
AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
echo timestamp > conftest.file
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
if test "$[*]" = "X"; then
# -L didn't work.
set X `ls -t $srcdir/configure conftest.file`
fi
rm -f conftest.file
if test "$[*]" != "X $srcdir/configure conftest.file" \
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
alias in your environment])
fi
test "$[2]" = conftest.file
)
then
# Ok.
:
else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
AC_MSG_RESULT(yes)])
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# AM_PROG_INSTALL_STRIP
# ---------------------
# One issue with vendor `install' (even GNU) is that you can't
# specify the program used to strip binaries. This is especially
# annoying in cross-compiling environments, where the build's strip
# is unlikely to handle the host's binaries.
# Fortunately install-sh will honor a STRIPPROG variable, so we
# always use install-sh in `make install-strip', and initialize
# STRIPPROG with the value of the STRIP variable (set by the user).
AC_DEFUN([AM_PROG_INSTALL_STRIP],
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
# Installed binaries are usually stripped using `strip' when the user
# run `make install-strip'. However `strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
# will honor the `STRIP' environment variable to overrule this program.
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
if test "$cross_compiling" != no; then
AC_CHECK_TOOL([STRIP], [strip], :)
fi
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
# Check how to create a tarball. -*- Autoconf -*-
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 2
# _AM_PROG_TAR(FORMAT)
# --------------------
# Check how to create a tarball in format FORMAT.
# FORMAT should be one of `v7', `ustar', or `pax'.
#
# Substitute a variable $(am__tar) that is a command
# writing to stdout a FORMAT-tarball containing the directory
# $tardir.
# tardir=directory && $(am__tar) > result.tar
#
# Substitute a variable $(am__untar) that extract such
# a tarball read from stdin.
# $(am__untar) < result.tar
AC_DEFUN([_AM_PROG_TAR],
[# Always define AMTAR for backward compatibility.
AM_MISSING_PROG([AMTAR], [tar])
m4_if([$1], [v7],
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
[m4_case([$1], [ustar],, [pax],,
[m4_fatal([Unknown tar format])])
AC_MSG_CHECKING([how to create a $1 tar archive])
# Loop over all known methods to create a tar archive until one works.
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
# Do not fold the above two line into one, because Tru64 sh and
# Solaris sh will not grok spaces in the rhs of `-'.
for _am_tool in $_am_tools
do
case $_am_tool in
gnutar)
for _am_tar in tar gnutar gtar;
do
AM_RUN_LOG([$_am_tar --version]) && break
done
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
am__untar="$_am_tar -xf -"
;;
plaintar)
# Must skip GNU tar: if it does not support --format= it doesn't create
# ustar tarball either.
(tar --version) >/dev/null 2>&1 && continue
am__tar='tar chf - "$$tardir"'
am__tar_='tar chf - "$tardir"'
am__untar='tar xf -'
;;
pax)
am__tar='pax -L -x $1 -w "$$tardir"'
am__tar_='pax -L -x $1 -w "$tardir"'
am__untar='pax -r'
;;
cpio)
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
am__untar='cpio -i -H $1 -d'
;;
none)
am__tar=false
am__tar_=false
am__untar=false
;;
esac
# If the value was cached, stop now. We just wanted to have am__tar
# and am__untar set.
test -n "${am_cv_prog_tar_$1}" && break
# tar/untar a dummy directory, and stop if the command works
rm -rf conftest.dir
mkdir conftest.dir
echo GrepMe > conftest.dir/file
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
rm -rf conftest.dir
if test -s conftest.tar; then
AM_RUN_LOG([$am__untar <conftest.tar])
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
fi
done
rm -rf conftest.dir
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
--- NEW FILE autogen.sh ---
#!/bin/sh
# Check autoconf version
AC_VERSION=`autoconf --version | grep '^autoconf' | sed 's/.*) *//'`
case $AC_VERSION in
'' | 0.* | 1.* | 2.[0-4]* | 2.[0-9] | 2.5[0-8]* )
echo "You must have autoconf version 2.59 or later installed (found version $AC_VERSION)."
exit 1
;;
* )
echo "Found autoconf version $AC_VERSION"
;;
esac
# Check automake version
AM_VERSION=`automake --version | grep '^automake' | sed 's/.*) *//'`
case $AM_VERSION in
'' | 0.* | 1.[0-8]* | 1.9.[0-5]* )
echo "You must have automake version 1.9.6 or later installed (found version $AM_VERSION)."
exit 1
;;
* )
echo "Found automake version $AM_VERSION"
;;
esac
# Check libtool version
LT_VERSION=`libtool --version | grep ' libtool)' | sed 's/.*) \([0-9][0-9.]*\)[^ ]* .*/\1/'`
case $LT_VERSION in
'' | 0.* | 1.[0-4]* | 1.5.[0-9] | 1.5.[0-1]* | 1.5.2[0-1]* )
echo "You must have libtool version 1.5.22 or later installed (found version $LT_VERSION)."
exit 1
;;
* )
echo "Found libtool version $LT_VERSION"
;;
esac
# Run autoreconf
echo "Running autoreconf -fvi"
autoreconf -fvi
--- NEW FILE compile ---
#! /bin/sh
# Wrapper for compilers which do not understand `-c -o'.
scriptversion=2005-05-14.22
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey(a)cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake(a)gnu.org> or send patches to
# <automake-patches(a)gnu.org>.
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
Wrapper for compilers which do not understand `-c -o'.
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
If you are trying to build a whole package this is not the
right script to run: please start by reading the file `INSTALL'.
Report bugs to <bug-automake(a)gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
exit $?
;;
esac
ofile=
cfile=
eat=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as `compile cc -o foo foo.c'.
# So we strip `-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
ofile=$2
;;
*)
set x "$@" -o "$2"
shift
;;
esac
;;
*.c)
cfile=$1
set x "$@" "$1"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -z "$ofile" || test -z "$cfile"; then
# If no `-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# `.c' file was seen then we are probably linking. That is also
# ok.
exec "$@"
fi
# Name of file we expect compiler to create.
cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
# Create the lock directory.
# Note: use `[/.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
while true; do
if mkdir "$lockdir" >/dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
"$@"
ret=$?
if test -f "$cofile"; then
mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
mv "${cofile}bj" "$ofile"
fi
rmdir "$lockdir"
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:
--- NEW FILE config.guess ---
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
timestamp='2005-07-08'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
# 02110-1301, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Per Bothner <per(a)bothner.com>.
# Please send patches to <config-patches(a)gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
# exits with 0. Otherwise, it exits with 1.
#
# The plan is that this can be called by configure scripts if you
# don't specify an explicit build system type.
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION]
Output the configuration name of the system \`$me' is run on.
Operation modes:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to <config-patches(a)gnu.org>."
version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit ;;
--version | -v )
echo "$version" ; exit ;;
--help | --h* | -h )
echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
echo "$me: invalid option $1$help" >&2
exit 1 ;;
* )
break ;;
esac
done
if test $# != 0; then
echo "$me: too many arguments$help" >&2
exit 1
fi
trap 'exit 1' 1 2 15
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.
# Portable tmp directory creation inspired by the Autoconf team.
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
case $CC_FOR_BUILD,$HOST_CC,$CC in
,,) echo "int x;" > $dummy.c ;
for c in cc gcc c89 c99 ; do
if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
CC_FOR_BUILD="$c"; break ;
fi ;
done ;
if test x"$CC_FOR_BUILD" = x ; then
CC_FOR_BUILD=no_compiler_found ;
fi
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
esac ; set_cc_for_build= ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi(a)noc.rutgers.edu 1994-08-24)
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
# switched to ELF, *-*-netbsd* would select the old
# object file format. This provides both forward
# compatibility and a consistent mechanism for selecting the
# object file format.
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || echo unknown)`
case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently, or will in the future.
case "${UNAME_MACHINE_ARCH}" in
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep __ELF__ >/dev/null
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
os=netbsd
else
os=netbsdelf
fi
;;
*)
os=netbsd
;;
esac
# The OS release
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
case "${UNAME_VERSION}" in
Debian*)
release='-gnu'
;;
*)
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
exit ;;
*:ekkoBSD:*:*)
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
exit ;;
macppc:MirBSD:*:*)
echo powerppc-unknown-mirbsd${UNAME_RELEASE}
exit ;;
*:MirBSD:*:*)
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
case "$ALPHA_CPU_TYPE" in
"EV4 (21064)")
UNAME_MACHINE="alpha" ;;
"EV4.5 (21064)")
UNAME_MACHINE="alpha" ;;
"LCA4 (21066/21068)")
UNAME_MACHINE="alpha" ;;
"EV5 (21164)")
UNAME_MACHINE="alphaev5" ;;
"EV5.6 (21164A)")
UNAME_MACHINE="alphaev56" ;;
"EV5.6 (21164PC)")
UNAME_MACHINE="alphapca56" ;;
"EV5.7 (21164PC)")
UNAME_MACHINE="alphapca57" ;;
"EV6 (21264)")
UNAME_MACHINE="alphaev6" ;;
"EV6.7 (21264A)")
UNAME_MACHINE="alphaev67" ;;
"EV6.8CB (21264C)")
UNAME_MACHINE="alphaev68" ;;
"EV6.8AL (21264B)")
UNAME_MACHINE="alphaev68" ;;
"EV6.8CX (21264D)")
UNAME_MACHINE="alphaev68" ;;
"EV6.9A (21264/EV69A)")
UNAME_MACHINE="alphaev69" ;;
"EV7 (21364)")
UNAME_MACHINE="alphaev7" ;;
"EV7.9 (21364A)")
UNAME_MACHINE="alphaev79" ;;
esac
# A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
exit ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
exit ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
exit ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-amigaos
exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-morphos
exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
exit ;;
*:z/VM:*:*)
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit ;;
arm:riscos:*:*|arm:RISCOS:*:*)
echo arm-unknown-riscos
exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
exit ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee(a)wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
echo pyramid-pyramid-sysv3
else
echo pyramid-pyramid-bsd
fi
exit ;;
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
exit ;;
DRS?6000:unix:4.0:6*)
echo sparc-icl-nx6
exit ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
i86pc:SunOS:5.*:*)
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
exit ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
echo m68k-sun-sunos${UNAME_RELEASE}
;;
sun4)
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
exit ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
# to the lowercase version "mint" (or "freemint"). Finally
# the system name "TOS" denotes a system which is actually not
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE}
exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE}
exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE}
exit ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
exit ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
exit ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
int main (int argc, char *argv[]) {
#else
int main (argc, argv) int argc; char *argv[]; {
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
$CC_FOR_BUILD -o $dummy $dummy.c &&
dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
SYSTEM_NAME=`$dummy $dummyarg` &&
{ echo "$SYSTEM_NAME"; exit; }
echo mips-mips-riscos${UNAME_RELEASE}
exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
exit ;;
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
exit ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
exit ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
exit ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
[ ${TARGET_BINARY_INTERFACE}x = x ]
then
echo m88k-dg-dgux${UNAME_RELEASE}
else
echo m88k-dg-dguxbcs${UNAME_RELEASE}
fi
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
exit ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
exit ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
exit ;;
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
echo i386-ibm-aix
exit ;;
ia64:AIX:*:*)
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include <sys/systemcfg.h>
main()
{
if (!__power_pc())
exit(1);
puts("powerpc-ibm-aix3.2.5");
exit(0);
}
EOF
if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
then
echo "$SYSTEM_NAME"
else
echo rs6000-ibm-aix3.2.5
fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
exit ;;
*:AIX:*:[45])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
exit ;;
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
exit ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
exit ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
exit ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
exit ;;
9000/[34678]??:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
case "${UNAME_MACHINE}" in
9000/31? ) HP_ARCH=m68000 ;;
9000/[34]?? ) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "${sc_cpu_version}" in
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
case "${sc_kernel_bits}" in
32) HP_ARCH="hppa2.0n" ;;
64) HP_ARCH="hppa2.0w" ;;
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
esac ;;
esac
fi
if [ "${HP_ARCH}" = "" ]; then
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#define _HPUX_SOURCE
#include <stdlib.h>
#include <unistd.h>
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
EOF
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
if [ ${HP_ARCH} = "hppa2.0w" ]
then
eval $set_cc_for_build
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
# generating 64-bit code. GNU and HP use different nomenclature:
#
# $ CC_FOR_BUILD=cc ./config.guess
# => hppa2.0w-hp-hpux11.23
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
# => hppa64-hp-hpux11.23
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
grep __LP64__ >/dev/null
then
HP_ARCH="hppa2.0w"
else
HP_ARCH="hppa64"
fi
fi
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
exit ;;
ia64:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ia64-hp-hpux${HPUX_REV}
exit ;;
3050*:HI-UX:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include <unistd.h>
int
main ()
{
long cpu = sysconf (_SC_CPU_VERSION);
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
results, however. */
if (CPU_IS_PA_RISC (cpu))
{
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
default: puts ("hppa-hitachi-hiuxwe2"); break;
}
}
else if (CPU_IS_HP_MC68K (cpu))
puts ("m68k-hitachi-hiuxwe2");
else puts ("unknown-hitachi-hiuxwe2");
exit (0);
}
EOF
$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
{ echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
exit ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
exit ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
exit ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
exit ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
exit ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-unknown-osf1mk
else
echo ${UNAME_MACHINE}-unknown-osf1
fi
exit ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
*:UNICOS/mp:*:*)
echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:FreeBSD:*:*)
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
i*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
i*:windows32*:*)
# uname -m includes "-pc" on this system.
echo ${UNAME_MACHINE}-mingw32
exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
x86:Interix*:[34]*)
echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
exit ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
echo i586-pc-interix
exit ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
exit ;;
amd64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
exit ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin
exit ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
*:GNU:*:*)
# the GNU system
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit ;;
arm*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
cris:Linux:*:*)
echo cris-axis-linux-gnu
exit ;;
crisv32:Linux:*:*)
echo crisv32-axis-linux-gnu
exit ;;
frv:Linux:*:*)
echo frv-unknown-linux-gnu
exit ;;
ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
m32r*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
mips:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
#undef mips
#undef mipsel
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
CPU=mipsel
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=mips
#else
CPU=
#endif
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
mips64:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
#undef mips64
#undef mips64el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
CPU=mips64el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=mips64
#else
CPU=
#endif
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu
exit ;;
ppc64:Linux:*:*)
echo powerpc64-unknown-linux-gnu
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
PCA57) UNAME_MACHINE=alphapca56 ;;
EV6) UNAME_MACHINE=alphaev6 ;;
EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
PA7*) echo hppa1.1-unknown-linux-gnu ;;
PA8*) echo hppa2.0-unknown-linux-gnu ;;
*) echo hppa-unknown-linux-gnu ;;
esac
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-gnu
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
exit ;;
sh64*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
x86_64:Linux:*:*)
echo x86_64-unknown-linux-gnu
exit ;;
i*86:Linux:*:*)
# The BFD linker knows what the default object file format is, so
# first see if it will tell us. cd to the root directory to prevent
# problems with other programs or directories called `ld' in the path.
# Set LC_ALL=C to ensure ld outputs messages in English.
ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
| sed -ne '/supported targets:/!d
s/[ ][ ]*/ /g
s/.*supported targets: *//
s/ .*//
p'`
case "$ld_supported_targets" in
elf32-i386)
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
;;
a.out-i386-linux)
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
exit ;;
coff-i386)
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
exit ;;
"")
# Either a pre-BFD a.out linker (linux-gnuoldld) or
# one that does not give us useful --help.
echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
exit ;;
esac
# Determine whether the default compiler is a.out or elf
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include <features.h>
#ifdef __ELF__
# ifdef __GLIBC__
# if __GLIBC__ >= 2
LIBC=gnu
# else
LIBC=gnulibc1
# endif
# else
LIBC=gnulibc1
# endif
#else
#ifdef __INTEL_COMPILER
LIBC=gnu
#else
LIBC=gnuaout
#endif
#endif
#ifdef __dietlibc__
LIBC=dietlibc
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
test x"${LIBC}" != x && {
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
exit
}
test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
echo i386-sequent-sysv4
exit ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo ${UNAME_MACHINE}-pc-os2-emx
exit ;;
i*86:XTS-300:*:STOP)
echo ${UNAME_MACHINE}-unknown-stop
exit ;;
i*86:atheos:*:*)
echo ${UNAME_MACHINE}-unknown-atheos
exit ;;
i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
exit ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit ;;
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
exit ;;
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
exit ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
exit ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i386.
echo i386-pc-msdosdjgpp
exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit ;;
paragon:*:*:*)
echo i860-intel-osf1
exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
fi
exit ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
exit ;;
mc68k:UNIX:SYSTEM5:3.51m)
echo m68k-convergent-sysv
exit ;;
M680?0:D-NIX:5.3:*)
echo m68k-diab-dnix
exit ;;
M68*:*:R3V[5678]*:*)
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
exit ;;
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
exit ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
exit ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
exit ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
exit ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
echo ${UNAME_MACHINE}-sni-sysv4
else
echo ns32k-sni-sysv
fi
exit ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel(a)ccMail.Census.GOV>
echo i586-unisys-sysv4
exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes(a)openmarket.com>.
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
exit ;;
*:*:*:FTX*)
# From seanf(a)swdc.stratus.com.
echo i860-stratus-sysv4
exit ;;
i*86:VOS:*:*)
# From Paul.Green(a)stratus.com.
echo ${UNAME_MACHINE}-stratus-vos
exit ;;
*:VOS:*:*)
# From Paul.Green(a)stratus.com.
echo hppa1.1-stratus-vos
exit ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
fi
exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
echo powerpc-apple-beos
exit ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
SX-5:SUPER-UX:*:*)
echo sx5-nec-superux${UNAME_RELEASE}
exit ;;
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE}
exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit ;;
*:Rhapsody:*:*)
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
case $UNAME_PROCESSOR in
*86) UNAME_PROCESSOR=i686 ;;
unknown) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = "x86"; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
NSE-?:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
NSR-?:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
exit ;;
BS2000:POSIX*:*:*)
echo bs2000-siemens-sysv
exit ;;
DS/*:UNIX_System_V:*:*)
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
if test "$cputype" = "386"; then
UNAME_MACHINE=i386
else
UNAME_MACHINE="$cputype"
fi
echo ${UNAME_MACHINE}-unknown-plan9
exit ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
exit ;;
*:TENEX:*:*)
echo pdp10-unknown-tenex
exit ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
echo pdp10-dec-tops20
exit ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
echo pdp10-xkl-tops20
exit ;;
*:TOPS-20:*:*)
echo pdp10-unknown-tops20
exit ;;
*:ITS:*:*)
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
echo mips-sei-seiux${UNAME_RELEASE}
exit ;;
*:DragonFly:*:*)
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
V*) echo vax-dec-vms ; exit ;;
esac ;;
*:XENIX:*:SysV)
echo i386-pc-xenix
exit ;;
i*86:skyos:*:*)
echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
exit ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
eval $set_cc_for_build
cat >$dummy.c <<EOF
#ifdef _SEQUENT_
# include <sys/types.h>
# include <sys/utsname.h>
#endif
main ()
{
#if defined (sony)
#if defined (MIPSEB)
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
I don't know.... */
printf ("mips-sony-bsd\n"); exit (0);
#else
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
"4"
#else
""
#endif
); exit (0);
#endif
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
printf ("arm-acorn-riscix\n"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
printf ("m68k-hp-bsd\n"); exit (0);
#endif
#if defined (NeXT)
#if !defined (__ARCHITECTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
if (version < 4)
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
else
printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
printf ("ns32k-encore-sysv\n"); exit (0);
#else
#if defined (CMU)
printf ("ns32k-encore-mach\n"); exit (0);
#else
printf ("ns32k-encore-bsd\n"); exit (0);
#endif
#endif
#endif
#if defined (__386BSD__)
printf ("i386-pc-bsd\n"); exit (0);
#endif
#if defined (sequent)
#if defined (i386)
printf ("i386-sequent-dynix\n"); exit (0);
#endif
#if defined (ns32000)
printf ("ns32k-sequent-dynix\n"); exit (0);
#endif
#endif
#if defined (_SEQUENT_)
struct utsname un;
uname(&un);
if (strncmp(un.version, "V2", 2) == 0) {
printf ("i386-sequent-ptx2\n"); exit (0);
}
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
printf ("i386-sequent-ptx1\n"); exit (0);
}
printf ("i386-sequent-ptx\n"); exit (0);
#endif
#if defined (vax)
# if !defined (ultrix)
# include <sys/param.h>
# if defined (BSD)
# if BSD == 43
printf ("vax-dec-bsd4.3\n"); exit (0);
# else
# if BSD == 199006
printf ("vax-dec-bsd4.3reno\n"); exit (0);
# else
printf ("vax-dec-bsd\n"); exit (0);
# endif
# endif
# else
printf ("vax-dec-bsd\n"); exit (0);
# endif
# else
printf ("vax-dec-ultrix\n"); exit (0);
# endif
#endif
#if defined (alliant) && defined (i860)
printf ("i860-alliant-bsd\n"); exit (0);
#endif
exit (1);
}
EOF
$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
{ echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
# Convex versions that predate uname can use getsysinfo(1)
if [ -x /usr/convex/getsysinfo ]
then
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
exit ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
c34*)
echo c34-convex-bsd
exit ;;
c38*)
echo c38-convex-bsd
exit ;;
c4*)
echo c4-convex-bsd
exit ;;
esac
fi
cat >&2 <<EOF
$0: unable to guess system type
This script, last modified $timestamp, has failed to recognize
the operating system you are using. It is advised that you
download the most up to date version of the config scripts from
http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.g...
and
http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
If the version you run ($0) is already up to date, please
send the following data and any information you think might be
pertinent to <config-patches(a)gnu.org> in order to provide the needed
information to handle your system.
config.guess timestamp = $timestamp
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
hostinfo = `(hostinfo) 2>/dev/null`
/bin/universe = `(/bin/universe) 2>/dev/null`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
/bin/arch = `(/bin/arch) 2>/dev/null`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
UNAME_MACHINE = ${UNAME_MACHINE}
UNAME_RELEASE = ${UNAME_RELEASE}
UNAME_SYSTEM = ${UNAME_SYSTEM}
UNAME_VERSION = ${UNAME_VERSION}
EOF
exit 1
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
--- NEW FILE config.h.in ---
/* config.h.in. Generated from configure.ac by autoheader. */
/* Define to 1 if the `closedir' function returns void instead of `int'. */
#undef CLOSEDIR_VOID
/* Define to 1 if you have the <arpa/inet.h> header file. */
#undef HAVE_ARPA_INET_H
/* Define to 1 if your system has a working `chown' function. */
#undef HAVE_CHOWN
/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
don't. */
#undef HAVE_DECL_STRERROR_R
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
*/
#undef HAVE_DIRENT_H
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
#undef HAVE_DOPRNT
/* Define to 1 if you have the `endpwent' function. */
#undef HAVE_ENDPWENT
/* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
/* Define to 1 if you have the `fork' function. */
#undef HAVE_FORK
/* Define to 1 if you have the `ftruncate' function. */
#undef HAVE_FTRUNCATE
/* Define to 1 if you have the `getcwd' function. */
#undef HAVE_GETCWD
/* Define to 1 if you have the `gethostbyname' function. */
#undef HAVE_GETHOSTBYNAME
/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE
/* Define to 1 if you have the `inet_ntoa' function. */
#undef HAVE_INET_NTOA
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the `localtime_r' function. */
#undef HAVE_LOCALTIME_R
/* Define to 1 if `lstat' has the bug that it succeeds when given the
zero-length file name argument. */
#undef HAVE_LSTAT_EMPTY_STRING_BUG
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
to 0 otherwise. */
#undef HAVE_MALLOC
/* Define to 1 if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H
/* Define to 1 if you have the `memmove' function. */
#undef HAVE_MEMMOVE
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the `memset' function. */
#undef HAVE_MEMSET
/* Define to 1 if you have the `mkdir' function. */
#undef HAVE_MKDIR
/* Define to 1 if you have a working `mmap' system call. */
#undef HAVE_MMAP
/* Define to 1 if you have the `munmap' function. */
#undef HAVE_MUNMAP
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
#undef HAVE_NDIR_H
/* Define to 1 if you have the <netdb.h> header file. */
#undef HAVE_NETDB_H
/* Define to 1 if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H
/* Define to 1 if you have the `putenv' function. */
#undef HAVE_PUTENV
/* Define to 1 if your system has a GNU libc compatible `realloc' function,
and to 0 otherwise. */
#undef HAVE_REALLOC
/* Define to 1 if you have the `rmdir' function. */
#undef HAVE_RMDIR
/* Define to 1 if you have the `setrlimit' function. */
#undef HAVE_SETRLIMIT
/* Define to 1 if you have the `socket' function. */
#undef HAVE_SOCKET
/* Define to 1 if `stat' has the bug that it succeeds when given the
zero-length file name argument. */
#undef HAVE_STAT_EMPTY_STRING_BUG
/* Define to 1 if stdbool.h conforms to C99. */
#undef HAVE_STDBOOL_H
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the `strcasecmp' function. */
#undef HAVE_STRCASECMP
/* Define to 1 if you have the `strchr' function. */
#undef HAVE_STRCHR
/* Define to 1 if you have the `strcspn' function. */
#undef HAVE_STRCSPN
/* Define to 1 if you have the `strdup' function. */
#undef HAVE_STRDUP
/* Define to 1 if you have the `strerror' function. */
#undef HAVE_STRERROR
/* Define to 1 if you have the `strerror_r' function. */
#undef HAVE_STRERROR_R
/* Define to 1 if you have the `strftime' function. */
#undef HAVE_STRFTIME
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the `strncasecmp' function. */
#undef HAVE_STRNCASECMP
/* Define to 1 if you have the `strpbrk' function. */
#undef HAVE_STRPBRK
/* Define to 1 if you have the `strrchr' function. */
#undef HAVE_STRRCHR
/* Define to 1 if you have the `strstr' function. */
#undef HAVE_STRSTR
/* Define to 1 if you have the `strtol' function. */
#undef HAVE_STRTOL
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
#undef HAVE_SYS_DIR_H
/* Define to 1 if you have the <sys/file.h> header file. */
#undef HAVE_SYS_FILE_H
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
*/
#undef HAVE_SYS_NDIR_H
/* Define to 1 if you have the <sys/socket.h> header file. */
#undef HAVE_SYS_SOCKET_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H
/* Define to 1 if you have the `tzset' function. */
#undef HAVE_TZSET
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to 1 if you have the `vfork' function. */
#undef HAVE_VFORK
/* Define to 1 if you have the <vfork.h> header file. */
#undef HAVE_VFORK_H
/* Define to 1 if you have the `vprintf' function. */
#undef HAVE_VPRINTF
/* Define to 1 if `fork' works. */
#undef HAVE_WORKING_FORK
/* Define to 1 if `vfork' works. */
#undef HAVE_WORKING_VFORK
/* Define to 1 if the system has the type `_Bool'. */
#undef HAVE__BOOL
/* Use FHS layout */
#undef IS_FHS
/* Define to 1 if `lstat' dereferences a symlink specified with a trailing
slash. */
#undef LSTAT_FOLLOWS_SLASHED_SYMLINK
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
#undef NO_MINUS_C_MINUS_O
/* Name of package */
#undef PACKAGE
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define as the return type of signal handlers (`int' or `void'). */
#undef RETSIGTYPE
/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
#undef STAT_MACROS_BROKEN
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* Define to 1 if strerror_r returns char *. */
#undef STRERROR_R_CHAR_P
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#undef TIME_WITH_SYS_TIME
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
#undef TM_IN_SYS_TIME
/* Version number of package */
#undef VERSION
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
/* Define to `int' if <sys/types.h> doesn't define. */
#undef gid_t
/* Define to rpl_malloc if the replacement function should be used. */
#undef malloc
/* Define to `int' if <sys/types.h> does not define. */
#undef pid_t
/* Define to rpl_realloc if the replacement function should be used. */
#undef realloc
/* Define to `unsigned' if <sys/types.h> does not define. */
#undef size_t
/* Define to `int' if <sys/types.h> doesn't define. */
#undef uid_t
/* Define as `fork' if `vfork' does not work. */
#undef vfork
--- NEW FILE config.sub ---
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
timestamp='2005-07-08'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
# can handle that machine. It does not imply ALL GNU software can.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
# 02110-1301, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Please send patches to <config-patches(a)gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
# If it is invalid, we print an error message on stderr and exit with code 1.
# Otherwise, we print the canonical config type on stdout and succeed.
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
# that are meaningful with *any* GNU software.
# Each package is responsible for reporting which valid configurations
# it does not support. The user should be able to distinguish
# a failure to support a valid configuration from a meaningless
# configuration.
# The goal of this file is to map all the various variations of a given
# machine specification into a single specification in the form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or in some cases, the newer four-part form:
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION] CPU-MFR-OPSYS
$0 [OPTION] ALIAS
Canonicalize a configuration name.
Operation modes:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to <config-patches(a)gnu.org>."
version="\
GNU config.sub ($timestamp)
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit ;;
--version | -v )
echo "$version" ; exit ;;
--help | --h* | -h )
echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
echo "$me: invalid option $1$help"
exit 1 ;;
*local*)
# First pass through any local machine types.
echo $1
exit ;;
* )
break ;;
esac
done
case $# in
0) echo "$me: missing argument$help" >&2
exit 1;;
1) ;;
*) echo "$me: too many arguments$help" >&2
exit 1;;
esac
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
*)
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
then os=`echo $1 | sed 's/.*-/-/'`
else os=; fi
;;
esac
### Let's recognize common machines as not being operating systems so
### that things like config.sub decstation-3100 work. We also
### recognize some manufacturers as not being operating systems, so we
### can provide default operating systems below.
case $os in
-sun*os*)
# Prevent following clause from handling this invalid input.
;;
-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-apple | -axis | -knuth | -cray)
os=
basic_machine=$1
;;
-sim | -cisco | -oki | -wec | -winbond)
os=
basic_machine=$1
;;
-scout)
;;
-wrs)
os=-vxworks
basic_machine=$1
;;
-chorusos*)
os=-chorusos
basic_machine=$1
;;
-chorusrdb)
os=-chorusrdb
basic_machine=$1
;;
-hiux*)
os=-hiuxwe2
;;
-sco5)
os=-sco3.2v5
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco4)
os=-sco3.2v4
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2.[4-9]*)
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2v[4-9]*)
# Don't forget version if it is 3.2v4 or newer.
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco*)
os=-sco3.2v2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-udk*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-isc)
os=-isc2.2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-clix*)
basic_machine=clipper-intergraph
;;
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-lynx*)
os=-lynxos
;;
-ptx*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
;;
-windowsnt*)
os=`echo $os | sed -e 's/windowsnt/winnt/'`
;;
-psos*)
os=-psos
;;
-mint | -mint[0-9]*)
basic_machine=m68k-atari
os=-mint
;;
esac
# Decode aliases for certain CPU-COMPANY combinations.
case $basic_machine in
# Recognize the basic CPU types without company name.
# Some are omitted here because they have special meanings below.
1750a | 580 \
| a29k \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
| bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
| fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
| mips64vr | mips64vrel \
| mips64orion | mips64orionel \
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| ms1 \
| msp430 \
| ns16k | ns32k \
| or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b \
| strongarm \
| tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \
| we32k \
| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
| z8k)
basic_machine=$basic_machine-unknown
;;
m32c)
basic_machine=$basic_machine-unknown
;;
m6811 | m68hc11 | m6812 | m68hc12)
# Motorola 68HC11/12.
basic_machine=$basic_machine-unknown
os=-none
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i*86 | x86_64)
basic_machine=$basic_machine-pc
;;
# Object if more than one company name word.
*-*-*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
;;
# Recognize the basic CPU types with company name.
580-* \
| a29k-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
| clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
| m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | maxq-* | mcore-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
| mips64vr-* | mips64vrel-* \
| mips64orion-* | mips64orionel-* \
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
| mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
| ms1-* \
| msp430-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
| sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
| xstormy16-* | xtensa-* \
| ymp-* \
| z8k-*)
;;
m32c-*)
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
386bsd)
basic_machine=i386-unknown
os=-bsd
;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
basic_machine=m68000-att
;;
3b*)
basic_machine=we32k-att
;;
a29khif)
basic_machine=a29k-amd
os=-udi
;;
abacus)
basic_machine=abacus-unknown
;;
adobe68k)
basic_machine=m68010-adobe
os=-scout
;;
alliant | fx80)
basic_machine=fx80-alliant
;;
altos | altos3068)
basic_machine=m68k-altos
;;
am29k)
basic_machine=a29k-none
os=-bsd
;;
amd64)
basic_machine=x86_64-pc
;;
amd64-*)
basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
amdahl)
basic_machine=580-amdahl
os=-sysv
;;
amiga | amiga-*)
basic_machine=m68k-unknown
;;
amigaos | amigados)
basic_machine=m68k-unknown
os=-amigaos
;;
amigaunix | amix)
basic_machine=m68k-unknown
os=-sysv4
;;
apollo68)
basic_machine=m68k-apollo
os=-sysv
;;
apollo68bsd)
basic_machine=m68k-apollo
os=-bsd
;;
aux)
basic_machine=m68k-apple
os=-aux
;;
balance)
basic_machine=ns32k-sequent
os=-dynix
;;
c90)
basic_machine=c90-cray
os=-unicos
;;
convex-c1)
basic_machine=c1-convex
os=-bsd
;;
convex-c2)
basic_machine=c2-convex
os=-bsd
;;
convex-c32)
basic_machine=c32-convex
os=-bsd
;;
convex-c34)
basic_machine=c34-convex
os=-bsd
;;
convex-c38)
basic_machine=c38-convex
os=-bsd
;;
cray | j90)
basic_machine=j90-cray
os=-unicos
;;
craynv)
basic_machine=craynv-cray
os=-unicosmp
;;
cr16c)
basic_machine=cr16c-unknown
os=-elf
;;
crds | unos)
basic_machine=m68k-crds
;;
crisv32 | crisv32-* | etraxfs*)
basic_machine=crisv32-axis
;;
cris | cris-* | etrax*)
basic_machine=cris-axis
;;
crx)
basic_machine=crx-unknown
os=-elf
;;
da30 | da30-*)
basic_machine=m68k-da30
;;
decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
basic_machine=mips-dec
;;
decsystem10* | dec10*)
basic_machine=pdp10-dec
os=-tops10
;;
decsystem20* | dec20*)
basic_machine=pdp10-dec
os=-tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
basic_machine=m68k-motorola
;;
delta88)
basic_machine=m88k-motorola
os=-sysv3
;;
djgpp)
basic_machine=i586-pc
os=-msdosdjgpp
;;
dpx20 | dpx20-*)
basic_machine=rs6000-bull
os=-bosx
;;
dpx2* | dpx2*-bull)
basic_machine=m68k-bull
os=-sysv3
;;
ebmon29k)
basic_machine=a29k-amd
os=-ebmon
;;
elxsi)
basic_machine=elxsi-elxsi
os=-bsd
;;
encore | umax | mmax)
basic_machine=ns32k-encore
;;
es1800 | OSE68k | ose68k | ose | OSE)
basic_machine=m68k-ericsson
os=-ose
;;
fx2800)
basic_machine=i860-alliant
;;
genix)
basic_machine=ns32k-ns
;;
gmicro)
basic_machine=tron-gmicro
os=-sysv
;;
go32)
basic_machine=i386-pc
os=-go32
;;
h3050r* | hiux*)
basic_machine=hppa1.1-hitachi
os=-hiuxwe2
;;
h8300hms)
basic_machine=h8300-hitachi
os=-hms
;;
h8300xray)
basic_machine=h8300-hitachi
os=-xray
;;
h8500hms)
basic_machine=h8500-hitachi
os=-hms
;;
harris)
basic_machine=m88k-harris
os=-sysv3
;;
hp300-*)
basic_machine=m68k-hp
;;
hp300bsd)
basic_machine=m68k-hp
os=-bsd
;;
hp300hpux)
basic_machine=m68k-hp
os=-hpux
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
basic_machine=m68000-hp
;;
hp9k3[2-9][0-9])
basic_machine=m68k-hp
;;
hp9k6[0-9][0-9] | hp6[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hp9k7[0-79][0-9] | hp7[0-79][0-9])
basic_machine=hppa1.1-hp
;;
hp9k78[0-9] | hp78[0-9])
# FIXME: really hppa2.0-hp
basic_machine=hppa1.1-hp
;;
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
# FIXME: really hppa2.0-hp
basic_machine=hppa1.1-hp
;;
hp9k8[0-9][13679] | hp8[0-9][13679])
basic_machine=hppa1.1-hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hppa-next)
os=-nextstep3
;;
hppaosf)
basic_machine=hppa1.1-hp
os=-osf
;;
hppro)
basic_machine=hppa1.1-hp
os=-proelf
;;
i370-ibm* | ibm*)
basic_machine=i370-ibm
;;
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i*86v32)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv32
;;
i*86v4*)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv4
;;
i*86v)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv
;;
i*86sol2)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-solaris2
;;
i386mach)
basic_machine=i386-mach
os=-mach
;;
i386-vsta | vsta)
basic_machine=i386-unknown
os=-vsta
;;
iris | iris4d)
basic_machine=mips-sgi
case $os in
-irix*)
;;
*)
os=-irix4
;;
esac
;;
isi68 | isi)
basic_machine=m68k-isi
os=-sysv
;;
m88k-omron*)
basic_machine=m88k-omron
;;
magnum | m3230)
basic_machine=mips-mips
os=-sysv
;;
merlin)
basic_machine=ns32k-utek
os=-sysv
;;
mingw32)
basic_machine=i386-pc
os=-mingw32
;;
miniframe)
basic_machine=m68000-convergent
;;
*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
basic_machine=m68k-atari
os=-mint
;;
mips3*-*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
;;
mips3*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
;;
monitor)
basic_machine=m68k-rom68k
os=-coff
;;
morphos)
basic_machine=powerpc-unknown
os=-morphos
;;
msdos)
basic_machine=i386-pc
os=-msdos
;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
;;
netbsd386)
basic_machine=i386-unknown
os=-netbsd
;;
netwinder)
basic_machine=armv4l-rebel
os=-linux
;;
news | news700 | news800 | news900)
basic_machine=m68k-sony
os=-newsos
;;
news1000)
basic_machine=m68030-sony
os=-newsos
;;
news-3600 | risc-news)
basic_machine=mips-sony
os=-newsos
;;
necv70)
basic_machine=v70-nec
os=-sysv
;;
next | m*-next )
basic_machine=m68k-next
case $os in
-nextstep* )
;;
-ns2*)
os=-nextstep2
;;
*)
os=-nextstep3
;;
esac
;;
nh3000)
basic_machine=m68k-harris
os=-cxux
;;
nh[45]000)
basic_machine=m88k-harris
os=-cxux
;;
nindy960)
basic_machine=i960-intel
os=-nindy
;;
mon960)
basic_machine=i960-intel
os=-mon960
;;
nonstopux)
basic_machine=mips-compaq
os=-nonstopux
;;
np1)
basic_machine=np1-gould
;;
nsr-tandem)
basic_machine=nsr-tandem
;;
op50n-* | op60c-*)
basic_machine=hppa1.1-oki
os=-proelf
;;
openrisc | openrisc-*)
basic_machine=or32-unknown
;;
os400)
basic_machine=powerpc-ibm
os=-os400
;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
os=-ose
;;
os68k)
basic_machine=m68k-none
os=-os68k
;;
pa-hitachi)
basic_machine=hppa1.1-hitachi
os=-hiuxwe2
;;
paragon)
basic_machine=i860-intel
os=-osf
;;
pbd)
basic_machine=sparc-tti
;;
pbb)
basic_machine=m68k-tti
;;
pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
pentium | p5 | k5 | k6 | nexgen | viac3)
basic_machine=i586-pc
;;
pentiumpro | p6 | 6x86 | athlon | athlon_*)
basic_machine=i686-pc
;;
pentiumii | pentium2 | pentiumiii | pentium3)
basic_machine=i686-pc
;;
pentium4)
basic_machine=i786-pc
;;
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumpro-* | p6-* | 6x86-* | athlon-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentium4-*)
basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pn)
basic_machine=pn-gould
;;
power) basic_machine=power-ibm
;;
ppc) basic_machine=powerpc-unknown
;;
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
;;
ppcle-* | powerpclittle-*)
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64) basic_machine=powerpc64-unknown
;;
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64le | powerpc64little | ppc64-le | powerpc64-little)
basic_machine=powerpc64le-unknown
;;
ppc64le-* | powerpc64little-*)
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ps2)
basic_machine=i386-ibm
;;
pw32)
basic_machine=i586-unknown
os=-pw32
;;
rom68k)
basic_machine=m68k-rom68k
os=-coff
;;
rm[46]00)
basic_machine=mips-siemens
;;
rtpc | rtpc-*)
basic_machine=romp-ibm
;;
s390 | s390-*)
basic_machine=s390-ibm
;;
s390x | s390x-*)
basic_machine=s390x-ibm
;;
sa29200)
basic_machine=a29k-amd
os=-udi
;;
sb1)
basic_machine=mipsisa64sb1-unknown
;;
sb1el)
basic_machine=mipsisa64sb1el-unknown
;;
sei)
basic_machine=mips-sei
os=-seiux
;;
sequent)
basic_machine=i386-sequent
;;
sh)
basic_machine=sh-hitachi
os=-hms
;;
sh64)
basic_machine=sh64-unknown
;;
sparclite-wrs | simso-wrs)
basic_machine=sparclite-wrs
os=-vxworks
;;
sps7)
basic_machine=m68k-bull
os=-sysv2
;;
spur)
basic_machine=spur-unknown
;;
st2000)
basic_machine=m68k-tandem
;;
stratus)
basic_machine=i860-stratus
os=-sysv4
;;
sun2)
basic_machine=m68000-sun
;;
sun2os3)
basic_machine=m68000-sun
os=-sunos3
;;
sun2os4)
basic_machine=m68000-sun
os=-sunos4
;;
sun3os3)
basic_machine=m68k-sun
os=-sunos3
;;
sun3os4)
basic_machine=m68k-sun
os=-sunos4
;;
sun4os3)
basic_machine=sparc-sun
os=-sunos3
;;
sun4os4)
basic_machine=sparc-sun
os=-sunos4
;;
sun4sol2)
basic_machine=sparc-sun
os=-solaris2
;;
sun3 | sun3-*)
basic_machine=m68k-sun
;;
sun4)
basic_machine=sparc-sun
;;
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
;;
sv1)
basic_machine=sv1-cray
os=-unicos
;;
symmetry)
basic_machine=i386-sequent
os=-dynix
;;
t3e)
basic_machine=alphaev5-cray
os=-unicos
;;
t90)
basic_machine=t90-cray
os=-unicos
;;
tic54x | c54x*)
basic_machine=tic54x-unknown
os=-coff
;;
tic55x | c55x*)
basic_machine=tic55x-unknown
os=-coff
;;
tic6x | c6x*)
basic_machine=tic6x-unknown
os=-coff
;;
tx39)
basic_machine=mipstx39-unknown
;;
tx39el)
basic_machine=mipstx39el-unknown
;;
toad1)
basic_machine=pdp10-xkl
os=-tops20
;;
tower | tower-32)
basic_machine=m68k-ncr
;;
tpf)
basic_machine=s390x-ibm
os=-tpf
;;
udi29k)
basic_machine=a29k-amd
os=-udi
;;
ultra3)
basic_machine=a29k-nyu
os=-sym1
;;
v810 | necv810)
basic_machine=v810-nec
os=-none
;;
vaxv)
basic_machine=vax-dec
os=-sysv
;;
vms)
basic_machine=vax-dec
os=-vms
;;
vpp*|vx|vx-*)
basic_machine=f301-fujitsu
;;
vxworks960)
basic_machine=i960-wrs
os=-vxworks
;;
vxworks68)
basic_machine=m68k-wrs
os=-vxworks
;;
vxworks29k)
basic_machine=a29k-wrs
os=-vxworks
;;
w65*)
basic_machine=w65-wdc
os=-none
;;
w89k-*)
basic_machine=hppa1.1-winbond
os=-proelf
;;
xbox)
basic_machine=i686-pc
os=-mingw32
;;
xps | xps100)
basic_machine=xps100-honeywell
;;
ymp)
basic_machine=ymp-cray
os=-unicos
;;
z8k-*-coff)
basic_machine=z8k-unknown
os=-sim
;;
none)
basic_machine=none-none
os=-none
;;
# Here we handle the default manufacturer of certain CPU types. It is in
# some cases the only manufacturer, in others, it is the most popular.
w89k)
basic_machine=hppa1.1-winbond
;;
op50n)
basic_machine=hppa1.1-oki
;;
op60c)
basic_machine=hppa1.1-oki
;;
romp)
basic_machine=romp-ibm
;;
mmix)
basic_machine=mmix-knuth
;;
rs6000)
basic_machine=rs6000-ibm
;;
vax)
basic_machine=vax-dec
;;
pdp10)
# there are many clones, so DEC is not a safe bet
basic_machine=pdp10-unknown
;;
pdp11)
basic_machine=pdp11-dec
;;
we32k)
basic_machine=we32k-att
;;
sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
sparc | sparcv8 | sparcv9 | sparcv9b)
basic_machine=sparc-sun
;;
cydra)
basic_machine=cydra-cydrome
;;
orion)
basic_machine=orion-highlevel
;;
orion105)
basic_machine=clipper-highlevel
;;
mac | mpw | mac-mpw)
basic_machine=m68k-apple
;;
pmac | pmac-mpw)
basic_machine=powerpc-apple
;;
*-unknown)
# Make sure to match an already-canonicalized machine name.
;;
*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
;;
esac
# Here we canonicalize certain aliases for manufacturers.
case $basic_machine in
*-digital*)
basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
;;
*-commodore*)
basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
;;
*)
;;
esac
# Decode manufacturer-specific aliases for certain operating systems.
if [ x"$os" != x"" ]
then
case $os in
# First match some system type aliases
# that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
-solaris)
os=-solaris2
;;
-svr4*)
os=-sysv4
;;
-unixware*)
os=-sysv4.2uw
;;
-gnu/linux*)
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
;;
# First accept the basic system types.
# The portable systems comes first.
# Each alternative MUST END IN A *, to match a version number.
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
case $basic_machine in
x86-* | i*86-*)
;;
*)
os=-nto$os
;;
esac
;;
-nto-qnx*)
;;
-nto*)
os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
| -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
;;
-mac*)
os=`echo $os | sed -e 's|mac|macos|'`
;;
-linux-dietlibc)
os=-linux-dietlibc
;;
-linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
-sunos5*)
os=`echo $os | sed -e 's|sunos5|solaris2|'`
;;
-sunos6*)
os=`echo $os | sed -e 's|sunos6|solaris3|'`
;;
-opened*)
os=-openedition
;;
-os400*)
os=-os400
;;
-wince*)
os=-wince
;;
-osfrose*)
os=-osfrose
;;
-osf*)
os=-osf
;;
-utek*)
os=-bsd
;;
-dynix*)
os=-bsd
;;
-acis*)
os=-aos
;;
-atheos*)
os=-atheos
;;
-syllable*)
os=-syllable
;;
-386bsd)
os=-bsd
;;
-ctix* | -uts*)
os=-sysv
;;
-nova*)
os=-rtmk-nova
;;
-ns2 )
os=-nextstep2
;;
-nsk*)
os=-nsk
;;
# Preserve the version number of sinix5.
-sinix5.*)
os=`echo $os | sed -e 's|sinix|sysv|'`
;;
-sinix*)
os=-sysv4
;;
-tpf*)
os=-tpf
;;
-triton*)
os=-sysv3
;;
-oss*)
os=-sysv3
;;
-svr4)
os=-sysv4
;;
-svr3)
os=-sysv3
;;
-sysvr4)
os=-sysv4
;;
# This must come after -sysvr4.
-sysv*)
;;
-ose*)
os=-ose
;;
-es1800*)
os=-ose
;;
-xenix)
os=-xenix
;;
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
os=-mint
;;
-aros*)
os=-aros
;;
-kaos*)
os=-kaos
;;
-zvmoe)
os=-zvmoe
;;
-none)
;;
*)
# Get rid of the `-' at the beginning of $os.
os=`echo $os | sed 's/[^-]*-//'`
echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
exit 1
;;
esac
else
# Here we handle the default operating systems that come with various machines.
# The value should be what the vendor currently ships out the door with their
# machine or put another way, the most popular os provided with the machine.
# Note that if you're going to try to match "-MANUFACTURER" here (say,
# "-sun"), then you have to tell the case statement up towards the top
# that MANUFACTURER isn't an operating system. Otherwise, code above
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
case $basic_machine in
*-acorn)
os=-riscix1.2
;;
arm*-rebel)
os=-linux
;;
arm*-semi)
os=-aout
;;
c4x-* | tic4x-*)
os=-coff
;;
# This must come before the *-dec entry.
pdp10-*)
os=-tops20
;;
pdp11-*)
os=-none
;;
*-dec | vax-*)
os=-ultrix4.2
;;
m68*-apollo)
os=-domain
;;
i386-sun)
os=-sunos4.0.2
;;
m68000-sun)
os=-sunos3
# This also exists in the configure program, but was not the
# default.
# os=-sunos4
;;
m68*-cisco)
os=-aout
;;
mips*-cisco)
os=-elf
;;
mips*-*)
os=-elf
;;
or32-*)
os=-coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
os=-sysv3
;;
sparc-* | *-sun)
os=-sunos4.1.1
;;
*-be)
os=-beos
;;
*-haiku)
os=-haiku
;;
*-ibm)
os=-aix
;;
*-knuth)
os=-mmixware
;;
*-wec)
os=-proelf
;;
*-winbond)
os=-proelf
;;
*-oki)
os=-proelf
;;
*-hp)
os=-hpux
;;
*-hitachi)
os=-hiux
;;
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
os=-sysv
;;
*-cbm)
os=-amigaos
;;
*-dg)
os=-dgux
;;
*-dolphin)
os=-sysv3
;;
m68k-ccur)
os=-rtu
;;
m88k-omron*)
os=-luna
;;
*-next )
os=-nextstep
;;
*-sequent)
os=-ptx
;;
*-crds)
os=-unos
;;
*-ns)
os=-genix
;;
i370-*)
os=-mvs
;;
*-next)
os=-nextstep3
;;
*-gould)
os=-sysv
;;
*-highlevel)
os=-bsd
;;
*-encore)
os=-bsd
;;
*-sgi)
os=-irix
;;
*-siemens)
os=-sysv4
;;
*-masscomp)
os=-rtu
;;
f30[01]-fujitsu | f700-fujitsu)
os=-uxpv
;;
*-rom68k)
os=-coff
;;
*-*bug)
os=-coff
;;
*-apple)
os=-macos
;;
*-atari*)
os=-mint
;;
*)
os=-none
;;
esac
fi
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
vendor=unknown
case $basic_machine in
*-unknown)
case $os in
-riscix*)
vendor=acorn
;;
-sunos*)
vendor=sun
;;
-aix*)
vendor=ibm
;;
-beos*)
vendor=be
;;
-hpux*)
vendor=hp
;;
-mpeix*)
vendor=hp
;;
-hiux*)
vendor=hitachi
;;
-unos*)
vendor=crds
;;
-dgux*)
vendor=dg
;;
-luna*)
vendor=omron
;;
-genix*)
vendor=ns
;;
-mvs* | -opened*)
vendor=ibm
;;
-os400*)
vendor=ibm
;;
-ptx*)
vendor=sequent
;;
-tpf*)
vendor=ibm
;;
-vxsim* | -vxworks* | -windiss*)
vendor=wrs
;;
-aux*)
vendor=apple
;;
-hms*)
vendor=hitachi
;;
-mpw* | -macos*)
vendor=apple
;;
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
vendor=atari
;;
-vos*)
vendor=stratus
;;
esac
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;
esac
echo $basic_machine$os
exit
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
--- NEW FILE configure ---
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.59 for fedora-ds-admin 1.1.0.
#
# Report bugs to <http://bugzilla.redhat.com/>.
#
# Copyright (C) 2003 Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## --------------------- ##
## M4sh Initialization. ##
## --------------------- ##
# Be Bourne compatible
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
emulate sh
NULLCMD=:
# Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
set -o posix
fi
DUALCASE=1; export DUALCASE # for MKS sh
# Support unset when possible.
if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
as_unset=unset
else
as_unset=false
fi
# Work around bugs in pre-3.0 UWIN ksh.
$as_unset ENV MAIL MAILPATH
PS1='$ '
PS2='> '
PS4='+ '
# NLS nuisances.
for as_var in \
LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
LC_TELEPHONE LC_TIME
do
if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
eval $as_var=C; export $as_var
else
$as_unset $as_var
fi
done
# Required to use basename.
if expr a : '\(a\)' >/dev/null 2>&1; then
as_expr=expr
else
as_expr=false
fi
if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
# Name of the executable.
as_me=`$as_basename "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)$' \| \
. : '\(.\)' 2>/dev/null ||
echo X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
/^X\/\(\/\/\)$/{ s//\1/; q; }
/^X\/\(\/\).*/{ s//\1/; q; }
s/.*/./; q'`
# PATH needs CR, and LINENO needs CR and PATH.
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
echo "#! /bin/sh" >conf$$.sh
echo "exit 0" >>conf$$.sh
chmod +x conf$$.sh
if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
PATH_SEPARATOR=';'
else
PATH_SEPARATOR=:
fi
rm -f conf$$.sh
fi
as_lineno_1=$LINENO
as_lineno_2=$LINENO
as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
test "x$as_lineno_1" != "x$as_lineno_2" &&
test "x$as_lineno_3" = "x$as_lineno_2" || {
# Find who we are. Look in the path if we contain no path at all
# relative or not.
case $0 in
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
done
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
{ echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
{ (exit 1); exit 1; }; }
fi
case $CONFIG_SHELL in
'')
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for as_base in sh bash ksh sh5; do
case $as_dir in
/*)
if ("$as_dir/$as_base" -c '
as_lineno_1=$LINENO
as_lineno_2=$LINENO
as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
test "x$as_lineno_1" != "x$as_lineno_2" &&
test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
$as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
$as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
CONFIG_SHELL=$as_dir/$as_base
export CONFIG_SHELL
exec "$CONFIG_SHELL" "$0" ${1+"$@"}
fi;;
esac
done
done
;;
esac
# Create $as_me.lineno as a copy of $as_myself, but with $LINENO
# uniformly replaced by the line number. The first 'sed' inserts a
# line-number line before each line; the second 'sed' does the real
# work. The second script uses 'N' to pair each line-number line
# with the numbered line, and appends trailing '-' during
# substitution so that $LINENO is not a special case at line end.
# (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
# second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
sed '=' <$as_myself |
sed '
N
s,$,-,
: loop
s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
t loop
s,-$,,
s,^['$as_cr_digits']*\n,,
' >$as_me.lineno &&
chmod +x $as_me.lineno ||
{ echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
{ (exit 1); exit 1; }; }
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensible to this).
. ./$as_me.lineno
# Exit status is that of the last command.
exit
}
case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
*c*,-n*) ECHO_N= ECHO_C='
' ECHO_T=' ' ;;
*c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
*) ECHO_N= ECHO_C='\c' ECHO_T= ;;
esac
if expr a : '\(a\)' >/dev/null 2>&1; then
as_expr=expr
else
as_expr=false
[...25595 lines suppressed...]
. : '\(.\)' 2>/dev/null ||
echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
/^X\(\/\/\)$/{ s//\1/; q; }
/^X\(\/\).*/{ s//\1/; q; }
s/.*/./; q'`
done
test ! -n "$as_dirs" || mkdir $as_dirs
fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
{ (exit 1); exit 1; }; }; }
ac_builddir=.
if test "$ac_dir" != .; then
ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
# A "../" for each directory in $ac_dir_suffix.
ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
else
ac_dir_suffix= ac_top_builddir=
fi
case $srcdir in
.) # No --srcdir option. We are building in place.
ac_srcdir=.
if test -z "$ac_top_builddir"; then
ac_top_srcdir=.
else
ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
fi ;;
[\\/]* | ?:[\\/]* ) # Absolute path.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir ;;
*) # Relative path.
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_builddir$srcdir ;;
esac
# Do not use `cd foo && pwd` to compute absolute paths, because
# the directories may not exist.
case `pwd` in
.) ac_abs_builddir="$ac_dir";;
*)
case "$ac_dir" in
.) ac_abs_builddir=`pwd`;;
[\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
*) ac_abs_builddir=`pwd`/"$ac_dir";;
esac;;
esac
case $ac_abs_builddir in
.) ac_abs_top_builddir=${ac_top_builddir}.;;
*)
case ${ac_top_builddir}. in
.) ac_abs_top_builddir=$ac_abs_builddir;;
[\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
*) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
esac;;
esac
case $ac_abs_builddir in
.) ac_abs_srcdir=$ac_srcdir;;
*)
case $ac_srcdir in
.) ac_abs_srcdir=$ac_abs_builddir;;
[\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
*) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
esac;;
esac
case $ac_abs_builddir in
.) ac_abs_top_srcdir=$ac_top_srcdir;;
*)
case $ac_top_srcdir in
.) ac_abs_top_srcdir=$ac_abs_builddir;;
[\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
*) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
esac;;
esac
{ echo "$as_me:$LINENO: executing $ac_dest commands" >&5
echo "$as_me: executing $ac_dest commands" >&6;}
case $ac_dest in
depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
# Strip MF so we end up with the name of the file.
mf=`echo "$mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile or not.
# We used to match only the files named `Makefile.in', but
# some people rename them; so instead we look at the file content.
# Grep'ing the first line is not enough: some people post-process
# each Makefile.in and add a new line on top of each file to say so.
# So let's grep whole file.
if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
dirpart=`(dirname "$mf") 2>/dev/null ||
$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$mf" : 'X\(//\)[^/]' \| \
X"$mf" : 'X\(//\)$' \| \
X"$mf" : 'X\(/\)' \| \
. : '\(.\)' 2>/dev/null ||
echo X"$mf" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
/^X\(\/\/\)$/{ s//\1/; q; }
/^X\(\/\).*/{ s//\1/; q; }
s/.*/./; q'`
else
continue
fi
# Extract the definition of DEPDIR, am__include, and am__quote
# from the Makefile without running `make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
test -z "am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n 's/^U = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# simplest approach to changing $(DEPDIR) to its actual value in the
# expansion.
for file in `sed -n "
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`(dirname "$file") 2>/dev/null ||
$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$file" : 'X\(//\)[^/]' \| \
X"$file" : 'X\(//\)$' \| \
X"$file" : 'X\(/\)' \| \
. : '\(.\)' 2>/dev/null ||
echo X"$file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
/^X\(\/\/\)$/{ s//\1/; q; }
/^X\(\/\).*/{ s//\1/; q; }
s/.*/./; q'`
{ if $as_mkdir_p; then
mkdir -p $dirpart/$fdir
else
as_dir=$dirpart/$fdir
as_dirs=
while test ! -d "$as_dir"; do
as_dirs="$as_dir $as_dirs"
as_dir=`(dirname "$as_dir") 2>/dev/null ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| \
. : '\(.\)' 2>/dev/null ||
echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
/^X\(\/\/\)$/{ s//\1/; q; }
/^X\(\/\).*/{ s//\1/; q; }
s/.*/./; q'`
done
test ! -n "$as_dirs" || mkdir $as_dirs
fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
{ (exit 1); exit 1; }; }; }
# echo "creating $dirpart/$file"
echo '# dummy' > "$dirpart/$file"
done
done
;;
esac
done
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF
{ (exit 0); exit 0; }
_ACEOF
chmod +x $CONFIG_STATUS
ac_clean_files=$ac_clean_files_save
# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
# Unfortunately, on DOS this fails, as config.log is still kept open
# by configure, so config.status won't be able to write to it; its
# output is simply discarded. So we exec the FD to /dev/null,
# effectively closing config.log, so it can be properly (re)opened and
# appended to by config.status. When coming back to configure, we
# need to make the FD available again.
if test "$no_create" != yes; then
ac_cs_success=:
ac_config_status_args=
test "$silent" = yes &&
ac_config_status_args="$ac_config_status_args --quiet"
exec 5>/dev/null
$SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
$ac_cs_success || { (exit 1); exit 1; }
fi
--- NEW FILE configure.ac ---
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT([fedora-ds-admin], [1.1.0], [http://bugzilla.redhat.com/])
AC_CONFIG_SRCDIR([admserv/cgi-src40/viewlog.c])
AM_INIT_AUTOMAKE([1.9 foreign subdir-objects])
AM_MAINTAINER_MODE
AC_CANONICAL_HOST
AC_CONFIG_HEADER([config.h])
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
AM_PROG_CC_C_O
# disable static libs by default - we only use a couple
AC_DISABLE_STATIC
AC_PROG_LIBTOOL
# Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS([arpa/inet.h fcntl.h malloc.h netdb.h netinet/in.h stdlib.h string.h strings.h sys/file.h sys/socket.h sys/time.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STAT
AC_C_CONST
AC_HEADER_STDBOOL
AC_TYPE_UID_T
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_STRUCT_TM
# Checks for library functions.
AC_FUNC_CHOWN
AC_FUNC_CLOSEDIR_VOID
AC_FUNC_ERROR_AT_LINE
AC_FUNC_FORK
AC_FUNC_LSTAT
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
AC_FUNC_MALLOC
AC_FUNC_MEMCMP
AC_FUNC_MMAP
AC_FUNC_REALLOC
AC_TYPE_SIGNAL
AC_FUNC_STAT
AC_FUNC_STRERROR_R
AC_FUNC_STRFTIME
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([setrlimit endpwent ftruncate getcwd gethostbyname inet_ntoa localtime_r memmove memset mkdir munmap putenv rmdir socket strcasecmp strchr strcspn strdup strerror strncasecmp strpbrk strrchr strstr strtol tzset])
# check for curses
AC_CHECK_LIB([ncurses], [printw], [curses_lib=-lncurses],
AC_CHECK_LIB([curses], [printw], [curses_lib=-lcurses]))
PACKAGE_BASE_NAME=`echo $PACKAGE_NAME | sed -e s/-admin//`
# the default prefix - override with --prefix or --with-fhs
AC_PREFIX_DEFAULT([/opt/$PACKAGE_BASE_NAME])
m4_include(m4/fhs.m4)
# installation paths - by default, configure will just
# use /usr as the prefix for everything, which means
# /usr/etc and /usr/var. FHS sez to use /etc and /var.
if test "$with_fhs" = "yes"; then
ac_default_prefix=/usr
prefix=$ac_default_prefix
exec_prefix=$prefix
dnl as opposed to the default /usr/etc
sysconfdir='/etc'
dnl as opposed to the default /usr/var
localstatedir='/var'
fi
# Check for web server
m4_include(m4/httpd.m4)
# Check for library dependencies
m4_include(m4/nspr.m4)
m4_include(m4/nss.m4)
m4_include(m4/mozldap.m4)
m4_include(m4/icu.m4)
m4_include(m4/adminutil.m4)
m4_include(m4/setuputil.m4)
# server userid, groupid
httpduser=nobody
httpdgroup=nobody
admservport=9830
# this is the subdir under $PACKAGE_BASE_NAME where admin server
# specific configs, logs, etc. are found
instancename=admin-serv
# check for --with-instconfigdir
AC_MSG_CHECKING(for --with-instconfigdir)
AC_ARG_WITH(instconfigdir,
AS_HELP_STRING([--with-instconfigdir=/path],
[Base directory for instance specific writable configuration directories (default $sysconfdir/$PACKAGE_NAME)]),
[
if test $withval = yes ; then
AC_ERROR([Please specify a full path with --with-instconfigdir])
fi
instconfigdir="$withval"
],
[
dnl this value is expanded out in Makefile.am
instconfigdir='$(sysconfdir)/$(PACKAGE_BASE_NAME)'
])
AC_SUBST(instconfigdir)
# relative to datadir
htmldir=/$PACKAGE_BASE_NAME/html
icondir=/$PACKAGE_BASE_NAME/icons
manualdir=/$PACKAGE_BASE_NAME/manual
ldifdir=/$PACKAGE_BASE_NAME/data
# CGI program directory, relative to libdir
cgibindir=/$PACKAGE_BASE_NAME/cgi-bin
# cmdbindir is just sbindir
#cmdbindir=$libdir/$PKGNAME
# log files, relative to localstatedir
logdir=/log/$PACKAGE_BASE_NAME
# the pid dir, relative to localstatedir
piddir=/run/$PACKAGE_BASE_NAME
pidfile=$instancename.pid
# location of property/resource files, relative to datadir
propertydir=/$PACKAGE_BASE_NAME/properties
# will usually be in sbindir
modnssbindir='$(sbindir)'
# write out paths for binary components
AC_SUBST(nspr_inc)
AC_SUBST(nspr_lib)
AC_SUBST(nspr_libdir)
AC_SUBST(nss_inc)
AC_SUBST(nss_lib)
AC_SUBST(nss_libdir)
AC_SUBST(ldapsdk_inc)
AC_SUBST(ldapsdk_lib)
AC_SUBST(ldapsdk_libdir)
AC_SUBST(adminutil_inc)
AC_SUBST(adminutil_lib)
AC_SUBST(adminutil_libdir)
AC_SUBST(adminutil_ver)
AC_SUBST(setuputil_lib)
AC_SUBST(setuputil_libdir)
AC_SUBST(setuputil_inc)
AC_SUBST(setuputil_bin)
AC_SUBST(icu_lib)
AC_SUBST(icu_libdir)
AC_SUBST(icu_inc)
AC_SUBST(icu_bin)
AC_SUBST(curses_lib)
# write out paths for data/config files
AC_SUBST(instconfigdir)
AC_SUBST(instancename)
AC_SUBST(cgibindir)
AC_SUBST(cmdbindir)
AC_SUBST(moddir)
AC_SUBST(modnssbindir)
AC_SUBST(propertydir)
AC_SUBST(htmldir)
AC_SUBST(icondir)
AC_SUBST(manualdir)
AC_SUBST(httpdconf)
AC_SUBST(httpduser)
AC_SUBST(httpdgroup)
AC_SUBST(logdir)
AC_SUBST(piddir)
AC_SUBST(pidfile)
AC_SUBST(admservport)
AC_SUBST(HTTPD)
AC_SUBST(ldifdir)
# WINNT should be true if building on Windows system not using
# cygnus, mingw, or the like and using cmd.exe as the shell
AM_CONDITIONAL([WINNT], false)
AM_CONDITIONAL([APACHE22], $APACHE22)
AC_CONFIG_FILES([Makefile])
#AC_CONFIG_SUBDIRS([mod_admserv mod_restartd])
AC_OUTPUT
--- NEW FILE depcomp ---
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2005-07-09.11
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva(a)dcc.unicamp.br>.
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by `PROGRAMS ARGS'.
object Object file output by `PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputing dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake(a)gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> $depfile
echo >> $depfile
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> $depfile
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts `$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
"$@" -M
fi
stat=$?
if test -f "$tmpdepfile"; then :
else
stripped=`echo "$stripped" | sed 's,^.*/,,'`
tmpdepfile="$stripped.u"
fi
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
if test -f "$tmpdepfile"; then
outname="$stripped.o"
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
icc)
# Intel's C compiler understands `-MD -MF file'. However on
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using \ :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
# With Tru64 cc, shared objects can also be used to make a
# static library. This mecanism is used in libtool 1.4 series to
# handle both shared and static libraries in a single compilation.
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
#
# With libtool 1.5 this exception was removed, and libtool now
# generates 2 separate objects for the 2 libraries. These two
# compilations output dependencies in in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic.
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
tmpdepfile2=$dir$base.o.d # libtool 1.5
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.o.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
tmpdepfile4=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for `:'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
"$@" $dashmflag |
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no
for arg in "$@"; do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix="`echo $object | sed 's/^.*\././'`"
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
sed '1,2d' "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test $1 != '--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E |
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
"$@" || exit $?
IFS=" "
for arg
do
case "$arg" in
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:
--- NEW FILE install-sh ---
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2005-05-14.22
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
chmodcmd="$chmodprog 0755"
chowncmd=
chgrpcmd=
stripcmd=
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=
dst=
dir_arg=
dstarg=
no_target_directory=
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
-c (ignored)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
--help display this help and exit.
--version display version info and exit.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
"
while test -n "$1"; do
case $1 in
-c) shift
continue;;
-d) dir_arg=true
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
--help) echo "$usage"; exit $?;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-s) stripcmd=$stripprog
shift
continue;;
-t) dstarg=$2
shift
shift
continue;;
-T) no_target_directory=true
shift
continue;;
--version) echo "$0 $scriptversion"; exit $?;;
*) # When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
test -n "$dir_arg$dstarg" && break
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dstarg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dstarg"
shift # fnord
fi
shift # arg
dstarg=$arg
done
break;;
esac
done
if test -z "$1"; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
for src
do
# Protect names starting with `-'.
case $src in
-*) src=./$src ;;
esac
if test -n "$dir_arg"; then
dst=$src
src=
if test -d "$dst"; then
mkdircmd=:
chmodcmd=
else
mkdircmd=$mkdirprog
fi
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dstarg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dstarg
# Protect names starting with `-'.
case $dst in
-*) dst=./$dst ;;
esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
echo "$0: $dstarg: Is a directory" >&2
exit 1
fi
dst=$dst/`basename "$src"`
fi
fi
# This sed command emulates the dirname command.
dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# Skip lots of stat calls in the usual case.
if test ! -d "$dstdir"; then
defaultIFS='
'
IFS="${IFS-$defaultIFS}"
oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
shift
IFS=$oIFS
pathcomp=
while test $# -ne 0 ; do
pathcomp=$pathcomp$1
shift
if test ! -d "$pathcomp"; then
$mkdirprog "$pathcomp"
# mkdir can fail with a `File exist' error in case several
# install-sh are creating the directory concurrently. This
# is OK.
test -d "$pathcomp" || exit
fi
pathcomp=$pathcomp/
done
fi
if test -n "$dir_arg"; then
$doit $mkdircmd "$dst" \
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
else
dstfile=`basename "$dst"`
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
trap '(exit $?); exit' 1 2 13 15
# Copy the file name to the temp name.
$doit $cpprog "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
# Now rename the file to the real destination.
{ $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
|| {
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
if test -f "$dstdir/$dstfile"; then
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|| {
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit 1
}
else
:
fi
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
}
}
fi || { (exit 1); exit 1; }
done
# The final little trick to "correctly" pass the exit status to the exit trap.
{
(exit 0); exit 0
}
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:
--- NEW FILE ltmain.sh ---
# ltmain.sh - Provide generalized library-building support services.
# NOTE: Changing this file will not affect anything until you rerun configure.
#
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
# Free Software Foundation, Inc.
# Originally by Gordon Matzigkeit <gord(a)gnu.ai.mit.edu>, 1996
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
basename="s,^.*/,,g"
# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
# is ksh but when the shell is invoked as "sh" and the current value of
# the _XPG environment variable is not equal to 1 (one), the special
# positional parameter $0, within a function call, is the name of the
# function.
progpath="$0"
# The name of this program:
progname=`echo "$progpath" | $SED $basename`
modename="$progname"
# Global variables:
EXIT_SUCCESS=0
EXIT_FAILURE=1
PROGRAM=ltmain.sh
PACKAGE=libtool
VERSION=1.5.22
TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
# See if we are running on zsh, and set the options which allow our
# commands through without removal of \ escapes.
if test -n "${ZSH_VERSION+set}" ; then
setopt NO_GLOB_SUBST
fi
# Check that we have a working $echo.
if test "X$1" = X--no-reexec; then
# Discard the --no-reexec flag, and continue.
shift
elif test "X$1" = X--fallback-echo; then
# Avoid inline document here, it may be left over
:
elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
# Yippee, $echo works!
:
else
# Restart under the correct shell, and then maybe $echo will work.
exec $SHELL "$progpath" --no-reexec ${1+"$@"}
fi
if test "X$1" = X--fallback-echo; then
# used as fallback echo
shift
cat <<EOF
$*
EOF
exit $EXIT_SUCCESS
fi
default_mode=
help="Try \`$progname --help' for more information."
magic="%%%MAGIC variable%%%"
mkdir="mkdir"
mv="mv -f"
rm="rm -f"
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
Xsed="${SED}"' -e 1s/^X//'
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
# test EBCDIC or ASCII
case `echo X|tr X '\101'` in
A) # ASCII based system
# \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
SP2NL='tr \040 \012'
NL2SP='tr \015\012 \040\040'
;;
*) # EBCDIC based system
SP2NL='tr \100 \n'
NL2SP='tr \r\n \100\100'
;;
esac
# NLS nuisances.
# Only set LANG and LC_ALL to C if already set.
# These must not be set unconditionally because not all systems understand
# e.g. LANG=C (notably SCO).
# We save the old values to restore during execute mode.
if test "${LC_ALL+set}" = set; then
save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
fi
if test "${LANG+set}" = set; then
save_LANG="$LANG"; LANG=C; export LANG
fi
# Make sure IFS has a sensible default
lt_nl='
'
IFS=" $lt_nl"
if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
$echo "$modename: not configured to build any kind of library" 1>&2
$echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
exit $EXIT_FAILURE
fi
# Global variables.
mode=$default_mode
nonopt=
prev=
prevopt=
run=
show="$echo"
show_help=
execute_dlfiles=
duplicate_deps=no
preserve_args=
lo2o="s/\\.lo\$/.${objext}/"
o2lo="s/\\.${objext}\$/.lo/"
#####################################
# Shell function definitions:
# This seems to be the best place for them
# func_mktempdir [string]
# Make a temporary directory that won't clash with other running
# libtool processes, and avoids race conditions if possible. If
# given, STRING is the basename for that directory.
func_mktempdir ()
{
my_template="${TMPDIR-/tmp}/${1-$progname}"
if test "$run" = ":"; then
# Return a directory name, but don't create it in dry-run mode
my_tmpdir="${my_template}-$$"
else
# If mktemp works, use that first and foremost
my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
if test ! -d "$my_tmpdir"; then
# Failing that, at least try and use $RANDOM to avoid a race
my_tmpdir="${my_template}-${RANDOM-0}$$"
save_mktempdir_umask=`umask`
umask 0077
$mkdir "$my_tmpdir"
umask $save_mktempdir_umask
fi
# If we're not in dry-run mode, bomb out on failure
test -d "$my_tmpdir" || {
$echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
exit $EXIT_FAILURE
}
fi
$echo "X$my_tmpdir" | $Xsed
}
# func_win32_libid arg
# return the library type of file 'arg'
#
# Need a lot of goo to handle *both* DLLs and import libs
# Has to be a shell function in order to 'eat' the argument
# that is supplied when $file_magic_command is called.
func_win32_libid ()
{
win32_libid_type="unknown"
win32_fileres=`file -L $1 2>/dev/null`
case $win32_fileres in
*ar\ archive\ import\ library*) # definitely import
win32_libid_type="x86 archive import"
;;
*ar\ archive*) # could be an import, or static
if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
$EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
win32_nmres=`eval $NM -f posix -A $1 | \
$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
[...6464 lines suppressed...]
clean remove files from the build directory
compile compile a source file into a libtool object
execute automatically set library path, then run a program
finish complete the installation of libtool libraries
install install libraries or executables
link create a library or an executable
uninstall remove libraries from an installed directory
MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
a more detailed description of MODE.
Report bugs to <bug-libtool(a)gnu.org>."
exit $EXIT_SUCCESS
;;
clean)
$echo \
"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
Remove files from the build directory.
RM is the name of the program to use to delete files associated with each FILE
(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
to RM.
If FILE is a libtool library, object or program, all the files associated
with it are deleted. Otherwise, only FILE itself is deleted using RM."
;;
compile)
$echo \
"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
Compile a source file into a libtool library object.
This mode accepts the following additional options:
-o OUTPUT-FILE set the output file name to OUTPUT-FILE
-prefer-pic try to building PIC objects only
-prefer-non-pic try to building non-PIC objects only
-static always build a \`.o' file suitable for static linking
COMPILE-COMMAND is a command to be used in creating a \`standard' object file
from the given SOURCEFILE.
The output file name is determined by removing the directory component from
SOURCEFILE, then substituting the C source code suffix \`.c' with the
library object suffix, \`.lo'."
;;
execute)
$echo \
"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
Automatically set library path, then run a program.
This mode accepts the following additional options:
-dlopen FILE add the directory containing FILE to the library path
This mode sets the library path environment variable according to \`-dlopen'
flags.
If any of the ARGS are libtool executable wrappers, then they are translated
into their corresponding uninstalled binary, and any of their required library
directories are added to the library path.
Then, COMMAND is executed, with ARGS as arguments."
;;
finish)
$echo \
"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
Complete the installation of libtool libraries.
Each LIBDIR is a directory that contains libtool libraries.
The commands that this mode executes may require superuser privileges. Use
the \`--dry-run' option if you just want to see what would be executed."
;;
install)
$echo \
"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
Install executables or libraries.
INSTALL-COMMAND is the installation command. The first component should be
either the \`install' or \`cp' program.
The rest of the components are interpreted as arguments to that command (only
BSD-compatible install options are recognized)."
;;
link)
$echo \
"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
Link object files or libraries together to form another library, or to
create an executable program.
LINK-COMMAND is a command using the C compiler that you would use to create
a program from several object files.
The following components of LINK-COMMAND are treated specially:
-all-static do not do any dynamic linking at all
-avoid-version do not add a version suffix if possible
-dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
-dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
-export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-export-symbols SYMFILE
try to export only the symbols listed in SYMFILE
-export-symbols-regex REGEX
try to export only the symbols matching REGEX
-LLIBDIR search LIBDIR for required installed libraries
-lNAME OUTPUT-FILE requires the installed library libNAME
-module build a library that can dlopened
-no-fast-install disable the fast-install mode
-no-install link a not-installable executable
-no-undefined declare that a library does not refer to external symbols
-o OUTPUT-FILE create OUTPUT-FILE from the specified objects
-objectlist FILE Use a list of object files found in FILE to specify objects
-precious-files-regex REGEX
don't remove output files matching REGEX
-release RELEASE specify package release information
-rpath LIBDIR the created library will eventually be installed in LIBDIR
-R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
-static do not do any dynamic linking of libtool libraries
-version-info CURRENT[:REVISION[:AGE]]
specify library version info [each variable defaults to 0]
All other options (arguments beginning with \`-') are ignored.
Every other argument is treated as a filename. Files ending in \`.la' are
treated as uninstalled libtool libraries, other files are standard or library
object files.
If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
only library objects (\`.lo' files) may be specified, and \`-rpath' is
required, except when creating a convenience library.
If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
using \`ar' and \`ranlib', or on Windows using \`lib'.
If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
is created, otherwise an executable program is created."
;;
uninstall)
$echo \
"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
Remove libraries from an installation directory.
RM is the name of the program to use to delete files associated with each FILE
(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
to RM.
If FILE is a libtool library, all the files associated with it are deleted.
Otherwise, only FILE itself is deleted using RM."
;;
*)
$echo "$modename: invalid operation mode \`$mode'" 1>&2
$echo "$help" 1>&2
exit $EXIT_FAILURE
;;
esac
$echo
$echo "Try \`$modename --help' for more information about other modes."
exit $?
# The TAGs below are defined such that we never get into a situation
# in which we disable both kinds of libraries. Given conflicting
# choices, we go for a static library, that is the most portable,
# since we can't tell whether shared libraries were disabled because
# the user asked for that or because the platform doesn't support
# them. This is particularly important on AIX, because we don't
# support having both static and shared libraries enabled at the same
# time on that platform, so we default to a shared-only configuration.
# If a disable-shared tag is given, we'll fallback to a static-only
# configuration. But we'll never go from static-only to shared-only.
# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
disable_libs=shared
# ### END LIBTOOL TAG CONFIG: disable-shared
# ### BEGIN LIBTOOL TAG CONFIG: disable-static
disable_libs=static
# ### END LIBTOOL TAG CONFIG: disable-static
# Local Variables:
# mode:shell-script
# sh-indentation:2
# End:
--- NEW FILE missing ---
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
scriptversion=2005-06-08.21
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
# Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard(a)iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
run=:
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
msg="missing on your system"
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
# Exit code 63 means version mismatch. This often happens
# when the user try to use an ancient version of a tool on
# a file that requires a minimum version. In this case we
# we should proceed has if the program had been absent, or
# if --run hadn't been passed.
if test $? = 63; then
run=:
msg="probably too old"
fi
;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
Send bug reports to <bug-automake(a)gnu.org>."
exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
exit $?
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
esac
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
# the program).
case "$1" in
lex|yacc)
# Not GNU programs, they don't have --version.
;;
tar)
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
exit 1
fi
;;
*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
# Could not run --version or --help. This is probably someone
# running `$TOOL --version' or `$TOOL --help' to check whether
# $TOOL exists and not knowing $TOOL uses missing.
exit 1
fi
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case "$1" in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
autom4te)
echo 1>&2 "\
WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the
proper tools for further handling them.
You can get \`$1' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@"
echo "exit 0"
chmod +x $file
exit 1
fi
;;
bison|yacc)
echo 1>&2 "\
WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex|flex)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
help2man)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
fi
if [ -f "$file" ]; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit 1
fi
;;
makeinfo)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
# The file to touch is that specified with -o ...
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
# ... or it is the one specified with @setfilename ...
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
# ... or it is derived from the source name (dir/f.texi becomes f.info)
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi
# If the file does not exist, the user really needs makeinfo;
# let's fail without touching anything.
test -f $file || exit 1
touch $file
;;
tar)
shift
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
gnutar "$@" && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
gtar "$@" && exit 0
fi
firstarg="$1"
if shift; then
case "$firstarg" in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
case "$firstarg" in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
;;
esac
fi
echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the
command line arguments."
exit 1
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and is $msg.
You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# End:
--- Makefile DELETED ---
15 years, 10 months