diff options
author | Joan Figueras | 2016-08-04 16:41:30 +0200 |
---|---|---|
committer | Joan Figueras | 2016-08-04 16:41:30 +0200 |
commit | 84435d646ce0452d2afcb2221c4964b87c72f0ec (patch) | |
tree | c417aa10d9af5f0e730d58986e70e2e74a22392a | |
download | aur-84435d646ce0452d2afcb2221c4964b87c72f0ec.tar.gz |
Initial release
-rw-r--r-- | .SRCINFO | 36 | ||||
-rw-r--r-- | 0001-xfreerdp-new-interface.patch | 304 | ||||
-rw-r--r-- | 0002-xfreerdp-new-interface.patch | 31 | ||||
-rw-r--r-- | PKGBUILD | 55 |
4 files changed, 426 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..df54b8a1093e --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,36 @@ +# Generated by mksrcinfo v8 +# Thu Aug 4 14:41:08 UTC 2016 +pkgbase = pacmanager-git + pkgdesc = Perl Auto Connector PAC Manager. GIT version with fixed FreeRDP interface. + pkgver = 4.5.5.7 + pkgrel = 1 + url = https://github.com/perseo22/pacmanager + arch = any + license = GPL3 + makedepends = git + depends = gconf-perl + depends = glade-perl + depends = openssh + depends = perl-crypt-blowfish + depends = perl-gnome2-vte + depends = perl-expect + depends = perl-crypt-rijndael + depends = perl-gtk2-ex-simple-list + depends = perl-io-stty + depends = perl-io-tty + depends = perl-net-arp + depends = perl-yaml + depends = perl-crypt-cbc + depends = perl-gtk2-unique + depends = perl-socket6 + depends = uuid + conflicts = pacmanager-bin + source = git://github.com/perseo22/pacmanager.git + source = 0001-xfreerdp-new-interface.patch + source = 0002-xfreerdp-new-interface.patch + md5sums = SKIP + md5sums = d7350164daad682396c3278d6c40bb9d + md5sums = cc4b26825efcf1d6c2aeea2b92531c40 + +pkgname = pacmanager-git + diff --git a/0001-xfreerdp-new-interface.patch b/0001-xfreerdp-new-interface.patch new file mode 100644 index 000000000000..3006d0b9fb0b --- /dev/null +++ b/0001-xfreerdp-new-interface.patch @@ -0,0 +1,304 @@ +From 71f3d8e03f91b9939661f57b9416337a69bf6f93 Mon Sep 17 00:00:00 2001 +From: Andrea Fagiani <andfagiani@gmail.com> +Date: Wed, 13 Apr 2016 10:20:47 +0200 +Subject: [PATCH] xfreerdp method: use new command line interface + +--- + lib/method/PACMethod_xfreerdp.pm | 136 +++++++++++++++++++++------------------ + lib/pac_conn | 3 + + 2 files changed, 75 insertions(+), 64 deletions(-) + +diff --git a/lib/method/PACMethod_xfreerdp.pm b/lib/method/PACMethod_xfreerdp.pm +index d064c5d..622c830 100644 +--- a/lib/method/PACMethod_xfreerdp.pm ++++ b/lib/method/PACMethod_xfreerdp.pm +@@ -98,6 +98,7 @@ sub update { + $$self{gui}{chNoTLS} -> set_active( $$options{noTLS} // 0 ); + $$self{gui}{chNoNLA} -> set_active( $$options{noNLA} // 0 ); + $$self{gui}{chFontSmooth} -> set_active( $$options{fontSmooth} // 0 ); ++ $$self{gui}{chNoGrabKbd} -> set_active( $$options{noGrabKbd} // 0 ); + $$self{gui}{entryStartupShell} -> set_text( $$options{startupshell} // '' ); + + # Destroy previuos widgets +@@ -140,6 +141,7 @@ sub get_cfg { + $options{noTLS} = $$self{gui}{chNoTLS} -> get_active; + $options{noNLA} = $$self{gui}{chNoNLA} -> get_active; + $options{fontSmooth} = $$self{gui}{chFontSmooth} -> get_active; ++ $options{noGrabKbd} = $$self{gui}{chNoGrabKbd} -> get_active; + $options{startupshell} = $$self{gui}{entryStartupShell} -> get_chars( 0, -1 ); + + foreach my $w ( @{ $$self{listRedir} } ) { +@@ -189,35 +191,37 @@ sub _parseCfgToOptions { + $hash{noTLS} = 0; + $hash{noNLA} = 0; + $hash{fontSmooth} = 0; ++ $hash{noGrabKbd} = 0; + $hash{startupshell} = ''; + +- my @opts = split( /\s+-/, $cmd_line ); ++ my @opts = split( /\s+\/?/, $cmd_line ); + foreach my $opt ( @opts ) { + next unless $opt ne ''; + $opt =~ s/\s+$//go; + +- $opt =~ /^a\s+(8|15|16|24)$/go and $hash{bpp} = $1; +- $opt eq '0' and $hash{attachToConsole} = 1; +- $opt eq 'z' and $hash{useCompression} = 1; +- if ( $opt =~ /^s\s+'(.+?)'$/go ) { $hash{startupshell} = $1; } +- if ( $opt eq 'f' ) { $hash{fullScreen} = 1; $hash{percent} = 0; $hash{wh} = 0; $hash{'embed'} = 0; } +- if ( $opt =~ /^g\s+(\d+)\%$/go ) { $hash{geometry} = $1; $hash{percent} = 1; $hash{wh} = 0; $hash{'embed'} = 0; } +- if ( $opt =~ /^g\s+(\d+)x(\d+)$/go ) { $hash{width} = $1; $hash{height} = $2; $hash{wh} = 1; $hash{percent} = 0; $hash{'embed'} = 0; } +- $opt =~ /^k\s+(.+)$/go and $hash{keyboardLocale} = $1; +- $opt =~ /^-plugin\s+rdpsnd$/go and $hash{redirSound} = 1; +- $opt =~ /^-plugin\s+cliprdr$/go and $hash{redirClipboard} = 1; +- $opt =~ /^d\s+(.+)$/go and $hash{domain} = $1; +- $opt =~ /^-ignore-certificate$/go and $hash{ignoreCert} = 1; +- $opt =~ /^-no-auth$/go and $hash{noAuth} = 1; +- $opt =~ /^-no-fastpath$/go and $hash{nofastPath} = 1; +- $opt =~ /^-rfx$/go and $hash{rfx} = 1; +- $opt =~ /^-nsc$/go and $hash{nsCodec} = 1; +- $opt =~ /^-no-rdp$/go and $hash{noRDP} = 1; +- $opt =~ /^-no-tls$/go and $hash{noTLS} = 1; +- $opt =~ /^-no-nla$/go and $hash{noNLA} = 1; +- $opt =~ /^x\s+80$/go and $hash{fontSmooth} = 1; ++ $opt =~ /^bpp:(8|15|16|24)$/go and $hash{bpp} = $1; ++ $opt eq 'admin' and $hash{attachToConsole} = 1; ++ $opt eq '+compression' and $hash{useCompression} = 1; ++ if ( $opt =~ /^shell\s+'(.+?)'$/go ) { $hash{startupshell} = $1; } ++ if ( $opt eq 'f' ) { $hash{fullScreen} = 1; $hash{percent} = 0; $hash{wh} = 0; $hash{'embed'} = 0; } ++ if ( $opt =~ /^size:(\d+)\%$/go ) { $hash{geometry} = $1; $hash{percent} = 1; $hash{wh} = 0; $hash{'embed'} = 0; } ++ if ( $opt =~ /^size:(\d+)x(\d+)$/go ) { $hash{width} = $1; $hash{height} = $2; $hash{wh} = 1; $hash{percent} = 0; $hash{'embed'} = 0; } ++ $opt =~ /^kbd:(.+)$/go and $hash{keyboardLocale} = $1; ++ $opt =~ /^sound:sys:alsa$/go and $hash{redirSound} = 1; ++ $opt =~ /^\+clipboard$/go and $hash{redirClipboard} = 1; ++ $opt =~ /^d:(.+)$/go and $hash{domain} = $1; ++ $opt =~ /^cert-ignore$/go and $hash{ignoreCert} = 1; ++ $opt =~ /^-authentication$/go and $hash{noAuth} = 1; ++ $opt =~ /^-fast-path$/go and $hash{nofastPath} = 1; ++ $opt =~ /^rfx$/go and $hash{rfx} = 1; ++ $opt =~ /^nsc$/go and $hash{nsCodec} = 1; ++ $opt =~ /^-sec-rdp$/go and $hash{noRDP} = 1; ++ $opt =~ /^-sec-tls$/go and $hash{noTLS} = 1; ++ $opt =~ /^-sec-nla$/go and $hash{noNLA} = 1; ++ $opt =~ /^\+fonts$/go and $hash{fontSmooth} = 1; ++ $opt =~ /^-grab-keyboard$/go and $hash{noGrabKbd} = 1; + +- while ( $opt =~ /^-data\s+disk:(.+):\"(.+)\"/go ) ++ while ( $opt =~ /^drive:(.+):(.+)/go ) + { + my %redir; + $redir{redirDiskShare} = $1; +@@ -234,35 +238,35 @@ sub _parseOptionsToCfg { + + my $txt = ''; + +- $txt .= ' -a ' . $$hash{bpp}; +- $txt .= ' -0' if $$hash{attachToConsole}; +- $txt .= ' -z' if $$hash{useCompression}; +- $txt .= ' -f' if $$hash{fullScreen}; ++ $txt .= ' /bpp:' . $$hash{bpp}; ++ $txt .= ' /admin' if $$hash{attachToConsole}; ++ $txt .= ' +compression' if $$hash{useCompression}; ++ $txt .= ' /f' if $$hash{fullScreen}; + if ( $$hash{percent} ) + { +- $txt .= ' -g ' . $$hash{geometry} . '%'; ++ $txt .= ' /size:' . $$hash{geometry} . '%'; + } + elsif ( $$hash{wh} ) + { +- $txt .= ' -g ' . $$hash{width} . 'x' . $$hash{height}; ++ $txt .= ' /size:' . $$hash{width} . 'x' . $$hash{height}; + } +- $txt .= ' -k ' . $$hash{keyboardLocale} if $$hash{keyboardLocale} ne ''; +- $txt .= " -s '$$hash{startupshell}'" if $$hash{startupshell} ne ''; +- $txt .= " -d $$hash{domain}" if $$hash{domain} ne ''; +- $txt .= ' --plugin cliprdr' if $$hash{redirClipboard}; +- $txt .= ' --plugin rdpsnd' if $$hash{redirSound}; +- +- $txt .= ' --ignore-certificate' if $$hash{ignoreCert}; +- $txt .= ' --no-auth' if $$hash{noAuth}; +- $txt .= ' --no-fastpath' if $$hash{nofastPath}; +- $txt .= ' --rfx' if $$hash{rfx}; +- $txt .= ' --nsc' if $$hash{nsCodec}; +- $txt .= ' --no-rdp' if $$hash{noRDP}; +- $txt .= ' --no-tls' if $$hash{noTLS}; +- $txt .= ' --no-nla' if $$hash{noNLA}; +- $txt .= ' -x 80' if $$hash{fontSmooth}; +- +- foreach my $redir ( @{ $$hash{redirDisk} } ) { $txt .= " --plugin rdpdr --data disk:$$redir{redirDiskShare}:\"$$redir{redirDiskPath}\" --"; } ++ $txt .= ' /kbd:' . $$hash{keyboardLocale} if $$hash{keyboardLocale} ne ''; ++ $txt .= ' /shell ' . $$hash{startupshell} if $$hash{startupshell} ne ''; ++ $txt .= ' /d:' . $$hash{domain} if $$hash{domain} ne ''; ++ $txt .= ' +clipboard' if $$hash{redirClipboard}; ++ $txt .= ' +sound:sys:alsa' if $$hash{redirSound}; ++ $txt .= ' /cert-ignore' if $$hash{ignoreCert}; ++ $txt .= ' -authentication' if $$hash{noAuth}; ++ $txt .= ' -fast-path' if $$hash{nofastPath}; ++ $txt .= ' /rfx' if $$hash{rfx}; ++ $txt .= ' /nsc' if $$hash{nsCodec}; ++ $txt .= ' -sec-rdp' if $$hash{noRDP}; ++ $txt .= ' -sec-tls' if $$hash{noTLS}; ++ $txt .= ' -sec-nla' if $$hash{noNLA}; ++ $txt .= ' +fonts' if $$hash{fontSmooth}; ++ $txt .= ' -grab-keyboard' if $$hash{noGrabKbd}; ++ ++ foreach my $redir ( @{ $$hash{redirDisk} } ) { $txt .= " /drive:$$redir{redirDiskShare}:$$redir{redirDiskPath}"; } + + return $txt; + } +@@ -288,7 +292,7 @@ sub _buildGUI { + $w{frBPP} = Gtk2::Frame -> new( 'BPP:' ); + $w{hbox1} -> pack_start( $w{frBPP}, 0, 1, 0 ); + $w{frBPP} -> set_shadow_type( 'GTK_SHADOW_NONE' ); +- $w{frBPP} -> set_tooltip_text( '[-a] : Sets the colour depth for the connection (8, 15, 16 or 24)' ); ++ $w{frBPP} -> set_tooltip_text( '[/bpp:] : Sets the colour depth for the connection (8, 15, 16 or 24)' ); + + $w{cbBPP} = Gtk2::ComboBox -> new_text; + $w{frBPP} -> add( $w{cbBPP} ); +@@ -296,53 +300,57 @@ sub _buildGUI { + + $w{chAttachToConsole} = Gtk2::CheckButton -> new_with_label( 'Attach to console' ); + $w{hbox1} -> pack_start( $w{chAttachToConsole}, 0, 1, 0 ); +- $w{chAttachToConsole} -> set_tooltip_text( '[-0] : Attach to console of server (requires Windows Server 2003 or newer)' ); ++ $w{chAttachToConsole} -> set_tooltip_text( '[/admin] : Attach to admin console of server (requires Windows Server 2003 or newer)' ); + + $w{chUseCompression} = Gtk2::CheckButton -> new_with_label( 'Compression' ); + $w{hbox1} -> pack_start( $w{chUseCompression}, 0, 1, 0 ); +- $w{chUseCompression} -> set_tooltip_text( '[-z] : Enable compression of the RDP datastream' ); ++ $w{chUseCompression} -> set_tooltip_text( '[+compression] : Enable compression of the RDP datastream' ); + + $w{chIgnoreCert} = Gtk2::CheckButton -> new_with_label( 'Ignore verification of logon certificate' ); + $w{hbox1} -> pack_start( $w{chIgnoreCert}, 0, 1, 0 ); +- $w{chIgnoreCert} -> set_tooltip_text( "--ignore-certificate: ignore verification of logon certificate" ); ++ $w{chIgnoreCert} -> set_tooltip_text( "/cert-ignore: ignore verification of logon certificate" ); + + $w{chFontSmooth} = Gtk2::CheckButton -> new_with_label( 'Font Smooth' ); + $w{hbox1} -> pack_start( $w{chFontSmooth}, 0, 1, 0 ); +- $w{chFontSmooth} -> set_tooltip_text( "-x 80: enable font smoothing" ); ++ $w{chFontSmooth} -> set_tooltip_text( "+fonts: enable font smoothing" ); ++ ++ $w{chNoGrabKbd} = Gtk2::CheckButton -> new_with_label( 'Do not grab keyboard' ); ++ $w{hbox1} -> pack_start( $w{chNoGrabKbd}, 0, 1, 0 ); ++ $w{chNoGrabKbd} -> set_tooltip_text( "-grab-keyboard: do not grab keyboard" ); + + $w{hbox3} = Gtk2::HBox -> new( 0, 5 ); + $w{vbox} -> pack_start( $w{hbox3}, 0, 1, 5 ); + + $w{chNoAuth} = Gtk2::CheckButton -> new_with_label( 'No Authentication' ); + $w{hbox3} -> pack_start( $w{chNoAuth}, 0, 1, 0 ); +- $w{chNoAuth} -> set_tooltip_text( "--no-auth: disable authentication" ); ++ $w{chNoAuth} -> set_tooltip_text( "-authentication: disable authentication" ); + + $w{chNoFastPath} = Gtk2::CheckButton -> new_with_label( 'No Fast Path' ); + $w{hbox3} -> pack_start( $w{chNoFastPath}, 0, 1, 0 ); +- $w{chNoFastPath} -> set_tooltip_text( "--no-fastpath: disable fast-path" ); ++ $w{chNoFastPath} -> set_tooltip_text( "-fast-path: disable fast-path" ); + + $w{chRFX} = Gtk2::CheckButton -> new_with_label( 'Enable RemoteFX' ); + $w{hbox3} -> pack_start( $w{chRFX}, 0, 1, 0 ); +- $w{chRFX} -> set_tooltip_text( "--rfx: enable RemoteFX" ); ++ $w{chRFX} -> set_tooltip_text( "/rfx: enable RemoteFX" ); + + $w{chNSCodec} = Gtk2::CheckButton -> new_with_label( 'Enable NSCodec' ); + $w{hbox3} -> pack_start( $w{chNSCodec}, 0, 1, 0 ); +- $w{chNSCodec} -> set_tooltip_text( "--nsc: enable NSCodec (experimental)" ); ++ $w{chNSCodec} -> set_tooltip_text( "/nsc: enable NSCodec (experimental)" ); + + $w{hbox4} = Gtk2::HBox -> new( 0, 5 ); + $w{vbox} -> pack_start( $w{hbox4}, 0, 1, 5 ); + + $w{chNoRDP} = Gtk2::CheckButton -> new_with_label( 'Disable RDP encryption' ); + $w{hbox4} -> pack_start( $w{chNoRDP}, 0, 1, 0 ); +- $w{chNoRDP} -> set_tooltip_text( "--no-rdp: disable Standard RDP encryption" ); ++ $w{chNoRDP} -> set_tooltip_text( "-sec-rdp: disable Standard RDP encryption" ); + + $w{chNoTLS} = Gtk2::CheckButton -> new_with_label( 'Disable TLS encryption' ); + $w{hbox4} -> pack_start( $w{chNoTLS}, 0, 1, 0 ); +- $w{chNoTLS} -> set_tooltip_text( "--no-tls: disable TLS encryption" ); ++ $w{chNoTLS} -> set_tooltip_text( "-sec-tls: disable TLS encryption" ); + + $w{chNoNLA} = Gtk2::CheckButton -> new_with_label( 'Disable Network Level Authentication' ); + $w{hbox4} -> pack_start( $w{chNoNLA}, 0, 1, 0 ); +- $w{chNoNLA} -> set_tooltip_text( "--no-nla: disable network level authentication" ); ++ $w{chNoNLA} -> set_tooltip_text( "-sec-nla: disable network level authentication" ); + + $w{hboxss} = Gtk2::HBox -> new( 0, 5 ); + $w{vbox} -> pack_start( $w{hboxss}, 0, 1, 5 ); +@@ -351,7 +359,7 @@ sub _buildGUI { + $w{hboxss} -> pack_start( $w{lblStartupShell}, 0, 1, 0 ); + + $w{entryStartupShell} = Gtk2::Entry -> new; +- $w{entryStartupShell} -> set_tooltip_text( "[-s 'startupshell command'] : start given startupshell/command instead of explorer" ); ++ $w{entryStartupShell} -> set_tooltip_text( "[/shell 'startupshell command'] : start given startupshell/command instead of explorer" ); + $w{hboxss} -> pack_start( $w{entryStartupShell}, 1, 1, 5 ); + + $w{hbox2} = Gtk2::HBox -> new( 0, 5 ); +@@ -359,7 +367,7 @@ sub _buildGUI { + + $w{frGeometry} = Gtk2::Frame -> new( ' RDP Window size: ' ); + $w{hbox2} -> pack_start( $w{frGeometry}, 1, 1, 0 ); +- $w{frGeometry} -> set_tooltip_text( '[-g] : Amount of screen to use' ); ++ $w{frGeometry} -> set_tooltip_text( '[/size] : Amount of screen to use' ); + + $w{hboxsize} = Gtk2::VBox -> new( 0, 5 ); + $w{frGeometry} -> add( $w{hboxsize} ); +@@ -369,7 +377,7 @@ sub _buildGUI { + + $w{chFullscreen} = Gtk2::RadioButton -> new_with_label( undef, 'Fullscreen' ); + $w{hboxfsebpc} -> pack_start( $w{chFullscreen}, 1, 1, 0 ); +- $w{chFullscreen} -> set_tooltip_text( '[-f] : Enable fullscreen mode (toggled at any time using Ctrl-Alt-Enter)' ); ++ $w{chFullscreen} -> set_tooltip_text( '[/f] : Enable fullscreen mode (toggled at any time using Ctrl-Alt-Enter)' ); + + $w{chEmbed} = Gtk2::RadioButton -> new_with_label( $w{chFullscreen}, 'Embed in TAB(*)' ); + $w{hboxfsebpc} -> pack_start( $w{chEmbed}, 1, 1, 0 ); +@@ -381,7 +389,7 @@ sub _buildGUI { + $w{hboxfsebpc} -> pack_start( $w{hbox69}, 1, 1, 0 ); + + $w{chWidthHeight} = Gtk2::RadioButton -> new_with_label( $w{chFullscreen}, 'Width x Height:' ); +- $w{chWidthHeight} -> set_tooltip_text( '[-g WIDTHxHEIGHT] : Define a fixed WIDTH x HEIGHT geometry window' ); ++ $w{chWidthHeight} -> set_tooltip_text( '[/size:WIDTHxHEIGHT] : Define a fixed WIDTH x HEIGHT geometry window' ); + $w{hbox69} -> pack_start( $w{chWidthHeight}, 0, 1, 0 ); + + $w{hboxWidthHeight} = Gtk2::HBox -> new( 0, 5 ); +@@ -397,7 +405,7 @@ sub _buildGUI { + $w{hboxsize} -> pack_start( $w{hboxPercentage}, 0, 1, 0 ); + + $w{chPercentage} = Gtk2::RadioButton -> new_with_label( $w{chFullscreen}, 'Screen percentage:' ); +- $w{chPercentage} -> set_tooltip_text( '[-g percentage%] : Amount of screen to use' ); ++ $w{chPercentage} -> set_tooltip_text( '[/size:percentage%] : Amount of screen to use' ); + $w{chPercentage} -> set_active( 1 ); + $w{hboxPercentage} -> pack_start( $w{chPercentage}, 0, 1, 0 ); + +@@ -406,7 +414,7 @@ sub _buildGUI { + + $w{frKeyboard} = Gtk2::Frame -> new( 'Keyboard layout:' ); + $w{hbox2} -> pack_start( $w{frKeyboard}, 0, 1, 0 ); +- $w{frKeyboard} -> set_tooltip_text( '[-k] : Keyboard layout' ); ++ $w{frKeyboard} -> set_tooltip_text( '[/kbd] : Keyboard layout' ); + + $w{entryKeyboard} = Gtk2::Entry -> new; + $w{frKeyboard} -> add( $w{entryKeyboard} ); +@@ -426,7 +434,7 @@ sub _buildGUI { + + $w{frameRedirDisk} = Gtk2::Frame -> new( ' Disk redirects: ' ); + $w{vbox} -> pack_start( $w{frameRedirDisk}, 1, 1, 0 ); +- $w{frameRedirDisk} -> set_tooltip_text( '[-r disk:<8_chars_sharename>=<path>] : Redirects a <path> to the share \\tsclient\<8_chars_sharename> on the server' ); ++ $w{frameRedirDisk} -> set_tooltip_text( '[/drive:<8_chars_sharename>:<path>] : Redirects a <path> to the share \\tsclient\<8_chars_sharename> on the server' ); + + $w{vbox_enesimo} = Gtk2::VBox -> new( 0, 0); + $w{frameRedirDisk} -> add( $w{vbox_enesimo}, ); +diff --git a/lib/pac_conn b/lib/pac_conn +index 3182976..01fd0cc 100755 +--- a/lib/pac_conn ++++ b/lib/pac_conn +@@ -934,6 +934,9 @@ if ( defined $METHOD ) { + } elsif ( $METHOD eq 'rdesktop' ) { + $connection_cmd = "$METHOD $CONNECT_OPTS" . ( $MANUAL ? '' : " -u $USER -p -" ) . " -T \"$TITLE\" $IP:$PORT"; + $connection_txt = "$METHOD $CONNECT_OPTS" . ( $MANUAL ? '' : " -u $USER -p -" ) . " -T \"$TITLE\" $IP:$PORT"; ++ } elsif ( $METHOD =~ /^.*freerdp$/ ) { ++ $connection_cmd = "$METHOD $CONNECT_OPTS" . ( $MANUAL ? '' : " /u:$USER" ) . " /t:\"$TITLE\" /v:$IP:$PORT"; ++ $connection_txt = "$METHOD $CONNECT_OPTS" . ( $MANUAL ? '' : " /u:$USER" ) . " /t:\"$TITLE\" /v:$IP:$PORT"; + } else { + $connection_cmd = "$METHOD $CONNECT_OPTS" . ( $MANUAL ? '' : " -u $USER" ) . " $IP:$PORT -T \"$TITLE\""; + $connection_txt = "$METHOD $CONNECT_OPTS" . ( $MANUAL ? '' : " -u $USER" ) . " $IP:$PORT -T \"$TITLE\""; diff --git a/0002-xfreerdp-new-interface.patch b/0002-xfreerdp-new-interface.patch new file mode 100644 index 000000000000..baac9d3472fa --- /dev/null +++ b/0002-xfreerdp-new-interface.patch @@ -0,0 +1,31 @@ +From 63d5a65a267c75b266ac41ff583659ed86c4b509 Mon Sep 17 00:00:00 2001 +From: Andrea Fagiani <andfagiani@gmail.com> +Date: Mon, 18 Apr 2016 16:48:11 +0200 +Subject: [PATCH] xfreerdp method: fix syntax for drive redirection + +--- + lib/method/PACMethod_xfreerdp.pm | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/method/PACMethod_xfreerdp.pm b/lib/method/PACMethod_xfreerdp.pm +index 622c830..02adf90 100644 +--- a/lib/method/PACMethod_xfreerdp.pm ++++ b/lib/method/PACMethod_xfreerdp.pm +@@ -221,7 +221,7 @@ sub _parseCfgToOptions { + $opt =~ /^\+fonts$/go and $hash{fontSmooth} = 1; + $opt =~ /^-grab-keyboard$/go and $hash{noGrabKbd} = 1; + +- while ( $opt =~ /^drive:(.+):(.+)/go ) ++ while ( $opt =~ /^drive:(.+),(.+)/go ) + { + my %redir; + $redir{redirDiskShare} = $1; +@@ -266,7 +266,7 @@ sub _parseOptionsToCfg { + $txt .= ' +fonts' if $$hash{fontSmooth}; + $txt .= ' -grab-keyboard' if $$hash{noGrabKbd}; + +- foreach my $redir ( @{ $$hash{redirDisk} } ) { $txt .= " /drive:$$redir{redirDiskShare}:$$redir{redirDiskPath}"; } ++ foreach my $redir ( @{ $$hash{redirDisk} } ) { $txt .= " /drive:$$redir{redirDiskShare},$$redir{redirDiskPath}"; } + + return $txt; + } diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..52549f2d234b --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,55 @@ +# Maintainer: Joan Figueras <ffigue at gmail dot com> +# Contributor: Luca Contini <jkd[dot]luca[at]gmail[dot]com> + +pkgname=pacmanager-git +_pkgname=${pkgname%-git} +pkgver=4.5.5.7 +pkgrel=1 +arch=('any') +license=('GPL3') +pkgdesc="Perl Auto Connector PAC Manager. GIT version with fixed FreeRDP interface." +url="https://github.com/perseo22/pacmanager" +depends=('gconf-perl' 'glade-perl' 'openssh' 'perl-crypt-blowfish' 'perl-gnome2-vte' 'perl-expect' 'perl-crypt-rijndael' 'perl-gtk2-ex-simple-list' 'perl-io-stty' 'perl-io-tty' 'perl-net-arp' 'perl-yaml' 'perl-crypt-cbc' 'perl-gtk2-unique' 'perl-socket6' 'uuid') +makedepends=('git') +conflicts=(pacmanager-bin) +source=("git://github.com/perseo22/pacmanager.git" + "0001-xfreerdp-new-interface.patch" + "0002-xfreerdp-new-interface.patch") +md5sums=('SKIP' + 'd7350164daad682396c3278d6c40bb9d' + 'cc4b26825efcf1d6c2aeea2b92531c40') + +prepare() { + cd ${srcdir}/${_pkgname} + # Apply patches for new FreeRDP interface + patch -Np1 -i $srcdir/0001-xfreerdp-new-interface.patch + patch -Np1 -i $srcdir/0002-xfreerdp-new-interface.patch +} + +build() { + cd ${srcdir}/${_pkgname} + # To ensure Vte is not a problem, we will compile it! + # Reference: https://sourceforge.net/p/pacmanager/bugs/233/ + wget http://search.cpan.org/CPAN/authors/id/X/XA/XAOC/Gnome2-Vte-0.11.tar.gz + tar xfz Gnome2-Vte-0.11.tar.gz + cd Gnome2-Vte-0.11 + perl Makefile.PL + make +} + +package() { + cd ${srcdir}/${_pkgname} + mkdir -p $pkgdir/{opt/pac,usr/share/pixmaps,usr/share/man/man1,usr/share/applications,usr/bin,etc/bash_completion.d} + cp -rp res utils lib $pkgdir/opt/pac/ + cp -p res/pac_bash_completion $pkgdir/etc/bash_completion.d + cp res/pac64x64.png $pkgdir/usr/share/pixmaps/pac.png + ln -sf /opt/pac/pac $pkgdir/usr/bin/pac + cp res/pac.desktop $pkgdir/usr/share/applications/ + gzip -c res/pac.1 > $pkgdir/usr/share/man/man1/pac.1.gz + cp -p pac $pkgdir/opt/pac/pac + chmod 755 $pkgdir/opt/pac/pac + # Copy patched Vte.so + cp -p Gnome2-Vte-0.11/blib/arch/auto/Gnome2/Vte/Vte.so $pkgdir/opt/pac/lib/ex/vte64/auto/Gnome2/Vte/ +} + + |