diff --git a/superflore/generators/ebuild/ebuild.py b/superflore/generators/ebuild/ebuild.py index c0d12064..18ef7e58 100644 --- a/superflore/generators/ebuild/ebuild.py +++ b/superflore/generators/ebuild/ebuild.py @@ -232,15 +232,10 @@ def get_ebuild_text(self, distributor, license_text): # Patch source if needed. if self.has_patches: - # TODO(allenh1): explicitly list patches - ret += "\nsrc_prepare() {\n" - ret += " cd ${P}\n" - ret += " EPATCH_SOURCE=\"${FILESDIR}\"" - ret += " EPATCH_SUFFIX=\"patch\" \\\n" - ret += " EPATCH_FORCE=\"yes\" epatch\n" - if self.build_type in ['catkin', 'cmake']: - ret += " ros-cmake_src_prepare\n" - ret += "}\n" + ret += "\nPATCHES=(\n" + for patch in self.patches: + ret += " \"${{FILESDIR}}/{}\"\n".format(patch) + ret += ")\n" # source configuration if self.name == 'opencv3': diff --git a/superflore/generators/ebuild/gen_packages.py b/superflore/generators/ebuild/gen_packages.py index 3a5cefb3..18b99a1b 100644 --- a/superflore/generators/ebuild/gen_packages.py +++ b/superflore/generators/ebuild/gen_packages.py @@ -58,7 +58,7 @@ def regenerate_pkg(overlay, pkg, distro, preserve_existing=False): patches = None if os.path.exists(patch_path): patches = [ - f for f in glob.glob('%s/*.patch' % patch_path) + f for f in glob.glob('*.patch', root_dir=patch_path) ] if pkg not in pkg_names: raise RuntimeError("Unknown package '%s'" % (pkg)) diff --git a/tests/test_ebuild.py b/tests/test_ebuild.py index 36c732cd..9112ba77 100644 --- a/tests/test_ebuild.py +++ b/tests/test_ebuild.py @@ -160,19 +160,13 @@ def test_has_patches(self): ebuild = self.get_ebuild() ebuild.has_patches = True; got_text = ebuild.get_ebuild_text('Open Source Robotics Foundation', 'BSD') - self.assertTrue('EPATCH_SOURCE="${FILESDIR}"' in got_text) - self.assertTrue('EPATCH_SUFFIX="patch"' in got_text) - self.assertTrue('EPATCH_FORCE="yes"' in got_text) - self.assertTrue('epatch' in got_text) + self.assertTrue('PATCHES=(' in got_text) def test_lacks_patches(self): """Test Non-Patched Code Generation""" ebuild = self.get_ebuild() got_text = ebuild.get_ebuild_text('Open Source Robotics Foundation', 'BSD') - self.assertFalse('EPATCH_SOURCE="${FILESDIR}"' in got_text) - self.assertFalse('EPATCH_SUFFIX="patch"' in got_text) - self.assertFalse('EPATCH_FORCE="yes"' in got_text) - self.assertFalse('epatch' in got_text) + self.assertFalse('PATCHES=(' in got_text) def test_opencv3_filter_flags(self): """Test Filter Flags for OpenCV3"""