public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2010-01-17  0:24 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2010-01-17  0:24 UTC (permalink / raw
  To: gentoo-commits

vapier      10/01/17 00:24:32

  Modified:             main.c
  Log:
  didnt mean to commit that previous change to eat_file, but fix the intended changes rather than revert

Revision  Changes    Path
1.172                portage-utils/main.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.172&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.172&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?r1=1.171&r2=1.172

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.171
retrieving revision 1.172
diff -u -r1.171 -r1.172
--- main.c	16 Jan 2010 23:45:02 -0000	1.171
+++ main.c	17 Jan 2010 00:24:32 -0000	1.172
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.171 2010/01/16 23:45:02 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.172 2010/01/17 00:24:32 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -185,7 +185,6 @@
 	if ((fd = open(file, O_RDONLY)) == -1)
 		return ret;
 
-	buf[0] = '\0';
 	if (fstat(fd, &s) != 0)
 		goto close_and_ret;
 	if (s.st_size) {
@@ -193,9 +192,11 @@
 			goto close_and_ret;
 		if (read(fd, buf, s.st_size) != (ssize_t)s.st_size)
 			goto close_and_ret;
+		buf[s.st_size] = '\0';
 	} else {
 		if (read(fd, buf, bufsize) == 0)
 			goto close_and_ret;
+		buf[bufsize] = '\0';
 	}
 
 	ret = 1;






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2013-10-31  2:40 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2013-10-31  2:40 UTC (permalink / raw
  To: gentoo-commits

vapier      13/10/31 02:40:24

  Modified:             main.c
  Log:
  fix bug related to var parsing w/out braces

Revision  Changes    Path
1.229                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.229&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.229&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.228&r2=1.229

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.228
retrieving revision 1.229
diff -u -r1.228 -r1.229
--- main.c	29 Sep 2013 22:42:36 -0000	1.228
+++ main.c	31 Oct 2013 02:40:23 -0000	1.229
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2013 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.228 2013/09/29 22:42:36 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.229 2013/10/31 02:40:23 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2013 Mike Frysinger  - <vapier@gentoo.org>
@@ -752,7 +752,7 @@
 			}
 			*svar = byte;
 			slen = strlen(sval);
-			post_len = strlen(svar + 1);
+			post_len = strlen(svar + !!brace);
 			*var->value.s = xrealloc(*var->value.s, pre_len + MAX(var_len, slen) + post_len + 1);
 
 			/*





^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2013-05-23  3:19 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2013-05-23  3:19 UTC (permalink / raw
  To: gentoo-commits

vapier      13/05/23 03:19:00

  Modified:             main.c
  Log:
  use 64bit file interfaces even with 32bit processes #471024

Revision  Changes    Path
1.227                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.227&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.227&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.226&r2=1.227

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.226
retrieving revision 1.227
diff -u -r1.226 -r1.227
--- main.c	3 Apr 2013 18:39:22 -0000	1.226
+++ main.c	23 May 2013 03:19:00 -0000	1.227
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.226 2013/04/03 18:39:22 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.227 2013/05/23 03:19:00 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -14,6 +14,9 @@
 #ifndef _GNU_SOURCE
 #define _GNU_SOURCE
 #endif
+#ifndef _FILE_OFFSET_BITS
+#define _FILE_OFFSET_BITS 64 /* #471024 */
+#endif
 #ifdef _AIX
 #define _LINUX_SOURCE_COMPAT
 #endif





^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2013-04-03 18:39 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2013-04-03 18:39 UTC (permalink / raw
  To: gentoo-commits

vapier      13/04/03 18:39:22

  Modified:             main.c
  Log:
  dump usage to stderr when an error has happened to avoid things like foo=`qlist $emptyvar` from inserting content into $foo

Revision  Changes    Path
1.226                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.226&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.226&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.225&r2=1.226

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.225
retrieving revision 1.226
diff -u -r1.225 -r1.226
--- main.c	28 Oct 2012 10:29:38 -0000	1.225
+++ main.c	3 Apr 2013 18:39:22 -0000	1.226
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.225 2012/10/28 10:29:38 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.226 2013/04/03 18:39:22 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -137,6 +137,8 @@
                   const char * const help[], int blabber)
 {
 	unsigned long i;
+	if (status != EXIT_SUCCESS)
+		dup2(STDERR_FILENO, STDOUT_FILENO);
 	if (blabber == 0) {
 		printf("%sUsage:%s %sq%s %s<applet> <args>%s  : %s"
 			"invoke a portage utility applet\n\n", GREEN,





^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2012-10-28 10:29 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2012-10-28 10:29 UTC (permalink / raw
  To: gentoo-commits

vapier      12/10/28 10:29:38

  Modified:             main.c
  Log:
  improve trimming of quotes/whitespace when loading env files

Revision  Changes    Path
1.225                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.225&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.225&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.224&r2=1.225

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.224
retrieving revision 1.225
diff -u -r1.224 -r1.225
--- main.c	28 Oct 2012 10:11:47 -0000	1.224
+++ main.c	28 Oct 2012 10:29:38 -0000	1.225
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.224 2012/10/28 10:11:47 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.225 2012/10/28 10:29:38 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -581,25 +581,30 @@
 					abuf = NULL;
 					while (getline(&abuf, &abuflen, fp) != -1) {
 						buf = xrealloc(buf, buflen + abuflen);
+						endq = strchr(abuf, q);
+						if (endq)
+							*endq = '\0';
+
 						strcat(buf, abuf);
 						buflen += abuflen;
 
-						endq = strchr(abuf, q);
-						if (endq) {
-							*endq = '\0';
+						if (endq)
 							break;
-						}
 					}
 					free(abuf);
 
 					if (!endq)
 						warn("%s:%zu: %s: quote mismatch", file, line, vars[i].name);
 
-					s = buf + vars[i].name_len + 1;
+					s = buf + vars[i].name_len + 2;
 				} else {
 					*endq = '\0';
 					++s;
 				}
+			} else {
+				/* no quotes, so chop the spacing/comments ourselves */
+				size_t off = strcspn(s, "# \t\n");
+				s[off] = '\0';
 			}
 
 			set_portage_env_var(&vars[i], s);





^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2012-10-28 10:11 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2012-10-28 10:11 UTC (permalink / raw
  To: gentoo-commits

vapier      12/10/28 10:11:47

  Modified:             main.c
  Log:
  fix variable name length calculation when expanding later vars #417457 by stephen thomas

Revision  Changes    Path
1.224                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.224&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.224&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.223&r2=1.224

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.223
retrieving revision 1.224
diff -u -r1.223 -r1.224
--- main.c	28 Oct 2012 07:56:51 -0000	1.223
+++ main.c	28 Oct 2012 10:11:47 -0000	1.224
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.223 2012/10/28 07:56:51 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.224 2012/10/28 10:11:47 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -753,7 +753,7 @@
 				break;
 			}
 
-			var_len = svar - *var->value.s + 1;
+			var_len = svar - s + 1 + (brace ? 2 : 0);
 
 			byte = *svar;
 			*svar = '\0';





^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2012-08-13 21:16 Robin H. Johnson (robbat2)
  0 siblings, 0 replies; 49+ messages in thread
From: Robin H. Johnson (robbat2) @ 2012-08-13 21:16 UTC (permalink / raw
  To: gentoo-commits

robbat2     12/08/13 21:16:57

  Modified:             main.c
  Log:
  Implement md5-cache support.

Revision  Changes    Path
1.219                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.219&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.219&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.218&r2=1.219

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.218
retrieving revision 1.219
diff -p -w -b -B -u -u -r1.218 -r1.219
--- main.c	4 Aug 2012 20:24:56 -0000	1.218
+++ main.c	13 Aug 2012 21:16:57 -0000	1.219
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.218 2012/08/04 20:24:56 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.219 2012/08/13 21:16:57 robbat2 Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -57,13 +57,15 @@ char *modpath = NULL;
 int found = 0;
 int verbose = 0;
 int quiet = 0;
+int portcachedir_type = 0;
 char pretend = 0;
 char reinitialize = 0;
 char reinitialize_metacache = 0;
 static char *portdir;
 static char *portarch;
 static char *portvdb;
-const char portcachedir[] = "metadata/cache";
+const char portcachedir_pms[] = "metadata/cache";
+const char portcachedir_md5[] = "metadata/md5-cache";
 static char *portroot;
 static char *eprefix;
 static char *config_protect, *config_protect_mask;
@@ -861,7 +863,9 @@ void initialize_portage_env(void)
 
 enum {
 	CACHE_EBUILD = 1,
-	CACHE_METADATA = 2
+	CACHE_METADATA = 2,
+    CACHE_METADATA_PMS = 10,
+    CACHE_METADATA_MD5 = 11,
 };
 
 int filter_hidden(const struct dirent *dentry);
@@ -881,6 +885,7 @@ const char *initialize_flat(int cache_ty
 	struct stat st;
 	struct timeval start, finish;
 	static const char *cache_file;
+	const char *portcachedir_actual;
 	char *p;
 	int a, b, c, d, e, i;
 	int frac, secs, count;
@@ -896,10 +901,18 @@ const char *initialize_flat(int cache_ty
 		goto ret;
 	}
 
-	if (cache_type == CACHE_METADATA && chdir(portcachedir) != 0) {
-		warnp("chdir to portage cache '%s/%s' failed", portdir, portcachedir);
+	if (cache_type == CACHE_METADATA) {
+		if(chdir(portcachedir_md5) == 0) {
+			portcachedir_type = CACHE_METADATA_MD5;
+			portcachedir_actual = portcachedir_md5;
+		} else if(chdir(portcachedir_pms) == 0) {
+			portcachedir_type = CACHE_METADATA_PMS;
+			portcachedir_actual = portcachedir_pms;
+		} else {
+			warnp("chdir to portage cache '%s/%s' or '%s/%s' failed", portdir, portcachedir_md5, portdir, portcachedir_pms);
 		goto ret;
 	}
+	}
 
 	if (stat(cache_file, &st) != -1)
 		if (st.st_size == 0)
@@ -921,7 +934,7 @@ const char *initialize_flat(int cache_ty
 		if (cache_type == CACHE_EBUILD)
 			warnfp("opening '%s/%s' failed", portdir, cache_file);
 		else
-			warnfp("opening '%s/%s/%s' failed", portdir, portcachedir, cache_file);
+			warnfp("opening '%s/%s/%s' failed", portdir, portcachedir_actual, cache_file);
 		if (errno == EACCES)
 			warnf("You should run this command as root: q -%c",
 					cache_type == CACHE_EBUILD ? 'r' : 'm');
@@ -1037,12 +1050,28 @@ typedef struct {
 	char *EAPI;
 	char *PROPERTIES;
 	depend_atom *atom;
+	/* These are MD5-Cache only */
+	char *DEFINED_PHASES;
+	char *REQUIRED_USE;
+	char *_eclasses_;
+	char *_md5_;
 } portage_cache;
 
 void cache_free(portage_cache *cache);
+portage_cache *cache_read_file_pms(const char *file);
+portage_cache *cache_read_file_md5(const char *file);
 portage_cache *cache_read_file(const char *file);
+
 portage_cache *cache_read_file(const char *file)
 {
+	if(portcachedir_type == CACHE_METADATA_MD5)
+		return(cache_read_file_md5(file));
+	else if(portcachedir_type == CACHE_METADATA_PMS)
+		return(cache_read_file_pms(file));
+}
+
+portage_cache *cache_read_file_pms(const char *file)
+{
 	struct stat s;
 	char *ptr;
 	FILE *f;
@@ -1098,6 +1127,105 @@ err:
 	return NULL;
 }
 
+portage_cache *cache_read_file_md5(const char *file)
+{
+	struct stat s;
+	char *ptr, *endptr;
+	//const char *cmpkey;
+	FILE *f;
+	portage_cache *ret = NULL;
+	size_t len;
+
+	if ((f = fopen(file, "r")) == NULL)
+		goto err;
+
+	if (fstat(fileno(f), &s) != 0)
+		goto err;
+	len = sizeof(*ret) + s.st_size + 1;
+	ret = xzalloc(len);
+	ptr = (char*)ret;
+	ret->_data = ptr + sizeof(*ret);
+	if ((off_t)fread(ret->_data, 1, s.st_size, f) != s.st_size)
+		goto err;
+
+	ret->atom = atom_explode(file);
+	
+	/* We have a block of key=value\n data.
+	 * KEY=VALUE\n
+	 * Where KEY does NOT contain:
+	 * \0 \n =
+	 * And VALUE does NOT contain:
+	 * \0 \n
+	 * */
+#define assign_var_cmp(keyname, cmpkey) \
+	if (strncmp(keyptr, cmpkey, strlen(cmpkey)) == 0) { \
+		ret->keyname = valptr; \
+		continue; \
+	}
+#define assign_var(keyname) \
+	assign_var_cmp(keyname, #keyname);
+
+	ptr = ret->_data;
+	endptr = strchr(ptr, '\0');
+	if(endptr == NULL) {
+			warn("Invalid cache file '%s' - could not find end of cache data", file);
+			goto err;
+	}
+
+	while(ptr != NULL && ptr != endptr) {
+		char *keyptr;
+		char *valptr;
+		keyptr = ptr;
+		valptr = strchr(ptr, '=');
+		if(valptr == NULL) {
+			warn("Invalid cache file '%s' val", file);
+			goto err;
+		}
+		*valptr = '\0';
+		valptr++;
+		ptr = strchr(valptr, '\n');
+		if(ptr == NULL) {
+			warn("Invalid cache file '%s' key", file);
+			goto err;
+		}
+		*ptr = '\0';
+		ptr++;
+
+		assign_var(CDEPEND);
+		assign_var(DEPEND);
+		assign_var(DESCRIPTION);
+		assign_var(EAPI);
+		assign_var(HOMEPAGE);
+		assign_var(INHERITED);
+		assign_var(IUSE);
+		assign_var(KEYWORDS);
+		assign_var(LICENSE);
+		assign_var(PDEPEND);
+		assign_var(PROPERTIES);
+		assign_var(PROVIDE);
+		assign_var(RDEPEND);
+		assign_var(RESTRICT);
+		assign_var(SLOT);
+		assign_var(SRC_URI);
+		assign_var(DEFINED_PHASES);
+		assign_var(REQUIRED_USE);
+		assign_var(_eclasses_);
+		assign_var(_md5_);
+		warn("Cache file '%s' with unknown key %s", file, keyptr);
+	}
+#undef assign_var
+#undef assign_var_cmp
+
+	fclose(f);
+
+	return ret;
+
+err:
+	fclose(f);
+	if (ret) cache_free(ret);
+	return NULL;
+}
+
 void cache_dump(portage_cache *cache);
 void cache_dump(portage_cache *cache)
 {





^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2012-08-04 20:24 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2012-08-04 20:24 UTC (permalink / raw
  To: gentoo-commits

vapier      12/08/04 20:24:56

  Modified:             main.c
  Log:
  support options that do not have short flags

Revision  Changes    Path
1.218                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.218&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.218&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.217&r2=1.218

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.217
retrieving revision 1.218
diff -u -r1.217 -r1.218
--- main.c	4 Jun 2012 23:13:23 -0000	1.217
+++ main.c	4 Aug 2012 20:24:56 -0000	1.218
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.217 2012/06/04 23:13:23 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.218 2012/08/04 20:24:56 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -159,13 +159,22 @@
 
 	printf("\n%sOptions:%s -[%s]\n", GREEN, NORM, flags);
 	for (i = 0; opts[i].name; ++i) {
-		assert(help[i] != NULL); /* this assert is a life saver when adding new applets. */
+		/* this assert is a life saver when adding new applets. */
+		assert(help[i] != NULL);
+
+		/* first output the short flag if it has one */
+		if (opts[i].val > '~')
+			printf("      ");
+		else
+			printf("  -%c, ", opts[i].val);
+
+		/* then the long flag + help text */
 		if (opts[i].has_arg == no_argument)
-			printf("  -%c, --%-15s%s*%s %s\n", opts[i].val,
-				opts[i].name, RED, NORM, _(help[i]));
+			printf("--%-15s%s*%s %s\n", opts[i].name,
+				RED, NORM, _(help[i]));
 		else
-			printf("  -%c, --%-8s %s<arg>%s %s*%s %s\n", opts[i].val,
-				opts[i].name, DKBLUE, NORM, RED, NORM, _(help[i]));
+			printf("--%-8s %s<arg>%s %s*%s %s\n", opts[i].name,
+				DKBLUE, NORM, RED, NORM, _(help[i]));
 	}
 	exit(status);
 }





^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2012-06-04 23:13 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2012-06-04 23:13 UTC (permalink / raw
  To: gentoo-commits

vapier      12/06/04 23:13:23

  Modified:             main.c
  Log:
  do not try to expand a variable into itself #419581 by Nathan Caldwell

Revision  Changes    Path
1.217                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.217&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.217&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.216&r2=1.217

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.216
retrieving revision 1.217
diff -u -r1.216 -r1.217
--- main.c	19 May 2012 13:20:20 -0000	1.216
+++ main.c	4 Jun 2012 23:13:23 -0000	1.217
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.216 2012/05/19 13:20:20 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.217 2012/06/04 23:13:23 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -788,13 +788,19 @@
 
 			byte = *svar;
 			*svar = '\0';
-			evar = get_portage_env_var(vars_to_read, s);
-			if (evar) {
-				sval = *evar->value.s;
+
+			/* Don't try to expand ourselves */
+			if (strcmp(var->name, s)) {
+				evar = get_portage_env_var(vars_to_read, s);
+				if (evar) {
+					sval = *evar->value.s;
+				} else {
+					sval = getenv(s);
+					if (!sval)
+						sval = "";
+				}
 			} else {
-				sval = getenv(s);
-				if (!sval)
-					sval = "";
+				sval = "";
 			}
 			*svar = byte;
 			slen = strlen(sval);






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2012-05-19 13:20 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2012-05-19 13:20 UTC (permalink / raw
  To: gentoo-commits

vapier      12/05/19 13:20:20

  Modified:             main.c
  Log:
  fix handling of quoted lines that do not end in a quote because they have trailing comments/whitespace #416585 by Nikoli

Revision  Changes    Path
1.216                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.216&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.216&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.215&r2=1.216

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.215
retrieving revision 1.216
diff -u -r1.215 -r1.216
--- main.c	8 Jan 2012 17:41:07 -0000	1.215
+++ main.c	19 May 2012 13:20:20 -0000	1.216
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.215 2012/01/08 17:41:07 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.216 2012/05/19 13:20:20 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -599,34 +599,36 @@
 			while (isspace(*s))
 				++s;
 			if (*s == '"' || *s == '\'') {
+				char *endq;
 				char q = *s;
-				size_t l = strlen(s);
 
-				if (q != s[l - 1]) {
+				/* make sure we handle spacing/comments after the quote */
+				endq = strchr(s + 1, q);
+				if (!endq) {
 					/* If the last char is not a quote, then we span lines */
 					size_t abuflen;
-					char *abuf, *qq;
+					char *abuf;
 
-					qq = abuf = NULL;
+					abuf = NULL;
 					while (getline(&abuf, &abuflen, fp) != -1) {
 						buf = xrealloc(buf, buflen + abuflen);
 						strcat(buf, abuf);
 						buflen += abuflen;
 
-						qq = strchr(abuf, q);
-						if (qq) {
-							*qq = '\0';
+						endq = strchr(abuf, q);
+						if (endq) {
+							*endq = '\0';
 							break;
 						}
 					}
 					free(abuf);
 
-					if (!qq)
+					if (!endq)
 						warn("%s:%zu: %s: quote mismatch", file, line, vars[i].name);
 
 					s = buf + vars[i].name_len + 1;
 				} else {
-					s[l - 1] = '\0';
+					*endq = '\0';
 					++s;
 				}
 			}






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2012-01-08 17:41 Ned Ludd (solar)
  0 siblings, 0 replies; 49+ messages in thread
From: Ned Ludd (solar) @ 2012-01-08 17:41 UTC (permalink / raw
  To: gentoo-commits

solar       12/01/08 17:41:07

  Modified:             main.c
  Log:
  Need the env vars pushed to cvs as well

Revision  Changes    Path
1.215                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.215&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.215&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.214&r2=1.215

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.214
retrieving revision 1.215
diff -u -r1.214 -r1.215
--- main.c	22 Dec 2011 20:26:20 -0000	1.214
+++ main.c	8 Jan 2012 17:41:07 -0000	1.215
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.214 2011/12/22 20:26:20 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.215 2012/01/08 17:41:07 solar Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -75,6 +75,7 @@
 static char *features;
 static char *accept_license;
 static char *install_mask;
+static char *pkg_install_mask;
 
 const char err_noapplet[] = "Sorry this applet was disabled at compile time";
 
@@ -702,6 +703,7 @@
 		_Q_EVS(STR,  ROOT,                portroot,            "/")
 		_Q_EVS(STR,  ACCEPT_LICENSE,      accept_license,      "")
 		_Q_EVS(ISTR, INSTALL_MASK,        install_mask,        "")
+		_Q_EVS(ISTR, PKG_INSTALL_MASK,    pkg_install_mask,    "")
 		_Q_EVS(STR,  ARCH,                portarch,            "")
 		_Q_EVS(ISTR, CONFIG_PROTECT,      config_protect,      CONFIG_EPREFIX "etc")
 		_Q_EVS(ISTR, CONFIG_PROTECT_MASK, config_protect_mask, "")






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-12-22 20:26 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-12-22 20:26 UTC (permalink / raw
  To: gentoo-commits

vapier      11/12/22 20:26:20

  Modified:             main.c
  Log:
  support PORTAGE_CONFIGROOT with make.conf files, stop reading /etc/make.globals (since portage has too), and support sourcing files in make.conf via relative paths

Revision  Changes    Path
1.214                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.214&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.214&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.213&r2=1.214

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.213
retrieving revision 1.214
diff -u -r1.213 -r1.214
--- main.c	22 Dec 2011 17:49:19 -0000	1.213
+++ main.c	22 Dec 2011 20:26:20 -0000	1.214
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.213 2011/12/22 17:49:19 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.214 2011/12/22 20:26:20 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -531,20 +531,28 @@
 }
 
 /* Helper to read a portage env file (e.g. make.conf) */
-_q_static void read_portage_env_file(const char *file, env_vars vars[])
+_q_static void read_portage_env_file(const char *configroot, const char *file, env_vars vars[])
 {
-	size_t i, buflen, line;
+	size_t i, buflen, line, configroot_len, file_len;
 	FILE *fp;
 	char *buf, *s, *p;
 
 	IF_DEBUG(fprintf(stderr, "profile %s\n", file));
 
-	fp = fopen(file, "r");
+	configroot_len = strlen(configroot);
+	file_len = strlen(file);
+	buflen = configroot_len + file_len + 1;
+	buf = xmalloc(buflen);
+
+	memcpy(buf, configroot, configroot_len);
+	memcpy(buf + configroot_len, file, file_len);
+	buf[buflen - 1] = '\0';
+
+	fp = fopen(buf, "r");
 	if (fp == NULL)
-		return;
+		goto done;
 
 	line = 0;
-	buf = NULL;
 	while (getline(&buf, &buflen, fp) != -1) {
 		++line;
 		rmspace(buf);
@@ -552,8 +560,27 @@
 			continue;
 
 		/* Handle "source" keyword */
-		if (!strncmp(buf, "source ", 7))
-			read_portage_env_file(buf + 7, vars);
+		if (!strncmp(buf, "source ", 7)) {
+			const char *sfile = buf + 7;
+
+			if (sfile[0] != '/') {
+				/* handle relative paths */
+				size_t file_path_len, source_len;
+
+				s = strrchr(file, '/');
+				file_path_len = s - file + 1;
+				source_len = strlen(sfile);
+
+				if (buflen <= source_len + file_path_len)
+					buf = xrealloc(buf, buflen = source_len + file_path_len + 1);
+				memmove(buf + file_path_len, buf + 7, source_len + 1);
+				memcpy(buf, file, file_path_len);
+				sfile = buf;
+			}
+
+			read_portage_env_file(configroot, sfile, vars);
+			continue;
+		}
 
 		/* look for our desired variables and grab their value */
 		for (i = 0; vars[i].name; ++i) {
@@ -607,8 +634,9 @@
 		}
 	}
 
-	free(buf);
 	fclose(fp);
+ done:
+	free(buf);
 }
 
 /* Helper to recursively read stacked make.defaults in profiles */
@@ -631,12 +659,12 @@
 
 	/* first consume the profile's make.defaults */
 	strcpy(sub_file, "make.defaults");
-	read_portage_env_file(profile_file, vars);
+	read_portage_env_file("", profile_file, vars);
 
 	/* now walk all the parents */
 	strcpy(sub_file, "parent");
 	if (eat_file(profile_file, buf, sizeof(buf)) == 0)
-		return;
+		goto done;
 	rmspace(buf);
 
 	s = strtok(buf, "\n");
@@ -646,6 +674,7 @@
 		s = strtok(NULL, "\n");
 	}
 
+ done:
 	free(profile_file);
 }
 
@@ -654,12 +683,6 @@
 	size_t i;
 	const char *s;
 
-	static const char * const files[] = {
-		CONFIG_EPREFIX "etc/make.globals",
-		CONFIG_EPREFIX "usr/share/portage/config/make.globals",
-		CONFIG_EPREFIX "etc/make.conf",
-		CONFIG_EPREFIX "etc/portage/make.conf",
-	};
 	bool nocolor = 0;
 
 	env_vars *var;
@@ -702,17 +725,19 @@
 			*var->value.s = xstrdup(var->default_value);
 	}
 
-	/* walk all the stacked profiles */
+	/* figure out where to find our config files */
 	s = getenv("PORTAGE_CONFIGROOT");
 	if (!s)
 		s = "/";
 
+	/* walk all the stacked profiles */
 	read_portage_profile(s, CONFIG_EPREFIX "etc/make.profile", vars_to_read);
 	read_portage_profile(s, CONFIG_EPREFIX "etc/portage/make.profile", vars_to_read);
 
 	/* now read all the config files */
-	for (i = 0; i < ARRAY_SIZE(files); ++i)
-		read_portage_env_file(files[i], vars_to_read);
+	read_portage_env_file("", CONFIG_EPREFIX "usr/share/portage/config/make.globals", vars_to_read);
+	read_portage_env_file(s, CONFIG_EPREFIX "etc/make.conf", vars_to_read);
+	read_portage_env_file(s, CONFIG_EPREFIX "etc/portage/make.conf", vars_to_read);
 
 	/* finally, check the env */
 	for (i = 0; vars_to_read[i].name; ++i) {






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-12-22 17:49 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-12-22 17:49 UTC (permalink / raw
  To: gentoo-commits

vapier      11/12/22 17:49:19

  Modified:             main.c
  Log:
  have the one user pass in an empty string rather than always checking the param

Revision  Changes    Path
1.213                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.213&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.213&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.212&r2=1.213

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.212
retrieving revision 1.213
diff -u -r1.212 -r1.213
--- main.c	22 Dec 2011 17:11:11 -0000	1.212
+++ main.c	22 Dec 2011 17:49:19 -0000	1.213
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.212 2011/12/22 17:11:11 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.213 2011/12/22 17:49:19 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -619,8 +619,6 @@
 	char buf[BUFSIZE], *s;
 
 	/* initialize the base profile path */
-	if (!configroot)
-		configroot = "";
 	configroot_len = strlen(configroot);
 	profile_len = strlen(profile);
 	sub_len = 1024;	/* should be big enough for longest line in "parent" */
@@ -644,7 +642,7 @@
 	s = strtok(buf, "\n");
 	while (s) {
 		strncpy(sub_file, s, sub_len);
-		read_portage_profile(NULL, profile_file, vars);
+		read_portage_profile("", profile_file, vars);
 		s = strtok(NULL, "\n");
 	}
 






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-12-22 17:11 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-12-22 17:11 UTC (permalink / raw
  To: gentoo-commits

vapier      11/12/22 17:11:11

  Modified:             main.c
  Log:
  make sure to clear out -* symbol too

Revision  Changes    Path
1.212                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.212&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.212&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.211&r2=1.212

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.211
retrieving revision 1.212
diff -u -r1.211 -r1.212
--- main.c	21 Dec 2011 04:35:09 -0000	1.211
+++ main.c	22 Dec 2011 17:11:11 -0000	1.212
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.211 2011/12/21 04:35:09 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.212 2011/12/22 17:11:11 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -458,7 +458,7 @@
 	memcpy(nv, s, len + 1);
 
 	while ((p = strstr(nv, "-*")) != NULL)
-		memset(*value, ' ', p - *value);
+		memset(*value, ' ', p - *value + 2);
 
 	/* This function is mainly used by the startup code for parsing
 		make.conf and stacking variables remove.






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-12-21  4:35 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-12-21  4:35 UTC (permalink / raw
  To: gentoo-commits

vapier      11/12/21 04:35:09

  Modified:             main.c
  Log:
  use O_CLOEXEC when eating files

Revision  Changes    Path
1.211                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.211&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.211&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.210&r2=1.211

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.210
retrieving revision 1.211
diff -u -r1.210 -r1.211
--- main.c	19 Dec 2011 20:27:36 -0000	1.210
+++ main.c	21 Dec 2011 04:35:09 -0000	1.211
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.210 2011/12/19 20:27:36 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.211 2011/12/21 04:35:09 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -207,7 +207,7 @@
 	int fd;
 	char ret;
 
-	if ((fd = openat(dfd, file, O_RDONLY)) == -1) {
+	if ((fd = openat(dfd, file, O_CLOEXEC|O_RDONLY)) == -1) {
 		buf[0] = '\0';
 		return 0;
 	}






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-12-19 20:09 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-12-19 20:09 UTC (permalink / raw
  To: gentoo-commits

vapier      11/12/19 20:09:48

  Modified:             main.c
  Log:
  dump variable values after we have expanded inline variables

Revision  Changes    Path
1.209                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.209&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.209&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.208&r2=1.209

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.208
retrieving revision 1.209
diff -u -r1.208 -r1.209
--- main.c	19 Dec 2011 19:43:36 -0000	1.208
+++ main.c	19 Dec 2011 20:09:48 -0000	1.209
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.208 2011/12/19 19:43:36 grobian Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.209 2011/12/19 20:09:48 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -722,14 +722,6 @@
 		s = getenv(var->name);
 		if (s != NULL)
 			set_portage_env_var(var, s);
-		if (getenv("DEBUG") IF_DEBUG(|| 1)) {
-			fprintf(stderr, "%s = ", var->name);
-			switch (var->type) {
-			case _Q_BOOL: fprintf(stderr, "%i\n", *var->value.b); break;
-			case _Q_STR:
-			case _Q_ISTR: fprintf(stderr, "%s\n", *var->value.s); break;
-			}
-		}
 	}
 
 	/* expand any nested variables e.g. PORTDIR=${EPREFIX}/usr/portage */
@@ -796,6 +788,18 @@
 		}
 	}
 
+	if (getenv("DEBUG") IF_DEBUG(|| 1)) {
+		for (i = 0; vars_to_read[i].name; ++i) {
+			var = &vars_to_read[i];
+			fprintf(stderr, "%s = ", var->name);
+			switch (var->type) {
+			case _Q_BOOL: fprintf(stderr, "%i\n", *var->value.b); break;
+			case _Q_STR:
+			case _Q_ISTR: fprintf(stderr, "%s\n", *var->value.s); break;
+			}
+		}
+	}
+
 	/* Make sure ROOT always ends in a slash */
 	var = &vars_to_read[0];
 	if ((*var->value.s)[var->value_len - 1] != '/') {






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-12-19  4:39 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-12-19  4:39 UTC (permalink / raw
  To: gentoo-commits

vapier      11/12/19 04:39:24

  Modified:             main.c
  Log:
  refine previous fix to make it work with -Wmissing-braces too

Revision  Changes    Path
1.207                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.207&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.207&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.206&r2=1.207

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.206
retrieving revision 1.207
diff -u -r1.206 -r1.207
--- main.c	19 Dec 2011 04:37:23 -0000	1.206
+++ main.c	19 Dec 2011 04:39:24 -0000	1.207
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.206 2011/12/19 04:37:23 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.207 2011/12/19 04:39:24 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -692,7 +692,7 @@
 		_Q_EVS(STR,  PORTAGE_TMPDIR,      port_tmpdir,         EPREFIX "var/tmp/portage/")
 		_Q_EVS(STR,  PKGDIR,              pkgdir,              EPREFIX "usr/portage/packages/")
 		_Q_EVS(STR,  Q_VDB,               portvdb,             EPREFIX "var/db/pkg")
-		{ NULL, 0, _Q_BOOL, NULL, 0, NULL, }
+		{ NULL, 0, _Q_BOOL, { NULL }, 0, NULL, }
 
 #undef _Q_EV
 	};






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-12-19  4:37 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-12-19  4:37 UTC (permalink / raw
  To: gentoo-commits

vapier      11/12/19 04:37:23

  Modified:             main.c
  Log:
  add some NULL fields to fix -Wmissing-field-initializers gcc warnings

Revision  Changes    Path
1.206                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.206&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.206&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.205&r2=1.206

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.205
retrieving revision 1.206
diff -u -r1.205 -r1.206
--- main.c	19 Dec 2011 04:28:35 -0000	1.205
+++ main.c	19 Dec 2011 04:37:23 -0000	1.206
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.205 2011/12/19 04:28:35 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.206 2011/12/19 04:37:23 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -692,7 +692,7 @@
 		_Q_EVS(STR,  PORTAGE_TMPDIR,      port_tmpdir,         EPREFIX "var/tmp/portage/")
 		_Q_EVS(STR,  PKGDIR,              pkgdir,              EPREFIX "usr/portage/packages/")
 		_Q_EVS(STR,  Q_VDB,               portvdb,             EPREFIX "var/db/pkg")
-		{ }
+		{ NULL, 0, _Q_BOOL, NULL, 0, NULL, }
 
 #undef _Q_EV
 	};






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-12-18 20:35 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-12-18 20:35 UTC (permalink / raw
  To: gentoo-commits

vapier      11/12/18 20:35:25

  Modified:             main.c
  Log:
  do not redefine _GNU_SOURCE if it is on the command line

Revision  Changes    Path
1.204                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.204&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.204&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.203&r2=1.204

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.203
retrieving revision 1.204
diff -u -r1.203 -r1.204
--- main.c	18 Dec 2011 20:21:45 -0000	1.203
+++ main.c	18 Dec 2011 20:35:25 -0000	1.204
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.203 2011/12/18 20:21:45 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.204 2011/12/18 20:35:25 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -11,7 +11,9 @@
 # include "config.h"  /* make sure we have EPREFIX, if set */
 #endif
 
+#ifndef _GNU_SOURCE
 #define _GNU_SOURCE
+#endif
 #ifdef _AIX
 #define _LINUX_SOURCE_COMPAT
 #endif






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-12-18 20:21 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-12-18 20:21 UTC (permalink / raw
  To: gentoo-commits

vapier      11/12/18 20:21:45

  Modified:             main.c
  Log:
  drop "exact" global since each util does it itself now

Revision  Changes    Path
1.203                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.203&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.203&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.202&r2=1.203

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.202
retrieving revision 1.203
diff -u -r1.202 -r1.203
--- main.c	18 Dec 2011 06:31:29 -0000	1.202
+++ main.c	18 Dec 2011 20:21:45 -0000	1.203
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.202 2011/12/18 06:31:29 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.203 2011/12/18 20:21:45 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -52,7 +52,6 @@
 /* variables to control runtime behavior */
 char *module_name = NULL;
 char *modpath = NULL;
-char exact = 0;
 int found = 0;
 int verbose = 0;
 int quiet = 0;






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-12-18  3:04 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-12-18  3:04 UTC (permalink / raw
  To: gentoo-commits

vapier      11/12/18 03:04:07

  Modified:             main.c
  Log:
  expand nested variables when using known important ones #307625 by Wilke Schwiedop

Revision  Changes    Path
1.201                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.201&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.201&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.200&r2=1.201

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.200
retrieving revision 1.201
diff -u -r1.200 -r1.201
--- main.c	18 Dec 2011 01:17:14 -0000	1.200
+++ main.c	18 Dec 2011 03:04:07 -0000	1.201
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.200 2011/12/18 01:17:14 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.201 2011/12/18 03:04:07 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -64,6 +64,7 @@
 static char *portvdb;
 const char portcachedir[] = "metadata/cache";
 static char *portroot;
+static char *eprefix;
 static char *config_protect, *config_protect_mask;
 
 static char *pkgdir;
@@ -501,6 +502,17 @@
 	const char *default_value;
 } env_vars;
 
+_q_static env_vars *get_portage_env_var(env_vars *vars, const char *name)
+{
+	size_t i;
+
+	for (i = 0; vars[i].name; ++i)
+		if (!strcmp(vars[i].name, name))
+			return &vars[i];
+
+	return NULL;
+}
+
 _q_static void set_portage_env_var(env_vars *var, const char *value)
 {
 	switch (var->type) {
@@ -673,6 +685,7 @@
 		_Q_EVS(ISTR, CONFIG_PROTECT_MASK, config_protect_mask, "")
 		_Q_EVB(BOOL, NOCOLOR,             nocolor,             0)
 		_Q_EVS(ISTR, FEATURES,            features,            "noman noinfo nodoc")
+		_Q_EVS(STR,  EPREFIX,             eprefix,             EPREFIX)
 		_Q_EVS(STR,  PORTDIR,             portdir,             EPREFIX "usr/portage")
 		_Q_EVS(STR,  PORTAGE_BINHOST,     binhost,             DEFAULT_PORTAGE_BINHOST)
 		_Q_EVS(STR,  PORTAGE_TMPDIR,      port_tmpdir,         EPREFIX "var/tmp/portage/")
@@ -709,7 +722,7 @@
 			set_portage_env_var(var, s);
 		if (getenv("DEBUG") IF_DEBUG(|| 1)) {
 			fprintf(stderr, "%s = ", var->name);
-			switch (vars_to_read[i].type) {
+			switch (var->type) {
 			case _Q_BOOL: fprintf(stderr, "%i\n", *var->value.b); break;
 			case _Q_STR:
 			case _Q_ISTR: fprintf(stderr, "%s\n", *var->value.s); break;
@@ -717,6 +730,70 @@
 		}
 	}
 
+	/* expand any nested variables e.g. PORTDIR=${EPREFIX}/usr/portage */
+	for (i = 0; vars_to_read[i].name; ++i) {
+		char *svar;
+
+		var = &vars_to_read[i];
+		if (var->type == _Q_BOOL)
+			continue;
+
+		while ((svar = strchr(*var->value.s, '$'))) {
+			env_vars *evar;
+			bool brace;
+			const char *sval;
+			size_t slen, pre_len, var_len, post_len;
+			char byte;
+
+			pre_len = svar - *var->value.s;
+
+			/* First skip the leading "${" */
+			s = ++svar;
+			brace = (*svar == '{');
+			if (brace)
+				s = ++svar;
+
+			/* Now skip the variable name itself */
+			while (isalnum(*svar) || *svar == '_')
+				++svar;
+
+			/* Finally skip the trailing "}" */
+			if (brace && *svar != '}') {
+				warn("invalid variable setting: %s\n", *var->value.s);
+				break;
+			}
+
+			var_len = svar - *var->value.s + 1;
+
+			byte = *svar;
+			*svar = '\0';
+			evar = get_portage_env_var(vars_to_read, s);
+			if (evar) {
+				sval = *evar->value.s;
+			} else {
+				sval = getenv(s);
+				if (!sval)
+					sval = "";
+			}
+			*svar = byte;
+			slen = strlen(sval);
+			post_len = strlen(svar + 1);
+			*var->value.s = xrealloc(*var->value.s, pre_len + MAX(var_len, slen) + post_len + 1);
+
+			/*
+			 * VAR=XxXxX	(slen = 5)
+			 * FOO${VAR}BAR
+			 * pre_len = 3
+			 * var_len = 6
+			 * post_len = 3
+			 */
+			memmove(*var->value.s + pre_len + slen,
+				*var->value.s + pre_len + var_len,
+				post_len + 1);
+			memcpy(*var->value.s + pre_len, sval, slen);
+		}
+	}
+
 	/* Make sure ROOT always ends in a slash */
 	var = &vars_to_read[0];
 	if ((*var->value.s)[var->value_len - 1] != '/') {






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-12-12 21:42 Fabian Groffen (grobian)
  0 siblings, 0 replies; 49+ messages in thread
From: Fabian Groffen (grobian) @ 2011-12-12 21:42 UTC (permalink / raw
  To: gentoo-commits

grobian     11/12/12 21:42:23

  Modified:             main.c
  Log:
  include config.h for EPREFIX from configure

Revision  Changes    Path
1.199                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.199&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.199&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.198&r2=1.199

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.198
retrieving revision 1.199
diff -u -r1.198 -r1.199
--- main.c	12 Dec 2011 21:29:22 -0000	1.198
+++ main.c	12 Dec 2011 21:42:23 -0000	1.199
@@ -1,12 +1,16 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.198 2011/12/12 21:29:22 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.199 2011/12/12 21:42:23 grobian Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
  */
 
+#ifdef HAVE_CONFIG_H
+# include "config.h"  /* make sure we have EPREFIX, if set */
+#endif
+
 #define _GNU_SOURCE
 #ifdef _AIX
 #define _LINUX_SOURCE_COMPAT
@@ -30,7 +34,6 @@
 #include <libgen.h>
 #include <limits.h>
 #include <assert.h>
-
 #include "main.h"
 
 /* prototypes and such */






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-12-09 16:50 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-12-09 16:50 UTC (permalink / raw
  To: gentoo-commits

vapier      11/12/09 16:50:29

  Modified:             main.c
  Log:
  use getline() from the C library #394139 by Naohiro Aota

Revision  Changes    Path
1.196                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.196&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.196&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.195&r2=1.196

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.195
retrieving revision 1.196
diff -u -r1.195 -r1.196
--- main.c	3 Oct 2011 01:25:54 -0000	1.195
+++ main.c	9 Dec 2011 16:50:29 -0000	1.196
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.195 2011/10/03 01:25:54 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.196 2011/12/09 16:50:29 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -217,34 +217,6 @@
 	return eat_file_at(AT_FDCWD, file, buf, bufsize);
 }
 
-#if !(_POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700)
-static ssize_t getline(char **line, size_t *len, FILE *fp)
-{
-	char *s;
-	size_t off;
-
-	if (!*line) {
-		*len = BUFSIZE;
-		*line = xmalloc(*len);
-	}
-
-	off = 0;
-	while (1) {
-		s = fgets(*line + off, *len - off, fp);
-		if (s == NULL)
-			return -1;
-
-		s = strchr(s, '\n');
-		if (s)
-			break;
-
-		off = *len;
-		*len += BUFSIZE;
-		*line = xrealloc(*line, *len);
-	}
-}
-#endif
-
 static bool prompt(const char *p)
 {
 	printf("%s? [Y/n] ", p);






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-10-02 22:08 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-10-02 22:08 UTC (permalink / raw
  To: gentoo-commits

vapier      11/10/02 22:08:11

  Modified:             main.c
  Log:
  tweak how we ignore the return of freopen() to work with gcc-4.6+

Revision  Changes    Path
1.194                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.194&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.194&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.193&r2=1.194

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.193
retrieving revision 1.194
diff -u -r1.193 -r1.194
--- main.c	30 Mar 2011 05:33:19 -0000	1.193
+++ main.c	2 Oct 2011 22:08:11 -0000	1.194
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.193 2011/03/30 05:33:19 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.194 2011/10/02 22:08:11 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -119,7 +119,7 @@
 	NULL
 #define COMMON_GETOPTS_CASES(applet) \
 	case 'v': ++verbose; break; \
-	case 'q': { FILE *dummy; ++quiet; dummy = freopen("/dev/null", "w", stderr); break; } \
+	case 'q': ++quiet; if (freopen("/dev/null", "w", stderr)); break; \
 	case 'V': version_barf( applet ## _rcsid ); break; \
 	case 'h': applet ## _usage(EXIT_SUCCESS); break; \
 	case 'C': no_colors(); break; \






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-03-17  3:04 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-03-17  3:04 UTC (permalink / raw
  To: gentoo-commits

vapier      11/03/17 03:04:03

  Modified:             main.c
  Log:
  add support for PORTAGE_CONFIGROOT

Revision  Changes    Path
1.191                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.191&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.191&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.190&r2=1.191

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.190
retrieving revision 1.191
diff -u -r1.190 -r1.191
--- main.c	2 Mar 2011 08:10:39 -0000	1.190
+++ main.c	17 Mar 2011 03:04:03 -0000	1.191
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.190 2011/03/02 08:10:39 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.191 2011/03/17 03:04:03 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -35,6 +35,10 @@
 #include <assert.h>
 #include "main.h"
 
+#ifndef EPREFIX
+# define EPREFIX "/"
+#endif
+
 /* prototypes and such */
 static char eat_file(const char *file, char *buf, const size_t bufsize);
 int charmatch(const char *str1, const char *str2);
@@ -632,27 +636,31 @@
 }
 
 /* Helper to recursively read stacked make.defaults in profiles */
-static void read_portage_profile(const char *profile, env_vars vars[])
+static void read_portage_profile(const char *configroot, const char *profile, env_vars vars[])
 {
-	size_t profile_len, sub_len;
-	char profile_file[_Q_PATH_MAX], *sub_file;
+	size_t configroot_len, profile_len, sub_len;
+	char *profile_file, *sub_file;
 	char buf[BUFSIZE], *s;
 
 	/* initialize the base profile path */
+	if (!configroot)
+		configroot = "";
+	configroot_len = strlen(configroot);
 	profile_len = strlen(profile);
-	if (profile_len > sizeof(profile_file) - 20)
-		return;
-	strncpy(profile_file, profile, sizeof(profile_file));
-	profile_file[profile_len] = '/';
-	sub_file = profile_file + profile_len + 1;
-	sub_len = sizeof(profile_file) - profile_len - 1;
+	sub_len = 1024;	/* should be big enough for longest line in "parent" */
+	profile_file = xmalloc(configroot_len + profile_len + sub_len + 2);
+
+	memcpy(profile_file, configroot, configroot_len);
+	memcpy(profile_file + configroot_len, profile, profile_len);
+	sub_file = profile_file + configroot_len + profile_len + 1;
+	sub_file[-1] = '/';
 
 	/* first consume the profile's make.defaults */
-	strncpy(sub_file, "make.defaults", sub_len);
+	strcpy(sub_file, "make.defaults");
 	read_portage_env_file(profile_file, vars);
 
 	/* now walk all the parents */
-	strncpy(sub_file, "parent", sub_len);
+	strcpy(sub_file, "parent");
 	if (eat_file(profile_file, buf, sizeof(buf)) == 0)
 		return;
 	rmspace(buf);
@@ -660,21 +668,23 @@
 	s = strtok(buf, "\n");
 	while (s) {
 		strncpy(sub_file, s, sub_len);
-		read_portage_profile(profile_file, vars);
+		read_portage_profile(NULL, profile_file, vars);
 		s = strtok(NULL, "\n");
 	}
+
+	free(profile_file);
 }
 
 void initialize_portage_env(void)
 {
 	size_t i;
-	char *s;
+	const char *s;
 
 	static const char * const files[] = {
-		EPREFIX "/etc/make.globals",
-		EPREFIX "/usr/share/portage/config/make.globals",
-		EPREFIX "/etc/make.conf",
-		EPREFIX "/etc/portage/make.conf",
+		EPREFIX "etc/make.globals",
+		EPREFIX "usr/share/portage/config/make.globals",
+		EPREFIX "etc/make.conf",
+		EPREFIX "etc/portage/make.conf",
 	};
 	bool nocolor = 0;
 
@@ -696,17 +706,14 @@
 		_Q_EVS(STR,  ACCEPT_LICENSE,      accept_license,      "")
 		_Q_EVS(ISTR, INSTALL_MASK,        install_mask,        "")
 		_Q_EVS(STR,  ARCH,                portarch,            "")
-		_Q_EVS(ISTR, CONFIG_PROTECT,      config_protect,      EPREFIX "/etc")
+		_Q_EVS(ISTR, CONFIG_PROTECT,      config_protect,      EPREFIX "etc")
 		_Q_EVS(ISTR, CONFIG_PROTECT_MASK, config_protect_mask, "")
 		_Q_EVB(BOOL, NOCOLOR,             nocolor,             0)
 		_Q_EVS(ISTR, FEATURES,            features,            "noman noinfo nodoc")
-		_Q_EVS(STR,  PORTDIR,             portdir,             EPREFIX "/usr/portage")
+		_Q_EVS(STR,  PORTDIR,             portdir,             EPREFIX "usr/portage")
 		_Q_EVS(STR,  PORTAGE_BINHOST,     binhost,             DEFAULT_PORTAGE_BINHOST)
-		_Q_EVS(STR,  PORTAGE_TMPDIR,      port_tmpdir,         EPREFIX "/var/tmp/portage/")
-		_Q_EVS(STR,  PKGDIR,              pkgdir,              EPREFIX "/usr/portage/packages/")
-		/* XXX: This needs to not have a leading slash since some of the q
-		 *      utils use chdir(root) && chdir(portvdb).  Once those are
-		 *      fixed, we can add a proper leading slash here. */
+		_Q_EVS(STR,  PORTAGE_TMPDIR,      port_tmpdir,         EPREFIX "var/tmp/portage/")
+		_Q_EVS(STR,  PKGDIR,              pkgdir,              EPREFIX "usr/portage/packages/")
 		_Q_EVS(STR,  Q_VDB,               portvdb,             EPREFIX "var/db/pkg")
 		{ }
 
@@ -721,8 +728,11 @@
 	}
 
 	/* walk all the stacked profiles */
-	read_portage_profile(EPREFIX "/etc/make.profile", vars_to_read);
-	read_portage_profile(EPREFIX "/etc/portage/make.profile", vars_to_read);
+	s = getenv("PORTAGE_CONFIGROOT");
+	if (!s)
+		s = "/";
+	read_portage_profile(s, EPREFIX "etc/make.profile", vars_to_read);
+	read_portage_profile(s, EPREFIX "etc/portage/make.profile", vars_to_read);
 
 	/* now read all the config files */
 	for (i = 0; i < ARRAY_SIZE(files); ++i)
@@ -1152,7 +1162,7 @@
 
 #ifdef ENABLE_NLS	/* never tested */
 	setlocale(LC_ALL, "");
-	bindtextdomain(argv0, EPREFIX "/usr/share/locale");
+	bindtextdomain(argv0, EPREFIX "usr/share/locale");
 	textdomain(argv0);
 #endif
 #if 1






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-03-02  8:10 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-03-02  8:10 UTC (permalink / raw
  To: gentoo-commits

vapier      11/03/02 08:10:39

  Modified:             main.c
  Log:
  restore & simplify the ROOT slash append check

Revision  Changes    Path
1.190                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.190&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.190&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.189&r2=1.190

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.189
retrieving revision 1.190
diff -u -r1.189 -r1.190
--- main.c	2 Mar 2011 07:55:57 -0000	1.189
+++ main.c	2 Mar 2011 08:10:39 -0000	1.190
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.189 2011/03/02 07:55:57 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.190 2011/03/02 08:10:39 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -542,7 +542,7 @@
 		break;
 	case _Q_STR:
 		free(*var->value.s);
-		*var->value.s = xstrdup(value);
+		*var->value.s = xstrdup_len(value, &var->value_len);
 		break;
 	case _Q_ISTR:
 		strincr_var(var->name, value, var->value.s, &var->value_len);
@@ -678,6 +678,7 @@
 	};
 	bool nocolor = 0;
 
+	env_vars *var;
 	env_vars vars_to_read[] = {
 #define _Q_EV(t, V, set, lset, d) \
 	{ \
@@ -691,6 +692,7 @@
 #define _Q_EVS(t, V, v, d) _Q_EV(t, V, .value.s = &v, .value_len = strlen(d), d)
 #define _Q_EVB(t, V, v, d) _Q_EV(t, V, .value.b = &v, .value_len = 0, d)
 
+		_Q_EVS(STR,  ROOT,                portroot,            "/")
 		_Q_EVS(STR,  ACCEPT_LICENSE,      accept_license,      "")
 		_Q_EVS(ISTR, INSTALL_MASK,        install_mask,        "")
 		_Q_EVS(STR,  ARCH,                portarch,            "")
@@ -702,7 +704,6 @@
 		_Q_EVS(STR,  PORTAGE_BINHOST,     binhost,             DEFAULT_PORTAGE_BINHOST)
 		_Q_EVS(STR,  PORTAGE_TMPDIR,      port_tmpdir,         EPREFIX "/var/tmp/portage/")
 		_Q_EVS(STR,  PKGDIR,              pkgdir,              EPREFIX "/usr/portage/packages/")
-		_Q_EVS(STR,  ROOT,                portroot,            "/")
 		/* XXX: This needs to not have a leading slash since some of the q
 		 *      utils use chdir(root) && chdir(portvdb).  Once those are
 		 *      fixed, we can add a proper leading slash here. */
@@ -713,9 +714,11 @@
 	};
 
 	/* initialize all the strings with their default value */
-	for (i = 0; vars_to_read[i].name; ++i)
-		if (vars_to_read[i].type != _Q_BOOL)
-			*vars_to_read[i].value.s = xstrdup(vars_to_read[i].default_value);
+	for (i = 0; vars_to_read[i].name; ++i) {
+		var = &vars_to_read[i];
+		if (var->type != _Q_BOOL)
+			*var->value.s = xstrdup(var->default_value);
+	}
 
 	/* walk all the stacked profiles */
 	read_portage_profile(EPREFIX "/etc/make.profile", vars_to_read);
@@ -727,19 +730,28 @@
 
 	/* finally, check the env */
 	for (i = 0; vars_to_read[i].name; ++i) {
-		s = getenv(vars_to_read[i].name);
+		var = &vars_to_read[i];
+		s = getenv(var->name);
 		if (s != NULL)
-			set_portage_env_var(&vars_to_read[i], s);
+			set_portage_env_var(var, s);
 		if (getenv("DEBUG") IF_DEBUG(|| 1)) {
-			fprintf(stderr, "%s = ", vars_to_read[i].name);
+			fprintf(stderr, "%s = ", var->name);
 			switch (vars_to_read[i].type) {
-			case _Q_BOOL: fprintf(stderr, "%i\n", *vars_to_read[i].value.b); break;
+			case _Q_BOOL: fprintf(stderr, "%i\n", *var->value.b); break;
 			case _Q_STR:
-			case _Q_ISTR: fprintf(stderr, "%s\n", *vars_to_read[i].value.s); break;
+			case _Q_ISTR: fprintf(stderr, "%s\n", *var->value.s); break;
 			}
 		}
 	}
 
+	/* Make sure ROOT always ends in a slash */
+	var = &vars_to_read[0];
+	if ((*var->value.s)[var->value_len - 1] != '/') {
+		portroot = xrealloc(portroot, var->value_len + 2);
+		portroot[var->value_len] = '/';
+		portroot[var->value_len + 1] = '\0';
+	}
+
 	if (getenv("PORTAGE_QUIET") != NULL)
 		quiet = 1;
 






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-03-02  7:55 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-03-02  7:55 UTC (permalink / raw
  To: gentoo-commits

vapier      11/03/02 07:55:57

  Modified:             main.c
  Log:
  make sure new eat_file_at helper always sets up buf

Revision  Changes    Path
1.189                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.189&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.189&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.188&r2=1.189

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.188
retrieving revision 1.189
diff -u -r1.188 -r1.189
--- main.c	2 Mar 2011 05:31:46 -0000	1.188
+++ main.c	2 Mar 2011 07:55:57 -0000	1.189
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.188 2011/03/02 05:31:46 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.189 2011/03/02 07:55:57 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -204,8 +204,10 @@
 	int fd;
 	char ret;
 
-	if ((fd = openat(dfd, file, O_RDONLY)) == -1)
+	if ((fd = openat(dfd, file, O_RDONLY)) == -1) {
+		buf[0] = '\0';
 		return 0;
+	}
 
 	ret = eat_file_fd(fd, buf, bufsize);
 






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-03-02  5:31 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-03-02  5:31 UTC (permalink / raw
  To: gentoo-commits

vapier      11/03/02 05:31:46

  Modified:             main.c
  Log:
  fix up extended line reading to avoid buffer overflows

Revision  Changes    Path
1.188                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.188&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.188&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.187&r2=1.188

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.187
retrieving revision 1.188
diff -u -r1.187 -r1.188
--- main.c	2 Mar 2011 02:40:19 -0000	1.187
+++ main.c	2 Mar 2011 05:31:46 -0000	1.188
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.187 2011/03/02 02:40:19 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.188 2011/03/02 05:31:46 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -11,6 +11,9 @@
 #ifdef _AIX
 #define _LINUX_SOURCE_COMPAT
 #endif
+#ifndef _q_static
+# define _q_static static
+#endif
 
 #include <stdarg.h>
 #include <stdio.h>
@@ -529,7 +532,7 @@
 	const char *default_value;
 } env_vars;
 
-static void set_portage_env_var(env_vars *var, const char *value)
+_q_static void set_portage_env_var(env_vars *var, const char *value)
 {
 	switch (var->type) {
 	case _Q_BOOL:
@@ -546,7 +549,7 @@
 }
 
 /* Helper to read a portage env file (e.g. make.conf) */
-static void read_portage_env_file(const char *file, env_vars vars[])
+_q_static void read_portage_env_file(const char *file, env_vars vars[])
 {
 	size_t i, buflen, line;
 	FILE *fp;
@@ -586,22 +589,32 @@
 			while (isspace(*s))
 				++s;
 			if (*s == '"' || *s == '\'') {
+				char q = *s;
 				size_t l = strlen(s);
-				if (*s != s[l - 1]) {
+
+				if (q != s[l - 1]) {
 					/* If the last char is not a quote, then we span lines */
-					char *q = s + l + 1, *qq = NULL;
-					q[-1] = ' ';
-					while (fgets(q, buflen - (s - buf), fp) != NULL) {
-						l = strlen(q);
-						qq = strchr(q, *s);
+					size_t abuflen;
+					char *abuf, *qq;
+
+					qq = abuf = NULL;
+					while (getline(&abuf, &abuflen, fp) != -1) {
+						buf = xrealloc(buf, buflen + abuflen);
+						strcat(buf, abuf);
+						buflen += abuflen;
+
+						qq = strchr(abuf, q);
 						if (qq) {
 							*qq = '\0';
 							break;
 						}
 					}
+					free(abuf);
+
 					if (!qq)
 						warn("%s:%zu: %s: quote mismatch", file, line, vars[i].name);
-					++s;
+
+					s = buf + vars[i].name_len + 1;
 				} else {
 					s[l - 1] = '\0';
 					++s;
@@ -702,10 +715,6 @@
 		if (vars_to_read[i].type != _Q_BOOL)
 			*vars_to_read[i].value.s = xstrdup(vars_to_read[i].default_value);
 
-	if ((s = strchr(portroot, '/')) != NULL)
-		if (strlen(s) != 1)
-			strncat(portroot, "/", sizeof(portroot));
-
 	/* walk all the stacked profiles */
 	read_portage_profile(EPREFIX "/etc/make.profile", vars_to_read);
 	read_portage_profile(EPREFIX "/etc/portage/make.profile", vars_to_read);
@@ -729,10 +738,6 @@
 		}
 	}
 
-	if ((s = strchr(portroot, '/')) != NULL)
-		if (strlen(s) != 1)
-			strncat(portroot, "/", sizeof(portroot));
-
 	if (getenv("PORTAGE_QUIET") != NULL)
 		quiet = 1;
 






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-03-02  2:40 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-03-02  2:40 UTC (permalink / raw
  To: gentoo-commits

vapier      11/03/02 02:40:19

  Modified:             main.c
  Log:
  convert grab_vdb_item to eat_file, and drop the leading slash on vdb path for now

Revision  Changes    Path
1.187                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.187&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.187&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.186&r2=1.187

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.186
retrieving revision 1.187
diff -u -r1.186 -r1.187
--- main.c	28 Feb 2011 18:16:11 -0000	1.186
+++ main.c	2 Mar 2011 02:40:19 -0000	1.187
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.186 2011/02/28 18:16:11 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.187 2011/03/02 02:40:19 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -688,7 +688,10 @@
 		_Q_EVS(STR,  PORTAGE_TMPDIR,      port_tmpdir,         EPREFIX "/var/tmp/portage/")
 		_Q_EVS(STR,  PKGDIR,              pkgdir,              EPREFIX "/usr/portage/packages/")
 		_Q_EVS(STR,  ROOT,                portroot,            "/")
-		_Q_EVS(STR,  Q_VDB,               portvdb,             EPREFIX "/var/db/pkg")
+		/* XXX: This needs to not have a leading slash since some of the q
+		 *      utils use chdir(root) && chdir(portvdb).  Once those are
+		 *      fixed, we can add a proper leading slash here. */
+		_Q_EVS(STR,  Q_VDB,               portvdb,             EPREFIX "var/db/pkg")
 		{ }
 
 #undef _Q_EV
@@ -1022,21 +1025,12 @@
 	return (atom->PR_int == 0 ? atom->P : atom->PVR );
 }
 
-char *grab_vdb_item(const char *, const char *, const char *);
-char *grab_vdb_item(const char *item, const char *CATEGORY, const char *PF)
+static char *grab_vdb_item(const char *item, const char *CATEGORY, const char *PF)
 {
 	static char buf[_Q_PATH_MAX];
-	char *p;
-	FILE *fp;
 
 	snprintf(buf, sizeof(buf), "%s%s/%s/%s/%s", portroot, portvdb, CATEGORY, PF, item);
-	if ((fp = fopen(buf, "r")) == NULL)
-		return NULL;
-	if (fgets(buf, sizeof(buf), fp) == NULL)
-		buf[0] = '\0';
-	if ((p = strchr(buf, '\n')) != NULL)
-		*p = 0;
-	fclose(fp);
+	eat_file(buf, buf, sizeof(buf));
 	rmspace(buf);
 
 	return buf;






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2011-02-28 18:16 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2011-02-28 18:16 UTC (permalink / raw
  To: gentoo-commits

vapier      11/02/28 18:16:11

  Modified:             main.c
  Log:
  need stdarg for new helper

Revision  Changes    Path
1.186                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.186&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.186&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.185&r2=1.186

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.185
retrieving revision 1.186
diff -u -r1.185 -r1.186
--- main.c	23 Feb 2011 22:58:51 -0000	1.185
+++ main.c	28 Feb 2011 18:16:11 -0000	1.186
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.185 2011/02/23 22:58:51 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.186 2011/02/28 18:16:11 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -12,6 +12,7 @@
 #define _LINUX_SOURCE_COMPAT
 #endif
 
+#include <stdarg.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdbool.h>






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2010-12-19 13:15 Fabian Groffen (grobian)
  0 siblings, 0 replies; 49+ messages in thread
From: Fabian Groffen (grobian) @ 2010-12-19 13:15 UTC (permalink / raw
  To: gentoo-commits

grobian     10/12/19 13:15:31

  Modified:             main.c
  Log:
  assign freopen output to a dummy, to fix compilation on platforms where stderr is not something that can be assigned to

Revision  Changes    Path
1.179                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.179&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.179&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.178&r2=1.179

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.178
retrieving revision 1.179
diff -u -r1.178 -r1.179
--- main.c	7 Dec 2010 01:13:04 -0000	1.178
+++ main.c	19 Dec 2010 13:15:31 -0000	1.179
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.178 2010/12/07 01:13:04 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.179 2010/12/19 13:15:31 grobian Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -118,7 +118,7 @@
 	NULL
 #define COMMON_GETOPTS_CASES(applet) \
 	case 'v': ++verbose; break; \
-	case 'q': ++quiet; stderr = freopen("/dev/null", "w", stderr); break; \
+	case 'q': { FILE *dummy; ++quiet; dummy = freopen("/dev/null", "w", stderr); break; } \
 	case 'V': version_barf( applet ## _rcsid ); break; \
 	case 'h': applet ## _usage(EXIT_SUCCESS); break; \
 	case 'C': no_colors(); break; \






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2010-12-07  1:13 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2010-12-07  1:13 UTC (permalink / raw
  To: gentoo-commits

vapier      10/12/07 01:13:04

  Modified:             main.c
  Log:
  also read /usr/share/portage/config/make.globals and /etc/portage/make.profile #346569

Revision  Changes    Path
1.178                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.178&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.178&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.177&r2=1.178

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.177
retrieving revision 1.178
diff -u -r1.177 -r1.178
--- main.c	4 Dec 2010 12:37:28 -0000	1.177
+++ main.c	7 Dec 2010 01:13:04 -0000	1.178
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.177 2010/12/04 12:37:28 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.178 2010/12/07 01:13:04 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -592,6 +592,7 @@
 
 	static const char * const files[] = {
 		EPREFIX "/etc/make.globals",
+		EPREFIX "/usr/share/portage/config/make.globals",
 		EPREFIX "/etc/make.conf",
 		EPREFIX "/etc/portage/make.conf",
 	};
@@ -627,6 +628,7 @@
 
 	/* walk all the stacked profiles */
 	read_portage_profile(EPREFIX "/etc/make.profile", vars_to_read);
+	read_portage_profile(EPREFIX "/etc/portage/make.profile", vars_to_read);
 
 	/* now read all the config files */
 	for (i = 0; i < ARR_SIZE(files); ++i)






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2010-12-04 12:37 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2010-12-04 12:37 UTC (permalink / raw
  To: gentoo-commits

vapier      10/12/04 12:37:28

  Modified:             main.c
  Log:
  handle multiline quoted variables in config files #315261 by Michał Górny

Revision  Changes    Path
1.177                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.177&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.177&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.176&r2=1.177

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.176
retrieving revision 1.177
diff -u -r1.176 -r1.177
--- main.c	4 Dec 2010 12:20:43 -0000	1.176
+++ main.c	4 Dec 2010 12:37:28 -0000	1.177
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.176 2010/12/04 12:20:43 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.177 2010/12/04 12:37:28 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -522,8 +522,26 @@
 			while (isspace(*s))
 				++s;
 			if (*s == '"' || *s == '\'') {
-				++s;
-				s[strlen(s)-1] = '\0';
+				size_t l = strlen(s);
+				if (*s != s[l - 1]) {
+					/* If the last char is not a quote, then we span lines */
+					char *q = s + l + 1, *qq = NULL;
+					q[-1] = ' ';
+					while (fgets(q, sizeof(buf) - (s - buf), fp) != NULL) {
+						l = strlen(q);
+						qq = strchr(q, *s);
+						if (qq) {
+							*qq = '\0';
+							break;
+						}
+					}
+					if (!qq)
+						warn("%s: %s: quote mismatch", file, vars[i].name);
+					++s;
+				} else {
+					s[l - 1] = '\0';
+					++s;
+				}
 			}
 
 			set_portage_env_var(vars[i], s);






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2010-12-04 12:20 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2010-12-04 12:20 UTC (permalink / raw
  To: gentoo-commits

vapier      10/12/04 12:20:43

  Modified:             main.c
  Log:
  refactor portage env parsing code so we support "source" keyword in files and we handle multiple stacked parents

Revision  Changes    Path
1.176                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.176&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.176&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.175&r2=1.176

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.175
retrieving revision 1.176
diff -u -r1.175 -r1.176
--- main.c	4 Dec 2010 11:15:56 -0000	1.175
+++ main.c	4 Dec 2010 12:20:43 -0000	1.176
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.175 2010/12/04 11:15:56 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.176 2010/12/04 12:20:43 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -425,8 +425,7 @@
 	return &e;
 }
 
-char *strincr_var(const char *, char *, char *, const size_t);
-char *strincr_var(const char *name, char *s, char *value, const size_t value_len)
+static char *strincr_var(const char *name, const char *s, char *value, const size_t value_len)
 {
 	char buf[BUFSIZ];
 	char *p;
@@ -464,34 +463,122 @@
 	remove_extra_space(value);
 	/* we should sort here */
 
-	return (char *) value;
+	return value;
 }
 
-void initialize_portage_env(void)
+typedef enum { _Q_BOOL, _Q_STR, _Q_ISTR } var_types;
+typedef struct {
+	const char *name;
+	const size_t name_len;
+	const var_types type;
+	char *value;
+	const size_t value_len;
+} env_vars;
+
+static void set_portage_env_var(const env_vars var, const char *value)
 {
-	char nocolor = 0;
-	int i, f;
-	ssize_t profilelen;
-	struct stat st;
+	switch (var.type) {
+	case _Q_BOOL: *var.value = 1; break;
+	case _Q_STR: strncpy(var.value, value, var.value_len); break;
+	case _Q_ISTR: strincr_var(var.name, value, var.value, var.value_len); break;
+	}
+}
+
+/* Helper to read a portage env file (e.g. make.conf) */
+static void read_portage_env_file(const char *file, const env_vars vars[])
+{
+	size_t i;
 	FILE *fp;
 	char buf[BUFSIZE], *s, *p;
-	char *e = (char *) EPREFIX;
 
-	char profile[_Q_PATH_MAX], portage_file[_Q_PATH_MAX];
-	const char *files[] = {
-		portage_file,
+	IF_DEBUG(fprintf(stderr, "profile %s\n", file));
+
+	fp = fopen(file, "r");
+	if (fp == NULL)
+		return;
+
+	while (fgets(buf, sizeof(buf), fp) != NULL) {
+		rmspace(buf);
+		if (*buf == '#' || *buf == '\0')
+			continue;
+
+		/* Handle "source" keyword */
+		if (!strncmp(buf, "source ", 7))
+			read_portage_env_file(buf + 7, vars);
+
+		/* look for our desired variables and grab their value */
+		for (i = 0; vars[i].name; ++i) {
+			if (buf[vars[i].name_len] != '=' && buf[vars[i].name_len] != ' ')
+				continue;
+			if (strncmp(buf, vars[i].name, vars[i].name_len))
+				continue;
+
+			/* make sure we handle spaces between the varname, the =, and the value:
+			 * VAR=val   VAR = val   VAR="val"
+			 */
+			s = buf + vars[i].name_len;
+			if ((p = strchr(s, '=')) != NULL)
+				s = p + 1;
+			while (isspace(*s))
+				++s;
+			if (*s == '"' || *s == '\'') {
+				++s;
+				s[strlen(s)-1] = '\0';
+			}
+
+			set_portage_env_var(vars[i], s);
+		}
+	}
+
+	fclose(fp);
+}
+
+/* Helper to recursively read stacked make.defaults in profiles */
+static void read_portage_profile(const char *profile, const env_vars vars[])
+{
+	size_t profile_len, sub_len;
+	char profile_file[_Q_PATH_MAX], *sub_file;
+	char buf[BUFSIZE], *s;
+
+	/* initialize the base profile path */
+	profile_len = strlen(profile);
+	if (profile_len > sizeof(profile_file) - 20)
+		return;
+	strncpy(profile_file, profile, sizeof(profile_file));
+	profile_file[profile_len] = '/';
+	sub_file = profile_file + profile_len + 1;
+	sub_len = sizeof(profile_file) - profile_len - 1;
+
+	/* first consume the profile's make.defaults */
+	strncpy(sub_file, "make.defaults", sub_len);
+	read_portage_env_file(profile_file, vars);
+
+	/* now walk all the parents */
+	strncpy(sub_file, "parent", sub_len);
+	if (eat_file(profile_file, buf, sizeof(buf)) == 0)
+		return;
+	rmspace(buf);
+
+	s = strtok(buf, "\n");
+	while (s) {
+		strncpy(sub_file, s, sub_len);
+		read_portage_profile(profile_file, vars);
+		s = strtok(NULL, "\n");
+	}
+}
+
+void initialize_portage_env(void)
+{
+	size_t i;
+	char *s;
+
+	static const char * const files[] = {
 		EPREFIX "/etc/make.globals",
 		EPREFIX "/etc/make.conf",
 		EPREFIX "/etc/portage/make.conf",
 	};
-	typedef enum { _Q_BOOL, _Q_STR, _Q_ISTR } var_types;
-	struct {
-		const char *name;
-		const size_t name_len;
-		const var_types type;
-		char *value;
-		const size_t value_len;
-	} vars_to_read[] = {
+	char nocolor = 0;
+	const env_vars vars_to_read[] = {
 		{"ACCEPT_LICENSE",   14, _Q_STR,  accept_license, sizeof(accept_license)},
 		{"INSTALL_MASK",     12, _Q_ISTR, install_mask,   sizeof(install_mask)},
 		{"ARCH",              4, _Q_STR,  portarch,       sizeof(portarch)},
@@ -502,102 +589,36 @@
 		{"PORTAGE_BINHOST",  15, _Q_STR,  binhost,        sizeof(binhost)},
 		{"PORTAGE_TMPDIR",   14, _Q_STR,  port_tmpdir,    sizeof(port_tmpdir)},
 		{"PKGDIR",            6, _Q_STR,  pkgdir,         sizeof(pkgdir)},
-		{"ROOT",              4, _Q_STR,  portroot,       sizeof(portroot)}
+		{"ROOT",              4, _Q_STR,  portroot,       sizeof(portroot)},
+		{ },
 	};
 
 	s = getenv("Q_VDB");	/* #257251 */
 	if (s) {
 		strncpy(portvdb, s, sizeof(portvdb));
 		portvdb[sizeof(portvdb) - 1] = '\0';
-	} else if ((i = strlen(e)) > 1) {
+	} else if ((i = strlen(EPREFIX)) > 1) {
 		memmove(portvdb + i, portvdb, strlen(portvdb));
-		memcpy(portvdb, e + 1, i - 1);
+		memcpy(portvdb, EPREFIX + 1, i - 1);
 		portvdb[i - 1] = '/';
 	}
 
-	if ((p = strchr(portroot, '/')) != NULL)
-		if (strlen(p) != 1)
+	if ((s = strchr(portroot, '/')) != NULL)
+		if (strlen(s) != 1)
 			strncat(portroot, "/", sizeof(portroot));
 
-	f = 0;
-	profilelen = readlink(EPREFIX "/etc/make.profile", profile, sizeof(profile) - 1);
-	if (profilelen == -1)
-		strcpy(profile, EPREFIX "/etc/make.profile");
-	else
-		profile[profilelen]='\0';
-
-	if (profile[0] != '/') {
-		memmove(profile+5+strlen(EPREFIX), profile, strlen(profile)+1);
-		memcpy(profile, EPREFIX "/etc/", strlen(EPREFIX) + 5);
-	}
-	do {
-		if (f == 0)
-			snprintf(portage_file, sizeof(portage_file), "%s/make.defaults", profile);
-		IF_DEBUG(fprintf(stderr, "profile %s\n", files[f]));
+	/* walk all the stacked profiles */
+	read_portage_profile(EPREFIX "/etc/make.profile", vars_to_read);
 
-		if ((fp=fopen(files[f], "r")) != NULL) {
-			while (fgets(buf, sizeof(buf), fp) != NULL) {
-				rmspace(buf);
-				if (*buf == '#' || *buf == '\0')
-					continue;
-				for (i=0; i < ARR_SIZE(vars_to_read); ++i) {
-					if (buf[vars_to_read[i].name_len] != '=' && buf[vars_to_read[i].name_len] != ' ')
-						continue;
-					if (strncmp(buf, vars_to_read[i].name, vars_to_read[i].name_len))
-						continue;
-
-					/* make sure we handle spaces between the varname, the =, and the value:
-					 * VAR=val   VAR = val   VAR="val"
-					 */
-					s = buf + vars_to_read[i].name_len;
-					if ((p = strchr(s, '=')) != NULL)
-						s = p + 1;
-					while (isspace(*s))
-						++s;
-					if (*s == '"' || *s == '\'') {
-						++s;
-						s[strlen(s)-1] = '\0';
-					}
-
-					switch (vars_to_read[i].type) {
-					case _Q_BOOL: *vars_to_read[i].value = 1; break;
-					case _Q_STR: strncpy(vars_to_read[i].value, s, vars_to_read[i].value_len); break;
-					case _Q_ISTR: strincr_var(vars_to_read[i].name, s, vars_to_read[i].value, vars_to_read[i].value_len); break;
-					}
-				}
-			}
-			fclose(fp);
-		}
-
-		if (f > 0) {
-			if (++f < ARR_SIZE(files))
-				continue;
-			else
-				break;
-		}
-
-		/* everything below here is to figure out what the next parent is */
-		snprintf(portage_file, sizeof(portage_file), "%s/parent", profile);
-		if (stat(portage_file, &st) == 0) {
-			eat_file(portage_file, buf, sizeof(buf));
-			rmspace(buf);
-			portage_file[strlen(portage_file)-7] = '\0';
-			snprintf(profile, sizeof(profile), "%s/%s", portage_file, buf);
-		} else {
-			f = 1;
-		}
-	} while (1);
+	/* now read all the config files */
+	for (i = 0; i < ARR_SIZE(files); ++i)
+		read_portage_env_file(files[i], vars_to_read);
 
 	/* finally, check the env */
-	for (i=0; i < ARR_SIZE(vars_to_read); ++i) {
+	for (i = 0; vars_to_read[i].name; ++i) {
 		s = getenv(vars_to_read[i].name);
-		if (s != NULL) {
-			switch (vars_to_read[i].type) {
-			case _Q_BOOL: *vars_to_read[i].value = 1; break;
-			case _Q_STR: strncpy(vars_to_read[i].value, s, vars_to_read[i].value_len); break;
-			case _Q_ISTR: strincr_var(vars_to_read[i].name, s, vars_to_read[i].value, vars_to_read[i].value_len); break;
-			}
-		}
+		if (s != NULL)
+			set_portage_env_var(vars_to_read[i], s);
 		if (getenv("DEBUG") IF_DEBUG(|| 1)) {
 			fprintf(stderr, "%s = ", vars_to_read[i].name);
 			switch (vars_to_read[i].type) {
@@ -607,8 +628,8 @@
 			}
 		}
 	}
-	if ((p = strchr(portroot, '/')) != NULL)
-		if (strlen(p) != 1)
+	if ((s = strchr(portroot, '/')) != NULL)
+		if (strlen(s) != 1)
 			strncat(portroot, "/", sizeof(portroot));
 
 	if (getenv("PORTAGE_QUIET") != NULL)






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2010-12-04 11:15 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2010-12-04 11:15 UTC (permalink / raw
  To: gentoo-commits

vapier      10/12/04 11:15:56

  Modified:             main.c
  Log:
  check /etc/portage/make.conf too #346569 by Daniel Pielmeier

Revision  Changes    Path
1.175                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.175&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.175&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.174&r2=1.175

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.174
retrieving revision 1.175
diff -u -r1.174 -r1.175
--- main.c	8 Jun 2010 04:54:42 -0000	1.174
+++ main.c	4 Dec 2010 11:15:56 -0000	1.175
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.174 2010/06/08 04:54:42 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.175 2010/12/04 11:15:56 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -478,7 +478,12 @@
 	char *e = (char *) EPREFIX;
 
 	char profile[_Q_PATH_MAX], portage_file[_Q_PATH_MAX];
-	const char *files[] = {portage_file, EPREFIX "/etc/make.globals", EPREFIX "/etc/make.conf"};
+	const char *files[] = {
+		portage_file,
+		EPREFIX "/etc/make.globals",
+		EPREFIX "/etc/make.conf",
+		EPREFIX "/etc/portage/make.conf",
+	};
 	typedef enum { _Q_BOOL, _Q_STR, _Q_ISTR } var_types;
 	struct {
 		const char *name;






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2010-06-08  4:54 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2010-06-08  4:54 UTC (permalink / raw
  To: gentoo-commits

vapier      10/06/08 04:54:42

  Modified:             main.c
  Log:
  fix by Benjamin Franzke for small buffer overflow in eat_file() #311443

Revision  Changes    Path
1.174                portage-utils/main.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.174&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?rev=1.174&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/portage-utils/main.c?r1=1.173&r2=1.174

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.173
retrieving revision 1.174
diff -u -r1.173 -r1.174
--- main.c	17 Jan 2010 00:25:35 -0000	1.173
+++ main.c	8 Jun 2010 04:54:42 -0000	1.174
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.173 2010/01/17 00:25:35 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.174 2010/06/08 04:54:42 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -197,7 +197,7 @@
 	} else {
 		if (read(fd, buf, bufsize) == 0)
 			goto close_and_ret;
-		buf[bufsize] = '\0';
+		buf[bufsize - 1] = '\0';
 	}
 
 	ret = 1;






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2010-01-17  0:25 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2010-01-17  0:25 UTC (permalink / raw
  To: gentoo-commits

vapier      10/01/17 00:25:35

  Modified:             main.c
  Log:
  make sure eat_file always returns a string with a NUL

Revision  Changes    Path
1.173                portage-utils/main.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.173&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.173&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?r1=1.172&r2=1.173

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.172
retrieving revision 1.173
diff -u -r1.172 -r1.173
--- main.c	17 Jan 2010 00:24:32 -0000	1.172
+++ main.c	17 Jan 2010 00:25:35 -0000	1.173
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.172 2010/01/17 00:24:32 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.173 2010/01/17 00:25:35 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -185,6 +185,7 @@
 	if ((fd = open(file, O_RDONLY)) == -1)
 		return ret;
 
+	buf[0] = '\0';
 	if (fstat(fd, &s) != 0)
 		goto close_and_ret;
 	if (s.st_size) {






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2010-01-13 18:23 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2010-01-13 18:23 UTC (permalink / raw
  To: gentoo-commits

vapier      10/01/13 18:23:48

  Modified:             main.c
  Log:
  shut up freopen() on stderr warnings

Revision  Changes    Path
1.168                portage-utils/main.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.168&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.168&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?r1=1.167&r2=1.168

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.167
retrieving revision 1.168
diff -u -r1.167 -r1.168
--- main.c	13 Jan 2010 18:17:23 -0000	1.167
+++ main.c	13 Jan 2010 18:23:48 -0000	1.168
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.167 2010/01/13 18:17:23 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.168 2010/01/13 18:23:48 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -118,7 +118,7 @@
 	NULL
 #define COMMON_GETOPTS_CASES(applet) \
 	case 'v': ++verbose; break; \
-	case 'q': ++quiet; freopen("/dev/null", "w", stderr); break; \
+	case 'q': ++quiet; stderr = freopen("/dev/null", "w", stderr); break; \
 	case 'V': version_barf( applet ## _rcsid ); break; \
 	case 'h': applet ## _usage(EXIT_SUCCESS); break; \
 	case 'C': no_colors(); break; \






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2010-01-13  6:12 Ned Ludd (solar)
  0 siblings, 0 replies; 49+ messages in thread
From: Ned Ludd (solar) @ 2010-01-13  6:12 UTC (permalink / raw
  To: gentoo-commits

solar       10/01/13 06:12:38

  Modified:             main.c
  Log:
  - noop dead code

Revision  Changes    Path
1.166                portage-utils/main.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.166&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.166&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?r1=1.165&r2=1.166

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.165
retrieving revision 1.166
diff -u -r1.165 -r1.166
--- main.c	8 Sep 2009 16:49:56 -0000	1.165
+++ main.c	13 Jan 2010 06:12:38 -0000	1.166
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.165 2009/09/08 16:49:56 grobian Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.166 2010/01/13 06:12:38 solar Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -812,59 +812,6 @@
 		goto err;
 	len = sizeof(*ret) + s.st_size + 1;
 	ret = xzalloc(len);
-#if 0
-{	/* This is the expected format of portage-2.0 cache code NAME=var */
-	/* at any time ferringb might decide to add new entries. CDEPEND= will be no more */
-	char buf[BUFSIZ];
-	while ((fgets(buf, sizeof(buf), f)) != NULL) {
-		if ((ptr = strrchr(buf, '\n')) != NULL)
-			*ptr = 0;
-
-		if ((strncmp(buf, "DEPEND=", 7)) == 0)
-			ret->DEPEND = xstrdup(buf + 7);
-
-		if ((strncmp(buf, "DESCRIPTION=", 12)) == 0)
-			ret->DESCRIPTION = xstrdup(buf + 12);
-#if 0
-		if ((strncmp(buf, "EAPI=", 5)) == 0)
-			warnf("EAPI=%s", buf + 5);
-#endif
-		if ((strncmp(buf, "HOMEPAGE=", 9)) == 0)
-			ret->HOMEPAGE = xstrdup(buf + 9);
-
-		if ((strncmp(buf, "INHERITED=", 10)) == 0)
-			ret->INHERITED = xstrdup(buf + 10);
-
-		if ((strncmp(buf, "IUSE=", 4)) == 0)
-			ret->IUSE = xstrdup(buf + 4);
-
-		if ((strncmp(buf, "KEYWORDS=", 9)) == 0)
-			ret->KEYWORDS = xstrdup(buf + 9);
-
-		if ((strncmp(buf, "LICENSE=", 8)) == 0)
-			ret->LICENSE = xstrdup(buf + 8);
-
-		if ((strncmp(buf, "PDEPEND=", 8)) == 0)
-			ret->PDEPEND = xstrdup(buf + 8);
-
-		if ((strncmp(buf, "PROVIDE=", 8)) == 0)
-			ret->PROVIDE = xstrdup(buf + 8);
-
-		if ((strncmp(buf, "RDEPEND=", 8)) == 0)
-			ret->RDEPEND = xstrdup(buf + 8);
-
-		if ((strncmp(buf, "RESTRICT=", 9)) == 0)
-			ret->RESTRICT = xstrdup(buf + 9);
-
-		if ((strncmp(buf, "SLOT=", 5)) == 0)
-			ret->SLOT = xstrdup(buf + 5);
-
-		if ((strncmp(buf, "SRC_URI=", 8)) == 0)
-			ret->SRC_URI = xstrdup(buf + 8);
-	}
-	rewind(f);
-}
-#endif
 	ptr = (char*)ret;
 	ret->_data = ptr + sizeof(*ret);
 	if ((off_t)fread(ret->_data, 1, s.st_size, f) != s.st_size)






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2009-09-08 16:49 Fabian Groffen (grobian)
  0 siblings, 0 replies; 49+ messages in thread
From: Fabian Groffen (grobian) @ 2009-09-08 16:49 UTC (permalink / raw
  To: gentoo-commits

grobian     09/09/08 16:49:56

  Modified:             main.c
  Log:
  Fix compilation on FreeMiNT by dropping some conflicting but unused code, thanks Alan Hourihane, bug #283497

Revision  Changes    Path
1.165                portage-utils/main.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.165&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.165&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?r1=1.164&r2=1.165

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.164
retrieving revision 1.165
diff -u -r1.164 -r1.165
--- main.c	8 Sep 2009 03:05:40 -0000	1.164
+++ main.c	8 Sep 2009 16:49:56 -0000	1.165
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.164 2009/09/08 03:05:40 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.165 2009/09/08 16:49:56 grobian Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -29,7 +29,6 @@
 #include <libgen.h>
 #include <limits.h>
 #include <assert.h>
-#include <dlfcn.h>
 #include "main.h"
 
 /* prototypes and such */
@@ -46,7 +45,6 @@
 int lookup_applet_idx(const char *);
 
 /* variables to control runtime behavior */
-void *dlhandle = NULL;
 char *module_name = NULL;
 char *modpath = NULL;
 char exact = 0;






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2009-08-23  6:07 Ned Ludd (solar)
  0 siblings, 0 replies; 49+ messages in thread
From: Ned Ludd (solar) @ 2009-08-23  6:07 UTC (permalink / raw
  To: gentoo-commits

solar       09/08/23 06:07:08

  Modified:             main.c
  Log:
  - old patch that needs pushing. I think it fixed the -rX problem with qpkg

Revision  Changes    Path
1.163                portage-utils/main.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.163&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.163&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?r1=1.162&r2=1.163

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.162
retrieving revision 1.163
diff -u -r1.162 -r1.163
--- main.c	24 Mar 2009 20:53:24 -0000	1.162
+++ main.c	23 Aug 2009 06:07:07 -0000	1.163
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.162 2009/03/24 20:53:24 grobian Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.163 2009/08/23 06:07:07 solar Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -946,6 +946,11 @@
 	free(cache);
 }
 
+char *atom_to_pvr(depend_atom *atom);
+char *atom_to_pvr(depend_atom *atom) {
+	return (atom->PR_int == 0 ? atom->P : atom->PVR );
+}
+
 char *grab_vdb_item(const char *, const char *, const char *);
 char *grab_vdb_item(const char *item, const char *CATEGORY, const char *PF)
 {






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2009-03-15 10:03 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2009-03-15 10:03 UTC (permalink / raw
  To: gentoo-commits

vapier      09/03/15 10:03:42

  Modified:             main.c
  Log:
  allow people to override default vdb path with Q_VDB env var #257251

Revision  Changes    Path
1.160                portage-utils/main.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.160&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.160&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?r1=1.159&r2=1.160

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.159
retrieving revision 1.160
diff -u -r1.159 -r1.160
--- main.c	7 Dec 2008 03:43:07 -0000	1.159
+++ main.c	15 Mar 2009 10:03:42 -0000	1.160
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.159 2008/12/07 03:43:07 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.160 2009/03/15 10:03:42 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -55,7 +55,7 @@
 char reinitialize_metacache = 0;
 char portdir[_Q_PATH_MAX] = "/usr/portage";
 char portarch[20] = "";
-char portvdb[] = "var/db/pkg";
+char portvdb[_Q_PATH_MAX] = "var/db/pkg";
 char portcachedir[] = "metadata/cache";
 char portroot[_Q_PATH_MAX] = "/";
 char config_protect[_Q_PATH_MAX] = "/etc/";
@@ -496,6 +496,12 @@
 		{"ROOT",              4, _Q_STR,  portroot,       sizeof(portroot)}
 	};
 
+	s = getenv("Q_VDB");	/* #257251 */
+	if (s) {
+		strncpy(portvdb, s, sizeof(portvdb));
+		portvdb[sizeof(portvdb) - 1] = '\0';
+	}
+
 	if ((p = strchr(portroot, '/')) != NULL)
 		if (strlen(p) != 1)
 			strncat(portroot, "/", sizeof(portroot));






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2008-12-07  3:43 Ned Ludd (solar)
  0 siblings, 0 replies; 49+ messages in thread
From: Ned Ludd (solar) @ 2008-12-07  3:43 UTC (permalink / raw
  To: gentoo-commits

solar       08/12/07 03:43:07

  Modified:             main.c
  Log:
  - append trailing slash to ${ROOT}

Revision  Changes    Path
1.159                portage-utils/main.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.159&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.159&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?r1=1.158&r2=1.159

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.158
retrieving revision 1.159
diff -u -r1.158 -r1.159
--- main.c	4 Nov 2008 07:23:22 -0000	1.158
+++ main.c	7 Dec 2008 03:43:07 -0000	1.159
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.158 2008/11/04 07:23:22 pva Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.159 2008/12/07 03:43:07 solar Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -588,6 +588,10 @@
 			}
 		}
 	}
+	if ((p = strchr(portroot, '/')) != NULL)
+		if (strlen(p) != 1)
+			strncat(portroot, "/", sizeof(portroot));
+
 	if (getenv("PORTAGE_QUIET") != NULL)
 		quiet = 1;
 






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2008-09-26 16:42 Ned Ludd (solar)
  0 siblings, 0 replies; 49+ messages in thread
From: Ned Ludd (solar) @ 2008-09-26 16:42 UTC (permalink / raw
  To: gentoo-commits

solar       08/09/26 16:42:02

  Modified:             main.c
  Log:
  - add new PROPERTIES field for the metadata cache handler

Revision  Changes    Path
1.157                portage-utils/main.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.157&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.157&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?r1=1.156&r2=1.157

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.156
retrieving revision 1.157
diff -u -r1.156 -r1.157
--- main.c	13 Sep 2008 18:58:28 -0000	1.156
+++ main.c	26 Sep 2008 16:42:01 -0000	1.157
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.156 2008/09/13 18:58:28 grobian Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.157 2008/09/26 16:42:01 solar Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -756,6 +756,7 @@
 	char *PDEPEND;
 	char *PROVIDE;       /* line 14 */
 	char *EAPI;
+	char *PROPERTIES;
 	depend_atom *atom;
 } portage_cache;
 
@@ -857,6 +858,7 @@
 	next_line(CDEPEND, PDEPEND)
 	next_line(PDEPEND, PROVIDE)
 	next_line(PROVIDE, EAPI)
+	next_line(EAPI, PROPERTIES)
 #undef next_line
 	ptr = strchr(ptr+1, '\n');
 	*ptr = '\0';
@@ -891,6 +893,7 @@
 	printf("PDEPEND    : %s\n", cache->PDEPEND);
 	printf("PROVIDE    : %s\n", cache->PROVIDE);
 	printf("EAPI       : %s\n", cache->EAPI);
+	printf("PROPERTIES : %s\n", cache->PROPERTIES);
 	if (!cache->atom) return;
 	printf("CATEGORY   : %s\n", cache->atom->CATEGORY);
 	printf("PN         : %s\n", cache->atom->PN);






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2008-09-13 18:58 Fabian Groffen (grobian)
  0 siblings, 0 replies; 49+ messages in thread
From: Fabian Groffen (grobian) @ 2008-09-13 18:58 UTC (permalink / raw
  To: gentoo-commits

grobian     08/09/13 18:58:28

  Modified:             main.c
  Log:
  strnlen is a GNU extension, use strlen instead.

Revision  Changes    Path
1.156                portage-utils/main.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.156&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.156&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?r1=1.155&r2=1.156

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.155
retrieving revision 1.156
diff -u -r1.155 -r1.156
--- main.c	11 May 2008 17:25:00 -0000	1.155
+++ main.c	13 Sep 2008 18:58:28 -0000	1.156
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.155 2008/05/11 17:25:00 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.156 2008/09/13 18:58:28 grobian Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -482,14 +482,14 @@
 			strncat(portroot, "/", sizeof(portroot));
 
 	f = 0;
-	profilelen = readlink("/etc/make.profile", profile, sizeof(profile));
+	profilelen = readlink("/etc/make.profile", profile, sizeof(profile) - 1);
 	if (profilelen == -1)
 		strcpy(profile, "/etc/make.profile");
 	else
 		profile[profilelen]='\0';
 
 	if (profile[0] != '/') {
-		memmove(profile+5, profile, strnlen(profile, (size_t)profilelen)+1);
+		memmove(profile+5, profile, strlen(profile)+1);
 		memcpy(profile, "/etc/", 5);
 	}
 	do {






^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2008-05-11 17:25 Ned Ludd (solar)
  0 siblings, 0 replies; 49+ messages in thread
From: Ned Ludd (solar) @ 2008-05-11 17:25 UTC (permalink / raw
  To: gentoo-commits

solar       08/05/11 17:25:01

  Modified:             main.c
  Log:
  - fix-uninitialised-value. Bug 221307 - thanks Arvid Norlander

Revision  Changes    Path
1.155                portage-utils/main.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.155&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.155&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?r1=1.154&r2=1.155

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.154
retrieving revision 1.155
diff -u -r1.154 -r1.155
--- main.c	15 Mar 2008 16:28:06 -0000	1.154
+++ main.c	11 May 2008 17:25:00 -0000	1.155
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.154 2008/03/15 16:28:06 grobian Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.155 2008/05/11 17:25:00 solar Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -449,6 +449,7 @@
 {
 	char nocolor = 0;
 	int i, f;
+	ssize_t profilelen;
 	struct stat st;
 	FILE *fp;
 	char buf[BUFSIZE], *s, *p;
@@ -481,10 +482,14 @@
 			strncat(portroot, "/", sizeof(portroot));
 
 	f = 0;
-	if (readlink("/etc/make.profile", profile, sizeof(profile)) == -1)
+	profilelen = readlink("/etc/make.profile", profile, sizeof(profile));
+	if (profilelen == -1)
 		strcpy(profile, "/etc/make.profile");
+	else
+		profile[profilelen]='\0';
+
 	if (profile[0] != '/') {
-		memmove(profile+5, profile, strlen(profile));
+		memmove(profile+5, profile, strnlen(profile, (size_t)profilelen)+1);
 		memcpy(profile, "/etc/", 5);
 	}
 	do {
@@ -709,11 +714,7 @@
 
 	warn("Finished %u entries in %d.%06d seconds", count, secs, frac);
 	if (secs > 120)
-#ifdef __linux__
-		warn("You should consider a faster file system such as reiserfs for PORTDIR='%s'", portdir);
-#else
 		warn("You should consider using the noatime mount option for PORTDIR='%s' if it's not already enabled", portdir);
-#endif
 ret:
 	return cache_file;
 }



-- 
gentoo-commits@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2008-01-16  7:09 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2008-01-16  7:09 UTC (permalink / raw
  To: gentoo-commits

vapier      08/01/16 07:09:07

  Modified:             main.c
  Log:
  fix edge case when exploding an atom without a version

Revision  Changes    Path
1.152                portage-utils/main.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.152&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.152&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?r1=1.151&r2=1.152

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.151
retrieving revision 1.152
diff -u -r1.151 -r1.152
--- main.c	15 Jan 2008 08:03:35 -0000	1.151
+++ main.c	16 Jan 2008 07:09:06 -0000	1.152
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.151 2008/01/15 08:03:35 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.152 2008/01/16 07:09:06 vapier Exp $
  *
  * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
@@ -11,6 +11,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <stdbool.h>
 #include <sys/types.h>
 #include <string.h>
 #include <unistd.h>



-- 
gentoo-commits@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2008-01-15  8:03 Mike Frysinger (vapier)
  0 siblings, 0 replies; 49+ messages in thread
From: Mike Frysinger (vapier) @ 2008-01-15  8:03 UTC (permalink / raw
  To: gentoo-commits

vapier      08/01/15 08:03:35

  Modified:             main.c
  Log:
  define and use xrealloc()

Revision  Changes    Path
1.151                portage-utils/main.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.151&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.151&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?r1=1.150&r2=1.151

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -r1.150 -r1.151
--- main.c	24 Nov 2007 08:53:35 -0000	1.150
+++ main.c	15 Jan 2008 08:03:35 -0000	1.151
@@ -1,10 +1,10 @@
 /*
- * Copyright 2005-2007 Gentoo Foundation
+ * Copyright 2005-2008 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.150 2007/11/24 08:53:35 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.151 2008/01/15 08:03:35 vapier Exp $
  *
- * Copyright 2005-2007 Ned Ludd        - <solar@gentoo.org>
- * Copyright 2005-2007 Mike Frysinger  - <vapier@gentoo.org>
+ * Copyright 2005-2008 Ned Ludd        - <solar@gentoo.org>
+ * Copyright 2005-2008 Mike Frysinger  - <vapier@gentoo.org>
  */
 
 #define _GNU_SOURCE
@@ -303,7 +303,7 @@
 
 		if (*argc == curc) {
 			curc *= 2;
-			(*argv) = (char **) realloc(*argv, sizeof(char **) * curc);
+			(*argv) = xrealloc(*argv, sizeof(char **) * curc);
 		}
 		(*argv)[*argc] = xstrdup(str);
 		(*argc)++;



-- 
gentoo-commits@lists.gentoo.org mailing list



^ permalink raw reply	[flat|nested] 49+ messages in thread
* [gentoo-commits] gentoo-projects commit in portage-utils: main.c
@ 2007-10-28 21:22 Ned Ludd (solar)
  0 siblings, 0 replies; 49+ messages in thread
From: Ned Ludd (solar) @ 2007-10-28 21:22 UTC (permalink / raw
  To: gentoo-commits

solar       07/10/28 21:22:18

  Modified:             main.c
  Log:
  - fix up slotting support a little. raised default warn time about slow file systems so fanboys shutup

Revision  Changes    Path
1.148                portage-utils/main.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.148&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?rev=1.148&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/portage-utils/main.c?r1=1.147&r2=1.148

Index: main.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/portage-utils/main.c,v
retrieving revision 1.147
retrieving revision 1.148
diff -u -r1.147 -r1.148
--- main.c	30 May 2007 23:17:24 -0000	1.147
+++ main.c	28 Oct 2007 21:22:17 -0000	1.148
@@ -1,7 +1,7 @@
 /*
  * Copyright 2005-2007 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.147 2007/05/30 23:17:24 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.148 2007/10/28 21:22:17 solar Exp $
  *
  * Copyright 2005-2007 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2005-2007 Mike Frysinger  - <vapier@gentoo.org>
@@ -685,7 +685,7 @@
 	if (frac < 0) frac = 0;
 
 	warn("Finished %u entries in %d.%06d seconds", count, secs, frac);
-	if (secs > 100)
+	if (secs > 120)
 #ifdef __linux__
 		warn("You should consider a faster file system such as reiserfs for PORTDIR='%s'", portdir);
 #else
@@ -908,6 +908,7 @@
 	int dfd, i;
 
 	char buf[_Q_PATH_MAX];
+	char slot[_Q_PATH_MAX];
 	static char savecwd[_POSIX_PATH_MAX];
 
 	struct dirent **cat;
@@ -947,11 +948,14 @@
 			if ((atom = atom_explode(buf)) == NULL)
 				continue;
 
+			slot[0] = '0';
+			slot[1] = 0;
 			strncat(buf, "/SLOT", sizeof(buf));
 			if (access(buf, R_OK) == 0) {
 				eat_file(buf, buf, sizeof(buf));
 				rmspace(buf);
-				if (strcmp(buf, "0") != 0);
+				if (strcmp(buf, "0") != 0)
+					strncpy(slot, buf, sizeof(slot));
 			}
 
 			if (fullcpv) {
@@ -962,9 +966,8 @@
 			} else {
 				snprintf(buf, sizeof(buf), "%s/%s", atom->CATEGORY, atom->PN);
 			}
-
 			atom_implode(atom);
-			cpf = add_set(buf, "0", cpf);
+			cpf = add_set(buf, slot, cpf);
 		}
 		chdir("..");
 		while (dfd--) free(pf[dfd]);



-- 
gentoo-commits@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2013-10-31  2:40 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-17  0:24 [gentoo-commits] gentoo-projects commit in portage-utils: main.c Mike Frysinger (vapier)
  -- strict thread matches above, loose matches on Subject: below --
2013-10-31  2:40 Mike Frysinger (vapier)
2013-05-23  3:19 Mike Frysinger (vapier)
2013-04-03 18:39 Mike Frysinger (vapier)
2012-10-28 10:29 Mike Frysinger (vapier)
2012-10-28 10:11 Mike Frysinger (vapier)
2012-08-13 21:16 Robin H. Johnson (robbat2)
2012-08-04 20:24 Mike Frysinger (vapier)
2012-06-04 23:13 Mike Frysinger (vapier)
2012-05-19 13:20 Mike Frysinger (vapier)
2012-01-08 17:41 Ned Ludd (solar)
2011-12-22 20:26 Mike Frysinger (vapier)
2011-12-22 17:49 Mike Frysinger (vapier)
2011-12-22 17:11 Mike Frysinger (vapier)
2011-12-21  4:35 Mike Frysinger (vapier)
2011-12-19 20:09 Mike Frysinger (vapier)
2011-12-19  4:39 Mike Frysinger (vapier)
2011-12-19  4:37 Mike Frysinger (vapier)
2011-12-18 20:35 Mike Frysinger (vapier)
2011-12-18 20:21 Mike Frysinger (vapier)
2011-12-18  3:04 Mike Frysinger (vapier)
2011-12-12 21:42 Fabian Groffen (grobian)
2011-12-09 16:50 Mike Frysinger (vapier)
2011-10-02 22:08 Mike Frysinger (vapier)
2011-03-17  3:04 Mike Frysinger (vapier)
2011-03-02  8:10 Mike Frysinger (vapier)
2011-03-02  7:55 Mike Frysinger (vapier)
2011-03-02  5:31 Mike Frysinger (vapier)
2011-03-02  2:40 Mike Frysinger (vapier)
2011-02-28 18:16 Mike Frysinger (vapier)
2010-12-19 13:15 Fabian Groffen (grobian)
2010-12-07  1:13 Mike Frysinger (vapier)
2010-12-04 12:37 Mike Frysinger (vapier)
2010-12-04 12:20 Mike Frysinger (vapier)
2010-12-04 11:15 Mike Frysinger (vapier)
2010-06-08  4:54 Mike Frysinger (vapier)
2010-01-17  0:25 Mike Frysinger (vapier)
2010-01-13 18:23 Mike Frysinger (vapier)
2010-01-13  6:12 Ned Ludd (solar)
2009-09-08 16:49 Fabian Groffen (grobian)
2009-08-23  6:07 Ned Ludd (solar)
2009-03-15 10:03 Mike Frysinger (vapier)
2008-12-07  3:43 Ned Ludd (solar)
2008-09-26 16:42 Ned Ludd (solar)
2008-09-13 18:58 Fabian Groffen (grobian)
2008-05-11 17:25 Ned Ludd (solar)
2008-01-16  7:09 Mike Frysinger (vapier)
2008-01-15  8:03 Mike Frysinger (vapier)
2007-10-28 21:22 Ned Ludd (solar)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox