diff --git a/desktop/toolkit/gtk/gtksourceview3/pspec.xml b/desktop/toolkit/gtk/gtksourceview3/pspec.xml
index c3705ad5e3..de69f19e50 100755
--- a/desktop/toolkit/gtk/gtksourceview3/pspec.xml
+++ b/desktop/toolkit/gtk/gtksourceview3/pspec.xml
@@ -65,7 +65,7 @@
2019-04-10
3.24.10
- First release
+ First release.
Serdar Soytetir
kaptan@pisilinux.org
diff --git a/science/mathematics/pspp/actions.py b/science/mathematics/pspp/actions.py
new file mode 100644
index 0000000000..0d26acc9ce
--- /dev/null
+++ b/science/mathematics/pspp/actions.py
@@ -0,0 +1,24 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+# Licensed under the GNU General Public License, version 3.
+# See the file http://www.gnu.org/copyleft/gpl.txt
+
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import get
+
+
+def setup():
+ pisitools.dosed("src/ui/gui/gen-dot-desktop.sh", "Math;", "")
+ autotools.configure("--disable-rpath \
+ --disable-static")
+ #--without-libreadline-prefix")
+
+def build():
+ autotools.make()
+
+def install():
+ autotools.rawInstall("DESTDIR=%s" % get.installDIR())
+ pisitools.dodir("/usr/share/pspp/contrib")
+ pisitools.insinto("/usr/share/pspp/contrib" , "pspp-mode.el")
+
diff --git a/science/mathematics/pspp/files/posthoc_stats.patch b/science/mathematics/pspp/files/posthoc_stats.patch
new file mode 100644
index 0000000000..106a4947cc
--- /dev/null
+++ b/science/mathematics/pspp/files/posthoc_stats.patch
@@ -0,0 +1,377 @@
+diff -Nuar src_old/ui/gui/oneway.ui src/ui/gui/oneway.ui
+--- src_old/ui/gui/oneway.ui 2018-11-06 16:38:12.000000000 +0300
++++ src/ui/gui/oneway.ui 2019-03-25 10:21:34.915884000 +0300
+@@ -226,6 +226,151 @@
+
+
+
++
++
++
+
+ False
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+@@ -476,6 +621,32 @@
+ 0
+
+
++
++
++
++ vertical
++ True
++ False
++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
++ True
++
++
++ Post-Hoc...
++ True
++ True
++ True
++ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
++ True
++
++
++ False
++ False
++ 0
++
++
++
++
++
+
+
+ vertical
+diff -Nuar src_old/ui/gui/psppire-dialog-action-oneway.c src/ui/gui/psppire-dialog-action-oneway.c
+--- src_old/ui/gui/psppire-dialog-action-oneway.c 2018-11-06 16:38:12.000000000 +0300
++++ src/ui/gui/psppire-dialog-action-oneway.c 2019-03-25 10:24:21.574883603 +0300
+@@ -33,9 +33,16 @@
+ #define _(msgid) gettext (msgid)
+ #define N_(msgid) msgid
+
++#define POSTHOC_BONFERRONI 0x01
++#define POSTHOC_GH 0x02
++#define POSTHOC_LSD 0x03
++#define POSTHOC_SCHEFFE 0x04
++#define POSTHOC_SIDAK 0x05
++#define POSTHOC_TUKEY 0x06
+
+ static void next (GtkWidget *widget, PsppireDialogActionOneway *);
+ static void prev (GtkWidget *widget, PsppireDialogActionOneway *);
++static void run_posthoc_dialog (PsppireDialogActionOneway *ow);
+ static void run_contrasts_dialog (PsppireDialogActionOneway *csd);
+ static void push_new_store (GArray *contrast_stack, PsppireDialogActionOneway *csd);
+
+@@ -55,6 +62,12 @@
+
+ gboolean descriptives = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ow->descriptives));
+ gboolean homogeneity = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ow->homogeneity));
++ gboolean bonferroni = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ow->bonferroni_button));
++ gboolean gh = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ow->gh_button));
++ gboolean lsd = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ow->lsd_button));
++ gboolean scheffe = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ow->scheffe_button));
++ gboolean sidak = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ow->sidak_button));
++ gboolean tukey = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ow->tukey_button));
+ struct string dss;
+
+ ds_init_cstr (&dss, "ONEWAY /VARIABLES=");
+@@ -64,14 +77,26 @@
+ ds_put_cstr (&dss, " BY ");
+
+ ds_put_cstr (&dss, gtk_entry_get_text (GTK_ENTRY (ow->factor_entry)));
+-
+- if (descriptives || homogeneity )
++
++ if (descriptives || homogeneity || bonferroni || gh || lsd || scheffe || sidak || tukey)
+ {
+ ds_put_cstr (&dss, "\n\t/STATISTICS=");
+ if (descriptives)
+ ds_put_cstr (&dss, "DESCRIPTIVES ");
+ if (homogeneity)
+ ds_put_cstr (&dss, "HOMOGENEITY ");
++ if (bonferroni)
++ ds_put_cstr (&dss, "\n\t/POSTHOC=BONFERRONI ");
++ if (gh)
++ ds_put_cstr (&dss, "\n\t/POSTHOC=GH ");
++ if (lsd)
++ ds_put_cstr (&dss, "\n\t/POSTHOC=LSD ");
++ if (scheffe)
++ ds_put_cstr (&dss, "\n\t/POSTHOC=SCHEFFE ");
++ if (sidak)
++ ds_put_cstr (&dss, "\n\t/POSTHOC=SIDAK ");
++ if (tukey)
++ ds_put_cstr (&dss, "\n\t/POSTHOC=TUKEY ");
+ }
+
+ for (i = 0 ; i < ow->contrasts_array->len ; ++i )
+@@ -226,8 +251,9 @@
+
+ GtkBuilder *xml = builder_new ( "oneway.ui");
+
+- GtkWidget *contrasts_button =
+- get_widget_assert (xml, "contrasts-button");
++ GtkWidget *contrasts_button = get_widget_assert (xml, "contrasts-button");
++/*Posthoc button */
++ GtkWidget *posthoc_button= get_widget_assert (xml, "posthoc-button");
+ GtkEntry *entry = GTK_ENTRY (get_widget_assert (xml, "entry1"));
+
+ pda->dialog = get_widget_assert (xml, "oneway-anova-dialog");
+@@ -239,6 +265,20 @@
+ act->descriptives = get_widget_assert (xml, "checkbutton1");
+ act->homogeneity = get_widget_assert (xml, "checkbutton2");
+
++/*Posthoc tests dialog */
++ act->posthoc_dialog = get_widget_assert (xml, "posthoc-dialog");
++
++ act->bonferroni_button = get_widget_assert (xml, "bonferroni-button");
++ act->gh_button = get_widget_assert (xml, "gh-button");
++ act->lsd_button = get_widget_assert (xml, "lsd-button");
++ act->scheffe_button = get_widget_assert (xml, "scheffe-button");
++ act->sidak_button = get_widget_assert (xml, "sidak-button");
++ act->tukey_button = get_widget_assert (xml, "tukey-button");
++
++ g_signal_connect_swapped (posthoc_button, "clicked",
++ G_CALLBACK (run_posthoc_dialog), act);
++
++/*Contrast dialog*/
+ act->contrasts_dialog = get_widget_assert (xml, "contrasts-dialog");
+
+ act->next = get_widget_assert (xml, "next-button");
+@@ -282,9 +322,54 @@
+ act->c = -1;
+
+ }
++/*Posthoc dialog */
++static void
++run_posthoc_dialog (PsppireDialogActionOneway *ow)
++{
++ gint response;
++
++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ow->bonferroni_button),
++ ow->posthoc & POSTHOC_BONFERRONI);
++
++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ow->gh_button),
++ ow->posthoc & POSTHOC_GH);
++
++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ow->lsd_button),
++ ow->posthoc & POSTHOC_LSD);
++
++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ow->scheffe_button),
++ ow->posthoc & POSTHOC_SCHEFFE);
+
++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ow->sidak_button),
++ ow->posthoc & POSTHOC_SIDAK);
+
+-
++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ow->tukey_button),
++ ow->posthoc & POSTHOC_TUKEY);
++
++ response = psppire_dialog_run (PSPPIRE_DIALOG (ow->posthoc_dialog));
++
++ if ( response == PSPPIRE_RESPONSE_CONTINUE )
++ {
++ ow->posthoc= 0;
++ if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ow->bonferroni_button) ))
++ ow->posthoc |= POSTHOC_BONFERRONI;
++
++ if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ow->gh_button) ))
++ ow->posthoc |= POSTHOC_GH;
++
++ if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ow->lsd_button) ))
++ ow->posthoc |= POSTHOC_LSD;
++
++ if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ow->scheffe_button) ))
++ ow->posthoc |= POSTHOC_SCHEFFE;
++
++ if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ow->sidak_button) ))
++ ow->posthoc |= POSTHOC_SIDAK;
++
++ if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ow->tukey_button) ))
++ ow->posthoc |= POSTHOC_TUKEY;
++ }
++}
+
+ static void
+ run_contrasts_dialog (PsppireDialogActionOneway *csd)
+diff -Nuar src_old/ui/gui/psppire-dialog-action-oneway.h src/ui/gui/psppire-dialog-action-oneway.h
+--- src_old/ui/gui/psppire-dialog-action-oneway.h 2018-11-06 16:38:12.000000000 +0300
++++ src/ui/gui/psppire-dialog-action-oneway.h 2019-03-25 08:49:48.745899175 +0300
+@@ -63,7 +63,18 @@
+ GtkWidget *descriptives;
+ GtkWidget *homogeneity;
+
++/*Post-Hoc dialog*/
++ GtkWidget *posthoc_dialog;
++
++ GtkWidget *bonferroni_button;
++ GtkWidget *gh_button;
++ GtkWidget *lsd_button;
++ GtkWidget *scheffe_button;
++ GtkWidget *sidak_button;
++ GtkWidget *tukey_button;
++ guint posthoc;
+
++/*Contrasts dialog*/
+ GtkWidget *contrasts_dialog;
+
+ GtkWidget *next;
+@@ -72,7 +83,6 @@
+ GtkWidget *vars_treeview;
+ GtkWidget *factor_entry;
+
+-
+ /* Gets copied into contrasts when "Continue"
+ is clicked */
+ GArray *temp_contrasts;
+@@ -82,7 +92,6 @@
+
+
+ GArray *contrasts_array;
+-
+ GtkWidget *ctotal;
+ GtkWidget *stack_label;
+ };
diff --git a/science/mathematics/pspp/files/pspp.desktop b/science/mathematics/pspp/files/pspp.desktop
new file mode 100755
index 0000000000..d07c86f885
--- /dev/null
+++ b/science/mathematics/pspp/files/pspp.desktop
@@ -0,0 +1,29 @@
+# Generated from src/ui/gui/gen-dot-desktop.sh -*- buffer-read-only: t -*-
+
+[Desktop Entry]
+Name=GNU PSPP
+Name[tr]=İstatistik Analiz Uygulaması
+GenericName=Statistical Software
+GenericName[ca]=Programari estadístic
+GenericName[cs]=Statistický program
+GenericName[de]=Statistiksoftware
+GenericName[es]=Programario Estadístico
+GenericName[lt]=Statistinė programinė įranga
+GenericName[nl]=Statistische software
+GenericName[tr]=İstatistik Analiz Programı
+Comment=Analyze statistical data with a free alternative to SPSS
+Comment[ca]= Analitza dades estadístiques amb una alternativa lliure a SPSS
+Comment[cs]= Analyzuj statistická data se svobodnou variantou SPSS
+Comment[de]= Statistische Daten mit einer freien Alternative zu SPSS analysieren
+Comment[en_GB]= Analyse statistical data with a free alternative to SPSS
+Comment[es]= Analiza datos estadísticos con una alternativa libre a SPSS
+Comment[lt]= Statistinių duomenų analizavimas su nemokama SPSS alternatyva
+Comment[nl]= Analyseer statistische data met een vrij alternatief van SPSS
+Comment[tr]=SPSS'e özgür alternatif ile istatistiksel verilerinizi analiz edin
+Exec=psppire %F
+Icon=pspp
+Terminal=false
+Type=Application
+Categories=GTK;Education;Science;
+MimeType=application/x-spss-sav;application/x-spss-por;
+StartupNotify=false
diff --git a/science/mathematics/pspp/files/regression_tol_gui.patch b/science/mathematics/pspp/files/regression_tol_gui.patch
new file mode 100644
index 0000000000..f3be7f9c63
--- /dev/null
+++ b/science/mathematics/pspp/files/regression_tol_gui.patch
@@ -0,0 +1,13 @@
+diff -Nuar src_old/ui/gui/psppire-dialog-action-regression.c src/ui/gui/psppire-dialog-action-regression.c
+--- src_old/ui/gui/psppire-dialog-action-regression.c 2019-03-27 17:03:55.000000000 +0300
++++ src/ui/gui/psppire-dialog-action-regression.c 2019-03-30 19:32:50.869378647 +0300
+@@ -41,7 +41,8 @@
+ RG (CI, N_("Conf. Interval"), N_("Show the confidence interval for the regression coefficients")) \
+ RG (R, N_("R"), N_("Show the correlation between observed and predicted values")) \
+ RG (ANOVA, N_("Anova"), N_("Show the analysis of variance table")) \
+- RG (BCOV, N_("Bcov"), N_("Show the variance coefficient matrix"))
++ RG (BCOV, N_("Bcov"), N_("Show the variance coefficient matrix")) \
++ RG (TOL, N_("Tol"), N_("Show variance inflation factor and its reciprocal"))
+
+ enum
+ {
diff --git a/science/mathematics/pspp/files/splash.png b/science/mathematics/pspp/files/splash.png
new file mode 100755
index 0000000000..badbbadc10
Binary files /dev/null and b/science/mathematics/pspp/files/splash.png differ
diff --git a/science/mathematics/pspp/pspec.xml b/science/mathematics/pspp/pspec.xml
new file mode 100644
index 0000000000..fe21c5665f
--- /dev/null
+++ b/science/mathematics/pspp/pspec.xml
@@ -0,0 +1,109 @@
+
+
+ pspp
+ http://www.gnu.org/software/pspp/pspp.html
+
+ Ayhan Yalçınsoy
+ ayhanyalcinsoy@pisilinux.org
+
+ GPLv2
+ app:gui
+ pspp
+ GNU PSPP is a program for statistical analysis of sampled data
+ GNU PSPP is a program for statistical analysis of sampled data
+
+ https://pspp.benpfaff.org/~blp/pspp-master/latest-source.tar.gz
+
+ cairo-devel
+ gsl-devel
+ gtk3-devel
+ gtksourceview3-devel
+ plotutils-devel
+ postgresql-lib
+ ncurses-devel
+ readline-devel
+ texinfo
+ desktop-file-utils
+ libxml2-devel
+ libglade-devel
+ gettext-devel
+ zlib-devel
+ icon-theme-hicolor
+ spread-sheet-widget-devel
+
+
+ regression_tol_gui.patch
+ posthoc_stats.patch
+
+
+
+ pspp
+ GNU PSPP is a program for statistical analysis of sampled data
+
+ gsl
+ gtk3
+ zlib
+ cairo
+ glib2
+ pango
+ libxml2
+ ncurses
+ readline
+ gtksourceview3
+ postgresql-lib
+ icon-theme-hicolor
+ spread-sheet-widget
+
+
+ /etc/pspp
+ /usr/bin
+ /usr/lib
+ /usr/share/appdata
+ /usr/share/applications
+ /usr/share/icons
+ /usr/share/locale
+ /usr/share/man
+ /usr/share/pspp
+ /usr/share/metainfo/pspp.appdata.xml
+
+
+ pspp.desktop
+
+ splash.png
+
+
+
+ pspp-docs
+ Documents for PSPP
+
+ pspp
+
+
+ /usr/share/doc
+ /usr/share/info
+
+
+
+
+ 2019-03-28
+ 1.2.1
+ Test
+ Ayhan Yalçınsoy
+ ayhanyalcinsoy@pisilinux.org
+
+
+ 2019-03-28
+ 1.2.0
+ Version bump
+ Ayhan Yalçınsoy
+ ayhanyalcinsoy@pisilinux.org
+
+
+ 2017-09-12
+ 1.0.1
+ First release
+ Ayhan Yalçınsoy
+ ayhanyalcinsoy@pisilinux.org
+
+
+
diff --git a/science/mathematics/pspp/translations.xml b/science/mathematics/pspp/translations.xml
new file mode 100644
index 0000000000..023cb16319
--- /dev/null
+++ b/science/mathematics/pspp/translations.xml
@@ -0,0 +1,10 @@
+
+
+ pspp
+ PSPP bir örneklenmiş veri istatistik uygulamasıdır
+ PSPP bir örneklenmiş veri istatistik uygulamasıdır
+
+
+ pspp-docs
+
+