diff --git a/ci/before_deploy.sh b/ci/before_deploy.sh index 4f1b75b7..25fa14e0 100755 --- a/ci/before_deploy.sh +++ b/ci/before_deploy.sh @@ -29,11 +29,15 @@ cd "$pkg" strip "$strip_option" "$name/bin/cquery" "$name/${libclang[-1]}" case $(uname -s) in Darwin) + # https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/tar.1.html + # macOS's bsdtar is lack of flags to set uid/gid. + # First, we generate a list of file in mtree format. tar -cf filelist --format=mtree --options="!all,time,mode,type" "$name" + # Then add a line "/set uid=0 gid=0" after the first line "#mtree". awk '/#mtree/{print;print "/set uid=0 gid=0";next}1' filelist > newflielist + # Finally, use the list to generate the tarball. tar -zcf "$root/build/$name.tar.gz" @newflielist ;; Linux) - # ./bin/cquery -> $name/bin/cquery tar -Jcf "$root/build/$name.tar.xz" --owner 0 --group 0 $name ;; *) tar -Jcf "$root/build/$name.tar.xz" --uid 0 --gid 0 $name ;;