public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Portage suggestion
@ 2004-02-13 12:24 Timo Lindemann
  2004-02-13 12:44 ` James Harlow
                   ` (8 more replies)
  0 siblings, 9 replies; 32+ messages in thread
From: Timo Lindemann @ 2004-02-13 12:24 UTC (permalink / raw
  To: gentoo-dev@lists.gentoo.org


Hi all,

Everytime I install a Gentoo on a system, I curse and scream about one of 
the major flaws in portage.

Whenever I want just one program emerged, say, on a laptop using xfce4 on 
xfree, USE="-kde -esd -arts
  -alsa -oss":
I want to emerge anjuta, portage wants gnomelibs, which in turn want esd. 
It totally ignores my
useflags, the fact that this notebook does not HAVE sound hardware. OK, 
that would be too much for
portage to know, but the USE is ignored anyway. I just want to run anjuta 
with xfce4.
Okay, I think. Lets emerge all that shit, and get over with.
Next thing, I want licq. I pretend. Guess what appears on the list? artsd! 
I cant stand it, really.
Gentoo would be such a nice distro, but it is ALL BLOATED. The fact that 
it is the best distro out
there does make up to that, but it just would be NICER it didn't have to. 
So I suggest: Let there be
a mode for Portage where all CRITICAL dependencies are shown, what the 
program I want NEEDS to run.
I dont want to have an entire OS installed if I just want one program. 
artsd is not a dep from licq,
but somehow entagled in that kde thing, which I dont WANT to have. So, a 
distinction needs to be
made between USEFUL deps, or standard deps, and CRITICAL deps, or needed 
deps.

What do you think?

Regards,

-- 
Timo Lindemann
Empty coke in the desert.

--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 32+ messages in thread
* [gentoo-dev] portage suggestion
@ 2002-12-15 18:23 Jean-Francois Patenaude
  2002-12-15 18:26 ` Mike Frysinger
  0 siblings, 1 reply; 32+ messages in thread
From: Jean-Francois Patenaude @ 2002-12-15 18:23 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 524 bytes --]


Related to this comment in the emerge manpage:

--update (-u)
	Updates packages to the most recent version available.	Note that
	--update does not have	full functionality  yet.   It  will  not
	automatically update dependencies of packages in the world file,
	unless they too are in the world file.

I created a kind of "emerge --update universe" that you can find
in the attached patch.  Comments are welcome !

The patch applies over portage 2.0.45-r5
md5sum of the original emerge: 7eb429e274ff9713270b1a7b3649c22e

Jf.

[-- Attachment #2: Type: text/plain, Size: 5203 bytes --]

--- emerge	2002-12-13 19:15:34.000000000 -0500
+++ emerge-universe	2002-12-15 12:58:00.000000000 -0500
@@ -14,7 +14,7 @@
 #number of ebuilds merged
 merged=0
 params=["selective", "deep", "self", "recurse", "empty"]
-actions=["clean", "config", "help", "info", "prune", "rsync", "search", "sync", "system", "unmerge", "world", "inject", "regen", "depclean"]
+actions=["clean", "config", "help", "info", "prune", "rsync", "search", "sync", "system", "unmerge", "world", "universe", "inject", "regen", "depclean"]
 options=["--autoclean", "--deep", "--selective", "--buildpkg", "--debug", "--nodeps", "--emptytree", "--fetchonly", 
 "--noreplace", "--onlydeps", "--pretend", "--usepkg", "--usepkgonly", "--searchdesc", "--verbose", "--update", "--help", "--oneshot", "--version"]
 
@@ -82,6 +82,7 @@
 		print "              Cleans the system by removing outdated packages which will not"
 		print "              remove functionalities or prevent your system from working."
 		print "              The arguments can be in several different formats :"
+		print "              * universe "
 		print "              * world "
 		print "              * system "
 		print "              * /var/db/pkg/category/package-version, or"
@@ -351,8 +352,8 @@
 	else:
 		myfiles.append(x)
 
-if (myaction in ["world", "system"]) and myfiles:
-	print "emerge: please specify a package class (\"world\" or \"system\") or individual packages, but not both."
+if (myaction in ["universe", "world", "system"]) and myfiles:
+	print "emerge: please specify a package class (\"universe\", \"world\" or \"system\") or individual packages, but not both."
 	sys.exit(1)
 
 # Always create packages if FEATURES=buildpkg
@@ -384,7 +385,7 @@
 		pass
 	elif (not myaction) and (not myfiles):
 		pass
-	elif ("--pretend" in myopts) and (myaction in ["world","system","clean","prune","unmerge"]):
+	elif ("--pretend" in myopts) and (myaction in ["universe", "world","system","clean","prune","unmerge"]):
 		pass
 	else:
 		print "myaction",myaction
@@ -420,7 +421,7 @@
 	add.extend(["deep"])
 if "--selective" in myopts:
 	add.extend(["selective"])
-if myaction in ["world","system"]:
+if myaction in ["universe", "world","system"]:
 	add.extend(["selective"])
 elif myaction in ["depclean"]:
 	sub.extend(["selective"])
@@ -597,6 +598,8 @@
 			sys.exit(1)
 	elif mode=="world":
 		pfile=portage.root+"var/cache/edb/world"
+	elif mode=="universe":
+		pfile=portage.root+"var/cache/edb/universe"
 	try:
 		myfile=open(pfile,"r")
 		mylines=myfile.readlines()
@@ -895,6 +898,27 @@
 		global syslist
 		if mode=="system":
 			mylist=syslist
+		elif mode=="universe":
+			#universe mode
+			universelist=getlist("universe")
+			sysdict=genericdict(syslist)
+			universedict=genericdict(universelist)
+			#we're effectively upgrading sysdict to contain all new deps from universedict
+			for x in universedict.keys():
+				#only add the universe node if the package is:
+				#actually installed -- this prevents the remerging of already unmerged packages when we do a universe --update;
+				#actually available -- this prevents emerge from bombing out due to no match being found (we want a silent ignore)
+				if "empty" in myparams:
+					if portage.db["/"]["vartree"].dbapi.match(x):
+						sysdict[x]=universedict[x]
+				elif portage.db[portage.root]["vartree"].dbapi.match(x):
+					#package is installed
+					sysdict[x]=universedict[x]
+				else:
+					print "\n*** Package in universe file is not installed: "+x
+			mylist=[]
+			for x in sysdict.keys():
+				mylist.append(sysdict[x])
 		else:
 			#world mode
 			worldlist=getlist("world")
@@ -1151,11 +1175,11 @@
 	candidate_catpkgs=[]
 	global_unmerge=0
 	
-	if not unmerge_files or "world" in unmerge_files or "system" in unmerge_files:
+	if not unmerge_files or "world" in unmerge_files or "system" in unmerge_files or "universe" in unmerge_files:
 		if "unmerge"==unmerge_action:
 			print
 			print bold("emerge unmerge")+" can only be used with specific package names, not with "+bold("world")+" or"
-			print bold("system")+" targets."
+			print bold("system")+" or "+bold("universe")+" targets."
 			print
 			return 0
 		else:
@@ -1164,7 +1188,7 @@
 	localtree=portage.db[portage.root]["vartree"]
 	# process all arguments and add all valid db entries to candidate_catpkgs
 	if global_unmerge:
-		if not unmerge_files or "world" in unmerge_files:
+		if not unmerge_files or "world" in unmerge_files or "universe" in unmerge_files:
 			candidate_catpkgs.extend(localtree.getallnodes())	
 		elif "system" in unmerge_files:
 			candidate_catpkgs.extend(getlist("system"))
@@ -1686,7 +1710,11 @@
 	mydepgraph=depgraph(myaction,myopts)
 	favorites=[]
 	syslist=getlist("system")
-	if myaction in ["system","world"]:
+	if myaction in ["system","world","universe"]:
+		if "universe"==myaction:
+			print "Creating universe",
+			os.system ( '/usr/lib/portage/bin/pkglist | /bin/sed \'s/\-[0-9].*$//\' > /var/cache/edb/universe' )
+			print "...done!"
 		print "Calculating",myaction,"dependencies  ",
 		if not mydepgraph.xcreate(myaction):
 			sys.exit(1)

[-- Attachment #3: Type: text/plain, Size: 37 bytes --]

--
gentoo-dev@gentoo.org mailing list

^ permalink raw reply	[flat|nested] 32+ messages in thread
* [gentoo-dev] Portage suggestion
@ 2002-08-13 14:44 Mezei Zoltan
  2002-08-13 15:09 ` Dan Naumov
  0 siblings, 1 reply; 32+ messages in thread
From: Mezei Zoltan @ 2002-08-13 14:44 UTC (permalink / raw
  To: gentoo-dev

Hi!

Is there a way to do something like this:
want to emerge programs A and B
portage downloads A
portage compiles A and at he same time portage downloads B
when compilation of A finishes, portage compiles B
That would be a great feature...

Is is possible?

Zizi





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

end of thread, other threads:[~2004-02-14 19:01 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-02-13 12:24 [gentoo-dev] Portage suggestion Timo Lindemann
2004-02-13 12:44 ` James Harlow
2004-02-13 12:54   ` Spider
2004-02-13 13:03     ` James Harlow
2004-02-13 13:10       ` Patrick Kursawe
2004-02-13 13:29         ` Paul de Vrieze
2004-02-13 13:31         ` James Harlow
2004-02-13 13:46       ` Spider
2004-02-13 14:05         ` Paul de Vrieze
2004-02-13 13:04     ` Paul de Vrieze
2004-02-13 17:29   ` Kumba
2004-02-13 12:46 ` neuron
2004-02-13 12:48 ` neuron
2004-02-13 12:53 ` Paul de Vrieze
2004-02-13 12:53 ` Ciaran McCreesh
2004-02-13 12:54 ` Patrick Kursawe
2004-02-13 12:58 ` Bartosch Pixa
2004-02-13 17:45 ` Mike Frysinger
2004-02-14 18:28 ` foser
2004-02-14 18:54   ` Thomas de Grenier de Latour
2004-02-14 18:59     ` Mike Frysinger
2004-02-14 19:01     ` Spider
  -- strict thread matches above, loose matches on Subject: below --
2002-12-15 18:23 [gentoo-dev] portage suggestion Jean-Francois Patenaude
2002-12-15 18:26 ` Mike Frysinger
2002-08-13 14:44 [gentoo-dev] Portage suggestion Mezei Zoltan
2002-08-13 15:09 ` Dan Naumov
2002-08-13 15:27   ` Mezei Zoltan
2002-08-13 16:11     ` Christian Skarby
2002-08-13 16:10       ` Thomas T. Veldhouse
2002-08-14  1:57         ` Charles Lacour
2002-08-13 16:24       ` Christian Skarby
2002-08-13 15:27   ` Hannes Mehnert

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