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

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

    <bug>
          <bug_id>10836</bug_id>
          
          <creation_ts>2007-02-14 10:58:38 +0300</creation_ts>
          <short_desc>Невозможность использования GLUT при использовании GLEW.</short_desc>
          <delta_ts>2010-09-14 12:51:11 +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>libglew</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="serpiph">serpiph</reporter>
          <assigned_to name="Nobody&apos;s working on this, feel free to take it">nobody</assigned_to>
          <cc>mike</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>45328</commentid>
    <comment_count>0</comment_count>
    <who name="serpiph">serpiph</who>
    <bug_when>2007-02-14 10:58:38 +0300</bug_when>
    <thetext>Если в программе написать:
#include &lt;GL/glew.h&gt;
#include &lt;GL/glut.h&gt;
то программа не соберётся по причине ошибочного развёртывания при определении
макроса GLUTAPIENTRY. В GL/glut.h он определяется как
#define GLUTAPIENTRY GLAPIENTRY
Но макрос GLAPIENTRY удаляется в GL/glew.h:
#undef GLAPIENTRY
Дополнительное подключение GL/gl.h и GL/glu.h не помогает, так как GL/glew.h в
себе вызывает GL/glu.h, который вызывает GL/gl.h. Решения 2:
1. В программах для ALTLinux принудительно вставлять такой код (пример:
enblend-3.0):
#include &lt;GL/glew.h&gt;
#define GLAPIENTRY
#include &lt;GL/glut.h&gt;
2. Пропатчить GL/glew.h, чтобы он сохранял состояние GLAPIENTRY, полученное
после вызова GL/glu.h:
#include &lt;GL/glu.h&gt;
#define GLAPIENTRY_GL GLAPIENTRY
и вместо
#undef GLAPIENTRY
написать
#undef GLAPIENTRY
#define GLAPIENTRY GLAPIENTRY_GL
Steps to Reproduce:
Программа вида
#include &lt;GL/glew.h&gt;
#include &lt;GL/glut.h&gt;

Actual Results:  
Собирается с ошибкой

Expected Results:  
Сборка нормальная</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45330</commentid>
    <comment_count>1</comment_count>
    <who name="serpiph">serpiph</who>
    <bug_when>2007-02-14 10:59:44 +0300</bug_when>
    <thetext>*** Bug 10835 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45332</commentid>
    <comment_count>2</comment_count>
    <who name="serpiph">serpiph</who>
    <bug_when>2007-02-14 11:00:01 +0300</bug_when>
    <thetext>*** Bug 10829 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45355</commentid>
    <comment_count>3</comment_count>
    <who name="Konstantin Pavlov">thresh</who>
    <bug_when>2007-02-14 17:52:39 +0300</bug_when>
    <thetext>I&apos;d prefer #2.

Could you please provide a patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45366</commentid>
    <comment_count>4</comment_count>
    <who name="serpiph">serpiph</who>
    <bug_when>2007-02-15 01:10:45 +0300</bug_when>
    <thetext>(In reply to comment #3)
&gt; I&apos;d prefer #2.
&gt; 
&gt; Could you please provide a patch?

Патч, который я вижу, прикладывается к исходникам.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45369</commentid>
    <comment_count>5</comment_count>
      <attachid>1801</attachid>
    <who name="serpiph">serpiph</who>
    <bug_when>2007-02-15 01:51:03 +0300</bug_when>
    <thetext>Created attachment 1801
Fix problem when using GLEW and GLUT together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45508</commentid>
    <comment_count>6</comment_count>
    <who name="Konstantin Pavlov">thresh</who>
    <bug_when>2007-02-19 16:12:01 +0300</bug_when>
    <thetext>Fixed in glew-1.3.5-alt2, going to i/S.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45938</commentid>
    <comment_count>7</comment_count>
    <who name="Konstantin Pavlov">thresh</who>
    <bug_when>2007-02-27 13:59:57 +0300</bug_when>
    <thetext>Работает? Если да, то закрывайте.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46871</commentid>
    <comment_count>8</comment_count>
    <who name="serpiph">serpiph</who>
    <bug_when>2007-03-19 00:42:29 +0300</bug_when>
    <thetext>(In reply to comment #7)
&gt; Работает? Если да, то закрывайте.

Выяснилась одна проблема: оказывается, компилятор не сразу формирует define, а
только при использовании его в обычной программе. Пример:
#define TEST1 5
#define TEST2 TEST1
#undef TEST1
int a = TEST2;
приведёт к получению ошибки при компиляции из-за того, что в результате будет
получен код:
int a = TEST1;
а не
int a = 5;

То есть предложенное мною решение на самом деле не является таковым. Пока в
голове крутится только удаление строк в GL/glew.h:
#undef APIENTRY
#undef GLAPIENTRY

когда в конце файла идёт чистка всего и вся. Патч для glew я приведу, но прошу
перед применением давайте вдвоём обмозгуем, я мог что-нибудь пропустить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46872</commentid>
    <comment_count>9</comment_count>
      <attachid>1863</attachid>
    <who name="serpiph">serpiph</who>
    <bug_when>2007-03-19 00:46:01 +0300</bug_when>
    <thetext>Created attachment 1863
Changes to glew.h from 1.3.6-alt1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47216</commentid>
    <comment_count>10</comment_count>
    <who name="Konstantin Pavlov">thresh</who>
    <bug_when>2007-03-26 17:15:59 +0400</bug_when>
    <thetext>Пересборка с таким libglew-devel что-либо проясняет?
Возможно, имеет смысл даже погонять ее клиентов.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52830</commentid>
    <comment_count>11</comment_count>
    <who name="Konstantin Pavlov">thresh</who>
    <bug_when>2007-07-13 12:51:20 +0400</bug_when>
    <thetext>Это еще актуально?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52835</commentid>
    <comment_count>12</comment_count>
    <who name="serpiph">serpiph</who>
    <bug_when>2007-07-13 13:17:19 +0400</bug_when>
    <thetext>Попробую на выходных проверить, тогда отпишусь.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112144</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2010-09-14 12:51:11 +0400</bug_when>
    <thetext>На выходных какого года? :)

libglew-devel-1.5.6-alt1 и libfreeglut-devel-2.6.0-alt1 либо libGLUT-devel-7.8.3-alt1 не вызывают проблем по крайней мере при сборке:

#include &lt;stdio.h&gt;
#include &lt;GL/glew.h&gt;
#include &lt;GL/glut.h&gt;

int main(void)
{
        printf(&quot;Hello, World!\n&quot;);
        return 0;
}</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>1801</attachid>
            <date>2007-02-15 01:51:03 +0300</date>
            <delta_ts>2007-02-15 01:51:03 +0300</delta_ts>
            <desc>Fix problem when using GLEW and GLUT together.</desc>
            <filename>glew.patch</filename>
            <type>text/plain</type>
            <size>717</size>
            <attacher name="serpiph">serpiph</attacher>
            
              <data encoding="base64">ZGlmZiAtTmF1ciBnbGV3Lm9yaWcvaW5jbHVkZS9HTC9nbGV3LmggZ2xldy9pbmNsdWRlL0dML2ds
ZXcuaAotLS0gZ2xldy5vcmlnL2luY2x1ZGUvR0wvZ2xldy5oCTIwMDYtMTEtMjEgMTA6Mzc6MTkg
KzAzMDAKKysrIGdsZXcvaW5jbHVkZS9HTC9nbGV3LmgJMjAwNy0wMi0xNSAwMTowMTozNCArMDMw
MApAQCAtMTEyMyw2ICsxMTIzLDExIEBACiAjaW5jbHVkZSA8R0wvZ2x1Lmg+CiAjZW5kaWYKIAor
I2lmZGVmIEdMRVdfQVBJRU5UUllfREVGSU5FRAorI2RlZmluZSBHTEFQSUVOVFJZX0dMRVcgR0xB
UElFTlRSWQorI2RlZmluZSBBUElFTlRSWV9HTEVXIEFQSUVOVFJZCisjZW5kaWYKKwogLyogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gR0xfVkVSU0lPTl8xXzIgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSAqLwogCiAjaWZuZGVmIEdMX1ZFUlNJT05fMV8yCkBAIC0xMDYzNiw3ICsx
MDY0MSwxMSBAQAogI2lmZGVmIEdMRVdfQVBJRU5UUllfREVGSU5FRAogI3VuZGVmIEdMRVdfQVBJ
RU5UUllfREVGSU5FRAogI3VuZGVmIEFQSUVOVFJZCisjZGVmaW5lIEFQSUVOVFJZIEFQSUVOVFJZ
X0dMRVcKKyN1bmRlZiBBUElFTlRSWV9HTEVXCiAjdW5kZWYgR0xBUElFTlRSWQorI2RlZmluZSBH
TEFQSUVOVFJZIEdMQVBJRU5UUllfR0xFVworI3VuZGVmIEdMQVBJRU5UUllfR0xFVwogI2VuZGlm
CiAKICNpZmRlZiBHTEVXX0NBTExCQUNLX0RFRklORUQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>1863</attachid>
            <date>2007-03-19 00:46:01 +0300</date>
            <delta_ts>2007-03-19 00:46:01 +0300</delta_ts>
            <desc>Changes to glew.h from 1.3.6-alt1</desc>
            <filename>glew.diff</filename>
            <type>text/plain</type>
            <size>625</size>
            <attacher name="serpiph">serpiph</attacher>
            
              <data encoding="base64">LS0tIGdsZXcuaC5vcmlnCTIwMDctMDMtMTIgMTk6NDI6MjAgKzAzMDAKKysrIGdsZXcuaAkyMDA3
LTAzLTE5IDAwOjMyOjE2ICswMzAwCkBAIC0xMTIzLDExICsxMTIzLDYgQEAKICNpbmNsdWRlIDxH
TC9nbHUuaD4KICNlbmRpZgogCi0jaWZkZWYgR0xFV19BUElFTlRSWV9ERUZJTkVECi0jZGVmaW5l
IEdMQVBJRU5UUllfR0xFVyBHTEFQSUVOVFJZCi0jZGVmaW5lIEFQSUVOVFJZX0dMRVcgQVBJRU5U
UlkKLSNlbmRpZgotCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBHTF9WRVJTSU9O
XzFfMiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKICNpZm5kZWYgR0xfVkVSU0lP
Tl8xXzIKQEAgLTEwNjg2LDEyICsxMDY4MSw2IEBACiAKICNpZmRlZiBHTEVXX0FQSUVOVFJZX0RF
RklORUQKICN1bmRlZiBHTEVXX0FQSUVOVFJZX0RFRklORUQKLSN1bmRlZiBBUElFTlRSWQotI2Rl
ZmluZSBBUElFTlRSWSBBUElFTlRSWV9HTEVXCi0jdW5kZWYgQVBJRU5UUllfR0xFVwotI3VuZGVm
IEdMQVBJRU5UUlkKLSNkZWZpbmUgR0xBUElFTlRSWSBHTEFQSUVOVFJZX0dMRVcKLSN1bmRlZiBH
TEFQSUVOVFJZX0dMRVcKICNlbmRpZgogCiAjaWZkZWYgR0xFV19DQUxMQkFDS19ERUZJTkVECg==
</data>

          </attachment>
      

    </bug>

</bugzilla>