Description of problem: java-1.7.0-openjdk has %pretrans scriplet written bash. This causes installation to fail because if bash is not installed before transaction execution starts. According to packaging guidelines all %pretrans scriplets must be written in lua. See: https://fedoraproject.org/wiki/Packaging:Guidelines#The_.25pretrans_scriptlet Version-Release number of selected component (if applicable): 1.7.0.60-2.5.0.4.pre02
Reproducer: rm -rf /tmp/chroot yum --disablerepo \* --enablerepo rawhide --installroot /tmp/chroot install java-1.7.0-openjdk Result: Running transaction check ERROR with transaction check vs depsolve: /bin/sh is needed by java-1.7.0-openjdk-1:1.7.0.60-2.5.0.4.pre02.fc21.x86_64
I'd also like to point out that I warned this would happen if you'd write pretrans in anything but lua: https://bugzilla.redhat.com/show_bug.cgi?id=1038092#c23
Can this RPM lua copy files? I can see only dir listing and creating: http://www.rpm.org/wiki/PackagerDocs/RpmLua#AvailableLuaextensionsinRPM
Ou, there is exec :) What about exec bin/sh?
Possibly there is nothing installed (not even shell) at time pretrans is ran. But I think in this case you don't need to to anything and you can ignore exec failure.
Note this error is breaking the nightly live composes for live images using this package.
The scriplet was removed http://pkgs.fedoraproject.org/cgit/java-1.7.0-openjdk.git/commit/?id=3b33b8e7667bee3abc5a487aab9ab6f81452e9a4 http://koji.fedoraproject.org/koji/taskinfo?taskID=6576309 Will be repalced by lua + exec(cp) later or by whatever...