void-packages/srcpkgs/tilix/files/musl-hacks.patch

82 lines
2.9 KiB
Diff
Raw Normal View History

2019-01-04 15:56:34 +01:00
Upstream: No
Reason: Reverts/Breaks flatpak integration to fix musl build.
--- source/gx/tilix/terminal/terminal.d 2019-01-04 01:03:40.000000000 +0100
+++ source/gx/tilix/terminal/terminal.d 2019-01-04 23:38:51.915350033 +0100
@@ -2834,31 +2834,8 @@
if (isFlatpak()) {
Pty pty = vte.ptyNewSync(VtePtyFlags.DEFAULT, null);
- int pty_master = pty.getFd();
-
- import core.sys.posix.stdlib: grantpt, unlockpt, ptsname;
- import core.sys.posix.fcntl: open, O_RDWR;
-
- if (grantpt(pty_master) != 0) {
- warning("Failed granting access to slave pseudoterminal device");
- return false;
- }
-
- if (unlockpt(pty_master) != 0) {
- warning("Failed unlocking slave pseudoterminal device");
- return false;
- }
-
- int[] pty_slaves;
- pty_slaves ~= open(ptsname(pty_master), O_RDWR | O_CLOEXEC);
- if (pty_slaves[0] < 0) {
- warning("Failed opening slave pseudoterminal device");
- return false;
- }
-
- foreach(i; 0 .. 2) {
- pty_slaves ~= core.sys.posix.unistd.dup(pty_slaves[0]);
- }
+ import vtec.vte: vte_pty_child_setup;
+ vte_pty_child_setup(pty.getPtyStruct());
import VteVersion = vte.Version;
@@ -2892,7 +2869,7 @@
onTerminalChildExited(status, vte);
}
- bool result = sendHostCommand(workingDir, args, envv, pty_slaves, gpid, &exitedCallback);
+ bool result = sendHostCommand(workingDir, args, envv, gpid, &exitedCallback);
vte.setPty(pty);
@@ -2971,15 +2948,20 @@
}
}
- bool sendHostCommand(string workingDir, string[] args, string[] envv, int[] stdio_fds, out int gpid, HostCommandExitedCallback exitedCallback) {
+ bool sendHostCommand(string workingDir, string[] args, string[] envv, out int gpid, HostCommandExitedCallback exitedCallback) {
import gio.DBusConnection;
import gio.UnixFDList;
uint[] handles;
+ int[] fdList;
+
+ fdList ~= std.stdio.stdin.fileno;
+ fdList ~= std.stdio.stdout.fileno;
+ fdList ~= std.stdio.stderr.fileno;
UnixFDList outFdList;
UnixFDList inFdList = new UnixFDList();
- foreach(i, fd; stdio_fds) {
+ foreach(i, fd; fdList) {
handles ~= inFdList.append(fd);
if (handles[i] == -1) {
warning("Error creating fd list handles");
@@ -3071,9 +3053,7 @@
status = command_status;
}
- int[] stdio_fds = [0, output.writeEnd.fileno, 2] ~ extra_fds;
-
- if (!sendHostCommand("/", args, [], stdio_fds, gpid, &commandExited)) {
+ if (!sendHostCommand("/", args, [], gpid, &commandExited)) {
return null;
}