diff -Nru linaro-image-tools-2014.12/ChangeLog linaro-image-tools-2016.10/ChangeLog --- linaro-image-tools-2014.12/ChangeLog 2014-12-18 14:50:08.000000000 +0000 +++ linaro-image-tools-2016.10/ChangeLog 2016-10-27 07:32:53.000000000 +0000 @@ -1,4 +1,100 @@ -2014-12-18 Fathi Boudra +2016-10-27 Fathi Boudra + + Release 2016.10. + +2016-10-26 Milosz Wasilewski + + android: increase the partion boundaries to work with sfdisk 2.26+ + +2016-08-25 Vishal Bhoj + + android: Increase system partition for juno + +2016-06-02 Fathi Boudra + + Release 2016.05. + +2016-05-19 Fathi Boudra + + Add support for sfdisk 2.26+ + +2016-05-19 Fathi Boudra + + test_packages: fix md5/sha256 tests + +2016-05-19 Fathi Boudra + + packages: fix typo md5sum -> md5 + +2016-05-19 Fathi Boudra + + Improve readability + +2016-05-19 Fathi Boudra + + testing: add sha256 property + +2016-05-19 Fathi Boudra + + packages: keep using md5sum + +2016-05-17 Héctor Orón Martínez + + add support for sha256 hashes in Packages file + +2016-05-11 Fathi Boudra + + Filter out symlinks in _get_file_matching() + +2016-03-04 Fathi Boudra + + Release 2016.02. + +2016-02-23 Fathi Boudra + + Fix pep8 E125/E128 + +2016-02-17 Nicolas Dechesne + + hwpack-create: add option to conditionally enable -backports* + +2016-02-23 Fathi Boudra + + Fix test suite errors + +2016-02-17 Ricardo Salveti + + hwpack/packages: level priority for backports + +2016-02-10 Fathi Boudra + + Fix qemu-arm-static version parsing + +2015-12-03 Fathi Boudra + + Release 2015.11. + +2015-10-27 Ricardo Salveti + + boards: switch logic from or to and when checking for dtbs + +2015-11-12 Vishal Bhoj + + Increase system partition since it is not enough for juno + +2015-10-25 Ricardo Salveti + + chroot_utils: check for links and copy with --archive + +2015-04-16 Ying-Chun Liu (PaulLiu) + + boards.py: Fix GPT table type when using reserved-boot-root partition layout. + +2015-05-06 Fathi Boudra + + linaro-hwpack-install: create dummy fstab + +2014-12-18 Fathi Boudra Release 2014.12. diff -Nru linaro-image-tools-2014.12/debian/changelog linaro-image-tools-2016.10/debian/changelog --- linaro-image-tools-2014.12/debian/changelog 2015-01-12 11:45:10.000000000 +0000 +++ linaro-image-tools-2016.10/debian/changelog 2016-10-27 07:40:52.000000000 +0000 @@ -1,209 +1,107 @@ -linaro-image-tools (2014.12-0linaro1) utopic; urgency=medium - - * New upstream release - - -- Fathi Boudra Mon, 12 Jan 2015 13:44:28 +0200 - -linaro-image-tools (2014.11-0linaro1) utopic; urgency=medium - - * New upstream release - - -- Fathi Boudra Tue, 25 Nov 2014 14:02:18 +0200 - -linaro-image-tools (2014.08-0linaro1) trusty; urgency=medium - - * New upstream release - - -- Fathi Boudra Mon, 25 Aug 2014 09:24:09 +0300 - -linaro-image-tools (2014.07-0linaro1) trusty; urgency=medium - - * New upstream release - - -- Fathi Boudra Tue, 05 Aug 2014 09:50:42 +0300 - -linaro-image-tools (2014.04+git7+84ac5df-0linaro1) trusty; urgency=medium - - * New upstream snapshot. - * debian/control: add gdisk dependency. - - -- Fathi Boudra Sat, 14 Jun 2014 18:21:07 +0300 - -linaro-image-tools (2014.04-0linaro1) trusty; urgency=low - - * New upstream release. - - -- Fathi Boudra Thu, 24 Apr 2014 11:25:19 +0300 - -linaro-image-tools (2014.02+git2+8d9495d-0ubuntu1~linaro1) saucy; urgency=low - - * New upstream snapshot. - - -- Fathi Boudra Fri, 11 Apr 2014 12:22:24 +0300 - -linaro-image-tools (2013.12+git6+111d7b3-0ubuntu1~linaro1) saucy; urgency=low - - * Add Arndale Octa support. - - -- Fathi Boudra Wed, 15 Jan 2014 18:26:07 +0200 - -linaro-image-tools (2013.12-0ubuntu1~linaro1) saucy; urgency=low - - * New upstream release. - - add linaro-hwpack-convert and linaro-hwpack-append commands. - - -- Fathi Boudra Sat, 21 Dec 2013 10:05:13 +0200 - -linaro-image-tools (2013.09-0ubuntu1~linaro1) raring; urgency=low - - * New upstream release. - - -- Fathi Boudra Thu, 26 Sep 2013 20:30:53 +0300 - -linaro-image-tools (2013.08-0ubuntu1~linaro1) raring; urgency=low - - * New upstream release. - - -- Fathi Boudra Sat, 31 Aug 2013 09:23:12 +0300 - -linaro-image-tools (2013.06-0ubuntu1~linaro1) raring; urgency=low +linaro-image-tools (2016.10-1) unstable; urgency=medium * New upstream release. - -- Fathi Boudra Sat, 29 Jun 2013 10:59:05 +0300 + -- Fathi Boudra Thu, 27 Oct 2016 10:39:36 +0300 -linaro-image-tools (2013.05-0ubuntu1~linaro1) raring; urgency=low +linaro-image-tools (2016.05-1) xenial; urgency=medium - * New upstream release. + * New upstream release + * debian/control Update VCS location - -- Fathi Boudra Tue, 04 Jun 2013 17:07:17 +0300 + -- Riku Voipio Thu, 02 Jun 2016 16:06:12 +0300 -linaro-image-tools (2013.04-0ubuntu1~linaro1) quantal; urgency=low +linaro-image-tools (2016.02-1) xenial; urgency=medium * New upstream release. - -- Fathi Boudra Sat, 27 Apr 2013 10:42:43 +0300 + -- Fathi Boudra Fri, 04 Mar 2016 08:25:56 +0200 -linaro-image-tools (2013.03-0ubuntu1~linaro1) quantal; urgency=low +linaro-image-tools (2015.11-1) unstable; urgency=medium * New upstream release. - -- Fathi Boudra Sat, 30 Mar 2013 16:13:34 +0200 + -- Fathi Boudra Thu, 03 Dec 2015 16:12:24 +0200 -linaro-image-tools (2013.02-0ubuntu1~linaro1) precise; urgency=low +linaro-image-tools (2014.12-1) unstable; urgency=medium * New upstream release. - -- Fathi Boudra Wed, 27 Feb 2013 09:28:38 +0200 + -- Fathi Boudra Thu, 08 Jan 2015 11:25:47 +0200 -linaro-image-tools (2013.01-0ubuntu1~linaro1) precise; urgency=low +linaro-image-tools (2014.11-1) unstable; urgency=medium * New upstream release. + * debian/control: add gdisk dependency. - -- Fathi Boudra Mon, 28 Jan 2013 13:13:55 +0200 + -- Fathi Boudra Tue, 25 Nov 2014 15:56:23 +0200 -linaro-image-tools (2012.12-0ubuntu1~linaro1) quantal; urgency=low +linaro-image-tools (2014.07-1) unstable; urgency=medium * New upstream release. - -- Fathi Boudra Fri, 21 Dec 2012 22:19:21 +0200 + -- Fathi Boudra Tue, 05 Aug 2014 10:25:24 +0300 -linaro-image-tools (2012.11-0ubuntu1~linaro1) precise; urgency=low +linaro-image-tools (2014.04-1) unstable; urgency=low * New upstream release. - -- Fathi Boudra Fri, 23 Nov 2012 10:56:45 +0200 + -- Fathi Boudra Wed, 04 Jun 2014 21:15:39 +0300 -linaro-image-tools (2012.10-0ubuntu1~linaro1) precise; urgency=low +linaro-image-tools (2013.09-2) unstable; urgency=low * New upstream release. - -- Fathi Boudra Fri, 19 Oct 2012 18:10:30 +0300 - -linaro-image-tools (2012.09.1+bzr573-0ubuntu1~linaro1) precise; urgency=low - - * Add support for Foundation fastmodel. - - -- Ricardo Salveti de Araujo Tue, 09 Oct 2012 16:22:59 -0300 - -linaro-image-tools (2012.09.1+bzr572-0ubuntu1~linaro1) precise; urgency=low - - * Add Build-Info support. - * Changes to make extract_kpkgs to not use qemu, which allows support - for OE ARMv8. - - -- Ricardo Salveti de Araujo Thu, 04 Oct 2012 18:54:38 +0100 - -linaro-image-tools (2012.09.1+bzr570-0ubuntu1~linaro1) precise; urgency=low + -- Fathi Boudra Sat, 16 Nov 2013 12:45:28 +0200 - * Fix default bootloader setting. (LP: #1055800) - * Add dtb_files support. (LP: #1057639) - - -- Fathi Boudra Wed, 03 Oct 2012 09:39:42 +0300 - -linaro-image-tools (2012.09.1-0ubuntu1~linaro1) precise; urgency=low - - * New upstream release. - - -- Fathi Boudra Wed, 26 Sep 2012 12:16:04 +0300 - -linaro-image-tools (2012.09-0ubuntu1~linaro1) precise; urgency=low +linaro-image-tools (2012.09.1-1) unstable; urgency=low * New upstream release. - -- Fathi Boudra Thu, 20 Sep 2012 18:17:53 +0300 + -- Fathi Boudra Wed, 26 Sep 2012 12:21:49 +0300 -linaro-image-tools (2012.08.1-0ubuntu1~linaro1) precise; urgency=low +linaro-image-tools (2012.08.1-1) unstable; urgency=low * New upstream release. - -- Fathi Boudra Wed, 29 Aug 2012 18:22:50 +0300 + -- Fathi Boudra Wed, 29 Aug 2012 18:31:28 +0300 -linaro-image-tools (2012.08-0ubuntu1~linaro1) precise; urgency=low +linaro-image-tools (2012.08-1) unstable; urgency=low * New upstream release. * Update debian/control: re-add python-yaml to dependencies. - -- Fathi Boudra Thu, 23 Aug 2012 18:49:11 +0300 - -linaro-image-tools (2012.07-0ubuntu1~linaro1) precise; urgency=low - - * New upstream release. - - -- Fathi Boudra Tue, 24 Jul 2012 09:38:27 +0300 + -- Fathi Boudra Thu, 23 Aug 2012 19:00:53 +0300 -linaro-image-tools (2012.06-0ubuntu1~linaro1) precise; urgency=low +linaro-image-tools (2012.06-1) unstable; urgency=low * New upstream release. * Update debian/control: bump python-testtools build dependency to 0.9.12. - -- Fathi Boudra Thu, 21 Jun 2012 12:18:47 +0300 + -- Fathi Boudra Thu, 21 Jun 2012 12:12:07 +0300 -linaro-image-tools (2012.05-0ubuntu1~linaro1) precise; urgency=low +linaro-image-tools (2012.05-1) unstable; urgency=low * New upstream release. - -- Fathi Boudra Fri, 25 May 2012 13:54:36 +0300 + -- Fathi Boudra Fri, 25 May 2012 15:56:29 +0300 -linaro-image-tools (2012.04.1-0ubuntu1~linaro1) precise; urgency=low +linaro-image-tools (2012.04-1) unstable; urgency=low * New upstream release. + - drop add-FORCE_OPTIONS-to-apt-update.patch - merged upstream. + * Update debian/rules: fix python shebang. Thanks to Zyga. - -- Fathi Boudra Wed, 02 May 2012 19:45:50 +0300 + -- Fathi Boudra Sat, 21 Apr 2012 19:15:42 +0300 -linaro-image-tools (2012.04-0ubuntu1~linaro1) precise; urgency=low +linaro-image-tools (2012.03-2) unstable; urgency=low - * New upstream release. - - -- Fathi Boudra Sat, 21 Apr 2012 19:43:09 +0300 - -linaro-image-tools (2012.03-0ubuntu1~linaro2) precise; urgency=low + * Add FORCE_OPTIONS to apt update in linaro-hwpack-install. + Thanks to Hector Oron . (Closes: #668401) - * Update debian/rules: fix python shebang. + -- Fathi Boudra Thu, 12 Apr 2012 15:17:10 +0300 - -- Fathi Boudra Fri, 20 Apr 2012 10:59:10 +0300 - -linaro-image-tools (2012.03-0ubuntu1~linaro1) oneiric; urgency=low +linaro-image-tools (2012.03-1) unstable; urgency=low * New upstream release: - linaro-fetch-image split into its own source package. @@ -213,330 +111,84 @@ * Update debian/linaro-image-tools.install: - drop linaro-fetch-image and linaro-fetch-image-ui. - -- Fathi Boudra Sun, 25 Mar 2012 10:21:30 +0300 - -linaro-image-tools (2012.02-0ubuntu1~linaro1) oneiric; urgency=low + -- Fathi Boudra Sun, 25 Mar 2012 10:21:30 +0300 - * New upstream release. - - -- Fathi Boudra Wed, 22 Feb 2012 12:59:32 +0200 - -linaro-image-tools (2012.01-0ubuntu1~linaro1) oneiric; urgency=low +linaro-image-tools (2012.02-1) unstable; urgency=low * New upstream release. - -- Fathi Boudra Tue, 24 Jan 2012 16:05:36 +0200 + -- Fathi Boudra Wed, 22 Feb 2012 14:20:55 +0200 -linaro-image-tools (2011.12-0ubuntu1~linaro1) oneiric; urgency=low +linaro-image-tools (2012.01-1) unstable; urgency=low * New upstream release. - * Update debian/control: - * add dosfstools build dependency, l-i-t uses mkfs.vfat command. - * add apt-utils build dependency, l-i-t uses apt-ftparchive command. - - -- Fathi Boudra Thu, 15 Dec 2011 15:13:25 +0200 + * Drop increase_sleep_after_sfdisk.patch - a fix has been applied upstream. -linaro-image-tools (2011.11-0ubuntu1~linaro2) oneiric; urgency=low + -- Fathi Boudra Thu, 02 Feb 2012 10:29:22 +0200 - * debian/rules: disabling the testsuite until it's properly fixed - - -- Ricardo Salveti de Araujo Fri, 18 Nov 2011 20:25:57 -0200 - -linaro-image-tools (2011.11-0ubuntu1~linaro1) oneiric; urgency=low +linaro-image-tools (2011.12-1) unstable; urgency=low * New upstream release. - * Update debian/rules: re-enable testsuite. - - -- Fathi Boudra Fri, 18 Nov 2011 11:54:41 +0200 - -linaro-image-tools (2011.10+1-0ubuntu1~linaro1) oneiric; urgency=low - - * Take the correct 2011.10 tarball. (LP: #881292) - -- Fathi Boudra Wed, 26 Oct 2011 10:54:13 +0300 + -- Fathi Boudra Fri, 16 Dec 2011 13:19:55 +0200 -linaro-image-tools (2011.10-0ubuntu1~linaro1) oneiric; urgency=low - - * New upstream release. - - -- Fathi Boudra Fri, 21 Oct 2011 11:10:52 +0300 - -linaro-image-tools (2011.09+bzr447-1~linaro3) oneiric; urgency=low - - * Update debian/rules: fix typo. - - -- Fathi Boudra Fri, 14 Oct 2011 20:39:44 +0300 - -linaro-image-tools (2011.09+bzr447-1~linaro2) oneiric; urgency=low - - * Fix python-parted version dependency, making backport easier. - (LP: #874183) - - -- Fathi Boudra Fri, 14 Oct 2011 19:32:14 +0300 - -linaro-image-tools (2011.09+bzr447-1~linaro1) oneiric; urgency=low - - * New upstream snapshot. - - -- James Westby Thu, 13 Oct 2011 16:08:09 -0400 - -linaro-image-tools (2011.09-0ubuntu1~linaro1) natty; urgency=low - - * New upstream release. - * Update debian/control: Recommends udisks; LP: #856671. - - -- Fathi Boudra Fri, 23 Sep 2011 14:22:10 +0300 - -linaro-image-tools (2011.08-0ubuntu1~linaro2) natty; urgency=low - - * Ship linaro-android-media-create. - - -- Fathi Boudra Tue, 23 Aug 2011 17:10:19 +0300 - -linaro-image-tools (2011.08-0ubuntu1~linaro1) natty; urgency=low - - * New upstream release. - - -- Ricardo Salveti de Araujo Tue, 23 Aug 2011 03:01:23 -0300 - -linaro-image-tools (2011.07-0ubuntu1~linaro2) natty; urgency=low - - * New upstream release. - - -- James Westby Tue, 26 Jul 2011 18:39:13 +0100 - -linaro-image-tools (0.4.8-0ubuntu1) oneiric; urgency=low - - * New upstream release. - - -- James Westby Thu, 26 May 2011 17:26:22 -0400 - -linaro-image-tools (0.4.7-0ubuntu2) oneiric; urgency=low - - * Remove Breaks/Replaces; not really needed as this is like moving from - libfoo1 to libfoo2, but these actually require a dist-upgrade which is - painful for backports. - - -- Loïc Minier Thu, 26 May 2011 17:20:08 +0200 - -linaro-image-tools (0.4.7-0ubuntu1) oneiric; urgency=low - - [ Loïc Minier ] - * Drop qemu-kvm build-dep and dep; not needed anymore (since 0.4.6 uses dd - instead of qemu-img). - - [ James Westby ] - * New upstream release. - - -- James Westby Wed, 25 May 2011 17:48:33 -0400 - -linaro-image-tools (0.4.6-0ubuntu2) oneiric; urgency=low - - * Also suffix the python-debian *dependency* with a ~, not just the - build-dep. - - -- Loïc Minier Wed, 25 May 2011 22:39:45 +0200 - -linaro-image-tools (0.4.6-0ubuntu1) oneiric; urgency=low - - * New upstream release. - - -- Loïc Minier Mon, 23 May 2011 17:52:59 +0200 - -linaro-image-tools (0.4.5-0ubuntu3) oneiric; urgency=low - - * python-linaro-image-tools breaks/replaces python-hwpack, - python-linaro-media-create as to hint the package manager to remove these - obsolete bindings. - - -- Loïc Minier Wed, 18 May 2011 18:06:17 +0200 - -linaro-image-tools (0.4.5-0ubuntu2) oneiric; urgency=low - - * Upload to oneiric; previous upload was PPA only. - - -- Loïc Minier Fri, 29 Apr 2011 15:39:25 +0200 - -linaro-image-tools (0.4.5-0ubuntu1) natty; urgency=low +linaro-image-tools (2011.11-1) unstable; urgency=low * New upstream release. + * Update debian/rules: re-add testsuite snippet but keep it disabled until + it's fixed. + * Update debian/control: + * add dosfstools build dependency to run the testsuite successfully. + * add apt-utils build dependency, l-i-t uses apt-ftparchive. - -- James Westby Thu, 28 Apr 2011 19:35:41 -0400 + -- Fathi Boudra Fri, 18 Nov 2011 12:02:39 +0200 -linaro-image-tools (0.4.4-0ubuntu1~linaro1) natty; urgency=low +linaro-image-tools (2011.10+1-1) unstable; urgency=low * New upstream release. - -- James Westby Thu, 21 Apr 2011 17:43:19 -0400 - -linaro-image-tools (0.4.3-0ubuntu2) natty; urgency=low - - * Fix ChangeLog and PKG-INFO lacking some 0.4.3 updates. + -- Fathi Boudra Wed, 26 Oct 2011 11:23:19 +0300 - -- Loïc Minier Tue, 01 Feb 2011 18:13:03 +0100 - -linaro-image-tools (0.4.3-0ubuntu1) natty; urgency=low +linaro-image-tools (2011.10-1) unstable; urgency=low * New upstream release. - - Fixes kernel cmdline for OMAP boards; LP: #710971. - * Add Vcs-Bzr field pointing at the UDD branch. - - -- Loïc Minier Tue, 01 Feb 2011 18:04:21 +0100 - -linaro-image-tools (0.4.2-0ubuntu4) natty; urgency=low - - * Recommend qemu-user-static | qemu-kvm-extras-static to accomodate for new - package name in natty and backports. - - -- Loïc Minier Mon, 31 Jan 2011 23:20:04 +0100 -linaro-image-tools (0.4.2-0ubuntu3) natty; urgency=low + -- Fathi Boudra Fri, 21 Oct 2011 11:16:43 +0300 - * Switch back to python-support instead of dh_python2 as it makes it harder - to backport this package to lucid. - - Build-dep on python-support. - - Call dh with no build-sequence or addon args. - - Relax (unversion) the python build-dep. - * Suffix the python-debian build-dep with ~ to include backported versions. +linaro-image-tools (2011.09+bzr448-1) unstable; urgency=low - -- Loïc Minier Sat, 29 Jan 2011 21:10:28 +0100 + * New upstream snapshot from bzr revision 448. + * Drop use_python_2.7.patch: python-parted 3.6-4 enabled support for + python2.6. + * Set X-Python-Version to >= 2.6. + * Drop python-parted versioned dependency. -linaro-image-tools (0.4.2-0ubuntu2) natty; urgency=low + -- Fathi Boudra Sat, 15 Oct 2011 09:16:14 +0300 - * Depend on sudo until it's made optional (e.g. when running - linaro-media-create within sudo). - - -- Loïc Minier Sat, 29 Jan 2011 17:29:49 +0100 - -linaro-image-tools (0.4.2-0ubuntu1) natty; urgency=low +linaro-image-tools (2011.09-1) unstable; urgency=low * New upstream release. - - Switch to non-native mode and drop Vcs-Bzr. - - Build-depend on python-distutils-extra for DistutilsExtra. - - Fixes support for mx51evk images; LP: #705410. - - New or noteworthy: - . Support for Gumstix Overo boards has been added. - . Support for Freescale mx51evk (Babbage) boards has been fixed. - . Support for ARM Versatile Express boards has been fixed. - . The fdisk command is not required anymore. - . The UUID of the rootfs is not pre-computed anymore; this allows btrfs - to be used for the root filesystem. - . Linaro Image Tools are now released as a standalone tarball; you need - https://launchpad.net/python-distutils-extra to run setup.py. - . Support for 10.11 / linaro-m images has been restored. - . The hardware pack handling code is now GPLv2+ - * Append /sbin to PATH and export it as to locate parted and sfdisk. - - -- Loïc Minier Fri, 28 Jan 2011 22:09:14 +0100 - -linaro-image-tools (0.4.1) natty; urgency=low - - * Brown paperbag release. - * Sort files in commands ran by linaro_media_create.rootfs.move_contents() - as this breaks the testsuite on some filesystems. - * Disable pkgbinarymangler when running the testsuite as it might cause some - stderr output which confuses it. - * Uppercase Python in python-linaro-media-create long description. - * Drop util-linux from Depends as it's Essential. - * Update Build-Deps for testsuite requirements (qemu-kvm for qemu-img, - u-boot | uboot-mkimage for mkimage and command-not-found for - CommandNotFound) and recommend command-not-found to locate the package of - missing commands. - - -- Loïc Minier Wed, 19 Jan 2011 19:32:38 +0100 - -linaro-image-tools (0.4) natty; urgency=low - - IMPORTANT: this version of linaro-image-tools breaks support for 10.05 - images; we hope to restore this support really soon but it was more - important to release this update and have support for linaro-n images. - - * New major release - - Large parts rewritten in Python (Michael Hudson, Guilherme Salgado, - James Westby, Martin Ohlsson). - - Various bug fixes. - - Notify users that apt-get will be run in target rootfs (Martin Ohlsson); - LP: #651906 - - Use fdisk -l for output rather than sfdisk -l (Martin Ohlsson); - LP: #673410. - - Allow passing multiple --hwpack when creating an image (Michael Hudson). - - Add --hwpack-force-yes to linaro-media-create to forcibly install - unauthenticated packages (Michael Hudson). - - hwpack-create now has a --debug option (James Westby). - - hwpack creation now outputs a manifest external to the hwpack as well - (Michael Hudson). - - Add ability to add local .debs to the hwpack with --local-deb - (Michael Hudson). - - Update dependencies; new deps on python-testtools, python-parted, - python-dbus and more, drop obsolete deps. - * Fix support of space in pathnames (Paul Larson). - * Update Depends to cope with mkimage moving from uboot-mkimage to - u-boot-tools. - * Fix empty Vcs-Bzr. - * Strict >= ${source:Version} dependency on python-hwpack. - * Use python2 dh sequence instead of python-support; add a python >= - 2.6.5-1~ build-dep. - * Uppercase Python in description (lintian). - * Various cleanups. - * Drop omapfb.debug=y from kernel cmdlines as DSS2 is stable nowadays. - - -- Loïc Minier Thu, 23 Dec 2010 14:41:29 +0100 - -linaro-image-tools (0.3) maverick-proposed; urgency=low - - [ Steve Langasek ] - * no longer using the 'omap' uboot flavor support in live-helper; instead, - run the mkimage commands directly for omap. - * fix the paths used for looking up x-loader and u-boot binaries in the - tarball; these don't belong in /boot at all, pull them from /usr/lib. - * only enforce the presence of commands we're actually using; this lets - us automatically pull in btrfs-tools when btrfs is specified. - * add sudo to a couple more commands in linaro-media-create, so the script - itself can run as non-root as intended. - - [ James Westby ] - * Add a linaro-hwpack-create script for the creation of hardware packs. - - [ Steve Langasek ] - * Fix lookup of linaro-hwpack-install to work correctly when l-m-c is on - the path. Closes: #652669. - - [ Loïc Minier ] - * Drop spurious single quote character in boot_args_options for beagle|igep; - thanks Peter Maydell; LP: #667400. - * Set LC_ALL=C when entering the chroot as it has no locales. LP: #651905. - - [ Tom Gall ] - * Use --numeric-owner argument to tar when unpacking, so that files get - the right owner on boot of the image. LP: #652121. - - [ Dave Martin ] - * Implement proper cleanup handling on signal / exit, so that we don't - leave clutter behind on error. This also fixes the message at the end of - a successful install about being unable to unmount proc. LP: #616385, - #660196, #667394, #643601, #627383. - - -- Steve Langasek Tue, 09 Nov 2010 12:50:26 -0800 - -linaro-image-tools (0.2) maverick; urgency=low - - [ James Westby ] - * Add a module that provides some improvements to tarfile. - * Add some matchers for testing the content of tarfiles. - * Add the skeleton code to create empty hardware packs. - - [ Torez Smith ] - * Add IGEP support; LP: #627611. - - [ Loïc Minier ] - * Fix deps in control as well: depend on uuid-runtime rather than - uuidgen-runtime and do not depend on util-linux, e2fsprogs and coreutils - as these are Essential: yes; thanks Colin Watson. - - -- Loïc Minier Sun, 05 Sep 2010 10:26:20 +0200 - -linaro-image-tools (0.1) maverick; urgency=low - - * Initial packaging + * Update debian/control: + - update Maintainers field. + - Set Architecture: linux-any + - Recommends udisks [linux-any]. + + -- Fathi Boudra Sat, 24 Sep 2011 08:48:57 +0300 + +linaro-image-tools (2011.08-1) unstable; urgency=low + + * Initial upload to Debian. (Closes: #641951) + * Add patches: + - use_python_2.7.patch + on Debian, current python default version is 2.6 and pyparted version is + 3.6. PyParted 3.6 is not compatible with python versions prior to 2.7. + To work-around, we force to use python2.7. + - increase_sleep_after_sfdisk.patch + race condition, we create the partitions using sfdisk but before udisks + get notified about them we query udisks for information about them, which + fails. To work-around, we increase the sleep to 5s. + * Switch to dh_python2. + * Bump X-Python-Version to 2.7 (required by python-parted >= 3.6). + * Bump python-parted dependency to >= 3.6. - -- Loïc Minier Tue, 31 Aug 2010 22:32:49 +0200 + -- Fathi Boudra Wed, 21 Sep 2011 18:17:35 +0300 diff -Nru linaro-image-tools-2014.12/debian/compat linaro-image-tools-2016.10/debian/compat --- linaro-image-tools-2014.12/debian/compat 2012-10-19 15:09:32.000000000 +0000 +++ linaro-image-tools-2016.10/debian/compat 2016-02-11 06:04:04.000000000 +0000 @@ -1 +1 @@ -7 +8 diff -Nru linaro-image-tools-2014.12/debian/control linaro-image-tools-2016.10/debian/control --- linaro-image-tools-2014.12/debian/control 2014-08-05 06:58:34.000000000 +0000 +++ linaro-image-tools-2016.10/debian/control 2016-06-02 13:08:51.000000000 +0000 @@ -3,32 +3,33 @@ Priority: optional Build-Depends: apt-utils, command-not-found, - debhelper (>= 7.0.50~), + debhelper (>= 8.1.3~), dosfstools, - python, - python-all, + python (>= 2.6.6-3~), + python-all (>= 2.6.6-3~), python-apt, python-argparse, python-dbus, python-debian (>= 0.1.16ubuntu1~), python-distutils-extra, python-parted, - python-support, python-testtools (>= 0.9.12), python-yaml, u-boot-tools | uboot-mkimage -Standards-Version: 3.9.3 -Maintainer: Linaro Packagers -XS-Python-Version: >= 2.5 -Vcs-Bzr: lp:ubuntu/linaro-image-tools +Standards-Version: 3.9.5 +Maintainer: Linaro Packagers +Uploaders: Fathi Boudra +X-Python-Version: >= 2.6 +Vcs-Git: https://git.linaro.org/ci/linaro-image-tools.git +Vcs-Browser: https://git.linaro.org/ci/linaro-image-tools.git Package: linaro-image-tools -Architecture: all +Architecture: linux-any Depends: apt-utils, dosfstools, gdisk, parted, - python, + python (>= 2.6.6-3~), python-argparse, python-dbus, python-debian (>= 0.1.16ubuntu1~), @@ -42,7 +43,7 @@ Recommends: btrfs-tools, command-not-found, qemu-user-static | qemu-kvm-extras-static, - udisks + udisks [linux-any] Description: collection of tools to work with Linaro images This package offers a set of tools for use with Linaro images. . diff -Nru linaro-image-tools-2014.12/debian/rules linaro-image-tools-2016.10/debian/rules --- linaro-image-tools-2014.12/debian/rules 2012-10-19 15:09:32.000000000 +0000 +++ linaro-image-tools-2016.10/debian/rules 2016-02-11 06:04:04.000000000 +0000 @@ -6,8 +6,7 @@ export PATH := $(PATH):/sbin %: - dh $* - + dh $@ --with python2 override_dh_install: dh_install find debian/linaro-image-tools -type f |xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/python|' diff -Nru linaro-image-tools-2014.12/do-release linaro-image-tools-2016.10/do-release --- linaro-image-tools-2014.12/do-release 2014-12-18 14:41:17.000000000 +0000 +++ linaro-image-tools-2016.10/do-release 2016-10-27 07:32:11.000000000 +0000 @@ -35,36 +35,6 @@ exit 1 fi -log_i "Checking tree status" -status=`git status --short` -if [ -n "$status" ]; then - die "Tree is dirty according to git status" -fi - -log_i "Running tests" -if ! python -m testtools.run linaro_image_tools.tests.test_suite; then - die "Testsuite doesn't pass" -fi - -log_i "Removing test repository data" -rm -rf .testrepository/ - -if git tag | awk '{print $1}' | grep -qFx "$version"; then - die "Tag $version already exists" -fi - -set_version $version - -log_i "Committing $version" -git commit -a -m "Release $version." - -log_i "Creating tag $version" -git tag "$version" - -log_i "Pushing changes and tag" -git push origin master -git push --tags - log_i "Generating ChangeLog" if [ -z "$old_version"]; then git log --date=short --no-merges --format=format:"%ad %aN <%aE>%n%n %s%n" >ChangeLog @@ -82,8 +52,3 @@ log_i "Signing tarball" gpg --armor --sign --detach-sig "../linaro-image-tools-$version.tar.gz" - -set_version "$version.1" - -log_i "Committing $version.1" -git commit -a -m "Post-release version bump to $version.1." diff -Nru linaro-image-tools-2014.12/linaro-hwpack-create linaro-image-tools-2016.10/linaro-hwpack-create --- linaro-image-tools-2014.12/linaro-hwpack-create 2014-12-18 14:41:17.000000000 +0000 +++ linaro-image-tools-2016.10/linaro-hwpack-create 2016-03-04 06:13:41.000000000 +0000 @@ -44,13 +44,15 @@ "version than a package that would be otherwise installed. " "Can be used more than once.")) parser.add_argument("--debug", action="store_true") + parser.add_argument("--backports", action="store_true", + help="Level the pin priority for the backports repositories.") args = parser.parse_args() logger = get_logger(debug=args.debug) try: builder = HardwarePackBuilder(args.CONFIG_FILE, - args.VERSION, args.local_debs) + args.VERSION, args.local_debs, args.backports) except ConfigFileMissing, e: logger.error(str(e)) sys.exit(1) diff -Nru linaro-image-tools-2014.12/linaro-hwpack-install linaro-image-tools-2016.10/linaro-hwpack-install --- linaro-image-tools-2014.12/linaro-hwpack-install 2014-12-18 14:41:17.000000000 +0000 +++ linaro-image-tools-2016.10/linaro-hwpack-install 2016-03-04 06:13:41.000000000 +0000 @@ -207,6 +207,11 @@ EOF chmod 755 /sbin/initctl fi + + # Create dummy fstab. fsck initramfs-tools hook is reading fstab entries + # in order to copy e2fsck into initramfs image + [ -f /etc/fstab ] && mv -f /etc/fstab /etc/fstab.REAL + echo "UUID=00000000-0000-0000-0000-000000000000 / ext4 defaults 0 1" > /etc/fstab } install_deb_packages() { @@ -300,6 +305,8 @@ if [ -x /sbin/initctl.REAL ]; then mv -f /sbin/initctl.REAL /sbin/initctl fi + rm -f /etc/fstab + [ -f /etc/fstab.REAL ] && mv -f /etc/fstab.REAL /etc/fstab # Do two updates. The first doesn't try to download package lists: # * First update doesn't access net # - not allowed to fail. Image file + hwpack should contain all packages diff -Nru linaro-image-tools-2014.12/linaro_image_tools/hwpack/builder.py linaro-image-tools-2016.10/linaro_image_tools/hwpack/builder.py --- linaro-image-tools-2014.12/linaro_image_tools/hwpack/builder.py 2014-12-18 14:41:17.000000000 +0000 +++ linaro-image-tools-2016.10/linaro_image_tools/hwpack/builder.py 2016-03-04 06:13:41.000000000 +0000 @@ -61,7 +61,8 @@ class HardwarePackBuilder(object): - def __init__(self, config_path, version, local_debs, out_name=None): + def __init__(self, config_path, version, local_debs, backports=False, + out_name=None): try: with open(config_path) as fp: self.config = Config(fp, allow_unset_bootloader=True) @@ -78,6 +79,7 @@ self.packages = None self.packages_added_to_hwpack = [] self.out_name = out_name + self.backports = backports def find_fetched_package(self, packages, wanted_package_name): wanted_package = None @@ -224,7 +226,7 @@ logger.info("Fetching packages") fetcher = PackageFetcher( sources, architecture=architecture, - prefer_label=LOCAL_ARCHIVE_LABEL) + backports=self.backports, prefer_label=LOCAL_ARCHIVE_LABEL) with fetcher: with PackageUnpacker() as self.package_unpacker: fetcher.ignore_packages(self.config.assume_installed) diff -Nru linaro-image-tools-2014.12/linaro_image_tools/hwpack/packages.py linaro-image-tools-2016.10/linaro_image_tools/hwpack/packages.py --- linaro-image-tools-2014.12/linaro_image_tools/hwpack/packages.py 2014-12-18 14:41:17.000000000 +0000 +++ linaro-image-tools-2016.10/linaro_image_tools/hwpack/packages.py 2016-05-19 14:03:08.000000000 +0000 @@ -87,6 +87,7 @@ if package.breaks: parts.append('Breaks: %s' % package.breaks) parts.append('MD5sum: %s' % package.md5) + parts.append('SHA256: %s' % package.sha256) content += "\n".join(parts) content += "\n\n" return content @@ -295,6 +296,9 @@ :ivar md5: the hex representation of the md5sum of the contents of the package. :type md5: str + :ivar sha256: the hex representation of the sha256sum of the contents of + the package. + :type sha256: str :ivar architecture: the architecture that the package is for, may be 'all'. :type architecture: str @@ -331,7 +335,7 @@ :type breaks: str or None """ - def __init__(self, name, version, filename, size, md5, + def __init__(self, name, version, filename, size, md5, sha256, architecture, depends=None, pre_depends=None, multi_arch=None, conflicts=None, recommends=None, provides=None, replaces=None, breaks=None): @@ -344,6 +348,7 @@ self.filename = filename self.size = size self.md5 = md5 + self.sha256 = sha256 self.architecture = architecture self.depends = depends self.pre_depends = pre_depends @@ -389,7 +394,7 @@ provides = ", ".join([a[0] for a in pkg._cand.provides_list]) or None pkg = cls( pkg.package.name, pkg.version, filename, pkg.size, - pkg.md5, pkg.architecture, depends=depends, + pkg.md5, pkg.sha256, pkg.architecture, depends=depends, pre_depends=pre_depends, multi_arch=multi_arch, conflicts=conflicts, recommends=recommends, provides=provides, replaces=replaces, breaks=breaks) @@ -406,6 +411,7 @@ filename = os.path.basename(deb_file_path) size = os.path.getsize(deb_file_path) md5sum = hashlib.md5(open(deb_file_path).read()).hexdigest() + sha256sum = hashlib.sha256(open(deb_file_path).read()).hexdigest() architecture = debcontrol['Architecture'] depends = debcontrol.get('Depends') pre_depends = debcontrol.get('Pre-Depends') @@ -416,8 +422,8 @@ replaces = debcontrol.get('Replaces') breaks = debcontrol.get('Breaks') pkg = cls( - name, version, filename, size, md5sum, architecture, depends, - pre_depends, multi_arch, conflicts, recommends, provides, + name, version, filename, size, md5sum, sha256sum, architecture, + depends, pre_depends, multi_arch, conflicts, recommends, provides, replaces, breaks) pkg.content = open(deb_file_path) pkg._file_path = deb_file_path @@ -434,6 +440,7 @@ 'filename', 'size', 'md5', + 'sha256', 'architecture', 'depends', 'pre_depends', @@ -478,7 +485,8 @@ :type cache: apt.cache.Cache """ - def __init__(self, sources, architecture=None, prefer_label=None): + def __init__(self, sources, architecture=None, prefer_label=None, + backports=False): """Create an IsolatedAptCache. :param sources: a list of sources such that they can be prefixed @@ -491,6 +499,7 @@ self.architecture = architecture self.tempdir = None self.prefer_label = prefer_label + self.backports = backports def prepare(self): """Prepare the IsolatedAptCache for use. @@ -551,12 +560,18 @@ f.write( 'Apt {\nArchitecture "%s";\n' 'Install-Recommends "true";\n}\n' % self.architecture) - if self.prefer_label is not None: - apt_preferences = os.path.join( - self.tempdir, "etc", "apt", "preferences") + apt_preferences = os.path.join( + self.tempdir, "etc", "apt", "preferences") + if self.backports: with open(apt_preferences, 'w') as f: f.write( 'Package: *\n' + 'Pin: release a=*-backports\n' + 'Pin-Priority: 500\n\n') + if self.prefer_label is not None: + with open(apt_preferences, 'a') as f: + f.write( + 'Package: *\n' 'Pin: release l=%s\n' 'Pin-Priority: 1001\n' % self.prefer_label) # XXX: This is a temporary workaround for bug 885895. @@ -616,7 +631,8 @@ class PackageFetcher(object): """A class to fetch packages from a defined list of sources.""" - def __init__(self, sources, architecture=None, prefer_label=None): + def __init__(self, sources, architecture=None, prefer_label=None, + backports=False): """Create a PackageFetcher. Once created a PackageFetcher should have its `prepare` method @@ -629,7 +645,8 @@ :type architecture: str """ self.cache = IsolatedAptCache( - sources, architecture=architecture, prefer_label=prefer_label) + sources, architecture=architecture, prefer_label=prefer_label, + backports=backports) def prepare(self): """Prepare the PackageFetcher for use. diff -Nru linaro-image-tools-2014.12/linaro_image_tools/hwpack/testing.py linaro-image-tools-2016.10/linaro_image_tools/hwpack/testing.py --- linaro-image-tools-2014.12/linaro_image_tools/hwpack/testing.py 2014-12-18 14:41:17.000000000 +0000 +++ linaro-image-tools-2016.10/linaro_image_tools/hwpack/testing.py 2016-05-19 13:51:31.000000000 +0000 @@ -126,6 +126,12 @@ md5sum.update(self.content.read()) return md5sum.hexdigest() + @property + def sha256(self): + sha256sum = hashlib.sha256() + sha256sum.update(self.content.read()) + return sha256sum.hexdigest() + class AptSourceFixture(object): """A fixture that provides an apt source, with packages and indices. diff -Nru linaro-image-tools-2014.12/linaro_image_tools/hwpack/tests/test_packages.py linaro-image-tools-2016.10/linaro_image_tools/hwpack/tests/test_packages.py --- linaro-image-tools-2014.12/linaro_image_tools/hwpack/tests/test_packages.py 2014-12-18 14:41:17.000000000 +0000 +++ linaro-image-tools-2016.10/linaro_image_tools/hwpack/tests/test_packages.py 2016-05-19 14:03:08.000000000 +0000 @@ -65,9 +65,11 @@ Size: %(size)d Architecture: armel MD5sum: %(md5)s + SHA256: %(sha256)s \n""" % {'filename': package.filename, 'size': package.size, 'md5': package.md5, + 'sha256': package.sha256, }), get_packages_file([package])) def test_two_stanzas(self): @@ -89,7 +91,8 @@ 'size': package.size, }) stanza += relationships - stanza += "MD5sum: %s\n\n" % package.md5 + stanza += "MD5sum: %s\n" % package.md5 + stanza += "SHA256: %s\n\n" % package.sha256 return stanza def test_with_depends(self): @@ -144,9 +147,11 @@ Size: %(size)d Architecture: all MD5sum: %(md5)s + SHA256: %(sha256)s \n""" % {'filename': package.filename, 'size': package.size, 'md5': package.md5, + 'sha256': package.sha256, }), get_packages_file([package], extra_text="Status: bar")) @@ -431,7 +436,7 @@ def test_attributes(self): package = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") self.assertEqual("foo", package.name) self.assertEqual("1.1", package.version) @@ -439,259 +444,270 @@ self.assertEqual(None, package.content) self.assertEqual(4, package.size) self.assertEqual("aaaa", package.md5) + self.assertEqual("bbbb", package.sha256) self.assertEqual("armel", package.architecture) def test_equal(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") self.assertEqual(package1, package2) self.assertFalse(package1 != package2) def test_not_equal_different_name(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") package2 = FetchedPackage( - "bar", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "bar", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") self.assertNotEqual(package1, package2) def test_not_equal_different_version(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") package2 = FetchedPackage( - "foo", "1.2", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.2", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") self.assertNotEqual(package1, package2) def test_not_equal_different_filename(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") package2 = FetchedPackage( - "foo", "1.1", "afoo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "afoo_1.1.deb", 4, "aaaa", "bbbb", "armel") self.assertNotEqual(package1, package2) def test_not_equal_different_size(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 5, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 5, "aaaa", "bbbb", "armel") self.assertNotEqual(package1, package2) def test_not_equal_different_md5(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "bbbb", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "bbbb", "bbbb", "armel") self.assertNotEqual(package1, package2) def test_not_equal_different_architecture(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "i386") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "i386") self.assertNotEqual(package1, package2) def test_not_equal_different_depends(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", depends="bar") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", + depends="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", depends="baz") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", + depends="baz") self.assertNotEqual(package1, package2) def test_not_equal_different_depends_one_None(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", depends="bar") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", + depends="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", depends=None) + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", + depends=None) self.assertNotEqual(package1, package2) def test_equal_same_depends(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", depends="bar") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", + depends="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", depends="bar") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", + depends="bar") self.assertEqual(package1, package2) def test_not_equal_different_pre_depends(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", pre_depends="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", pre_depends="baz") self.assertNotEqual(package1, package2) def test_not_equal_different_pre_depends_one_None(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", pre_depends="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", pre_depends=None) self.assertNotEqual(package1, package2) def test_equal_same_pre_depends(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", pre_depends="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", pre_depends="bar") self.assertEqual(package1, package2) def test_not_equal_different_conflicts(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", conflicts="bar") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", + conflicts="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", conflicts="baz") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", + conflicts="baz") self.assertNotEqual(package1, package2) def test_not_equal_different_conflicts_one_None(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", conflicts="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", conflicts=None) self.assertNotEqual(package1, package2) def test_equal_same_conflicts(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", conflicts="bar") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", + conflicts="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", conflicts="bar") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", + conflicts="bar") self.assertEqual(package1, package2) def test_not_equal_different_recommends(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", recommends="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", recommends="baz") self.assertNotEqual(package1, package2) def test_not_equal_different_recommends_one_None(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", recommends="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", recommends=None) self.assertNotEqual(package1, package2) def test_equal_same_recommends(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", recommends="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", recommends="bar") self.assertEqual(package1, package2) def test_not_equal_different_provides(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", provides="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", provides="baz") self.assertNotEqual(package1, package2) def test_not_equal_different_provides_one_None(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", provides="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", provides=None) self.assertNotEqual(package1, package2) def test_equal_same_provides(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", provides="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", provides="bar") self.assertEqual(package1, package2) def test_not_equal_different_replaces(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", replaces="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", replaces="baz") self.assertNotEqual(package1, package2) def test_not_equal_different_replaces_one_None(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", replaces="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", replaces=None) self.assertNotEqual(package1, package2) def test_equal_same_replaces(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", replaces="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", replaces="bar") self.assertEqual(package1, package2) def test_not_equal_different_breaks(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", breaks="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", breaks="baz") self.assertNotEqual(package1, package2) def test_not_equal_different_breaks_one_None(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", breaks="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", breaks=None) self.assertNotEqual(package1, package2) def test_equal_same_breaks(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", breaks="bar") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel", + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel", breaks="bar") self.assertEqual(package1, package2) def test_equal_different_contents(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") package1.content = StringIO("xxxx") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") package2.content = StringIO("yyyy") self.assertEqual(package1, package2) def test_equal_one_with_contents_one_not(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") package1.content = StringIO("xxxx") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") self.assertEqual(package1, package2) def test_equal_packages_hash_the_same(self): package1 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") package2 = FetchedPackage( - "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "armel") + "foo", "1.1", "foo_1.1.deb", 4, "aaaa", "bbbb", "armel") self.assertEqual(hash(package1), hash(package2)) def test_from_apt(self): diff -Nru linaro-image-tools-2014.12/linaro_image_tools/media_create/android_boards.py linaro-image-tools-2016.10/linaro_image_tools/media_create/android_boards.py --- linaro-image-tools-2014.12/linaro_image_tools/media_create/android_boards.py 2014-12-18 14:41:17.000000000 +0000 +++ linaro-image-tools-2016.10/linaro_image_tools/media_create/android_boards.py 2016-10-27 07:25:08.000000000 +0000 @@ -61,10 +61,10 @@ logger = logging.getLogger(DEFAULT_LOGGER_NAME) BOOT_MIN_SIZE_S = align_up(128 * 1024 * 1024, SECTOR_SIZE) / SECTOR_SIZE -SYSTEM_MIN_SIZE_S = align_up(768 * 1024 * 1024, SECTOR_SIZE) / SECTOR_SIZE -CACHE_MIN_SIZE_S = align_up(256 * 1024 * 1024, SECTOR_SIZE) / SECTOR_SIZE +SYSTEM_MIN_SIZE_S = align_up(1024 * 1024 * 1024, SECTOR_SIZE) / SECTOR_SIZE +CACHE_MIN_SIZE_S = align_up(128 * 1024 * 1024, SECTOR_SIZE) / SECTOR_SIZE USERDATA_MIN_SIZE_S = align_up(576 * 1024 * 1024, SECTOR_SIZE) / SECTOR_SIZE -SDCARD_MIN_SIZE_S = align_up(256 * 1024 * 1024, SECTOR_SIZE) / SECTOR_SIZE +SDCARD_MIN_SIZE_S = align_up(128 * 1024 * 1024, SECTOR_SIZE) / SECTOR_SIZE LOADER_MIN_SIZE_S = align_up(1 * 1024 * 1024, SECTOR_SIZE) / SECTOR_SIZE @@ -274,8 +274,8 @@ return '%s,%s,%s,*\n%s,%s,L\n%s,%s,L\n%s,-,E\n%s,%s,L\n%s,,,-' % ( boot_start, boot_len, partition_type, system_start, _system_len, - cache_start, _cache_len, userdata_start, userdata_start, - _userdata_len, sdcard_start) + cache_start, _cache_len, userdata_start, userdata_start + 1, + _userdata_len, sdcard_start + 2) def populate_raw_partition(self, media, boot_dir): super(AndroidBoardConfig, self).populate_raw_partition(media, boot_dir) diff -Nru linaro-image-tools-2014.12/linaro_image_tools/media_create/boards.py linaro-image-tools-2016.10/linaro_image_tools/media_create/boards.py --- linaro-image-tools-2014.12/linaro_image_tools/media_create/boards.py 2014-12-18 14:41:17.000000000 +0000 +++ linaro-image-tools-2016.10/linaro_image_tools/media_create/boards.py 2016-05-19 13:51:31.000000000 +0000 @@ -542,7 +542,7 @@ (loader_start, loader_len, boot_start, boot_len, root_start) = self.get_reserved_params(should_align_boot_part) return '-n 1:%s:%s -t 1:DA00 ' \ - '-n 2:%s:%s -t 2:0C00 ' \ + '-n 2:%s:%s -t 2:EF00 ' \ '-n 3:%s:- -t 3:8300' % ( loader_start, loader_len, boot_start, boot_len, root_start) @@ -939,7 +939,7 @@ if not to_file: to_file = os.path.basename(from_file) dtb = _get_file_matching(os.path.join(path, from_file)) - if not self.dtb_files or not dtb: + if not self.dtb_files and not dtb: logger.warn("Could not find a valid dtb file, skipping it.") logger.info("Will use kernel=%s, initrd=%s, dtb=%s." % @@ -2083,7 +2083,10 @@ If zero or more than one files match, raise a ValueError. """ - files = glob.glob(regex) + files = [] + for fn in glob.glob(regex): + if not os.path.islink(fn): + files.append(fn) if len(files) == 1: return files[0] elif len(files) == 0: diff -Nru linaro-image-tools-2014.12/linaro_image_tools/media_create/chroot_utils.py linaro-image-tools-2016.10/linaro_image_tools/media_create/chroot_utils.py --- linaro-image-tools-2014.12/linaro_image_tools/media_create/chroot_utils.py 2014-12-18 14:41:17.000000000 +0000 +++ linaro-image-tools-2016.10/linaro_image_tools/media_create/chroot_utils.py 2016-03-04 06:13:41.000000000 +0000 @@ -219,14 +219,14 @@ path_to_orig = os.path.join(tmp_dir, basename) # Move the existing file from the given directory to the temp dir. oldpath = os.path.join(directory, basename) - if os.path.exists(oldpath): + if os.path.lexists(oldpath): cmd_runner.run( ['mv', '-f', oldpath, path_to_orig], as_root=True).wait() # Now copy the given file onto the given directory. - cmd_runner.run(['cp', filepath, directory], as_root=True).wait() + cmd_runner.run(['cp', '-a', filepath, directory], as_root=True).wait() def undo(): - if os.path.exists(path_to_orig): + if os.path.lexists(path_to_orig): cmd_runner.run( ['mv', '-f', path_to_orig, directory], as_root=True).wait() else: diff -Nru linaro-image-tools-2014.12/linaro_image_tools/media_create/__init__.py linaro-image-tools-2016.10/linaro_image_tools/media_create/__init__.py --- linaro-image-tools-2014.12/linaro_image_tools/media_create/__init__.py 2014-12-18 14:41:17.000000000 +0000 +++ linaro-image-tools-2016.10/linaro_image_tools/media_create/__init__.py 2016-03-04 06:13:41.000000000 +0000 @@ -55,20 +55,16 @@ def get_version(): qemu_path = '/usr/bin/qemu-arm-static' - p = cmd_runner.run(["head", "-n", "1"], - stdin=subprocess.PIPE, stdout=subprocess.PIPE) if os.path.exists(qemu_path): - try: - # qemu-arm-static has no --version option so it fails, - # but still prints its version plus usage - cmd_runner.run(["/usr/bin/qemu-arm-static", "--version"], - stdout=p.stdin).communicate() - p.communicate() - except: - qemu_version = p.stdout.read() + # qemu-arm-static has -version option + proc = cmd_runner.run([qemu_path, "-version"], + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + (qemu_version, stderrdata) = proc.communicate() + if (proc.returncode or stderrdata): + qemu_version = "qemu-arm version unknown (%s)" % stderrdata else: qemu_version = "Cannot find %s." % qemu_path - return "%s\n: %s" % (__version__, qemu_version) + return "%s\n* %s" % (__version__, qemu_version) def add_common_options(parser): @@ -83,7 +79,9 @@ def get_args_parser(): """Get the ArgumentParser for the arguments given on the command line.""" - parser = argparse.ArgumentParser(version='%(prog)s ' + get_version()) + parser = argparse.ArgumentParser( + version='%(prog)s ' + get_version(), + formatter_class=argparse.RawTextHelpFormatter) group = parser.add_mutually_exclusive_group() group.add_argument( '--mmc', dest='device', default="sd.img", @@ -189,7 +187,9 @@ def get_android_args_parser(): """Get the ArgumentParser for the arguments given on the command line.""" - parser = argparse.ArgumentParser(version='%(prog)s ' + get_version()) + parser = argparse.ArgumentParser( + version='%(prog)s ' + get_version(), + formatter_class=argparse.RawTextHelpFormatter) group = parser.add_mutually_exclusive_group(required=True) group.add_argument( '--mmc', dest='device', help='The storage device to use.') diff -Nru linaro-image-tools-2014.12/linaro_image_tools/media_create/partitions.py linaro-image-tools-2016.10/linaro_image_tools/media_create/partitions.py --- linaro-image-tools-2014.12/linaro_image_tools/media_create/partitions.py 2014-12-18 14:41:17.000000000 +0000 +++ linaro-image-tools-2016.10/linaro_image_tools/media_create/partitions.py 2016-06-02 12:59:25.000000000 +0000 @@ -56,10 +56,8 @@ def setup_android_partitions(board_config, media, image_size, bootfs_label, should_create_partitions, should_align_boot_part=False): - cylinders = None if not media.is_block_device: image_size_in_bytes = get_partition_size_in_bytes(image_size) - cylinders = image_size_in_bytes / CYLINDER_SIZE proc = cmd_runner.run( ['dd', 'of=%s' % media.path, 'bs=1', 'seek=%s' % image_size_in_bytes, 'count=0'], @@ -68,8 +66,7 @@ if should_create_partitions: create_partitions( - board_config, media, HEADS, SECTORS, cylinders, - should_align_boot_part=should_align_boot_part) + board_config, media, should_align_boot_part=should_align_boot_part) if media.is_block_device: bootfs, system, cache, data, sdcard = \ @@ -137,10 +134,8 @@ :param should_align_boot_part: Whether to align the boot partition too. :param part_table: Type of partition table, either 'mbr' or 'gpt'. """ - cylinders = None if not media.is_block_device: image_size_in_bytes = get_partition_size_in_bytes(image_size) - cylinders = image_size_in_bytes / CYLINDER_SIZE proc = cmd_runner.run( ['dd', 'of=%s' % media.path, 'bs=1', 'seek=%s' % image_size_in_bytes, 'count=0'], @@ -149,8 +144,7 @@ if should_create_partitions: create_partitions( - board_config, media, HEADS, SECTORS, cylinders, - should_align_boot_part=should_align_boot_part, + board_config, media, should_align_boot_part=should_align_boot_part, part_table=part_table) if media.is_block_device: @@ -527,8 +521,7 @@ return size -def run_sfdisk_commands(commands, heads, sectors, cylinders, device, - as_root=True, stderr=None): +def run_sfdisk_commands(commands, device, as_root=True, stderr=None): """Run the given commands under sfdisk. Every time sfdisk is invoked it will repartition the device so to create @@ -541,14 +534,7 @@ # --force is unfortunate, but a consequence of having partitions not # starting on cylinder boundaries: sfdisk will abort with "Warning: # partition 2 does not start at a cylinder boundary" - args = ['sfdisk', - '--force', - '-D', - '-uS', - '-H', str(heads), - '-S', str(sectors)] - if cylinders is not None: - args.extend(['-C', str(cylinders)]) + args = ['sfdisk', '--force', '-uS'] args.append(device) proc = cmd_runner.run( args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=stderr, @@ -563,18 +549,12 @@ proc.wait() -def create_partitions(board_config, media, heads, sectors, cylinders=None, - should_align_boot_part=False, part_table="mbr"): +def create_partitions(board_config, media, should_align_boot_part=False, + part_table="mbr"): """Partition the given media according to the board requirements. :param board_config: A BoardConfig class. :param media: A setup_partitions.Media object to partition. - :param heads: Number of heads to use in the disk geometry of - partitions. - :param sectors: Number of sectors to use in the disk geometry of - partitions. - :param cylinders: The number of cylinders to pass to sfdisk's -C argument. - If None the -C argument is not passed. :param should_align_boot_part: Whether to align the boot partition too. :param part_table Type of partition table, either 'mbr' or 'gpt'. """ @@ -599,7 +579,7 @@ sfdisk_cmd = board_config.get_sfdisk_cmd( should_align_boot_part=should_align_boot_part) - run_sfdisk_commands(sfdisk_cmd, heads, sectors, cylinders, media.path) + run_sfdisk_commands(sfdisk_cmd, media.path) # sleep to wait for the partition to settle. wait_partition_to_settle(media, part_table) diff -Nru linaro-image-tools-2014.12/linaro_image_tools/media_create/tests/test_media_create.py linaro-image-tools-2016.10/linaro_image_tools/media_create/tests/test_media_create.py --- linaro-image-tools-2014.12/linaro_image_tools/media_create/tests/test_media_create.py 2014-12-18 14:41:17.000000000 +0000 +++ linaro-image-tools-2016.10/linaro_image_tools/media_create/tests/test_media_create.py 2016-10-27 07:25:08.000000000 +0000 @@ -80,10 +80,8 @@ temporarily_overwrite_file_on_dir, ) from linaro_image_tools.media_create.partitions import ( - HEADS, MIN_IMAGE_SIZE, Media, - SECTORS, _check_min_size, _get_device_file_for_partition_number, _parse_blkid_output, @@ -1904,44 +1902,44 @@ def test_panda_android(self): self.assertEqual( - '63,270272,0x0C,*\n270336,1572864,L\n1843200,524288,L\n' - '2367488,-,E\n2367488,1179648,L\n3547136,,,-', + '63,270272,0x0C,*\n270336,2097152,L\n2367488,262144,L\n' + '2629632,-,E\n2629633,1179648,L\n3809282,,,-', android_boards.AndroidPandaConfig().get_sfdisk_cmd()) def test_origen_android(self): self.assertEqual( - '1,8191,0xDA\n8253,270274,0x0C,*\n278528,1572864,L\n' - '1851392,-,E\n1851392,524288,L\n2375680,1179648,L\n3555328,,,-', + '1,8191,0xDA\n8253,270274,0x0C,*\n278528,2097152,L\n' + '2375680,-,E\n2375680,262144,L\n2637824,1179648,L\n3817472,,,-', android_boards.AndroidOrigenConfig().get_sfdisk_cmd()) def test_origen_quad_android(self): self.assertEqual( - '1,8191,0xDA\n8253,270274,0x0C,*\n278528,1572864,L\n' - '1851392,-,E\n1851392,524288,L\n2375680,1179648,L\n3555328,,,-', + '1,8191,0xDA\n8253,270274,0x0C,*\n278528,2097152,L\n' + '2375680,-,E\n2375680,262144,L\n2637824,1179648,L\n3817472,,,-', android_boards.AndroidOrigenQuadConfig().get_sfdisk_cmd()) def test_snowball_emmc_android(self): self.assertEqual( - '256,7936,0xDA\n8192,262144,0x0C,*\n270336,1572864,L\n' - '1843200,-,E\n1843200,524288,L\n2367488,1179648,L\n3547136,,,-', + '256,7936,0xDA\n8192,262144,0x0C,*\n270336,2097152,L\n' + '2367488,-,E\n2367488,262144,L\n2629632,1179648,L\n3809280,,,-', android_boards.AndroidSnowballEmmcConfig().get_sfdisk_cmd()) def test_vexpress_android(self): self.assertEqual( - '63,270272,0x0E,*\n270336,1572864,L\n1843200,524288,L\n' - '2367488,-,E\n2367488,1179648,L\n3547136,,,-', + '63,270272,0x0E,*\n270336,2097152,L\n2367488,262144,L\n' + '2629632,-,E\n2629633,1179648,L\n3809282,,,-', android_boards.AndroidVexpressConfig().get_sfdisk_cmd()) def test_mx5_android(self): self.assertEqual( - '1,8191,0xDA\n8192,262144,0x0C,*\n270336,1572864,L\n' - '1843200,-,E\n1843200,524288,L\n2367488,1179648,L\n3547136,,,-', + '1,8191,0xDA\n8192,262144,0x0C,*\n270336,2097152,L\n' + '2367488,-,E\n2367488,262144,L\n2629632,1179648,L\n3809280,,,-', android_boards.AndroidMx53LoCoConfig().get_sfdisk_cmd()) def test_mx6_android(self): self.assertEqual( - '1,8191,0xDA\n8192,262144,0x0C,*\n270336,1572864,L\n' - '1843200,-,E\n1843200,524288,L\n2367488,1179648,L\n3547136,,,-', + '1,8191,0xDA\n8192,262144,0x0C,*\n270336,2097152,L\n' + '2367488,-,E\n2367488,262144,L\n2629632,1179648,L\n3809280,,,-', android_boards.AndroidMx6QSabreliteConfig().get_sfdisk_cmd()) @@ -2533,7 +2531,7 @@ board_conf.set_metadata([]) install_omap_boot_loader("chroot_dir", "boot_disk", board_conf) expected = [ - '%s cp -v chroot_dir/MLO boot_disk' % sudo_args, 'sync'] + '%s cp -v chroot_dir/MLO boot_disk' % sudo_args] self.assertEqual(expected, fixture.mock.commands_executed) def test_install_smdk_u_boot(self): @@ -2806,20 +2804,18 @@ board_conf = boards.Mx5Config() board_conf.hwpack_format = HardwarepackHandler.FORMAT_1 - create_partitions(board_conf, self.media, HEADS, SECTORS, '') + create_partitions(board_conf, self.media) self.assertEqual( ['%s parted -s %s mklabel msdos' % (sudo_args, self.media.path), '%s sfdisk -l %s' % (sudo_args, self.media.path), - 'sync', '%s sfdisk -l %s' % (sudo_args, self.media.path)], popen_fixture.mock.commands_executed) # Notice that we create all partitions in a single sfdisk run because # every time we run sfdisk it actually repartitions the device, # erasing any partitions created previously. self.assertEqual( - [('1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', HEADS, SECTORS, - '', self.media.path)], + [('1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', self.media.path)], sfdisk_fixture.mock.calls) def test_create_partitions_for_smdkv310(self): @@ -2829,20 +2825,19 @@ board_conf = get_board_config('smdkv310') board_conf.hwpack_format = HardwarepackHandler.FORMAT_1 - create_partitions(board_conf, self.media, HEADS, SECTORS, '') + create_partitions(board_conf, self.media) self.assertEqual( ['%s parted -s %s mklabel msdos' % (sudo_args, self.media.path), '%s sfdisk -l %s' % (sudo_args, self.media.path), - 'sync', '%s sfdisk -l %s' % (sudo_args, self.media.path)], popen_fixture.mock.commands_executed) # Notice that we create all partitions in a single sfdisk run because # every time we run sfdisk it actually repartitions the device, # erasing any partitions created previously. self.assertEqual( - [('1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', HEADS, - SECTORS, '', self.media.path)], sfdisk_fixture.mock.calls) + [('1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', self.media.path)], + sfdisk_fixture.mock.calls) def test_create_partitions_for_origen(self): # For this board we create a one cylinder partition at the beginning. @@ -2851,20 +2846,19 @@ board_conf = get_board_config('origen') board_conf.hwpack_format = HardwarepackHandler.FORMAT_1 - create_partitions(board_conf, self.media, HEADS, SECTORS, '') + create_partitions(board_conf, self.media) self.assertEqual( ['%s parted -s %s mklabel msdos' % (sudo_args, self.media.path), '%s sfdisk -l %s' % (sudo_args, self.media.path), - 'sync', '%s sfdisk -l %s' % (sudo_args, self.media.path)], popen_fixture.mock.commands_executed) # Notice that we create all partitions in a single sfdisk run because # every time we run sfdisk it actually repartitions the device, # erasing any partitions created previously. self.assertEqual( - [('1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', HEADS, - SECTORS, '', self.media.path)], sfdisk_fixture.mock.calls) + [('1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', self.media.path)], + sfdisk_fixture.mock.calls) def test_create_partitions_for_origen_quad(self): # For this board we create a one cylinder partition at the beginning. @@ -2874,20 +2868,19 @@ board_conf = get_board_config('origen_quad') board_conf.hwpack_format = HardwarepackHandler.FORMAT_1 create_partitions( - board_conf, self.media, HEADS, SECTORS, '') + board_conf, self.media) self.assertEqual( ['%s parted -s %s mklabel msdos' % (sudo_args, self.media.path), '%s sfdisk -l %s' % (sudo_args, self.media.path), - 'sync', '%s sfdisk -l %s' % (sudo_args, self.media.path)], popen_fixture.mock.commands_executed) # Notice that we create all partitions in a single sfdisk run because # every time we run sfdisk it actually repartitions the device, # erasing any partitions created previously. self.assertEqual( - [('1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', HEADS, - SECTORS, '', self.media.path)], sfdisk_fixture.mock.calls) + [('1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', self.media.path)], + sfdisk_fixture.mock.calls) def test_create_partitions_for_arndale(self): # For this board we create a one cylinder partition at the beginning. @@ -2897,20 +2890,19 @@ board_conf = get_board_config('arndale') board_conf.hwpack_format = HardwarepackHandler.FORMAT_1 create_partitions( - board_conf, self.media, HEADS, SECTORS, '') + board_conf, self.media) self.assertEqual( ['%s parted -s %s mklabel msdos' % (sudo_args, self.media.path), '%s sfdisk -l %s' % (sudo_args, self.media.path), - 'sync', '%s sfdisk -l %s' % (sudo_args, self.media.path)], popen_fixture.mock.commands_executed) # Notice that we create all partitions in a single sfdisk run because # every time we run sfdisk it actually repartitions the device, # erasing any partitions created previously. self.assertEqual( - [('1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', HEADS, - SECTORS, '', self.media.path)], sfdisk_fixture.mock.calls) + [('1,8191,0xDA\n8192,106496,0x0C,*\n114688,,,-', self.media.path)], + sfdisk_fixture.mock.calls) def test_create_partitions_for_beagle(self): popen_fixture = self.useFixture(MockCmdRunnerPopenFixture()) @@ -2918,17 +2910,15 @@ board_conf = get_board_config('beagle') board_conf.hwpack_format = HardwarepackHandler.FORMAT_1 - create_partitions(board_conf, self.media, HEADS, SECTORS, '') + create_partitions(board_conf, self.media) self.assertEqual( ['%s parted -s %s mklabel msdos' % (sudo_args, self.media.path), '%s sfdisk -l %s' % (sudo_args, self.media.path), - 'sync', '%s sfdisk -l %s' % (sudo_args, self.media.path)], popen_fixture.mock.commands_executed) self.assertEqual( - [('63,106432,0x0C,*\n106496,,,-', HEADS, SECTORS, '', - self.media.path)], + [('63,106432,0x0C,*\n106496,,,-', self.media.path)], sfdisk_fixture.mock.calls) def test_create_partitions_with_img_file(self): @@ -2938,19 +2928,18 @@ tmpfile = self.createTempFileAsFixture() board_conf = get_board_config('beagle') board_conf.hwpack_format = HardwarepackHandler.FORMAT_1 - create_partitions(board_conf, Media(tmpfile), HEADS, SECTORS, '') + create_partitions(board_conf, Media(tmpfile)) # Unlike the test for partitioning of a regular block device, in this # case parted was not called as there's no existing partition table # for us to overwrite on the image file. self.assertEqual( ['%s sfdisk -l %s' % (sudo_args, tmpfile), - 'sync', '%s sfdisk -l %s' % (sudo_args, tmpfile)], popen_fixture.mock.commands_executed) self.assertEqual( - [('63,106432,0x0C,*\n106496,,,-', HEADS, SECTORS, '', tmpfile)], + [('63,106432,0x0C,*\n106496,,,-', tmpfile)], sfdisk_fixture.mock.calls) def test_run_sfdisk_commands(self): @@ -2960,7 +2949,7 @@ stderr=open('/dev/null', 'w')) proc.communicate() stdout, stderr = run_sfdisk_commands( - '2,16063,0xDA', HEADS, SECTORS, '', tmpfile, as_root=False, + '2,16063,0xDA', tmpfile, as_root=False, stderr=subprocess.PIPE) self.assertIn('Successfully wrote the new partition table', stdout) @@ -2969,7 +2958,7 @@ self.assertRaises( cmd_runner.SubcommandNonZeroReturnValue, run_sfdisk_commands, - ',1,0xDA', HEADS, SECTORS, '', tmpfile, as_root=False, + ',1,0xDA', tmpfile, as_root=False, stderr=subprocess.PIPE) def test_wait_partitions_to_settle(self): @@ -3041,10 +3030,10 @@ (63 * SECTOR_SIZE, 32768 * SECTOR_SIZE), (32831 * SECTOR_SIZE, 65536 * SECTOR_SIZE), (98367 * SECTOR_SIZE, 65536 * SECTOR_SIZE), - ((294975 + ext_part_size) * SECTOR_SIZE, - (131072 - ext_part_size) * SECTOR_SIZE), - ((426047 + ext_part_size) * SECTOR_SIZE, - self.android_image_size - (426047 + ext_part_size) * SECTOR_SIZE) + ((294944 + ext_part_size) * SECTOR_SIZE, + (131103 - ext_part_size) * SECTOR_SIZE), + ((426016 + ext_part_size) * SECTOR_SIZE, + self.android_image_size - (426016 + ext_part_size) * SECTOR_SIZE) ] self.android_snowball_offsets_and_sizes = [ @@ -3192,7 +3181,7 @@ stderr=open('/dev/null', 'w')) proc.communicate() stdout, stderr = run_sfdisk_commands( - sfdisk_commands, HEADS, SECTORS, '', tmpfile, as_root=False, + sfdisk_commands, tmpfile, as_root=False, # Throw away stderr as sfdisk complains a lot when operating on a # qemu image. stderr=subprocess.PIPE) @@ -3308,13 +3297,11 @@ ['dd of=%s bs=1 seek=2147483648 count=0' % tmpfile, '%s sfdisk -l %s' % (sudo_args, tmpfile), # This call would partition the image file. - '%s sfdisk --force -D -uS -H %s -S %s -C 1024 %s' % ( - sudo_args, HEADS, SECTORS, tmpfile), + '%s sfdisk --force -uS %s' % (sudo_args, tmpfile), # Make sure changes are written to disk. - 'sync', '%s sfdisk -l %s' % (sudo_args, tmpfile), '%s mkfs.vfat -F 32 %s -n boot' % (sudo_args, bootfs_dev), - '%s mkfs.ext3 %s -L root' % (sudo_args, rootfs_dev)], + '%s mkfs.ext3 -F %s -L root' % (sudo_args, rootfs_dev)], popen_fixture.mock.commands_executed) def test_setup_partitions_for_block_device(self): @@ -3341,16 +3328,14 @@ self.assertEqual( ['%s parted -s %s mklabel msdos' % (sudo_args, tmpfile), '%s sfdisk -l %s' % (sudo_args, tmpfile), - '%s sfdisk --force -D -uS -H %s -S %s %s' % ( - sudo_args, HEADS, SECTORS, tmpfile), - 'sync', + '%s sfdisk --force -uS %s' % (sudo_args, tmpfile), '%s sfdisk -l %s' % (sudo_args, tmpfile), # Since the partitions are mounted, setup_partitions will umount # them before running mkfs. '%s umount %s' % (sudo_args, bootfs_dev), '%s umount %s' % (sudo_args, rootfs_dev), '%s mkfs.vfat -F 32 %s -n boot' % (sudo_args, bootfs_dev), - '%s mkfs.ext3 %s -L root' % (sudo_args, rootfs_dev)], + '%s mkfs.ext3 -F %s -L root' % (sudo_args, rootfs_dev)], popen_fixture.mock.commands_executed) def test_get_device_file_for_partition_number_raises_DBusException(self): @@ -3434,7 +3419,6 @@ pass test_func() expected = ['%s mount foo bar -t proc' % sudo_args, - 'sync', '%s umount bar' % sudo_args] self.assertEqual(expected, popen_fixture.mock.commands_executed) @@ -3449,7 +3433,6 @@ except TestException: pass expected = ['%s mount foo bar' % sudo_args, - 'sync', '%s umount bar' % sudo_args] self.assertEqual(expected, popen_fixture.mock.commands_executed) @@ -3468,7 +3451,7 @@ with partition_mounted('foo', 'bar'): pass test_func() - expected = ['sudo -E mount foo bar', 'sync'] + expected = ['sudo -E mount foo bar'] self.assertEqual(expected, popen_fixture.mock.commands_executed) @@ -3483,7 +3466,6 @@ expected_calls = [ 'mkdir -p boot_disk', '%s mount boot_partition boot_disk' % sudo_args, - 'sync', '%s umount boot_disk' % sudo_args] def save_args(self, *args): @@ -3688,7 +3670,6 @@ '%s dd if=/dev/zero of=%s bs=1M count=100' % ( sudo_args, swap_file), '%s mkswap %s' % (sudo_args, swap_file), - 'sync', '%s umount %s' % (sudo_args, root_disk)] self.assertEqual(expected, popen_fixture.mock.commands_executed) @@ -3977,7 +3958,7 @@ fixture = self.useFixture(MockCmdRunnerPopenFixture()) temporarily_overwrite_file_on_dir('/path/to/file', '/dir', '/tmp/dir') self.assertEquals( - ['%s cp /path/to/file /dir' % sudo_args], + ['%s cp -a /path/to/file /dir' % sudo_args], fixture.mock.commands_executed) fixture.mock.calls = [] @@ -4165,8 +4146,8 @@ prepare_chroot('chroot', '/tmp/dir') run_local_atexit_funcs() expected = [ - 'cp /etc/resolv.conf chroot/etc', - 'cp /etc/hosts chroot/etc', + 'cp -a /etc/resolv.conf chroot/etc', + 'cp -a /etc/hosts chroot/etc', 'cp /usr/bin/qemu-armeb-static chroot/usr/bin', 'cp /usr/bin/qemu-arm-static chroot/usr/bin', 'cp /usr/bin/qemu-aarch64-static chroot/usr/bin', diff -Nru linaro-image-tools-2014.12/linaro_image_tools/media_create/unpack_binary_tarball.py linaro-image-tools-2016.10/linaro_image_tools/media_create/unpack_binary_tarball.py --- linaro-image-tools-2014.12/linaro_image_tools/media_create/unpack_binary_tarball.py 2014-12-18 14:41:17.000000000 +0000 +++ linaro-image-tools-2016.10/linaro_image_tools/media_create/unpack_binary_tarball.py 2016-03-04 06:13:42.000000000 +0000 @@ -73,7 +73,7 @@ stdout=subprocess.PIPE, stderr=subprocess.STDOUT, ).communicate() - except cmd_runner.SubcommandNonZeroReturnValue as inst: + except cmd_runner.SubcommandNonZeroReturnValue: return False for line in tar_help.splitlines(): diff -Nru linaro-image-tools-2014.12/linaro_image_tools/__version__.py linaro-image-tools-2016.10/linaro_image_tools/__version__.py --- linaro-image-tools-2014.12/linaro_image_tools/__version__.py 2014-12-18 14:48:04.000000000 +0000 +++ linaro-image-tools-2016.10/linaro_image_tools/__version__.py 2016-10-27 07:29:16.000000000 +0000 @@ -1 +1 @@ -__version__ = "2014.12" +__version__ = "2016.10" diff -Nru linaro-image-tools-2014.12/PKG-INFO linaro-image-tools-2016.10/PKG-INFO --- linaro-image-tools-2014.12/PKG-INFO 2014-12-18 14:50:35.000000000 +0000 +++ linaro-image-tools-2016.10/PKG-INFO 2016-10-27 07:32:54.000000000 +0000 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: linaro-image-tools -Version: 2014.12 +Version: 2016.10 Summary: Tools to create and write Linaro images Home-page: https://launchpad.net/linaro-image-tools Author: Linaro Infrastructure team