about summary refs log tree commit diff
path: root/pkgs/aszlig
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/aszlig')
-rw-r--r--pkgs/aszlig/default.nix2
-rw-r--r--pkgs/aszlig/psi/config.patch278
-rw-r--r--pkgs/aszlig/psi/darkstyle.patch32
-rw-r--r--pkgs/aszlig/psi/default.nix72
-rw-r--r--pkgs/aszlig/psi/disable-xep-0232.patch50
-rw-r--r--pkgs/aszlig/santander/default.nix98
-rw-r--r--pkgs/aszlig/santander/pipelight.patch13
-rw-r--r--pkgs/aszlig/santander/winscard.patch11
-rw-r--r--pkgs/aszlig/vim/default.nix33
9 files changed, 464 insertions, 125 deletions
diff --git a/pkgs/aszlig/default.nix b/pkgs/aszlig/default.nix
index 70c6ff9d..d1dbcb73 100644
--- a/pkgs/aszlig/default.nix
+++ b/pkgs/aszlig/default.nix
@@ -8,8 +8,8 @@
   grandpa = callPackage ./grandpa { };
   librxtx_java = callPackage ./librxtx-java { };
   lockdev = callPackage ./lockdev { };
+  psi = callPackage ./psi { };
   pvolctrl = callPackage ./pvolctrl { };
-  santander = callPackage_i686 ./santander { };
   vim = callPackage ./vim { vim = vim_configurable; };
   xournal = callPackage ./xournal { inherit xournal; };
 }
diff --git a/pkgs/aszlig/psi/config.patch b/pkgs/aszlig/psi/config.patch
new file mode 100644
index 00000000..a9462102
--- /dev/null
+++ b/pkgs/aszlig/psi/config.patch
@@ -0,0 +1,278 @@
+diff --git a/options/default.xml b/options/default.xml
+index 90f019b3..ef33997b 100644
+--- a/options/default.xml
++++ b/options/default.xml
+@@ -19,7 +19,7 @@
+             <domain comment="Always use the same domain to register with. Leave this empty to allow the user to choose his server." type="QString"/>
+         </account>
+         <auto-update comment="Auto updater">
+-            <check-on-startup comment="Check for available updates on startup" type="bool">true</check-on-startup>
++            <check-on-startup comment="Check for available updates on startup" type="bool">false</check-on-startup>
+         </auto-update>
+         <enable-multicast comment="Enable multicasting messages to multiple recipients" type="bool">false</enable-multicast>
+         <html comment="Hypertext markup options">
+@@ -86,7 +86,7 @@
+                 <security comment="Options related to the seciruty UI">
+                     <show comment="Show the security UI" type="bool">true</show>
+                 </security>
+-                <single comment="Limit the client to a single account" type="bool">false</single>
++                <single comment="Limit the client to a single account" type="bool">true</single>
+             </account>
+             <message comment="Message options">
+                 <enabled comment="Enable message (i.e. non-chat) functionality" type="bool">true</enabled>
+@@ -128,7 +128,7 @@
+                 <default-jid-mode comment="Default jid mode: barejid | auto" type="QString">auto</default-jid-mode>
+                 <default-jid-mode-ignorelist comment="Default autojid mode ignore list: jid1,jid2,..." type="QString"></default-jid-mode-ignorelist>
+                 <history comment="Message history options">
+-                    <preload-history-size comment="The number of preloaded messages" type="int">5</preload-history-size>
++                    <preload-history-size comment="The number of preloaded messages" type="int">10</preload-history-size>
+                 </history>
+             </chat>
+             <save>
+@@ -146,8 +146,8 @@
+                 <auto-delete-unlisted comment="Automatically remove an unlisted contact from the contact list if it does not have any pending messages anymore" type="bool">false</auto-delete-unlisted>
+                 <opacity comment="Opacity percentage of the contact list" type="int">100</opacity>
+                 <status-messages comment="Status messages for contacts">
+-                    <single-line comment="Show status messages on the same line as the nickname" type="bool">true</single-line>
+-                    <show comment="Show status messages" type="bool">false</show>
++                    <single-line comment="Show status messages on the same line as the nickname" type="bool">false</single-line>
++                    <show comment="Show status messages" type="bool">true</show>
+                 </status-messages>
+                 <tooltip comment="Display options for the contact list tooltips">
+                     <css type="QString"></css>
+@@ -208,7 +208,7 @@ QLineEdit#le_status_text {
+                 <always-on-top type="bool">false</always-on-top>
+                 <automatically-resize-roster type="bool">false</automatically-resize-roster>
+                 <grow-roster-upwards type="bool">true</grow-roster-upwards>
+-                <disable-scrollbar type="bool">true</disable-scrollbar>
++                <disable-scrollbar type="bool">false</disable-scrollbar>
+                 <contact-sort-style type="QString">status</contact-sort-style>
+                 <disable-service-discovery type="bool">false</disable-service-discovery>
+                 <enable-groups type="bool">true</enable-groups>
+@@ -223,7 +223,7 @@ QLineEdit#le_status_text {
+                     <agent-contacts type="bool">true</agent-contacts>
+                     <away-contacts type="bool">true</away-contacts>
+                     <hidden-contacts-group type="bool">true</hidden-contacts-group>
+-                    <offline-contacts type="bool">true</offline-contacts>
++                    <offline-contacts type="bool">false</offline-contacts>
+                     <self-contact type="bool">true</self-contact>
+                 </show>
+                 <show-group-counts type="bool">true</show-group-counts>
+@@ -248,7 +248,7 @@ QLineEdit#le_status_text {
+                 <use-left-click type="bool">false</use-left-click>
+                 <use-single-click type="bool">false</use-single-click>
+                 <use-status-change-animation type="bool">true</use-status-change-animation>
+-                <aio-left-roster type="bool">false</aio-left-roster>
++                <aio-left-roster type="bool">true</aio-left-roster>
+                 <use-transport-icons type="bool">true</use-transport-icons>
+                 <saved-window-geometry type="QRect" >
+                     <x>64</x>
+@@ -285,7 +285,7 @@ QLineEdit#le_status_text {
+                     <custom-pgp-key comment="Show the 'assign pgp key' menu" type="bool">true</custom-pgp-key>
+                 </contact>
+                 <main comment="Options for the main menu">
+-                    <change-profile comment="Show the 'change profile' menu" type="bool">true</change-profile>
++                    <change-profile comment="Show the 'change profile' menu" type="bool">false</change-profile>
+                 </main>
+                 <status comment="Options for the status menu">
+                     <chat comment="Enable free for chat" type="bool">true</chat>
+@@ -335,7 +335,7 @@ QLineEdit#le_status_text {
+             <disable-send-button type="bool">true</disable-send-button>
+             <systemtray comment="Options related to the system tray">
+                 <use-old comment="Use the old system tray code (deprecated)" type="bool">false</use-old>
+-                <enable type="bool">true</enable>
++                <enable type="bool">false</enable>
+                 <use-double-click type="bool">false</use-double-click>
+             </systemtray>
+             <flash-windows comment="Allow windows to flash upon activity" type="bool">true</flash-windows>
+@@ -353,8 +353,8 @@ QLineEdit#le_status_text {
+                     <contactlist>
+                         <background type="QColor"/>
+                         <grouping>
+-                            <header-background type="QColor">#f0f0f0</header-background>
+-                            <header-foreground type="QColor">#5a5a5a</header-foreground>
++                            <header-background type="QColor">#00007f</header-background>
++                            <header-foreground type="QColor">#969696</header-foreground>
+                         </grouping>
+                         <profile>
+                             <header-background type="QColor">#969696</header-background>
+@@ -364,16 +364,16 @@ QLineEdit#le_status_text {
+                             <away type="QColor">#004bb4</away>
+                             <do-not-disturb type="QColor">#7e0000</do-not-disturb>
+                             <offline type="QColor">#646464</offline>
+-                            <online type="QColor"/>
++                            <online type="QColor">#ffffff</online>
+                         </status>
+-                        <status-change-animation1 type="QColor">#000000</status-change-animation1>
++                        <status-change-animation1 type="QColor">#6f0000</status-change-animation1>
+                         <status-change-animation2 type="QColor">#969696</status-change-animation2>
+                         <status-messages type="QColor">#808080</status-messages>
+                     </contactlist>
+                     <tooltip>
+                         <enable comment="Enable tooltip coloring feature" type="bool">true</enable>
+                         <background comment="Tooltip background color" type="QColor">#e9ecc7</background>
+-                        <text comment="Tooltip text color" type="QColor">#000000</text>
++                        <text comment="Tooltip text color" type="QColor">#ffffff</text>
+                     </tooltip>
+                     <muc>
+                         <nick-colors type="QStringList" >
+@@ -384,21 +384,21 @@ QLineEdit#le_status_text {
+                             <item>Red</item>
+                         </nick-colors>
+                         <role-moderator type="QColor">#910000</role-moderator>
+-                        <role-participant type="QColor">#00008a</role-participant>
++                        <role-participant type="QColor">#00aaff</role-participant>
+                         <role-visitor type="QColor">#336600</role-visitor>
+-                        <role-norole type="QColor">black</role-norole>
++                        <role-norole type="QColor">#cccccc</role-norole>
+                     </muc>
+                     <messages comment="Message coloring.">
+-                        <received type="QColor" comment="Color used to indicate received messages.">#0000ff</received>
++                        <received type="QColor" comment="Color used to indicate received messages.">#0055ff</received>
+                         <sent type="QColor" comment="Color used to indicate sent messages.">#ff0000</sent>
+                         <informational type="QColor" comment="Color used to indicate informational (status change, spooled) messages.">#008000</informational>
+                         <usertext type="QColor" comment="Color used to indicate additional text for informational messages.">#606060</usertext>
+                         <highlighting type="QColor">#FF0000</highlighting>
+-                        <link type="QColor">#000080</link>
++                        <link type="QColor">#55ffff</link>
+                         <link-visited type="QColor">#400080</link-visited>
+                     </messages>
+                     <chat>
+-                        <composing-color type="QColor">darkGreen</composing-color>
++                        <composing-color type="QColor">#cccccc</composing-color>
+                         <unread-message-color type="QColor">red</unread-message-color>
+                         <inactive-color type="QColor">grey</inactive-color>
+                     </chat>
+@@ -411,10 +411,10 @@ QLineEdit#le_status_text {
+                     <use-slim-group-headings type="bool">false</use-slim-group-headings>
+                 </contactlist>
+                 <font>
+-                    <chat type="QString">Sans Serif,11,-1,5,50,0,0,0,0,0</chat>
+-                    <contactlist type="QString">Sans Serif,11,-1,5,50,0,0,0,0,0</contactlist>
+-                    <message type="QString">Sans Serif,11,-1,5,50,0,0,0,0,0</message>
+-                    <passive-popup type="QString">Sans Serif,9,-1,5,50,0,0,0,0,0</passive-popup>
++                    <chat type="QString">Monospace,12,-1,5,50,0,0,0,0,0</chat>
++                    <contactlist type="QString">Monospace,12,-1,5,50,0,0,0,0,0</contactlist>
++                    <message type="QString">Monospace,12,-1,5,50,0,0,0,0,0</message>
++                    <passive-popup type="QString">Monospace,12,-1,5,50,0,0,0,0,0</passive-popup>
+                 </font>
+                 <css type="QString" />
+             </look>
+@@ -462,20 +462,20 @@ QLineEdit#le_status_text {
+                     <suppress-while-away type="bool">false</suppress-while-away>
+                 </popup-dialogs>
+                 <sounds>
+-                    <chat-message type="QString">sound/chat2.wav</chat-message>
+-                    <groupchat-message type="QString">sound/chat2.wav</groupchat-message>
+-                    <completed-file-transfer type="QString">sound/ft_complete.wav</completed-file-transfer>
+-                    <contact-offline type="QString">sound/offline.wav</contact-offline>
+-                    <contact-online type="QString">sound/online.wav</contact-online>
+-                    <enable type="bool">true</enable>
+-                    <incoming-file-transfer type="QString">sound/ft_incoming.wav</incoming-file-transfer>
+-                    <incoming-headline type="QString">sound/chat2.wav</incoming-headline>
+-                    <incoming-message type="QString">sound/chat2.wav</incoming-message>
+-                    <new-chat type="QString">sound/chat1.wav</new-chat>
++                    <chat-message type="QString"/>
++                    <groupchat-message type="QString"/>
++                    <completed-file-transfer type="QString"/>
++                    <contact-offline type="QString"/>
++                    <contact-online type="QString"/>
++                    <enable type="bool">false</enable>
++                    <incoming-file-transfer type="QString"/>
++                    <incoming-headline type="QString"/>
++                    <incoming-message type="QString"/>
++                    <new-chat type="QString"/>
+                     <notify-every-muc-message type="bool">false</notify-every-muc-message>
+-                    <outgoing-chat type="QString">sound/send.wav</outgoing-chat>
+-                    <silent-while-away type="bool">false</silent-while-away>
+-                    <system-message type="QString">sound/chat2.wav</system-message>
++                    <outgoing-chat type="QString"/>
++                    <silent-while-away type="bool">true</silent-while-away>
++                    <system-message type="QString"/>
+                     <unix-sound-player type="QString"/>
+                 </sounds>
+                 <successful-subscription type="bool">false</successful-subscription>
+@@ -494,7 +494,7 @@ QLineEdit#le_status_text {
+                 <mouse-middle-button type="QString">close</mouse-middle-button> <!-- hide|close|detach -->
+                 <mouse-doubleclick-action type="QString">detach</mouse-doubleclick-action>
+                 <size type="QString"></size> <!-- will be invalid when converted to QSize so we can detect first load -->
+-                <grouping type="QString" comment="A ':' seperated list of groups of kinds of tabs to keep in the same tabset. 'C' for chat and 'M' for mucs. 'A' means using all in one window patch.">CM</grouping>
++                <grouping type="QString" comment="A ':' seperated list of groups of kinds of tabs to keep in the same tabset. 'C' for chat and 'M' for mucs. 'A' means using all in one window patch.">ACM</grouping>
+                 <group-state comment="Saved state data of the tabsets defined by options.ui.tabs.grouping"/>
+                 <tab-singles type="QString" comment="Tab types that would have been untabbed are given their own tabset. 'C' for chat and 'M' for mucs"/>
+                 <use-tab-shortcuts type="bool">true</use-tab-shortcuts>
+@@ -627,7 +627,7 @@ QLineEdit#le_status_text {
+             <last-activity type="bool">true</last-activity>
+         </service-discovery>
+         <status>
+-            <ask-for-message-on-offline type="bool">false</ask-for-message-on-offline>
++            <ask-for-message-on-offline type="bool">true</ask-for-message-on-offline>
+             <ask-for-message-on-online type="bool">false</ask-for-message-on-online>
+             <ask-for-message-on-chat type="bool">true</ask-for-message-on-chat>
+             <ask-for-message-on-away type="bool">true</ask-for-message-on-away>
+@@ -650,7 +650,20 @@ QLineEdit#le_status_text {
+                 <by-template type="bool">true</by-template>
+                 <by-status type="bool">false</by-status>
+             </last-overwrite>
+-            <presets/>
++            <presets>
++                <m0>
++                    <key type="QString">zone</key>
++                    <force-priority type="bool">false</force-priority>
++                    <status type="QString">dnd</status>
++                    <message type="QString">In The Zone[TM]</message>
++                </m0>
++                <m1>
++                    <key type="QString">sleep</key>
++                    <force-priority type="bool">false</force-priority>
++                    <status type="QString">offline</status>
++                    <message type="QString">Sleeping the hell out of here.</message>
++                </m1>
++            </presets>
+             <presets-in-status-menus type="QString" comment="'yes', 'no' or 'submenu'">submenu</presets-in-status-menus>
+             <show-only-online-offline type="bool">false</show-only-online-offline>
+             <show-choose type="bool">true</show-choose>
+@@ -690,5 +703,9 @@ QLineEdit#le_status_text {
+         </keychain>
+     </options>
+     <accounts comment="Account definitions and options"/>
+-    <plugins comment="Plugin options"/>
++    <plugins comment="Plugin options">
++        <auto-load>
++            <omemo type="bool">true</omemo>
++        </auto-load>
++    </plugins>
+ </psi>
+diff --git a/src/psi_profiles.cpp b/src/psi_profiles.cpp
+index 77fbd169..4b4bca11 100644
+--- a/src/psi_profiles.cpp
++++ b/src/psi_profiles.cpp
+@@ -79,8 +79,8 @@ void UserAccount::reset()
+     req_mutual_auth = false;
+     legacy_ssl_probe = false;
+     security_level = QCA::SL_None;
+-    ssl = SSL_Auto;
+-    jid = "";
++    ssl = SSL_Yes;
++    jid = "@jid@";
+     pass = "";
+     scramSaltedHashPassword = "";
+     opt_pass = false;
+@@ -90,7 +90,7 @@ void UserAccount::reset()
+     opt_automatic_resource = true;
+     priority_dep_on_status = true;
+     ignore_global_actions = false;
+-    resource = ApplicationInfo::name();
++    resource = "@resource@";
+     priority = 55;
+     ibbOnly = false;
+     opt_keepAlive = true;
+@@ -133,7 +133,7 @@ void UserAccount::reset()
+               << "stun.voipbuster.com"
+               << "stun.voxgratia.org";
+ 
+-    stunHost = stunHosts[0];
++    stunHost = "";
+ 
+     keybind.clear();
+ 
diff --git a/pkgs/aszlig/psi/darkstyle.patch b/pkgs/aszlig/psi/darkstyle.patch
new file mode 100644
index 00000000..45c5067f
--- /dev/null
+++ b/pkgs/aszlig/psi/darkstyle.patch
@@ -0,0 +1,32 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 7118ea75..c6f58e35 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -237,6 +237,7 @@ endif()
+ set(RESOURCES
+     ${PROJECT_SOURCE_DIR}/psi.qrc
+     ${PROJECT_SOURCE_DIR}/iconsets.qrc
++    ${QDARKSTYLE_PATH}/qdarkstyle/style.qrc
+ )
+ qt5_add_resources(QRC_SOURCES ${RESOURCES})
+ 
+diff --git a/src/main.cpp b/src/main.cpp
+index b45fbab0..1cbead4a 100644
+--- a/src/main.cpp
++++ b/src/main.cpp
+@@ -532,6 +532,15 @@ PSI_EXPORT_FUNC int main(int argc, char *argv[])
+     QCoreApplication::addLibraryPath(appPath);
+ # endif
+     PsiApplication app(argc, argv);
++
++    QFile darkstyle(":qdarkstyle/style.qss");
++    if (!darkstyle.exists()) {
++        qWarning() << "Unable to set dark style";
++    } else {
++        darkstyle.open(QFile::ReadOnly | QFile::Text);
++        QTextStream ts(&darkstyle);
++        app.setStyleSheet(ts.readAll());
++    }
+     QApplication::setApplicationName(ApplicationInfo::name());
+     QApplication::addLibraryPath(ApplicationInfo::resourcesDir());
+     QApplication::addLibraryPath(ApplicationInfo::homeDir(ApplicationInfo::DataLocation));
diff --git a/pkgs/aszlig/psi/default.nix b/pkgs/aszlig/psi/default.nix
new file mode 100644
index 00000000..d0e24c05
--- /dev/null
+++ b/pkgs/aszlig/psi/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, lib, fetchFromGitHub, cmake, makeWrapper
+, hunspell, libgcrypt, libgpgerror, libidn, libotr, libsForQt5
+, libsignal-protocol-c, libtidy, qt5
+
+, substituteAll
+
+, jid ? "something@example.org"
+, resource ? "psi-aszlig"
+}:
+
+let
+  qdarkstyle = fetchFromGitHub {
+    owner = "ColinDuquesnoy";
+    repo = "QDarkStyleSheet";
+    rev = "c92d0c4c996e3e859134492e0f9f7f74bd0e12cd";
+    sha256 = "1qrmp3ibvgzwh2v1qfrfh8xiwvj0kbhj1bm17bjx7zpmnb8byz3m";
+  };
+
+in stdenv.mkDerivation rec {
+  name = "psi-${version}";
+  version = "2.0git20190922aszlig";
+
+  src = fetchFromGitHub {
+    owner = "psi-im";
+    repo = "psi";
+    rev = "af26ce1c04207d384a05ea530d571068310957c6";
+    sha256 = "0pxd4ha391mfmsa7n7ag5kqw0nv825wsnkyfxi8wsa942bnbircg";
+    fetchSubmodules = true;
+  };
+
+  plugins = fetchFromGitHub {
+    owner = "psi-im";
+    repo = "plugins";
+    rev = "5574afcc8ab4c5647831d38be111976fb1fa10d3";
+    sha256 = "1h011j94iy40ksiqlprjamfyv7irql502hhhb0mpabk4mndxmjgn";
+  };
+
+  patches = [
+    ./disable-xep-0232.patch
+    ./darkstyle.patch
+    (substituteAll {
+      src = ./config.patch;
+      inherit jid resource;
+    })
+  ];
+
+  preConfigure = ''
+    cp --no-preserve=all -rt src/plugins "$plugins"/*
+  '';
+
+  cmakeFlags = [
+    "-DENABLE_PLUGINS=ON" "-DUSE_KEYCHAIN=OFF" "-DPSI_VERSION=${version}"
+    "-DQDARKSTYLE_PATH=${qdarkstyle}"
+  ];
+
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ cmake makeWrapper qt5.wrapQtAppsHook ];
+  buildInputs = [
+    hunspell
+    libgcrypt
+    libgpgerror
+    libidn
+    libotr
+    libsForQt5.qca-qt5
+    libsignal-protocol-c
+    libtidy
+    qt5.qtbase
+    qt5.qtmultimedia
+    qt5.qtwebengine
+    qt5.qtx11extras
+  ];
+}
diff --git a/pkgs/aszlig/psi/disable-xep-0232.patch b/pkgs/aszlig/psi/disable-xep-0232.patch
new file mode 100644
index 00000000..4788d262
--- /dev/null
+++ b/pkgs/aszlig/psi/disable-xep-0232.patch
@@ -0,0 +1,50 @@
+diff --git a/iris/src/xmpp/xmpp-im/client.cpp b/iris/src/xmpp/xmpp-im/client.cpp
+index d8573bf..31af799 100644
+--- a/iris/src/xmpp/xmpp-im/client.cpp
++++ b/iris/src/xmpp/xmpp-im/client.cpp
+@@ -1257,45 +1257,6 @@ DiscoItem Client::makeDiscoResult(const QString &node) const
+ 
+     item.setFeatures(features);
+ 
+-    // xep-0232 Software Information
+-    XData si;
+-    XData::FieldList si_fields;
+-
+-    XData::Field si_type_field;
+-    si_type_field.setType(XData::Field::Field_Hidden);
+-    si_type_field.setVar("FORM_TYPE");
+-    si_type_field.setValue(QStringList(QLatin1String("urn:xmpp:dataforms:softwareinfo")));
+-    si_fields.append(si_type_field);
+-
+-    XData::Field software_field;
+-    software_field.setType(XData::Field::Field_TextSingle);
+-    software_field.setVar("software");
+-    software_field.setValue(QStringList(d->clientName));
+-    si_fields.append(software_field);
+-
+-    XData::Field software_v_field;
+-    software_v_field.setType(XData::Field::Field_TextSingle);
+-    software_v_field.setVar("software_version");
+-    software_v_field.setValue(QStringList(d->clientVersion));
+-    si_fields.append(software_v_field);
+-
+-    XData::Field os_field;
+-    os_field.setType(XData::Field::Field_TextSingle);
+-    os_field.setVar("os");
+-    os_field.setValue(QStringList(d->osName));
+-    si_fields.append(os_field);
+-
+-    XData::Field os_v_field;
+-    os_v_field.setType(XData::Field::Field_TextSingle);
+-    os_v_field.setVar("os_version");
+-    os_v_field.setValue(QStringList(d->osVersion));
+-    si_fields.append(os_v_field);
+-
+-    si.setType(XData::Data_Result);
+-    si.setFields(si_fields);
+-
+-    item.setExtensions(QList<XData>() << si);
+-
+     return item;
+ }
+ 
diff --git a/pkgs/aszlig/santander/default.nix b/pkgs/aszlig/santander/default.nix
deleted file mode 100644
index adac0a8d..00000000
--- a/pkgs/aszlig/santander/default.nix
+++ /dev/null
@@ -1,98 +0,0 @@
-{ stdenv, lib, fetchurl, fetchgit, fetchpatch, runCommand, p7zip, jq
-, winePackages, pcsclite
-}:
-
-let
-  patchedWine = let
-    libpcsclite = "${lib.getLib pcsclite}/lib/libpcsclite.so";
-  in winePackages.minimal.overrideAttrs (drv: {
-    scard4wine = fetchgit {
-      url = "git://git.code.sf.net/p/scard4wine/code";
-      rev = "c14c02c80bf1f2bb4cedd1f53a3a2ab9c48bed76";
-      sha256 = "0ffmbl9mdnaih4h3ggpnzqbih3kgbwl3wv6j1ag5s4czn8gcpdq3";
-    };
-
-    prePatch = (drv.prePatch or "") + ''
-      cp -t dlls/winscard "$scard4wine/src/"*
-      sed -i -re 's,"libpcsclite\.so(\.[0-9]+)*","${libpcsclite}",' \
-        dlls/winscard/winscard.c
-    '';
-
-    patches = (drv.patches or []) ++ [
-      ./winscard.patch
-      (fetchpatch {
-        url = "http://achurch.org/patch-pile/wine/3.0/disable-unixfs.diff";
-        sha256 = "1yj3walwalya9g9aajcp4iygh348npp9dmks66r9dvwbd3fa8wcb";
-      })
-    ];
-
-    configureFlags = lib.toList (drv.configureFlags or []) ++ [
-      "--disable-unixfs"
-    ];
-
-    postConfigure = (drv.postConfigure or "") + ''
-      # The wineprefix is within the Nix store, so let's ensure wine doesn't
-      # check the owner of the files:
-      sed -i -e '/HAVE_GETUID/d' include/config.h
-    '';
-  });
-
-in stdenv.mkDerivation rec {
-  name = "TRAVIC-Sign-${version}";
-  version = "3.1.3.0";
-
-  src = fetchurl {
-    url = "https://service.santanderbank.de/special/banking/files/"
-        + "${name}-Installer.exe";
-    sha256 = "19a14av3bg6i4iy5q5pa737cwxznqji0lcrapxw0q6qb8rs1rhs7";
-  };
-
-  extensionId = "ilpoejcegjjlgpobjkpjmddkbdkdndaj";
-
-  buildInputs = [ p7zip jq ];
-
-  unpackCmd = "7z x -y -otavic-sign $curSrc";
-
-  phases = [ "unpackPhase" "patchPhase" "installPhase" ];
-
-  postPatch = ''
-    jq '.allowed_origins = [
-      "chrome-extension://'"$extensionId"'/"
-    ] | .path = "'"$out/share/libexec/travic-sign/travic-sign"'"
-      | del(.allowed_extensions)' manifest-firefox.json > host.json
-
-    7z x -y -oextension FirefoxExtension.xpi
-    jq '.content_scripts[].matches = ["https://karte.santanderbank.de/*"] | {
-      # All the object attributes that we want to have (nothing more):
-      background, web_accessible_resources, content_scripts, page_action,
-      permissions, author, version, description, name, manifest_version
-    }' extension/manifest.json > new_manifest.json
-    mv new_manifest.json extension/manifest.json
-    (cd extension && 7z a -tzip ../travic-sign.crx *)
-  '';
-
-  winePrefix = runCommand "empty-wineprefix" {
-    buildInputs = [ patchedWine ];
-  } ''
-    export WINEPREFIX="$out"
-    mkdir -p "$out"
-    wine wineboot.exe
-  '';
-
-  installPhase = ''
-    libexec="$out/share/libexec/travic-sign"
-
-    install -vD -m 0644 TRAVIC-Sign-Service.exe "$libexec/service.exe"
-    install -vD -m 0644 host.json \
-      "$out/etc/chromium/native-messaging-hosts/travic-sign.json"
-    install -vD -m 0644 travic-sign.crx \
-      "$out/share/chromium/extensions/$extensionId.crx"
-
-    cat > "$libexec/travic-sign" <<EOF
-    #!${stdenv.shell}
-    export WINEPREFIX="$winePrefix"
-    exec ${patchedWine}/bin/wine "$libexec/service.exe"
-    EOF
-    chmod +x "$libexec/travic-sign"
-  '';
-}
diff --git a/pkgs/aszlig/santander/pipelight.patch b/pkgs/aszlig/santander/pipelight.patch
deleted file mode 100644
index 3a07da72..00000000
--- a/pkgs/aszlig/santander/pipelight.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/windows/pluginloader/pluginloader.c b/src/windows/pluginloader/pluginloader.c
-index 9e8556f..c50be2a 100644
---- a/src/windows/pluginloader/pluginloader.c
-+++ b/src/windows/pluginloader/pluginloader.c
-@@ -1510,7 +1510,7 @@ void dispatcher(int functionid, Stack &stack){
- 				NPObject *objectValue;
- 				NPError result;
- 
--				if (variable == NPPVpluginScriptableNPObject)
-+				if (variable == NPPVpluginScriptableNPObject && pluginFuncs.getvalue)
- 					result = pluginFuncs.getvalue(instance, variable, &objectValue);
- 				else{
- 					DBG_WARN("FUNCTION_NPP_GETVALUE_OBJECT - variable %d not allowed", variable);
diff --git a/pkgs/aszlig/santander/winscard.patch b/pkgs/aszlig/santander/winscard.patch
deleted file mode 100644
index 7dfa04ac..00000000
--- a/pkgs/aszlig/santander/winscard.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/dlls/winscard/winscard.c	1970-01-01 01:00:01.000000000 +0100
-+++ b/dlls/winscard/winscard.c	2016-06-06 01:52:53.631444433 +0200
-@@ -1527,7 +1527,7 @@
- {

-     LONG lRet;

-     TRACE(" 0x%08X %p %p %p %p %p %p\n",(unsigned int) hCard,mszReaderNames,pcchReaderLen,pdwState,pdwProtocol,pbAtr,pcbAtrLen);

--    if(!pcchReaderLen || !pdwState || !pdwProtocol || !pcbAtrLen)

-+    if(!pcchReaderLen || !pcbAtrLen)

-         lRet = SCARD_E_INVALID_PARAMETER;

-     else if(!liteSCardStatus)

-         lRet = SCARD_F_INTERNAL_ERROR;

diff --git a/pkgs/aszlig/vim/default.nix b/pkgs/aszlig/vim/default.nix
index 6c1c6bab..5a2a3962 100644
--- a/pkgs/aszlig/vim/default.nix
+++ b/pkgs/aszlig/vim/default.nix
@@ -335,6 +335,27 @@ let
       '';
       installPhase = "cp -r data/syntax-highlighting/vim \"$out\"";
     };
+
+    jinja2 = stdenv.mkDerivation {
+      name = "jinja2-vim-${python3Packages.jinja2.version}";
+      inherit (python3Packages.jinja2) src;
+      phases = [ "unpackPhase" "installPhase" ];
+      installPhase = ''
+        install -vD -m 0644 ext/Vim/jinja.vim "$out/syntax/jinja.vim"
+      '';
+    };
+
+    xdebug = fetchurl {
+      name = "vim-xt-syntax";
+      url = "https://raw.githubusercontent.com/xdebug/xdebug/"
+          + "ce4f6bc7ae04ae542960af6c1b8975888e9c3e5e/contrib/xt.vim";
+      sha256 = "05a3nry310s2w1h2q7w6yw2wick81jrnrs43x9vk0k7dqyavhvhi";
+      downloadToTemp = true;
+      recursiveHash = true;
+      postFetch = ''
+        install -vD -m 0644 "$downloadedFile" "$out/syntax/xt.vim"
+      '';
+    };
   };
 
   generic = ''
@@ -384,6 +405,13 @@ let
     let g:ledger_commodity_before = 0
     let g:ledger_commodity_sep = ' '
     let g:ledger_fold_blanks = 1
+
+    " php
+    let php_noShortTags = 1
+    let php_sql_query = 1
+    let php_baselib = 1
+    let php_htmlInStrings = 1
+    let g:PHP_vintage_case_default_indent = 1
   '';
 
   autocmd = ''
@@ -394,6 +422,7 @@ let
     " filetype defaults
     au BufNewFile,BufRead *.as setlocal ft=actionscript
     au BufNewFile,BufRead *.tt setlocal ft=tt2html ts=2 sw=2 sts=2 et
+    au BufNewFile,BufRead *.xt setlocal ft=xt foldlevel=4
     au BufNewFile,BufRead *.html setlocal ts=2 sw=2 sts=2 et
     au FileType python setlocal textwidth=79
     au FileType gitcommit setlocal textwidth=72
@@ -415,8 +444,8 @@ let
     " prevent colorscheme from overriding these highlights
     au ColorScheme * highlight ExtraWhitespace ctermbg=red guibg=red
 
-    " highlight everything exceeding 79 characters (except for CSV)
-    au BufWinEnter * if &ft !=# 'csv'
+    " highlight everything exceeding 79 characters (with exceptions)
+    au BufWinEnter * if index(['csv', 'strace', 'xt'], &ft) < 0
       \ | let w:m2=matchadd('ErrorMsg', '\%>79v.\+', -1)
       \ | endif