As discussed in this subthread:
http://cygwin.com/ml/cygwin-apps/2010-07/msg00042.html
I think cygport needs a mechanism where you can override the
default_excludes used when cygport creates the .src.patch. Right now,
you can ADD files to the exclusion list using DIFF_EXCLUDES, but you
can't remove any patterns that are already in that list.
So, I tried to create a generic facility where you could, for instance, do:
DIFF_NO_EXCLUDES="configure Makefile.in *.m4"
and then cygport would ensure that, even if it ordinarily would exclude
a file from the diff, if that file name (or pattern) appears in
$DIFF_NO_EXCLUDES then it would avoid doing so. But that got to be
really hard -- and prone to error, it seemed to me -- what with all the
word expansion and shell metacharacter worries that could show up in
$DIFF_NO_EXCLUDES. (Plus, it would have slowed down ALL cygports in a
pretty big way during __pkg_diff, for the benefit of only a few.)
So, instead, I whipped up a different patch to cygport which only tells
cygport to avoid automatically adding the autoconf, automake, and
aclocal-generated files to the diff excludes list. I think this is the
most common instance where something like this is needed -- at least, in
my experience with my packages:
(a) I run autoreconf manually, or use a specialized bootstrap
procedure, and
(b) I want to ship some or all of the results of that procedure,
so that during the build process the bootstrapping is not
(re)done.
In the past, what I've done is simply to have an empty (or missing)
.src.patch, override src_compile() to not call cygautoreconf or any
other bootstrap, and instead, provide a custom
PATCH_URI="normal-.src.patch-like.path \
results-of-bootstrap.patch"
But that quickly becomes rather awkward to maintain those two patches.
I believe the attached patch would make this particular corner case a
little less burdensome (and, in particular, would be useful to JonY
currently packaging mingw64-gcc).
To use it, add this to your cygport:
RESTRICT+=" autoreconf-diff-excludes"
--
Chuck
diff --git a/lib/pkg_pkg.cygpart b/lib/pkg_pkg.cygpart
index 64a58a9..1708b0e 100644
--- a/lib/pkg_pkg.cygpart
+++ b/lib/pkg_pkg.cygpart
@@ -167,6 +167,9 @@ __pkg_diff() {
;;
esac
+ if ! defined _CYGPORT_RESTRICT_autoreconf_diff_excludes_
+ then
+
# exclude aclocal.m4 if generated from aclocal
if [ -f ${S}/aclocal.m4 ]
then
@@ -191,6 +194,8 @@ __pkg_diff() {
default_excludes+=" configure";
fi
+ fi
+
# gtk-doc
if [ -f ${S}/gtk-doc.make -a "${PN}" != "gtk-doc" ]
then
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple