7
7
use File::Spec;
8
8
use Cwd qw( abs_path) ;
9
9
use File::Spec::Functions qw( catfile) ;
10
+ use Data::UUID;
10
11
11
12
use constant {
12
13
PACKAGE_REVISION => " 1" , # BEWARE: always start with 1
@@ -90,6 +91,7 @@ sub build_app {
90
91
agent_vertag => $versiontag // ' ' ,
91
92
agent_fullname => $provider .' Agent' ,
92
93
agent_rootdir => $provider .' -Agent' ,
94
+ agent_localguid => Data::UUID-> new()-> create_str(),
93
95
agent_regpath => " Software\\ $provider -Agent" ,
94
96
service_name => lc ($provider ).' -agent' ,
95
97
msi_sharedir => ' contrib/windows/packaging' ,
@@ -399,14 +401,14 @@ sub _tree2xml {
399
401
$feat = $self -> _get_dir_feature($dir_id );
400
402
$result .= $ident ." " . qq[ <Component Id="$component_id " Guid="{$component_guid }" KeyPath="yes" Feature="$feat ">\n ] ;
401
403
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 ] ;
408
410
} else {
409
- $result .= $ident ." " . qq[ <CreateFolder />\n ] ;
411
+ $result .= $ident ." " . qq[ <CreateFolder />\n ] ;
410
412
}
411
413
if ($dir_id eq ' d_var' ) {
412
414
$result .= $ident ." " . qq[ <util:RemoveFolderEx On="uninstall" Property="UNINSTALL_VAR" />\n ] ;
@@ -418,23 +420,6 @@ sub _tree2xml {
418
420
$result .= $ident ." " . qq[ <RemoveFolder Id="rm.$dir_id " On="uninstall" />\n ] ;
419
421
}
420
422
$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
- }
438
423
}
439
424
440
425
if (scalar (@f ) > 0) {
0 commit comments