]> TLD Linux GIT Repositories - packages/rpm.git/blobdiff - rpm-ruby-gem-build.patch
- rpm.org RPM, merged from PLD
[packages/rpm.git] / rpm-ruby-gem-build.patch
diff --git a/rpm-ruby-gem-build.patch b/rpm-ruby-gem-build.patch
deleted file mode 100644 (file)
index a0c2006..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-diff -urpa rpm-4.5.orig/build/parsePrep.c rpm-4.5/build/parsePrep.c
---- rpm-4.5.orig/build/parsePrep.c     2007-11-08 00:26:48.000000000 +0000
-+++ rpm-4.5/build/parsePrep.c  2018-02-23 11:51:54.161446282 +0000
-@@ -189,11 +189,13 @@ static const char *doUntar(Spec spec, in
- {
-     const char *fn, *Lurlfn;
-     static char buf[BUFSIZ];
--    char *taropts;
-+    char taropts[8];
-     char *t = NULL;
-     struct Source *sp;
-     rpmCompressedMagic compressed = COMPRESSED_NOT;
-     int urltype;
-+    const char *tar;
-+    int rubygem = 0;
-     for (sp = spec->sources; sp != NULL; sp = sp->next) {
-       if ((sp->flags & RPMFILE_SOURCE) && (sp->num == c)) {
-@@ -205,8 +207,18 @@ static const char *doUntar(Spec spec, in
-       return NULL;
-     }
-+    t = strrchr(sp->source, '.');
-+    if(t && !strcasecmp(t, ".gem"))
-+      rubygem = 1;
-+
-+    t = stpcpy(taropts, "-x");
-     /*@-internalglobs@*/ /* FIX: shrug */
--    taropts = ((rpmIsVerbose() && !quietly) ? "-xvvf" : "-xf");
-+    if(rpmIsVerbose() && !quietly)
-+      t = stpcpy(t, "vv");
-+    if(rubygem)
-+      t = stpcpy(t, "m");
-+
-+    t = stpcpy(t, "f");
-     /*@=internalglobs@*/
-     Lurlfn = rpmGenPath(NULL, "%{_sourcedir}/", sp->source);
-@@ -233,6 +245,12 @@ static const char *doUntar(Spec spec, in
-       /*@notreached@*/ break;
-     }
-+    tar = rpmGetPath("%{?__tar}", NULL);
-+    if (!(tar && *tar != '\0')) {
-+      tar = _free(tar);
-+      tar = xstrdup("tar");
-+    }
-+
-     if (compressed != COMPRESSED_NOT) {
-       const char *zipper;
-       int needtar = 1;
-@@ -267,8 +285,13 @@ static const char *doUntar(Spec spec, in
-       *t++ = '\'';
-       t = stpcpy(t, fn);
-       *t++ = '\'';
--      if (needtar)
--          t = stpcpy( stpcpy( stpcpy(t, " | tar "), taropts), " -");
-+      if (needtar) {
-+          t = stpcpy(t, " | ");
-+          t = stpcpy(t, tar);
-+          t = stpcpy(t, " ");
-+          t = stpcpy(t, taropts);
-+          t = stpcpy(t, " -");
-+      }
-       t = stpcpy(t,
-               "\n"
-               "STATUS=$?\n"
-@@ -277,11 +300,24 @@ static const char *doUntar(Spec spec, in
-               "fi");
-     } else {
-       buf[0] = '\0';
--      t = stpcpy( stpcpy(buf, "tar "), taropts);
-+      t = stpcpy(buf, tar);
-+      t = stpcpy(t, " ");
-+      t = stpcpy(t, taropts);
-       *t++ = ' ';
-       t = stpcpy(t, fn);
-+      if(rubygem) {
-+          t = stpcpy(t,
-+                  "\n"
-+                  "if [ -f data.tar.gz ]; then\n"
-+                  "  tar ");
-+            t = stpcpy(t, taropts);
-+          t = stpcpy(t,
-+                  " data.tar.gz\n"
-+                  "fi");
-+      }
-     }
-+    tar = _free(tar);
-     Lurlfn = _free(Lurlfn);
-     return buf;
- }
-@@ -390,6 +426,20 @@ static int doSetupMacro(Spec spec, char
-       appendLineStringBuf(spec->prep, buf);
-     }
-+    /* check if source is a ruby gem */
-+    {   struct Source *sp;
-+      for (sp = spec->sources; sp != NULL; sp = sp->next) {
-+          if ((sp->flags & RPMFILE_SOURCE) && (sp->num == 0)) {
-+              break;
-+          }
-+      }
-+      if (sp != NULL) {
-+          char *t = strrchr(sp->source, '.');
-+          if(t && !strcasecmp(t, ".gem"))
-+              createDir = 1;
-+      }
-+    }
-+
-     /* if necessary, create and cd into the proper dir */
-     if (createDir) {
-       sprintf(buf, MKDIR_P " '%s'\ncd '%s'",