Date: Tue, 09 Mar 2004 14:44:26 -0500 From: "Shaun T. Erickson" <ste@ste-land.com> To: Alexander Haderer <alexander.haderer@charite.de> Cc: freebsd-questions@freebsd.org Subject: Re: How do I add a local patch to a port? Message-ID: <404E1E9A.7030101@ste-land.com> In-Reply-To: <5.2.0.9.1.20040309195409.01a90d80@postamt1.charite.de> References: <5.2.0.9.1.20040309192650.01ad49f0@postamt1.charite.de> <404DFE56.6030204@ste-land.com> <404DFE56.6030204@ste-land.com> <5.2.0.9.1.20040309192650.01ad49f0@postamt1.charite.de> <5.2.0.9.1.20040309195409.01a90d80@postamt1.charite.de>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?404E1E9A.7030101>