Use case:
I'd like to deploy an Open Atrium platform (in Aegir, btw) with custom Features. Some of these Features require patches to modules included in the profile's makefile.

Problem:
So, I create a stub makefile, specifying a core, the Open Atrium profile, and the various other features I want. The problem arises when I need to apply a patch to a module included in the profile's makefile. I can't figure out a way to patch these modules. Obviously, if I specify the module in my stub makefile and apply the required patch to it, it gets dropped in sites/all/modules, but since Feeds is in profiles/openatrium/modules, that one takes precedence. I've tried every way I can think of to get drush make to apply these patches, or overwrite the modules entirely, but without any success.

Possible work-arounds:

  1. Write a script that runs the 'drush make' then applies the appropriate patches (ick!)
  2. Maintain a fork of Open Atrium, so I can specify the patches in the makefile (ugh!)
  3. Write a hook_enable() in my feature that rewrites the system table entry for the module(s) in question (yikes!)

Proposed solution:
Ideally, I'd be able to apply patches to modules included recursively:

projects[openatrium][type] = profile
projects[openatrium][feeds][patch][] = http://drupal.org/files/xyz.patch

Alternatively, being able to simply overwrite them would also work:

projects[openatrium][type] = profile
projects[openatrium][feeds][subdir] = "contrib"
projects[openatrium][feeds][version] = "1.0-beta11"
projects[openatrium][feeds][patch][] = http://drupal.org/files/xyz.patch

Comments

ergonlogic’s picture

Status: Active » Closed (won't fix)

Hmm, I see that module directory precedence changed in D7; from "sites/example.com/modules > profiles/example/modules > sites/all/modules" in D6 to "sites/example.com/modules > sites/all/modules > profiles/example/modules" in D7.

As such, I'm closing this issue, since it's moot in D7, and wouldn't be worth the effort only to support D6.