{"push_id":726043607,"size":1,"distinct_size":1,"ref":"refs/heads/ticket/stable/PUP-4854-PMT-temp-path-too-long-on-Windows","head":"5c23a5544609f11de02cda2e0c7a31236d9e2cd4","before":"f24ea7e96b5f52a4a1f291d5505f6f0ed7e5b625","commits":[{"sha":"5c23a5544609f11de02cda2e0c7a31236d9e2cd4","author":{"email":"6eaaec1336f7acb13686b98a3495c3d683fe0810@github","name":"Ethan J. Brown"},"message":"(PUP-4854) Shorten PMT TEMP location on Windows\n\n - For modules that install on Windows and use a long hierarchical\n   directory structure, the default TEMP path where PMT extracts the\n   modules tarball can be problematic. Windows has a default maximum\n   path length of 260 characters that must be carefully navigated.\n\n   By default, the extracted temp location looks like:\n\n   C:\\ProgramData\\PuppetLabs\\puppet\\cache\\puppet-module\\cache\\tmp-unpackerYYYYMMDD-XXXX-xxxxxxx\n\n   The default install location of a puppet 4.0+ module is:\n\n   C:\\ProgramData\\PuppetLabs\\code\\environments\\production\\modules\n\n   By initially extracting to such a long path, 30 valuable characters\n   are wasted (92 char current temp path vs 62 char install path).\n\n   On Windows, the TEMP directory can be used as a location to extract\n   to, and this is the default for Dir.mktmpdir.  Depending on the user,\n   this path will typically be one of the following:\n\n   C:\\Users\\USERNAME\\AppData\\Local\\Temp     (41 chars for Administrator)\n   C:\\Windows\\Temp                          (15 chars) - for service\n\n   Note: When run as SYSTEM, the following permissions are set on such\n   a folder by default.\n\n   C:/Windows/Temp/tmp-unpacker20150714-4228-1p6ldmc\n\n   NT AUTHORITY\\SYSTEM:(I)(OI)(CI)(S,RD)\n   BUILTIN\\IIS_IUSRS:(I)(OI)(CI)(S,RD)\n   BUILTIN\\Users:(I)(CI)(S,WD,AD,X)\n   BUILTIN\\Administrators:(I)(F)\n   BUILTIN\\Administrators:(I)(OI)(CI)(IO)(F)\n   NT AUTHORITY\\SYSTEM:(I)(F)\n   NT AUTHORITY\\SYSTEM:(I)(OI)(CI)(IO)(F)\n   CREATOR OWNER:(I)(OI)(CI)(IO)(F)\n\n   If running `puppet module install` as SYSTEM, there is a minor\n   security issue given Users are granted granted Synchronize / Write /\n   Append / Execute permissions.  However, this is not a normal method\n   for installing modules.  Modules are typically pluginsync'd via the\n   Puppet service, or `puppet module install` is run as a normal user\n   that has a user-specific temporary directory.\n\n   Given per-user temp directories are more secure by default, this is\n   why the base_path on Windows has not been set to %SystemRoot%\\Temp\n   for all cases.","distinct":true,"url":"https://api.github.com/repos/Iristyle/puppet/commits/5c23a5544609f11de02cda2e0c7a31236d9e2cd4"}]}