On Fri, 13 Oct 2006 20:00:05 -0400
Alec Warner <[EMAIL PROTECTED]> wrote:
> As for the GLEP itself; I'd like to see some patches, particularly
> for the resolver to show the restriction up front. Also a patch to
> the ebuild.5 manpage for RESTRICT=interactive prior to seeing the
> glep get approved.
Attached patch added as reference implementation.
Marius
--
Public Key at http://www.genone.de/info/gpg-key.pub
In the beginning, there was nothing. And God said, 'Let there be
Light.' And there was still nothing, but you could see a bit better.
--- bin/emerge.org 2006-10-14 03:24:00.000000000 +0200
+++ bin/emerge 2006-10-14 04:13:34.000000000 +0200
@@ -1579,10 +1579,10 @@
elif "ebuild" == pkg_type:
self.useFlags[myroot][pkg_key] =
pkgsettings["USE"].split()
- fetch=" "
+ restrict=" "
if x[0]=="blocks":
- addl=""+red("B")+" "+fetch+" "
+ addl=""+red("B")+" "+restrict+" "
resolved =
self.trees[x[1]]["vartree"].resolve_key(x[2])
print "["+x[0]+" "+addl+"]",red(resolved),
block_parents = self.digraph.parent_nodes("
".join(x))
@@ -1595,20 +1595,26 @@
print bad("(is blocking %s)") %
block_parents
else:
mydbapi =
self.trees[myroot][self.pkg_tree_map[pkg_type]].dbapi
- if x[3] != "nomerge" and \
- "fetch" in portdb.aux_get(
- x[2], ["RESTRICT"])[0].split():
- fetch = red("F")
- if portdb.fetch_check(
- pkg_key,
self.useFlags[myroot][pkg_key]):
- fetch = green("f")
+ restrict_list = portdb.aux_get(x[2],
["RESTRICT"])[0].split()
+ if x[3] != "nomerge":
+ if "fetch" in restrict_list:
+ restrict = "F"
+ if "interactive" in
restrict_list:
+ restrict = "P"
+ if portdb.fetch_check(
+ pkg_key,
self.useFlags[myroot][pkg_key]):
+ restrict =
green(restrict.lower())
+ else:
+ restrict = red(restrict)
+ elif "interactive" in restrict_list:
+ restrict = red("i")
#we need to use "--emptrytree" testing here
rather than "empty" param testing because "empty"
#param is used for -u, where you still *do*
want to see when something is being upgraded.
myoldbest=""
if "--emptytree" not in self.myopts and \
self.trees[x[1]]["vartree"].exists_specific(x[2]):
- addl=" "+yellow("R")+fetch+" "
+ addl=" "+yellow("R")+restrict+" "
elif "--emptytree" not in self.myopts and \
self.trees[x[1]]["vartree"].exists_specific_cat(x[2]):
mynewslot = mydbapi.aux_get(pkg_key,
["SLOT"])[0]
@@ -1618,7 +1624,7 @@
if mynewslot ==
vartree.getslot(inst_pkg)]
if myinslotlist:
myoldbest=portage.best(myinslotlist)
- addl=" "+fetch
+ addl=" "+restrict
if
portage.pkgcmp(portage.pkgsplit(x[2]), portage.pkgsplit(myoldbest)) < 0:
# Downgrade in slot
addl+=turquoise("U")+blue("D")
@@ -1627,7 +1633,7 @@
addl+=turquoise("U")+" "
else:
# New slot, mark it new.
- addl=" "+green("NS")+fetch+" "
+ addl=" "+green("NS")+restrict+"
"
if "--changelog" in self.myopts:
changelogs.extend(self.calc_changelog(
@@ -1635,7 +1641,7 @@
self.trees[x[1]]["vartree"].dep_bestmatch(
'/'.join(portage.catpkgsplit(x[2])[:2])), x[2]))
else:
- addl=" "+green("N")+" "+fetch+" "
+ addl=" "+green("N")+" "+restrict+" "
verboseadd=""
--- man/ebuild.5.org 2006-08-20 14:27:20.434923000 +0200
+++ man/ebuild.5 2006-10-14 04:18:10.000000000 +0200
@@ -335,6 +335,10 @@
.I primaryuri
fetch from URL's in \fBSRC_URI\fR before \fBGENTOO_MIRRORS\fR.
.TP
+.I interactive
+indicate that this ebuild typically requires user interaction (like inserting
+physical media).
+.TP
.I strip
final binaries/libraries will not be stripped of debug symbols.
.TP
--- man/emerge.1.org 2006-07-15 03:38:27.072219750 +0200
+++ man/emerge.1 2006-10-14 04:27:03.000000000 +0200
@@ -410,6 +430,19 @@
.B [ebuild f ] media\-video/realplayer\-8\-r6
The realplayer package's files are already downloaded.
.TP
+.B [ebuild i ] games\-fps/unreal\-226
+Unreal requires user interaction during the build process.
+.TP
+.B [ebuild P ] games\-strategy/freecraft\-1.18\-r3
+Freecraft requires user interaction during the build process and you have to
+fetch its sources manually (this is the combination of the first realplayer
+example and the Unreal example above).
+.TP
+.B [ebuild p ] games\-strategy/freecraft\-1.18\-r3
+Freecraft requires user interaction during the build process and has its source
+files already downloaded (this is the combination of the second realplayer
+example and the Unreal example above).
+.TP
.B [ebuild U ] net\-fs/samba\-2.2.8_pre1 [2.2.7a]
Samba 2.2.7a has already been emerged and can be Updated to version
2.2.8_pre1.