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

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

    <bug>
          <bug_id>15640</bug_id>
          
          <creation_ts>2008-05-13 20:10:23 +0400</creation_ts>
          <short_desc>FTBFS: переопределяет слово deprecated</short_desc>
          <delta_ts>2008-05-14 20:21:07 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>icewm</component>
          <version>unstable</version>
          <rep_platform>all</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>P2</priority>
          <bug_severity>blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Evgenii Terechkov">evg</reporter>
          <assigned_to name="Dmitriy Khanzhin">jinn</assigned_to>
          <cc>jinn</cc>
    
    <cc>mike</cc>
    
    <cc>php-coder</cc>
    
    <cc>shrek</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>69828</commentid>
    <comment_count>0</comment_count>
    <who name="Evgenii Terechkov">evg</who>
    <bug_when>2008-05-13 20:10:23 +0400</bug_when>
    <thetext>После обновления libalsa-devel 1.0.15-alt1 -&gt; 1.0.16-alt1 перестал собираться
icewm (использущий alsa для вывода звука). Откат пакета проблему решает.

ИМХО, дело в неграмотном коде.Я так понимаю, некоторым компиляторам надо давать
пустое определение __attribure__, чего в данном случае не происходит (и не видно
проверок на данный вариант).
Steps to Reproduce:
1.rpm -bc icewm.spec
Actual Results:  
/usr/include/alsa/pcm.h:1097: error: &apos;deprecated&apos; was not declared in this scope
/usr/include/alsa/pcm.h:1098: error: &apos;deprecated&apos; was not declared in this scope
/usr/include/alsa/pcm.h:1099: error: &apos;deprecated&apos; was not declared in this scope
/usr/include/alsa/pcm.h:1100: error: &apos;deprecated&apos; was not declared in this scope


Expected Results:  
print $?
0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69829</commentid>
    <comment_count>1</comment_count>
      <attachid>2615</attachid>
    <who name="Evgenii Terechkov">evg</who>
    <bug_when>2008-05-13 20:12:34 +0400</bug_when>
    <thetext>Created attachment 2615
Часть диффа между pcm.h в 1.0.15 и 1.0.16, иллюстрирующая проблему.

ИМХО, надо где-то ДО использования давать пустое определение __attribute__</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69830</commentid>
    <comment_count>2</comment_count>
    <who name="Evgenii Terechkov">evg</who>
    <bug_when>2008-05-13 20:15:29 +0400</bug_when>
    <thetext>~$ R -qp --lastchange
~/.inst/Sisyphus/RPMS.classic/libalsa-devel_1.0.16-alt1_i586.rpm 
* Чтв Май 01 2008 Valery Inozemtsev &lt;shrek@altlinux.ru&gt; 1.0.16-alt1

- 1.0.16
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69832</commentid>
    <comment_count>3</comment_count>
    <who name="Valery Inozemtsev">shrek</who>
    <bug_when>2008-05-13 20:24:38 +0400</bug_when>
    <thetext>const char *snd_pcm_start_mode_name(snd_pcm_start_t mode) 
__attribute__((deprecated));

и что здесь не понятного?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69836</commentid>
    <comment_count>4</comment_count>
    <who name="Andrey Rahmatullin">wrar</who>
    <bug_when>2008-05-13 20:37:01 +0400</bug_when>
    <thetext>Зачем вы используете gcc2.96?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69876</commentid>
    <comment_count>5</comment_count>
    <who name="Evgenii Terechkov">evg</who>
    <bug_when>2008-05-14 03:08:24 +0400</bug_when>
    <thetext>(In reply to comment #4)
&gt; Зачем вы используете gcc2.96?

Ну, это же компонент &quot;ALT Linux Sisyphus&quot;?

~$ rpm -qa |egrep ^gcc
gcc4.1-4.1.2-alt2
gcc-common-1.4.10-alt3
gcc-color-1.0.1-alt5
gcc4.1-c++-4.1.2-alt2
gcc-c++-common-1.4.10-alt3
gccmakedep-1.0.1-alt1

На сборочной машине ООО для Сизифа проблема та же (я, собственно, и разбираться
то начал потому что beehave написал, что icewm перестал собираться. Проверил у
себя, на свежем Сизифе - и правда не собирается. Откатываю libalsa-devel -
собирается), а там никак не 2.96.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69877</commentid>
    <comment_count>6</comment_count>
    <who name="Evgenii Terechkov">evg</who>
    <bug_when>2008-05-14 03:11:21 +0400</bug_when>
    <thetext>(In reply to comment #3)
&gt; const char *snd_pcm_start_mode_name(snd_pcm_start_t mode) 
&gt; __attribute__((deprecated));
&gt; и что здесь не понятного?

Непонятно либо почему gcc4 не отрабатывает __attribute__, либо почему нигде не
определен пустой макрос __attribute__.

Я думаю, что могу его определить и сам, но ИМХО нехорошо так запатчивать каждое
приложение, собирающееся с alsa-ой.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69888</commentid>
    <comment_count>7</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2008-05-14 09:05:03 +0400</bug_when>
    <thetext>Странно, то что:
- ругается на объявление ф-ции в хедере, а не на строчку, где используется ф-ция
- выдаёт ошибку, а не warning
- ругается &quot;&apos;deprecated&apos; was not declared in this scope&quot; в то время как должен
&quot;warning: &apos;foo&apos; is deprecated&quot;

Именно по этим причинам и похоже, что баг именно в libalsa-devel, а не в icewm.
Впрочем, icewm, в любом случае, лучше запатчить, чтобы он не использовал
устаревшие ф-ции.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69890</commentid>
    <comment_count>8</comment_count>
    <who name="Evgenii Terechkov">evg</who>
    <bug_when>2008-05-14 10:31:27 +0400</bug_when>
    <thetext>(In reply to comment #7)
&gt; Странно, то что:
&gt; - ругается на объявление ф-ции в хедере, а не на строчку, где используется ф-ция

Это и навело на альсу.

&gt; - выдаёт ошибку, а не warning
&gt; - ругается &quot;&apos;deprecated&apos; was not declared in this scope&quot; в то время как должен
&gt; &quot;warning: &apos;foo&apos; is deprecated&quot;

Это штатное поведение (расширение?) gcc начиная с какой-то версий (3.хх вроде).
А тут ситуация нештатная какая-то.
 
&gt; Именно по этим причинам и похоже, что баг именно в libalsa-devel, а не в icewm.

Может быть и так, что для сборки с новой альсой надо писать код не так, как для
старой (объявлять какие-то #defun-ы и т.п...). Я же ничего в сборке и коде не
менял. Почитав доки из пакетов 1.0.16 и сам pcm.h, я ничего такого не уловил.
Может, кто-то знает?

&gt; Впрочем, icewm, в любом случае, лучше запатчить, чтобы он не использовал
&gt; устаревшие ф-ции.

Это в процессе.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69894</commentid>
    <comment_count>9</comment_count>
    <who name="Andrey Rahmatullin">wrar</who>
    <bug_when>2008-05-14 11:23:10 +0400</bug_when>
    <thetext>(In reply to comment #6)
&gt; Непонятно либо почему gcc4 не отрабатывает __attribute__
Именно. Это вряд ли проблема libalsa.

&gt; либо почему нигде не определен пустой макрос __attribute__.
Это не макрос.


(In reply to comment #7)
&gt; Странно, то что:
&gt; - ругается на объявление ф-ции в хедере, а не на строчку, где используется ф-
ция
&gt; - выдаёт ошибку, а не warning
&gt; - ругается &quot;&apos;deprecated&apos; was not declared in this scope&quot; в то время как должен
&gt; &quot;warning: &apos;foo&apos; is deprecated&quot;
Это формулируется одной фразой: &quot;странно, что gcc не узнал __attribute__
((deprecated))&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69897</commentid>
    <comment_count>10</comment_count>
    <who name="Andrey Rahmatullin">wrar</who>
    <bug_when>2008-05-14 11:48:43 +0400</bug_when>
    <thetext>src/base.h:

#if ( __GNUC__ == 3 &amp;&amp; __GNUC_MINOR__ &gt; 0 ) || __GNUC__ &gt; 3
#define deprecated __attribute__((deprecated))
#else
#define deprecated
#endif

Они идиоты. Ибо в итоге получается __attribute__((__attribute__((deprecated))))

Ну и да, чудес не бывает. Привыкайте.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69899</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2008-05-14 11:53:02 +0400</bug_when>
    <thetext>(In reply to comment #10)
&gt; Ну и да, чудес не бывает. Привыкайте.
Бывают -- например, чудесным образом это оказалась не моя бага :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69992</commentid>
    <comment_count>12</comment_count>
    <who name="Evgenii Terechkov">evg</who>
    <bug_when>2008-05-14 20:20:32 +0400</bug_when>
    <thetext>Fixed in icewm-1.2.35-alt3, thanks to wrar@

Пойду патч повешу в апстрим...</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2615</attachid>
            <date>2008-05-13 20:12:34 +0400</date>
            <delta_ts>2008-05-14 11:49:23 +0400</delta_ts>
            <desc>Часть диффа между pcm.h в 1.0.15 и 1.0.16, иллюстрирующая проблему.</desc>
            <filename>libalsa-devel.diff</filename>
            <type>text/plain</type>
            <size>3924</size>
            <attacher name="Evgenii Terechkov">evg</attacher>
            
              <data encoding="base64">ZGlmZiAtdU5yIGxpYmFsc2EtZGV2ZWxfMS4wLjE1LWFsdDFfaTU4Ni5ycG0vdXNyL2luY2x1ZGUv
YWxzYS9wY20uaCBsaWJhbHNhLWRldmVsXzEuMC4xNi1hbHQxX2k1ODYucnBtL3Vzci9pbmNsdWRl
L2Fsc2EvcGNtLmgKLS0tIGxpYmFsc2EtZGV2ZWxfMS4wLjE1LWFsdDFfaTU4Ni5ycG0vdXNyL2lu
Y2x1ZGUvYWxzYS9wY20uaAkyMDA4LTAzLTI1IDIxOjM3OjE0ICswNzAwCisrKyBsaWJhbHNhLWRl
dmVsXzEuMC4xNi1hbHQxX2k1ODYucnBtL3Vzci9pbmNsdWRlL2Fsc2EvcGNtLmgJMjAwOC0wNS0w
MiAwMTozNzoxNCArMDgwMApAQCAtMTA5NywxMiArMTA5NCwzMSBAQAogICovCiAKIC8qIERlcHJl
Y2F0ZWQgZnVuY3Rpb25zLCBmb3IgY29tcGF0aWJpbGl0eSAqLwotY29uc3QgY2hhciAqc25kX3Bj
bV9zdGFydF9tb2RlX25hbWUoc25kX3BjbV9zdGFydF90IG1vZGUpOwotY29uc3QgY2hhciAqc25k
X3BjbV94cnVuX21vZGVfbmFtZShzbmRfcGNtX3hydW5fdCBtb2RlKTsKLWludCBzbmRfcGNtX3N3
X3BhcmFtc19zZXRfc3RhcnRfbW9kZShzbmRfcGNtX3QgKnBjbSwgc25kX3BjbV9zd19wYXJhbXNf
dCAqcGFyYW1zLCBzbmRfcGNtX3N0YXJ0X3QgdmFsKTsKLXNuZF9wY21fc3RhcnRfdCBzbmRfcGNt
X3N3X3BhcmFtc19nZXRfc3RhcnRfbW9kZShjb25zdCBzbmRfcGNtX3N3X3BhcmFtc190ICpwYXJh
bXMpOwotaW50IHNuZF9wY21fc3dfcGFyYW1zX3NldF94cnVuX21vZGUoc25kX3BjbV90ICpwY20s
IHNuZF9wY21fc3dfcGFyYW1zX3QgKnBhcmFtcywgc25kX3BjbV94cnVuX3QgdmFsKTsKLXNuZF9w
Y21feHJ1bl90IHNuZF9wY21fc3dfcGFyYW1zX2dldF94cnVuX21vZGUoY29uc3Qgc25kX3BjbV9z
d19wYXJhbXNfdCAqcGFyYW1zKTsKK2NvbnN0IGNoYXIgKnNuZF9wY21fc3RhcnRfbW9kZV9uYW1l
KHNuZF9wY21fc3RhcnRfdCBtb2RlKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKSk7Citjb25z
dCBjaGFyICpzbmRfcGNtX3hydW5fbW9kZV9uYW1lKHNuZF9wY21feHJ1bl90IG1vZGUpIF9fYXR0
cmlidXRlX18oKGRlcHJlY2F0ZWQpKTsKK2ludCBzbmRfcGNtX3N3X3BhcmFtc19zZXRfc3RhcnRf
bW9kZShzbmRfcGNtX3QgKnBjbSwgc25kX3BjbV9zd19wYXJhbXNfdCAqcGFyYW1zLCBzbmRfcGNt
X3N0YXJ0X3QgdmFsKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKSk7CitzbmRfcGNtX3N0YXJ0
X3Qgc25kX3BjbV9zd19wYXJhbXNfZ2V0X3N0YXJ0X21vZGUoY29uc3Qgc25kX3BjbV9zd19wYXJh
bXNfdCAqcGFyYW1zKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKSk7CitpbnQgc25kX3BjbV9z
d19wYXJhbXNfc2V0X3hydW5fbW9kZShzbmRfcGNtX3QgKnBjbSwgc25kX3BjbV9zd19wYXJhbXNf
dCAqcGFyYW1zLCBzbmRfcGNtX3hydW5fdCB2YWwpIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQp
KTsKK3NuZF9wY21feHJ1bl90IHNuZF9wY21fc3dfcGFyYW1zX2dldF94cnVuX21vZGUoY29uc3Qg
c25kX3BjbV9zd19wYXJhbXNfdCAqcGFyYW1zKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKSk7
CisjaWYgIWRlZmluZWQoQUxTQV9MSUJSQVJZX0JVSUxEKSAmJiAhZGVmaW5lZChBTFNBX1BDTV9P
TERfU1dfUEFSQU1TX0FQSSkKK2ludCBzbmRfcGNtX3N3X3BhcmFtc19zZXRfeGZlcl9hbGlnbihz
bmRfcGNtX3QgKnBjbSwgc25kX3BjbV9zd19wYXJhbXNfdCAqcGFyYW1zLCBzbmRfcGNtX3VmcmFt
ZXNfdCB2YWwpIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQpKTsKK2ludCBzbmRfcGNtX3N3X3Bh
cmFtc19nZXRfeGZlcl9hbGlnbihjb25zdCBzbmRfcGNtX3N3X3BhcmFtc190ICpwYXJhbXMsIHNu
ZF9wY21fdWZyYW1lc190ICp2YWwpIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQpKTsKK2ludCBz
bmRfcGNtX3N3X3BhcmFtc19zZXRfc2xlZXBfbWluKHNuZF9wY21fdCAqcGNtLCBzbmRfcGNtX3N3
X3BhcmFtc190ICpwYXJhbXMsIHVuc2lnbmVkIGludCB2YWwpIF9fYXR0cmlidXRlX18oKGRlcHJl
Y2F0ZWQpKTsKK2ludCBzbmRfcGNtX3N3X3BhcmFtc19nZXRfc2xlZXBfbWluKGNvbnN0IHNuZF9w
Y21fc3dfcGFyYW1zX3QgKnBhcmFtcywgdW5zaWduZWQgaW50ICp2YWwpIF9fYXR0cmlidXRlX18o
KGRlcHJlY2F0ZWQpKTsKKyNlbmRpZiAvKiAhQUxTQV9MSUJSQVJZX0JVSUxEICYmICFBTFNBX1BD
TV9PTERfU1dfUEFSQU1TX0FQSSAqLworI2lmICFkZWZpbmVkKEFMU0FfTElCUkFSWV9CVUlMRCkg
JiYgIWRlZmluZWQoQUxTQV9QQ01fT0xEX0hXX1BBUkFNU19BUEkpCitpbnQgc25kX3BjbV9od19w
YXJhbXNfZ2V0X3RpY2tfdGltZShjb25zdCBzbmRfcGNtX2h3X3BhcmFtc190ICpwYXJhbXMsIHVu
c2lnbmVkIGludCAqdmFsLCBpbnQgKmRpcikgX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZCkpOwor
aW50IHNuZF9wY21faHdfcGFyYW1zX2dldF90aWNrX3RpbWVfbWluKGNvbnN0IHNuZF9wY21faHdf
cGFyYW1zX3QgKnBhcmFtcywgdW5zaWduZWQgaW50ICp2YWwsIGludCAqZGlyKSBfX2F0dHJpYnV0
ZV9fKChkZXByZWNhdGVkKSk7CitpbnQgc25kX3BjbV9od19wYXJhbXNfZ2V0X3RpY2tfdGltZV9t
YXgoY29uc3Qgc25kX3BjbV9od19wYXJhbXNfdCAqcGFyYW1zLCB1bnNpZ25lZCBpbnQgKnZhbCwg
aW50ICpkaXIpIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQpKTsKK2ludCBzbmRfcGNtX2h3X3Bh
cmFtc190ZXN0X3RpY2tfdGltZShzbmRfcGNtX3QgKnBjbSwgc25kX3BjbV9od19wYXJhbXNfdCAq
cGFyYW1zLCB1bnNpZ25lZCBpbnQgdmFsLCBpbnQgZGlyKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNh
dGVkKSk7CitpbnQgc25kX3BjbV9od19wYXJhbXNfc2V0X3RpY2tfdGltZShzbmRfcGNtX3QgKnBj
bSwgc25kX3BjbV9od19wYXJhbXNfdCAqcGFyYW1zLCB1bnNpZ25lZCBpbnQgdmFsLCBpbnQgZGly
KSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKSk7CitpbnQgc25kX3BjbV9od19wYXJhbXNfc2V0
X3RpY2tfdGltZV9taW4oc25kX3BjbV90ICpwY20sIHNuZF9wY21faHdfcGFyYW1zX3QgKnBhcmFt
cywgdW5zaWduZWQgaW50ICp2YWwsIGludCAqZGlyKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVk
KSk7CitpbnQgc25kX3BjbV9od19wYXJhbXNfc2V0X3RpY2tfdGltZV9tYXgoc25kX3BjbV90ICpw
Y20sIHNuZF9wY21faHdfcGFyYW1zX3QgKnBhcmFtcywgdW5zaWduZWQgaW50ICp2YWwsIGludCAq
ZGlyKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKSk7CitpbnQgc25kX3BjbV9od19wYXJhbXNf
c2V0X3RpY2tfdGltZV9taW5tYXgoc25kX3BjbV90ICpwY20sIHNuZF9wY21faHdfcGFyYW1zX3Qg
KnBhcmFtcywgdW5zaWduZWQgaW50ICptaW4sIGludCAqbWluZGlyLCB1bnNpZ25lZCBpbnQgKm1h
eCwgaW50ICptYXhkaXIpIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQpKTsKK2ludCBzbmRfcGNt
X2h3X3BhcmFtc19zZXRfdGlja190aW1lX25lYXIoc25kX3BjbV90ICpwY20sIHNuZF9wY21faHdf
cGFyYW1zX3QgKnBhcmFtcywgdW5zaWduZWQgaW50ICp2YWwsIGludCAqZGlyKSBfX2F0dHJpYnV0
ZV9fKChkZXByZWNhdGVkKSk7CitpbnQgc25kX3BjbV9od19wYXJhbXNfc2V0X3RpY2tfdGltZV9m
aXJzdChzbmRfcGNtX3QgKnBjbSwgc25kX3BjbV9od19wYXJhbXNfdCAqcGFyYW1zLCB1bnNpZ25l
ZCBpbnQgKnZhbCwgaW50ICpkaXIpIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQpKTsKK2ludCBz
bmRfcGNtX2h3X3BhcmFtc19zZXRfdGlja190aW1lX2xhc3Qoc25kX3BjbV90ICpwY20sIHNuZF9w
Y21faHdfcGFyYW1zX3QgKnBhcmFtcywgdW5zaWduZWQgaW50ICp2YWwsIGludCAqZGlyKSBfX2F0
dHJpYnV0ZV9fKChkZXByZWNhdGVkKSk7CisjZW5kaWYgLyogIUFMU0FfTElCUkFSWV9CVUlMRCAm
JiAhQUxTQV9QQ01fT0xEX0hXX1BBUkFNU19BUEkgKi8KIAogLyoqIFx9ICovCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>