From 1da633f7e213fa5ad05e5aff8b49151581ad5d37 Mon Sep 17 00:00:00 2001 From: Trevor Woerner Date: Thu, 4 Jun 2026 18:02:18 -0400 Subject: [PATCH 1/3] remove in-tree distribution packaging MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The repository carried distribution-packaging trees for Debian (`debian/`) and RPM-based distros (`packaging/bmaptool.spec`, `packaging/bmaptool.changes`) alongside the project's own source. Both trees are holdovers from the project's original Tizen-era release workflow and are no longer consumed by any downstream distribution. Verified as of 2026-06-04: * Debian (trixie / sid / forky), source `bmap-tools 3.9.0-3`: the active `debian/control` declares `Maintainer: Andrej Shadura `, `Uploaders:` covers Sjoerd Simons and Johannes Schauer Marin Rodrigues, `Standards-Version: 4.7.2`, and `Vcs-Git: https://salsa.debian.org/debian/bmap-tools.git`. The transitional `bmap-tools` -> `bmaptool` rename, the `Replaces`/`Breaks`/`Provides` block, the Debian-specific `dh-sequence-python3` + `pybuild-plugin-pyproject` build shape, and the `debian/patches/copy_and_verify_image.patch` do not exist in this repo's `debian/` tree. * Ubuntu inherits the Debian source package via the standard sync, so the same is true there. * Fedora rawhide, source `bmap-tools 3.9.0`: the active spec in `src.fedoraproject.org/rpms/bmap-tools` declares `License: GPL-2.0-or-later`, `Release: %autorelease`, `BuildRequires: python3-devel/python3-pytest/python3-six`, and uses `%autochangelog`. None of those constructs exist in this repo's `packaging/bmaptool.spec`, which still references `python2-rpm-macros`, `python-distribute`, `pygpgme`, and a `centos_version == 600` conditional. * openSUSE Factory, source `bmap-tools 3.9.0-0`: the active spec at `api.opensuse.org/public/source/openSUSE:Factory/ bmap-tools/bmap-tools.spec` carries a SUSE-LLC copyright header, uses `%{?sle15_python_module_pythons}` and the `%{python_module ...}` build shape, and ships an `update-alternatives` postscript. The accompanying `bmap-tools.changes` is authored exclusively by openSUSE packagers (Dirk Müller, Max Lin, Ben Greiner). None of those constructs exist in this repo's `packaging/`. * Arch (AUR) carries its own `PKGBUILD` (maintainer Patrick McCarty), hand-written `build()` / `package()` functions using `python setup.py`, last bumped to `3.7-1` in November 2023; it consumes the upstream source tarball but not this repo's `packaging/` or `debian/` trees. A code project should be distribution-agnostic; downstream distros maintain their own packaging trees and are clearly doing so already. Carrying parallel in-tree copies here means every release requires hand-editing two changelog formats that no consumer reads, and an incoming PR can (and historically did, PR #51 / PR #18) propose changes to packaging metadata that the project has no way to validate. Remove both directories, slim `make_a_release.sh` of the hunks that maintained them, and point would-be packagers at the upstream distribution trackers from the README. Specifically: - Delete `debian/` (control, copyright, rules, changelog, the three filelists, the source-format hint, the manpages index). - Delete `packaging/bmaptool.changes` and `packaging/bmaptool.spec`. - Trim `make_a_release.sh` of the parts that only existed to feed those packaging trees: the two `sed` invocations that bumped `Version:` and stripped the `%define rc_num` macro inside `bmaptool.spec`; the editor-prompt block that gathered changelog lines from the maintainer; the `format_changelog` helper whose only callers were the deb and RPM changelog rewrites; and the two changelog-rewrite blocks themselves. What remains is the Python-package version bump, the man-page header update, the two checklist prompts, the commit, and the post-merge reminder to make the GitHub release. - Add a "Downstream packaging" subsection to the README that points at the Debian, Ubuntu, openSUSE, Fedora, and Arch trackers, with a closing note asking packaging bugs to be filed against the distribution rather than against this project. - Record the removal and the README addition in the CHANGELOG under the existing `[Unreleased]` block. AI-Generated: codex/claude-opus 4.7 (xhigh) Signed-off-by: Trevor Woerner --- CHANGELOG.md | 4 + README.md | 16 +++ debian/bmaptool.docs | 2 - debian/bmaptool.install | 1 - debian/bmaptool.manpages | 1 - debian/changelog | 245 ------------------------------------- debian/control | 38 ------ debian/copyright | 28 ----- debian/manpages | 1 - debian/rules | 4 - debian/source/format | 1 - make_a_release.sh | 54 -------- packaging/bmaptool.changes | 148 ---------------------- packaging/bmaptool.spec | 89 -------------- 14 files changed, 20 insertions(+), 612 deletions(-) delete mode 100644 debian/bmaptool.docs delete mode 100644 debian/bmaptool.install delete mode 100644 debian/bmaptool.manpages delete mode 100644 debian/changelog delete mode 100644 debian/control delete mode 100644 debian/copyright delete mode 100644 debian/manpages delete mode 100755 debian/rules delete mode 100644 debian/source/format delete mode 100644 packaging/bmaptool.changes delete mode 100644 packaging/bmaptool.spec diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a03cde..7d37304 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,9 +19,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Disable `fail-fast` on the CI test matrix so a failure on one Python version does not cancel the rest. - Single-thread `pbzip2` and `pigz` in the api_base test to avoid OOM events on shared CI runners. - Reduce `maintainers = [...]` to the single active maintainer (Trevor Woerner) and correct `authors = [...]` to list only the project's original author, Artem Bityutskiy. +- README: add a "Downstream packaging" subsection pointing at distribution trackers. +- `make_a_release.sh`: drop the distro-packaging hunks (RPM version sed, deb and RPM changelog rewrites) along with the editor-prompt block and `format_changelog` helper that fed them. ### Removed - The historical pre-Python-3 `BmapCopy` modules under `tests/oldcodebase/` and the backward-compat half of `tests/test_compat.py`. - `six` from `[project.optional-dependencies].dev` (no longer needed without the backward-compat test). +- The in-tree `debian/` source-package tree. +- The in-tree `packaging/` RPM tree (`bmaptool.spec`, `bmaptool.changes`). ## [3.9.0] diff --git a/README.md b/README.md index f4669cf..86192c1 100644 --- a/README.md +++ b/README.md @@ -335,6 +335,22 @@ Finally, to run tests use `unittest`: python3 -m unittest -bv ``` +## Downstream packaging + +`bmaptool` is packaged for several Linux distributions independently +of this repository. If you are looking to install `bmaptool` from +your distribution's package manager rather than from source, the +following trackers are good starting points: + +* Debian: +* Ubuntu: +* openSUSE: +* Fedora: +* Arch (AUR): + +Downstream packagers maintain `bmaptool` independently; please file +packaging bugs with your distribution, not with this project. + ## Project and maintainer The bmaptool project implements bmap-related tools and API modules. The entire diff --git a/debian/bmaptool.docs b/debian/bmaptool.docs deleted file mode 100644 index 192ea8b..0000000 --- a/debian/bmaptool.docs +++ /dev/null @@ -1,2 +0,0 @@ -CHANGELOG.md -README.md diff --git a/debian/bmaptool.install b/debian/bmaptool.install deleted file mode 100644 index 8b13789..0000000 --- a/debian/bmaptool.install +++ /dev/null @@ -1 +0,0 @@ - diff --git a/debian/bmaptool.manpages b/debian/bmaptool.manpages deleted file mode 100644 index 8a9b6db..0000000 --- a/debian/bmaptool.manpages +++ /dev/null @@ -1 +0,0 @@ -docs/man1/bmaptool.1 diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index 0e9029e..0000000 --- a/debian/changelog +++ /dev/null @@ -1,245 +0,0 @@ -bmaptool (3.9.0) unstable; urgency=low - - * copy: add `--removable-device`, `--keyring` and `--fingerprint` options - * Respect query part of the url when operating on the path - * support FTP authentication - * rework GPG tests - - -- Trevor Woerner Fri, 14 Mar 2025 13:46:05 -0600 - -bmaptool (3.8.0) unstable; urgency=low - - * use 'df -P' for POSIX portable output - * bmaptool has new maintainers - * bmaptool has a new home - * bmaptool is now only called 'bmaptool' and not one of a dozen such - variations - * switch to use an X.Y.Z versioning number scheme - - -- Trevor Woerner Mon, 18 Mar 2024 23:44:10 -0400 - -bmap-tools (3.7) unstable; urgency=low - - * Use GitHub Actions for CI (#109) - * Add `poetry` for dependency management and `black` for code formatting - (#104) - * Add functionality for copying from standard input (#99) - * Switch from gpg to gpgme module (#103) - - -- Artem Bityutskiy Wed, 02 Aug 2023 15:11:26 +0300 - -bmap-tools (3.6) unstable; urgency=low - - * Improve ZFS compatibility. - * Added the 'zstd' compression type support. - * Add '--psplash-pipe' option for interacting with psplash. - - -- Artem Bityutskiy Tue, 02 Feb 2021 14:08:41 +0200 - -bmap-tools (3.5) unstable; urgency=low - - * Fixed copying of compressed files from URLs - * Python 3.x support fixes and improvements. - - -- Artem Bityutskiy Thu, 23 Aug 2018 10:34:31 +0300 - -bmap-tools (3.4) unstable; urgency=low - - * New homepage: https://github.com/01org/bmap-tools - * Python 3.x support. - * bmaptool can now be shipped as standalone application. - * Added support for ZIP archives. - * Added support for LZ4 archives. - * Fixed bugs related to specific filesystems. - - -- Alexander Kanevskiy Thu, 31 Aug 2017 15:40:12 +0300 - -bmap-tools (3.2) unstable; urgency=low - - * Add support for LZO and archives ('.lzo' and '.tar.lzo'). - * Add support for multi-stream bzip2 archives (creted with "pbzip2"). - * Support tmpfs by using the SEEK_HOLE method instead of FIEMAP. - * Use external tools like 'gzip' and 'bzip2' for decompressing, instead of - using internal python libraries. - - -- Artem Bityutskiy Wed, 19 Feb 2014 16:50:12 +0200 - -bmap-tools (3.2~rc2) unstable; urgency=low - - * Bump the version number to 3.2~rc2. - - -- Artem Bityutskiy Fri, 31 Jan 2014 12:54:42 +0200 - -bmap-tools (3.1) unstable; urgency=low - - * Change bmap format version from 1.4 to 2.0, because there are incompatible - changes in 1.4 comparing to 1.3, so the right version number is 2.0 - * Add backward and forward bmap format compatibility unit-tests - - -- Artem Bityutskiy Thu, 07 Nov 2013 17:26:57 +0200 - -bmap-tools (3.0) unstable; urgency=low - - * Switch from using SHA1 for checksumming to SHA256. - * Start supporting OpenPGP signatures. Both detached and clearsign signatures - are supported. - * Always sync the image file before creating the bmap for it, to work-around - kernel bugs in early FIEMAP implementations. - - -- Artem Bityutskiy Wed, 02 Oct 2013 09:30:22 +0300 - -bmap-tools (2.6) unstable; urgency=low - - * Add support for on-the-fly decompression of '.xz' and '.tar.xz' files. - - -- Artem Bityutskiy Tue, 13 Aug 2013 14:53:49 +0300 - -bmap-tools (2.5) unstable; urgency=low - - * Do not fail when lacking permisssions for accessing block device's sysfs - files. - * Improve debian packaging. - - -- Artem Bityutskiy Mon, 05 Aug 2013 10:05:09 +0300 - -bmap-tools (2.4) unstable; urgency=low - - * Add support for ssh:// URLs. - - -- Artem Bityutskiy Wed, 05 Jun 2013 18:15:41 +0300 - -bmap-tools (2.3) unstable; urgency=low - - * Add bmap file SHA1 verification, make tests work on btrfs. - - -- Artem Bityutskiy Mon, 06 May 2013 10:58:32 +0300 - -bmap-tools (2.2) unstable; urgency=low - - * Support username and password in URLs. - - -- Artem Bityutskiy Mon, 11 Mar 2013 14:40:17 +0200 - -bmap-tools (2.1) unstable; urgency=low - - * Fix out of memory issues when copying .bz2 files. - - -- Artem Bityutskiy Mon, 18 Feb 2013 16:38:32 +0200 - -bmap-tools (2.0) unstable; urgency=low - - * Fix the an issue with running out of memory in TransRead.py. - - -- Artem Bityutskiy Thu, 17 Jan 2013 11:33:15 +0200 - -bmap-tools (2.0~rc5) unstable; urgency=low - - * When block device optimzations fail - raise an exception except of muting - the error, because we really want to know about these failures and possibly - fix them. - - -- Artem Bityutskiy Tue, 15 Jan 2013 14:51:27 +0200 - -bmap-tools (2.0~rc4) unstable; urgency=low - - * Fix bmap autodiscovery. - - -- Artem Bityutskiy Thu, 10 Jan 2013 13:58:07 +0200 - -bmap-tools (2.0~rc3) unstable; urgency=low - - * Fix uncaught urllib2 exception bug introduced in rc1. - - -- Artem Bityutskiy Mon, 07 Jan 2013 10:19:49 +0200 - -bmap-tools (2.0~rc2) unstable; urgency=low - - * Fix writing to block devices, which was broken in rc1. - * Make the informational messages a bit nicer. - - -- Artem Bityutskiy Fri, 04 Jan 2013 09:52:41 +0200 - -bmap-tools (2.0~rc1) unstable; urgency=low - - * Allow copying without bmap only if --nobmap was specified. - * Auto-discover the bmap file. - * Support reading from URLs. - * Implement progress bar. - * Highlight error and warning messages with red and yellow labels. - - -- Artem Bityutskiy Thu, 20 Dec 2012 10:47:00 +0200 - -bmap-tools (1.0) unstable; urgency=low - - * Release version 1.0 of the tools - almost identical to 1.0~rc7 except of few - minor differences like spelling fixes. - - -- Artem Bityutskiy Mon, 03 Dec 2012 10:00:33 +0200 - -bmap-tools (1.0~rc7) unstable; urgency=low - - * Add a Fiemap.py module which implements python API to the linux FIEMAP ioct. - * Use the FIEMAP ioctl properly and optimally. - * Add unit-tests, current test coverage is 66%. - * A lot of core rerafactoring. - * Several bug fixes in 'BmapCopy' (e.g., .tar.gz format support was broken). - * Add README and RELEASE_NOTES files. - - -- Artem Bityutskiy Thu, 29 Nov 2012 12:29:39 +0200 - -bmap-tools (0.6) unstable; urgency=low - - * Improve the base API test to cover the case when there is no bmap. - * Fix a bug when copying without bmap. - - -- Artem Bityutskiy Wed, 21 Nov 2012 16:43:49 +0200 - -bmap-tools (0.5) unstable; urgency=low - - * Fix handling of bmap files which contain ranges with only one block. - * Restore the block device settings which we change on exit. - * Change block device settings correctly for partitions. - * Rework API modules to accept file-like objects, not only paths. - * Fix and silence pylint warnings. - * Implement the base API test-case. - - -- Artem Bityutskiy Tue, 20 Nov 2012 15:40:30 +0200 - -bmap-tools (0.4) unstable; urgency=low - - * Improved compressed images flashing speed by exploiting multiple threads: - now we read/decompress the image in one thread and write it in a different - thread. - - -- Artem Bityutskiy Wed, 14 Nov 2012 12:35:06 +0200 - -bmap-tools (0.3) unstable; urgency=low - - * Fix flashing speed calculations - * Fix the Ctrl-C freeze issue - now we synchronize the block device - periodically so if a Ctrl-C interruption happens, we terminate withen few - seconds. - - -- Artem Bityutskiy Tue, 13 Nov 2012 10:56:11 +0200 - -bmap-tools (0.2) unstable; urgency=low - - * Release 0.2 - mostly internal code re-structuring and renamings, - not much functional changes. - * The 'bmap-flasher' and 'bmap-creator' tools do not exist anymore. Now - we have 'bmaptool' which supports 'copy' and 'create' sub-commands instead. - * The BmapFlasher module was also re-named to BmapCopy. - - -- Artem Bityutskiy Fri, 09 Nov 2012 12:20:37 +0200 - -bmap-tools (0.1.1) unstable; urgency=low - - * Release 0.1.1 - a lot of fixes and speed improvements. - - -- Artem Bityutskiy Wed, 07 Nov 2012 11:36:29 +0200 - -bmap-tools (0.1.0) unstable; urgency=low - - * Initial release. - - -- Ed Bartosh Sun, 27 Oct 2012 22:31:28 +0300 diff --git a/debian/control b/debian/control deleted file mode 100644 index d89c51b..0000000 --- a/debian/control +++ /dev/null @@ -1,38 +0,0 @@ -Source: bmaptool -Maintainer: Trevor Woerner -Section: utils -Priority: optional -Build-Depends: - debhelper-compat (= 13), - dh-sequence-python3, - pybuild-plugin-pyproject, - python3 (>= 3.8), - python3-gpg, - python3-hatchling, - python3-pytest, -Standards-Version: 4.7.0 -Homepage: https://github.com/yoctoproject/bmaptool - -Package: bmaptool -Architecture: all -Depends: - python3, - python3-six, - ${misc:Depends}, - ${python3:Depends}, -Recommends: - bzip2, - lzop, - xz-utils, -Suggests: - lz4, - pbzip2, - pigz, - python3-gpg, - unzip, -Description: Tools to generate block map (AKA bmap) and flash images using - bmap. bmaptool is a generic tool for creating the block map (bmap) for a file, - and copying files using the block map. The idea is that large file containing - unused blocks, like raw system image files, can be copied or flashed a lot - faster with bmaptool than with traditional tools like "dd" or "cp". See - source.tizen.org/documentation/reference/bmaptool for more information. diff --git a/debian/copyright b/debian/copyright deleted file mode 100644 index de39cb1..0000000 --- a/debian/copyright +++ /dev/null @@ -1,28 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-name: bmaptool -Upstream-Contact: Trevor Woerner -Source: https://github.com/yoctoproject/bmaptool - . - The initial package was put together by Ed Bartosh - on Sun Oct 27 22:32:19 EEST 2012. - -Files: * -Copyright: © 2012-2013 Intel, Inc. -License: GPL-2 - -Files: debian/* -Copyright: © 2012-2013 Intel, Inc. -License: GPL-2 - -License: GPL-2 - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License, version 2, - as published by the Free Software Foundation. - . - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. -Comment: - On Debian systems, the full text of the GPL v2 can be found - in /usr/share/common-licenses/GPL-2. diff --git a/debian/manpages b/debian/manpages deleted file mode 100644 index 8a9b6db..0000000 --- a/debian/manpages +++ /dev/null @@ -1 +0,0 @@ -docs/man1/bmaptool.1 diff --git a/debian/rules b/debian/rules deleted file mode 100755 index 11cd9df..0000000 --- a/debian/rules +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/make -f - -%: - dh $@ --buildsystem=pybuild diff --git a/debian/source/format b/debian/source/format deleted file mode 100644 index 89ae9db..0000000 --- a/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (native) diff --git a/make_a_release.sh b/make_a_release.sh index 259241e..5cad412 100755 --- a/make_a_release.sh +++ b/make_a_release.sh @@ -55,20 +55,6 @@ ask_question() { done } -format_changelog() { - local logfile="$1"; shift - local pfx1="$1"; shift - local pfx2="$1"; shift - local pfx_len="$(printf "%s" "$pfx1" | wc -c)" - local width="$((80-$pfx_len))" - - while IFS= read -r line; do - printf "%s\n" "$line" | fold -s -w "$width" | \ - sed -e "1 s/^/$pfx1/" | sed -e "1! s/^/$pfx2/" | \ - sed -e "s/[\t ]\+$//" - done < "$logfile" -} - [ $# -eq 0 ] && usage [ $# -eq 1 ] || fatal "insufficient or too many arguments" @@ -87,51 +73,11 @@ ask_question "Did you update tests: test-data" # Change the version in the package sed -i -e "s/^__version__ = \"[0-9]\+\.[0-9]\+\.[0-9]\+\"$/__version__ = \"$new_ver\"/" src/bmaptool/__init__.py -# Sed the version in the RPM spec file -sed -i -e "s/^Version: [0-9]\+\.[0-9]\+\.[0-9]\+$/Version: $new_ver/" packaging/bmaptool.spec -# Remove the "rc_num" macro from the RPM spec file to make sure we do not have -# the "-rcX" part in the release version -sed -i -e '/^%define[[:blank:]]\+rc_num[[:blank:]]\+[[:digit:]]\+[[:blank:]]*$/d' packaging/bmaptool.spec # update man page title line (.TH) export MANVERSTR="\"bmaptool $new_ver\"" export MANDATE="\"$(date +"%B %Y")\"" sed -i -e "s/\.TH.*$/\.TH BMAPTOOL \"1\" $MANDATE $MANVERSTR \"User Commands\"/g" docs/man1/bmaptool.1 -# Ask the maintainer for changelog lines -logfile="$(mktemp -t "$PROG.XXXX")" -cat > "$logfile" < "$deblogfile" -format_changelog "$logfile" " * " " " >> "$deblogfile" -printf "\n%s\n\n" " -- Trevor Woerner $(date -R)" >> "$deblogfile" -cat debian/changelog >> "$deblogfile" -mv "$deblogfile" debian/changelog - -# Prepare RPM changelog -rpmlogfile="$(mktemp -t "$PROG.XXXX")" -printf "%s\n" "$(date --utc) - Trevor Woerner ${new_ver}-1" > "$rpmlogfile" -format_changelog "$logfile" "- " " " >> "$rpmlogfile" -printf "\n" >> "$rpmlogfile" -cat packaging/bmaptool.changes >> "$rpmlogfile" -mv "$rpmlogfile" packaging/bmaptool.changes - -rm "$logfile" - # Commit the changes git commit -a -s -m "Release version $new_ver" diff --git a/packaging/bmaptool.changes b/packaging/bmaptool.changes deleted file mode 100644 index 1c4e1b9..0000000 --- a/packaging/bmaptool.changes +++ /dev/null @@ -1,148 +0,0 @@ -Fri Mar 14 07:46:05 PM UTC 2025 - Trevor Woerner 3.9.0-1 -- copy: add `--removable-device`, `--keyring` and `--fingerprint` options -- Respect query part of the url when operating on the path -- support FTP authentication -- rework GPG tests - -Tue Mar 19 03:44:10 UTC 2024 - Trevor Woerner 3.8.0-1 -- use 'df -P' for POSIX portable output -- bmaptool has new maintainers -- bmaptool has a new home -- bmaptool is now only called 'bmaptool' and not one of a dozen such variations -- switch to use an X.Y.Z versioning number scheme - -Wed Aug 2 12:11:26 PM UTC 2023 - Artem Bityutskiy 3.7-1 -- Use GitHub Actions for CI (#109) -- Add `poetry` for dependency management and `black` for code formatting (#104) -- Add functionality for copying from standard input (#99) -- Switch from gpg to gpgme module (#103) - -Tue 02 Feb 2021 12:08:41 PM UTC - Artem Bityutskiy 3.6-1 -- Improve ZFS compatibility. -- Added the 'zstd' compression type support. -- Add '--psplash-pipe' option for interacting with psplash. - -Thu Aug 23 07:34:31 UTC 2018 - Artem Bityutskiy 3.5-1 -- Fixed copying of compressed files from URLs -- Python 3.x support fixes and improvements. - -Thu Aug 31 12:40:00 UTC 2017 Alexander Kanevskiy 3.4-1 -- New homepage: https://github.com/01org/bmap-tools -- Python 3.x support. -- bmaptool can now be shipped as standalone application. -- Added support for ZIP archives. -- Added support for LZ4 archives. -- Fixed bugs related to specific filesystems. - -Wed Feb 19 14:50:12 UTC 2014 - Artem Bityutskiy 3.2-1 -- Add support for LZO and archives ('.lzo' and '.tar.lzo'). -- Add support for multi-stream bzip2 archives (creted with "pbzip2"). -- Support tmpfs by using the SEEK_HOLE method instead of FIEMAP. -- Use external tools like 'gzip' and 'bzip2' for decompressing, instead of - using internal python libraries. - -Thu Nov 7 15:26:57 UTC 2013 - Artem Bityutskiy 3.1-1 -- Change bmap format version from 1.4 to 2.0, because there are incompatible - changes in 1.4 comparing to 1.3, so the right version number is 2.0 -- Add backward and forward bmap format compatibility unit-tests - -Wed Oct 2 06:30:22 UTC 2013 - Artem Bityutskiy 3.0-1 -- Switch from using SHA1 for checksumming to SHA256. -- Start supporting OpenPGP signatures. Both detached and clearsign signatures - are supported. -- Always sync the image file before creating the bmap for it, to work-around - kernel bugs in early FIEMAP implementations. - -Tue Aug 13 11:54:31 UTC 2013 - Artem Bityutskiy 2.6-1 -- Add support for on-the-fly decompression of '.xz' and '.tar.xz' files. - -Mon Aug 5 07:05:59 UTC 2013 - Artem Bityutskiy 2.5-1 -- Do not fail when lacking permisssions for accessing block device's sysfs - files. -- Improve debian packaging. - -Wed Jun 5 15:16:42 UTC 2013 - Artem Bityutskiy 2.4-1 -- Add ssh:// URLs support. - -Mon May 6 07:59:26 UTC 2013 - Artem Bityutskiy 2.3-1 --Add bmap file SHA1 verification, make tests work on btrfs. - -Mon Mar 11 12:42:03 UTC 2013 - Artem Bityutskiy 2.2-1 -- Support username and password in URLs. - -Mon Feb 18 14:39:11 UTC 2013 - Artem Bityutskiy 2.1-1 -- Fix out of memory issues when copying .bz2 files. - -Thu Jan 17 09:34:00 UTC 2013 - Artem Bityutskiy 2.0-1 -- Fix the an issue with running out of memory in TransRead.py. - -Tue Jan 15 12:52:25 UTC 2013 - Artem Bityutskiy 2.0-0.rc5 -- When block device optimzations fail - raise an exception except of muting - the error, because we really want to know about these failures and possibly - fix them. - -Thu Jan 10 11:58:57 UTC 2013 - Artem Bityutskiy 2.0-0.rc4 -- Fix bmap autodiscovery. - -Mon Jan 7 08:20:37 UTC 2013 - Artem Bityutskiy 2.0-0.rc3 -- Fix uncaught urllib2 exception bug introduced in rc1. - -Fri Jan 4 07:55:05 UTC 2013 - Artem Bityutskiy 2.0-0.rc2 -- Fix writing to block devices, which was broken in rc1. -- Make the informational messages a bit nicer. - -Thu Dec 20 08:48:26 UTC 2012 - Artem Bityutskiy 2.0-0.rc1 -- Allow copying without bmap only if --nobmap was specified. -- Auto-discover the bmap file. -- Support reading from URLs. -- Implement progress bar. -- Highlight error and warning messages with red and yellow labels. - -Mon Dec 3 08:02:03 UTC 2012 - Artem Bityutskiy 1.0-1 -- Release version 1.0 of the tools - almost identical to 1.0-rc7 except of few - minor differences like spelling fixes. - -Thu Nov 29 10:30:20 UTC 2012 - Artem Bityutskiy 1.0-0.rc7 -- Add a Fiemap.py module which implements python API to the linux FIEMAP ioct. -- Use the FIEMAP ioctl properly and optimally. -- Add unit-tests, current test coverage is 66%. -- A lot of core rerafactoring. -- Several bug fixes in 'BmapCopy' (e.g., .tar.gz format support was broken). -- Add README and RELEASE_NOTES files. -- Change the versioning scheme. - -Wed Nov 21 14:45:48 UTC 2012 - Artem Bityutskiy 0.6 -- Improve the base API test to cover the case when there is no bmap. -- Fix a bug when copying without bmap. - -Tue Nov 20 15:40:30 UTC 2012 - Artem Bityutskiy 0.5 -- Fix handling of bmap files which contain ranges with only one block. -- Restore the block device settings which we change on exit. -- Change block device settings correctly for partitions. -- Rework API modules to accept file-like objects, not only paths. -- Fix and silence pylint warnings. -- Implement the base API test-case. - -Wed Nov 14 10:36:10 UTC 2012 - Artem Bityutskiy 0.4 -- Improved compressed images flashing speed by exploiting multiple threads: - now we read/decompress the image in one thread and write it in a different - thread. - -Tue Nov 13 08:56:49 UTC 2012 - Artem Bityutskiy 0.3 -- Fix flashing speed calculations -- Fix the Ctrl-C freeze issue - now we synchronize the block device - periodically so if a Ctrl-C interruption happens, we terminate withen few - seconds. - -Fri Nov 9 10:21:31 UTC 2012 - Artem Bityutskiy 0.2 -- Release 0.2 - mostly internal code re-structuring and renamings, - not much functional changes. -- The 'bmap-flasher' and 'bmap-creator' tools do not exist anymore. Now - we have 'bmaptool' which supports 'copy' and 'create' sub-commands instead. -- The BmapFlasher module was also re-named to BmapCopy. - -Wed Nov 7 09:37:59 UTC 2012 - Artem Bityutskiy 0.1.0 -- Release 0.1.1 - a lot of fixes and speed improvements. - -Sat Oct 27 19:13:31 UTC 2012 - Eduard Bartoch 0.0.1 -- Initial packaging. diff --git a/packaging/bmaptool.spec b/packaging/bmaptool.spec deleted file mode 100644 index 110726b..0000000 --- a/packaging/bmaptool.spec +++ /dev/null @@ -1,89 +0,0 @@ -# We follow the Fedora guide for versioning. Fedora recommends to use something -# like '1.0-0.rc7' for release candidate rc7 and '1.0-1' for the '1.0' release. -%define rc_str %{?rc_num:0.rc%{rc_num}}%{!?rc_num:1} - -Name: bmaptool -Summary: Tools to generate block map (AKA bmap) and flash images using bmap -Version: 3.9.0 -%if 0%{?opensuse_bs} -Release: %{rc_str}.. -%else -Release: %{rc_str}.0.0 -%endif - -Group: Development/Tools/Other -License: GPL-2.0 -BuildArch: noarch -URL: https://github.com/yoctoproject/bmaptool -Source0: %{name}-%{version}.tar.gz - -Requires: bzip2 -Requires: pbzip2 -Requires: gzip -Requires: xz -Requires: tar -Requires: unzip -Requires: lzop -%if ! 0%{?tizen_version:1} -# pigz is not present in Tizen -Requires: pigz -%endif - -%if 0%{?suse_version} -BuildRequires: python-distribute -%endif -%if 0%{?fedora_version} -BuildRequires: python-setuptools -%endif -BuildRequires: python2-rpm-macros - -%if 0%{?suse_version} -# In OpenSuse the xml.etree module is provided by the python-xml package -Requires: python-xml -# The gpgme python module is in python-gpgme -Requires: python-gpgme -%endif - -%if 0%{?fedora_version} -# In Fedora the xml.etree module is provided by the python-libs package -Requires: python-libs -# Tha gpgme python module is in pygpgme package -Requires: pygpgme -%endif - -# Centos6 uses python 2.6, which does not have the argparse module. However, -# argparse is available as a separate package there. -%if 0%{?centos_version} == 600 -Requires: python-argparse -%endif - -%description -Tools to generate block map (AKA bmap) and flash images using bmap. bmaptool is -a generic tool for creating the block map (bmap) for a file, and copying files -using the block map. The idea is that large file containing unused blocks, like -raw system image files, can be copied or flashed a lot faster with bmaptool -than with traditional tools like "dd" or "cp". See -source.tizen.org/documentation/reference/bmaptool for more information. - -%prep -%setup -q -n %{name}-%{version} - -%build - -%install -rm -rf %{buildroot} -%{__python2} setup.py install --prefix=%{_prefix} --root=%{buildroot} - -mkdir -p %{buildroot}/%{_mandir}/man1 -install -m644 docs/man1/bmaptool.1 %{buildroot}/%{_mandir}/man1 - -%files -%defattr(-,root,root,-) -%license COPYING -%dir /usr/lib/python*/site-packages/bmaptool -/usr/lib/python*/site-packages/bmap_tools* -/usr/lib/python*/site-packages/bmaptool/* -%{_bindir}/* - -%doc docs/RELEASE_NOTES -%{_mandir}/man1/* From 5bc8b70a2d692ace73be46d506be6232837b9833 Mon Sep 17 00:00:00 2001 From: Trevor Woerner Date: Fri, 5 Jun 2026 00:48:50 -0400 Subject: [PATCH 2/3] .gitignore: ignore .codex agent-state directory The codex coding agent writes session state to a `.codex/` directory at the working-tree root when invoked inside a repository. The directory is per-session, machine-local, and contains no project artifacts; it has no business in version control. Add it to `.gitignore` alongside the existing editor-metadata entries so it cannot be staged by accident on a future `git add -A` or `git add .`. AI-Generated: codex/claude-opus 4.7 (xhigh) Signed-off-by: Trevor Woerner --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 1b91bd9..dcf44b8 100644 --- a/.gitignore +++ b/.gitignore @@ -63,4 +63,7 @@ ENV/ #vscode .vscode/ + +# codex agent state +.codex/ .noseids From 0ecbd2bf5d1722c28b70333c14b18db6e9857a4c Mon Sep 17 00:00:00 2001 From: Trevor Woerner Date: Fri, 5 Jun 2026 00:50:59 -0400 Subject: [PATCH 3/3] README: reduce "currently maintained by" list to the active maintainer The README's "Project and maintainer" section listed three current maintainers, but the project's `pyproject.toml` `maintainers = [...]` block already lists only a single active maintainer. Bring the README in step with the package metadata so any reader looking for "who is on the hook for this project today" gets the same answer regardless of which file they happen to read. Record the change in CHANGELOG under the existing `[Unreleased]` block as its own `### Changed` entry, separate from the `pyproject.toml` reconciliation that has already shipped. AI-Generated: codex/claude-opus 4.7 (xhigh) Signed-off-by: Trevor Woerner --- CHANGELOG.md | 1 + README.md | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d37304..e31883d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Disable `fail-fast` on the CI test matrix so a failure on one Python version does not cancel the rest. - Single-thread `pbzip2` and `pigz` in the api_base test to avoid OOM events on shared CI runners. - Reduce `maintainers = [...]` to the single active maintainer (Trevor Woerner) and correct `authors = [...]` to list only the project's original author, Artem Bityutskiy. +- README "Project and maintainer" section: reduce the "currently maintained by" list to the single active maintainer, matching the `pyproject.toml` `maintainers = [...]` block. - README: add a "Downstream packaging" subsection pointing at distribution trackers. - `make_a_release.sh`: drop the distro-packaging hunks (RPM version sed, deb and RPM changelog rewrites) along with the editor-prompt block and `format_changelog` helper that fed them. ### Removed diff --git a/README.md b/README.md index 86192c1..d32b770 100644 --- a/README.md +++ b/README.md @@ -357,10 +357,7 @@ The bmaptool project implements bmap-related tools and API modules. The entire project is written in python. The project author is Artem Bityutskiy (dedekind1@gmail.com). The project -is currently maintained by: -* Trevor Woerner (twoerner@gmail.com) -* Joshua Watt (JPEWhacker@gmail.com) -* Tim Orling (ticotimo@gmail.com) +is currently maintained by Trevor Woerner (twoerner@gmail.com). Project git repository is here: https://github.com/yoctoproject/bmaptool