summaryrefslogtreecommitdiffstats
path: root/zarb-ml/mageia-dev/attachments/20120615/417e09d6
diff options
context:
space:
mode:
Diffstat (limited to 'zarb-ml/mageia-dev/attachments/20120615/417e09d6')
-rw-r--r--zarb-ml/mageia-dev/attachments/20120615/417e09d6/attachment-0001.obj80
-rw-r--r--zarb-ml/mageia-dev/attachments/20120615/417e09d6/attachment.obj80
2 files changed, 160 insertions, 0 deletions
diff --git a/zarb-ml/mageia-dev/attachments/20120615/417e09d6/attachment-0001.obj b/zarb-ml/mageia-dev/attachments/20120615/417e09d6/attachment-0001.obj
new file mode 100644
index 000000000..e6c478a4a
--- /dev/null
+++ b/zarb-ml/mageia-dev/attachments/20120615/417e09d6/attachment-0001.obj
@@ -0,0 +1,80 @@
+diff -p -up rpm-4.10.0/build/parsePrep.c.2006 rpm-4.10.0/build/parsePrep.c
+--- rpm-4.10.0/build/parsePrep.c.2006 2012-05-22 10:53:51.000000000 +0000
++++ rpm-4.10.0/build/parsePrep.c 2012-06-15 09:17:31.945151263 +0000
+@@ -138,7 +138,10 @@ static char *doUntar(rpmSpec spec, uint3
+ char *fn = NULL;
+ char *buf = NULL;
+ char *tar = NULL;
+- const char *taropts = ((rpmIsVerbose() && !quietly) ? "-xvvf" : "-xf");
++ char taropts[8];
++ char *t;
++ char *rubygemopts = NULL;
++ int rubygem = 0;
+ struct Source *sp;
+ rpmCompressedMagic compressed = COMPRESSED_NOT;
+
+@@ -158,6 +161,25 @@ static char *doUntar(rpmSpec spec, uint3
+
+ fn = rpmGetPath("%{_sourcedir}/", sp->source, NULL);
+
++ t = strrchr(sp->source, '.');
++ if(t && !strcasecmp(t, ".gem"))
++ rubygem = 1;
++
++ t = stpcpy(taropts, "-x");
++ if(rpmIsVerbose() && !quietly)
++ t = stpcpy(t, "vv");
++ if(rubygem)
++ t = stpcpy(t, "m");
++ t = stpcpy(t, "f");
++
++ if (rubygem) {
++ rasprintf(&rubygemopts,
++ "\n"
++ "if [ -f data.tar.gz ]; then\n"
++ " tar %s data.tar.gz\n"
++ "fi", taropts);
++ }
++
+ /* XXX On non-build parse's, file cannot be stat'd or read */
+ if (!(spec->flags & RPMSPEC_FORCE) && (rpmFileIsCompressed(fn, &compressed) || checkOwners(fn))) {
+ goto exit;
+@@ -204,7 +226,7 @@ static char *doUntar(rpmSpec spec, uint3
+ "STATUS=$?\n"
+ "if [ $STATUS -ne 0 ]; then\n"
+ " exit $STATUS\n"
+- "fi", zipper, fn, tar, taropts);
++ "fi%s", zipper, fn, tar, taropts, rubygem ? rubygemopts : "");
+ } else {
+ rasprintf(&buf, "%s '%s'\n"
+ "STATUS=$?\n"
+@@ -214,7 +236,7 @@ static char *doUntar(rpmSpec spec, uint3
+ }
+ free(zipper);
+ } else {
+- rasprintf(&buf, "%s %s %s", tar, taropts, fn);
++ rasprintf(&buf, "%s %s %s%s", tar, taropts, fn, rubygem ? rubygemopts : "");
+ }
+
+ exit:
+@@ -316,6 +338,20 @@ static int doSetupMacro(rpmSpec spec, co
+ free(buf);
+ }
+
++ /* check if source is a ruby gem */
++ { struct Source *sp;
++ for (sp = spec->sources; sp != NULL; sp = sp->next) {
++ if ((sp->flags & RPMBUILD_ISSOURCE) && (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) {
+ buf = rpmExpand("%{__mkdir_p} ", spec->buildSubdir, "\n", \ No newline at end of file
diff --git a/zarb-ml/mageia-dev/attachments/20120615/417e09d6/attachment.obj b/zarb-ml/mageia-dev/attachments/20120615/417e09d6/attachment.obj
new file mode 100644
index 000000000..e6c478a4a
--- /dev/null
+++ b/zarb-ml/mageia-dev/attachments/20120615/417e09d6/attachment.obj
@@ -0,0 +1,80 @@
+diff -p -up rpm-4.10.0/build/parsePrep.c.2006 rpm-4.10.0/build/parsePrep.c
+--- rpm-4.10.0/build/parsePrep.c.2006 2012-05-22 10:53:51.000000000 +0000
++++ rpm-4.10.0/build/parsePrep.c 2012-06-15 09:17:31.945151263 +0000
+@@ -138,7 +138,10 @@ static char *doUntar(rpmSpec spec, uint3
+ char *fn = NULL;
+ char *buf = NULL;
+ char *tar = NULL;
+- const char *taropts = ((rpmIsVerbose() && !quietly) ? "-xvvf" : "-xf");
++ char taropts[8];
++ char *t;
++ char *rubygemopts = NULL;
++ int rubygem = 0;
+ struct Source *sp;
+ rpmCompressedMagic compressed = COMPRESSED_NOT;
+
+@@ -158,6 +161,25 @@ static char *doUntar(rpmSpec spec, uint3
+
+ fn = rpmGetPath("%{_sourcedir}/", sp->source, NULL);
+
++ t = strrchr(sp->source, '.');
++ if(t && !strcasecmp(t, ".gem"))
++ rubygem = 1;
++
++ t = stpcpy(taropts, "-x");
++ if(rpmIsVerbose() && !quietly)
++ t = stpcpy(t, "vv");
++ if(rubygem)
++ t = stpcpy(t, "m");
++ t = stpcpy(t, "f");
++
++ if (rubygem) {
++ rasprintf(&rubygemopts,
++ "\n"
++ "if [ -f data.tar.gz ]; then\n"
++ " tar %s data.tar.gz\n"
++ "fi", taropts);
++ }
++
+ /* XXX On non-build parse's, file cannot be stat'd or read */
+ if (!(spec->flags & RPMSPEC_FORCE) && (rpmFileIsCompressed(fn, &compressed) || checkOwners(fn))) {
+ goto exit;
+@@ -204,7 +226,7 @@ static char *doUntar(rpmSpec spec, uint3
+ "STATUS=$?\n"
+ "if [ $STATUS -ne 0 ]; then\n"
+ " exit $STATUS\n"
+- "fi", zipper, fn, tar, taropts);
++ "fi%s", zipper, fn, tar, taropts, rubygem ? rubygemopts : "");
+ } else {
+ rasprintf(&buf, "%s '%s'\n"
+ "STATUS=$?\n"
+@@ -214,7 +236,7 @@ static char *doUntar(rpmSpec spec, uint3
+ }
+ free(zipper);
+ } else {
+- rasprintf(&buf, "%s %s %s", tar, taropts, fn);
++ rasprintf(&buf, "%s %s %s%s", tar, taropts, fn, rubygem ? rubygemopts : "");
+ }
+
+ exit:
+@@ -316,6 +338,20 @@ static int doSetupMacro(rpmSpec spec, co
+ free(buf);
+ }
+
++ /* check if source is a ruby gem */
++ { struct Source *sp;
++ for (sp = spec->sources; sp != NULL; sp = sp->next) {
++ if ((sp->flags & RPMBUILD_ISSOURCE) && (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) {
+ buf = rpmExpand("%{__mkdir_p} ", spec->buildSubdir, "\n", \ No newline at end of file