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

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

    <bug>
          <bug_id>40582</bug_id>
          
          <creation_ts>2021-07-26 21:36:33 +0300</creation_ts>
          <short_desc>install check ignores non-zero exit status of %post scriptlets</short_desc>
          <delta_ts>2021-08-04 13:17:59 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Infrastructure</classification>
          <product>Infrastructure</product>
          <component>girar</component>
          <version>unspecified</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://lists.altlinux.org/pipermail/sisyphus-incominger/2021-July/624896.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ivan Zakharyaschev">imz</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>alexey</cc>
    
    <cc>glebfm</cc>
    
    <cc>ldv</cc>
          
          <qa_contact name="Andrey Cherepanov">cas</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>200924</commentid>
    <comment_count>0</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2021-07-26 21:36:33 +0300</bug_when>
    <thetext>For non-zero exit codes of the %%post scriplets to be treated as fatal
errors (in install checks in Girar), %%_rpmscript_werror flag was recently
added to rpm, and an attempt was made to turn this behavior on in
Girar in commit 6c5d2738e0ad04d00c31c980a6e8f71ff5bb24ab:

Author: Dmitry V. Levin &lt;ldv@altlinux.org&gt;
Date:   Thu Dec 19 00:44:59 2019 +0000

    gb-remote-plant: add %_rpmscript_werror to .rpmmacros

    Enable traditional rpm behaviour of treating all scriptlet failures
    as fatal.

However, adding it to ~/.rpmmacros didn&apos;t have the desired effect,
because, in hasher, firstly, rpmmacros from the host system are
primarily used to fill in builder&apos;s rpmmacros (and affect only
building packages), and secondly, even there they are not copied
verbatim, but rather some needed values are evaluated and
inserted. (See &quot;# Create RPM build directory tree.&quot; in hsh-initroot.)
Also, aptbox sees ~/.rpmmacros from the host system (or re-creates its
own $aptbox_home/.rpmmacros), but they don&apos;t seem to affect the
behavior of rpm w.r.t. the exit status of the scriptlets of the
packages being installed.

This is demonstrated by the trivial test packages from
http://git.altlinux.org/people/imz/packages/rpmscript_warn_only-checkinstall.git

The test for %pre &quot;passes&quot;: https://lists.altlinux.org/pipermail/sisyphus-incominger/2021-July/624894.html
The test for %post doesn&apos;t: https://lists.altlinux.org/pipermail/sisyphus-incominger/2021-July/624896.html

Reported-by: Alexey Appolonov &lt;alexey@altlinux.org&gt;

As a workaround we can simply hardcode the %_rpmscript_werror in hasher (branch rpmscript_werror in my Git repo):

commit 8c3acab99cdd866f9fc978bc6cf685d198d4d6cd
Author: Ivan Zakharyaschev &lt;imz@altlinux.org&gt;
Date:   Mon Jul 26 17:00:27 2021 +0300

    create_chroot(): pin %%_rpmscript_werror (as expected in Girar install checks)
    
    (I don&apos;t like hardcoding this; a more flexible solution allowing to
    choose the behavior for each invocation of hsh --ini or hsh-install
    would be better: it could be an option to pass the corresponding
    option along with rpmi.)
    
    (For this change to take effect, one should rm -rf ~/hasher/cache/chroot/ )
    
    For non-zero exit codes of the %%post scriplets to be treated as fatal
    errors (in install checks in Girar), %%_rpmscript_werror flag was recently
    added to rpm, and an attempt was made to turn this behavior on in
    Girar in commit 6c5d2738e0ad04d00c31c980a6e8f71ff5bb24ab:

    ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200925</commentid>
    <comment_count>1</comment_count>
      <attachid>9537</attachid>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2021-07-26 21:40:24 +0300</bug_when>
    <thetext>Created attachment 9537
create_chroot(): pin %%_rpmscript_werror (as expected in Girar install checks)

a patch to hardcode the desired behavior in hasher</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200985</commentid>
    <comment_count>2</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2021-07-28 15:13:39 +0300</bug_when>
    <thetext>hasher-1.4.7-alt1 with this fix has been committed to Sisyphus, and the new good behavior can already be observed in Girar on x86_64 and i586, but not yet on armh, aarch64, ppc64le -- https://lists.altlinux.org/pipermail/sisyphus-incominger/2021-July/625568.html :

2021-Jul-28 11:45:27 :: [aarch64] #300 rpmscript_warn_only-post-checkinstall: install check OK
2021-Jul-28 11:45:28 :: [ppc64le] #300 rpmscript_warn_only-post-checkinstall: install check OK
	i586: rpmscript_warn_only-post-checkinstall=1-alt1 install failed:
 &lt;13&gt;Jul 28 11:45:28 rpmi: rpmscript_warn_only-post-checkinstall-1-alt1 sisyphus+280840.300.5.1 1627472606 installed
 error: %post(rpmscript_warn_only-post-checkinstall-1-alt1.noarch) scriptlet failed, exit status 1
 error: rpmscript_warn_only-post-checkinstall-1-alt1.noarch: install failed
 hsh-install: Packages installation failed.
2021-Jul-28 11:45:28 :: [i586] #300 rpmscript_warn_only-post-checkinstall: install check FAILED
2021-Jul-28 11:45:28 :: [i586] requesting cancellation of task processing
2021-Jul-28 11:45:34 :: [armh] #300 rpmscript_warn_only-post-checkinstall: install check OK
	x86_64: rpmscript_warn_only-post-checkinstall=1-alt1 install failed:
 &lt;13&gt;Jul 28 11:45:35 rpmi: rpmscript_warn_only-post-checkinstall-1-alt1 sisyphus+280840.300.5.1 1627472606 installed
 error: %post(rpmscript_warn_only-post-checkinstall-1-alt1.noarch) scriptlet failed, exit status 1
 error: rpmscript_warn_only-post-checkinstall-1-alt1.noarch: install failed
 hsh-install: Packages installation failed.
2021-Jul-28 11:45:35 :: [x86_64] #300 rpmscript_warn_only-post-checkinstall: install check FAILED</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200992</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2021-07-28 18:09:54 +0300</bug_when>
    <thetext>(In reply to Ivan Zakharyaschev from comment #2)
&gt; hasher-1.4.7-alt1 with this fix has been committed to Sisyphus, and the new
&gt; good behavior can already be observed in Girar on x86_64 and i586, but not
&gt; yet on armh, aarch64, ppc64le --

It will take a bit more time to reboot those hosts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201052</commentid>
    <comment_count>4</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2021-07-30 03:19:26 +0300</bug_when>
    <thetext>https://lists.altlinux.org/pipermail/sisyphus-incominger/2021-July/626064.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9537</attachid>
            <date>2021-07-26 21:40:24 +0300</date>
            <delta_ts>2021-07-26 21:40:24 +0300</delta_ts>
            <desc>create_chroot(): pin %%_rpmscript_werror (as expected in Girar install checks)</desc>
            <filename>0001-create_chroot-pin-_rpmscript_werror-as-expected-in-G.patch</filename>
            <type>text/plain</type>
            <size>2508</size>
            <attacher name="Ivan Zakharyaschev">imz</attacher>
            
              <data encoding="base64">RnJvbSA4YzNhY2FiOTljZGQ4NjZmOWZjOTc4YmM2Y2Y2ODVkMTk4ZDRkNmNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJdmFuIFpha2hhcnlhc2NoZXYgPGltekBhbHRsaW51eC5vcmc+
CkRhdGU6IE1vbiwgMjYgSnVsIDIwMjEgMTc6MDA6MjcgKzAzMDAKU3ViamVjdDogW1BBVENIXSBj
cmVhdGVfY2hyb290KCk6IHBpbiAlJV9ycG1zY3JpcHRfd2Vycm9yIChhcyBleHBlY3RlZCBpbgog
R2lyYXIgaW5zdGFsbCBjaGVja3MpCgooSSBkb24ndCBsaWtlIGhhcmRjb2RpbmcgdGhpczsgYSBt
b3JlIGZsZXhpYmxlIHNvbHV0aW9uIGFsbG93aW5nIHRvCmNob29zZSB0aGUgYmVoYXZpb3IgZm9y
IGVhY2ggaW52b2NhdGlvbiBvZiBoc2ggLS1pbmkgb3IgaHNoLWluc3RhbGwKd291bGQgYmUgYmV0
dGVyOiBpdCBjb3VsZCBiZSBhbiBvcHRpb24gdG8gcGFzcyB0aGUgY29ycmVzcG9uZGluZwpvcHRp
b24gYWxvbmcgd2l0aCBycG1pLikKCihGb3IgdGhpcyBjaGFuZ2UgdG8gdGFrZSBlZmZlY3QsIG9u
ZSBzaG91bGQgcm0gLXJmIH4vaGFzaGVyL2NhY2hlL2Nocm9vdC8gKQoKRm9yIG5vbi16ZXJvIGV4
aXQgY29kZXMgb2YgdGhlICUlcG9zdCBzY3JpcGxldHMgdG8gYmUgdHJlYXRlZCBhcyBmYXRhbApl
cnJvcnMgKGluIGluc3RhbGwgY2hlY2tzIGluIEdpcmFyKSwgJSVfcnBtc2NyaXB0X3dlcnJvciBm
bGFnIHdhcyByZWNlbnRseQphZGRlZCB0byBycG0sIGFuZCBhbiBhdHRlbXB0IHdhcyBtYWRlIHRv
IHR1cm4gdGhpcyBiZWhhdmlvciBvbiBpbgpHaXJhciBpbiBjb21taXQgNmM1ZDI3MzhlMGFkMDRk
MDBjMzFjOTgwYTZlOGY3MWZmNWJiMjRhYjoKCkF1dGhvcjogRG1pdHJ5IFYuIExldmluIDxsZHZA
YWx0bGludXgub3JnPgpEYXRlOiAgIFRodSBEZWMgMTkgMDA6NDQ6NTkgMjAxOSArMDAwMAoKICAg
IGdiLXJlbW90ZS1wbGFudDogYWRkICVfcnBtc2NyaXB0X3dlcnJvciB0byAucnBtbWFjcm9zCgog
ICAgRW5hYmxlIHRyYWRpdGlvbmFsIHJwbSBiZWhhdmlvdXIgb2YgdHJlYXRpbmcgYWxsIHNjcmlw
dGxldCBmYWlsdXJlcwogICAgYXMgZmF0YWwuCgpIb3dldmVyLCBhZGRpbmcgaXQgdG8gfi8ucnBt
bWFjcm9zIGRpZG4ndCBoYXZlIHRoZSBkZXNpcmVkIGVmZmVjdCwKYmVjYXVzZSwgaW4gaGFzaGVy
LCBmaXJzdGx5LCBycG1tYWNyb3MgZnJvbSB0aGUgaG9zdCBzeXN0ZW0gYXJlCnByaW1hcmlseSB1
c2VkIHRvIGZpbGwgaW4gYnVpbGRlcidzIHJwbW1hY3JvcyAoYW5kIGFmZmVjdCBvbmx5CmJ1aWxk
aW5nIHBhY2thZ2VzKSwgYW5kIHNlY29uZGx5LCBldmVuIHRoZXJlIHRoZXkgYXJlIG5vdCBjb3Bp
ZWQKdmVyYmF0aW0sIGJ1dCByYXRoZXIgc29tZSBuZWVkZWQgdmFsdWVzIGFyZSBldmFsdWF0ZWQg
YW5kCmluc2VydGVkLiAoU2VlICIjIENyZWF0ZSBSUE0gYnVpbGQgZGlyZWN0b3J5IHRyZWUuIiBp
biBoc2gtaW5pdHJvb3QuKQpBbHNvLCBhcHRib3ggc2VlcyB+Ly5ycG1tYWNyb3MgZnJvbSB0aGUg
aG9zdCBzeXN0ZW0gKG9yIHJlLWNyZWF0ZXMgaXRzCm93biAkYXB0Ym94X2hvbWUvLnJwbW1hY3Jv
cyksIGJ1dCB0aGV5IGRvbid0IHNlZW0gdG8gYWZmZWN0IHRoZQpiZWhhdmlvciBvZiBycG0gdy5y
LnQuIHRoZSBleGl0IHN0YXR1cyBvZiB0aGUgc2NyaXB0bGV0cyBvZiB0aGUKcGFja2FnZXMgYmVp
bmcgaW5zdGFsbGVkLgoKVGhpcyBpcyBkZW1vbnN0cmF0ZWQgYnkgdGhlIHRyaXZpYWwgdGVzdCBw
YWNrYWdlcyBmcm9tCmh0dHA6Ly9naXQuYWx0bGludXgub3JnL3Blb3BsZS9pbXovcGFja2FnZXMv
cnBtc2NyaXB0X3dhcm5fb25seS1jaGVja2luc3RhbGwuZ2l0CgpSZXBvcnRlZC1ieTogQWxleGV5
IEFwcG9sb25vdiA8YWxleGV5QGFsdGxpbnV4Lm9yZz4KLS0tCiBoYXNoZXIvaHNoLXNoLWNhY2hl
LWNocm9vdC1mdW5jdGlvbnMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp
CgpkaWZmIC0tZ2l0IGEvaGFzaGVyL2hzaC1zaC1jYWNoZS1jaHJvb3QtZnVuY3Rpb25zIGIvaGFz
aGVyL2hzaC1zaC1jYWNoZS1jaHJvb3QtZnVuY3Rpb25zCmluZGV4IDM0YTViOTUuLjFlZmZmYTUg
MTAwNjQ0Ci0tLSBhL2hhc2hlci9oc2gtc2gtY2FjaGUtY2hyb290LWZ1bmN0aW9ucworKysgYi9o
YXNoZXIvaHNoLXNoLWNhY2hlLWNocm9vdC1mdW5jdGlvbnMKQEAgLTI3Nyw2ICsyNzcsOCBAQCBt
a2RpciAtcCAvc3lzCiBybSAtZiAvZXRjL3JwbS9tYWNyb3MuZGIxCiAjIFdPUktBUk9VTkQ6IGds
aWJjLWxvY2FsZXMgaXMgdG9vIGxhcmdlCiBlY2hvICclX2luc3RhbGxfbGFuZ3MgJHtpbnN0YWxs
X2xhbmdzOi0kZGVmX2luc3RhbGxfbGFuZ3N9JyA+Pi9ldGMvcnBtL21hY3JvcworIyBGb3JjZSB0
aGUgdHJlYXRtZW50IG9mIHNjcmlwdGxldCBlcnJvcnMgYXMgZXhwZWN0ZWQgaW4gaW5zdGFsbCBj
aGVja3MgaW4gR2lyYXIKK2VjaG8gJyVfcnBtc2NyaXB0X3dlcnJvciAxJyA+Pi9ldGMvcnBtL21h
Y3JvcwogIyAvV09SS0FST1VORAogcnBtZGIgLS1pbml0ZGIKIF9fRU9GX18KLS0gCjIuMjUuNAoK
</data>

          </attachment>
      

    </bug>

</bugzilla>