From: Fabian Groffen Date: Sun, 21 Oct 2007 12:42:51 +0000 (-0000) Subject: Merged from trunk 8199:8207 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=3b489fe09614c5729295eff9f630a16966149199;p=portage.git Merged from trunk 8199:8207 | 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 --- diff --git a/NEWS b/NEWS index c79f69c63..dcb884ab7 100644 --- 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 ------------- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 12cca880d..076bb12c5 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -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 ================================== diff --git a/bin/ebuild.sh b/bin/ebuild.sh index 24714aa48..1df41a548 100755 --- a/bin/ebuild.sh +++ b/bin/ebuild.sh @@ -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 diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 78405a249..2c743555c 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -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 diff --git a/pym/portage/news.py b/pym/portage/news.py index 6f2eac2b2..b9326c94d 100644 --- a/pym/portage/news.py +++ b/pym/portage/news.py @@ -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): """