RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
Module: rpm Date: 22-Jun-2007 14:58:11
Branch: HEAD Handle: 2007062213581100
Modified files:
rpm CHANGES macros.in
rpm/rpmio Makefile.am macro.c
Log:
- add patch macro, renamed to Xpatch until fully wired.
Summary:
Revision Changes Path
1.1391 +1 -0 rpm/CHANGES
1.163 +11 -1 rpm/macros.in
1.83 +1 -1 rpm/rpmio/Makefile.am
2.120 +7 -5 rpm/rpmio/macro.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1390 -r1.1391 CHANGES
--- rpm/CHANGES 22 Jun 2007 11:50:56 -0000 1.1390
+++ rpm/CHANGES 22 Jun 2007 12:58:11 -0000 1.1391
@@ -1,4 +1,5 @@
4.5 -> 5.0:
+ - jbj: add patch macro, renamed to Xpatch until fully wired.
- jbj: remove support for patch-2.1.
- rse: allow actually used tar(1) and patch(1) tools to be set via %__tar and %__patch
- rse: add support for patch(1)'s "-d" option to internal macro %patch
@@ .
patch -p0 <<'@@ .'
Index: rpm/macros.in
============================================================================
$ cvs diff -u -r1.162 -r1.163 macros.in
--- rpm/macros.in 20 Jun 2007 12:03:41 -0000 1.162
+++ rpm/macros.in 22 Jun 2007 12:58:11 -0000 1.163
@@ -1,7 +1,7 @@
#/*! \page config_macros Default configuration: @USRLIBRPM@/macros
# \verbatim
#
-# $Id: macros.in,v 1.162 2007/06/20 12:03:41 rse Exp $
+# $Id: macros.in,v 1.163 2007/06/22 12:58:11 jbj Exp $
#
# This is a global RPM configuration file. All changes made here will
# be lost when the rpm package is upgraded. Any per-system configuration
@@ -383,6 +383,16 @@
%_package_version 30005
#
+# The patch macro writes 1 line of shell code to (optionally) uncompress
+# a file and aplly using patch(1).
+#
+
+%Xpatch(b:p:P:REz:F:d:) \
+%define patch_file %{P:%{-P:%{-P*}}%{!-P:%%PATCH0}} \
+%define patch_suffix %{!-z:%{-b:-b --suffix %{-b*}}}%{!-b:%{-z:--suffix %{-z*}}}%{!-z:%{!-b: }}%{-z:%{-b:%{error:Can't specify both -z(%{-z*}) and -b(%{-b*})}}} \
+ %{uncompress:%patch_file} | %{__patch} %{-p:-p%{-p*}} %{-F:-F%{-F*}} %{-d:-d%{-d*}} %patch_suffix %{-R} %{-E}
+
+#
# Script gets packaged file list on input and buildroot as first parameter.
# Returns list of unpackaged files, i.e. files in $RPM_BUILD_ROOT not packaged.
#
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/Makefile.am
============================================================================
$ cvs diff -u -r1.82 -r1.83 Makefile.am
--- rpm/rpmio/Makefile.am 22 Jun 2007 02:05:03 -0000 1.82
+++ rpm/rpmio/Makefile.am 22 Jun 2007 12:58:11 -0000 1.83
@@ -78,7 +78,7 @@
tmacro_LDFLAGS = # @LDFLAGS_STATIC@
tmacro_LDADD = tmacro.o # librpmio.la $(top_builddir)/popt/libpopt.la
tmacro.o: macro.c
- $(COMPILE) -DDEBUG_MACROS -DEVAL_MACROS -o $@ -c $<
+ $(COMPILE) -DDEBUG_MACROS -o $@ -c $<
tput_SOURCES = tput.c
tput_LDFLAGS = @LDFLAGS_STATIC@
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/macro.c
============================================================================
$ cvs diff -u -r2.119 -r2.120 macro.c
--- rpm/rpmio/macro.c 22 Jun 2007 02:05:03 -0000 2.119
+++ rpm/rpmio/macro.c 22 Jun 2007 12:58:11 -0000 2.120
@@ -1170,9 +1170,7 @@
be++;
/*@=globs@*/
*be++ = '\0';
-#ifndef DEBUG_MACROS
(void) isCompressed(b, &compressed);
-#endif
switch(compressed) {
default:
case 0: /* COMPRESSED_NOT */
@@ -1190,6 +1188,9 @@
case 4: /* COMPRESSED_LZOP */
sprintf(be, "%%__lzop %s", b);
break;
+ case 5: /* COMPRESSED_LZMA */
+ sprintf(be, "%%__lzma %s", b);
+ break;
}
b = be;
} else if (STREQ("S", f, fn)) {
@@ -2459,10 +2460,11 @@
}
rpmInitMacros(NULL, rpmMacrofiles);
+ /* XXX getopt(3) also used for parametrized macros, expect scwewiness. */
for ( ; optind < argc; optind++) {
const char *val;
- val = rpmGetPath(argv[optind], NULL);
+ val = rpmExpand(argv[optind], NULL);
if (val) {
fprintf(stdout, "%s:\t%s\n", argv[optind], val);
val = _free(val);
@@ -2474,8 +2476,8 @@
#else /* !EVAL_MACROS */
-char *rpmMacrofiles = "../macros:./testmacros";
-char *testfile = "./test";
+const char *rpmMacrofiles = "../macros:./testmacros";
+const char *testfile = "./test";
int
main(int argc, char *argv[])
@@ .
Received on Fri Jun 22 14:58:12 2007