<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>33937</bug_id>
          
          <creation_ts>2017-09-28 18:54:59 +0300</creation_ts>
          <short_desc>avrdude was compiled without usb support</short_desc>
          <delta_ts>2018-08-23 01:17:35 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>avrdude</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexandr">nesterenko_sasha</reporter>
          <assigned_to name="Evgeny Sinelnikov">sin</assigned_to>
          <cc>grizlik78</cc>
    
    <cc>lav</cc>
    
    <cc>sin</cc>
    
    <cc>viy</cc>
    
    <cc>week</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>165975</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandr">nesterenko_sasha</who>
    <bug_when>2017-09-28 18:54:59 +0300</bug_when>
    <thetext>avrdude скомпилирована без поддержки юсб. Исправьте пожалуйста или подскажите как исправить</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165976</commentid>
    <comment_count>1</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2017-09-28 19:14:23 +0300</bug_when>
    <thetext>На Sisyphus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165979</commentid>
    <comment_count>2</comment_count>
    <who name="Alexandr">nesterenko_sasha</who>
    <bug_when>2017-09-28 19:27:47 +0300</bug_when>
    <thetext>Что значит &quot;На Sisyphus&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165983</commentid>
    <comment_count>3</comment_count>
    <who name="Aleksey Borisenkov">grizlik78</who>
    <bug_when>2017-09-29 01:59:03 +0300</bug_when>
    <thetext>А почему вы считаете, что нет поддержки USB? Как это посмотреть?
Например с USBASP у меня avrdude работает нормально.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165984</commentid>
    <comment_count>4</comment_count>
    <who name="Aleksey Borisenkov">grizlik78</who>
    <bug_when>2017-09-29 02:03:49 +0300</bug_when>
    <thetext>И, к тому же:
$ ldd /usr/bin/avrdude | grep usb
	libusb-1.0.so.0 =&gt; /lib/libusb-1.0.so.0 (0xb773c000)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165989</commentid>
    <comment_count>5</comment_count>
    <who name="Alexandr">nesterenko_sasha</who>
    <bug_when>2017-09-29 12:22:47 +0300</bug_when>
    <thetext>У меня выдает сообщение, что avrdude скомпилирована без поддержки usb</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165993</commentid>
    <comment_count>6</comment_count>
    <who name="Aleksey Borisenkov">grizlik78</who>
    <bug_when>2017-09-29 16:02:10 +0300</bug_when>
    <thetext>А команду, которая это сообщение выдаёт, можно увидеть? И версию пакета.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165996</commentid>
    <comment_count>7</comment_count>
    <who name="Alexandr">nesterenko_sasha</who>
    <bug_when>2017-09-29 19:39:54 +0300</bug_when>
    <thetext>avrdude 6.3 устанавливал через Synaptic
avrdude -p t13 -c stk500v2 -P avrdoper</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165997</commentid>
    <comment_count>8</comment_count>
    <who name="Alexandr">nesterenko_sasha</who>
    <bug_when>2017-09-29 19:42:02 +0300</bug_when>
    <thetext>(In reply to comment #7)
&gt; avrdude 6.3 устанавливал через Synaptic
&gt; avrdude -p t13 -c stk500v2 -P avrdoper
avrdude: Version 6.3, compiled on Aug  9 2017 at 16:49:59
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is &quot;/etc/avrdude.conf&quot;
         User configuration file is &quot;/home/alex/.avrduderc&quot;
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : avrdoper
         Using Programmer              : stk500v2
avrdude was compiled without usb support.

avrdude done.  Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166000</commentid>
    <comment_count>9</comment_count>
    <who name="Aleksey Borisenkov">grizlik78</who>
    <bug_when>2017-09-29 21:49:45 +0300</bug_when>
    <thetext>Ага, понятно. Разные части avrdude написаны с использованием разных библиотек.
SUBasp использует libusb-1.0, а stk500v2 требует старой libusb.

Нужно добавить в сборочные зависимости libusb-compat-devel и пересобрать пакет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166002</commentid>
    <comment_count>10</comment_count>
    <who name="Alexandr">nesterenko_sasha</who>
    <bug_when>2017-09-30 00:31:40 +0300</bug_when>
    <thetext>А как это сделать?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166003</commentid>
    <comment_count>11</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2017-09-30 01:20:34 +0300</bug_when>
    <thetext>(В ответ на комментарий №9)
&gt; Ага, понятно. Разные части avrdude написаны с использованием разных библиотек.
&gt; SUBasp использует libusb-1.0, а stk500v2 требует старой libusb.

В мне это непонятно. Из чего следует, что &quot;Разные части avrdude написаны с использованием разных библиотек&quot;?

&gt; Нужно добавить в сборочные зависимости libusb-compat-devel и пересобрать пакет.

[sin@centrit006 ~]$ rsync rsync://rsync.altlinux.org/ALTLinux/Sisyphus/files/x86_64/RPMS/avrdude-6.3*
Welcome to ALT Linux Team public rsync archive!

-rw-r--r--        281,035 2017/07/27 12:06:02 avrdude-6.3-alt1.S1.x86_64.rpm
[sin@centrit006 ~]$ rsync rsync://rsync.altlinux.org/ALTLinux/Sisyphus/files/x86_64/RPMS/avrdude-6.3* .
Welcome to ALT Linux Team public rsync archive!

[sin@centrit006 ~]$ rpm -qpR avrdude-6.3-alt1.S1.x86_64.rpm 
/bin/sh  
/bin/sh  
/lib64/ld-linux-x86-64.so.2  
libc.so.6(GLIBC_2.14)(64bit)  
libc.so.6(GLIBC_2.15)(64bit)  
libc.so.6(GLIBC_2.2.5)(64bit)  
libc.so.6(GLIBC_2.3)(64bit)  
libc.so.6(GLIBC_2.3.4)(64bit)  
libc.so.6(GLIBC_2.4)(64bit)  
libc.so.6(GLIBC_2.7)(64bit)  
libelf.so.1()(64bit) &gt;= set:kg3IPkqeRua1X8UFX5Tf8qLKEZBe1i3IDysd1
rpmlib(SetVersions)  
libelf.so.1(ELFUTILS_1.0)(64bit)  
libelf.so.1(ELFUTILS_1.5)(64bit)  
libftdi1.so.2()(64bit) &gt;= set:kg1x6Lx22DeyL1S4EtsPUhUmvso5vOKeW6p11
libm.so.6(GLIBC_2.2.5)(64bit)  
libpthread.so.0(GLIBC_2.2.5)(64bit)  
libreadline.so.6()(64bit) &gt;= set:nlIfCiwp4
libusb-1.0.so.0()(64bit) &gt;= set:kgIXMHqbFAsqD2uB7H4xwDp9f
rtld(GNU_HASH)  
rpmlib(PayloadIsLzma)

[sin@centrit006 ~]$ rpm -q --whatprovides &quot;libusb-1.0.so.0()(64bit)&quot;
libusb-1.0.21-alt0.M80P.1

Так, что надо разобраться, почему так получилось, что вот этот код, срабатывает после сборки:
stk500v2.c-#if defined(HAVE_LIBUSB)
stk500v2.c-    serdev = &amp;usb_serdev;
stk500v2.c-    pinfo.usbinfo.vid = USB_VENDOR_ATMEL;
stk500v2.c-    pinfo.usbinfo.flags = 0;
stk500v2.c-    pinfo.usbinfo.pid = USB_DEVICE_AVRDRAGON;
stk500v2.c-    pgm-&gt;fd.usb.max_xfer = USBDEV_MAX_XFER_MKII;
stk500v2.c-    pgm-&gt;fd.usb.rep = USBDEV_BULK_EP_READ_MKII;
stk500v2.c-    pgm-&gt;fd.usb.wep = USBDEV_BULK_EP_WRITE_MKII;
stk500v2.c-    pgm-&gt;fd.usb.eep = 0;           /* no seperate EP for events */
stk500v2.c-#else
stk500v2.c:    avrdude_message(MSG_INFO, &quot;avrdude was compiled without usb support.\n&quot;);
stk500v2.c-    return -1;
stk500v2.c-#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166004</commentid>
    <comment_count>12</comment_count>
    <who name="Aleksey Borisenkov">grizlik78</who>
    <bug_when>2017-09-30 01:50:30 +0300</bug_when>
    <thetext>(В ответ на комментарий №11)
&gt; (В ответ на комментарий №9)
&gt; &gt; Ага, понятно. Разные части avrdude написаны с использованием разных библиотек.
&gt; &gt; USBasp использует libusb-1.0, а stk500v2 требует старой libusb.
&gt; 
&gt; А мне это непонятно. Из чего следует, что &quot;Разные части avrdude написаны с
&gt; использованием разных библиотек&quot;?

Ну я код смотрел, оттуда предположение.
В usbasp.c используется макрос HAVE_LIBUSB_1_0 и подключается libusb-1.0/libusb.h из libusb-devel
В stk500v2.c ориентируются на макрос HAVE_LIBUSB.
В configure HAVE_LIBUSB выставляется если удалось использовать -lusb из libusb-compat-devel, а HAVE_LIBUSB_1_0 если удалось использовать -lusb-1.0 из libusb-devel.
Почему используются две разные версии библиотеки я не знаю, можно ли избавиться от libusb-compat-devel тоже. Но вроде в одной программе они уживаются, я попробовал собрать с обеими, работа USBasp не сломалась, а stk500v2 больше не ругается на отсутствие поддержки USB (этого программатора у меня здесь нет).

Ну и насколько я понял по коду, если оставить только libusb-compat-devel, а libusb-devel убрать, то USBasp будет использовать compat-библиотеку. Остальные места не смотрел, возможно есть кто-то, кому нужна именно libusb-1.0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166005</commentid>
    <comment_count>13</comment_count>
    <who name="Aleksey Borisenkov">grizlik78</who>
    <bug_when>2017-09-30 01:58:20 +0300</bug_when>
    <thetext>В ft245r.c, похоже, подходит только libusb-1.0.
Так что, вроде, получается, что для полной поддержки USB нужны обе версии библиотеки. Либо патчить код.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166016</commentid>
    <comment_count>14</comment_count>
    <who name="Evgeny Sinelnikov">sin</who>
    <bug_when>2017-10-01 01:18:24 +0300</bug_when>
    <thetext>Да, всё верно... обе либы нужно добавить, вот так:
http://git.altlinux.org/people/sin/packages/avrdude.git?p=avrdude.git;a=commitdiff;h=34c83dd749b0c08032c953d1b872dbb69015e5e1;hp=8c792bf19a7aa5e1ddb3bd39d292b4a5249a9a80

Отправил на сборку в сизиф:
#189872 BUILDING #1 [locked] sisyphus avrdude.git=6.3-alt2%ubt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166017</commentid>
    <comment_count>15</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2017-10-01 01:25:50 +0300</bug_when>
    <thetext>avrdude-6.3-alt2.S1 -&gt; sisyphus:

Sun Oct 01 2017 Evgeny Sinelnikov &lt;sin@altlinux.ru&gt; 6.3-alt2.S1
- Rebuild with libusb-compat-devel due needs for stk500v2 (ALT #33937)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166020</commentid>
    <comment_count>16</comment_count>
    <who name="Alexandr">nesterenko_sasha</who>
    <bug_when>2017-10-01 22:43:03 +0300</bug_when>
    <thetext>Как его теперь установить, чтоб проверить?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166021</commentid>
    <comment_count>17</comment_count>
    <who name="Alexandr">nesterenko_sasha</who>
    <bug_when>2017-10-01 23:02:26 +0300</bug_when>
    <thetext>(В ответ на комментарий №16)
&gt; Как его теперь установить, чтоб проверить?
Спасибо! Всё работает отлично.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>