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

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

    <bug>
          <bug_id>13937</bug_id>
          
          <creation_ts>2008-01-08 21:05:23 +0300</creation_ts>
          <short_desc>Изменить действие make_install :)</short_desc>
          <delta_ts>2024-02-06 10:51:36 +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>rpm-build</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>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Lipatov">lav</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>arseny</cc>
    
    <cc>erthad</cc>
    
    <cc>glebfm</cc>
    
    <cc>ildar</cc>
    
    <cc>imz</cc>
    
    <cc>ktirf</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>php-coder</cc>
    
    <cc>placeholder</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>60629</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2008-01-08 21:05:23 +0300</bug_when>
    <thetext>Предлагается
1. Объявить нерекомендуемым makeinstall (поскольку это хак через 
переопределение prefix, который порой приводит к ошибкам (путям к данным с 
buildroot внутри например)).

2. Изменить make_install, добавив в него DESTDIR=%buildroot install
Это не сломает сборку старых пакетов, поскольку
а) две одинаковых цели не вызывают двойного их выполнения
б) DESTDIR друг с другом не подерётся
Если кто-то использовал make_install без DESTDIR, то это столь редкий случай, 
что его проще исправить, чем найти такой спек

3. makeinstall_std в связи с появлением нормально make_install тоже объявить 
нерекомендуемым к использованию.

4. Добавить необходимые замены в cleanup_spec.

P.S.
Как я понял, в определении макросов make_install используется только в 
определении _perl_vendor_MM_install()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60630</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-01-08 21:09:17 +0300</bug_when>
    <thetext>Давайте не будем менять смысл макросов, которые существуют годами?
Зачем нам искусственно создавать несовместимость?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60674</commentid>
    <comment_count>2</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2008-01-09 02:33:29 +0300</bug_when>
    <thetext>Ну так очень плохо, что они годами существуют _такие_.
Ладно, сдаюсь. Но в обмен на хорошее название нового макроса.

Просто у меня такое впечатление (15 спеков против 250-ти), что
make_install всегда используется в форме make_install install DESTDIR...

Ну а в тех редких случаях когда там не make_install DESTDIR=, там
обычно такие Makefile, которым INSTALL переопределять бессмысленно.

Кстати, как я уже писал, несовместимость такое расширение make_install не 
создаёт, по крайней мере с 95% тех спеков, с которыми я имел дело.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60679</commentid>
    <comment_count>3</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-01-09 02:44:29 +0300</bug_when>
    <thetext>Я против прибивания гвоздями таргета &quot;install&quot;, какой бы он не был.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60698</commentid>
    <comment_count>4</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2008-01-09 09:08:02 +0300</bug_when>
    <thetext>(In reply to comment #0)
&gt; 3. makeinstall_std в связи с появлением нормально make_install тоже объявить 
&gt; нерекомендуемым к использованию.

По факту, он уже давно нерекомендуем:
http://lists.altlinux.ru/pipermail/devel/2005-June/034599.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85912</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Rusakov">ktirf</who>
    <bug_when>2009-02-15 22:51:37 +0300</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; (In reply to comment #0)
&gt; &gt; 3. makeinstall_std в связи с появлением нормально make_install тоже объявить 
&gt; &gt; нерекомендуемым к использованию.
&gt; 
&gt; По факту, он уже давно нерекомендуем:
&gt; http://lists.altlinux.ru/pipermail/devel/2005-June/034599.html
Там не написано, что он нерекомендуем. Лично меня его присутствие в rpm-build-compat несколько примирило с действительностью, хотя, конечно, это небольшое чудо, что определения в rpm-build-perl и в rpm-build-compat идентичны.

Дабы удовлетворить raorn&apos;а, предлагаю следующее определение:

%define makeinstall_std %make_install DESTDIR=%buildroot %_makeinstall_target

И таки да, хотелось бы его увидеть в более &quot;официальном&quot; месте, чем rpm-build-compat. И изжить дублирование с -perl, не к добру оно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86183</commentid>
    <comment_count>6</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2009-02-20 02:17:23 +0300</bug_when>
    <thetext>(In reply to comment #5)
&gt; Дабы удовлетворить raorn&apos;а, предлагаю следующее определение:
&gt; 
&gt; %define makeinstall_std %make_install DESTDIR=%buildroot %_makeinstall_target

http://git.altlinux.org/people/ldv/packages/?p=rpm.git;h=4.0.4-alt96.15-1-g6fc32e7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86185</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Rusakov">ktirf</who>
    <bug_when>2009-02-20 03:05:12 +0300</bug_when>
    <thetext>Замечательно! В Sisyphus и в 5.0, пожалуйста.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136282</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2012-12-22 21:11:11 +0400</bug_when>
    <thetext>%makeinstall_std was added in 4.0.4-alt96.16.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213321</commentid>
    <comment_count>9</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2022-07-30 18:24:29 +0300</bug_when>
    <thetext>(Ответ для Vitaly Lipatov на комментарий #0)
&gt; Предлагается
&gt; 1. Объявить нерекомендуемым makeinstall (поскольку это хак через 
&gt; переопределение prefix, который порой приводит к ошибкам (путям к данным с 
&gt; buildroot внутри например)).

Посмотрел на изменение этих макросов в апстриме rpm:
https://github.com/rpm-software-management/rpm

commit 0fddb3cbd80fc763ecacfea5b82631f7693915c2
Author: Florian Festi &lt;ffesti@redhat.com&gt;
Date:   Fri Mar 20 12:16:30 2015 +0100

    Add deprecation warning to %makeinstall (rhbz #1148195)


commit 89df36524bace71decee4ab4f979d4ffb449c9a7
Author: Panu Matilainen &lt;pmatilai@redhat.com&gt;
Date:   Wed Jan 22 10:56:00 2014 +0200

    Add %make_build macro for hiding parallel-build magic from specs (ticket #115)


&gt; 2. Изменить make_install, добавив в него DESTDIR=%buildroot install
&gt; Это не сломает сборку старых пакетов, поскольку
&gt; а) две одинаковых цели не вызывают двойного их выполнения
&gt; б) DESTDIR друг с другом не подерётся

commit 883253ea6af71f8063d7a045841c35bad22147e2
Author: Panu Matilainen &lt;pmatilai@redhat.com&gt;
Date:   Fri Aug 14 11:27:57 2009 +0300

    Add %make_install macro that does the &quot;right thing&quot; wrt modern autotools
    - old %makeinstall for broken/ancient autotools left untouched for
      backwards compatibility</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241204</commentid>
    <comment_count>10</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2024-02-06 10:51:36 +0300</bug_when>
    <thetext>(Ответ для Dmitry V. Levin на комментарий #1)
&gt; Давайте не будем менять смысл макросов, которые существуют годами?
&gt; Зачем нам искусственно создавать несовместимость?

Спасибо, что в апстриме
make_install	%{__make} install DESTDIR=%{?buildroot} INSTALL=&quot;%{__install} -p&quot;
а у нас
make_install	%_make_bin INSTALL=&quot;%__install -p&quot;

и это можно было изменить ещё в 2008 году, но у нас искусственно создана несовместимость, которая успешно просуществовала ещё 15 лет с момента предложения её устранить.
При этом сейчас в Сизифе 539 make_install, из которых только 121 не содержат явного указания DESTDIR:
$ git grep &quot;%make_install&quot; | wc -l
539</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>