summaryrefslogtreecommitdiff
path: root/app-shells/squirrelsh
diff options
context:
space:
mode:
Diffstat (limited to 'app-shells/squirrelsh')
-rw-r--r--app-shells/squirrelsh/Manifest11
-rw-r--r--app-shells/squirrelsh/files/squirrelsh-1.2.7-gcc6.patch217
-rw-r--r--app-shells/squirrelsh/files/squirrelsh-fix-in_LDFLAGS.patch12
-rw-r--r--app-shells/squirrelsh/files/squirrelsh-no-docs.patch25
-rw-r--r--app-shells/squirrelsh/files/squirrelsh-no-strip.patch19
-rw-r--r--app-shells/squirrelsh/files/squirrelsh-remove-forced-abi.patch21
-rw-r--r--app-shells/squirrelsh/files/squirrelsh-rename-LDFLAGS.patch140
-rw-r--r--app-shells/squirrelsh/metadata.xml11
-rw-r--r--app-shells/squirrelsh/squirrelsh-1.2.7.ebuild47
9 files changed, 503 insertions, 0 deletions
diff --git a/app-shells/squirrelsh/Manifest b/app-shells/squirrelsh/Manifest
new file mode 100644
index 000000000000..b99e4e0daeaa
--- /dev/null
+++ b/app-shells/squirrelsh/Manifest
@@ -0,0 +1,11 @@
+AUX squirrelsh-1.2.7-gcc6.patch 7031 SHA256 e8161e8f68f073c6c8ff19bd13a556e3ae3f1fb3d7818f86d163a8c98452fd94 SHA512 45dd46d6526d09416af23ba4668f374b5c1f48c1f71aebc361b385a298d1cf0c27b53657dc892dd6c2cfa542df5fc92cc978a3daa94b7b947bc24b958f7cb1ee WHIRLPOOL cc1a0efb1ccf2ef6cd8134ad2b7533c148d5be2b2f25291a8bf5bfe68e5536b83fd1200b2c2ad7266c0383f12c5a857d18e7ba3265ccdc497baa61f94d341e8e
+AUX squirrelsh-fix-in_LDFLAGS.patch 511 SHA256 3b9ebe885871ed22a6fc068024f01f6326a8bee7c51133ff8255275496686f7b SHA512 d7bc6f7f21a20e1123c986ece16098b7eec1887e6990a80a23367e2449df2ae913e02a137b2c7cefe6567a500d8fdd427f5c2bc1dc2ae845088d96ceb7c357e3 WHIRLPOOL ab83cb0b952021255f5fbcafd3c2fe56657bf41af5b846caf2b10f0dafb400b6accda647eaf5c571c04cbd810f116d439388ecbb1be811fe9af2c5dc1485b513
+AUX squirrelsh-no-docs.patch 885 SHA256 3941b2d1822925feaefb2bd6f110dfa101812f4f1818632972fd3021b4c9dfeb SHA512 3882fd15ba594a93ea46c3656a0efa8424099fee11e480cc7f89f70027f04ec56b7107b33cf51bbaaf188e54023c500e81c3ec7eb8e545ece270022684af8907 WHIRLPOOL 00b7c9fce5c7ae4378ee7ad52fa8636721c71bbfe96e6841b57ca9d64590d61a007d97dcdef560b915729e9090dfe1257582dc353646045779d5971eb0f360ee
+AUX squirrelsh-no-strip.patch 903 SHA256 790185bd22e539f8e03391fa88a1cd2f5a63cbbedc3740357507a96d2869fb9c SHA512 1d45054e11aef3f42dbf061b342adb942c0e370fac1b5eece0561a02a2f8799c158f221450bf82a4ead772cbc73a207dea9517af945840e975c65f30bdd1f6e1 WHIRLPOOL fab6b5b1f4e4a969ed2bafbe4e5f0572eec99b0963d98096603397ddd9443cc6444f7ce57087e3522015a36b3515eb9de4eaa350ea7de4ff375e04684ac3e301
+AUX squirrelsh-remove-forced-abi.patch 653 SHA256 291eb29d5753b102427218f5381eb7b9db82057a0aa73b450458dc63c58537f9 SHA512 6e2b43c7ecff32fda8e2655722f97f48a0a92f6fe5e1e3aeb28bc3b5459fccefa3aa4c04aca016001661af229c59982caf7b09209d7004c2dd397493c873cd50 WHIRLPOOL fedcd133dc4f61a9064aa70e2933d271c804df33b5ca4de6db6a2cddd859f6c031fbcb3414a0aae443e3562fb9e550436643f318e6c25a53378c5de5045c3d07
+AUX squirrelsh-rename-LDFLAGS.patch 4981 SHA256 734a2a673918d56d7140d24fae1c2eff8a93380f53229980d61355755f95f772 SHA512 eb8058878bd23332dd58970caac5121838bd52b7a63249013b305b09a95a1ca5914a526e4d0d052772f32086d1e2237feae56bfc4549987e71a6db60ffff6cd3 WHIRLPOOL 02cd3a62f45a9561c39c6fed7f88486eb877569366a77d06ff12b8db9109e65126309afcbd260d3091ba5dce32e08dc373732fc8279e0dbc3effadb18cb05847
+DIST squirrelsh-1.2.7-src.tar.bz2 673462 SHA256 8c4745caf052b754d447dceee5a0bb529b13e9b02a6c48d004636f192a835b60 SHA512 7db82cad969ba209cae6b2d1c4cf76ba10acbf79c051f4340556ae81dc98d36dfb6f1f6993e9198e5a5254eaaab3fbaca3d01fc547c2f303572060b2093af78a WHIRLPOOL 148e324de890cfa82835f0c44ad286c5b3814a0b778816ee24b24d4ceae5e1ab5724d6c9d6205c602a63445f723ee452e0190d092b21a0bc5673911f1e52c274
+EBUILD squirrelsh-1.2.7.ebuild 1236 SHA256 5adfa33c0f320d2dd993f64ef7cddf82a76fc3f3bdcad54ad062f30a58e1eb96 SHA512 9896f2d4d7c3c0a3af6e65c86173a242064e96612dcd67b615ef5d60af5fe6b519ceedf0ee6fd509aa6b2a95245df12e7b907616541713731bbd4b2bc5d62e6f WHIRLPOOL 868c3ec4cac06f7ca885add2837b650f13eaa0ac24300a2b33c07cd5ef551ec9bf817e483622714fc89b4ad218a9cd28b68ab00a1d5a603ece41743010de5337
+MISC ChangeLog 2788 SHA256 146e0d0e02bf738c5ca1d6219c3c41d0cdf9dbfadccf9508bafc35df6c2ea2e2 SHA512 41e2e1f58cbc70354a55457e50b3cde05f9ac218e014bcf6ae83041987510438949655a0a70ea92e528e977925a53390053d1216e02ad5178d731162f1a809fd WHIRLPOOL 1d47c6d5eeacf5c975267ac6638f80d47ac9abdff6c4635ab8e8f750ce7173dafdf41679c6d71aadc92aaf61739ab015619754422c540f6aaec2296012c03764
+MISC ChangeLog-2015 1928 SHA256 9ed8ccefb3a85bcdd787aca76f4ce9630d8b2e47818590b34330d92cc1e7cd17 SHA512 0b892e29926d5ae0dd65b45b0db6b2a16e2bd5ad192df3acd1b9e36bc49c0c9a622d48a1662563768bd145e975319fee0511366f74336f057e95b70f3dddab67 WHIRLPOOL 9f9d5284ba9a71869712242a0636eff0200f29ec97148b7592cf974375f07744363e280acfb86eb37636bfa499d9f00e8bb43bd311c6f4cea4cfcc13e08bcc26
+MISC metadata.xml 332 SHA256 caa8cc8f7aa310872c4dc1baea41acdb9ab37b0e8df03fd3f5b8358f05695b8d SHA512 31dc8fbee7db81a55b9a4256dfa391404218cc076c63b72e7a980649207cc2d2716b5652f90c639270b8f1ce634724dfd3103bb7a08698b6c089f2d98100fcdb WHIRLPOOL adbf6ef0098fb73130f4082024ee08c190a4c3df148947cc83fe8e015be731a4dfcde3b677b0457c98ac4fdf4c3fe46212b57a1d21b5041c3600fa09564871ad
diff --git a/app-shells/squirrelsh/files/squirrelsh-1.2.7-gcc6.patch b/app-shells/squirrelsh/files/squirrelsh-1.2.7-gcc6.patch
new file mode 100644
index 000000000000..ea60d29dc3cb
--- /dev/null
+++ b/app-shells/squirrelsh/files/squirrelsh-1.2.7-gcc6.patch
@@ -0,0 +1,217 @@
+diff --git a/shell/base.cpp b/shell/base.cpp
+index 3a89b6d..33803c3 100644
+--- a/shell/base.cpp
++++ b/shell/base.cpp
+@@ -1,5 +1,5 @@
+ // Squirrel Shell
+-// Copyright (c) 2006-2010, Constantin Makshin
++// Copyright (c) 2006-2017, Constantin Makshin
+ //
+ // This program is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+@@ -15,6 +15,7 @@
+ // along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ #include "common.h"
++#include <algorithm>
+ #include <string.h>
+ #include <string>
+
+@@ -36,14 +37,6 @@ typedef HANDLE SysHandle;
+ typedef int SysHandle;
+ #endif
+
+-#if !defined(min)
+-# define min(a, b) ((a) < (b) ? (a) : (b))
+-#endif
+-
+-#if !defined(max)
+-# define max(a, b) ((a) > (b) ? (a) : (b))
+-#endif
+-
+ // Maximum number of command line arguments passed to the child process
+ #define MAX_ARGS 130
+ // Maximum number of environment variables passed to the child process
+@@ -177,7 +170,7 @@ static bool ReadFromPipe (SysHandle pipe, void* buffer, size_t numBytesToRead, s
+
+ if (!numBytesToRead ||
+ !PeekNamedPipe(pipe, NULL, 0, NULL, &numBytesAvailable, NULL) || !numBytesAvailable ||
+- !ReadFile(pipe, buffer, min(numBytesToRead, numBytesAvailable), &nbr, NULL) || !nbr)
++ !ReadFile(pipe, buffer, std::min(numBytesToRead, numBytesAvailable), &nbr, NULL) || !nbr)
+ {
+ return false;
+ }
+@@ -188,7 +181,7 @@ static bool ReadFromPipe (SysHandle pipe, void* buffer, size_t numBytesToRead, s
+ #else
+ int nbr = read(pipe, buffer, numBytesToRead);
+ if (numBytesRead)
+- *numBytesRead = max(nbr, 0);
++ *numBytesRead = std::max(nbr, 0);
+
+ return nbr > 0;
+ #endif
+@@ -210,7 +203,7 @@ static bool WriteToPipe (SysHandle pipe, const void* buffer, size_t numBytesToWr
+ #else
+ int nbw = write(pipe, buffer, numBytesToWrite);
+ if (numBytesWritten)
+- *numBytesWritten = max(nbw, 0);
++ *numBytesWritten = std::max(nbw, 0);
+
+ return nbw > 0;
+ #endif
+@@ -786,7 +779,7 @@ static SQInteger Run (HSQUIRRELVM)
+ // Pass data to/from child process' streams
+ std::basic_string<SQChar> output,
+ error;
+- int nfds = max(newInput[1], max(newOutput[0], newError[0])) + 1;
++ int nfds = std::max(newInput[1], std::max(newOutput[0], newError[0])) + 1;
+ for (;;)
+ {
+ // Check if there's any data available for reading/writing
+diff --git a/shell/common.h b/shell/common.h
+index 7cb4d47..461410d 100644
+--- a/shell/common.h
++++ b/shell/common.h
+@@ -1,5 +1,5 @@
+ // Squirrel Shell
+-// Copyright (c) 2006-2010, Constantin Makshin
++// Copyright (c) 2006-2017, Constantin Makshin
+ //
+ // This program is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+@@ -47,6 +47,7 @@
+ # define WIN32_LEAN_AND_MEAN
+ # define WIN64_LEAN_AND_MEAN
+ # define STRICT
++# define NOMINMAX
+ # include <windows.h>
+ #else
+ # include <unistd.h>
+@@ -88,14 +89,6 @@
+ # define MAX_PATH 260
+ #endif
+
+-#if !defined(min)
+-# define min(a, b) ((a) < (b) ? (a) : (b))
+-#endif
+-
+-#if !defined(max)
+-# define max(a, b) ((a) > (b) ? (a) : (b))
+-#endif
+-
+ #define SQUIRREL_VERSION_SHORT "3.0.3"
+
+ extern HSQUIRRELVM sqvm; // We aren't going to create more than one VM, so it's acceptable to make this global
+diff --git a/shell/hash_adler32.cpp b/shell/hash_adler32.cpp
+index c42f440..b250875 100644
+--- a/shell/hash_adler32.cpp
++++ b/shell/hash_adler32.cpp
+@@ -8,6 +8,7 @@
+ */
+
+ #include "hash.h"
++#include <algorithm>
+
+ #define BASE 65521ul
+ #define NMAX 5552
+@@ -87,7 +88,7 @@ void Hash_Adler32 (FILE* file, unsigned char* block, unsigned char* hash, SQInte
+ unsigned adler = 1;
+ do
+ {
+- size_t r = fread(block, 1, min(left, BLOCK_SIZE), file);
++ size_t r = fread(block, 1, size_t(std::min<SQInteger>(left, BLOCK_SIZE)), file);
+ adler = adler32(adler, block, r);
+ left -= SQInteger(r);
+ } while (left);
+diff --git a/shell/hash_crc32.cpp b/shell/hash_crc32.cpp
+index d18a3aa..9bcb233 100644
+--- a/shell/hash_crc32.cpp
++++ b/shell/hash_crc32.cpp
+@@ -8,6 +8,7 @@
+ */
+
+ #include "hash.h"
++#include <algorithm>
+
+ static unsigned crc_table[256];
+
+@@ -63,7 +64,7 @@ void Hash_CRC32 (FILE* file, unsigned char* block, unsigned char* hash, SQIntege
+ unsigned crc = 0;
+ do
+ {
+- size_t r = fread(block, 1, min(left, BLOCK_SIZE), file);
++ size_t r = fread(block, 1, size_t(std::min<SQInteger>(left, BLOCK_SIZE)), file);
+ crc = crc32(crc, block, r);
+ left -= SQInteger(r);
+ } while (left);
+diff --git a/shell/hash_md5.cpp b/shell/hash_md5.cpp
+index b1a3c2a..a82d4c5 100644
+--- a/shell/hash_md5.cpp
++++ b/shell/hash_md5.cpp
+@@ -20,6 +20,7 @@
+ */
+
+ #include "hash.h"
++#include <algorithm>
+
+ struct MD5Context
+ {
+@@ -201,7 +202,7 @@ void Hash_MD5 (FILE* file, unsigned char* block, unsigned char* hash, SQInteger
+ MD5Init(&ctx);
+ do
+ {
+- size_t r = fread(block, 1, min(left, BLOCK_SIZE), file);
++ size_t r = fread(block, 1, size_t(std::min<SQInteger>(left, BLOCK_SIZE)), file);
+ MD5Update(&ctx, block, r);
+ left -= SQInteger(r);
+ } while (left);
+diff --git a/shell/util.cpp b/shell/util.cpp
+index 48983f6..6d0d199 100644
+--- a/shell/util.cpp
++++ b/shell/util.cpp
+@@ -1,5 +1,5 @@
+ // Squirrel Shell
+-// Copyright (c) 2006-2009, Constantin Makshin
++// Copyright (c) 2006-2017, Constantin Makshin
+ //
+ // This program is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+@@ -15,6 +15,7 @@
+ // along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ #include "common.h"
++#include <algorithm>
+ #include <string.h>
+ #include <ctype.h>
+
+@@ -123,8 +124,12 @@ SQInteger TimeToInt (unsigned year, unsigned month, unsigned day, unsigned hour,
+ --day;
+
+ DateAndTime result;
+- result.dt.time = (min(hour, 23) * 3600) + (min(minute, 59) * 60) + min(second, 59);
+- result.dt.date = (min(year, NUM_YEARS) * 372) + (min(month, 11) * 31) + min(day, NumberOfDays(month, year) - 1);
++ result.dt.time = (std::min<SQInteger>(hour, 23) * 3600)
++ + (std::min<SQInteger>(minute, 59) * 60)
++ + std::min<SQInteger>(second, 59);
++ result.dt.date = (std::min<SQInteger>(year, NUM_YEARS) * 372)
++ + (std::min<SQInteger>(month, 11) * 31)
++ + std::min<SQInteger>(day, NumberOfDays(month, year) - 1);
+ return result.value;
+ }
+
+@@ -798,8 +803,13 @@ static SQInteger MkTime (HSQUIRRELVM)
+ sq_getinteger(sqvm, 5, &hour);
+ sq_getinteger(sqvm, 6, &minute);
+ sq_getinteger(sqvm, 7, &second);
+- sq_pushinteger(sqvm, TimeToInt(unsigned(max(year, MIN_YEAR)), unsigned(max(month, 1)), unsigned(max(day, 1)),
+- unsigned(max(hour, 0)), unsigned(max(minute, 0)), unsigned(max(second, 0))));
++ sq_pushinteger(sqvm,
++ TimeToInt(unsigned(std::max<SQInteger>(year, MIN_YEAR)),
++ unsigned(std::max<SQInteger>(month, 1)),
++ unsigned(std::max<SQInteger>(day, 1)),
++ unsigned(std::max<SQInteger>(hour, 0)),
++ unsigned(std::max<SQInteger>(minute, 0)),
++ unsigned(std::max<SQInteger>(second, 0))));
+ return 1;
+ }
+
diff --git a/app-shells/squirrelsh/files/squirrelsh-fix-in_LDFLAGS.patch b/app-shells/squirrelsh/files/squirrelsh-fix-in_LDFLAGS.patch
new file mode 100644
index 000000000000..71319c0cc7f4
--- /dev/null
+++ b/app-shells/squirrelsh/files/squirrelsh-fix-in_LDFLAGS.patch
@@ -0,0 +1,12 @@
+diff -Naur squirrelsh-1.2.6.orig//configure squirrelsh-1.2.6/configure
+--- squirrelsh-1.2.6.orig//configure 2012-03-12 21:45:25.000000000 -0400
++++ squirrelsh-1.2.6/configure 2012-03-12 21:50:36.000000000 -0400
+@@ -1138,7 +1138,7 @@
+ in_INSTALL_EXE="$installer -c -m 0755 \"\$(target)\" \"$bindir/\$(target_name)\""
+
+ if [ "$with_pcre" = "local" ] || [ "$with_squirrel" = "local" ]; then
+- in_LDFLAGS="-L\"$source_dir/lib\""
++ in_LDFLAGS="$in_LDFLAGS -L\"$source_dir/lib\""
+ fi
+
+ if [ -n "$pkgconfig" ]; then
diff --git a/app-shells/squirrelsh/files/squirrelsh-no-docs.patch b/app-shells/squirrelsh/files/squirrelsh-no-docs.patch
new file mode 100644
index 000000000000..2ed4d0160bf4
--- /dev/null
+++ b/app-shells/squirrelsh/files/squirrelsh-no-docs.patch
@@ -0,0 +1,25 @@
+diff -Naur squirrelsh-1.2.6.orig//Makefile.in squirrelsh-1.2.6/Makefile.in
+--- squirrelsh-1.2.6.orig//Makefile.in 2011-12-16 13:25:08.000000000 -0500
++++ squirrelsh-1.2.6/Makefile.in 2012-03-12 21:58:50.000000000 -0400
+@@ -19,14 +19,6 @@
+ @MAKE_PCRE@
+ @MAKE_SQUIRREL@
+ @MAKE_SHELL@
+- @INSTALL@ -d -m 0755 "@DOCDIR@"
+- @INSTALL@ -c -m 0644 COPYING "@DOCDIR@"
+- @INSTALL@ -c -m 0644 COPYING-squirrel "@DOCDIR@"
+- @INSTALL@ -c -m 0644 COPYING-zlib "@DOCDIR@"
+- @INSTALL@ -c -m 0644 HISTORY "@DOCDIR@"
+- @INSTALL@ -c -m 0644 README "@DOCDIR@"
+- @INSTALL@ -c -m 0644 doc/squirrel3.pdf "@DOCDIR@"
+- @INSTALL@ -c -m 0644 doc/squirrelsh.pdf "@DOCDIR@"
+ @INSTALL@ -d -m 0755 "@MANDIR@"
+ @INSTALL@ -c -m 0644 doc/squirrelsh.1 "@MANDIR@"
+ @INSTALL_MIME@
+@@ -35,6 +27,5 @@
+ @MAKE_PCRE@
+ @MAKE_SQUIRREL@
+ @MAKE_SHELL@
+- @RMDIR@ "@DOCDIR@"
+ @RM@ "@MANDIR@/squirrelsh.1"
+ @UNINSTALL_MIME@
diff --git a/app-shells/squirrelsh/files/squirrelsh-no-strip.patch b/app-shells/squirrelsh/files/squirrelsh-no-strip.patch
new file mode 100644
index 000000000000..cf0286c5c562
--- /dev/null
+++ b/app-shells/squirrelsh/files/squirrelsh-no-strip.patch
@@ -0,0 +1,19 @@
+diff -Naur squirrelsh-1.2.6.orig//configure squirrelsh-1.2.6/configure
+--- squirrelsh-1.2.6.orig//configure 2012-03-12 20:19:01.000000000 -0400
++++ squirrelsh-1.2.6/configure 2012-03-12 20:32:25.000000000 -0400
+@@ -1163,7 +1163,6 @@
+ [ -z "$CFLAGS" ] && in_CFLAGS="$in_CFLAGS -fomit-frame-pointer"
+ [ -z "$CXXFLAGS" ] && in_CXXFLAGS="$in_CXXFLAGS -fomit-frame-pointer"
+ in_DEFINES="-DNDEBUG"
+- [ -z "$LDFLAGS" ] && in_LDFLAGS="$in_LDFLAGS -s"
+ fi
+
+ if [ "$with_pcre" = "local" ] && [ "$with_libraries" = "static" ]; then
+@@ -1233,7 +1232,6 @@
+ in_CXXFLAGS_LIB="$in_CXXFLAGS -fPIC"
+ in_MAKE_LIB="$linker -shared $in_LDFLAGS -o \"\$(target)\" \$(objects)"
+ in_INSTALL_LIB="$installer -c -m 0755 \"\$(target)\" \"$libdir\""
+- [ "$with_strip" ] && in_INSTALL_LIB="$in_INSTALL_LIB \\&\\& strip --strip-unneeded \"$libdir/\$(target_name)\""
+ in_UNINSTALL_LIB="rm -f \"$libdir/\$(target_name)\""
+ fi
+
diff --git a/app-shells/squirrelsh/files/squirrelsh-remove-forced-abi.patch b/app-shells/squirrelsh/files/squirrelsh-remove-forced-abi.patch
new file mode 100644
index 000000000000..d9a5f0b34fe1
--- /dev/null
+++ b/app-shells/squirrelsh/files/squirrelsh-remove-forced-abi.patch
@@ -0,0 +1,21 @@
+diff -Naur squirrelsh-1.2.6.orig//configure squirrelsh-1.2.6/configure
+--- squirrelsh-1.2.6.orig//configure 2012-03-12 22:02:40.000000000 -0400
++++ squirrelsh-1.2.6/configure 2012-03-12 22:05:42.000000000 -0400
+@@ -1172,15 +1172,10 @@
+ # ... CFLAGS, CXXFLAGS, DEFINES, LDFLAGS (machine-dependent)
+ case "$target" in
+ x86)
+- in_CFLAGS="-m32 $in_CFLAGS"
+- in_CXXFLAGS="-m32 $in_CXXFLAGS"
+- in_LDFLAGS="-m32 $in_LDFLAGS";;
++ :;;
+
+ x86_64)
+- in_CFLAGS="-m64 $in_CFLAGS"
+- in_CXXFLAGS="-m64 $in_CXXFLAGS"
+- in_DEFINES="$in_DEFINES -D_SQ64"
+- in_LDFLAGS="-m64 $in_LDFLAGS";;
++ in_DEFINES="$in_DEFINES -D_SQ64";;
+
+ ia64)
+ in_DEFINES="$in_DEFINES -D_SQ64";;
diff --git a/app-shells/squirrelsh/files/squirrelsh-rename-LDFLAGS.patch b/app-shells/squirrelsh/files/squirrelsh-rename-LDFLAGS.patch
new file mode 100644
index 000000000000..0c36d7548623
--- /dev/null
+++ b/app-shells/squirrelsh/files/squirrelsh-rename-LDFLAGS.patch
@@ -0,0 +1,140 @@
+diff -Naur squirrelsh-1.2.6.orig//configure squirrelsh-1.2.6/configure
+--- squirrelsh-1.2.6.orig//configure 2010-11-09 13:16:43.000000000 -0500
++++ squirrelsh-1.2.6/configure 2012-03-12 20:19:01.000000000 -0400
+@@ -55,8 +55,8 @@
+ with_ranlib="yes" # yes, no
+ linker="$cpp_compiler"
+
+-if [ -n "$LFLAGS" ]; then
+- linker_flags="$LFLAGS"
++if [ -n "$LDFLAGS" ]; then
++ linker_flags="$LDFLAGS"
+ else
+ linker_flags="-Wl,-O1 -Wl,--as-needed"
+ fi
+@@ -136,7 +136,7 @@
+ CFLAGS C compiler options
+ CXX C++ compiler
+ CXXFLAGS C++ compiler options
+- LFLAGS Linker options
++ LDFLAGS Linker options
+ __SHEOF__
+ closescript
+ }
+@@ -275,7 +275,7 @@
+ return 1
+ }
+
+-# getoutput CPPFLAGS LFLAGS
++# getoutput CPPFLAGS LDFLAGS
+ # Compile C++ code and run the compiled program
+ getoutput ()
+ {
+@@ -824,7 +824,7 @@
+ checkforlinkeroption || msg_fail
+
+ # Check for optional linker options
+-if [ -z "$LFLAGS" ]; then
++if [ -z "$LDFLAGS" ]; then
+ checkforlinkeroption "-pipe" || msg_result "no"
+ checkforlinkeroption "-flto" y || msg_result "no"
+ fi
+@@ -1131,27 +1131,27 @@
+ #------ CREATE MAKEFILES --------------------------------------------------------------------------
+
+ # Define variables for substitution
+-# ... CFLAGS, CXXFLAGS, DEFINES, LFLAGS, INSTALL_EXE (machine-independent)
++# ... CFLAGS, CXXFLAGS, DEFINES, LDFLAGS, INSTALL_EXE (machine-independent)
+ in_CFLAGS="-c $c_compiler_flags"
+ in_CXXFLAGS="-c $cpp_compiler_flags"
+-in_LFLAGS="$linker_flags"
++in_LDFLAGS="$linker_flags"
+ in_INSTALL_EXE="$installer -c -m 0755 \"\$(target)\" \"$bindir/\$(target_name)\""
+
+ if [ "$with_pcre" = "local" ] || [ "$with_squirrel" = "local" ]; then
+- in_LFLAGS="-L\"$source_dir/lib\""
++ in_LDFLAGS="-L\"$source_dir/lib\""
+ fi
+
+ if [ -n "$pkgconfig" ]; then
+ if [ "$with_pcre" = "system" ]; then
+ in_CFLAGS="$in_CFLAGS `$pkgconfig --cflags-only-other libpcre`"
+ in_CXXFLAGS="$in_CXXFLAGS `$pkgconfig --cflags-only-other libpcre`"
+- in_LFLAGS="$in_LFLAGS `$pkgconfig --libs-only-other --libs-only-L libpcre`"
++ in_LDFLAGS="$in_LDFLAGS `$pkgconfig --libs-only-other --libs-only-L libpcre`"
+ fi
+
+ if [ "$with_squirrel" = "system" ]; then
+ in_CFLAGS="$in_CFLAGS `$pkgconfig --cflags-only-other libsquirrel`"
+ in_CXXFLAGS="$in_CXXFLAGS `$pkgconfig --cflags-only-other libsquirrel`"
+- in_LFLAGS="$in_LFLAGS `$pkgconfig --libs-only-other --libs-only-L libsquirrel`"
++ in_LDFLAGS="$in_LDFLAGS `$pkgconfig --libs-only-other --libs-only-L libsquirrel`"
+ fi
+ fi
+
+@@ -1163,25 +1163,25 @@
+ [ -z "$CFLAGS" ] && in_CFLAGS="$in_CFLAGS -fomit-frame-pointer"
+ [ -z "$CXXFLAGS" ] && in_CXXFLAGS="$in_CXXFLAGS -fomit-frame-pointer"
+ in_DEFINES="-DNDEBUG"
+- [ -z "$LFLAGS" ] && in_LFLAGS="$in_LFLAGS -s"
++ [ -z "$LDFLAGS" ] && in_LDFLAGS="$in_LDFLAGS -s"
+ fi
+
+ if [ "$with_pcre" = "local" ] && [ "$with_libraries" = "static" ]; then
+ in_DEFINES="$in_DEFINES -DPCRE_STATIC"
+ fi
+
+-# ... CFLAGS, CXXFLAGS, DEFINES, LFLAGS (machine-dependent)
++# ... CFLAGS, CXXFLAGS, DEFINES, LDFLAGS (machine-dependent)
+ case "$target" in
+ x86)
+ in_CFLAGS="-m32 $in_CFLAGS"
+ in_CXXFLAGS="-m32 $in_CXXFLAGS"
+- in_LFLAGS="-m32 $in_LFLAGS";;
++ in_LDFLAGS="-m32 $in_LDFLAGS";;
+
+ x86_64)
+ in_CFLAGS="-m64 $in_CFLAGS"
+ in_CXXFLAGS="-m64 $in_CXXFLAGS"
+ in_DEFINES="$in_DEFINES -D_SQ64"
+- in_LFLAGS="-m64 $in_LFLAGS";;
++ in_LDFLAGS="-m64 $in_LDFLAGS";;
+
+ ia64)
+ in_DEFINES="$in_DEFINES -D_SQ64";;
+@@ -1223,7 +1223,7 @@
+
+ # Work around Apple's linker behavior ("-L../lib" linker option seems to be ignored)
+ if [ "$platform" = "macosx" ]; then
+- #in_LFLAGS="$in_LFLAGS -search_paths_first"
++ #in_LDFLAGS="$in_LDFLAGS -search_paths_first"
+ [ "$with_pcre" = "local" ] && in_LIBS=`echo "$in_LIBS" | $sed -e "s@-lpcre@../lib/libpcre$lib_suffix@"`
+ [ "$with_squirrel" = "local" ] && in_LIBS=`echo "$in_LIBS" | $sed -e "s@-lsquirrel@../lib/libsquirrel$lib_suffix@"`
+ fi
+@@ -1231,7 +1231,7 @@
+ in_LIB_EXT="$dll_suffix"
+ in_CFLAGS_LIB="$in_CFLAGS -fPIC"
+ in_CXXFLAGS_LIB="$in_CXXFLAGS -fPIC"
+- in_MAKE_LIB="$linker -shared $in_LFLAGS -o \"\$(target)\" \$(objects)"
++ in_MAKE_LIB="$linker -shared $in_LDFLAGS -o \"\$(target)\" \$(objects)"
+ in_INSTALL_LIB="$installer -c -m 0755 \"\$(target)\" \"$libdir\""
+ [ "$with_strip" ] && in_INSTALL_LIB="$in_INSTALL_LIB \\&\\& strip --strip-unneeded \"$libdir/\$(target_name)\""
+ in_UNINSTALL_LIB="rm -f \"$libdir/\$(target_name)\""
+@@ -1274,7 +1274,7 @@
+ s#@LINK@#$linker#
+ s#@EXE_EXT@#$exe_suffix#
+ s#@LIB_EXT@#$in_LIB_EXT#
+-s#@MAKE_EXE@#$linker $in_LFLAGS -o "\$(target)" \$(objects) $in_LIBS#
++s#@MAKE_EXE@#$linker $in_LDFLAGS -o "\$(target)" \$(objects) $in_LIBS#
+ s#@MAKE_LIB@#$in_MAKE_LIB#
+ s#@MAKE_PCRE@#$in_MAKE_PCRE#
+ s#@MAKE_SHELL@#@cd shell \&\& \$(MAKE) \$@#
+@@ -1285,7 +1285,7 @@
+ s#@CXXFLAGS_EXE@#$in_CXXFLAGS_EXE#
+ s#@CFLAGS_LIB@#$in_CFLAGS_LIB#
+ s#@CXXFLAGS_LIB@#$in_CXXFLAGS_LIB#
+-s#@LFLAGS@#$in_LFLAGS#
++s#@LDFLAGS@#$in_LDFLAGS#
+ s#@DEFINES@#$in_DEFINES#
+ s#@INCLUDES@#$in_INCLUDES#
+ s#@LIBS@#$in_LIBS#
diff --git a/app-shells/squirrelsh/metadata.xml b/app-shells/squirrelsh/metadata.xml
new file mode 100644
index 000000000000..0fe0aa7bcf32
--- /dev/null
+++ b/app-shells/squirrelsh/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="sourceforge">squirrelsh</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-shells/squirrelsh/squirrelsh-1.2.7.ebuild b/app-shells/squirrelsh/squirrelsh-1.2.7.ebuild
new file mode 100644
index 000000000000..9e5aaceff7b0
--- /dev/null
+++ b/app-shells/squirrelsh/squirrelsh-1.2.7.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="4"
+
+inherit eutils multilib toolchain-funcs
+
+DESCRIPTION="Cross-platform object-oriented scripting shell using the squirrel language"
+HOMEPAGE="http://squirrelsh.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}-src.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="doc"
+
+RDEPEND="dev-libs/libpcre"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-rename-LDFLAGS.patch
+ epatch "${FILESDIR}"/${PN}-no-strip.patch
+ epatch "${FILESDIR}"/${PN}-fix-in_LDFLAGS.patch
+ epatch "${FILESDIR}"/${PN}-remove-forced-abi.patch
+ epatch "${FILESDIR}"/${PN}-no-docs.patch
+ epatch "${FILESDIR}"/${P}-gcc6.patch
+}
+
+src_configure() {
+ #This package uses a custom written configure script
+ ./configure --prefix="${D}"/usr \
+ --with-cc="$(tc-getCC)" \
+ --with-cpp="$(tc-getCXX)" \
+ --with-linker="$(tc-getCXX)" \
+ --libdir=/usr/"$(get_libdir)" \
+ --with-pcre="system" \
+ --with-squirrel="local" \
+ --with-mime=no || die "configure failed"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ doman doc/${PN}.1
+ dodoc HISTORY INSTALL README
+ use doc && dodoc doc/*.pdf
+}