diff --git a/.gitignore b/.gitignore index 04ab7d0..c1a74c9 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,13 @@ /avrdude-6.0.1.tar.gz /avrdude-6.1.tar.gz /avrdude-6.3.tar.gz +/avrdude-6.*/ +/.build-*.log +/*.src.rpm +/x86_64/ +/avrdude-6.4.tar.gz +/avrdude-7.*/ +/avrdude-7.*.tar.gz +/avrdude-7.*-filtered.tar.xz +/avrdude-8.0/ +/avrdude-8.0.tar.gz diff --git a/GNUmakefile b/GNUmakefile new file mode 100644 index 0000000..912296c --- /dev/null +++ b/GNUmakefile @@ -0,0 +1,31 @@ +name = avrdude +version = 8.0 + +RELEASES = +RELEASES += f42 +RELEASES += f41 +RELEASES += f40 +RELEASES += f39 +RELEASES += el9 +RELEASES += el8 + +MOCK_OPTS = +# MOCK_OPTS += --without docs + +.PHONY: all +all: $(name)-rpm.stamp + git grep -Ei '([F]IXME|[T]ODO|[X]XX)' ||: + +$(name)-rpm.stamp: $(name)-$(version).tar.gz $(name).spec $(name).udev README.fedora $(wildcard $(name)-*.patch) + set -ex; \ + fedpkg local; \ + for rel in $(RELEASES); do \ + fedpkg --release "$$rel" mockbuild; \ + done + date > $@ + +$(name)-$(version).tar.gz: + curl -L -o $@ https://github.com/avrdudes/$(name)/archive/refs/tags/v$(version).tar.gz + sha512sum --tag $@ > sources + +# End of file. diff --git a/README.fedora b/README.fedora new file mode 100644 index 0000000..5961130 --- /dev/null +++ b/README.fedora @@ -0,0 +1,75 @@ +On the avrdude Fedora package +============================= + +This file contains remarks for users of the avrdude Fedora package. + + +Programmer Device Permission Setup +================================== + +When you run `avrdude`, the avrdude process must be allowed to access +the device special file somewhere in `/dev/` which corresponds to the +programmer to be used. + +`avrdude` supports many different programmer types (run `avrdude -c +list` to see a list of them). + +Many of these programmer types are USB devices which appear as a +device `/dev/bus/usb//` with `` and `` being 3 +digit decimal numbers padded with `0`. Those devices can be easily +matched in a udev rule looking for the USB idVendor and idProduct, and +be made writable for the local user (`TAG+="uaccess"`). + +See `/usr/lib/udev/rules.d/70-avrdude_usbprog.rules` for how that +works. + +Unfortunately, some programmers present as generic USB to serial +converters (device file name `/dev/ttyUSB`) or as generic USB +AT-command devices (device file name `/dev/ttyACM`). + +While it is technically possible to make all `/dev/ttyUSB` and/or +`/dev/ttyACM` devices writable for whichever Linux user happens to +be the local user, some of those devices can be devices for which it +is better if they are not writable by just anyone. + +Therefore, the avrdude Fedora package does *not* make all +`/dev/ttyUSB` and/or `/dev/ttyACM` writable for the local user +just by installing the package. + +If you *do* want to make these devices writable for any local user, +you can configure your system yourself by dropping a udev rules file +into `/etc/udev/rules.d/`. But while you are at it, you can as well +examine your programmer more closely (`lsusb` and `lsusb -v` can be +helpful here) and narrow down the udev rule matching to match only +your programmer, not each and every `ttyUSB` or `ttyACM` device. + +``` /etc/udev/rules.d/99-my-avrdude-programmers.rules +ACTION!="add|change", GOTO="my_avrdude_programmers_end" + +# Recommended: /dev/ttyUSB devices matching specific idVendor/idProduct tuple +SUBSYSTEM=="usb-serial", ATTR{idVendor}=="0123", ATTR{idProduct}=="4567", TAG+="uaccess" + +# Recommended: /dev/ttyACM devices matching specific idVendor/idProduct tuple +SUBSYSTEM=="usb", DRIVERS=="cdc_acm", ATTR{idVendor}=="0123", ATTR{idProduct}=="4567", TAG+="uaccess" + +# Discouraged: *ALL* /dev/ttyUSB devices +SUBSYSTEM=="usb-serial", TAG+="uaccess" + +# Discouraged: *ALL* /dev/ttyACM devices +SUBSYSTEM=="usb", DRIVERS=="cdc_acm", TAG+="uaccess" + +LABEL="my_avrdude_programmers_end" +``` + + +Non-local users +--------------- + +At this time, the avrdude Fedora package udev rules do not support +setting up permissions for non-local users, like e.g. users logged in +via ssh. + +If you need such a setup, you will need also to write your own udev +rules file for `/etc/udev/rules.d/`, and set `OWNER=`, `GROUP=`, +`MODE=`, or change the device ACL with something like +`RUN+="/usr/bin/setfacl -m g:avrdude-programmers:rw '$env{DEVNAME}'"`. diff --git a/avrdude-6.1_includes.patch b/avrdude-6.1_includes.patch deleted file mode 100644 index 5fc8904..0000000 --- a/avrdude-6.1_includes.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -p -up ./configure.org ./configure ---- ./configure.org 2014-06-04 21:00:03.027735142 +0200 -+++ ./configure 2014-06-04 21:04:46.428267513 +0200 -@@ -5650,7 +5650,8 @@ fi - LIBPTHREAD=$LIBPTHREAD - - # Checks for header files. --for ac_header in limits.h stdlib.h string.h -+for ac_header in limits.h stdlib.h string.h inttypes.h stdint.h memory.h \ -+ strings.h sys/stat.h sys_time.h sys_types.h termios.h - do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` - ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" diff --git a/avrdude-udev-no-blanket-access.patch b/avrdude-udev-no-blanket-access.patch new file mode 100644 index 0000000..91b6d0b --- /dev/null +++ b/avrdude-udev-no-blanket-access.patch @@ -0,0 +1,21 @@ +--- debian/avrdude.udev 2022-04-20 01:55:35.767101948 +0200 ++++ fedora/avrdude.udev 2022-04-20 01:59:38.828449388 +0200 +@@ -1,10 +1,13 @@ + ACTION!="add|change", GOTO="avrdude_end" + +-# /dev/ttyUSB +-SUBSYSTEMS=="usb-serial", TAG+="uaccess" +- +-# /dev/ttyACM +-SUBSYSTEMS=="usb", DRIVERS=="cdc_acm", TAG+="uaccess" ++# The avrdude package is not supposed to grant blanket access to any ++# and all /dev/ttyACM* and /dev/ttyUSB* devices for the console user. ++# ++# # /dev/ttyUSB ++# SUBSYSTEMS=="usb-serial", TAG+="uaccess" ++# ++# # /dev/ttyACM ++# SUBSYSTEMS=="usb", DRIVERS=="cdc_acm", TAG+="uaccess" + + SUBSYSTEM!="usb", GOTO="avrdude_end" + diff --git a/avrdude-udev-rules b/avrdude-udev-rules deleted file mode 100644 index 14b7922..0000000 --- a/avrdude-udev-rules +++ /dev/null @@ -1,17 +0,0 @@ -# Atmel AVR ISP mkII -SUBSYSTEM=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2103", TAG+="uaccess" - -# Atmel Corp. JTAG ICE mkII -SUBSYSTEM=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2104", TAG+="uaccess" - -# Atmel Corp. JTAGICE3 -SUBSYSTEM=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2110", TAG+="uaccess" - -# usbprog bootloader -ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c62", TAG+="uaccess" - -# USBasp programmer -ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", TAG+="uaccess" - -# USBtiny programmer -ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c9f", TAG+="uaccess" diff --git a/avrdude.spec b/avrdude.spec index 2187819..58d5948 100644 --- a/avrdude.spec +++ b/avrdude.spec @@ -1,34 +1,72 @@ -%global udev_rules 70-avrdude_usbprog.rules +%global udev_rules_old 70-avrdude-devices.rules +%global udev_rules_gen 71-avrdude-devices.rules + +# Allow skipping doc builds for faster mockbuilds without the +# literally hundreds of extra packages required for building docs. +%bcond_without docs Name: avrdude -Version: 6.3 -Release: 13%{?dist} +Version: 8.0 +Release: 8%{?dist} Summary: Software for programming Atmel AVR Microcontroller -Group: Applications/Engineering -License: GPLv2+ -URL: http://www.nongnu.org/avrdude -Source0: http://download.savannah.gnu.org/releases/%{name}/%{name}-%{version}.tar.gz -Source1: avrdude-udev-rules -# From: http://savannah.nongnu.org/bugs/?42517 -Patch0: avrdude-6.1_includes.patch +License: GPL-2.0-or-later AND GPL-3.0-only AND (WTFPL OR MIT) +URL: https://github.com/avrdudes/avrdude +# Upstream avrdude have no 4big endian support planned. +# https://bugzilla.redhat.com/show_bug.cgi?id=2308947 +# https://github.com/avrdudes/avrdude/issues/1917 +ExcludeArch: s390x + +Source0: https://github.com/avrdudes/%{name}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz + +# Debian have a more comprehensive list of programmer devices in their +# avrdude.dev file. We do cannot use this unchanged, though, as we do +# not want to grant blanket access to all ttyUSB and ttyACM devices. +# Source1: https://salsa.debian.org/debian/avrdude/-/raw/master/debian/avrdude.udev +Source1: avrdude.udev + +# Remarks on the Fedora package for the users +Source2: README.fedora + +# Quick fix elf2tag man page +Source5: elf2tag.1 + +# Stop granting blanket access to all /dev/tty{ACM,USB}* devices +Patch: avrdude-udev-no-blanket-access.patch + +BuildRequires: cmake BuildRequires: gcc BuildRequires: flex BuildRequires: bison BuildRequires: elfutils-libelf-devel BuildRequires: hidapi-devel +%if ((0%{?fedora} >= 1) || (0%{?rhel} >= 8)) +BuildRequires: libgpiod-devel +%endif +%if ((0%{?fedora} >= 1) || (0%{?rhel} >= 9)) +BuildRequires: libserialport-devel +%endif +# EL does not have libhid-devel +%if 0%{?fedora} >= 28 BuildRequires: libhid-devel +%endif BuildRequires: readline-devel BuildRequires: ncurses-devel BuildRequires: libftdi-devel -BuildRequires: libusb-devel -BuildRequires: libusbx-devel +BuildRequires: pkgconfig(libusb-1.0) +%if %{with docs} BuildRequires: texi2html +BuildRequires: texinfo BuildRequires: texinfo-tex -BuildRequires: tetex-dvips -Requires(post): /sbin/install-info -Requires(preun): /sbin/install-info +%endif +BuildRequires: make + +# https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets +%if !((0%{?fedora} >= 28) || (0%{?rhel} >= 8)) +%{error:No install-info scriptlets for Fedora prior to F28 or EL prior to EL8.} +%endif + %description AVRDUDE is a program for programming Atmel's AVR CPU's. It can program the @@ -40,55 +78,208 @@ particular chip. %prep -%setup -q -%patch0 -p0 -chmod -x safemode.c doc/TODO -sed -i 's|/usr/local/etc/avrdude.conf|/etc/avrdude/avrdude.conf|g' doc/avrdude.texi avrdude.1 -sed -i 's|/etc/avrdude.conf|/etc/avrdude/avrdude.conf|g' doc/avrdude.texi avrdude.1 -iconv -f ISO88591 -t UTF8 < ChangeLog-2003 > ChangeLog-2003~ -mv ChangeLog-2003~ ChangeLog-2003 -iconv -f ISO88591 -t UTF8 < NEWS > NEWS~ -mv NEWS~ NEWS +%setup -q -n %{name}-%{version} +cp -p %{SOURCE1} avrdude.udev +%autopatch -v -p1 +if test -d atmel-docs; then + echo "Directory 'atmel-docs' still exists, aborting." + exit 2 +fi +sed -i 's|^find_package(SWIG|\# find_package(SWIG|' CMakeLists.txt %build -%configure --enable-doc --enable-linuxgpio --sysconfdir=%{_sysconfdir}/%{name} -make +%cmake \ + -D CMAKE_INSTALL_SYSCONFDIR:PATH=%{_sysconfdir} \ + -D CMAKE_BUILD_TYPE=build_type=RelWithDebInfo \ +%if %{with docs} + -D BUILD_DOC:BOOL=ON \ +%else + -D BUILD_DOC:BOOL=OFF \ +%endif + -D HAVE_LINUXSPI:BOOL=ON \ + -D HAVE_LINUXGPIO:BOOL=ON \ + -D HAVE_PARPORT:BOOL=ON \ + -D FETCHCONTENT_FULLY_DISCONNECTED:BOOL=ON \ + -D FETCHCONTENT_QUIET:BOOL=OFF \ + -D BUILD_SHARED_LIBS:BOOL=NO \ + -D USE_STATIC_LIBS:BOOL=YES + +if test -d _deps; then + echo "cmake appears to have fetched some dependency despite our precautions:" + ls -l _deps + exit 2 +fi + +%cmake_build + +# generate set of udev rules from avrdude.conf +%{__cmake_builddir}/src/avrdude -C %{__cmake_builddir}/src/avrdude.conf -c '*/u' \ + | sed -n '/ACTION!=/,$p' \ + | sed 's|, MODE="0660"||' \ + > genset.rules +test -s genset.rules %install -%make_install -mv $RPM_BUILD_ROOT/%{_docdir}/%{name}-%{version} installed-docs -rm -f $RPM_BUILD_ROOT%{_includedir}/libavrdude.h +%cmake_install + rm -f $RPM_BUILD_ROOT%{_infodir}/dir + +rm -f $RPM_BUILD_ROOT%{_includedir}/libavrdude-avrintel.h +rm -f $RPM_BUILD_ROOT%{_includedir}/libavrdude.h rm -f $RPM_BUILD_ROOT%{_libdir}/libavrdude.a -rm -f $RPM_BUILD_ROOT%{_libdir}/libavrdude.la -rm -f $RPM_BUILD_ROOT%{_libdir}/libavrdude.so -rm -f $RPM_BUILD_ROOT%{_libdir}/libavrdude.so.1 -rm -f $RPM_BUILD_ROOT%{_libdir}/libavrdude.so.1.0.0 -install -d -m 755 $RPM_BUILD_ROOT%{_udevrulesdir} -install -p -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_udevrulesdir}/%{udev_rules} + +install -d -m 755 $RPM_BUILD_ROOT%{_udevrulesdir} +install -p -m 644 avrdude.udev $RPM_BUILD_ROOT%{_udevrulesdir}/%{udev_rules_old} +install -p -m 644 genset.rules $RPM_BUILD_ROOT%{_udevrulesdir}/%{udev_rules_gen} + +install -d -m 755 $RPM_BUILD_ROOT%{_pkgdocdir} +install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_pkgdocdir}/README.fedora +install -p -m 644 -t $RPM_BUILD_ROOT%{_pkgdocdir} AUTHORS NEWS README.md + +install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1 +install -p -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{_mandir}/man1/elf2tag.1 -%post -/sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir || : - -%preun -if [ $1 = 0 ]; then - /sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir || : -fi +%check +%ctest %files -%doc README AUTHORS ChangeLog* COPYING NEWS doc/TODO installed-docs/* -%config(noreplace) %{_sysconfdir}/%{name} -%{_udevrulesdir}/%{udev_rules} -%{_bindir}/%{name} -%{_mandir}/man1/%{name}.1.gz -%{_infodir}/%{name}.info.gz +%license COPYING +%doc %{_pkgdocdir}/AUTHORS +%doc %{_pkgdocdir}/NEWS +%doc %{_pkgdocdir}/README.md +%doc %{_pkgdocdir}/README.fedora +%if %{with docs} +%doc %{_pkgdocdir}/avrdude-html/ +%doc %{_pkgdocdir}/avrdude.pdf +%endif +%config(noreplace) %{_sysconfdir}/avrdude.conf +%{_udevrulesdir}/%{udev_rules_old} +%{_udevrulesdir}/%{udev_rules_gen} +%{_bindir}/avrdude +%{_bindir}/elf2tag +%{_mandir}/man1/avrdude.1* +%{_mandir}/man1/elf2tag.1* +%if %{with docs} +%{_infodir}/avrdude.info* +%endif %changelog +* Fri Jan 16 2026 Fedora Release Engineering - 8.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Wed Jul 23 2025 Fedora Release Engineering - 8.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Thu Jan 16 2025 Fedora Release Engineering - 8.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Sun Sep 1 2024 Hans Ulrich Niedermann - 8.0-5 +- ExcludeArch: s390x (#2308947) +- Add elf2tag.1 man page + +* Fri Aug 30 2024 Hans Ulrich Niedermann - 8.0-4 +- Actually ship static copy of udev rules as s390x workaround + +* Fri Aug 30 2024 Hans Ulrich Niedermann - 8.0-3 +- Ship static copy of udev rules as s390x workaround + +* Thu Aug 29 2024 Hans Ulrich Niedermann - 8.0-2 +- Rebuilt for forgotten new-sources + +* Sun Aug 25 2024 Hans Ulrich Niedermann - 8.0-1 +- Update to avrdude-8.0 release (#2307778) +- Enable libserialport support +- Build without old pre-1.0 libusb +- Build with libgpiod +- Move config file from /etc/avrdude/avrdude.conf to /etc/avrdude.conf +- Continue not shipping libavrdude library due to unstable API/ABI +- Do not build/ship libavrdude SWIG bindings (unstable API/ABI) +- Do not build/ship avrdude GUI based on the SWIG bindings +- Add new set of autogenerated udev rules + +* Wed Jul 17 2024 Fedora Release Engineering - 7.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Feb 7 2024 Hans Ulrich Niedermann - 7.3-1 +- Update to avrdude-7.3 release +- Enable linuxgpio (without libgpiod, though) + +* Mon Jan 22 2024 Fedora Release Engineering - 7.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Hans Ulrich Niedermann - 7.2-1 +- Updated to upstream avrdude-7.2 release from github.com (rhbz#2251649) +- Filter upstream release tarball to remove pdf docs due to licensing +- Migrated to SPDX license +- Switched to cmake build system +- Fixed upstream cmake detection of libreadline.so +- Switched to upstream's new URL (github instead of nongnu.org) +- Stop shipping PS doc format in favour of just avrdude.pdf +- Keep avrdude.conf at the old Fedora location /etc/avrdude/ for now + +* Fri Jan 19 2024 Fedora Release Engineering - 6.4-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 6.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jan 18 2023 Fedora Release Engineering - 6.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jul 20 2022 Fedora Release Engineering - 6.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Apr 20 2022 Hans Ulrich Niedermann - 6.4-3 +- Add README.fedora explaining USB device permission setup + +* Wed Apr 20 2022 Hans Ulrich Niedermann - 6.4-2 +- Install built documentation directly to %%{_pkgdocdir} +- Fix file locations in man page, texinfo docs +- Upstream already has fixed these files' x bits +- Disable silent rules to help with build problems +- Stop granting user access to ALL /dev/tty{ACM,USB}* devices +- Enable parallel port support +- Update BuildReqs for libusb* to use pkgconfig(...) +- Update URLS from http: to https: in spec file +- Fix date of 6.4-1 changelog entry + +* Fri Feb 04 2022 Dan Horák - 6.4-1 +- update to 6.4 +- switch to Debian udev rules +- enable Linux SPI driver + +* Wed Jan 19 2022 Fedora Release Engineering - 6.3-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 6.3-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jan 26 2021 Fedora Release Engineering - 6.3-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 6.3-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jan 28 2020 Fedora Release Engineering - 6.3-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jul 24 2019 Fedora Release Engineering - 6.3-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Apr 24 2019 Björn Esser - 6.3-16 +- Remove hardcoded gzip suffix from GNU info pages + +* Sun Feb 17 2019 Igor Gnatenko - 6.3-15 +- Rebuild for readline 8.0 + +* Thu Jan 31 2019 Fedora Release Engineering - 6.3-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Thu Jul 12 2018 Fedora Release Engineering - 6.3-13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild diff --git a/avrdude.udev b/avrdude.udev new file mode 100644 index 0000000..3b92d18 --- /dev/null +++ b/avrdude.udev @@ -0,0 +1,142 @@ +ACTION!="add|change", GOTO="avrdude_end" + +# /dev/ttyUSB +SUBSYSTEMS=="usb-serial", TAG+="uaccess" + +# /dev/ttyACM +SUBSYSTEMS=="usb", DRIVERS=="cdc_acm", TAG+="uaccess" + +SUBSYSTEM!="usb", GOTO="avrdude_end" + +# JTAG ICE mkII +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2103", TAG+="uaccess" +# AVR ISP mkII +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2104", TAG+="uaccess" +# STK600 +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2106", TAG+="uaccess" +# AVR Dragon +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2107", TAG+="uaccess" +# AVR JTAGICE3 +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2110", TAG+="uaccess" +# Xplained Pro board +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2111", TAG+="uaccess" +# AVR JTAGICE3 (v3.x) +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2140", TAG+="uaccess" +# Atmel-ICE +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2141", TAG+="uaccess" +# Atmel Power Debugger +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2144", TAG+="uaccess" +# Xplained Mini board +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2145", TAG+="uaccess" +# Curiosity Nano (pkobn) +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2175", TAG+="uaccess" +# MPLAB PICkit4 AVR mode +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2177", TAG+="uaccess" +# MPLAB PICkit4 AVR mode alt 1 +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2178", TAG+="uaccess" +# MPLAB PICkit4 AVR mode alt 2 +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2179", TAG+="uaccess" +# MPLAB Snap AVR mode +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2180", TAG+="uaccess" +# MPLAB Snap AVR mode alt 1 +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="217f", TAG+="uaccess" +# MPLAB Snap AVR mode alt 2 +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2181", TAG+="uaccess" +# ATxmega64C3 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fd6", TAG+="uaccess" +# ATxmega128C3 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fd7", TAG+="uaccess" +# ATxmega256C3 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fda", TAG+="uaccess" +# ATxmega384C3 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fdb", TAG+="uaccess" +# ATxmega128A4U DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fde", TAG+="uaccess" +# ATxmega64B3 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fdf", TAG+="uaccess" +# ATxmega128B3 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fe0", TAG+="uaccess" +# ATxmega64B1 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fe1", TAG+="uaccess" +# ATxmega256A3BU DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fe2", TAG+="uaccess" +# ATxmega16A4U DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fe3", TAG+="uaccess" +# ATxmega32A4U DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fe4", TAG+="uaccess" +# ATxmega64A4U DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fe5", TAG+="uaccess" +# Cactus V6 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fe6", TAG+="uaccess" +# ATxmega192A3U DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fe7", TAG+="uaccess" +# ATxmega64A1U DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fe8", TAG+="uaccess" +# Cactus RF60 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fea", TAG+="uaccess" +# ATxmega256A3U DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fec", TAG+="uaccess" +# ATxmega128A1U DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fed", TAG+="uaccess" +# atmega8u2 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fee", TAG+="uaccess" +# atmega16u2 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fef", TAG+="uaccess" +# atmega32u2 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ff0", TAG+="uaccess" +# at32uc3a3 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ff1", TAG+="uaccess" +# atmega16u4 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ff3", TAG+="uaccess" +# atmega32u4 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ff4", TAG+="uaccess" +# at32uc3b0/1 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ff6", TAG+="uaccess" +# at90usb82 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ff7", TAG+="uaccess" +# at32uc3a0/1 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ff8", TAG+="uaccess" +# at90usb646/647 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ff9", TAG+="uaccess" +# at90usb162 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ffa", TAG+="uaccess" +# at90usb1286/1287 AVR DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ffb", TAG+="uaccess" +# at89c5130/c5131 DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2ffd", TAG+="uaccess" +# at89c5132/c51snd1c DFU +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2fff", TAG+="uaccess" +# PICkit2 +SUBSYSTEM=="usb", ATTR{idVendor}=="04d8", ATTR{idProduct}=="0033", TAG+="uaccess" +# MPLAB PICkit4 PIC mode +SUBSYSTEM=="usb", ATTR{idVendor}=="04d8", ATTR{idProduct}=="9012", TAG+="uaccess" +# MPLAB PICkit4 PIC mode alt +SUBSYSTEM=="usb", ATTR{idVendor}=="04d8", ATTR{idProduct}=="9017", TAG+="uaccess" +# MPLAB Snap PIC mode +SUBSYSTEM=="usb", ATTR{idVendor}=="04d8", ATTR{idProduct}=="9018", TAG+="uaccess" +# MPLAB Snap PIC mode alt +SUBSYSTEM=="usb", ATTR{idVendor}=="04d8", ATTR{idProduct}=="9019", TAG+="uaccess" +# USBasp +SUBSYSTEM=="usb", ATTR{idVendor}=="16c0", ATTR{idProduct}=="05dc", TAG+="uaccess" +# USBasp (old unofficial) +SUBSYSTEM=="usb", ATTR{idVendor}=="03eb", ATTR{idProduct}=="c7b4", TAG+="uaccess" +# Teensy +SUBSYSTEM=="usb", ATTR{idVendor}=="16c0", ATTR{idProduct}=="0478", TAG+="uaccess" +# NIBObee +SUBSYSTEM=="usb", ATTR{idVendor}=="16c0", ATTR{idProduct}=="092f", TAG+="uaccess" +# Micronucleus +SUBSYSTEM=="usb", ATTR{idVendor}=="16d0", ATTR{idProduct}=="0753", TAG+="uaccess" +# eHaJo +SUBSYSTEM=="usb", ATTR{idVendor}=="16d0", ATTR{idProduct}=="0ba5", TAG+="uaccess" +# USBtinyISP +SUBSYSTEM=="usb", ATTR{idVendor}=="1781", ATTR{idProduct}=="0c9f", TAG+="uaccess" +# ISE CKT +SUBSYSTEM=="usb", ATTR{idVendor}=="1209", ATTR{idProduct}=="6570", TAG+="uaccess" +# Arduino Gemma +SUBSYSTEM=="usb", ATTR{idVendor}=="2341", ATTR{idProduct}=="0c9f", TAG+="uaccess" +# Arduino ISP +SUBSYSTEM=="usb", ATTR{idVendor}=="2341", ATTR{idProduct}=="0049", TAG+="uaccess" +# Arduino ISP org +SUBSYSTEM=="usb", ATTR{idVendor}=="2a03", ATTR{idProduct}=="0049", TAG+="uaccess" + +LABEL="avrdude_end" diff --git a/elf2tag.1 b/elf2tag.1 new file mode 100644 index 0000000..765c364 --- /dev/null +++ b/elf2tag.1 @@ -0,0 +1,63 @@ +'\" t +.\" Title: elf2tag +.\" Author: [see the "AUTHOR(S)" section] +.\" Generator: Asciidoctor 2.0.20 +.\" Date: 2024-09-01 +.\" Manual: elf2tag Manual +.\" Source: avrdude +.\" Language: English +.\" +.TH "ELF2TAG" "1" "2024-09-01" "avrdude" "elf2tag Manual" +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.ss \n[.ss] 0 +.nh +.ad l +.de URL +\fI\\$2\fP <\\$1>\\$3 +.. +.als MTO URL +.if \n[.g] \{\ +. mso www.tmac +. am URL +. ad l +. . +. am MTO +. ad l +. . +. LINKSTYLE blue R < > +.\} +.SH "NAME" +elf2tag \- output a tagfile for the avrdude disasm command +.SH "SYNOPSIS" +.sp +\fBelf2tag\fP +.sp +\fBelf2tag\fP [\fB\-h\fP | \fB\-\-help\fP] +.SH "DESCRIPTION" +.sp +\fIelf2tag\fP generates a tagfile for use with the \fIavrdude disasm\fP command. +.SH "OPTIONS" +.sp +\fB\-h\fP \fB\-\-help\fP +.RS 4 +Prints the help message and exits. +.RE +.SH "EXAMPLES" +.sp +.if n .RS 4 +.nf +.fam C +$ elf2tag file.elf > file.tag +$ avrdude \-t ... +avrdude> ... +avrdude> disasm \-t=file.tag ... +.fam +.fi +.if n .RE +.SH "AUTHORS" +.sp +\fIelf2tag\fP was written by Johannes Bauer with small modifications by Stefan Rueger. +.SH "SEE ALSO" +.sp +\fBavrdude(1)\fP, \fBavr\-nm\fP, \fBavr\-objdump(1)\fP \ No newline at end of file diff --git a/sources b/sources index 3855537..f92914d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -58bb42049122cf80fe4f4d0ce36d92ee avrdude-6.3.tar.gz +SHA512 (avrdude-8.0.tar.gz) = c6fa365924aa8ad58a1b2f85c36ecc498c9b049b9bce455994752b8b13c06aa31ac6c8420eea4be307f42e64284c87ec08f75d6eaec640de7dc097c523d02dac