77use File::Spec;
88use Cwd qw( abs_path) ;
99use File::Spec::Functions qw( catfile) ;
10+ use Data::UUID;
1011
1112use constant {
1213 PACKAGE_REVISION => " 1" , # BEWARE: always start with 1
@@ -90,6 +91,7 @@ sub build_app {
9091 agent_vertag => $versiontag // ' ' ,
9192 agent_fullname => $provider .' Agent' ,
9293 agent_rootdir => $provider .' -Agent' ,
94+ agent_localguid => Data::UUID-> new()-> create_str(),
9395 agent_regpath => " Software\\ $provider -Agent" ,
9496 service_name => lc ($provider ).' -agent' ,
9597 msi_sharedir => ' contrib/windows/packaging' ,
@@ -399,14 +401,14 @@ sub _tree2xml {
399401 $feat = $self -> _get_dir_feature($dir_id );
400402 $result .= $ident ." " . qq[ <Component Id="$component_id " Guid="{$component_guid }" KeyPath="yes" Feature="$feat ">\n ] ;
401403 if ($dir_id eq ' d_install' ) {
402- $result .= $ident ." " . qq[ <CreateFolder>\n ] ;
403- $result .= $ident ." " . qq[ <util:PermissionEx GenericAll="yes" User="CREATOR OWNER" />\n ] ;
404- $result .= $ident ." " . qq[ <util:PermissionEx GenericAll="yes" User="LocalSystem" />\n ] ;
405- $result .= $ident ." " . qq[ <util:PermissionEx GenericAll="yes" User="Administrators" />\n ] ;
406- $result .= $ident ." " . qq[ <util:PermissionEx GenericWrite="no" GenericExecute="yes" GenericRead="yes" User="AuthenticatedUser" />\n ] ;
407- $result .= $ident ." " . qq[ </CreateFolder>\n ] ;
404+ $result .= $ident ." " . qq[ <CreateFolder>\n ] ;
405+ $result .= $ident ." " . qq[ <util:PermissionEx GenericAll="yes" User="CREATOR OWNER" />\n ] ;
406+ $result .= $ident ." " . qq[ <util:PermissionEx GenericAll="yes" User="LocalSystem" />\n ] ;
407+ $result .= $ident ." " . qq[ <util:PermissionEx GenericAll="yes" User="Administrators" />\n ] ;
408+ $result .= $ident ." " . qq[ <util:PermissionEx GenericWrite="no" GenericExecute="yes" GenericRead="yes" User="AuthenticatedUser" />\n ] ;
409+ $result .= $ident ." " . qq[ </CreateFolder>\n ] ;
408410 } else {
409- $result .= $ident ." " . qq[ <CreateFolder />\n ] ;
411+ $result .= $ident ." " . qq[ <CreateFolder />\n ] ;
410412 }
411413 if ($dir_id eq ' d_var' ) {
412414 $result .= $ident ." " . qq[ <util:RemoveFolderEx On="uninstall" Property="UNINSTALL_VAR" />\n ] ;
@@ -418,23 +420,6 @@ sub _tree2xml {
418420 $result .= $ident ." " . qq[ <RemoveFolder Id="rm.$dir_id " On="uninstall" />\n ] ;
419421 }
420422 $result .= $ident ." " . qq[ </Component>\n ] ;
421- # Also add virtual folder properties under d_install
422- if ($dir_id eq ' d_install' ) {
423- foreach my $id (qw( LOCAL) ) {
424- $result .= $ident ." " . qq[ <Directory Id="$id ">\n ] ;
425- ($component_id , $component_guid ) = $self -> _gen_component_id(lc ($id )." .create" );
426- $result .= $ident ." " . qq[ <Component Id="$component_id " Guid="{$component_guid }" KeyPath="yes" Feature="$feat ">\n ] ;
427- $result .= $ident ." " . qq[ <CreateFolder>\n ] ;
428- $result .= $ident ." " . qq[ <util:PermissionEx GenericAll="yes" User="CREATOR OWNER" />\n ] ;
429- $result .= $ident ." " . qq[ <util:PermissionEx GenericAll="yes" User="LocalSystem" />\n ] ;
430- $result .= $ident ." " . qq[ <util:PermissionEx GenericAll="yes" User="Administrators" />\n ] ;
431- $result .= $ident ." " . qq[ <util:PermissionEx GenericWrite="no" GenericExecute="yes" GenericRead="yes" User="AuthenticatedUser" />\n ] ;
432- $result .= $ident ." " . qq[ </CreateFolder>\n ] ;
433- $result .= $ident ." " . qq[ <RemoveFolder Id="rm.] .lc ($id ). qq[ " On="uninstall" />\n ] ;
434- $result .= $ident ." " . qq[ </Component>\n ] ;
435- $result .= $ident ." " . qq[ </Directory>\n ] ;
436- }
437- }
438423 }
439424
440425 if (scalar (@f ) > 0) {
0 commit comments