Merged from trunk 8199:8207
authorFabian Groffen <grobian@gentoo.org>
Sun, 21 Oct 2007 12:42:51 +0000 (12:42 -0000)
committerFabian Groffen <grobian@gentoo.org>
Sun, 21 Oct 2007 12:42:51 +0000 (12:42 -0000)
   | 8200   | Remove slashes that cause problems when unpacking files with  |
   | genone | relative paths (bug #196565)                                  |

   | 8201   | restore proper call logic                                     |
   | genone |                                                               |

   | 8202   | ignore "permission denied" errors when changing perms of news |
   | genone | skipfile that happen when running with user priviledges in    |
   |        | pretend mode                                                  |

   | 8204   | fix comment                                                   |
   | genone |                                                               |

   | 8206   | add some notes about restrictions wrt package sets            |
   | genone |                                                               |

   | 8207   | note that sets can't contain other sets                       |
   | genone |                                                               |

svn path=/main/branches/prefix/; revision=8213

NEWS
RELEASE-NOTES
bin/ebuild.sh
pym/_emerge/__init__.py
pym/portage/news.py

diff --git a/NEWS b/NEWS
index c79f69c63cde92783cc476c0dd20eb838e9f8d85..dcb884ab79a43ac3c0375a8cbe9ac94cb576e843 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -13,6 +13,7 @@ portage-2.2
   based on FEATURES=preserve-libs, USE AT YOUR OWN RISK!!!
 * Make elog functionality available to python code
 * Add support for news items (GLEP 42)
+* Add support for generic package sets (also see RELEASE-NOTES)
 
 portage-2.1.3
 -------------
index 12cca880df3e2b4d7b57f035c52c63414e535bab..076bb12c5d3a62c5e027553be719fa9897aeb147 100644 (file)
@@ -17,6 +17,16 @@ portage-2.2
 * Portage now warns if an ebuild repository does not have a name, as several new
   features in 2.2 make use of or require named repositories. The repository name
   is stored in profiles/repo_name in each repository.
+* Package set support: There are several important notes regarding package sets:
+  - they may currently only include simple and versioned atom, use conditionals
+    or any-of constructs aren't possible yet
+  - emerge makes no difference atm wether you pass a setname or all atoms contained
+    in the set to it, this means that without options packages will be remerged if 
+       already installed and added to the worldfile (exception: "world" and "system"
+       are still handled specially), or in the case of --unmerge all atoms in a set
+       will be unmerged even if they are depended upon by other packages
+  - sets shadow packages with the same name
+  - sets can not contain other sets    
 
 portage-2.1.3
 ==================================
index 24714aa480241e962807ec80310aa6133d67e153..1df41a54802f3b36f8d7804db51ab87a57f0ceb5 100755 (executable)
@@ -368,17 +368,17 @@ unpack() {
                                ;;
                        7Z|7z)
                                local my_output
-                               my_output="$(7z x -y "${srcdir}/${x}")"
+                               my_output="$(7z x -y "${srcdir}${x}")"
                                if [ $? -ne 0 ]; then
                                        echo "${my_output}" >&2
                                        die "$myfail"
                                fi
                                ;;
                        RAR|rar)
-                               unrar x -idq -o+ "${srcdir}/${x}" || die "$myfail"
+                               unrar x -idq -o+ "${srcdir}${x}" || die "$myfail"
                                ;;
                        LHa|LHA|lha|lzh)
-                               lha xfq "${srcdir}/${x}" || die "$myfail"
+                               lha xfq "${srcdir}${x}" || die "$myfail"
                                ;;
                        deb)
                                # Unpacking .deb archives can not always be done with
@@ -394,7 +394,7 @@ unpack() {
                                fi
                                ;;
                        a)
-                               ar x "${srcdir}/${x}" || die "$myfail"
+                               ar x "${srcdir}${x}" || die "$myfail"
                                ;;
                        lzma)
                                if [ "${y}" == "tar" ]; then
index 78405a2494d4321585ee5d678f9bb39422c61e96..2c743555c87c2b7166250b6f847e1f8115941753 100644 (file)
@@ -6846,7 +6846,9 @@ def emerge_main():
                        display_news_notification(trees)
                retval = action_build(settings, trees, mtimedb,
                        myopts, myaction, myfiles, spinner)
-               if "--pretend" not in myopts:
+               # if --pretend was not enabled then display_news_notification 
+               # was already called by post_emerge
+               if "--pretend" in myopts:
                        display_news_notification(trees)
                return retval
 
index 6f2eac2b2afa09d9a6af7d75315f5526fbfe6cfa..b9326c94d55cc65a69c692f10bef3320d50eaca9 100644 (file)
@@ -100,8 +100,17 @@ class NewsManager(object):
                finally:
                        unlockfile(unread_lock)
                        write_atomic(skipfile, "\n".join(skiplist)+"\n")
-               apply_permissions(filename=skipfile, 
+               try:
+                       apply_permissions(filename=skipfile, 
                                uid=int(self.config["PORTAGE_INST_UID"]), gid=portage_gid, mode=0664)
+               except OSError, e:
+                       import errno
+                       # skip "permission denied" errors as we're likely running in pretend mode
+                       # with reduced priviledges
+                       if e.errno == errno.EPERM:
+                               pass
+                       else:
+                               raise
 
        def getUnreadItems(self, repoid, update=False):
                """