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