302b172aca
+ ZOULARISBASE is gone - just use PREFIX to find bmake + WRKDIR contains the name of the work directory, so find this out from pkgsrc + remove getcwd() calls, and use WRKDIR to find the place where the various informational files are placed + retain the ability to set the working directory from the command-line, but it is almost useless these days Bump pkg revision to 2.
73 lines
2.7 KiB
Text
73 lines
2.7 KiB
Text
$NetBSD: patch-ac,v 1.2 2004/11/05 16:44:46 agc Exp $
|
|
|
|
--- gensolpkg.c.in.orig Sat May 5 15:44:31 2001
|
|
+++ gensolpkg.c.in Fri Nov 5 16:19:24 2004
|
|
@@ -79,7 +79,7 @@
|
|
static char comment[256 + 1]; /* one line descr of pkg */
|
|
|
|
static char prefix[MAXPATHLEN]; /* current prefix */
|
|
-static char *workdir; /* name of working directory */
|
|
+static char workdir[MAXPATHLEN]; /* name of working directory */
|
|
static char *category; /* category of package - default "application" */
|
|
static int transform; /* transform the package - default "disabled" */
|
|
|
|
@@ -357,9 +357,9 @@
|
|
}
|
|
(void) fprintf(fp, "!PKG=%s\n", pkg);
|
|
(void) fprintf(fp, "!PREFIX=%s\n", prefix);
|
|
- (void) fprintf(fp, "i pkginfo=%s/%s\n", getcwd(buf, sizeof(buf)), pkginfofile);
|
|
- (void) fprintf(fp, "i version=%s/%s\n", getcwd(buf, sizeof(buf)), versionfile);
|
|
- (void) fprintf(fp, "i depend=%s/%s\n", getcwd(buf, sizeof(buf)), dependfile);
|
|
+ (void) fprintf(fp, "i pkginfo=%s\n", pkginfofile);
|
|
+ (void) fprintf(fp, "i version=%s\n", versionfile);
|
|
+ (void) fprintf(fp, "i depend=%s\n", dependfile);
|
|
for (linec = 1 ; fgets(buf, sizeof(buf), plist) != (char *) NULL ; linec++) {
|
|
/* trim leading whitespace from PLIST entries */
|
|
for (cp = buf ; isspace(*cp) ; cp++) {
|
|
@@ -463,7 +463,7 @@
|
|
(void) fputc('\n', fp2);
|
|
}
|
|
(void) fclose(fp2);
|
|
- (void) fprintf(fp, "i postinstall=%s/%s/.postinstall\n", getcwd(buf, sizeof(buf)), workdir);
|
|
+ (void) fprintf(fp, "i postinstall=%s/.postinstall\n", workdir);
|
|
}
|
|
if (remove.s_c > 0) {
|
|
(void) snprintf(f, sizeof(f), "%s/.postremove", workdir);
|
|
@@ -493,7 +493,7 @@
|
|
(void) fputc('\n', fp2);
|
|
}
|
|
(void) fclose(fp2);
|
|
- (void) fprintf(fp, "i postremove=%s/%s/.postremove\n", getcwd(buf, sizeof(buf)), workdir);
|
|
+ (void) fprintf(fp, "i postremove=%s/.postremove\n", workdir);
|
|
}
|
|
(void) fclose(fp);
|
|
(void) fclose(plist);
|
|
@@ -572,13 +572,17 @@
|
|
int i;
|
|
|
|
(void) strcpy(prefix, "@PREFIX@");
|
|
- (void) strcpy(bmake, "@PREFIX@/bsd/bin/bmake");
|
|
+ (void) strcpy(bmake, "@PREFIX@/bin/bmake");
|
|
(void) strcpy(output, "/tmp");
|
|
(void) strcpy(pkgdir, "@SPOOLDIR@");
|
|
transform = 0;
|
|
- workdir = "work";
|
|
category = "application";
|
|
pkg = (char *) NULL;
|
|
+ (void) snprintf(cmd, sizeof(cmd), "%s show-var VARNAME=WRKDIR", bmake);
|
|
+ if (!pipeit(workdir, sizeof(workdir), cmd, "r")) {
|
|
+ (void) fprintf(stderr, "Warning: can't find package workdir\n");
|
|
+ exit(1);
|
|
+ }
|
|
(void) snprintf(cmd, sizeof(cmd), "%s show-var VARNAME=PREFIX", bmake);
|
|
if (!pipeit(prefix, sizeof(prefix), cmd, "r")) {
|
|
(void) fprintf(stderr, "Can't find package prefix\n");
|
|
@@ -633,7 +637,7 @@
|
|
transform = 1;
|
|
break;
|
|
case 'w':
|
|
- workdir = optarg;
|
|
+ (void) strnncpy(workdir, sizeof(workdir), optarg, strlen(optarg));
|
|
break;
|
|
default:
|
|
fprintf(stderr, "Usage:\n");
|