From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id C7827138D0C for ; Sun, 5 Jul 2015 23:56:24 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 0EEB9E0884; Sun, 5 Jul 2015 23:56:19 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 96B95E0884 for ; Sun, 5 Jul 2015 23:56:18 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 33003340873 for ; Sun, 5 Jul 2015 23:56:17 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 4FC96735 for ; Sun, 5 Jul 2015 23:56:15 +0000 (UTC) From: "Anthony G. Basile" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Anthony G. Basile" Message-ID: <1436140724.19942482c18d4d358c89d5db5736d8843af3ae99.blueness@gentoo> Subject: [gentoo-commits] proj/grss:master commit in: / X-VCS-Repository: proj/grss X-VCS-Files: grsup X-VCS-Directories: / X-VCS-Committer: blueness X-VCS-Committer-Name: Anthony G. Basile X-VCS-Revision: 19942482c18d4d358c89d5db5736d8843af3ae99 X-VCS-Branch: master Date: Sun, 5 Jul 2015 23:56:15 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 3501390b-5826-46e7-9e32-21d974949967 X-Archives-Hash: 10e98ce1a31b24810251d0dacda41c01 commit: 19942482c18d4d358c89d5db5736d8843af3ae99 Author: Anthony G. Basile gentoo org> AuthorDate: Sun Jul 5 23:58:44 2015 +0000 Commit: Anthony G. Basile gentoo org> CommitDate: Sun Jul 5 23:58:44 2015 +0000 URL: https://gitweb.gentoo.org/proj/grss.git/commit/?id=19942482 grsup: fix kernel install and other errors. grsup | 56 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/grsup b/grsup index 57029a7..bb5330f 100755 --- a/grsup +++ b/grsup @@ -12,6 +12,7 @@ from getopt import getopt, GetoptError from html.parser import HTMLParser from grs import CONST +from grs import Execute from grs import Log from grs import Synchronize from grs import WorldConf @@ -44,7 +45,7 @@ def install_kernel(version = 'latest', logfile = CONST.LOGFILE): return try: - request = urllib.request.urlopen(baseurl) + request = urllib.request.urlopen('%s/%s' % (baseurl,'linux-images')) dload = request.read().decode('utf-8') except urllib.error.HTTPError: print('Cannot open %s' % baseurl) @@ -56,7 +57,11 @@ def install_kernel(version = 'latest', logfile = CONST.LOGFILE): kernels.sort() if version == 'latest': - kernel = kernels[-1] + try: + kernel = kernels[-1] + except IndexError: + print('No linux-image available') + return else: for k in kernels: m = re.search('linux-image-(.+).tar.xz', k) @@ -67,20 +72,25 @@ def install_kernel(version = 'latest', logfile = CONST.LOGFILE): print('No linux-image %s available' % version) return - # Download the linux-image tarball to packages/linux-image - request = urllib.request.urlopen('%s/%s' % (baseurl, kernel)) - package = '/usr/portage/packages/linux-images' - os.makedirs(package, mode=0o755, exist_ok=True) - kpath = os.path.join(package, kernel) - with open(kpath, 'wb') as f: - shutil.copyfileobj(request, f) + # Download the linux-image tarball to packages/linux-image + request = urllib.request.urlopen('%s/%s/%s' % (baseurl, 'linux-images', kernel)) + package = '/usr/portage/packages/linux-images' + os.makedirs(package, mode=0o755, exist_ok=True) + kpath = os.path.join(package, kernel) + with open(kpath, 'wb') as f: + shutil.copyfileobj(request, f) + + # Try to mount /boot. Fail silently since it may not be mountable. + if not os.path.ismount('/boot'): + cmd = 'mount /boot' + Execute(cmd, timeout=60, failok=True, logfile=logfile) - # Untar it at '/'. tar will not clobber files. - cwd = os.getcwd() - os.chdir('/') - cmd = 'tar -Jxf %s' % kpath - Execute(cmd, timeout=600, logfile=logfile) - os.chdir(cwd) + # Untar it at '/'. tar will not clobber files. + cwd = os.getcwd() + os.chdir('/') + cmd = 'tar --overwrite -Jxf %s' % kpath + Execute(cmd, timeout=600, logfile=logfile) + os.chdir(cwd) def usage(rc=1): @@ -127,15 +137,17 @@ def main(): elif o == '-d': if len(myfiles) == 0 or exclude > 1: usage() - args.insert(0, '-q --unmerge') + args.insert(0, '--unmerge') + args.insert(0, '-q') exclude += 1 elif o == '-C': if len(myfiles) > 0: usage() args = ['-gefq', '@world'] - elif o == '=k': + elif o == '-k': if len(sys.argv[1:]) != 2: usage() + version = a do_install_kernel = True if len(CONST.names) > 1: @@ -165,7 +177,7 @@ def main(): WorldConf.install() if do_install_kernel: - install_kernel(a) + install_kernel(version=version) else: try: emerge_main(args) @@ -182,10 +194,8 @@ def main(): sys.exit(1) WorldConf.clean() - try: + if os.path.exists(CONST.PORTAGE_DIRTYFILE): os.remove(CONST.PORTAGE_DIRTYFILE) - except (FileNotFoundError, IsADirectoryError): - pass if __name__ == "__main__": @@ -194,7 +204,5 @@ if __name__ == "__main__": except KeyboardInterrupt: sys.stderr.write("Cleaning up /etc/portage. This make take some time.\n") WorldConf.clean() - try: + if os.path.exists(CONST.PORTAGE_DIRTYFILE): os.remove(CONST.PORTAGE_DIRTYFILE) - except (FileNotFoundError, IsADirectoryError): - pass