Server IP : 85.214.239.14 / Your IP : 3.144.16.40 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/self/root/usr/share/perl5/Debconf/FrontEnd/ |
Upload File : |
package Debconf::FrontEnd::Kde; use strict; use warnings; use IO::Handle; use Fcntl; use POSIX ":sys_wait_h"; use Debconf::Config; use base "Debconf::FrontEnd::Passthrough"; sub clear_fd_cloexec { my $fh = shift; my $flags; $flags = $fh->fcntl(F_GETFD, 0); $flags &= ~FD_CLOEXEC; $fh->fcntl(F_SETFD, $flags); } sub init { my $this = shift; $this->need_tty(0); pipe my $dc2hp_readfh, my $dc2hp_writefh; pipe my $hp2dc_readfh, my $hp2dc_writefh; my $helper_pid = fork(); if (!defined $helper_pid) { die "Unable to fork for execution of debconf-kde-helper: $!\n"; } elsif ($helper_pid == 0) { close $hp2dc_readfh; close $dc2hp_writefh; clear_fd_cloexec($dc2hp_readfh); clear_fd_cloexec($hp2dc_writefh); my $debug = Debconf::Config->debug; local $ENV{QT_LOGGING_RULES} = 'org.kde.debconf.debug=false' unless $debug && 'kde' =~ /$debug/; my $fds = sprintf("%d,%d", $dc2hp_readfh->fileno(), $hp2dc_writefh->fileno()); if (!exec("debconf-kde-helper", "--fifo-fds=$fds")) { print STDERR "Unable to execute debconf-kde-helper - is debconf-kde-helper installed?"; exit(10); } } close $dc2hp_readfh; close $hp2dc_writefh; $this->{kde_helper_pid} = $helper_pid; $this->{readfh} = $hp2dc_readfh; $this->{writefh} = $dc2hp_writefh; $this->SUPER::init(); my $timeout = 15; my $tag = $this->talk_with_timeout($timeout, "X_PING"); unless (defined $tag && $tag == 0) { close $hp2dc_readfh; close $dc2hp_writefh; if (waitpid($helper_pid, WNOHANG) == $helper_pid) { die "debconf-kde-helper terminated abnormally (exit status: " . WEXITSTATUS($?) . ")\n"; } elsif (kill(0, $helper_pid) == 1) { kill 9, $helper_pid; waitpid($helper_pid, 0); } if (defined $tag) { die "debconf-kde-helper failed to respond to ping. Response was $tag\n"; } else { die "debconf-kde-helper did not respond to ping in $timeout seconds\n"; } } } sub shutdown { my $this = shift; $this->SUPER::shutdown(); if (defined $this->{kde_helper_pid}) { waitpid $this->{kde_helper_pid}, 0; delete $this->{kde_helper_pid}; } } 1;