initial commit of file from CVS for cpu on Wed 12 Jul 14:07:08 BST 2023
This commit is contained in:
parent
54c5460785
commit
36449a1f7e
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
||||
*.4.3.tar.bz2 filter=lfs diff=lfs merge=lfs -text
|
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
*.rpm
|
||||
*.log
|
||||
*spec-20*
|
21
Makefile
Normal file
21
Makefile
Normal file
@ -0,0 +1,21 @@
|
||||
# Makefile for source rpm: cpu
|
||||
# $Id: Makefile,v 1.1 2016/02/04 12:17:43 vip-ire Exp $
|
||||
NAME := cpu
|
||||
SPECFILE = $(firstword $(wildcard *.spec))
|
||||
|
||||
define find-makefile-common
|
||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
||||
|
||||
ifeq ($(MAKEFILE_COMMON),)
|
||||
# attept a checkout
|
||||
define checkout-makefile-common
|
||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
||||
endif
|
||||
|
||||
include $(MAKEFILE_COMMON)
|
10
README.md
10
README.md
@ -1,3 +1,11 @@
|
||||
# cpu
|
||||
|
||||
3rd Party (Maintained by Koozali) git repo for cpu smeserver
|
||||
3rd Party (Maintained by Koozali) git repo for cpu smeserver
|
||||
|
||||
## Description
|
||||
|
||||
<br />*This description has been generated by an LLM AI system and cannot be relied on to be fully correct.*
|
||||
*Once it has been checked, then this comment will be deleted*
|
||||
<br />
|
||||
|
||||
The CPU (Central Processing Unit) is a piece of software that controls the overall operation of a computer system. It is responsible for interpreting and executing instructions from a software program, and for managing the flow of data among components. The CPU can interpret instructions from hardware components, such as memory, input/output devices, and other peripherals. It can also manage the allocation of resources to these components in order to maximize performance and efficiency.
|
||||
|
1
contriborbase
Normal file
1
contriborbase
Normal file
@ -0,0 +1 @@
|
||||
sme10
|
12
cpu-1.4.3-doc_install.patch
Normal file
12
cpu-1.4.3-doc_install.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -Nur -x '*.orig' -x '*.rej' cpu-1.4.3/doc/Makefile.in mezzanine_patched_cpu-1.4.3/doc/Makefile.in
|
||||
--- cpu-1.4.3/doc/Makefile.in 2004-01-11 23:52:20.000000000 -0500
|
||||
+++ mezzanine_patched_cpu-1.4.3/doc/Makefile.in 2006-09-26 13:27:34.000000000 -0400
|
||||
@@ -120,7 +120,7 @@
|
||||
program_transform_name = @program_transform_name@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
-sysconfdir = @sysconfdir@
|
||||
+sysconfdir = $(DESTDIR)@sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
SUBDIRS = man
|
||||
data_DATA = cpu.conf.doc test.ldif
|
15
cpu-1.4.3-empty-attr.patch
Normal file
15
cpu-1.4.3-empty-attr.patch
Normal file
@ -0,0 +1,15 @@
|
||||
diff -up cpu-1.4.3/src/plugins/ldap/ld.c.empty-attr cpu-1.4.3/src/plugins/ldap/ld.c
|
||||
--- cpu-1.4.3/src/plugins/ldap/ld.c.empty-attr 2010-11-05 21:18:12.000000000 -0600
|
||||
+++ cpu-1.4.3/src/plugins/ldap/ld.c 2010-11-05 21:19:48.000000000 -0600
|
||||
@@ -282,7 +282,10 @@ ldapBuildListStr (int mod_op, char *mod_
|
||||
{
|
||||
char **temp;
|
||||
|
||||
- if (value == NULL)
|
||||
+ if (mod_type == NULL || strlen(mod_type) == strspn(mod_type, " "))
|
||||
+ return mods;
|
||||
+
|
||||
+ if (value == NULL || strlen(value) == strspn(value, " "))
|
||||
return mods;
|
||||
|
||||
mods = ldapAddList (mods);
|
26
cpu-1.4.3-fix-cn.patch
Normal file
26
cpu-1.4.3-fix-cn.patch
Normal file
@ -0,0 +1,26 @@
|
||||
diff -up cpu-1.4.3/src/plugins/ldap/ld.c.fix-cn cpu-1.4.3/src/plugins/ldap/ld.c
|
||||
--- cpu-1.4.3/src/plugins/ldap/ld.c.fix-cn 2010-11-05 11:36:45.000000000 -0600
|
||||
+++ cpu-1.4.3/src/plugins/ldap/ld.c 2010-11-05 11:40:11.000000000 -0600
|
||||
@@ -437,7 +437,9 @@ ldapGetCn (void)
|
||||
size_t slen = 0;
|
||||
char *temp;
|
||||
|
||||
- if (globalLdap->first_name && globalLdap->last_name)
|
||||
+ if (globalLdap->passent->pw_gecos)
|
||||
+ temp = globalLdap->passent->pw_gecos;
|
||||
+ else if (globalLdap->first_name && globalLdap->last_name)
|
||||
{
|
||||
slen =
|
||||
strlen (globalLdap->first_name) + strlen (globalLdap->last_name) + 2;
|
||||
diff -up cpu-1.4.3/src/plugins/ldap/user.c.fix-cn cpu-1.4.3/src/plugins/ldap/user.c
|
||||
--- cpu-1.4.3/src/plugins/ldap/user.c.fix-cn 2004-01-10 19:12:37.000000000 -0700
|
||||
+++ cpu-1.4.3/src/plugins/ldap/user.c 2010-11-05 11:46:48.000000000 -0600
|
||||
@@ -256,6 +256,8 @@ ldapUserCheck (int mod_op, LDAP * ld)
|
||||
ldapBuildList (op, "objectClass", globalLdap->user_object_class,
|
||||
userMod);
|
||||
}
|
||||
+ else if (globalLdap->passent->pw_gecos || (globalLdap->first_name && globalLdap->last_name))
|
||||
+ userMod = ldapBuildListStr (op, "cn", ldapGetCn (), userMod);
|
||||
|
||||
userMod =
|
||||
ldapBuildListStr (op, "uid", globalLdap->passent->pw_name, userMod);
|
37
cpu-1.4.3-gid-not-supp.patch
Normal file
37
cpu-1.4.3-gid-not-supp.patch
Normal file
@ -0,0 +1,37 @@
|
||||
diff -up cpu-1.4.3/src/plugins/ldap/user.c.gid-not-supp cpu-1.4.3/src/plugins/ldap/user.c
|
||||
--- cpu-1.4.3/src/plugins/ldap/user.c.gid-not-supp 2010-11-07 21:51:45.000000000 -0700
|
||||
+++ cpu-1.4.3/src/plugins/ldap/user.c 2010-11-07 22:01:26.000000000 -0700
|
||||
@@ -402,33 +402,6 @@ ldapUserCheck (int mod_op, LDAP * ld)
|
||||
}
|
||||
}
|
||||
}
|
||||
- if (globalLdap->gid)
|
||||
- {
|
||||
- tcn = cfg_get_str ("LDAP", "GROUP_CN_STRING");
|
||||
- if (tcn == NULL)
|
||||
- tcn = strdup ("cn");
|
||||
- strsize = strlen (globalLdap->gid) +
|
||||
- strlen (gf) + strlen (tcn) + 8;
|
||||
- filter2 = (char *) malloc (sizeof (char) * strsize);
|
||||
- if (filter2 == NULL)
|
||||
- return -1;
|
||||
- bzero (filter2, strsize);
|
||||
- snprintf (filter2, strsize, "(&%s (%s=%s))",
|
||||
- gf, tcn, globalLdap->gid);
|
||||
- if (ldap_search_st
|
||||
- (ld, globalLdap->group_base, LDAP_SCOPE_SUBTREE, filter2,
|
||||
- attrs, 0, &globalLdap->timeout, res) != LDAP_SUCCESS)
|
||||
- {
|
||||
- CPU_ldapPerror (ld, globalLdap,
|
||||
- "ldapUserCheck: ldap_search_st");
|
||||
- return -1;
|
||||
- }
|
||||
- ldapres = ldap_count_entries (ld, res[0]);
|
||||
- if (ldapres > 0)
|
||||
- {
|
||||
- ldap_modify_s (ld, ldap_get_dn (ld, res[0]), tmod);
|
||||
- }
|
||||
- }
|
||||
free (gf);
|
||||
}
|
||||
if (globalLdap->first_name)
|
75
cpu-1.4.3-md5crypt.patch
Normal file
75
cpu-1.4.3-md5crypt.patch
Normal file
@ -0,0 +1,75 @@
|
||||
diff -Nur -x '*.orig' -x '*.rej' cpu-1.4.3/src/include/util/hash.h mezzanine_patched_cpu-1.4.3/src/include/util/hash.h
|
||||
--- cpu-1.4.3/src/include/util/hash.h 2003-09-26 22:27:01.000000000 -0400
|
||||
+++ mezzanine_patched_cpu-1.4.3/src/include/util/hash.h 2007-07-24 15:26:10.000000000 -0400
|
||||
@@ -49,12 +49,14 @@
|
||||
#define PASSWORD_SIZE 128
|
||||
|
||||
/* hash_t should have a one-to-one correspondence with hashes */
|
||||
+/* HVB added H_MD5CRYPT */
|
||||
typedef enum {
|
||||
H_SHA1 = 0,
|
||||
H_SSHA1,
|
||||
H_MD5,
|
||||
H_SMD5,
|
||||
H_CRYPT,
|
||||
+ H_MD5CRYPT,
|
||||
H_CLEAR,
|
||||
H_UNKNOWN,
|
||||
} hash_t;
|
||||
diff -Nur -x '*.orig' -x '*.rej' cpu-1.4.3/src/plugins/ldap/ld.c mezzanine_patched_cpu-1.4.3/src/plugins/ldap/ld.c
|
||||
--- cpu-1.4.3/src/plugins/ldap/ld.c 2007-07-24 15:26:53.000000000 -0400
|
||||
+++ mezzanine_patched_cpu-1.4.3/src/plugins/ldap/ld.c 2007-07-24 15:26:10.000000000 -0400
|
||||
@@ -478,6 +478,9 @@
|
||||
case H_CRYPT:
|
||||
return ldap_hashes[H_CRYPT];
|
||||
break;
|
||||
+ case H_MD5CRYPT: /* HvB */
|
||||
+ return ldap_hashes[H_CRYPT];
|
||||
+ break;
|
||||
case H_CLEAR:
|
||||
/* FIXME: this should work so that the prefix is returned for the
|
||||
correct hash but the password doesn't get encrypted */
|
||||
diff -Nur -x '*.orig' -x '*.rej' cpu-1.4.3/src/util/hash.c mezzanine_patched_cpu-1.4.3/src/util/hash.c
|
||||
--- cpu-1.4.3/src/util/hash.c 2003-10-22 17:29:19.000000000 -0400
|
||||
+++ mezzanine_patched_cpu-1.4.3/src/util/hash.c 2007-07-24 15:26:10.000000000 -0400
|
||||
@@ -50,6 +50,7 @@
|
||||
"md5",
|
||||
"smd5",
|
||||
"crypt",
|
||||
+ "md5crypt",
|
||||
"clear",
|
||||
NULL
|
||||
};
|
||||
@@ -140,6 +141,11 @@
|
||||
char * passphrase = NULL;
|
||||
size_t plen = 0;
|
||||
|
||||
+ /*
|
||||
+ * HvB
|
||||
+ */
|
||||
+ char md5salt[32];
|
||||
+
|
||||
if ( password == NULL )
|
||||
return NULL;
|
||||
|
||||
@@ -185,9 +191,20 @@
|
||||
fprintf(stderr, "Your c library is missing 'crypt'\n");
|
||||
#endif
|
||||
break;
|
||||
+
|
||||
+ case H_MD5CRYPT: /* HvB */
|
||||
+#ifdef HAVE_LIBCRYPT
|
||||
+ snprintf(md5salt, sizeof(md5salt),"$1$%s", cgetSalt());
|
||||
+ temp = crypt(password, md5salt);
|
||||
+#else
|
||||
+ fprintf(stderr, "Your c library is missing 'crypt'\n");
|
||||
+#endif
|
||||
+ break;
|
||||
+
|
||||
case H_CLEAR:
|
||||
temp = password;
|
||||
break;
|
||||
+
|
||||
default:
|
||||
fprintf(stderr, "getHash: Unknown hash type.\n");
|
||||
return NULL;
|
249
cpu-1.4.3-mod-delete.patch
Normal file
249
cpu-1.4.3-mod-delete.patch
Normal file
@ -0,0 +1,249 @@
|
||||
diff -up cpu-1.4.3/src/include/plugins/ldap/ldap.h.mod-delete cpu-1.4.3/src/include/plugins/ldap/ldap.h
|
||||
--- cpu-1.4.3/src/include/plugins/ldap/ldap.h.mod-delete 2003-12-30 20:22:20.000000000 -0700
|
||||
+++ cpu-1.4.3/src/include/plugins/ldap/ldap.h 2010-11-05 23:54:19.000000000 -0600
|
||||
@@ -127,8 +127,8 @@ int ldapCat(LDAP *ld);
|
||||
uid_t getNextUid(LDAP * ld);
|
||||
gid_t getNextGid(LDAP * ld, ldapop_t op);
|
||||
int ldapUserCheck(int mod_op, LDAP * ld);
|
||||
-int ldapGroupCheck(int mod_op);
|
||||
-LDAPMod ** ldapBuildListStr(int mod_op, char * mod_type, char * value,
|
||||
+int ldapGroupCheck(int mod_op, LDAP * ld);
|
||||
+LDAPMod ** ldapBuildListStr(LDAP * ld, int mod_op, char * mod_type, char * value,
|
||||
LDAPMod ** mods);
|
||||
LDAPMod ** ldapBuildList(int mod_op, char * mod_type, char ** value,
|
||||
LDAPMod ** mods);
|
||||
diff -up cpu-1.4.3/src/plugins/ldap/group.c.mod-delete cpu-1.4.3/src/plugins/ldap/group.c
|
||||
--- cpu-1.4.3/src/plugins/ldap/group.c.mod-delete 2003-10-12 17:34:59.000000000 -0600
|
||||
+++ cpu-1.4.3/src/plugins/ldap/group.c 2010-11-05 23:54:19.000000000 -0600
|
||||
@@ -31,7 +31,7 @@ LDAPMod **groupMod = NULL;
|
||||
int
|
||||
ldapGroupAdd (LDAP * ld)
|
||||
{
|
||||
- if (ldapGroupCheck (LDAP_MOD_ADD) < 0)
|
||||
+ if (ldapGroupCheck (LDAP_MOD_ADD, ld) < 0)
|
||||
{
|
||||
fprintf (stderr, "ldap: ldapGroupAdd: error in ldapGroupCheck\n");
|
||||
return -1;
|
||||
@@ -50,7 +50,7 @@ int
|
||||
ldapGroupMod (LDAP * ld)
|
||||
{
|
||||
char *newdn = NULL;
|
||||
- if (ldapGroupCheck (LDAP_MOD_REPLACE) < 0)
|
||||
+ if (ldapGroupCheck (LDAP_MOD_REPLACE, ld) < 0)
|
||||
{
|
||||
fprintf (stderr, "ldap: ldapGroupMod: error in ldapGroupCheck\n");
|
||||
return -1;
|
||||
@@ -105,7 +105,7 @@ ldapGroupDel (LDAP * ld)
|
||||
}
|
||||
|
||||
int
|
||||
-ldapGroupCheck (int mod_op)
|
||||
+ldapGroupCheck (int mod_op, LDAP * ld)
|
||||
{
|
||||
int op = 0;
|
||||
if (mod_op == LDAP_MOD_ADD)
|
||||
@@ -126,11 +126,11 @@ ldapGroupCheck (int mod_op)
|
||||
groupMod = ldapBuildList (op, "objectClass",
|
||||
globalLdap->group_object_class, groupMod);
|
||||
groupMod =
|
||||
- ldapBuildListStr (LDAP_MOD_ADD, "cn", ldapGetCn (), groupMod);
|
||||
+ ldapBuildListStr (ld, LDAP_MOD_ADD, "cn", ldapGetCn (), groupMod);
|
||||
}
|
||||
|
||||
if (globalLdap->passent->pw_passwd)
|
||||
- groupMod = ldapBuildListStr (op, "userPassword",
|
||||
+ groupMod = ldapBuildListStr (ld, op, "userPassword",
|
||||
globalLdap->passent->pw_passwd, groupMod);
|
||||
|
||||
if ((int) globalLdap->passent->pw_gid > -1)
|
||||
@@ -143,7 +143,7 @@ ldapGroupCheck (int mod_op)
|
||||
pos = globalLdap->parse;
|
||||
while (pos != NULL)
|
||||
{
|
||||
- groupMod = ldapBuildListStr (op, pos->attr, pos->attrval, groupMod);
|
||||
+ groupMod = ldapBuildListStr (ld, op, pos->attr, pos->attrval, groupMod);
|
||||
pos = pos->next;
|
||||
}
|
||||
}
|
||||
diff -up cpu-1.4.3/src/plugins/ldap/ld.c.mod-delete cpu-1.4.3/src/plugins/ldap/ld.c
|
||||
--- cpu-1.4.3/src/plugins/ldap/ld.c.mod-delete 2010-11-05 23:53:41.000000000 -0600
|
||||
+++ cpu-1.4.3/src/plugins/ldap/ld.c 2010-11-06 00:03:17.000000000 -0600
|
||||
@@ -278,7 +278,7 @@ ldapAddList (LDAPMod ** mods)
|
||||
}
|
||||
|
||||
LDAPMod **
|
||||
-ldapBuildListStr (int mod_op, char *mod_type, char *value, LDAPMod ** mods)
|
||||
+ldapBuildListStr (LDAP * ld, int mod_op, char *mod_type, char *value, LDAPMod ** mods)
|
||||
{
|
||||
char **temp;
|
||||
|
||||
@@ -286,19 +286,66 @@ ldapBuildListStr (int mod_op, char *mod_
|
||||
return mods;
|
||||
|
||||
if (value == NULL || strlen(value) == strspn(value, " "))
|
||||
- return mods;
|
||||
-
|
||||
- mods = ldapAddList (mods);
|
||||
+ {
|
||||
+ int strsize = 1;
|
||||
+ char *filter = NULL;
|
||||
+ int ldapres = 0;
|
||||
+ int err = 0;
|
||||
+
|
||||
+ LDAPMessage *res[2];
|
||||
+ res[1] = NULL;
|
||||
+
|
||||
+ strsize = strlen (mod_type) + 5;
|
||||
+ filter = (char *) malloc (sizeof (char) * strsize);
|
||||
+ if (filter == NULL)
|
||||
+ return -1;
|
||||
+ bzero (filter, strsize);
|
||||
+ snprintf (filter, strsize, "(%s=*)", mod_type);
|
||||
+ if (ldap_search_st (ld, globalLdap->dn, LDAP_SCOPE_BASE, filter, NULL, 0,
|
||||
+ &globalLdap->timeout, res) != LDAP_SUCCESS)
|
||||
+ {
|
||||
+ if (ldap_get_option (ld, LDAP_OPT_ERROR_NUMBER, &err) < 0)
|
||||
+ {
|
||||
+ fprintf (stderr, "Error in ldap_get_option\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+ if (err != LDAP_NO_SUCH_OBJECT)
|
||||
+ {
|
||||
+ CPU_ldapPerror (ld, globalLdap,
|
||||
+ "ldapBuildListStr: ldap_search_st");
|
||||
+ return -1;
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ ldapres = ldap_count_entries (ld, res[0]);
|
||||
+ if (ldapres > 0)
|
||||
+ {
|
||||
+ mods = ldapAddList (mods);
|
||||
+
|
||||
+ mods[list_size]->mod_op = LDAP_MOD_DELETE;
|
||||
+ mods[list_size]->mod_type = strdup (mod_type);
|
||||
+ mods[list_size]->mod_values = NULL;
|
||||
+ list_size++;
|
||||
+ }
|
||||
+ }
|
||||
+ free(filter);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ mods = ldapAddList (mods);
|
||||
|
||||
- temp = (char **) malloc (sizeof (char *) * 2);
|
||||
- bzero (temp, sizeof (char *) * 2);
|
||||
- temp[0] = value;
|
||||
- temp[1] = NULL;
|
||||
+ temp = (char **) malloc (sizeof (char *) * 2);
|
||||
+ bzero (temp, sizeof (char *) * 2);
|
||||
+ temp[0] = value;
|
||||
+ temp[1] = NULL;
|
||||
+
|
||||
+ mods[list_size]->mod_op = mod_op;
|
||||
+ mods[list_size]->mod_type = strdup (mod_type);
|
||||
+ mods[list_size]->mod_values = temp;
|
||||
+ list_size++;
|
||||
+ }
|
||||
|
||||
- mods[list_size]->mod_op = mod_op;
|
||||
- mods[list_size]->mod_type = strdup (mod_type);
|
||||
- mods[list_size]->mod_values = temp;
|
||||
- list_size++;
|
||||
return mods;
|
||||
}
|
||||
|
||||
diff -up cpu-1.4.3/src/plugins/ldap/user.c.mod-delete cpu-1.4.3/src/plugins/ldap/user.c
|
||||
--- cpu-1.4.3/src/plugins/ldap/user.c.mod-delete 2010-11-05 23:53:41.000000000 -0600
|
||||
+++ cpu-1.4.3/src/plugins/ldap/user.c 2010-11-05 23:54:19.000000000 -0600
|
||||
@@ -251,16 +251,16 @@ ldapUserCheck (int mod_op, LDAP * ld)
|
||||
*/
|
||||
if (op == LDAP_MOD_ADD)
|
||||
{
|
||||
- userMod = ldapBuildListStr (LDAP_MOD_ADD, "cn", ldapGetCn (), userMod);
|
||||
+ userMod = ldapBuildListStr (ld, LDAP_MOD_ADD, "cn", ldapGetCn (), userMod);
|
||||
userMod =
|
||||
ldapBuildList (op, "objectClass", globalLdap->user_object_class,
|
||||
userMod);
|
||||
}
|
||||
else if (globalLdap->passent->pw_gecos || (globalLdap->first_name && globalLdap->last_name))
|
||||
- userMod = ldapBuildListStr (op, "cn", ldapGetCn (), userMod);
|
||||
+ userMod = ldapBuildListStr (ld, op, "cn", ldapGetCn (), userMod);
|
||||
|
||||
userMod =
|
||||
- ldapBuildListStr (op, "uid", globalLdap->passent->pw_name, userMod);
|
||||
+ ldapBuildListStr (ld, op, "uid", globalLdap->passent->pw_name, userMod);
|
||||
|
||||
/* do we allow duplicates ? */
|
||||
if ((int) globalLdap->passent->pw_uid > -1)
|
||||
@@ -433,35 +433,35 @@ ldapUserCheck (int mod_op, LDAP * ld)
|
||||
}
|
||||
if (globalLdap->first_name)
|
||||
userMod =
|
||||
- ldapBuildListStr (op, "givenName", globalLdap->first_name, userMod);
|
||||
+ ldapBuildListStr (ld, op, "givenName", globalLdap->first_name, userMod);
|
||||
|
||||
if (globalLdap->last_name)
|
||||
- userMod = ldapBuildListStr (op, "sn", globalLdap->last_name, userMod);
|
||||
+ userMod = ldapBuildListStr (ld, op, "sn", globalLdap->last_name, userMod);
|
||||
|
||||
if (globalLdap->new_username)
|
||||
- userMod = ldapBuildListStr (op, "uid", globalLdap->new_username, userMod);
|
||||
+ userMod = ldapBuildListStr (ld, op, "uid", globalLdap->new_username, userMod);
|
||||
|
||||
if (globalLdap->email_address)
|
||||
userMod =
|
||||
- ldapBuildListStr (op, "mail", globalLdap->email_address, userMod);
|
||||
+ ldapBuildListStr (ld, op, "mail", globalLdap->email_address, userMod);
|
||||
|
||||
if (globalLdap->passent->pw_passwd)
|
||||
userMod =
|
||||
- ldapBuildListStr (op, "userPassword", globalLdap->passent->pw_passwd,
|
||||
+ ldapBuildListStr (ld, op, "userPassword", globalLdap->passent->pw_passwd,
|
||||
userMod);
|
||||
|
||||
if (globalLdap->passent->pw_gecos)
|
||||
- userMod = ldapBuildListStr (op, "gecos", globalLdap->passent->pw_gecos,
|
||||
+ userMod = ldapBuildListStr (ld, op, "gecos", globalLdap->passent->pw_gecos,
|
||||
userMod);
|
||||
|
||||
if (globalLdap->passent->pw_dir)
|
||||
userMod =
|
||||
- ldapBuildListStr (op, "homeDirectory", globalLdap->passent->pw_dir,
|
||||
+ ldapBuildListStr (ld, op, "homeDirectory", globalLdap->passent->pw_dir,
|
||||
userMod);
|
||||
|
||||
if (globalLdap->passent->pw_shell)
|
||||
userMod =
|
||||
- ldapBuildListStr (op, "loginShell", globalLdap->passent->pw_shell,
|
||||
+ ldapBuildListStr (ld, op, "loginShell", globalLdap->passent->pw_shell,
|
||||
userMod);
|
||||
if ((int) globalLdap->passent->sp_lstchg != -10)
|
||||
userMod = ldapBuildListInt (op, "shadowLastChange",
|
||||
@@ -501,7 +501,7 @@ ldapUserCheck (int mod_op, LDAP * ld)
|
||||
pos = globalLdap->parse;
|
||||
while (pos != NULL)
|
||||
{
|
||||
- userMod = ldapBuildListStr (op, pos->attr, pos->attrval, userMod);
|
||||
+ userMod = ldapBuildListStr (ld, op, pos->attr, pos->attrval, userMod);
|
||||
pos = pos->next;
|
||||
}
|
||||
}
|
||||
diff -up cpu-1.4.3/src/util/parser.c.mod-delete cpu-1.4.3/src/util/parser.c
|
||||
--- cpu-1.4.3/src/util/parser.c.mod-delete 2010-11-07 16:05:19.000000000 -0700
|
||||
+++ cpu-1.4.3/src/util/parser.c 2010-11-07 16:13:07.000000000 -0700
|
||||
@@ -290,11 +290,7 @@
|
||||
p->cont = true;
|
||||
token = getToken(&cart[i], delim);
|
||||
if ( token == NULL )
|
||||
- {
|
||||
- printf("%d: Malformed file, cannot continue parsing.\n",
|
||||
- __LINE__);
|
||||
- return NULL;
|
||||
- }
|
||||
+ token = strdup ("");
|
||||
}
|
||||
p->attrval = delWhite(&token);
|
||||
pos = parse;
|
51
cpu-1.4.3-read.patch
Normal file
51
cpu-1.4.3-read.patch
Normal file
@ -0,0 +1,51 @@
|
||||
diff -Nur -x '*.orig' -x '*.rej' cpu-1.4.3/src/util/parser.c mezzanine_patched_cpu-1.4.3/src/util/parser.c
|
||||
--- cpu-1.4.3/src/util/parser.c 2003-10-22 17:17:15.000000000 -0400
|
||||
+++ mezzanine_patched_cpu-1.4.3/src/util/parser.c 2007-07-24 15:17:47.000000000 -0400
|
||||
@@ -57,6 +57,8 @@
|
||||
{
|
||||
int fd = 0;
|
||||
ssize_t retval = 0;
|
||||
+ ssize_t nread;
|
||||
+ ssize_t bufsize;
|
||||
void * temp;
|
||||
struct stat buf;
|
||||
|
||||
@@ -75,14 +77,31 @@
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- temp = malloc(buf.st_size);
|
||||
- if ( temp == NULL )
|
||||
- return NULL;
|
||||
- bzero(temp, buf.st_size);
|
||||
-
|
||||
- retval = read(fd, temp, buf.st_size);
|
||||
+ for (nread = 0, temp = NULL, bufsize = 4096; ;bufsize *= 2)
|
||||
+ {
|
||||
+ void *temp2;
|
||||
+ ssize_t rbufsize;
|
||||
+ temp2 = malloc(bufsize);
|
||||
+ if ( temp2 == NULL )
|
||||
+ {
|
||||
+ perror(filename);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ bzero(temp2, bufsize);
|
||||
+ if (temp)
|
||||
+ {
|
||||
+ memcpy(temp2, temp, nread);
|
||||
+ free(temp);
|
||||
+ }
|
||||
+ temp = temp2;
|
||||
+ rbufsize = bufsize - nread;
|
||||
+ retval = read(fd, temp+nread, rbufsize);
|
||||
+ nread += retval;
|
||||
+ if (retval < rbufsize)
|
||||
+ break;
|
||||
+ }
|
||||
close(fd);
|
||||
- if ( retval != buf.st_size )
|
||||
+ if (buf.st_size && nread != buf.st_size )
|
||||
printf("Hmm, didn't read all wanted data. Continuing\n");
|
||||
if ( retval < 0 )
|
||||
return NULL;
|
35
cpu-1.4.3-rhel5.patch
Normal file
35
cpu-1.4.3-rhel5.patch
Normal file
@ -0,0 +1,35 @@
|
||||
diff -Nur -x '*.orig' -x '*.rej' cpu-1.4.3/src/plugins/ldap/commandline.c mezzanine_patched_cpu-1.4.3/src/plugins/ldap/commandline.c
|
||||
--- cpu-1.4.3/src/plugins/ldap/commandline.c 2004-01-12 00:31:02.000000000 -0500
|
||||
+++ mezzanine_patched_cpu-1.4.3/src/plugins/ldap/commandline.c 2007-07-24 14:55:44.000000000 -0400
|
||||
@@ -83,7 +83,7 @@
|
||||
if (passent == NULL)
|
||||
return -1;
|
||||
bzero (passent, sizeof (struct cpass));
|
||||
- (int) passent->sp_lstchg = passent->sp_min = passent->sp_max = -10;
|
||||
+ passent->sp_lstchg = (int)(passent->sp_min = passent->sp_max = -10);
|
||||
passent->sp_warn = passent->sp_inact = passent->sp_expire = -10;
|
||||
passent->sp_flag = -10;
|
||||
passent->pw_gid = -10;
|
||||
diff -Nur -x '*.orig' -x '*.rej' cpu-1.4.3/src/plugins/ldap/ld.c mezzanine_patched_cpu-1.4.3/src/plugins/ldap/ld.c
|
||||
--- cpu-1.4.3/src/plugins/ldap/ld.c 2004-01-11 23:47:37.000000000 -0500
|
||||
+++ mezzanine_patched_cpu-1.4.3/src/plugins/ldap/ld.c 2007-07-24 14:56:36.000000000 -0400
|
||||
@@ -803,11 +803,14 @@
|
||||
return -10;
|
||||
if (gid != NULL)
|
||||
{
|
||||
- gid = ldap_get_values (ld, pos, gid)[0];
|
||||
- if (gid != NULL)
|
||||
- return atoi (gid);
|
||||
- else
|
||||
- return -10;
|
||||
+ char **gidval = ldap_get_values (ld, pos, gid);
|
||||
+ int val;
|
||||
+
|
||||
+ if (gidval == NULL)
|
||||
+ return -10;
|
||||
+ val = atoi (*gidval);
|
||||
+ ldap_value_free (gidval);
|
||||
+ return val;
|
||||
}
|
||||
else
|
||||
return -10;
|
12
cpu-1.4.3-rhel6.patch
Normal file
12
cpu-1.4.3-rhel6.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -up cpu-1.4.3/src/util/fileaction.c.rhel6 cpu-1.4.3/src/util/fileaction.c
|
||||
--- cpu-1.4.3/src/util/fileaction.c.rhel6 2003-02-17 16:25:37.000000000 -0700
|
||||
+++ cpu-1.4.3/src/util/fileaction.c 2013-02-01 16:09:46.762978006 -0700
|
||||
@@ -197,7 +197,7 @@ copy (char * directory, char * newdirect
|
||||
}
|
||||
close (fd1);
|
||||
|
||||
- if ((fd2 = open (homefile, O_CREAT | O_EXCL | O_WRONLY)) == -1)
|
||||
+ if ((fd2 = open (homefile, O_CREAT | O_EXCL | O_WRONLY, S_IRWXU)) == -1)
|
||||
{
|
||||
perror ("open");
|
||||
free (data);
|
115
cpu-1.4.3-supp-groups.patch
Normal file
115
cpu-1.4.3-supp-groups.patch
Normal file
@ -0,0 +1,115 @@
|
||||
diff -up cpu-1.4.3/src/plugins/ldap/ld.c.supp-groups cpu-1.4.3/src/plugins/ldap/ld.c
|
||||
--- cpu-1.4.3/src/plugins/ldap/ld.c.supp-groups 2010-11-07 19:00:21.000000000 -0700
|
||||
+++ cpu-1.4.3/src/plugins/ldap/ld.c 2010-11-07 18:56:18.000000000 -0700
|
||||
@@ -29,6 +29,7 @@
|
||||
|
||||
gid_t getlGid (LDAP * ld, char *groupn);
|
||||
char *checkSupGroups (LDAP * ld);
|
||||
+void getSupGroups (LDAP * ld, char *uname);
|
||||
void rmUsrFrmOldSupGrp (LDAP * ld, char *uname);
|
||||
int checkIsPrimaryGroup (LDAP * ld);
|
||||
int groupExists (LDAP * ld, int cgid);
|
||||
@@ -193,6 +194,7 @@ ldapOperation (ldapop_t optype)
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
+ getSupGroups (ld, globalLdap->passent->pw_name);
|
||||
tstr = NULL;
|
||||
if ((tstr = checkSupGroups (ld)) != NULL)
|
||||
{
|
||||
@@ -755,6 +757,65 @@ checkSupGroups (LDAP * ld)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+void
|
||||
+getSupGroups (LDAP * ld, char *uname)
|
||||
+{
|
||||
+ LDAPMessage *res[2];
|
||||
+ LDAPMessage *pos;
|
||||
+ int filtsize = 0;
|
||||
+ struct timeval timeout;
|
||||
+ char **vals;
|
||||
+ char *filter = NULL;
|
||||
+ char *temp;
|
||||
+ int num_tokens = 0;
|
||||
+ char *attrs[7] = {
|
||||
+ "cn",
|
||||
+ NULL
|
||||
+ };
|
||||
+
|
||||
+ if (globalLdap->memberUid != NULL)
|
||||
+ return;
|
||||
+
|
||||
+ timeout = globalLdap->timeout;
|
||||
+ res[1] = NULL;
|
||||
+
|
||||
+ temp = cfg_get_str ("LDAP", "GROUP_FILTER");
|
||||
+ if (temp == NULL)
|
||||
+ temp = strdup ("(objectClass=PosixGroup)");
|
||||
+ filtsize = strlen (temp) + strlen (uname) + 18;
|
||||
+ filter = (char *) malloc (sizeof (char) * filtsize);
|
||||
+ bzero (filter, filtsize);
|
||||
+
|
||||
+ snprintf (filter, filtsize, "(&%s (memberUid=%s))", temp, uname);
|
||||
+ if (ldap_search_st (ld, globalLdap->group_base, LDAP_SCOPE_SUBTREE,
|
||||
+ filter, attrs, 0, &timeout, res) != LDAP_SUCCESS)
|
||||
+ {
|
||||
+ Free (filter);
|
||||
+ CPU_ldapPerror (ld, globalLdap, "getSupGroups: ldap_search_st");
|
||||
+ return;
|
||||
+ }
|
||||
+ free (filter);
|
||||
+ if (ldap_count_entries (ld, res[0]) < 1)
|
||||
+ return;
|
||||
+
|
||||
+ for (pos = ldap_first_entry (ld, res[0]); pos != NULL;
|
||||
+ pos = ldap_next_entry (ld, pos))
|
||||
+ {
|
||||
+ if ((vals = ldap_get_values (ld, pos, "cn")) != NULL)
|
||||
+ {
|
||||
+ if (vals[0] != NULL)
|
||||
+ {
|
||||
+ globalLdap->memberUid = (char **)
|
||||
+ realloc (globalLdap->memberUid,
|
||||
+ sizeof(char*)*((num_tokens+1)*4));
|
||||
+ globalLdap->memberUid[num_tokens] = strdup(vals[0]);
|
||||
+ num_tokens++;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ globalLdap->memberUid[num_tokens] = NULL;
|
||||
+}
|
||||
+
|
||||
int
|
||||
groupExists (LDAP * ld, int cgid)
|
||||
{
|
||||
diff -up cpu-1.4.3/src/plugins/ldap/commandline.c.supp-groups cpu-1.4.3/src/plugins/ldap/commandline.c
|
||||
--- cpu-1.4.3/src/plugins/ldap/commandline.c.supp-groups 2010-11-07 20:45:35.000000000 -0700
|
||||
+++ cpu-1.4.3/src/plugins/ldap/commandline.c 2010-11-07 20:45:20.000000000 -0700
|
||||
@@ -175,15 +175,20 @@
|
||||
if (isalnum ((int)optarg[0]))
|
||||
gtemp = strdup (optarg);
|
||||
if (gtemp == NULL)
|
||||
- return -1;
|
||||
- while (gtemp != NULL && *gtemp)
|
||||
- {
|
||||
+ {
|
||||
globalLdap->memberUid =
|
||||
(char **) realloc (globalLdap->memberUid,
|
||||
sizeof(char*)*((num_tokens+1)*4));
|
||||
- globalLdap->memberUid[num_tokens] = getToken(>emp,",");
|
||||
- num_tokens++;
|
||||
- }
|
||||
+ }
|
||||
+ else
|
||||
+ while (gtemp != NULL && *gtemp)
|
||||
+ {
|
||||
+ globalLdap->memberUid =
|
||||
+ (char **) realloc (globalLdap->memberUid,
|
||||
+ sizeof(char*)*((num_tokens+1)*4));
|
||||
+ globalLdap->memberUid[num_tokens] = getToken(>emp,",");
|
||||
+ num_tokens++;
|
||||
+ }
|
||||
globalLdap->memberUid[num_tokens] = NULL;
|
||||
break;
|
||||
}
|
BIN
cpu-1.4.3.tar.bz2
(Stored with Git LFS)
Normal file
BIN
cpu-1.4.3.tar.bz2
(Stored with Git LFS)
Normal file
Binary file not shown.
115
cpu.spec
Normal file
115
cpu.spec
Normal file
@ -0,0 +1,115 @@
|
||||
# $Id: cpu.spec,v 1.1 2016/02/04 12:17:43 vip-ire Exp $
|
||||
|
||||
Summary: Pluggable utility to administer authentication data
|
||||
Name: cpu
|
||||
Version: 1.4.3
|
||||
Release: 14%{?dist}
|
||||
License: GPL
|
||||
Group: System Environment/Base
|
||||
Source: cpu-1.4.3.tar.bz2
|
||||
Patch0: cpu-1.4.3-doc_install.patch
|
||||
Patch1: cpu-1.4.3-rhel5.patch
|
||||
Patch2: cpu-1.4.3-md5crypt.patch
|
||||
Patch3: cpu-1.4.3-read.patch
|
||||
Patch4: cpu-1.4.3-fix-cn.patch
|
||||
Patch5: cpu-1.4.3-empty-attr.patch
|
||||
Patch6: cpu-1.4.3-mod-delete.patch
|
||||
Patch7: cpu-1.4.3-supp-groups.patch
|
||||
Patch8: cpu-1.4.3-gid-not-supp.patch
|
||||
Patch9: cpu-1.4.3-rhel6.patch
|
||||
Prefix: %{_prefix}
|
||||
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
|
||||
BuildRequires: openldap-devel
|
||||
|
||||
%description
|
||||
CPU is a utility consisting of a set of plugins that allow an administrator to
|
||||
administer a wide range of different authentication backends. Current plugins
|
||||
include support for LDAP and a partially completed flat file plugin.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
|
||||
%build
|
||||
CFLAGS="%{?cflags:%{cflags}}%{!?cflags:$RPM_OPT_FLAGS}"
|
||||
CXXFLAGS="%{?cxxflags:%{cxxflags}}%{!?cflags:$RPM_OPT_FLAGS}"
|
||||
export CFLAGS CXXFLAGS
|
||||
|
||||
%configure %{?acflags}
|
||||
%{__make} %{?mflags}
|
||||
|
||||
%install
|
||||
%{__make} install DESTDIR=$RPM_BUILD_ROOT %{?mflags_install}
|
||||
rm $RPM_BUILD_ROOT/usr/share/cpu.conf.doc
|
||||
rm $RPM_BUILD_ROOT/usr/share/test.ldif
|
||||
|
||||
%clean
|
||||
test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%files
|
||||
%defattr(-, root, root)
|
||||
%doc README INSTALL COPYING TODO AUTHORS NEWS ChangeLog doc
|
||||
%config %attr(0600, root,root) /etc/cpu.conf
|
||||
%{_libdir}/*
|
||||
/usr/sbin/cpu
|
||||
%doc /usr/share/man/man5/*
|
||||
%doc /usr/share/man/man8/*
|
||||
|
||||
%changelog
|
||||
* Wed Jul 12 2023 BogusDateBot
|
||||
- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday,
|
||||
by assuming the date is correct and changing the weekday.
|
||||
|
||||
* Fri Feb 1 2013 Shad L. Lords <slords@mail.com> 1.4.3-14.sme
|
||||
- Param fix so build on rhel6 works [SME: 7271]
|
||||
|
||||
* Sun Nov 7 2010 Shad L. Lords <slords@mail.com> 1.4.3-13.sme
|
||||
- user gid shouldn't be part of supplemental groups [SME: 6353]
|
||||
|
||||
* Sun Nov 7 2010 Shad L. Lords <slords@mail.com> 1.4.3-12.sme
|
||||
- Retrieve supplimential groups if not specified [SME: 6347]
|
||||
- Fix memory leak introduced in revision 9 [SME: 6342]
|
||||
|
||||
* Sun Nov 7 2010 Shad L. Lords <slords@mail.com> 1.4.3-11.sme
|
||||
- Treat null attribs in extra file like empty string [SME: 6342]
|
||||
|
||||
* Sat Nov 6 2010 Shad L. Lords <slords@mail.com> 1.4.3-10.sme
|
||||
- Object might not exist yet which isn't an error [SME: 6342]
|
||||
|
||||
* Fri Nov 5 2010 Shad L. Lords <slords@mail.com> 1.4.3-9.sme
|
||||
- Check for attribute before deleting [SME: 6342]
|
||||
|
||||
* Fri Nov 5 2010 Shad L. Lords <slords@mail.com> 1.4.3-8.sme
|
||||
- If empty value is passed in assume that means delete [SME: 6342]
|
||||
|
||||
* Fri Nov 5 2010 Shad L. Lords <slords@mail.com> 1.4.3-7.sme
|
||||
- Ignore attributes that have empty attr [SME: 6341]
|
||||
|
||||
* Fri Nov 5 2010 Shad L. Lords <slords@mail.com> 1.4.3-6.sme
|
||||
- Use gecos for cn if available, also modify cn if possible [SME: 6338]
|
||||
|
||||
* Fri Aug 03 2007 Charlie Brady <charlie_brady@mitel.com> 1.4.3-5.sme
|
||||
- Read LDIF files until eof, rather than use stat size. Allows
|
||||
read from, e.g. /dev/stdin.
|
||||
|
||||
* Fri Aug 03 2007 Charlie Brady <charlie_brady@mitel.com> 1.4.3-4.sme
|
||||
- Add md5crypt support (from sourceforge).
|
||||
|
||||
* Tue Jul 24 2007 Charlie Brady <charlie_brady@mitel.com> 1.4.3-3.sme
|
||||
- Portability fixes to allow building on RHEL5/CentOS5.
|
||||
|
||||
* Wed Sep 27 2006 Charlie Brady <charlie_brady@mitel.com> 1.4.3-2.sme
|
||||
- Update file list, and remove world read from cpu.conf.
|
||||
|
||||
* Tue Sep 26 2006 Charlie Brady <charlieb@e-smith.com>
|
||||
- Initial
|
||||
|
Loading…
Reference in New Issue
Block a user