Index: bin/cygport.in =================================================================== --- bin/cygport.in (revision 6306) +++ bin/cygport.in (working copy) @@ -1123,6 +1156,7 @@ # __prepinfo # __prepman # __prepstrip +# __prepuac # __prepvargames # __prep_empty_dirs # __prep_libtool_modules @@ -1371,13 +1419,8 @@ # *.so: Apache2 modules, OCaml stublibs, Ruby modules # *.oct: Octave modules - for exe in $(find * -type f -name '*.dll' -o -name '*.exe' -o -name '*.so' -o -name '*.oct') + for exe in $(find * -type f -writable -a \( -name '*.dll' -o -name '*.exe' -o -name '*.so' -o -name '*.oct' \)) do - if [ ! -w ${exe} ] - then - continue - fi - # OCaml bytecode must not be stripped # this test generates false positives with the ocaml core and # compilers, but should otherwise be accurate @@ -1404,6 +1447,29 @@ done } +__prepuac() { + local exe exename; + + cd ${D}; + + echo "Preparing executables for UAC:"; + + for exe in $(find * -type f -executable -a \( -name '*instal*.exe' -o -name '*patch*.exe' -o -name '*setup*.exe' -o -name '*update*.exe' \)) + do + exename=${exe##*/}; + + # Mono assemblies may already include .manifest files. + if [ ! -e ${exe}.manifest ] + then + echo " ${exe}"; + sed -e "s|@PKGNAME@|${PN//.}|" \ + -e "s|@APPNAME@|${exename%.exe}|" \ + ${_privdatadir}/uac-manifest.in > ${exe}.manifest + chmod +x ${exe}.manifest + fi + done +} + __prep_symlinks() { local l l_src @@ -1443,12 +1504,13 @@ __prepvargames; __prep_empty_dirs; __prepstrip; + __prepuac; __prep_libtool_modules; } # protect functions readonly -f __prepdoc __prepetc __prepman __prepinfo __prepvargames __prep_empty_dirs \ - __prepstrip __prep_symlinks __prep_libtool_modules __src_postinst + __prepstrip __prepuac __prep_symlinks __prep_libtool_modules __src_postinst ################################################################################ Index: data/Makefile.am =================================================================== --- data/Makefile.am (revision 6446) +++ data/Makefile.am (working copy) @@ -1,4 +1,8 @@ -dist_pkgdata_DATA = cygport.nanorc mirrors sample.cygport +dist_pkgdata_DATA = \ + cygport.nanorc \ + mirrors \ + sample.cygport \ + uac-manifest.in bashcompletiondir = /etc/bash_completion.d dist_bashcompletion_DATA = cygport-bash-completion Index: data/uac-manifest.in =================================================================== --- data/uac-manifest.in (revision 0) +++ data/uac-manifest.in (revision 0) @@ -0,0 +1,16 @@ + + + + + + + + + + + + +