rpmbuild: `! true` does not fail %install, but `false` does, `! true` fails other sections

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello folks,

I've realized that if the %install section contains a command that reverses the exit code from success to failure via !, the build does not fail, but it proceeds. In other sections, the build fails. E.g. this:

  %install
  ! true

Does not fail the build.

But this does:

  %install
  false

As well as this:

  %build
  ! true

Any idea why this is happening? Is it a bug, or a feature? This happens on Fedora 35 locally as well as Rawhide in Koji/mock.

All of the following (applied separately) fail the RPM build:

  %prep
  false

Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.A1K5K0
+ umask 022
+ cd /home/churchyard/rpmbuild/BUILD
+ false
error: Bad exit status from /var/tmp/rpm-tmp.A1K5K0 (%prep)

  %build
  false

Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.YR6FiX
+ umask 022
+ cd /home/churchyard/rpmbuild/BUILD
+ false
error: Bad exit status from /var/tmp/rpm-tmp.YR6FiX (%build)

  %install
  false

Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.OapPfB
+ umask 022
+ cd /home/churchyard/rpmbuild/BUILD
+ '[' /home/churchyard/rpmbuild/BUILDROOT/reproducer-0-0.x86_64 '!=' / ']'
+ rm -rf /home/churchyard/rpmbuild/BUILDROOT/reproducer-0-0.x86_64
++ dirname /home/churchyard/rpmbuild/BUILDROOT/reproducer-0-0.x86_64
+ mkdir -p /home/churchyard/rpmbuild/BUILDROOT
+ mkdir /home/churchyard/rpmbuild/BUILDROOT/reproducer-0-0.x86_64
+ false
error: Bad exit status from /var/tmp/rpm-tmp.OapPfB (%install)

  %check
  false

Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.CnEWIO
+ umask 022
+ cd /home/churchyard/rpmbuild/BUILD
+ false
error: Bad exit status from /var/tmp/rpm-tmp.CnEWIO (%check)


But when replaced with `! true`, %install (and %install only) succeeds:

  %prep
  ! true

Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.ojDvj8
+ umask 022
+ cd /home/churchyard/rpmbuild/BUILD
+ true
+ RPM_EC=1
++ jobs -p
+ exit 1
error: Bad exit status from /var/tmp/rpm-tmp.ojDvj8 (%prep)

  %build
  ! true

Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.RTiQQH
+ umask 022
+ cd /home/churchyard/rpmbuild/BUILD
+ true
+ RPM_EC=1
++ jobs -p
+ exit 1
error: Bad exit status from /var/tmp/rpm-tmp.RTiQQH (%build)

  %install
  ! true

Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.RczM4N
+ umask 022
+ cd /home/churchyard/rpmbuild/BUILD
+ '[' /home/churchyard/rpmbuild/BUILDROOT/reproducer-0-0.x86_64 '!=' / ']'
+ rm -rf /home/churchyard/rpmbuild/BUILDROOT/reproducer-0-0.x86_64
++ dirname /home/churchyard/rpmbuild/BUILDROOT/reproducer-0-0.x86_64
+ mkdir -p /home/churchyard/rpmbuild/BUILDROOT
+ mkdir /home/churchyard/rpmbuild/BUILDROOT/reproducer-0-0.x86_64
+ true
+ /usr/lib/rpm/check-buildroot
+ ...
+ /usr/lib/rpm/redhat/brp-python-hardlink
Executing(%check): ...

Or even:

  %install
  ! true
  echo UNREACHABLE

Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.nzrs6N
+ umask 022
+ cd /home/churchyard/rpmbuild/BUILD
+ '[' /home/churchyard/rpmbuild/BUILDROOT/reproducer-0-0.x86_64 '!=' / ']'
+ rm -rf /home/churchyard/rpmbuild/BUILDROOT/reproducer-0-0.x86_64
++ dirname /home/churchyard/rpmbuild/BUILDROOT/reproducer-0-0.x86_64
+ mkdir -p /home/churchyard/rpmbuild/BUILDROOT
+ mkdir /home/churchyard/rpmbuild/BUILDROOT/reproducer-0-0.x86_64
+ true
+ echo UNREACHABLE
UNREACHABLE
+ /usr/lib/rpm/check-buildroot
+ ...
+ /usr/lib/rpm/redhat/brp-python-hardlink
Executing(%check): ...

  %check
  ! true

Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.4E9WU3
+ umask 022
+ cd /home/churchyard/rpmbuild/BUILD
+ true
+ RPM_EC=1
++ jobs -p
+ exit 1
error: Bad exit status from /var/tmp/rpm-tmp.4E9WU3 (%check)



What sorcery is this?

--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok

_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxxxxx
http://lists.rpm.org/mailman/listinfo/rpm-list




[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux