mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-22 19:44:21 +01:00
network/felinks: Updated for version 0.15.0.
Signed-off-by: Dave Woodfall <dave@slackbuilds.org> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
83ec1777e9
commit
2930703049
8 changed files with 10 additions and 309 deletions
|
@ -25,8 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
|
|||
|
||||
PRGNAM=felinks
|
||||
SRCNAM=elinks
|
||||
VERSION=${VERSION:-08da1d8}
|
||||
COMMIT=${COMMIT:-08da1d87eb74e082ca7aae8c81d2518a4415f3a7}
|
||||
VERSION=${VERSION:-0.15.0}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
PKGTYPE=${PKGTYPE:-tgz}
|
||||
|
@ -73,9 +72,9 @@ set -e
|
|||
rm -rf $PKG
|
||||
mkdir -p $TMP $PKG $OUTPUT
|
||||
cd $TMP
|
||||
rm -rf $SRCNAM-$COMMIT
|
||||
tar xvf $CWD/$SRCNAM-$COMMIT.tar.?z
|
||||
cd $SRCNAM-$COMMIT
|
||||
rm -rf $SRCNAM-$VERSION
|
||||
tar xvf $CWD/$SRCNAM-$VERSION.tar.?z
|
||||
cd $SRCNAM-$VERSION
|
||||
chown -R root:root .
|
||||
find -L . \
|
||||
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
|
||||
|
@ -83,11 +82,6 @@ find -L . \
|
|||
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
||||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
|
||||
|
||||
for patch in $CWD/patches/*; do
|
||||
printf "\n%s\n" "Applying Patch $( basename $patch )"
|
||||
patch --verbose -p1 < $patch
|
||||
done
|
||||
|
||||
## System
|
||||
[ "${FASTMEM:-no}" = "yes" ] && fastmem="--enable-fastmem"
|
||||
[ "${DEBUG:-no}" = "yes" ] && debug="--enable-debug --disable-fastmem"
|
||||
|
@ -183,9 +177,8 @@ LDFLAGS="$SLKLDFLAGS" \
|
|||
# Don't clobber the one supplied by glibc-i18n.
|
||||
rm -f $PKG/usr/share/locale/locale.alias
|
||||
|
||||
if [ "$DEBUG" = "no" ]; then
|
||||
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" |
|
||||
grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
|
||||
if [ "${DEBUG:-no}" = "no" ]; then
|
||||
strip --strip-unneeded $PKG/usr/bin/$SRCNAM
|
||||
fi
|
||||
|
||||
find $PKG/usr/man -type f -exec gzip -9 {} \;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
PRGNAM="felinks"
|
||||
VERSION="08da1d8"
|
||||
HOMEPAGE="https://github.com/rkd77/felinks"
|
||||
DOWNLOAD="https://github.com/rkd77/felinks/archive/08da1d87eb74e082ca7aae8c81d2518a4415f3a7/elinks-08da1d87eb74e082ca7aae8c81d2518a4415f3a7.tar.gz"
|
||||
MD5SUM="58032b24cc7fea37ca6afeffd15d4d54"
|
||||
VERSION="0.15.0"
|
||||
HOMEPAGE="https://github.com/rkd77/elinks"
|
||||
DOWNLOAD="https://github.com/rkd77elinks/archive/v0.15.0/elinks-0.15.0.tar.gz"
|
||||
MD5SUM="52028102283424664c2ac2bdd23e991f"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
REQUIRES=""
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
################################################################
|
||||
# Fix for HTML links that contain URL:http://
|
||||
# dave@slackbuilds.org
|
||||
###############################################################
|
||||
diff -Naur a/src/protocol/gopher/gopher.c b/src/protocol/gopher/gopher.c
|
||||
--- a/src/protocol/gopher/gopher.c 2013-12-18 15:38:57.000000000 +0000
|
||||
+++ b/src/protocol/gopher/gopher.c 2020-01-08 05:34:02.300498220 +0000
|
||||
@@ -277,6 +277,10 @@
|
||||
struct string command;
|
||||
enum gopher_entity entity = DEFAULT_GOPHER_ENTITY;
|
||||
unsigned char *selector = conn->uri->data;
|
||||
+ unsigned char const* URI = "hURI%3";
|
||||
+ unsigned char const* URL = "hURL%3";
|
||||
+ unsigned char const* CURI = "HURI%3";
|
||||
+ unsigned char const* CURL = "HURL%3";
|
||||
int selectorlen = conn->uri->datalen;
|
||||
struct gopher_entity_info *entity_info;
|
||||
size_t size;
|
||||
@@ -288,6 +292,18 @@
|
||||
selectorlen--;
|
||||
}
|
||||
|
||||
+ if(strstr(selector, URL) != NULL || strstr(selector, URI) != NULL) {
|
||||
+ entity = GOPHER_HTML;
|
||||
+ selector++;
|
||||
+ selectorlen--;
|
||||
+ }
|
||||
+
|
||||
+ if(strstr(selector, CURL) != NULL || strstr(selector, CURI) != NULL) {
|
||||
+ entity = GOPHER_CHTML;
|
||||
+ selector++;
|
||||
+ selectorlen--;
|
||||
+ }
|
||||
+
|
||||
/* This is probably a hack. It serves as a work around when no entity is
|
||||
* available in the Gopher URI. Instead of segfaulting later the content
|
||||
* will be served as application/octet-stream. However, it could
|
|
@ -1,113 +0,0 @@
|
|||
#######################################################################
|
||||
# Fix for type 7 entities.
|
||||
# dave@slackbuilds.org
|
||||
#######################################################################
|
||||
diff -Naur '--exclude=.git' bb/src/protocol/gopher/gopher.c cc/src/protocol/gopher/gopher.c
|
||||
--- bb/src/protocol/gopher/gopher.c 2020-01-13 22:35:13.663935305 +0000
|
||||
+++ cc/src/protocol/gopher/gopher.c 2020-01-13 23:16:00.053003768 +0000
|
||||
@@ -197,7 +197,7 @@
|
||||
command->length = strlen(command->source);
|
||||
}
|
||||
|
||||
-static struct connection_state init_gopher_index_cache_entry(struct connection *conn);
|
||||
+/* static struct connection_state init_gopher_index_cache_entry(struct connection *conn); */
|
||||
|
||||
static struct connection_state
|
||||
add_gopher_command(struct connection *conn, struct string *command,
|
||||
@@ -205,7 +205,7 @@
|
||||
unsigned char *selector, int selectorlen)
|
||||
{
|
||||
unsigned char *query;
|
||||
- int querylen;
|
||||
+ int querylen = 0;
|
||||
|
||||
if (!init_string(command))
|
||||
return connection_state(S_OUT_OF_MEM);
|
||||
@@ -218,13 +218,14 @@
|
||||
/* Exclude '?' */
|
||||
if (query) selectorlen -= 1;
|
||||
query = NULL;
|
||||
- querylen = 0;
|
||||
- } else {
|
||||
- query += 1;
|
||||
+ } else if (entity == GOPHER_INDEX) {
|
||||
+ /* fix query size to not include the search= part */
|
||||
+ query += 8;
|
||||
querylen = selector + selectorlen - query;
|
||||
/* Exclude '?' */
|
||||
- selectorlen -= querylen + 1;
|
||||
- if (querylen >= 7 && !c_strncasecmp(query, "search=", 7)) {
|
||||
+ /* fix selector length to fit with query */
|
||||
+ selectorlen -= querylen + 8;
|
||||
+ if (querylen >= 7 && !c_strncasecmp(query, "submit=", 7)) {
|
||||
query += 7;
|
||||
querylen -= 7;
|
||||
}
|
||||
@@ -233,9 +234,11 @@
|
||||
switch (entity) {
|
||||
case GOPHER_INDEX:
|
||||
/* No search required? */
|
||||
+ /* Don't display the form page */
|
||||
if (!query) {
|
||||
done_string(command);
|
||||
- return init_gopher_index_cache_entry(conn);
|
||||
+ add_uri_decoded(command, selector, selectorlen, 0);
|
||||
+ break;
|
||||
}
|
||||
|
||||
add_uri_decoded(command, selector, selectorlen, 0);
|
||||
@@ -371,13 +374,14 @@
|
||||
add_gopher_search_field(struct string *buffer, const unsigned char *text,
|
||||
const unsigned char *addr)
|
||||
{
|
||||
+ /* Not *every* query is a search! */
|
||||
add_format_to_string(buffer,
|
||||
"<form action=\"%s\">"
|
||||
"<table>"
|
||||
"<td> </td>"
|
||||
"<td>%s:</td>"
|
||||
- "<td><input maxlength=\"256\" name=\"search\" value=\"\"></td>"
|
||||
- "<td><input type=submit value=\"Search\"></td>"
|
||||
+ "<td><input maxlength=\"256\" name=\"submit\" value=\"\"></td>"
|
||||
+ "<td><input type=submit value=\"Submit\"></td>"
|
||||
"</table>"
|
||||
"</form>",
|
||||
addr, text);
|
||||
@@ -662,6 +666,7 @@
|
||||
}
|
||||
|
||||
/* Display a Gopher Index document. */
|
||||
+/* Use the page that the gopher site sends us
|
||||
static struct connection_state
|
||||
init_gopher_index_cache_entry(struct connection *conn)
|
||||
{
|
||||
@@ -674,9 +679,9 @@
|
||||
|
||||
where = get_uri_string(conn->uri, URI_PUBLIC);
|
||||
|
||||
- /* TODO: Use different function when using UTF-8
|
||||
+ TODO: Use different function when using UTF-8
|
||||
* in terminal (decode_uri_for_display replaces
|
||||
- * bytes of UTF-8 characters width '*'). */
|
||||
+ * bytes of UTF-8 characters width '*'). *
|
||||
if (where) decode_uri_for_display(where);
|
||||
|
||||
add_format_to_string(&buffer,
|
||||
@@ -695,7 +700,7 @@
|
||||
|
||||
mem_free_if(where);
|
||||
|
||||
- /* FIXME: I think this needs a form or something */
|
||||
+ * FIXME: I think this needs a form or something *
|
||||
|
||||
add_fragment(conn->cached, conn->from, buffer.source, buffer.length);
|
||||
conn->from += buffer.length;
|
||||
@@ -707,7 +712,7 @@
|
||||
? connection_state(S_OK)
|
||||
: connection_state(S_OUT_OF_MEM);
|
||||
}
|
||||
-
|
||||
+*/
|
||||
|
||||
static void
|
||||
read_gopher_response_data(struct socket *socket, struct read_buffer *rb)
|
|
@ -1,26 +0,0 @@
|
|||
#######################################################################
|
||||
# Fix remote directory links.
|
||||
# dave@slackbuilds.org
|
||||
#######################################################################
|
||||
diff -Naur -x .git bb/src/protocol/gopher/gopher.c cc/src/protocol/gopher/gopher.c
|
||||
--- bb/src/protocol/gopher/gopher.c 2020-01-13 23:22:18.918292198 +0000
|
||||
+++ cc/src/protocol/gopher/gopher.c 2020-01-13 23:21:00.631960039 +0000
|
||||
@@ -321,6 +321,18 @@
|
||||
selectorlen++;
|
||||
}
|
||||
|
||||
+ if (entity_info->type == '1') {
|
||||
+ if (strchr(selector, '1') == (char *) selector) {
|
||||
+ selector++;
|
||||
+ selectorlen--;
|
||||
+ }
|
||||
+ else {
|
||||
+ if ((char *) selector == "/1") {
|
||||
+ selectorlen--;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
state = add_gopher_command(conn, &command, entity, selector, selectorlen);
|
||||
if (!is_in_state(state, S_CONN))
|
||||
return state;
|
|
@ -1,50 +0,0 @@
|
|||
diff -Naur a/src/protocol/gopher/gopher.c b/src/protocol/gopher/gopher.c
|
||||
--- a/src/protocol/gopher/gopher.c 2020-01-31 16:50:36.000000000 +0000
|
||||
+++ b/src/protocol/gopher/gopher.c 2020-05-14 06:21:44.523952135 +0000
|
||||
@@ -283,7 +283,7 @@
|
||||
|
||||
/* Get entity type, and selector string. */
|
||||
/* Pick up gopher_entity */
|
||||
- if (selectorlen > 1 && selector[1] == '/') {
|
||||
+ if (selectorlen > 1) {
|
||||
entity = *selector++;
|
||||
selectorlen--;
|
||||
}
|
||||
@@ -308,6 +308,18 @@
|
||||
selectorlen--;
|
||||
}
|
||||
|
||||
+ if (entity_info->type == '1') {
|
||||
+ if (strchr(selector, '1') == (char *) selector) {
|
||||
+ selector++;
|
||||
+ selectorlen--;
|
||||
+ }
|
||||
+ else {
|
||||
+ if ((char *) selector == "/1") {
|
||||
+ selectorlen--;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
state = add_gopher_command(conn, &command, entity, selector, selectorlen);
|
||||
if (!is_in_state(state, S_CONN))
|
||||
return state;
|
||||
@@ -548,7 +560,8 @@
|
||||
|
||||
} else if (address.length > 0
|
||||
&& strlcmp(address.source, address.length - 1,
|
||||
- "gopher://error.host:1/", -1)) {
|
||||
+ "gopher://error.host:1/", -1)
|
||||
+ && selector) {
|
||||
add_gopher_link(buffer, name, address.source);
|
||||
|
||||
} else {
|
||||
@@ -571,7 +584,7 @@
|
||||
if (data[0] == ASCII_CR && data[1] == ASCII_LF)
|
||||
return data + 2;
|
||||
|
||||
- if (data[0] == ASCII_LF)
|
||||
+ if (data[0] == ASCII_CR || data[0] == ASCII_LF)
|
||||
return data + 1;
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
#######################################################################
|
||||
# Fix index listings with only LF and no CRs.
|
||||
# dave@slackbuilds.org
|
||||
#######################################################################
|
||||
diff -Naur '--exclude=.git' bb/src/protocol/gopher/gopher.c cc/src/protocol/gopher/gopher.c
|
||||
--- bb/src/protocol/gopher/gopher.c 2020-01-14 06:42:11.030536586 +0000
|
||||
+++ cc/src/protocol/gopher/gopher.c 2020-01-14 06:42:26.710000886 +0000
|
||||
@@ -757,6 +757,11 @@
|
||||
switch (gopher->entity->type) {
|
||||
case GOPHER_DIRECTORY:
|
||||
case GOPHER_INDEX:
|
||||
+ /* Lines with no carriage returns */
|
||||
+ if (strchr(rb->data, ASCII_CR) == NULL) {
|
||||
+ strncat(rb->data, "\r\n", 2);
|
||||
+ rb->length += 3;
|
||||
+ }
|
||||
state = read_gopher_directory_data(conn, rb);
|
||||
break;
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
###################################################################
|
||||
# Encode < > to HTML.
|
||||
###################################################################
|
||||
diff -Naur '--exclude=.git' bb/src/protocol/gopher/gopher.c cc/src/protocol/gopher/gopher.c
|
||||
--- bb/src/protocol/gopher/gopher.c 2020-01-14 03:26:41.791778387 +0000
|
||||
+++ cc/src/protocol/gopher/gopher.c 2020-01-14 06:19:56.964025440 +0000
|
||||
@@ -620,6 +620,25 @@
|
||||
return line[0] == '.' && !line[1] ? NULL : line;
|
||||
}
|
||||
|
||||
+/* substring replacement */
|
||||
+static void
|
||||
+str_replace(char * in_string, char * s_string, char * r_string)
|
||||
+{
|
||||
+ /* max == replace all characters */
|
||||
+ char temp[strlen(in_string) * (strlen(r_string) - strlen(s_string)) + 1];
|
||||
+ char * pos;
|
||||
+
|
||||
+ if (!(pos = strstr(in_string, s_string)))
|
||||
+ return;
|
||||
+
|
||||
+ strncpy(temp, in_string, pos - in_string);
|
||||
+ temp[pos - in_string] = 0;
|
||||
+ sprintf(temp + (pos - in_string), "%s%s", r_string, pos + 1);
|
||||
+ in_string[0] = 0;
|
||||
+ strcpy(in_string, temp);
|
||||
+ return str_replace(in_string, s_string, r_string);
|
||||
+}
|
||||
+
|
||||
/* Parse a Gopher Menu document */
|
||||
static struct connection_state
|
||||
read_gopher_directory_data(struct connection *conn, struct read_buffer *rb)
|
||||
@@ -639,6 +658,14 @@
|
||||
return connection_state(S_OUT_OF_MEM);
|
||||
}
|
||||
|
||||
+ /* Lines with characters that need to be converted to html */
|
||||
+ if (strstr(rb->data, "<")) {
|
||||
+ str_replace(rb->data, "<", "<");
|
||||
+ }
|
||||
+ if (strstr(rb->data, ">")) {
|
||||
+ str_replace(rb->data, ">", ">");
|
||||
+ }
|
||||
+
|
||||
while ((end = get_gopher_line_end(rb->data, rb->length))) {
|
||||
unsigned char *line = check_gopher_last_line(rb->data, end);
|
||||
|
Loading…
Reference in a new issue