diff options
author | SammysHP | 2020-03-03 20:11:53 +0100 |
---|---|---|
committer | SammysHP | 2020-03-03 20:11:53 +0100 |
commit | 4822d93495b8d1e5ddc066dfaae7bdedda38b89d (patch) | |
tree | 710e0448f16ae62780376836a9c5cf904bc840c8 | |
download | aur-hptalx.tar.gz |
Initial commit
-rw-r--r-- | .SRCINFO | 27 | ||||
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | 0001_list_store.patch | 14 | ||||
-rw-r--r-- | 0002_spinbutton.patch | 14 | ||||
-rw-r--r-- | 0003_k_wait_ready.patch | 88 | ||||
-rw-r--r-- | 0004_kermit_missing_info.patch | 39 | ||||
-rw-r--r-- | 0005_arch_kermit_name.patch | 13 | ||||
-rw-r--r-- | PKGBUILD | 49 |
8 files changed, 248 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..06a31cc42609 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,27 @@ +pkgbase = hptalx + pkgdesc = A HP Calculator<->PC communications program for Linux + pkgver = 1.3.1a + pkgrel = 1 + url = http://hptalx.sourceforge.net/ + arch = i686 + arch = x86_64 + license = GPL + depends = ckermit + depends = glib2 + depends = gtk2 + depends = libxml2 + source = http://downloads.sourceforge.net/sourceforge/hptalx/hptalx-1.3.1a.tar.gz + source = 0001_list_store.patch + source = 0002_spinbutton.patch + source = 0003_k_wait_ready.patch + source = 0004_kermit_missing_info.patch + source = 0005_arch_kermit_name.patch + sha256sums = d725d2b5806ab9f70432c6adcc6db41c3cc94b5444b90e52878a395dd115af60 + sha256sums = 5d687b7eef67d48652a82e575e8a3f988d4dc9b1138be0140c72cfa9b7ee688a + sha256sums = e9c6860531a257910c3da5cfbdcc0a391851c314896d5ae29db1471d08ded2af + sha256sums = 09b4c2b4fb3a5391f2b77e4d2d17c49c2f5663e3124f2fd3eeb0abb58caf2d48 + sha256sums = 9ce7cea5882d44a242b7a04fc9ef6e95c76d1664fd6475850991b2f655d7fad8 + sha256sums = f8bc335150d6069b5e7bb0cc070585f1065e75b9c9e2bc3edf7dde4833ae0504 + +pkgname = hptalx + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..83c731079852 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/pkg/ +/src/ +/*.tar.gz +/*.tar.xz diff --git a/0001_list_store.patch b/0001_list_store.patch new file mode 100644 index 000000000000..456b46df3433 --- /dev/null +++ b/0001_list_store.patch @@ -0,0 +1,14 @@ +Author: Stefan Achatz +https://sourceforge.net/p/hptalx/patches/2/ + +--- a/src/io.c ++++ b/src/io.c +@@ -212,7 +212,7 @@ + break; + default: + gtk_list_store_set (list, iter, FLC_TYPE, unknown_pixbuf, -1); +- gtk_list_store_set (list, iter, FLC_TYPESTR, ROW_DATA_FILE); ++ gtk_list_store_set (list, iter, FLC_TYPESTR, ROW_DATA_FILE, -1); + break; + } + } diff --git a/0002_spinbutton.patch b/0002_spinbutton.patch new file mode 100644 index 000000000000..46542ea0a77c --- /dev/null +++ b/0002_spinbutton.patch @@ -0,0 +1,14 @@ +Author: Stefan Achatz +https://sourceforge.net/p/hptalx/patches/3/ + +--- a/src/setup.c ++++ b/src/setup.c +@@ -310,7 +310,7 @@ _create_setttyusbport_box (GtkWidget * box) + /* + * The spin button for choosing the port number + */ +- interval = GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 20, 1, 1, 1)); ++ interval = GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 20, 1, 1, 0)); + button = gtk_spin_button_new (interval, 1, 0); + g_signal_connect (GTK_OBJECT (button), "changed", + G_CALLBACK (_set_ttyusb_port), NULL); diff --git a/0003_k_wait_ready.patch b/0003_k_wait_ready.patch new file mode 100644 index 000000000000..9b133fd03518 --- /dev/null +++ b/0003_k_wait_ready.patch @@ -0,0 +1,88 @@ +Author: Stefan Achatz +https://sourceforge.net/p/hptalx/patches/4/ + +--- a/src/kermit.c ++++ b/src/kermit.c +@@ -52,6 +52,7 @@ + #include <pty.h> + #include <termios.h> + #include <signal.h> ++#include <errno.h> + + /* + * Global variable that holds the last Kermit status +@@ -297,44 +298,22 @@ k_wait_ready (char **o, size_t * size) + * has arrived + */ + if (br > 0) { +- if (*size == 0) { +- /* +- * First time we read into *o +- */ +- *o = (char *) malloc (br); +- if (*o == NULL) { +- return k_errno = K_MALLOC; +- } +- +- /* +- * Zero out everthing in *o +- */ +- memset ((void *) *o, 0, br); +- memcpy ((void *) *o, (void *) buff, br); +- *size = br; ++ ++ *size += br; ++ ++ if (*size == br) { ++ *o = (char *) malloc (*size); + } else { +- /* +- * Previous reads took place +- */ +- +- /* +- * New size of *o +- */ +- *size += br; + *o = (char *) realloc (*o, *size); ++ } ++ ++ if (*o == NULL) { ++ return k_errno = K_MALLOC; ++ } + +- if (*o == NULL) { +- return k_errno = K_MALLOC; +- } ++ memcpy ((void *) (*o + (*size - br)), (void *) buff, br); + +- memset ((void *) (*o + (*size - br)), 0, br); +- /* +- * Copy content from buff to *o +- * at old pos in *o -> (size-br) +- */ +- memcpy ((void *) (*o + (*size - br)), (void *) buff, br); +- } +- } else { ++ } else if (br == 0 || errno == EAGAIN) { + /* + * Wait nicely for new data + */ +@@ -343,6 +322,8 @@ k_wait_ready (char **o, size_t * size) + return k_errno = K_TIMEOUT; + } + ++ } else { ++ return k_errno = K_READ; + } + + /* +@@ -352,7 +333,7 @@ k_wait_ready (char **o, size_t * size) + tv.tv_usec = 0; + + } +- while ((strstr (*o, K_KERMIT_PROMPT) == NULL) ++ while ((*o != 0 && strstr (*o, K_KERMIT_PROMPT) == NULL) + || (select (FD_SETSIZE, &rset, NULL, NULL, &tv) != 0)); + return k_errno = K_OK; + } diff --git a/0004_kermit_missing_info.patch b/0004_kermit_missing_info.patch new file mode 100644 index 000000000000..b74f029140d9 --- /dev/null +++ b/0004_kermit_missing_info.patch @@ -0,0 +1,39 @@ +Author: Stefan Achatz +https://sourceforge.net/p/hptalx/patches/5/ + +--- a/src/kermit.c ++++ b/src/kermit.c +@@ -96,6 +96,8 @@ static k_status _k_parent (const k_params * params); + static k_status + _k_parent (const k_params * params) + { ++ pid_t pid; ++ int status; + + if (fcntl (g_master_fld, F_SETFL, O_NONBLOCK) == -1) + return K_FCNTL; +@@ -107,6 +109,16 @@ _k_parent (const k_params * params) + */ + k_errno = k_discard_output (); + ++ /* ++ * _k_parent() gets called only and immediately after forking child. ++ * All file descriptor parameters are set and the first read took place. ++ * If child exited already with an error kermit might not have been found. ++ */ ++ pid = waitpid(g_child, &status, WNOHANG); ++ if (pid && WIFEXITED(status) && WEXITSTATUS(status) == 2) { ++ return k_errno = K_EXECKERMIT; ++ } ++ + k_errno = k_send_command (K_CMD_SET_PROMPT); + k_errno = k_discard_output (); + +@@ -165,7 +177,6 @@ k_connect (const k_params * params) + tcsetattr (g_master_fld, TCSANOW, &term_cap); + return _k_parent (params); + } +- return k_errno = K_UNKNOWN; + } + + k_status diff --git a/0005_arch_kermit_name.patch b/0005_arch_kermit_name.patch new file mode 100644 index 000000000000..b79dddfb66ac --- /dev/null +++ b/0005_arch_kermit_name.patch @@ -0,0 +1,13 @@ +Author: Sven Karsten Greiner + +--- hptalx-1.3.1a/src/kermit.c 2007-09-29 23:21:01.000000000 +0200 ++++ hptalx-1.3.1a_patched/src/kermit.c 2020-03-03 20:05:25.887400124 +0100 +@@ -157,7 +157,7 @@ + if (g_child == -1) + return k_errno = K_FORKPTY; + if (g_child == 0) { /* child */ +- if (execlp ("kermit", "kermit", "-z", "-Y", NULL) < 0) ++ if (execlp ("ckermit", "ckermit", "-z", "-Y", NULL) < 0) + exit (2); + exit (0); + } else { /* parent */ diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..ca04a7c8b573 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer: Sven Karsten Greiner <sven@sammyshp.de> + +# Make sure that your user is in the group 'uucp'. +# +# Kermit might need a different lock directory because of the permissions. Try +# to run hptalx as: +# $ LOCK_DIR=/tmp hptalx + +pkgname=hptalx +pkgver=1.3.1a +pkgrel=1 +pkgdesc="A HP Calculator<->PC communications program for Linux" +arch=('i686' 'x86_64') +url="http://hptalx.sourceforge.net/" +license=('GPL') +depends=('ckermit' 'glib2' 'gtk2' 'libxml2') +source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz" + 0001_list_store.patch + 0002_spinbutton.patch + 0003_k_wait_ready.patch + 0004_kermit_missing_info.patch + 0005_arch_kermit_name.patch) +sha256sums=('d725d2b5806ab9f70432c6adcc6db41c3cc94b5444b90e52878a395dd115af60' + '5d687b7eef67d48652a82e575e8a3f988d4dc9b1138be0140c72cfa9b7ee688a' + 'e9c6860531a257910c3da5cfbdcc0a391851c314896d5ae29db1471d08ded2af' + '09b4c2b4fb3a5391f2b77e4d2d17c49c2f5663e3124f2fd3eeb0abb58caf2d48' + '9ce7cea5882d44a242b7a04fc9ef6e95c76d1664fd6475850991b2f655d7fad8' + 'f8bc335150d6069b5e7bb0cc070585f1065e75b9c9e2bc3edf7dde4833ae0504') + +prepare() { + cd "$pkgname-$pkgver" + patch -p1 -i ../0001_list_store.patch + patch -p1 -i ../0002_spinbutton.patch + patch -p1 -i ../0003_k_wait_ready.patch + patch -p1 -i ../0004_kermit_missing_info.patch + patch -p1 -i ../0005_arch_kermit_name.patch + +} + +build() { + cd "$pkgname-$pkgver" + ./configure --prefix=/usr + make +} + +package() { + cd "$pkgname-$pkgver" + make DESTDIR="$pkgdir/" install +} |