diff options
author | EWouters <6179932+EWouters@users.noreply.github.com> | 2022-04-12 18:08:50 +0200 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2022-05-07 17:00:39 +0200 |
commit | a07e12609e31b13dd6de04692defbc9e9ffa729f (patch) | |
tree | 86d13de5cb24391f36ce55bbe99cf714e5b3490f | |
parent | 020235a841f61e922dddb8eceb8cb511cf92d32b (diff) | |
download | serenity-a07e12609e31b13dd6de04692defbc9e9ffa729f.zip |
Ports/mrsh: Fix workdir, remove or upgrade patches
Also removes mrsh from the list of ports missing descriptions. I tried
to be descriptive about the patches, but as I picked this port up from
someone else, I'm not 100% sure how to best explain the patches.
-rwxr-xr-x | Meta/lint-ports.py | 1 | ||||
-rwxr-xr-x | Ports/mrsh/package.sh | 3 | ||||
-rw-r--r-- | Ports/mrsh/patches/0001-Add-SerenityOS-to-the-mrsh-build-system.patch | 46 | ||||
-rw-r--r-- | Ports/mrsh/patches/0002-Hardcode-default-path-because-confstr-is-missing.patch | 41 | ||||
-rw-r--r-- | Ports/mrsh/patches/0003-Workaround-for-redundant-redeclaration-of-environ.patch | 26 | ||||
-rw-r--r-- | Ports/mrsh/patches/0004-glob.h-is-missing-so-we-disable-glob.patch | 48 | ||||
-rw-r--r-- | Ports/mrsh/patches/ReadMe.md | 22 | ||||
-rw-r--r-- | Ports/mrsh/patches/disable-fnmatch.patch | 45 | ||||
-rw-r--r-- | Ports/mrsh/patches/disable-glob.patch | 34 | ||||
-rw-r--r-- | Ports/mrsh/patches/disable-ulimit.patch | 18 | ||||
-rw-r--r-- | Ports/mrsh/patches/hardcode-default-path.patch | 26 | ||||
-rw-r--r-- | Ports/mrsh/patches/version-script.patch | 27 | ||||
-rw-r--r-- | Ports/mrsh/patches/workaround-warnings.patch | 110 |
13 files changed, 184 insertions, 263 deletions
diff --git a/Meta/lint-ports.py b/Meta/lint-ports.py index 1cdb0923c8..6921cd467f 100755 --- a/Meta/lint-ports.py +++ b/Meta/lint-ports.py @@ -82,7 +82,6 @@ PORTS_MISSING_DESCRIPTIONS = { 'mandoc', 'mbedtls', 'milkytracker', - 'mrsh', 'mruby', 'nano', 'ncurses', diff --git a/Ports/mrsh/package.sh b/Ports/mrsh/package.sh index 78f4df3ca5..a0b7c9dcc9 100755 --- a/Ports/mrsh/package.sh +++ b/Ports/mrsh/package.sh @@ -1,9 +1,8 @@ #!/usr/bin/env -S bash ../.port_include.sh port=mrsh version=cd3c3a48055ab4085d83f149ff4b4feba40b40cb -files="https://codeload.github.com/emersion/mrsh/legacy.tar.gz/${version} emersion-mrsh-d9763a3.tar.gz 6896493a1020774715ccca28e8d8f4ec722af63a93543fb6dd2762f7b1de9c8a" +files="https://github.com/emersion/mrsh/archive/${version}.tar.gz ${port}-${version}.tar.gz d26e3fdee71ef168cf3f8ad2912c148b20aab524048e4ea899d6b83fb299ceab" auth_type=sha256 useconfigure=true -workdir=emersion-mrsh-d9763a3 export CFLAGS=-Wno-deprecated-declarations diff --git a/Ports/mrsh/patches/0001-Add-SerenityOS-to-the-mrsh-build-system.patch b/Ports/mrsh/patches/0001-Add-SerenityOS-to-the-mrsh-build-system.patch new file mode 100644 index 0000000000..5a205feae1 --- /dev/null +++ b/Ports/mrsh/patches/0001-Add-SerenityOS-to-the-mrsh-build-system.patch @@ -0,0 +1,46 @@ +From 4c9a77a1174cdc049d7dc418c43842920bd52f52 Mon Sep 17 00:00:00 2001 +From: EWouters <6179932+EWouters@users.noreply.github.com> +Date: Tue, 12 Apr 2022 17:58:24 +0200 +Subject: [PATCH 1/4] Add SerenityOS to the mrsh build system + +--- + configure | 6 ++++-- + libmrsh.serenity.sym | 7 +++++++ + 2 files changed, 11 insertions(+), 2 deletions(-) + create mode 100644 libmrsh.serenity.sym + +diff --git a/configure b/configure +index c0e918e..1bf7d26 100755 +--- a/configure ++++ b/configure +@@ -230,9 +230,11 @@ else + fi + + printf "Checking for exported symbol restrictions... " +-if ! \ ++if ! (\ + test_ldflags -Wl,--version-script="libmrsh.gnu.sym" || \ +- test_ldflags -Wl,-exported_symbols_list,"libmrsh.darwin.sym" ++ test_ldflags -Wl,-exported_symbols_list,"libmrsh.darwin.sym" || \ ++ test_ldflags -Wl,--version-script="libmrsh.serenity.sym" ++) + then + echo no + echo "Unable to specify exported symbols (is $(uname) supported?)" >&2 +diff --git a/libmrsh.serenity.sym b/libmrsh.serenity.sym +new file mode 100644 +index 0000000..33de4a1 +--- /dev/null ++++ b/libmrsh.serenity.sym +@@ -0,0 +1,7 @@ ++{ ++ global: ++ mrsh_*; ++ main; ++ local: ++ *; ++}; +\ No newline at end of file +-- +2.32.0 (Apple Git-132) + diff --git a/Ports/mrsh/patches/0002-Hardcode-default-path-because-confstr-is-missing.patch b/Ports/mrsh/patches/0002-Hardcode-default-path-because-confstr-is-missing.patch new file mode 100644 index 0000000000..7cb47526b5 --- /dev/null +++ b/Ports/mrsh/patches/0002-Hardcode-default-path-because-confstr-is-missing.patch @@ -0,0 +1,41 @@ +From f254a0f09c9382deb6d2eb7497b453896b9a662f Mon Sep 17 00:00:00 2001 +From: EWouters <6179932+EWouters@users.noreply.github.com> +Date: Tue, 12 Apr 2022 18:00:04 +0200 +Subject: [PATCH 2/4] Hardcode default path because `confstr` is missing + +--- + shell/path.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/shell/path.c b/shell/path.c +index 3c2bf65..ee2c4e9 100644 +--- a/shell/path.c ++++ b/shell/path.c +@@ -26,18 +26,24 @@ char *expand_path(struct mrsh_state *state, const char *file, bool exec, + return NULL; + } + } else { ++#ifndef __serenity__ + size_t pathe_size = confstr(_CS_PATH, NULL, 0); + if (pathe_size == 0) { + return NULL; + } + pathe = malloc(pathe_size); ++#else ++ pathe = strdup("/bin:/usr/bin"); ++#endif + if (pathe == NULL) { + return NULL; + } ++#ifndef __serenity__ + if (confstr(_CS_PATH, pathe, pathe_size) != pathe_size) { + free(pathe); + return NULL; + } ++#endif + } + + char *path = NULL; +-- +2.32.0 (Apple Git-132) + diff --git a/Ports/mrsh/patches/0003-Workaround-for-redundant-redeclaration-of-environ.patch b/Ports/mrsh/patches/0003-Workaround-for-redundant-redeclaration-of-environ.patch new file mode 100644 index 0000000000..88397ba32b --- /dev/null +++ b/Ports/mrsh/patches/0003-Workaround-for-redundant-redeclaration-of-environ.patch @@ -0,0 +1,26 @@ +From fa1d2ddff869430ad17e78755a06475307c49a7f Mon Sep 17 00:00:00 2001 +From: EWouters <6179932+EWouters@users.noreply.github.com> +Date: Tue, 12 Apr 2022 18:01:44 +0200 +Subject: [PATCH 3/4] Workaround for redundant redeclaration of 'environ' + +--- + main.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/main.c b/main.c +index 0f433d2..577afde 100644 +--- a/main.c ++++ b/main.c +@@ -14,7 +14,9 @@ + #include <unistd.h> + #include "frontend.h" + ++#ifndef __serenity__ + extern char **environ; ++#endif + + int main(int argc, char *argv[]) { + struct mrsh_state *state = mrsh_state_create(); +-- +2.32.0 (Apple Git-132) + diff --git a/Ports/mrsh/patches/0004-glob.h-is-missing-so-we-disable-glob.patch b/Ports/mrsh/patches/0004-glob.h-is-missing-so-we-disable-glob.patch new file mode 100644 index 0000000000..997ace1d09 --- /dev/null +++ b/Ports/mrsh/patches/0004-glob.h-is-missing-so-we-disable-glob.patch @@ -0,0 +1,48 @@ +From 7d050176ada352b563e551041999d0783475ad13 Mon Sep 17 00:00:00 2001 +From: EWouters <6179932+EWouters@users.noreply.github.com> +Date: Wed, 4 May 2022 16:50:45 +0200 +Subject: [PATCH 4/4] `glob.h` is missing so we disable glob + +--- + shell/word.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/shell/word.c b/shell/word.c +index df274b7..dd94965 100644 +--- a/shell/word.c ++++ b/shell/word.c +@@ -1,7 +1,9 @@ + #define _POSIX_C_SOURCE 200809L + #include <assert.h> + #include <ctype.h> ++#ifndef __serenity__ + #include <glob.h> ++#endif + #include <mrsh/buffer.h> + #include <pwd.h> + #include <stdbool.h> +@@ -339,10 +341,13 @@ bool expand_pathnames(struct mrsh_array *expanded, + for (size_t i = 0; i < fields->len; ++i) { + const struct mrsh_word *field = fields->data[i]; + ++#ifndef __serenity__ + char *pattern = word_to_pattern(field); + if (pattern == NULL) { ++#endif + mrsh_array_add(expanded, mrsh_word_str(field)); + continue; ++#ifndef __serenity__ + } + + glob_t glob_buf; +@@ -361,6 +366,7 @@ bool expand_pathnames(struct mrsh_array *expanded, + } + + free(pattern); ++#endif + } + + return true; +-- +2.32.0 (Apple Git-132) + diff --git a/Ports/mrsh/patches/ReadMe.md b/Ports/mrsh/patches/ReadMe.md new file mode 100644 index 0000000000..ceb19d118e --- /dev/null +++ b/Ports/mrsh/patches/ReadMe.md @@ -0,0 +1,22 @@ +# Patches for mrsh on SerenityOS + +## `0001-Add-SerenityOS-to-the-mrsh-build-system.patch` + +Add SerenityOS to the mrsh build system + + +## `0002-Hardcode-default-path-because-confstr-is-missing.patch` + +Hardcode default path because `confstr` is missing + + +## `0003-Workaround-for-redundant-redeclaration-of-environ.patch` + +Workaround for redundant redeclaration of 'environ' + + +## `0004-glob.h-is-missing-so-we-disable-glob.patch` + +`glob.h` is missing so we disable glob + + diff --git a/Ports/mrsh/patches/disable-fnmatch.patch b/Ports/mrsh/patches/disable-fnmatch.patch deleted file mode 100644 index bf7f1cbe2a..0000000000 --- a/Ports/mrsh/patches/disable-fnmatch.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- a/shell/task/task.c 2020-02-03 18:16:49.579018362 +0300 -+++ b/shell/task/task.c 2020-02-03 18:24:17.149890856 +0300 -@@ -2,7 +2,7 @@ - #include <assert.h> - #include <errno.h> - #include <fcntl.h> --#include <fnmatch.h> -+// #include <fnmatch.h> - #include <mrsh/ast.h> - #include <stdio.h> - #include <stdlib.h> -@@ -218,7 +218,7 @@ - } - char *pattern = word_to_pattern(*word_ptr); - if (pattern != NULL) { -- selected = fnmatch(pattern, word_str, 0) == 0; -+ // selected = fnmatch(pattern, word_str, 0) == 0; - free(pattern); - } else { - char *str = mrsh_word_str(*word_ptr); ---- a/shell/task/word.c 2020-02-03 18:25:52.544717475 +0300 -+++ b/shell/task/word.c 2020-02-03 18:26:47.036189658 +0300 -@@ -1,7 +1,7 @@ - #define _POSIX_C_SOURCE 200809L - #include <assert.h> - #include <errno.h> --#include <fnmatch.h> -+// #include <fnmatch.h> - #include <mrsh/buffer.h> - #include <mrsh/parser.h> - #include <stdio.h> -@@ -364,11 +364,13 @@ - trimmed = buf; - } - -+/* - if (fnmatch(pattern, match, 0) == 0) { - char *result = strdup(trimmed); - free(buf); - return result; - } -+*/ - - buf[i] = ch; - } diff --git a/Ports/mrsh/patches/disable-glob.patch b/Ports/mrsh/patches/disable-glob.patch deleted file mode 100644 index a287707f5f..0000000000 --- a/Ports/mrsh/patches/disable-glob.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- a/shell/word.c 2020-02-04 15:23:40.077301321 +0300 -+++ b/shell/word.c 2020-02-04 15:24:09.428550187 +0300 -@@ -1,7 +1,7 @@ - #define _POSIX_C_SOURCE 200809L - #include <assert.h> - #include <ctype.h> --#include <glob.h> -+// #include <glob.h> - #include <mrsh/buffer.h> - #include <pwd.h> - #include <stdbool.h> -@@ -338,11 +338,13 @@ - const struct mrsh_array *fields) { - for (size_t i = 0; i < fields->len; ++i) { - const struct mrsh_word *field = fields->data[i]; -- -+/* - char *pattern = word_to_pattern(field); - if (pattern == NULL) { -+*/ - mrsh_array_add(expanded, mrsh_word_str(field)); - continue; -+/* - } - - glob_t glob_buf; -@@ -361,6 +363,7 @@ - } - - free(pattern); -+*/ - } - - return true; diff --git a/Ports/mrsh/patches/disable-ulimit.patch b/Ports/mrsh/patches/disable-ulimit.patch deleted file mode 100644 index 09182791b8..0000000000 --- a/Ports/mrsh/patches/disable-ulimit.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/builtin/ulimit.c 2020-02-03 17:43:24.961064732 +0300 -+++ b/builtin/ulimit.c 2020-02-03 17:46:08.082450486 +0300 -@@ -14,6 +14,9 @@ - static const char ulimit_usage[] = "usage: ulimit [-f] [blocks]\n"; - - int builtin_ulimit(struct mrsh_state *state, int argc, char *argv[]) { -+ fprintf(stderr, "unimplemented\n"); -+ return 1; -+/* - mrsh_optind = 0; - int opt; - while ((opt = mrsh_getopt(argc, argv, ":f")) != -1) { -@@ -58,4 +61,5 @@ - } - - return 0; -+*/ - } diff --git a/Ports/mrsh/patches/hardcode-default-path.patch b/Ports/mrsh/patches/hardcode-default-path.patch deleted file mode 100644 index cb37cd68f0..0000000000 --- a/Ports/mrsh/patches/hardcode-default-path.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- a/shell/path.c 2020-02-03 18:04:51.852832611 +0300 -+++ b/shell/path.c 2020-02-03 18:06:50.023851071 +0300 -@@ -27,18 +27,23 @@ - return NULL; - } - } else { -+/* - size_t pathe_size = confstr(_CS_PATH, NULL, 0); - if (pathe_size == 0) { - return NULL; - } - pathe = malloc(pathe_size); -+*/ -+ pathe = strdup("/bin:/usr/bin"); - if (pathe == NULL) { - return NULL; - } -+/* - if (confstr(_CS_PATH, pathe, pathe_size) != pathe_size) { - free(pathe); - return NULL; - } -+*/ - } - - static char path[PATH_MAX + 1]; diff --git a/Ports/mrsh/patches/version-script.patch b/Ports/mrsh/patches/version-script.patch deleted file mode 100644 index ec36227d71..0000000000 --- a/Ports/mrsh/patches/version-script.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -Naur emersion-mrsh-d9763a3/libmrsh.serenity.sym emersion-mrsh-d9763a3.serenity/libmrsh.serenity.sym ---- emersion-mrsh-d9763a3/libmrsh.serenity.sym 1970-01-01 01:00:00.000000000 +0100 -+++ emersion-mrsh-d9763a3.serenity/libmrsh.serenity.sym 2021-04-12 09:48:47.446767471 +0200 -@@ -0,0 +1,7 @@ -+{ -+ global: -+ mrsh_*; -+ main; -+ local: -+ *; -+}; -diff -Naur emersion-mrsh-d9763a3/configure emersion-mrsh-d9763a3.serenity/configure ---- emersion-mrsh-d9763a3/configure 2021-04-12 10:05:17.437801859 +0200 -+++ emersion-mrsh-d9763a3.serenity/configure 2021-04-12 10:05:10.304338346 +0200 -@@ -217,9 +217,11 @@ - fi - - printf "Checking for exported symbol restrictions... " --if ! \ -+if ! (\ - test_ldflags -Wl,--version-script="libmrsh.gnu.sym" || \ -+ test_ldflags -Wl,--version-script="libmrsh.serenity.sym" || \ - test_ldflags -Wl,-exported_symbols_list,"libmrsh.darwin.sym" -+) - then - echo no - echo "Unable to specify exported symbols (is $(uname) supported?)" >&2 diff --git a/Ports/mrsh/patches/workaround-warnings.patch b/Ports/mrsh/patches/workaround-warnings.patch deleted file mode 100644 index 604b81d4cf..0000000000 --- a/Ports/mrsh/patches/workaround-warnings.patch +++ /dev/null @@ -1,110 +0,0 @@ ---- a/ast.c 2020-02-03 17:32:44.302405596 +0300 -+++ b/ast.c 2020-02-03 17:35:40.520962185 +0300 -@@ -576,6 +576,7 @@ - return; - } - assert(false); -+ return; - case MRSH_NODE_COMMAND:; - struct mrsh_command *cmd = mrsh_node_get_command(node); - switch (cmd->type) { -@@ -626,6 +627,7 @@ - return; - } - assert(false); -+ return; - case MRSH_NODE_WORD:; - struct mrsh_word *word = mrsh_node_get_word(node); - switch (word->type) { -@@ -653,8 +655,10 @@ - return; - } - assert(false); -+ return; - } - assert(false); -+ return; - } - - static void position_next(struct mrsh_position *dst, -@@ -700,6 +704,7 @@ - return; - case MRSH_WORD_ARITHMETIC: - assert(false); // TODO -+ return; - case MRSH_WORD_LIST:; - struct mrsh_word_list *wl = mrsh_word_get_list(word); - if (wl->children.len == 0) { -@@ -713,6 +718,7 @@ - return; - } - assert(false); -+ return; - } - - void mrsh_command_range(struct mrsh_command *cmd, struct mrsh_position *begin, -@@ -800,8 +806,10 @@ - mrsh_command_get_function_definition(cmd); - *begin = fd->name_range.begin; - mrsh_command_range(fd->body, NULL, end); -+ return; - } - assert(false); -+ return; - } - - static void buffer_append_str(struct mrsh_buffer *buf, const char *str) { -@@ -818,6 +826,7 @@ - case MRSH_WORD_COMMAND: - case MRSH_WORD_ARITHMETIC: - assert(false); -+ return; - case MRSH_WORD_LIST:; - const struct mrsh_word_list *wl = mrsh_word_get_list(word); - for (size_t i = 0; i < wl->children.len; ++i) { -@@ -827,6 +836,7 @@ - return; - } - assert(false); -+ return; - } - - char *mrsh_word_str(const struct mrsh_word *word) { -@@ -891,6 +901,7 @@ - return; - } - assert(false); -+ return; - case MRSH_NODE_COMMAND:; - struct mrsh_command *cmd = mrsh_node_get_command(node); - switch (cmd->type) { -@@ -956,6 +967,7 @@ - return; - } - assert(false); -+ return; - case MRSH_NODE_WORD:; - // TODO: quoting - struct mrsh_word *word = mrsh_node_get_word(node); -@@ -1002,8 +1014,10 @@ - return; - } - assert(false); -+ return; - } - assert(false); -+ return; - } - - char *mrsh_node_format(struct mrsh_node *node) { ---- a/main.c 2020-02-03 18:40:40.433381483 +0300 -+++ b/main.c 2020-02-03 18:39:57.708015856 +0300 -@@ -14,7 +14,7 @@ - #include <unistd.h> - #include "frontend.h" - --extern char **environ; -+// extern char **environ; - - int main(int argc, char *argv[]) { - struct mrsh_state *state = mrsh_state_create(); |