lol
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 23.11-beta 54 lines 1.4 kB view raw
1# This function builds an RPM from a source tarball that contains a 2# RPM spec file (i.e., one that can be built using `rpmbuild -ta'). 3 4{ name ? "rpm-build" 5, diskImage 6, src, lib, vmTools 7, ... } @ args: 8 9vmTools.buildRPM ( 10 11 removeAttrs args ["vmTools"] // 12 13 { 14 name = name + "-" + diskImage.name + (lib.optionalString (src ? version) "-${src.version}"); 15 16 preBuild = '' 17 . ${./functions.sh} 18 propagateImageName 19 src=$(findTarball $src) 20 ''; 21 22 postInstall = '' 23 declare -a rpms rpmNames 24 for i in $out/rpms/*/*.rpm; do 25 if echo $i | grep -vq "\.src\.rpm$"; then 26 echo "file rpm $i" >> $out/nix-support/hydra-build-products 27 rpms+=($i) 28 rpmNames+=("$(rpm -qp "$i")") 29 fi 30 done 31 32 echo "installing ''${rpms[*]}..." 33 rpm -Up ''${rpms[*]} --excludepath /nix/store 34 35 eval "$postRPMInstall" 36 37 echo "uninstalling ''${rpmNames[*]}..." 38 rpm -e ''${rpmNames[*]} --nodeps 39 40 for i in $out/rpms/*/*.src.rpm; do 41 echo "file srpm $i" >> $out/nix-support/hydra-build-products 42 done 43 44 for rpmdir in $extraRPMs ; do 45 echo "file rpm-extra $(ls $rpmdir/rpms/*/*.rpm | grep -v 'src\.rpm' | sort | head -1)" >> $out/nix-support/hydra-build-products 46 done 47 ''; 48 49 meta = (lib.optionalAttrs (args ? meta) args.meta) // { 50 description = "RPM package for ${diskImage.fullName}"; 51 }; 52 } 53 54)