RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] 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++; /[EMAIL PROTECTED]@*/ *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[]) @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org