15
0
Files
python-esptool/python-esptool.spec
Dirk Mueller 400bf423dd Accepting request 986388 from home:Simmphonie:python
- update to 3.3.1
  * New Features
    + Added stub flasher support for ESP32-C2 ECO1, deprecated ECO0 stub (can still be used with ROM)
  * espefuse.py
    + Added a new package - ESP32-D0WDR2-V3
  * Bug Fixes
    + Fixed ESP32-S3 USB-OTG compressed flashing
- version 3.3
  * New Features
    + Added flash size options up to 128MB. (#680)
    + Added stub flasher support for ESP32-C2.
    + Added --flash-mmu-page-size option to change flash MMU page size on ESP32-C2.
    + Added address and dummy cycles configuration to SPI flash commands, allowed reading flash SFDP registers.
    + Added target-specific flash frequency options.
  * espsecure.py
    + Added support for ECDSA P192 and P256 signatures in Secure Boot V2.
    + Refined Secure Boot V2 ECC support.
    + Added support for XTS_AES_128 using 128 bit key FE scheme.
  * espefuse.py
    + Added execute_scripts nesting support, a script can now be called from another script.
    + Added ESP32-C2 espefuse.py support.
    + Fixed power-out time for VDDQ settings for ESP32-S3.
    + Removed dysfunctional JTAG_SEL_ENABLE on ESP32-C3.
    + Removed unused eFuse fields on ESP32-C3 and ESP32-H2.
    + Added execute_scripts error handling in script files. (espressif/esp-idf#8420)
    + Added support for running multiple commands at once.
    + Added checks for secure download mode.
    + Added a recovery option to fix eFuse blocks after encoding errors.
  * Internal features
    These features are intended for use inside Espressif:
    + Preview support for ESP32-H2-beta2 has been added. This SoC is not generally available,
      so it is unsupported in this release. Official support will be added in a later esptool.py release.
  * Bug Fixes
    + Fixed autodetection on ESP32-S2 in USB-OTG mode. (#685)
    + Fixed flash.rodata not being recognized as part of IRAM in the ELF parser.
    + Fixed wrong UART_RXFIFO_CNT_M mask values in the stub flasher.
    + Added overerase detection and a fix sequence for certain XMC flash chips.
    + Allowed USB PID detection for USB-JTAG-Serial mode on lowercase port names.
    + Fixed chip autodetection to work in secure download mode.
    + Fixed wrong firmware image being returned for beta chips.
    + Fixed a wrong bootloader flashing offset on ESP32-S3. (#728)
  * Miscellaneous Changes
    + Launched a new self-hosted esptool.py documentation and heavily updated its contents.
    + Renamed the ESP8684 target to ESP32-C2 (added alias for compatibility).
    + Added a warning for flash sizes that are not supported by the stub flasher.
- version 3.2
  * New Features
    + Support for ESP32-S3 SoC has been added (removed ESP32-S3-beta3).
    + Added USB-JTAG-Serial and USB-CDC support for ESP32-S3.
    + Added a check to disable stub when connecting to an unsupported chip.
    + Added boot log detection and context of failures logging.
    + Improved error messages to cover more cases and provide more information.
    + Added get_security_info command stub support.
    + Augmented chip autodetection to work even in secure download mode. (ESP32-C3 and later only)
    + Added flash chip connection verification check.
    + Added ESP8266 version 3 image format support.
  * espsecure.py
    + Added option for 512bit keys for encrypt_flash_data.
  * espefuse.py
    + Added a new command which can execute custom python scripts to burn efuses all at once.
    + Added ESP32-S2 flash_ver, psram_ver, and pkg_ver efuses.
    + Corrected lenght of soft_dis_jtag efuse.
    + Added custom_mac eFuse field for ESP32-C3/-S2/-S3/-H2.
    + Added a check for read_protect_efuse. (#640)
    + Added support for 512bit XTS_AES flash encryption key.
    + Added a step to close the serial port after espefuse operations. (#671)
    + Added a security confirmation flag to espefuse tests. (#677)
  * Internal features
    These features are intended for use inside Espressif:
    - Preview support for ESP32-H2 and ESP8684 has been added. These SoCs are not generally available,
      so they are unsupported in this release. Official support will be added in a later esptool release.
    - Added automatic delay for boot time after ESP32 reset in FPGA.
  * Bug Fixes
    + Fixed build from sources (require wheel only when installing from pip). (#632)
    + Fixed failing flashing process on some supported chips. (#635)
    + Fixed ESP32-C3 package detection. (#638, #639)
    + Fixed test child processes being blocked waiting for the OS pipe buffer to accept more data. (#637)
    + Fixed MacOS USB PID detection on tty and cu ports.
    + Fixed erroneous comparison when handling deflated data. (#650)
  * Miscellaneous Changes
    + Changed unnecessarily alarming error to a warning. (#631)
    + Removed ESP32 rev0 connection workaround.
    + Added a readable error and a use example to merge_bin.
- version 3.1
  * New Features
    + Support for ESP32-C3 SoC has been added
    + Added --encrypt-files option to specify which files need encryption before flashing.
    + Added --use_segments option for elf2image to use segments instead of sections to generate the image. (#546)
    + Improved the write_flash timeout calculation and status message.
    + Support for detecting ESP8285 versions -N08, -N16, -H08, and -H16 has been added.
    + Added support for all write_reg command forms (including delay and mask parameters) to flasher stub.
    + Added merge_bin command to combine binary files on host (#254, #568)
    + Extended the --min-rev argument of elf2image to work on all chips apart from ESP8266.
    + Added diagnostic warnings about the memory regions needing to be erased during a flash write (#306)
    + Added --after no_reset_stub option to keep the flasher stub running and allow its repeated usage.
    + Added support for the USB-JTAG-Serial peripheral of ESP32-C3.
  * espsecure.py
    + Added custom command-line argument to allow calling from other Python scripts.
    + Added --aes-xts option to encrypt/decrypt flash data files with AES-XTS algorithm on the S2 and C3.
    + Fixed handling of files to forbid empty output and re-writing input.
  * espefuse.py
    + Added custom command-line argument to allow calling from other Python scripts.
    + Added security measures to prevent burning custom multicast MAC address. (#472)
    + Fixed errors when burning and read-protecting an efuse at the same time (#584)
    + Fixed burning of SPI pins configuration efuses (#216)
  * Internal features
    These features are intended for use inside Espressif:
    - Support for ESP32-S3-beta3 & ESP32-C6-beta have been added. These SoCs are not generally available,
      so they are unsupported in this release. Official support will be added in a later esptool release.
    - Support for 32-bit addressing to enable 32/64MB flash memory chips on the S3.
  * Bug Fixes
    + Fixed error outputs when installing from pip.
    + Increased the timeout for writing to flash to improve stability (#577, #533)
    + Fixed failing dump_mem overall bytes read message.
    + Allowed the write_mem mask argument to be optional to match with its usage example on Wiki.
    + Ensured expand_file_arguments gets called when using custom command-line arguments. (#400)
    + Fixed SecureBoot v2 public key extraction (#623)
  * Miscellaneous Changes
    + Decomposed port detection logic.
    + Added flushing after each command before waiting for a reply.
    + Made it easier to use esptool.py as a component by permitting passing an already formed esp object to main() (#402)
    + Added function to merge adjacent sections in elf2image for the use case of linker scripts that have a large number of sections.
    + Decoupled esptool reset logic for easier monkey-patching (#508)
- version 3.0
  * Breaking changes
    + The default esptool.py write_flash --flash_size argument has changed from detect to keep.
      This means that if no --flash_size argument is passed when flashing a bootloader, the value
      in the bootloader .bin file header is kept instead of detecting the actual flash size and
      updating the header. To keep the old behaviour, add the argument esptool.py [...] write_flash [...] -fs detect
    + espefuse.py command line arguments for ESP32 have changed:
      - BLK1, BLK2, BLK3 is now BLOCK1, BLOCK2, BLOCK3`
      - The key usage secure_boot has been replaced with secure_boot_v1, secure_boot_v2.
        Secure Boot V2 is the new RSA-based Secure Boot mechanism supported on ESP32 V3.
  * New Features
    + Support for ESP32-S2 SoC has been added
    + Support for detecting ESP32-PICO-V3-02 and ESP32-U4WDH have been added
    + New --connect-attempts argument (#464)
    + Fixed scrolling problems when output is redirected (for example in Arduino IDE, see discussion at #482)
    + Produce a meaningful error if the SoC we connect to doesn't match the --chip argument
    + Support different capitalization and spelling for --chip argument (ie -c ESP32, -c esp32-s2, etc.
    + Added dedicated program esp_rfc_2217_server.py for flashing via RFC2217 (i.e. flashing over the network, #383)
  * espsecure.py
    + Added support for Secure Boot V2 (ESP32 V3, ESP32-S2)
    + Secure Boot V1: PKCS8 formatted ECDSA keys are now supported via ecdsa library (not including password protected keys)
  * espefuse.py
    + Added ESP32 ECO3 efuse UART_DOWNLOAD_DIS
    + Added new batch burn mode, support burning more than one eFuse on a single command line
    + espefuse.py internals have been refactored to support multiple chips, produce more information about
      which eFuses are being written to which values.
    + "Virtual" mode added for host-based testing, allows updating eFuse values on a "virtual" chip inside the host.
  * Internal features
    + These features are intended for use inside Espressif:
      Support for ESP32-S3beta2 & ESP32-C3 have been added. These SoCs are not currently available
      outside Espressif, so these SoCs are unsupported in this release. Official support will be
      added in a later esptool release.
      esptool.py --no-stub read_flash is now supported on ESP32 and later. This option
      is slower than using the default stub option to read flash, so it's generally not useful for production SoCs.
  * Bug Fixes
    + Added temporary workaround for a pyserial failure on macOS Big Sur Preview (#540)
    + Fixed gcc9 warning in the stub (#501)
    + Fixed some memory types printed in the memory map output
    + Fixed the check for zero bytes before applying an ELF SHA-256 with elf2image --elf-sha256-offset option (#560)
    + Fixed displaying some single core ESP32 features incorrectly, i.e. ESP32-S0WD
    + Fixed exception on Python 3 if the same flash address was repeated twice (#558)
  * Miscellanous Changes
    + Updated miniz to v2.1.0 (#500)
    + Moved ESP32 stub loader location to facilitate loading large applications direct to IRAM
    + Vendored modules ecdsa, pyaes and optional pycrypto have been removed. Pyaes has been replaced
      with the pyca-cryptography library

OBS-URL: https://build.opensuse.org/request/show/986388
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-esptool?expand=0&rev=14
2022-07-03 15:35:06 +00:00

102 lines
3.4 KiB
RPMSpec

#
# spec file for package python-esptool
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-esptool
Version: 3.3.1
Release: 0
Summary: A serial utility to communicate & flash code to Espressif ESP8266 & ESP32 chips
License: GPL-2.0-or-later
Group: Development/Languages/Python
URL: https://github.com/espressif/esptool
Source: https://github.com/espressif/esptool/archive/v%{version}.tar.gz#/esptool-%{version}.tar.gz
BuildRequires: %{python_module bitstring >= 3.1.6}
BuildRequires: %{python_module ecdsa}
BuildRequires: %{python_module pyaes}
BuildRequires: %{python_module pyelftools}
BuildRequires: %{python_module pyserial >= 3.0}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module reedsolo >= 1.5.3}
BuildRequires: %{python_module setuptools}
%if 0%{?python_version_nodots} < 37
BuildRequires: %{python_module cryptography}
%endif
BuildRequires: fdupes
BuildRequires: openssl
BuildRequires: python-rpm-macros
Requires: python-ecdsa
Requires: python-pyaes
Requires: python-pyserial >= 3.0
Requires(post): update-alternatives
Requires(postun):update-alternatives
BuildArch: noarch
%python_subpackages
%description
A command line utility to communicate with the ROM bootloader in Espressif ESP8266 & ESP32 microcontrollers.
Allows flashing firmware, reading back firmware, querying chip parameters, etc.
%prep
%setup -q -n esptool-%{version}
sed -i '/^#!/d' flasher_stub/*.py
sed -i '/^#!/d' espressif/*.py
sed -i '/^#!/d' espressif/*/*.py
sed -i '/^#!/d' espressif/*/*/*.py
%build
%python_build
%install
%python_install
%python_clone -a %{buildroot}%{_bindir}/espefuse.py
%python_clone -a %{buildroot}%{_bindir}/espsecure.py
%python_clone -a %{buildroot}%{_bindir}/esptool.py
%python_expand sed -i '/^#!/d' %{buildroot}%{$python_sitelib}/*.py
%python_expand rm -rf %{buildroot}%{$python_sitelib}/__pycache__/*.pyc
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
# there are more tests but upstream runs only those in .travis.yml
%pytest test/test_imagegen.py
# pytest test/test_espsecure.py
%post
%python_install_alternative espefuse.py
%python_install_alternative espsecure.py
%python_install_alternative esptool.py
%postun
%python_uninstall_alternative espefuse.py
%python_uninstall_alternative espsecure.py
%python_uninstall_alternative esptool.py
%files %{python_files}
%license LICENSE
%doc README.md
%{_bindir}/esptool.py-%{python_bin_suffix}
%{_bindir}/espsecure.py-%{python_bin_suffix}
%{_bindir}/espefuse.py-%{python_bin_suffix}
%python_alternative %{_bindir}/esptool.py
%python_alternative %{_bindir}/espsecure.py
%python_alternative %{_bindir}/espefuse.py
%{python_sitelib}/*
%changelog