How do I add a local patch to a port?
Shaun T. Erickson
ste at ste-land.com
Tue Mar 9 11:44:29 PST 2004
Alexander Haderer wrote:
> Just another guess: Probably it makes a difference if the patchfile
> patches ./dir/tobepatched and dir/tobepatched. A brief look into other
> ports shows me that the latter is used. I don't know if it have to be
> this way or not.
Ok. I'm trying to patch
"/usr/ports/security/cyrus-sasl2-saslauthd/work/cyrus-sasl-2.1.17/saslauthd/auth_pam.c".
The patchfile is named "patch-aa" and is located in
"/usr/ports/security/cyrus-sasl2-saslauthd/files". Here is the contents
of the patchfile that works manually, when I cd to
"/usr/ports/security/cyrus-sasl2-saslauthd/work/cyrus-sasl-2.1.17" and
run "patch < /usr/ports/security/cyrus-sasl2-saslauthd/files/patch-aa":
Index: saslauthd/auth_pam.c
diff -u saslauthd/auth_pam.c.orig saslauthd/auth_pam.c
--- saslauthd/auth_pam.c.orig Sat May 31 13:00:24 2003
+++ saslauthd/auth_pam.c Tue Mar 9 11:53:44 2004
@@ -178,7 +178,7 @@
const char *login, /* I: plaintext authenticator */
const char *password, /* I: plaintext password */
const char *service, /* I: service name */
- const char *realm __attribute__((unused))
+ const char *realm
/* END PARAMETERS */
)
{
@@ -186,17 +186,25 @@
pam_appdata my_appdata; /* application specific data */
struct pam_conv my_conv; /* pam conversion data */
pam_handle_t *pamh; /* pointer to PAM handle */
+ char user[256];
int rc; /* return code holder */
/* END VARIABLES */
- my_appdata.login = login;
+ strlcpy(user, login, 256);
+
+ if (realm) {
+ strlcat(user, "@", 256);
+ strlcat(user, realm, 256);
+ }
+
+ my_appdata.login = user;
my_appdata.password = password;
my_appdata.pamh = NULL;
my_conv.conv = saslauthd_pam_conv;
my_conv.appdata_ptr = &my_appdata;
- rc = pam_start(service, login, &my_conv, &pamh);
+ rc = pam_start(service, user, &my_conv, &pamh);
if (rc != PAM_SUCCESS) {
syslog(LOG_DEBUG, "DEBUG: auth_pam: pam_start failed: %s",
pam_strerror(pamh, rc));
It all looks right to me, but when I do a "make clean" follwed by a
make, the file does not get patched. What am I doing wrong?
-ste
More information about the freebsd-questions
mailing list