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

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

    <bug>
          <bug_id>34237</bug_id>
          
          <creation_ts>2017-11-26 15:35:17 +0300</creation_ts>
          <short_desc>use one command definition for %make_build</short_desc>
          <delta_ts>2018-04-05 22:34:14 +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>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="viy">viy</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>arseny</cc>
    
    <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>ldv</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>167460</commentid>
    <comment_count>0</comment_count>
    <who name="viy">viy</who>
    <bug_when>2017-11-26 15:35:17 +0300</bug_when>
    <thetext>столкнулся при импорте, что наше определение %make_build
хуже, чем в других дистрибутивах.

Предлагаю определить одной командой, например
%make_build %_make_bin -j${NPROCS:-%__nprocs}
работает в т.ч. под ash.

наше старое определение
%make_build [ -n &quot;$NPROCS&quot; ] || NPROCS=%__nprocs; %_make_bin -j$NPROCS
ломает конструкции вида
LD_LIBRARY_PATH=.libs %make_build check</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167806</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2017-12-11 01:43:38 +0300</bug_when>
    <thetext>(In reply to comment #0)
&gt; столкнулся при импорте, что наше определение %make_build
&gt; хуже, чем в других дистрибутивах.
&gt; 
&gt; Предлагаю определить одной командой, например
&gt; %make_build %_make_bin -j${NPROCS:-%__nprocs}
&gt; работает в т.ч. под ash.

Так, конечно, лучше, но тогда переменная NPROCS не будет определена в результате использования %make_build.  Надо пройтись по спекфайлам и посмотреть, не используется ли в них NPROCS после %make_build без инициализации.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167807</commentid>
    <comment_count>2</comment_count>
    <who name="viy">viy</who>
    <bug_when>2017-12-11 01:59:28 +0300</bug_when>
    <thetext>прошелся, нашел кандидаты с помощью
.repocop/testcache/specfile $ grep NPROC `grep -rl &apos;%make_build&apos;`
kernel-image-std-def-4.9.67-alt1.src.spec:export NPROCS=%nprocs
kernel-image-std-pae-4.4.104-alt1.src.spec:export NPROCS=%nprocs
kernel-image-un-def-4.14.4-alt1.src.spec:export NPROCS=%nprocs
qcad-3.19.1.0-alt2.src.spec:export NPROCS=1
samba-4.6.11-alt2.S1.src.spec:[ -n &quot;$NPROCS&quot; ] || NPROCS=%__nprocs; export JOBS=$NPROCS
samba-4.6.11-alt2.S1.src.spec:%make_build NPROCS=%__nprocs
samba-DC-4.6.11-alt2.S1.src.spec:[ -n &quot;$NPROCS&quot; ] || NPROCS=%__nprocs; export JOBS=$NPROCS
samba-DC-4.6.11-alt2.S1.src.spec:%make_build NPROCS=%__nprocs
0ad-0.0.22-alt1.src.spec:[ -n &quot;$NPROCS&quot; ] || NPROCS=%__nprocs; build/workspaces/update-workspaces.sh \
0ad-0.0.22-alt1.src.spec:       -j$NPROCS \
bamg-0.60-alt4.src.spec:NPROCS=1
chasm-1.4.0-alt5.cvs20131111.src.spec:[ %__nprocs -gt %max_nprocs ] &amp;&amp; NPROCS=%max_nprocs
dvdisaster-0.72.3-alt3.src.spec:NPROCS=1
kernel-image-ovz-el-2.6.32-alt158.src.spec:[ &quot;%__nprocs&quot; -gt &quot;%nprocs&quot; ] || export NPROCS=%nprocs
openldap-2.4.45-alt2.src.spec:export NPROCS=1
portaudio2-19-alt6.src.spec:[ %__nprocs -le 3 ] || export NPROCS=3
qt-creator-4.4.1-alt2.src.spec:NPROCS=1
qt5-webengine-5.9.2-alt1.S1.src.spec:NUM_PROCS=$NPROCS
qt5-webkit-5.9.2-alt2.S1.src.spec:[ &quot;%__nprocs&quot; != 1 ] || export NPROCS=3
yate-3.3.2-alt5.src.spec:NPROCS=1
yices-2.3.0-alt2.src.spec:NPROCS=1

посмотрел в спеки - нет, не используется без определения.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168330</commentid>
    <comment_count>3</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2018-01-07 03:43:15 +0300</bug_when>
    <thetext>rpm-build-4.0.4-alt107 -&gt; sisyphus:

Sun Jan 07 2018 Dmitry V. Levin &lt;ldv@altlinux&gt; 4.0.4-alt107
- compare_deps: fixed a bug in handling epochs.
- platform.in:
  + %optflags_core: added -frecord-gcc-switches (see: #34162);
  + %make_build: implemented as a simple command (closes: #34237).
- genCpioListAndHeader: implemented remapping of device and inode numbers
  (by Vladimir D. Seleznev and me; closes: #34398).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170285</commentid>
    <comment_count>4</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2018-04-05 22:34:14 +0300</bug_when>
    <thetext>(In reply to comment #1)
&gt; (In reply to comment #0)
&gt; &gt; столкнулся при импорте, что наше определение %make_build
&gt; &gt; хуже, чем в других дистрибутивах.
&gt; &gt; 
&gt; &gt; Предлагаю определить одной командой, например
&gt; &gt; %make_build %_make_bin -j${NPROCS:-%__nprocs}
&gt; &gt; работает в т.ч. под ash.
&gt; 
&gt; Так, конечно, лучше, но тогда переменная NPROCS не будет определена в
&gt; результате использования %make_build.  Надо пройтись по спекфайлам и
&gt; посмотреть, не используется ли в них NPROCS после %make_build без
&gt; инициализации.

А можно было бы так, чтобы значение запоминалось, как раньше:

%make_build %_make_bin -j${NPROCS:=%__nprocs}

Реальных примеров использования я не встречал, но чуть было не написал -j$NPROCS в одном спеке, а потом переписал на %_smp_mflags .

Теперь разошлось значение у rpm-build и rpm -- https://bugzilla.altlinux.org/show_bug.cgi?id=34684 .</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>