4

I was trying to google the method to install a patch file, but the results keep returning as "issues encountered while patching", which isn't what I am looking for.

I was wondering how to use drush to install a patch file?

More specifically, I'm currently encountering a Drupal for Facebook module issue, about the q variable.

One of the answers suggests installing a patch file. How do i install this patch file from the command line?

2
  • possible duplicate..
    – AjitS
    Aug 31, 2012 at 13:49
  • i am aware of that question. But there still isn't any direct answer on how to apply a patch file.
    – He Hui
    Aug 31, 2012 at 13:53

3 Answers 3

5

The instructions on how to apply a patch are given, for that module, on http://drupal.org/project/fb/git-instructions.

First off, git patches can be applied to a git repository you need to locally clone, which means you need to execute the following command:

git clone --recursive --branch master http://git.drupal.org/project/fb.git

Then you copy the patch in the fb directory created from the previous command, and execute the following one:

cd fb
git apply -v fb_stream.admin_.inc_.patch

Once the patch is applied, you delete it.

rm  fb_stream.admin_.inc_.patch

This assume the patch is applied to the development snapshot. If this is not the case, then somebody needs to provide a patch for the development snapshot.

Anyway, the patch doesn't apply. If you try applying it, you will get the following error:

Checking patch Users/johnrobens/Downloads/fb/fb_stream.admin.inc... error: Users/johnrobens/Downloads/fb/fb_stream.admin.inc: No such file or directory

You need to change the patch to the following one, to avoid that error.

--- fb_stream.admin.inc
+++ fb_stream.admin.inc
@@ -1,5 +1,6 @@
 <?php

+
 /**
  * Form callback for general settings.
  */
@@ -19,7 +20,8 @@
             '%user_name' => $from['name'],
             '%token' => $token,
           )));
-    } catch (Exception $e) {
+    }
+    catch (Exception $e) {
       fb_log_exception($e, t('Unable to query graph with fb_stream token.'));
       drupal_set_message(t('There was an error using the current access token, %token.  Consider generating a new token.', array(
             '%token' => $token,
@@ -29,7 +31,7 @@

   if (!empty($_REQUEST['code']) && empty($_POST)) {
     // Send user to this URL after token is generated.
-    $redirect_uri = url(request_path(), array(
+    $redirect_uri = url($_REQUEST['q'], array(
       'absolute' => TRUE,
       'query' => array(
         'client_id' => $_REQUEST['client_id'],
@@ -59,7 +61,7 @@
   );
   foreach (fb_get_all_apps() as $fb_app) {
     // Send user to this URL after token is generated.
-    $redirect_uri = url(request_path(), array(
+    $redirect_uri = url($_REQUEST['q'], array(
       'absolute' => TRUE,
       'query' => array(
         'client_id' => $fb_app->id,
@@ -92,7 +94,7 @@
       'client_id' => $app_id,
       'client_secret' => $fb_app->secret,
       'code' => $code,
-      'redirect_uri' => $redirect_uri,
+                  'redirect_uri' =>$redirect_uri,
     ),
       ));
   $http = drupal_http_request($path);

Even if you do that, you would get the error, "patch doesn't apply." I tried applying it to the development snapshot 7.x-3.x (the master branch for git).

2
  • is anything supposed to show up after "git apply -v [patchname.patch] ?
    – He Hui
    Aug 31, 2012 at 13:57
  • As far as I recall, git apply doesn't shown any message when it successfully applies the patch.
    – apaderno
    Aug 31, 2012 at 14:32
1

Here's really good explanation of applying patches with git. If you haven't got git installed there's some links to instructions for various different platforms here.

Beyond that, make sure you are patching the correct version of the code otherwise you may get errors when applying the patch.

Some more general info on git can be found in the Pro Git book.

3
  • Also, give the drush issue queue commands a try! drupal.org/project/drush_iq Aug 31, 2012 at 13:47
  • That's interesting, hadn't come across that before!
    – splatio
    Aug 31, 2012 at 13:48
  • @splatio how can you apply a patch to a module from a patch folder to the contrib module
    – jelly46
    Jul 21, 2016 at 13:27
0

Without details regarding your environment, patching details would be very difficult to give and would likely not be appropriate for drupal.stackexchange.com. Drupal has a bit of documentation though that my lead you in the right direction.

http://drupal.org/patch/apply

In the simplest form using patch patch -p1 < path/file.patch or if you use git git apply path/file.patch

2
  • 1
    i did try both; using git apply did not change anything. Using patch -p1< path/file.patch returns error, something about HUNK failing.
    – He Hui
    Aug 31, 2012 at 13:52
  • @Citricguy so if i place the patch in a patch file first to patch the module from the patch file is it patch -p1 < path/file.patch
    – jelly46
    Jul 21, 2016 at 15:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.