[tasque/xbuild] [xbuild] Fix permissions on install files



commit b8b191510004d8b5bdf0ded5a0de8132ba17b627
Author: Antonius Riha <antoniusriha gmail com>
Date:   Thu Sep 20 12:01:39 2012 +0200

    [xbuild] Fix permissions on install files
    
    Build output from xbuild has set the executable bit. Hence change
    the permissions to not-executable on all install files except .exe files.

 build/Tasque.targets     |   24 ++++++++++++++++++------
 data/data.mdproj         |    4 ++--
 src/tasque/tasque.csproj |    6 +++---
 3 files changed, 23 insertions(+), 11 deletions(-)
---
diff --git a/build/Tasque.targets b/build/Tasque.targets
index 3a67359..9e247c6 100644
--- a/build/Tasque.targets
+++ b/build/Tasque.targets
@@ -144,6 +144,7 @@
       _SetupPoInstallFile;
       SetupInstallFile;
       CoreInstall;
+      _FixPermissions;
       AfterInstall;
       _UpdateIconCache;
     </InstallDependsOn>
@@ -238,36 +239,42 @@
   <Target Name="_SetupBinInstallFile">
     <Message Text="$(TargetFileName)" />
     <CreateItem Include="$(TargetFileName)" AdditionalMetadata="InstallPath=$(PkgLibDir);InstallFileName=$(TargetFileName)">
+      <Output TaskParameter="Include" ItemName="_PreInstallFile" />
+    </CreateItem>
+    <CreateItem Condition=" '%(Extension)' != '.exe' " Include="@(_PreInstallFile)" AdditionalMetadata="Executable=false">
+      <Output TaskParameter="Include" ItemName="InstallFile" />
+    </CreateItem>
+    <CreateItem Condition=" '%(Extension)' == '.exe' " Include="@(_PreInstallFile)" AdditionalMetadata="Executable=true">
       <Output TaskParameter="Include" ItemName="InstallFile" />
     </CreateItem>
     <CreateItem Condition="Exists('$(TargetFileName).mdb')" Include="$(TargetFileName).mdb"
-        AdditionalMetadata="InstallPath=$(PkgLibDir);InstallFileName=$(TargetFileName).mdb">
+        AdditionalMetadata="InstallPath=$(PkgLibDir);InstallFileName=$(TargetFileName).mdb;Executable=false">
       <Output TaskParameter="Include" ItemName="InstallFile" />
     </CreateItem>
   </Target>
   
   <Target Name="_SetupDataInstallFile">
     <CreateItem Condition=" '@(Icon)' != '' " Include="$(SrcDir)\%(Icon.Identity)"
-        AdditionalMetadata="InstallPath=$(HiColorDir)\%(Size)\%(Context);InstallFileName=%(Name)">
+        AdditionalMetadata="InstallPath=$(HiColorDir)\%(Size)\%(Context);InstallFileName=%(Name);Executable=false">
       <Output TaskParameter="Include" ItemName="InstallFile" />
     </CreateItem>
     <CreateItem Condition=" '@(PkgIcon)' != '' " Include="$(SrcDir)\%(PkgIcon.Identity)"
-        AdditionalMetadata="InstallPath=$(PkgHiColorDir)\%(Size)\%(Context);InstallFileName=%(Name)">
+        AdditionalMetadata="InstallPath=$(PkgHiColorDir)\%(Size)\%(Context);InstallFileName=%(Name);Executable=false">
       <Output TaskParameter="Include" ItemName="InstallFile" />
     </CreateItem>
     <CreateItem Condition=" '@(Icon)' != '' And '%(Pixmaps)'" Include="$(SrcDir)\%(Icon.Identity)"
-        AdditionalMetadata="InstallPath=$(PixmapDir);InstallFileName=%(FileName)%(Extension)">
+        AdditionalMetadata="InstallPath=$(PixmapDir);InstallFileName=%(FileName)%(Extension);Executable=false">
       <Output TaskParameter="Include" ItemName="InstallFile" />
     </CreateItem>
     <CreateItem Condition=" '@(PkgSound)' != '' " Include="$(SrcDir)\%(PkgSound.Identity)"
-        AdditionalMetadata="InstallPath=$(PkgSoundsDir);InstallFileName=%(FileName)%(Extension)">
+        AdditionalMetadata="InstallPath=$(PkgSoundsDir);InstallFileName=%(FileName)%(Extension);Executable=false">
       <Output TaskParameter="Include" ItemName="InstallFile" />
     </CreateItem>
   </Target>
   
   <Target Name="_SetupPoInstallFile" Condition=" '@(GettextCompile)' != '' ">
     <CreateItem Include="%(GettextCompile.FileName).gmo"
-        AdditionalMetadata="InstallPath=$(LocaleDir)\%(GettextCompile.FileName)\LC_MESSAGES;InstallFileName=$(PackageName).mo" >
+        AdditionalMetadata="InstallPath=$(LocaleDir)\%(GettextCompile.FileName)\LC_MESSAGES;InstallFileName=$(PackageName).mo;Executable=false" >
       <Output TaskParameter="Include" ItemName="InstallFile" />
     </CreateItem>
   </Target>
@@ -277,6 +284,11 @@
     <Exec Command="$(UpdateIconCache) -f -t $(PkgHiColorDir)" IgnoreExitCode="true" />
   </Target>
   
+  <Target Name="_FixPermissions">
+    <Exec Condition=" Exists('$(DestDir)%(InstallFile.InstallPath)\%(InstallFileName)') And !'%(Executable)' "
+        Command="chmod a-x $(DestDir)%(InstallPath)\%(InstallFileName)" />
+  </Target>
+  
   <Target Name="_SetupDistFile">
     <CreateItem Include="@(TasqueCompile);@(Icon);@(PkgIcon);@(PkgSound);@(GettextCompile);@(Translate);@(Substitute)">
       <Output TaskParameter="Include" ItemName="DistFile" />
diff --git a/data/data.mdproj b/data/data.mdproj
index 7299970..8533dee 100644
--- a/data/data.mdproj
+++ b/data/data.mdproj
@@ -169,10 +169,10 @@
     <CreateProperty Value="$(DataDir)\dbus-1\services">
       <Output TaskParameter="Value" PropertyName="DbusServiceDir" />
     </CreateProperty>
-    <CreateItem Include="%(Translate.FileName)" AdditionalMetadata="InstallPath=$(DesktopDir);InstallFileName=%(Translate.FileName)">
+    <CreateItem Include="%(Translate.FileName)" AdditionalMetadata="InstallPath=$(DesktopDir);InstallFileName=%(Translate.FileName);Executable=false">
       <Output TaskParameter="Include" ItemName="InstallFile" />
     </CreateItem>
-    <CreateItem Include="%(Substitute.FileName)" AdditionalMetadata="InstallPath=$(DbusServiceDir);InstallFileName=%(Substitute.FileName)">
+    <CreateItem Include="%(Substitute.FileName)" AdditionalMetadata="InstallPath=$(DbusServiceDir);InstallFileName=%(Substitute.FileName);Executable=false">
       <Output TaskParameter="Include" ItemName="InstallFile" />
     </CreateItem>
   </Target>
diff --git a/src/tasque/tasque.csproj b/src/tasque/tasque.csproj
index 34c61d5..59fb397 100644
--- a/src/tasque/tasque.csproj
+++ b/src/tasque/tasque.csproj
@@ -82,13 +82,13 @@
     <Exec Command="chmod +x tasque" />
   </Target>
   <Target Name="SetupInstallFile">
-    <CreateItem Include="$(SrcDir)\Tasque.exe.config" AdditionalMetadata="InstallPath=$(PkgLibDir);InstallFileName=Tasque.exe.config">
+    <CreateItem Include="$(SrcDir)\Tasque.exe.config" AdditionalMetadata="InstallPath=$(PkgLibDir);InstallFileName=Tasque.exe.config;Executable=false">
       <Output TaskParameter="Include" ItemName="InstallFile" />
     </CreateItem>
-    <CreateItem Include="tasque.pc" AdditionalMetadata="InstallPath=$(PkgConfigDir);InstallFileName=tasque.pc">
+    <CreateItem Include="tasque.pc" AdditionalMetadata="InstallPath=$(PkgConfigDir);InstallFileName=tasque.pc;Executable=false">
       <Output TaskParameter="Include" ItemName="InstallFile" />
     </CreateItem>
-    <CreateItem Include="tasque" AdditionalMetadata="InstallPath=$(BinDir);InstallFileName=tasque">
+    <CreateItem Include="tasque" AdditionalMetadata="InstallPath=$(BinDir);InstallFileName=tasque;Executable=true">
       <Output TaskParameter="Include" ItemName="InstallFile" />
     </CreateItem>
   </Target>



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