RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES TODO rpm/lib/ psm.c rpmlib.h

From: Jeff Johnson <jbj@rpm5.org>
Date: Thu 06 Dec 2007 - 22:21:06 CET
Message-Id: <20071206212106.A4E6F348477@rpm5.org>
  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:   06-Dec-2007 22:21:06
  Branch: HEAD                             Handle: 2007120621210501

  Modified files:
    rpm                     CHANGES TODO
    rpm/lib                 psm.c rpmlib.h

  Log:
    - jbj: macro expand all scriptlet bodies before execution. W00t!

  Summary:
    Revision    Changes     Path
    1.1952      +1  -0      rpm/CHANGES
    1.41        +2  -0      rpm/TODO
    2.275       +8  -3      rpm/lib/psm.c
    2.456       +6  -1      rpm/lib/rpmlib.h
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1951 -r1.1952 CHANGES
  --- rpm/CHANGES	6 Dec 2007 20:49:16 -0000	1.1951
  +++ rpm/CHANGES	6 Dec 2007 21:21:05 -0000	1.1952
  @@ -1,4 +1,5 @@
   5.0a4 -> 5.0b1:
  +    - jbj: macro expand all scriptlet bodies before execution. W00t!
       - jbj: populate RPMTAG_BUILDMACROS. implementation took 6+ years ...
       - jbj: add %sanitycheck scriptlet to packages. more wiring needed todo++.
       - jbj: add %track section/scriptlet. Hmmm, not in *.rpm content yet, todo++.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/TODO
  ============================================================================
  $ cvs diff -u -r1.40 -r1.41 TODO
  --- rpm/TODO	6 Dec 2007 20:22:15 -0000	1.40
  +++ rpm/TODO	6 Dec 2007 21:21:05 -0000	1.41
  @@ -103,6 +103,7 @@
       - rse: NEWS polishing
       - jbj: fix openssl RSA signature verification.
       - jbj: drill Requires: sanitycheck(N) = E:V-R runtime probe.
  +    - jbj: write up added featlets/bugtures in %docdir notes.
   
     RPM 5.1 ROADMAP ISSUES
     ----------------------
  @@ -118,3 +119,4 @@
       - jbj: add per-implementation symmetric ciphers.
       - jbj: permit per-file encryption with password caching through keyutils.
       - jbj: generalize the Leopard XAR format to ar (as in *.deb), tar, and cpio.
  +    - jbj: eliminate the oddball *.src.rpm paths, nuke rpmInstallSourcePackage.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/psm.c
  ============================================================================
  $ cvs diff -u -r2.274 -r2.275 psm.c
  --- rpm/lib/psm.c	6 Dec 2007 14:47:49 -0000	2.274
  +++ rpm/lib/psm.c	6 Dec 2007 21:21:06 -0000	2.275
  @@ -667,6 +667,7 @@
       FD_t out;
       rpmRC rc = RPMRC_FAIL;	/* assume failure */
       const char * NVRA;
  +    const char * body = NULL;
       int * ssp = NULL;
       int xx;
       int i;
  @@ -679,6 +680,9 @@
       if (progArgv == NULL && script == NULL)
   	return RPMRC_OK;
   
  +    /* Macro expand all scriptlets. */
  +    body = rpmExpand(script, NULL);
  +
       he->tag = RPMTAG_NVRA;
       xx = headerGet(h, he, 0);
   assert(he->p.str != NULL);
  @@ -690,7 +694,7 @@
   		D_("%s: %s(%s) running <lua> scriptlet.\n"),
   		psm->stepName, tag2sln(psm->scriptTag), NVRA);
   	rc = runLuaScript(psm, h, sln, progArgc, progArgv,
  -			    script, arg1, arg2);
  +			    body, arg1, arg2);
   #endif
   	goto exit;
       }
  @@ -773,10 +777,10 @@
   	    xx = Fwrite(set_x, sizeof(set_x[0]), sizeof(set_x)-1, fd);
   	}
   
  -	if (ldconfig_path && strstr(script, ldconfig_path) != NULL)
  +	if (ldconfig_path && strstr(body, ldconfig_path) != NULL)
   	    ldconfig_done = 1;
   
  -	xx = Fwrite(script, sizeof(script[0]), strlen(script), fd);
  +	xx = Fwrite(body, sizeof(body[0]), strlen(body), fd);
   	xx = Fclose(fd);
   
   	{   const char * sn = fn;
  @@ -965,6 +969,7 @@
   	fn = _free(fn);
       }
   
  +    body = _free(body);
       NVRA = _free(NVRA);
   
       return rc;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/rpmlib.h
  ============================================================================
  $ cvs diff -u -r2.455 -r2.456 rpmlib.h
  --- rpm/lib/rpmlib.h	4 Dec 2007 07:55:03 -0000	2.455
  +++ rpm/lib/rpmlib.h	6 Dec 2007 21:21:06 -0000	2.456
  @@ -160,6 +160,7 @@
   /** \ingroup rpmrc
    * Build and install arch/os table identifiers.
    * @deprecated Eliminate from API.
  + * @todo	Eliminate in rpm-5.1.
    */
   enum rpm_machtable_e {
       RPM_MACHTABLE_INSTARCH	= 0,	/*!< Install platform architecture. */
  @@ -212,7 +213,7 @@
   
   /** \ingroup rpmrc
    * @deprecated Use addMacro to set _target_* macros.
  - * @todo Eliminate from API.
  + * @todo	Eliminate in rpm-5.1.
    # @note Only used by build code.
    * @param archTable
    * @param osTable
  @@ -222,6 +223,7 @@
   	/*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/;
   
   /** \ingroup rpmrc
  + * @todo	Eliminate in rpm-5.1.
    * Destroy rpmrc arch/os compatibility tables.
    * @todo Eliminate from API.
    */
  @@ -250,6 +252,7 @@
   /**
    * Compare headers to determine which header is "newer".
    * @deprecated Use rpmdsCompare instead.
  + * @todo	Eliminate in rpm-5.1.
    * @param first		1st header
    * @param second	2nd header
    * @return		result of comparison
  @@ -288,6 +291,8 @@
   
   /**
    * Install source package.
  + * @deprecated	This routine needs to DIE! DIE! DIE!.
  + * @todo	Eliminate in rpm-5.1, insturment rpmtsRun() state machine instead.
    * @param ts		transaction set
    * @param _fd		file handle
    * @retval specFilePtr	address of spec file name (or NULL)
  @@ .
Received on Thu Dec 6 22:21:06 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.