How do I add a local patch to a port?
Dancho Penev
dpenev at mnet.bg
Tue Mar 9 12:26:26 PST 2004
On Tue, Mar 09, 2004 at 02:44:26PM -0500, Shaun T. Erickson wrote:
>Date: Tue, 09 Mar 2004 14:44:26 -0500
>From: "Shaun T. Erickson" <ste at ste-land.com>
>To: Alexander Haderer <alexander.haderer at charite.de>
>Cc: freebsd-questions at freebsd.org
>Subject: Re: How do I add a local patch to a port?
>
>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?
Put the patch in security/cyrus-sasl2/files directory. Take a look in
port's Makefile where ${PATCHDIR} is set to different location.
>
> -ste
>
>_______________________________________________
>freebsd-questions at freebsd.org mailing list
>http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
--
Dancho Penev
GnuGP public key: http://www.mnet.bg/~dpenev/gnupg.key
Key fingerprint: E88D 8B7B 3EF6 E9C8 C5D2 7554 2AA8 C347 71A1 4277
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20040309/46e0deba/attachment.bin
More information about the freebsd-questions
mailing list