Add default %clean section unless overridden in spec (ticket #81)
authorPanu Matilainen <pmatilai@redhat.com>
Mon, 17 Aug 2009 08:22:16 +0000 (11:22 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Mon, 17 Aug 2009 08:22:16 +0000 (11:22 +0300)
- avoids silly clutter in every specfile in the regular case but permits
  overriding if needed for whatever reason
- it's a spec behavior change but mostly backwards compatible:
  existing specs will do whatever the %clean does, and if you need to avoid
  calling %clean for whatever reason just keep an empty %clean in the spec

build/parseSpec.c

index 8eca502..996c4d1 100644 (file)
@@ -555,6 +555,13 @@ int parseSpec(rpmts ts, const char *specFile, const char *rootDir,
        }
     }
 
+    if (spec->clean == NULL) {
+       char *body = rpmExpand("%{?buildroot: %{__rm} -rf %{buildroot}}", NULL);
+       spec->clean = newStringBuf();
+       appendLineStringBuf(spec->clean, body);
+       free(body);
+    }
+
     /* Check for description in each package and add arch and os */
   {
     char *platform = rpmExpand("%{_target_platform}", NULL);