Author: branden
Date: 2005-03-10 02:25:37 -0500 (Thu, 10 Mar 2005)
New Revision: 30

Modified:
   trunk/debian/rules
Log:
Add apply-patches and revert-patches targets.


Modified: trunk/debian/rules
===================================================================
--- trunk/debian/rules  2005-03-10 06:31:15 UTC (rev 29)
+++ trunk/debian/rules  2005-03-10 07:25:37 UTC (rev 30)
@@ -144,6 +144,51 @@
          && test -d $(SOURCE_NAME)-$(UPSTREAM_VERSION) \
          && tar --exclude=debian --exclude=debian/* -cf - 
$(SOURCE_NAME)-$(UPSTREAM_VERSION) | gzip -9 
>$(SOURCE_NAME)_$(UPSTREAM_VERSION).orig.tar.gz )
 
-.PHONY: build clean make-orig-tar-gz prune-upstream-tree
+# Apply all patches in debian/patches to the source tree.  This must be done
+# *BEFORE* creating the Debian source package, so that all patches are 
reflected
+# in the upstream part of the source tree when the .diff.gz file is generated.
+# This is in contrast to prior xfree86 packaging, in which patches were applied
+# at package build time.
+apply-patches:
+       @if [ "$$(echo debian/patches/*.diff)" != "debian/patches/*.diff" ]; 
then \
+           env LC_COLLATE=C ls -1 debian/patches/*.diff | while IFS="" read 
PATCH; do \
+               echo "Applying patch $$PATCH." >&2; \
+               if ! PATCH_OUTPUT=$$(patch --dry-run --fuzz=0 --strip=0 
<"$$PATCH"); then \
+                   echo "Patch $$PATCH will fail to apply." >&2; \
+                   exit 1; \
+               fi; \
+               if echo "$$PATCH_OUTPUT" | grep -Ei 'Hunk.*succeeded 
at.*(fuzz|offset)'; then \
+                   echo "Patch $$PATCH will fail to apply cleanly." >&2; \
+                   exit 1; \
+               fi; \
+               patch --fuzz=0 --strip=0 <"$$PATCH"; \
+           done; \
+           echo "Done applying patches." >&2; \
+       else \
+           echo "No patches to apply; debian/patches empty." >&2; \
+       fi
 
+# Revert all patches in debian/patches from the source tree.
+revert-patches:
+       @if [ "$$(echo debian/patches/*.diff)" != "debian/patches/*.diff" ]; 
then \
+           env LC_COLLATE=C ls -1r debian/patches/*.diff | while IFS="" read 
PATCH; do \
+               echo "Reverting patch $$PATCH." >&2; \
+               if ! PATCH_OUTPUT=$$(patch --dry-run --reverse --fuzz=0 
--strip=0 <"$$PATCH"); then \
+                   echo "Patch $$PATCH will fail to revert." >&2; \
+                   exit 1; \
+               fi; \
+               if echo "$$PATCH_OUTPUT" | grep -Ei 'Hunk.*succeeded 
at.*(fuzz|offset)'; then \
+                   echo "Patch $$PATCH will fail to revert cleanly." >&2; \
+                   exit 1; \
+               fi; \
+               patch --reverse --fuzz=0 --strip=0 <"$$PATCH"; \
+           done; \
+           echo "Done reverting patches." >&2; \
+       else \
+           echo "No patches to revert; debian/patches empty." >&2; \
+       fi
+
+.PHONY: apply-patches build clean make-orig-tar-gz prune-upstream-tree \
+        revert-patches
+
 # vim:set ai noet sts=8 sw=8 tw=0:


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to