Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 1.0-beta-3
-
Component/s: wagon-ssh
-
Labels:None
-
Environment:Debian Linux unstable, Sun JDK 1.5.0_06
Description
It seems like 'directoryPermissions' doesn't work at all though 'filePermissions' do. I tried both scp and scpexe. Nothing worked. I also changed my umask to 002, but it didn't help at all.
If you have committership in the Apache Directory Project (Brett?
, then you can try it by yourself:
--------
svn co https://svn.apache.org/repos/asf/directory/trunks/ directory
cd directory
mvn --non-recursive deploy
--------
This is my ~/.m2/settings.xml
--------
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<servers>
<server>
<id>apache.snapshots</id>
<username>trustin</username>
<privateKey>/home/trustin/.ssh/id_rsa</privateKey>
<directoryPermissions>0775</directoryPermissions>
<filePermissions>0664</filePermissions>
</server>
</servers>
</settings>
--------
-
- wagon-permission-patch.diff
- 06/Apr/06 4:41 AM
- 3 kB
- Trustin Lee
Issue Links
- is duplicated by
-
MDEPLOY-29
deploy plugin with scp doesn't set g+w when create new directory structure
-
Activity
I'm having the same problem and I'm afraid it's making it difficult cooperate on projects.
Trustin is re-testing this as it works for me with 2.0.3:
Please test it using that release candidate:
http://maven.zones.apache.org/~maven/builds/branches/maven-2.0.x/m2-20060310.154500.tar.gz
If it still fails, I'll need more details:
- operating system
- output of mvn help:effective-settings help:effective-pom (if you have any passwords in your settings, please blank them out)
- output of mvn -v
- operating system
- output of mvn help:effective-settings help:effective-pom (if you have any passwords in your settings, please blank them out)
- output of mvn -v
I tested against Maven 2.0.3 and comfirmed that it works OK with scp://... scpexe://... still doesn't work.
It was my mistake. The permission issue still exists with both scp and scpexe.
My scenario:
$ svn co http://svn.apache.org/repos/asf/directory/trunks directory
$ cd directory
$ mvn -N deploy # this will deploy the root POM only
Here's the data Brett requested to me:
$ mvn -N help:effective-settings help:effective-pom
[INFO] [help:effective-settings]
[INFO]
Effective settings:
<?xml version="1.0" encoding="UTF-8"?><settings>
<localRepository>C:\Documents and Settings\trustin\.m2\repository</localRepository>
<servers>
<server>
<username>trustin</username>
<privateKey>D:\.ssh\id_rsa</privateKey>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<id>apache.snapshots</id>
</server>
<server>
<username>trustin</username>
<privateKey>D:\.ssh\id_rsa</privateKey>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<id>apache.websites</id>
</server>
<server>
<username>neo</username>
<privateKey>D:\.ssh\id_rsa</privateKey>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<id>1noon.snapshots</id>
</server>
<server>
<username>neo</username>
<privateKey>D:\.ssh\id_rsa</privateKey>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<id>1noon.websites</id>
</server>
</servers>
</settings>
[INFO] ----------------------------------------------------------------------------
[INFO] Building Apache Directory Build
[INFO] task-segment: [help:effective-pom] (aggregator-style)
[INFO] ----------------------------------------------------------------------------
[INFO] [help:effective-pom]
[INFO]
************************************************************************************
Effective POM for project 'org.apache.directory:build:pom:1.0.3-SNAPSHOT'
************************************************************************************
<?xml version="1.0" encoding="ISO-8859-1"?><project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.directory</groupId>
<artifactId>build</artifactId>
<packaging>pom</packaging>
<name>Apache Directory Build</name>
<version>1.0.3-SNAPSHOT</version>
<inceptionYear>2004</inceptionYear>
<licenses>
<license>
<name>Apache Software License 2.0</name>
<url>http://directory.apache.org/license.html</url>
</license>
</licenses>
<build>
<sourceDirectory>w:\directory\trunks\src\main\java</sourceDirectory>
<scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>w:\directory\trunks\src\test\java</testSourceDirectory>
<outputDirectory>w:\directory\trunks\target\classes</outputDirectory>
<testOutputDirectory>w:\directory\trunks\target\test-classes</testOutputDirectory>
<resources>
<resource>
<directory>w:\directory\trunks\src\main\resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>w:\directory\trunks\src\test\resources</directory>
</testResource>
</testResources>
<directory>w:\directory\trunks\target</directory>
<finalName>build-1.0.3-SNAPSHOT</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.1-20060328.105412-2</version>
<configuration>
<source>1.4</source>
<target>1.4</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-help-plugin</artifactId>
<version>2.0</version>
</plugin>
</plugins>
</build>
<modules>
<module>mina</module>
<module>apacheds</module>
<module>shared</module>
<module>daemon</module>
</modules>
<repositories>
<repository>
<id>apache.snapshots</id>
<name>Apache Snapshot Repository</name>
<url>http://cvs.apache.org/maven-snapshot-repository</url>
</repository>
<repository>
<id>safehaus</id>
<name>Alternate Repository for Missing Ibiblio Artifacts</name>
<url>http://m2.safehaus.org</url>
</repository>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>snapshots</id>
<name>snapshot plugins</name>
<url>http://snapshots.maven.codehaus.org/maven2</url>
</pluginRepository>
<pluginRepository>
<id>apache.snapshots</id>
<name>Apache Snapshot Plugins</name>
<url>http://cvs.apache.org/maven-snapshot-repository</url>
</pluginRepository>
<pluginRepository>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Plugin Repository</name>
<url>http://repo1.maven.org/maven2</url>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<reporting>
<outputDirectory>target/site</outputDirectory>
</reporting>
<distributionManagement>
<repository>
<id>apache.snapshots</id>
<name>ASF Mirrored M2 Distributions</name>
<url>scp://minotaur.apache.org/www/www.apache.org/dist/maven-repository</url>
</repository>
<snapshotRepository>
<id>apache.snapshots</id>
<url>scp://cvs.apache.org/www/cvs.apache.org/maven-snapshot-repository</url>
</snapshotRepository>
</distributionManagement>
</project>
************************************************************************************
$ mvn --version
Maven version: 2.0.3
I attached a patch that fixes this problem.
If you use scp, file permission is not set correctly. It seems like some (or all?) scp implementations doesn't set file mode correctly. To work around this issue, I added an extra 'chmod' command execution.
If you use scpexe, directory permission is not set correctly. I found wagon-ssh-external doesn't run umask command. I fixed it, too.
I'd still like to investigate this some more for the wagon-ssh one. I don't understand the circumstances where C0664 doesn't work as it has on the systems I've tried. It's reported as a problem uploading to minotaur and a RHEL box by Trustin. I'll check.
The reason not to apply the first patch immediately is that it will add an extra connection, further slowing an already sluggish deploy process. The second patch should be good to go, however
Great. Then why don't you check in the second patch first so we can use scpexe meanwhile?
I have a related issue on Maven 2.0.4, but with filePermissions for group write. The client machine is Ubuntu dapper and the repository is gentoo.
ecoolman@ecoolman-desktop:~/workspace/mromojo$ java -version
java version "1.4.2_12"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_12-b03)
Java HotSpot(TM) Client VM (build 1.4.2_12-b03, mixed mode)
ecoolman@ecoolman-desktop:~/workspace/mromojo$ mvn -version
Maven version: 2.0.4
ecoolman@ecoolman-desktop:~/workspace/mromojo$ uname -a
Linux ecoolman-desktop 2.6.15-26-686 #1 SMP PREEMPT Mon Jul 17 20:14:14 UTC 2006 i686 GNU/Linux
ecoolman@ecoolman-desktop:~/workspace/mromojo$ umask
0002
ecoolman@ecoolman-desktop:~/workspace/mromojo$ ssh hydrogen
Last login: Thu Jul 27 16:46:57 2006 from 172.22.44.84
ecoolman@hydrogen ~ $ uname -a
Linux hydrogen 2.6.11-gentoo-r6 #1 SMP Sat Apr 23 16:22:14 GMT 2005 i686 Intel(R) Xeon(TM) CPU 2.40GHz GenuineIntel GNU/Linux
ecoolman@hydrogen ~ $ umask
0002
ecoolman@ecoolman-desktop:~/workspace/mromojo$ mvn help:effective-settings help:effective-pom
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'help'.
[INFO] ----------------------------------------------------------------------------
[INFO] Building Maven 2 Mojos
[INFO] task-segment: [help:effective-settings, help:effective-pom] (aggregator-style)
[INFO] ----------------------------------------------------------------------------
[INFO] [help:effective-settings]
[INFO]
Effective settings:
<?xml version="1.0"?><settings>
<localRepository>/home/ecoolman/.m2/repository</localRepository>
<interactiveMode>false</interactiveMode>
<servers>
<server>
<username>ecoolman</username>
<privateKey>/home/ecoolman/.ssh/id_dsa</privateKey>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<configuration></configuration>
<id>hydrogen</id>
</server>
</servers>
<profiles>
<profile>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<releases>
<enabled>false</enabled>
</releases>
<snapshots />
<id>Maven Snapshots</id>
<url>http://snapshots.maven.codehaus.org/maven2/</url>
</repository>
<repository>
<releases>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<id>hydrogen-maven1</id>
<name>MRO Hydrogen Maven 1 Repository</name>
<url>http://hydrogen/tools/maven</url>
<layout>legacy</layout>
</repository>
<repository>
<releases>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<id>hydrogen</id>
<name>MRO Hydrogen Maven2 Repository</name>
<url>http://hydrogen/tools/maven2</url>
</repository>
<repository>
<releases>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<id>ibiblio</id>
<name>ibiblio maven2 repository</name>
<url>http://ibiblio.lsu.edu/main/pub/packages/maven2/</url>
</repository>
<repository>
<releases>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<id>ibiblio</id>
<name>ibiblio maven2 plugin repository</name>
<url>http://ibiblio.lsu.edu/main/pub/packages/maven2/plugins</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<enabled>false</enabled>
</releases>
<snapshots />
<id>Maven Snapshots</id>
<url>http://snapshots.maven.codehaus.org/maven2/</url>
</pluginRepository>
<pluginRepository>
<releases>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<id>hydrogen</id>
<name>MRO Hydrogen Repository</name>
<url>http://hydrogen/tools/maven2</url>
<layout>legacy</layout>
</pluginRepository>
<pluginRepository>
<releases>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<id>ibiblio</id>
<name>ibiblio maven2 repository</name>
<url>http://ibiblio.lsu.edu/main/pub/packages/maven2/plugins/</url>
</pluginRepository>
</pluginRepositories>
<id></id>
</profile>
</profiles>
<activeProfiles>
<activeProfile></activeProfile>
</activeProfiles>
</settings>
[INFO] [help:effective-pom]
[INFO]
************************************************************************************
Effective POM for project 'mro:mromojo:maven-plugin:1.0'
************************************************************************************
<?xml version="1.0"?><project>
<modelVersion>4.0.0</modelVersion>
<groupId>mro</groupId>
<artifactId>mromojo</artifactId>
<packaging>maven-plugin</packaging>
<name>Maven 2 Mojos</name>
<version>1.0</version>
<description>MRO Mojos for Maven 2 projects</description>
<url>http://hydrogen/projects/mromojo</url>
<issueManagement>
<system>MRO Issues</system>
<url>http://issues.mro.com</url>
</issueManagement>
<inceptionYear>2006</inceptionYear>
<developers>
<developer>
<id>ecoolman</id>
<name>Eric Coolman</name>
<email>eric.coolman@mro.com</email>
<organization>MRO Software Canada, Ltd</organization>
<organizationUrl>http://www.mro.com</organizationUrl>
<roles>
<role>developer</role>
<role>admin</role>
</roles>
<timezone>+0500</timezone>
</developer>
</developers>
<scm>
<connection>scm:cvs:ext::/usr/local/area51cvs:mromojo</connection>
</scm>
<organization>
<name>MRO Software Canada, Ltd</name>
<url>http://www.mro.com/</url>
</organization>
<build>
<sourceDirectory>/mnt/sda3/home/ecoolman/workspace/mromojo/src/main/java</sourceDirectory>
<scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>/mnt/sda3/home/ecoolman/workspace/mromojo/src/test/java</testSourceDirectory>
<outputDirectory>/mnt/sda3/home/ecoolman/workspace/mromojo/target/classes</outputDirectory>
<testOutputDirectory>/mnt/sda3/home/ecoolman/workspace/mromojo/target/test-classes</testOutputDirectory>
<resources>
<resource>
<directory>/mnt/sda3/home/ecoolman/workspace/mromojo/src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>/mnt/sda3/home/ecoolman/workspace/mromojo/src/test/resources</directory>
</testResource>
</testResources>
<directory>/mnt/sda3/home/ecoolman/workspace/mromojo/target</directory>
<finalName>mromojo-1.0</finalName>
<plugins>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<configuration>
<locales>en</locales>
</configuration>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.0-beta-1</version>
</plugin>
<plugin>
<artifactId>maven-help-plugin</artifactId>
<version>2.0.1</version>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<releases>
<enabled>false</enabled>
</releases>
<snapshots />
<id>Maven Snapshots</id>
<url>http://snapshots.maven.codehaus.org/maven2/</url>
</repository>
<repository>
<releases>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<id>hydrogen-maven1</id>
<name>MRO Hydrogen Maven 1 Repository</name>
<url>http://hydrogen/tools/maven</url>
<layout>legacy</layout>
</repository>
<repository>
<releases>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<id>hydrogen</id>
<name>MRO Hydrogen Maven2 Repository</name>
<url>http://hydrogen/tools/maven2</url>
</repository>
<repository>
<releases>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<id>ibiblio</id>
<name>ibiblio maven2 repository</name>
<url>http://ibiblio.lsu.edu/main/pub/packages/maven2/</url>
</repository>
<repository>
<releases>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<id>ibiblio</id>
<name>ibiblio maven2 plugin repository</name>
<url>http://ibiblio.lsu.edu/main/pub/packages/maven2/plugins</url>
</repository>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<enabled>false</enabled>
</releases>
<snapshots />
<id>Maven Snapshots</id>
<url>http://snapshots.maven.codehaus.org/maven2/</url>
</pluginRepository>
<pluginRepository>
<releases>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<id>hydrogen</id>
<name>MRO Hydrogen Repository</name>
<url>http://hydrogen/tools/maven2</url>
<layout>legacy</layout>
</pluginRepository>
<pluginRepository>
<releases>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<id>ibiblio</id>
<name>ibiblio maven2 repository</name>
<url>http://ibiblio.lsu.edu/main/pub/packages/maven2/plugins/</url>
</pluginRepository>
<pluginRepository>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Plugin Repository</name>
<url>http://repo1.maven.org/maven2</url>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>mro</groupId>
<artifactId>mroutil</artifactId>
<version>1.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>mro</groupId>
<artifactId>cfgbuilder</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<reporting>
<outputDirectory>target/site</outputDirectory>
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-plugin-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>changes-maven-plugin</artifactId>
<version>2.0-beta-1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<version>2.0-beta-1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>changelog-maven-plugin</artifactId>
<version>2.0-beta-1</version>
</plugin>
</plugins>
</reporting>
<distributionManagement>
<repository>
<id>hydrogen</id>
<url>scp://hydrogen/var/area51/tools/maven2</url>
</repository>
<site>
<id>hydrogen</id>
<url>scp://hydrogen/var/www/localhost/htdocs/projects/mromojo</url>
</site>
<downloadUrl>http://hydrogen/tools/maven2</downloadUrl>
</distributionManagement>
</project>
************************************************************************************
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Fri Jul 28 10:44:16 EDT 2006
[INFO] Final Memory: 2M/508M
[INFO] ------------------------------------------------------------------------
Since the above comments seem to question to wagon ssh problem with file permissions, I figured I'd report one more instance of it. I've experianced the file permission problem with scp:// on both redhat and apple (In fact, I've never gotten scp:// to set permissions completely correctly). One interesting note: the filePermission issue appears somewhat unique to write permissions. Here's the results of a number of tests I ran.
settings.xml config = results on server
400 = u+r
666 = u+rw,g+r,o+r
664 = u+rw,g+r,o+r (this is the one I want, obviously not the right results)
777 = u+rwx,g+rx,o+rx
Wasn't sure if this was worth opening a different issue for. It seems different than the description, but the fix appears to be in Trustin's patch.
alas, maven 2.0.6 does not include wagon*.jar files in the maven/lib directory.
Does anyone have any idea how I can fix it with maven 2.0.6 ?
Looks like the problem is fixed for ScpWagon, but not for FileWagon.
I'm still experiencing the fact, that ScpWagon does neither properly honor the <filePermissions> nor sets usable permissions (664) by default. The missing write permission for the group is especially quite frustrating when multiple developers work on a single project. We're using Maven 2.0.7 and currently have not found any solution that allows for smooth deployment via SSH. SFTP struggles with ownerships (http://jira.codehaus.org/browse/WAGONSSH-42) and SCP needs manual correction to the file permissions (fortunately, only after the initial deploy).
It's getting a little off-topic right now, but I would appreciate any hints on how to replace the bundled versions of Wagon-Providers. From my testing I got the impression, that Maven currently ignores the <version> element when specifying the <extension> for Wagon. It always seems to use the classes bundled in its maven-core-2.0.7-uber.jar.
ok, I'm testing this against people.apache.org with the latest code and found:
- files don't exist, no settings, no umask (default of 22) - deploys as 775, 644
- files don't exist, no settings, umask 2 - deploys as 775, 664
- files don't exist, settings set fp to 666, no umask - deploys as 775, 644 (bug)
- files don't exist, settings set fp to 666, umask 2 - deploys as 775, 664 (bug)
- directoryPermissions works when it doesn't exist
- file permissions are not changed if they already existed
- sftp sets permissions correctly, but is very slow by comparison
I'll look into whether the scp1 setting actually works of it is always going to use the umask
- files don't exist, no settings, no umask (default of 22) - deploys as 775, 644
- files don't exist, no settings, umask 2 - deploys as 775, 664
- files don't exist, settings set fp to 666, no umask - deploys as 775, 644 (bug)
- files don't exist, settings set fp to 666, umask 2 - deploys as 775, 664 (bug)
- directoryPermissions works when it doesn't exist
- file permissions are not changed if they already existed
- sftp sets permissions correctly, but is very slow by comparison
On a related note, the same permissions tags do not seem to apply to the <repository> tag. Such would be ideal for use in the pom.xml <distributionManagement> section.