diff options
280 files changed, 11105 insertions, 1188 deletions
diff --git a/system/binutils/APKBUILD b/system/binutils/APKBUILD index 57eb9688c..d8fc3e7c5 100644 --- a/system/binutils/APKBUILD +++ b/system/binutils/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Adelie Platform Group <adelie-devel@lists.adelielinux.org> pkgname=binutils -pkgver=2.30 -pkgrel=2 +pkgver=2.31.1 +pkgrel=0 pkgdesc="Tools necessary to build programs" url="http://www.gnu.org/software/binutils/" depends="" @@ -19,7 +19,6 @@ source="http://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz disable-gnu-mbind.patch disable-ifunc-tests.patch disable-preinit-array-tests.patch - mips-illegal-memcpy.patch remove-no-static-plt-test.patch remove-pr2404-tests.patch remove-pr19719-test.patch @@ -111,12 +110,11 @@ libs() { mv "$pkgdir"/usr/lib/lib*.so "$subpkgdir"/usr/lib/ } -sha512sums="e747ea20d8d79fcd21b9d9f6695059caa7189d60f19256da398e34b789fea9a133c32b192e9693b5828d27683739b0198431bf8b3e39fb3b04884cf89d9aa839 binutils-2.30.tar.xz +sha512sums="0fca326feb1d5f5fe505a827b20237fe3ec9c13eaf7ec7e35847fd71184f605ba1cefe1314b1b8f8a29c0aa9d88162849ee1c1a3e70c2f7407d88339b17edb30 binutils-2.31.1.tar.xz ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch d378fdf1964f8f2bd0b1e62827ac5884bdf943aa435ec89c29fc84bb045d406b733fffaff8fdd8bd1cba8ddea7701c4cf6ccf3ed76a8a3df9c72b447737575a6 disable-gnu-mbind.patch -ba2b5c8cdfa95db7a1f05da8a2c1ffc3bcb35300abf7061e52249d9b29037e3fdef1aed830686bca2df74b9f5d48684e9c8e2f49715455bf90dca6e3bfc077eb disable-ifunc-tests.patch +474ab24097bbb5b24433620549e5234fe65c547824c1342f693c718ffbc81e2d968259cce2d650b55200dd1ec89da207ea2db10c551cd9941285c4600b4297b2 disable-ifunc-tests.patch 3537752e63cef0b5ef136d003ff7e814ba66b12624d817430112d0f291a792e8960fa69a78036f526af835441b3ee483d6a53d55c7b3dd8ee96f0399682dbcbe disable-preinit-array-tests.patch -06422157349abf02e79a5ef8bd9f51100e7e996aab65250d518e0cf0d7ac8ed922d3bf1603c4f5b4fd8fb179266b7b4c41db32dcb241d60a7f1c21d1df0c36dd mips-illegal-memcpy.patch b40f9a3841a7af8fc12e8a4044cd672df5614bfda8461b0ca45efa57a42c3bc8490e491ea490c6c05d319a52d69993c4fca33a0aeb044090e7b7f4e4e30c6517 remove-no-static-plt-test.patch 32ab4215669c728648179c124632467573a3d4675e79f0f0d221c22eb2ec1ca5488b79910bd09142f90a1e0d0b81d99ca4846297f4f9561f158db63745facb66 remove-pr2404-tests.patch a193d1fa7f42d91915960460a15e4d24e0df529d81e23014bcf45d283fae76bb7b300fdcb0d0a9d521cdb9137322efa1dc357112596d6ae7a7fd05988ac359b9 remove-pr19719-test.patch diff --git a/system/binutils/CVE-2017-7614.patch b/system/binutils/CVE-2017-7614.patch deleted file mode 100644 index 5f3b550f2..000000000 --- a/system/binutils/CVE-2017-7614.patch +++ /dev/null @@ -1,84 +0,0 @@ -From ad32986fdf9da1c8748e47b8b45100398223dba8 Mon Sep 17 00:00:00 2001 -From: Nick Clifton <nickc@redhat.com> -Date: Tue, 4 Apr 2017 11:23:36 +0100 -Subject: [PATCH] Fix null pointer dereferences when using a link built with - clang. - - PR binutils/21342 - * elflink.c (_bfd_elf_define_linkage_sym): Prevent null pointer - dereference. - (bfd_elf_final_link): Only initialize the extended symbol index - section if there are extended symbol tables to list. ---- - bfd/elflink.c | 35 +++++++++++++++++++++-------------- - 2 files changed, 29 insertions(+), 14 deletions(-) - -diff --git a/bfd/elflink.c b/bfd/elflink.c -index 776357f..9bf75c8 100644 ---- a/bfd/elflink.c -+++ b/bfd/elflink.c -@@ -119,15 +119,18 @@ _bfd_elf_define_linkage_sym (bfd *abfd, - defined in shared libraries can't be overridden, because we - lose the link to the bfd which is via the symbol section. */ - h->root.type = bfd_link_hash_new; -+ bh = &h->root; - } -+ else -+ bh = NULL; - -- bh = &h->root; - bed = get_elf_backend_data (abfd); - if (!_bfd_generic_link_add_one_symbol (info, abfd, name, BSF_GLOBAL, - sec, 0, NULL, FALSE, bed->collect, - &bh)) - return NULL; - h = (struct elf_link_hash_entry *) bh; -+ BFD_ASSERT (h != NULL); - h->def_regular = 1; - h->non_elf = 0; - h->root.linker_def = 1; -@@ -12038,24 +12041,28 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info) - { - /* Finish up and write out the symbol string table (.strtab) - section. */ -- Elf_Internal_Shdr *symstrtab_hdr; -+ Elf_Internal_Shdr *symstrtab_hdr = NULL; - file_ptr off = symtab_hdr->sh_offset + symtab_hdr->sh_size; - -- symtab_shndx_hdr = & elf_symtab_shndx_list (abfd)->hdr; -- if (symtab_shndx_hdr != NULL && symtab_shndx_hdr->sh_name != 0) -+ if (elf_symtab_shndx_list (abfd)) - { -- symtab_shndx_hdr->sh_type = SHT_SYMTAB_SHNDX; -- symtab_shndx_hdr->sh_entsize = sizeof (Elf_External_Sym_Shndx); -- symtab_shndx_hdr->sh_addralign = sizeof (Elf_External_Sym_Shndx); -- amt = bfd_get_symcount (abfd) * sizeof (Elf_External_Sym_Shndx); -- symtab_shndx_hdr->sh_size = amt; -+ symtab_shndx_hdr = & elf_symtab_shndx_list (abfd)->hdr; - -- off = _bfd_elf_assign_file_position_for_section (symtab_shndx_hdr, -- off, TRUE); -+ if (symtab_shndx_hdr != NULL && symtab_shndx_hdr->sh_name != 0) -+ { -+ symtab_shndx_hdr->sh_type = SHT_SYMTAB_SHNDX; -+ symtab_shndx_hdr->sh_entsize = sizeof (Elf_External_Sym_Shndx); -+ symtab_shndx_hdr->sh_addralign = sizeof (Elf_External_Sym_Shndx); -+ amt = bfd_get_symcount (abfd) * sizeof (Elf_External_Sym_Shndx); -+ symtab_shndx_hdr->sh_size = amt; - -- if (bfd_seek (abfd, symtab_shndx_hdr->sh_offset, SEEK_SET) != 0 -- || (bfd_bwrite (flinfo.symshndxbuf, amt, abfd) != amt)) -- return FALSE; -+ off = _bfd_elf_assign_file_position_for_section (symtab_shndx_hdr, -+ off, TRUE); -+ -+ if (bfd_seek (abfd, symtab_shndx_hdr->sh_offset, SEEK_SET) != 0 -+ || (bfd_bwrite (flinfo.symshndxbuf, amt, abfd) != amt)) -+ return FALSE; -+ } - } - - symstrtab_hdr = &elf_tdata (abfd)->strtab_hdr; --- -2.9.3 - diff --git a/system/binutils/disable-ifunc-tests.patch b/system/binutils/disable-ifunc-tests.patch index 6fbc5c874..b50d20b0e 100644 --- a/system/binutils/disable-ifunc-tests.patch +++ b/system/binutils/disable-ifunc-tests.patch @@ -1,12 +1,12 @@ ---- binutils-2.30/ld/testsuite/ld-ifunc/ifunc.exp.old 2018-01-13 07:31:16.000000000 -0600 -+++ binutils-2.30/ld/testsuite/ld-ifunc/ifunc.exp 2018-02-27 14:46:07.596544780 -0600 -@@ -36,7 +36,8 @@ - || (([istarget "*-*-linux*"] - || [istarget "*-*-gnu*"]) - && ![istarget "*-*-*aout*"] -- && ![istarget "*-*-*oldld*"]))) } { -+ && ![istarget "*-*-*oldld*"] -+ && ![istarget "*-*-*musl*"]))) } { +--- binutils-2.31.1/ld/testsuite/ld-ifunc/ifunc.exp.old 2018-06-27 07:55:16.000000000 +0000 ++++ binutils-2.31.1/ld/testsuite/ld-ifunc/ifunc.exp 2018-10-12 03:23:09.240000000 +0000 +@@ -34,7 +34,8 @@ + && ([istarget "*-*-elf*"] + || [istarget "*-*-nacl*"] + || [istarget "*-*-linux*"] +- || [istarget "*-*-gnu*"])) } { ++ || [istarget "*-*-gnu*"]) ++ && ![istarget "*-*-musl*"]) } { verbose "IFUNC tests not run - target does not support IFUNC" return } diff --git a/system/binutils/hash-style-configure-flag.patch b/system/binutils/hash-style-configure-flag.patch deleted file mode 100644 index 6d4db4bca..000000000 --- a/system/binutils/hash-style-configure-flag.patch +++ /dev/null @@ -1,348 +0,0 @@ -From 2760f24c4942853eac7b921e4b8843d57a602654 Mon Sep 17 00:00:00 2001 -From: Romain Geissler <romain.geissler@gmail.com> -Date: Tue, 8 Aug 2017 07:25:39 +0930 -Subject: [PATCH] Add configure flag to enable gnu hash style by default. - -ld/ - * configure.ac: Add --enable-default-hash-style option. - * ldmain.c (main): Set link_info.emit_hash to DEFAULT_EMIT_SYSV_HASH. - Set link_info.emit_gnu_hash to DEFAULT_EMIT_GNU_HASH. - * configure: Regenerate. - * config.in: Regenerate. - -gold/ - * configure.ac: Add --enable-default-hash-style option. - * options.h (hash_style): Use DEFAULT_HASH_STYLE as default value. - * configure: Regenerate. - * config.in: Regenerate. ---- - gold/ChangeLog | 8 ++++++++ - gold/config.in | 3 +++ - gold/configure | 27 +++++++++++++++++++++++++++ - gold/configure.ac | 20 ++++++++++++++++++++ - gold/options.h | 2 +- - ld/ChangeLog | 9 +++++++++ - ld/config.in | 6 ++++++ - ld/configure | 42 ++++++++++++++++++++++++++++++++++++++---- - ld/configure.ac | 34 ++++++++++++++++++++++++++++++++++ - ld/ldmain.c | 3 ++- - 10 files changed, 148 insertions(+), 6 deletions(-) - -diff --git a/gold/ChangeLog b/gold/ChangeLog -index d598386..93836dd 100644 ---- a/gold/ChangeLog -+++ b/gold/ChangeLog -@@ -1,3 +1,11 @@ -+2017-08-08 Romain Geissler <romain.geissler@gmail.com> -+ Alan Modra <amodra@gmail.com> -+ -+ * configure.ac: Add --enable-default-hash-style option. -+ * options.h (hash_style): Use DEFAULT_HASH_STYLE as default value. -+ * configure: Regenerate. -+ * config.in: Regenerate. -+ - 2017-02-22 Alan Modra <amodra@gmail.com> - - * powerpc.cc (Target_powerpc::make_iplt_section): Check that -diff --git a/gold/config.in b/gold/config.in -index d9f7b76..5855fca 100644 ---- a/gold/config.in -+++ b/gold/config.in -@@ -10,6 +10,9 @@ - /* Define if building universal (internal helper macro) */ - #undef AC_APPLE_UNIVERSAL_BUILD - -+/* Set the default --hash-style value */ -+#undef DEFAULT_HASH_STYLE -+ - /* Define to 1 if you want to enable -z relro in ELF linker by default. */ - #undef DEFAULT_LD_Z_RELRO - -diff --git a/gold/configure b/gold/configure -index cb020be..90a706d 100755 ---- a/gold/configure -+++ b/gold/configure -@@ -797,6 +797,7 @@ enable_threads - enable_plugins - enable_relro - enable_targets -+enable_default_hash_style - with_lib_path - enable_dependency_tracking - enable_nls -@@ -1447,6 +1448,8 @@ Optional Features: - --enable-plugins linker plugins - --enable-relro enable -z relro in ELF linker by default - --enable-targets alternative target configurations -+ --enable-default-hash-style={sysv,gnu,both} -+ use this default hash style - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors - --disable-nls do not use Native Language Support -@@ -3410,6 +3413,30 @@ if test -n "$enable_targets"; then - done - fi - -+# Decide which "--hash-style" to use by default -+# Provide a configure time option to override our default. -+# Check whether --enable-default-hash-style was given. -+if test "${enable_default_hash_style+set}" = set; then : -+ enableval=$enable_default_hash_style; case "${enable_default_hash_style}" in -+ sysv | gnu | both) ;; -+ *) as_fn_error "bad value ${enable_default_hash_style} for enable-default-hash-style option" "$LINENO" 5 ;; -+esac -+else -+ case "${target}" in -+ # Enable gnu hash only on GNU targets, but not mips -+ mips*-*-*) enable_default_hash_style=sysv ;; -+ *-*-gnu* | *-*-linux* | *-*-nacl*) enable_default_hash_style=both ;; -+ *) enable_default_hash_style=sysv ;; -+esac -+fi -+ -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define DEFAULT_HASH_STYLE "${enable_default_hash_style}" -+_ACEOF -+ -+ - # See which specific instantiations we need. - targetobjs= - all_targets= -diff --git a/gold/configure.ac b/gold/configure.ac -index cbe3380..d7fa1f8 100644 ---- a/gold/configure.ac -+++ b/gold/configure.ac -@@ -161,6 +161,26 @@ if test -n "$enable_targets"; then - done - fi - -+# Decide which "--hash-style" to use by default -+# Provide a configure time option to override our default. -+AC_ARG_ENABLE([default-hash-style], -+AS_HELP_STRING([--enable-default-hash-style={sysv,gnu,both}], -+ [use this default hash style]), -+[case "${enable_default_hash_style}" in -+ sysv | gnu | both) ;; -+ *) AC_MSG_ERROR([bad value ${enable_default_hash_style} for enable-default-hash-style option]) ;; -+esac], -+[case "${target}" in -+ # Enable gnu hash only on GNU targets, but not mips -+ mips*-*-*) enable_default_hash_style=sysv ;; -+ *-*-gnu* | *-*-linux* | *-*-nacl*) enable_default_hash_style=both ;; -+ *) enable_default_hash_style=sysv ;; -+esac]) -+ -+AC_DEFINE_UNQUOTED([DEFAULT_HASH_STYLE], -+ ["${enable_default_hash_style}"], -+ [Set the default --hash-style value]) -+ - # See which specific instantiations we need. - targetobjs= - all_targets= -diff --git a/gold/options.h b/gold/options.h -index a8b1d46..ce21a42 100644 ---- a/gold/options.h -+++ b/gold/options.h -@@ -921,7 +921,7 @@ class General_options - N_("Min fraction of empty buckets in dynamic hash"), - N_("FRACTION")); - -- DEFINE_enum(hash_style, options::TWO_DASHES, '\0', "sysv", -+ DEFINE_enum(hash_style, options::TWO_DASHES, '\0', DEFAULT_HASH_STYLE, - N_("Dynamic hash style"), N_("[sysv,gnu,both]"), - {"sysv", "gnu", "both"}); - -diff --git a/ld/ChangeLog b/ld/ChangeLog -index ba7d1d4..cf91d55 100644 ---- a/ld/ChangeLog -+++ b/ld/ChangeLog -@@ -1,3 +1,12 @@ -+2017-08-08 Romain Geissler <romain.geissler@gmail.com> -+ Alan Modra <amodra@gmail.com> -+ -+ * configure.ac: Add --enable-default-hash-style option. -+ * ldmain.c (main): Set link_info.emit_hash to DEFAULT_EMIT_SYSV_HASH. -+ Set link_info.emit_gnu_hash to DEFAULT_EMIT_GNU_HASH. -+ * configure: Regenerate. -+ * config.in: Regenerate. -+ - 2017-03-02 Tristan Gingold <gingold@adacore.com> - - * configure: Regenerate. -diff --git a/ld/config.in b/ld/config.in -index 2c6d698..b2318e1 100644 ---- a/ld/config.in -+++ b/ld/config.in -@@ -7,6 +7,12 @@ - #endif - #define __CONFIG_H__ 1 - -+/* Define to 1 if you want to emit gnu hash in the ELF linker by default. */ -+#undef DEFAULT_EMIT_GNU_HASH -+ -+/* Define to 1 if you want to emit sysv hash in the ELF linker by default. */ -+#undef DEFAULT_EMIT_SYSV_HASH -+ - /* Define if you want compressed debug sections by default. */ - #undef DEFAULT_FLAG_COMPRESS_DEBUG - -diff --git a/ld/configure b/ld/configure -index 36af969..40c67fd 100755 ---- a/ld/configure -+++ b/ld/configure -@@ -793,6 +793,7 @@ enable_gold - enable_got - enable_compressed_debug_sections - enable_relro -+enable_default_hash_style - enable_werror - enable_build_warnings - enable_nls -@@ -1452,6 +1453,8 @@ Optional Features: - --enable-compressed-debug-sections={all,ld,none} - compress debug sections by default] - --enable-relro enable -z relro in ELF linker by default -+ --enable-default-hash-style={sysv,gnu,both} -+ use this default hash style - --enable-werror treat compile warnings as errors - --enable-build-warnings enable build-time compiler warnings - --disable-nls do not use Native Language Support -@@ -11724,7 +11727,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11727 "configure" -+#line 11730 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -11830,7 +11833,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF --#line 11833 "configure" -+#line 11836 "configure" - #include "confdefs.h" - - #if HAVE_DLFCN_H -@@ -15555,6 +15558,33 @@ if test "${enable_relro+set}" = set; then : - esac - fi - -+# Decide which "--hash-style" to use by default -+# Provide a configure time option to override our default. -+# Check whether --enable-default-hash-style was given. -+if test "${enable_default_hash_style+set}" = set; then : -+ enableval=$enable_default_hash_style; case "${enable_default_hash_style}" in -+ sysv | gnu | both) ;; -+ *) as_fn_error "bad value ${enable_default_hash_style} for enable-default-hash-style option" "$LINENO" 5 ;; -+esac -+else -+ case "${target}" in -+ # Enable gnu hash only on GNU targets, but not mips -+ mips*-*-*) enable_default_hash_style=sysv ;; -+ *-*-gnu* | *-*-linux* | *-*-nacl*) enable_default_hash_style=both ;; -+ *) enable_default_hash_style=sysv ;; -+esac -+fi -+ -+ -+case "${enable_default_hash_style}" in -+ sysv | both) ac_default_emit_sysv_hash=1 ;; -+ *) ac_default_emit_sysv_hash=0 ;; -+esac -+ -+case "${enable_default_hash_style}" in -+ gnu | both) ac_default_emit_gnu_hash=1 ;; -+ *) ac_default_emit_gnu_hash=0 ;; -+esac - - # Set the 'development' global. - . $srcdir/../bfd/development.sh -@@ -17212,9 +17242,13 @@ cat >>confdefs.h <<_ACEOF - #define DEFAULT_LD_Z_RELRO $ac_default_ld_z_relro - _ACEOF - -+cat >>confdefs.h <<_ACEOF -+#define DEFAULT_EMIT_SYSV_HASH $ac_default_emit_sysv_hash -+_ACEOF - -- -- -+cat >>confdefs.h <<_ACEOF -+#define DEFAULT_EMIT_GNU_HASH $ac_default_emit_gnu_hash -+_ACEOF - - - -diff --git a/ld/configure.ac b/ld/configure.ac -index 36a9f50..1876ad7 100644 ---- a/ld/configure.ac -+++ b/ld/configure.ac -@@ -166,6 +166,32 @@ AC_ARG_ENABLE(relro, - no) ac_default_ld_z_relro=0 ;; - esac])dnl - -+# Decide which "--hash-style" to use by default -+# Provide a configure time option to override our default. -+AC_ARG_ENABLE([default-hash-style], -+AS_HELP_STRING([--enable-default-hash-style={sysv,gnu,both}], -+ [use this default hash style]), -+[case "${enable_default_hash_style}" in -+ sysv | gnu | both) ;; -+ *) AC_MSG_ERROR([bad value ${enable_default_hash_style} for enable-default-hash-style option]) ;; -+esac], -+[case "${target}" in -+ # Enable gnu hash only on GNU targets, but not mips -+ mips*-*-*) enable_default_hash_style=sysv ;; -+ *-*-gnu* | *-*-linux* | *-*-nacl*) enable_default_hash_style=both ;; -+ *) enable_default_hash_style=sysv ;; -+esac]) -+ -+case "${enable_default_hash_style}" in -+ sysv | both) ac_default_emit_sysv_hash=1 ;; -+ *) ac_default_emit_sysv_hash=0 ;; -+esac -+ -+case "${enable_default_hash_style}" in -+ gnu | both) ac_default_emit_gnu_hash=1 ;; -+ *) ac_default_emit_gnu_hash=0 ;; -+esac -+ - AM_BINUTILS_WARNINGS - - AM_LC_MESSAGES -@@ -394,6 +420,14 @@ AC_DEFINE_UNQUOTED(DEFAULT_LD_Z_RELRO, - $ac_default_ld_z_relro, - [Define to 1 if you want to enable -z relro in ELF linker by default.]) - -+AC_DEFINE_UNQUOTED([DEFAULT_EMIT_SYSV_HASH], -+ [$ac_default_emit_sysv_hash], -+ [Define to 1 if you want to emit sysv hash in the ELF linker by default.]) -+ -+AC_DEFINE_UNQUOTED([DEFAULT_EMIT_GNU_HASH], -+ [$ac_default_emit_gnu_hash], -+ [Define to 1 if you want to emit gnu hash in the ELF linker by default.]) -+ - AC_SUBST(elf_list_options) - AC_SUBST(elf_shlib_list_options) - AC_SUBST(elf_plt_unwind_list_options) -diff --git a/ld/ldmain.c b/ld/ldmain.c -index 1e48b1a..579d961 100644 ---- a/ld/ldmain.c -+++ b/ld/ldmain.c -@@ -282,7 +282,8 @@ main (int argc, char **argv) - link_info.keep_memory = TRUE; - link_info.combreloc = TRUE; - link_info.strip_discarded = TRUE; -- link_info.emit_hash = TRUE; -+ link_info.emit_hash = DEFAULT_EMIT_SYSV_HASH; -+ link_info.emit_gnu_hash = DEFAULT_EMIT_GNU_HASH; - link_info.callbacks = &link_callbacks; - link_info.input_bfds_tail = &link_info.input_bfds; - /* SVR4 linkers seem to set DT_INIT and DT_FINI based on magic _init --- -2.14.2 - diff --git a/system/binutils/mips-illegal-memcpy.patch b/system/binutils/mips-illegal-memcpy.patch deleted file mode 100644 index d76af178a..000000000 --- a/system/binutils/mips-illegal-memcpy.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- binutils-2.29/gas/config/tc-mips.c.old 2017-07-04 03:43:20.000000000 -0500 -+++ binutils-2.29/gas/config/tc-mips.c 2017-08-25 17:21:51.449460074 -0500 -@@ -13956,7 +13956,7 @@ - suffix = 0; - if (suffix) - { -- memcpy (name + opend - 2, name + opend, length - opend + 1); -+ memmove (name + opend - 2, name + opend, length - opend + 1); - insn = (struct mips_opcode *) hash_find (hash, name); - if (insn) - { diff --git a/system/bubblewrap/APKBUILD b/system/bubblewrap/APKBUILD index 2e1c8a628..0147c92c6 100644 --- a/system/bubblewrap/APKBUILD +++ b/system/bubblewrap/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Timo Teräs <timo.teras@iki.fi> # Maintainer: pkgname=bubblewrap -pkgver=0.3.0 +pkgver=0.3.1 pkgrel=0 pkgdesc="Unprivileged sandboxing tool" url="https://github.com/projectatomic/bubblewrap" @@ -46,6 +46,6 @@ bashcomp() { mv "$pkgdir"/usr/share/bash-completion/ "$subpkgdir"/usr/share/ } -sha512sums="0dc033f83547112cedc706e4ef80e39ba0ee63f3750f93454a7b1a38aeb922ee660b3491a5a5d060fce9a7c4b326798a66814ad94f53f1e666c27a557fec17a4 bubblewrap-0.3.0.tar.gz +sha512sums="fbc44976f53fdf8913b94c57d1f26a3b87c773e86a289e58fd3d7b1c4ea7f33c862f1a38a4f791315358990928768a68334f0a171302c18a16c7e2e9f1a146dd bubblewrap-0.3.1.tar.gz 400a0446670ebf80f16739f1a7a2878aadc3099424f957ba09ec3df780506c23a11368f0578c9e352d7ca6473fa713df826fad7a20c50338aa5f9fa9ac6b84a4 realpath-workaround.patch f59cda3b09dd99db9ca6d97099a15bb2523e054063d677502317ae3165ba2e32105a0ae8f877afc3827bd28d093c9d9d413270f4c87d9fe5f26f3eee670d916e musl-fixes.patch" diff --git a/system/cmake/APKBUILD b/system/cmake/APKBUILD index 9ea4e8c6f..672ed2e3d 100644 --- a/system/cmake/APKBUILD +++ b/system/cmake/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Valery Kartel <valery.kartel@gmail.com> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=cmake -pkgver=3.12.1 +pkgver=3.12.3 pkgrel=0 pkgdesc="Cross-platform build system" url="https://cmake.org" @@ -55,4 +55,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="7a0a769ef060785a8dc8c6aa272435a90a07cc8079f6c83c916da0b79d8bcdefca0d7be21f55f408ab4dfa6a57caa9ff8dec4be993145f4e3337ff392481b692 cmake-3.12.1.tar.gz" +sha512sums="2b5b006bd0fa09431eb525a7f419c64b811afbe1cc81d34e6167e04112966d9f48f28652b21b5a04c889de6227315db57dd2099a17ea6329e27f3e97eac9051c cmake-3.12.3.tar.gz" diff --git a/system/console-setup/APKBUILD b/system/console-setup/APKBUILD index 7ffab188d..4269c9b29 100644 --- a/system/console-setup/APKBUILD +++ b/system/console-setup/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=console-setup -pkgver=1.185 +pkgver=1.186 pkgrel=0 pkgdesc="Set up console font and keyboard layout" url="https://salsa.debian.org/installer-team/console-setup" @@ -47,5 +47,5 @@ ckbcomp() { mv "$pkgdir"/usr/bin/ckbcomp "$subpkgdir"/usr/bin/ } -sha512sums="413b7206d96913cd845dd0f3b2f78f631ef187fd56d3615a96de91189515f6eb9229bf3dadd5be44ef35a5b3ecd4be28cfe573459f3d411c201b506d77c62251 console-setup_1.185.tar.xz +sha512sums="d3ca291cca5025a483f4ce0be9a5c351a3ee0f9ce791deb167089cfba2f77cceb8e4cc82e21c385f42da26534bb103c70c4f0cfcb038b80a1e05ab9ca4b52c7e console-setup_1.186.tar.xz 3b8e2c9d8551f9a51bcd33e58771a4f55ff2840f8fe392e0070bd2b6a3911cd9ed9377873538f6904fd99836ac4e0280c712be69d275aae9183dd12ff7efddae console-setup.initd" diff --git a/system/debianutils/APKBUILD b/system/debianutils/APKBUILD index fbcdfe041..8e79a7eef 100644 --- a/system/debianutils/APKBUILD +++ b/system/debianutils/APKBUILD @@ -32,7 +32,7 @@ package() { } which() { - provides_priority="10" + provider_priority=10 mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/which "$subpkgdir"/usr/bin/ # This will emit a warning about docs on abuild, but this is expected. diff --git a/system/easy-kernel-power8-64k/APKBUILD b/system/easy-kernel-power8-64k/APKBUILD index 88dd57ed3..5f543bfe1 100644 --- a/system/easy-kernel-power8-64k/APKBUILD +++ b/system/easy-kernel-power8-64k/APKBUILD @@ -1,8 +1,8 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: Adelie Platform Group <adelie-devel@lists.adelielinux.org> _pkgname=easy-kernel-power8-64k -pkgver=4.14.56 -pkgrel=9 +pkgver=4.14.76 +pkgrel=11 pkgname=$_pkgname-$pkgver-mc$pkgrel _kflavour=power8-64k pkgdesc="The Linux kernel, packaged for POWER8 and POWER9 computers (with 64K page size)" @@ -77,7 +77,7 @@ modules() { } sha512sums="77e43a02d766c3d73b7e25c4aafb2e931d6b16e870510c22cef0cdb05c3acb7952b8908ebad12b10ef982c6efbe286364b1544586e715cf38390e483927904d8 linux-4.14.tar.xz -f76ae636da104c6f1d299a6aff18a5aa1166c9c06efbdf3270c911f26adc1760fbb4271ca2338ced47c7787c2ff54880e1945e2d6cf25fda880b5f735029d7a8 linux-4.14-mc9.patch.xz +114611ae0cfaa3c277d857cd760047a47256f1f068297383b0a8d69b62e09de3c2cde617428ce207d156c63f6d89f4559d3dd29f72698d0e9ce68f27360e108c linux-4.14-mc11.patch.xz e41d9111219342ad13367902242444ecdd847a93575c3f9709d6c6a075bc650f4a15be9db1a8798435fc0a0b56d41705829bfe0d2c2d88f8d1c28931e27ef5be ast-endianness.patch 615b66b937aac3b2e5081db5bb0abb51bf32b9b1ba1b2d143d6b29187754ba83428a55944e8c81d58cab32d9f7d2909dc5c6156e9fda25bdad5c9e9db3335004 config-ppc64 64486a4f53046a69f727cecd8c39400b50c2d2b15e3b5ca8c18b8249d25990f3a872ec064800ba3d190f9d25b4518899b9ea3675920f487108102856d6beb51e futex-cmpxchg.patch" diff --git a/system/easy-kernel-power8/APKBUILD b/system/easy-kernel-power8/APKBUILD index 4f3017ffd..06d0ecb79 100644 --- a/system/easy-kernel-power8/APKBUILD +++ b/system/easy-kernel-power8/APKBUILD @@ -1,8 +1,8 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: Adelie Platform Group <adelie-devel@lists.adelielinux.org> _pkgname=easy-kernel-power8 -pkgver=4.14.56 -pkgrel=9 +pkgver=4.14.76 +pkgrel=11 pkgname=$_pkgname-$pkgver-mc$pkgrel pkgdesc="The Linux kernel, packaged for POWER8 and POWER9 computers" url="https://kernel.org/" @@ -83,7 +83,7 @@ src() { mv "$srcdir"/linux-src "$subpkgdir"/usr/src/linux-$pkgver-mc$pkgrel-p8 } sha512sums="77e43a02d766c3d73b7e25c4aafb2e931d6b16e870510c22cef0cdb05c3acb7952b8908ebad12b10ef982c6efbe286364b1544586e715cf38390e483927904d8 linux-4.14.tar.xz -f76ae636da104c6f1d299a6aff18a5aa1166c9c06efbdf3270c911f26adc1760fbb4271ca2338ced47c7787c2ff54880e1945e2d6cf25fda880b5f735029d7a8 linux-4.14-mc9.patch.xz +114611ae0cfaa3c277d857cd760047a47256f1f068297383b0a8d69b62e09de3c2cde617428ce207d156c63f6d89f4559d3dd29f72698d0e9ce68f27360e108c linux-4.14-mc11.patch.xz e41d9111219342ad13367902242444ecdd847a93575c3f9709d6c6a075bc650f4a15be9db1a8798435fc0a0b56d41705829bfe0d2c2d88f8d1c28931e27ef5be ast-endianness.patch fd810263d9aeeb2ec33c7872a9ccf52f474d79995d7f265f457226d62ab44456edf583e67fd4425c1e8025df0d359ebab566fbdcf8ce0a6c8c7ce36d726d3da6 config-ppc64 64486a4f53046a69f727cecd8c39400b50c2d2b15e3b5ca8c18b8249d25990f3a872ec064800ba3d190f9d25b4518899b9ea3675920f487108102856d6beb51e futex-cmpxchg.patch" diff --git a/system/easy-kernel/APKBUILD b/system/easy-kernel/APKBUILD index c8ac1329a..86a80d91e 100644 --- a/system/easy-kernel/APKBUILD +++ b/system/easy-kernel/APKBUILD @@ -1,8 +1,8 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: Adelie Platform Group <adelie-devel@lists.adelielinux.org> _pkgname=easy-kernel -pkgver=4.14.56 -pkgrel=9 +pkgver=4.14.76 +pkgrel=11 pkgname=$_pkgname-$pkgver-mc$pkgrel pkgdesc="The Linux kernel, packaged for your convenience" url="https://kernel.org/" @@ -103,7 +103,7 @@ src() { mv "$srcdir"/linux-src "$subpkgdir"/usr/src/linux-$pkgver-mc$pkgrel } sha512sums="77e43a02d766c3d73b7e25c4aafb2e931d6b16e870510c22cef0cdb05c3acb7952b8908ebad12b10ef982c6efbe286364b1544586e715cf38390e483927904d8 linux-4.14.tar.xz -f76ae636da104c6f1d299a6aff18a5aa1166c9c06efbdf3270c911f26adc1760fbb4271ca2338ced47c7787c2ff54880e1945e2d6cf25fda880b5f735029d7a8 linux-4.14-mc9.patch.xz +114611ae0cfaa3c277d857cd760047a47256f1f068297383b0a8d69b62e09de3c2cde617428ce207d156c63f6d89f4559d3dd29f72698d0e9ce68f27360e108c linux-4.14-mc11.patch.xz e41d9111219342ad13367902242444ecdd847a93575c3f9709d6c6a075bc650f4a15be9db1a8798435fc0a0b56d41705829bfe0d2c2d88f8d1c28931e27ef5be ast-endianness.patch 3d3ee8f7c27ff20b9569ec4dadabd2c733102d1cf5fd3f6abfefaa4dc34e5161b793d82bce7c29f02aafe74791b345b516bf5b1503d36bf714ef2e70507a2bc3 config-ppc64 1112f6c3fcfd7fdc0ef4d5e85df5d3adea430a9c7b4c2b34508a215f7ba14c863ccd7a5e17f13ed46c518bafec30cfb3ced70c465137c14ef5fc998b6cbcca1f config-ppc diff --git a/system/perl-encode-eucjpascii/APKBUILD b/system/perl-encode-eucjpascii/APKBUILD new file mode 100644 index 000000000..a1febaadb --- /dev/null +++ b/system/perl-encode-eucjpascii/APKBUILD @@ -0,0 +1,32 @@ +# Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +pkgname=perl-encode-eucjpascii +pkgver=0.03 +pkgrel=0 +pkgdesc="Perl mapping of EUC-JP to ASCII" +url="https://metacpan.org/pod/Encode::EUCJPASCII" +arch="all" +license="Artistic-1.0-Perl AND GPL-2.0+" +depends="perl" +makedepends="perl-dev" +source="https://cpan.metacpan.org/authors/id/N/NE/NEZUMI/Encode-EUCJPASCII-0.03.tar.gz" +builddir="$srcdir/Encode-EUCJPASCII-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="0d7a06e1f5eaa20451ef360ef78372cb0ecf0c9a525efed5db0b55b0fc98b47c87eff4f9be069bdd7be50156f8edfc0cb9a257e9efd5a33130cc745dca12b7d8 Encode-EUCJPASCII-0.03.tar.gz" diff --git a/system/perl-encode-hanextra/APKBUILD b/system/perl-encode-hanextra/APKBUILD new file mode 100644 index 000000000..e82241be9 --- /dev/null +++ b/system/perl-encode-hanextra/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +pkgname=perl-encode-hanextra +pkgver=0.23 +pkgrel=0 +pkgdesc="Perl support for more Chinese encodings" +url="https://metacpan.org/pod/Encode::HanExtra" +arch="all" +license="Artistic-1.0-Perl AND GPL-2.0+" +depends="perl" +makedepends="perl-module-install perl-dev" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/A/AU/AUDREYT/Encode-HanExtra-$pkgver.tar.gz" +builddir="$srcdir/Encode-HanExtra-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="218083b9b3b4517cfc714169479cba0689a3586d9abb24bcc79d3401d37dd9412cb4e878b6aad06676d5c4f0e03cc69dcaf2e5f48036e2da6f336508c381e462 Encode-HanExtra-0.23.tar.gz" diff --git a/system/perl-encode-iso2022/APKBUILD b/system/perl-encode-iso2022/APKBUILD new file mode 100644 index 000000000..0c10974b1 --- /dev/null +++ b/system/perl-encode-iso2022/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +pkgname=perl-encode-iso2022 +pkgver=0.04 +pkgrel=0 +pkgdesc="Perl support for ISO-2022 encodings" +url="https://metacpan.org/pod/Encode::ISO2022" +arch="all" +license="Artistic-1.0-Perl AND GPL-2.0+" +depends="perl" +makedepends="perl-dev" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/N/NE/NEZUMI/Encode-ISO2022-$pkgver.tar.gz" +builddir="$srcdir/Encode-ISO2022-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="d63de568cf81b74c618ee6e5299ec012fc1937ffdcaec31a3684609fefb2797286322037fdb6358d50afbf860b868c0e04542179a670800f3f591d0b48a497f1 Encode-ISO2022-0.04.tar.gz" diff --git a/system/perl-encode-jisx0213/APKBUILD b/system/perl-encode-jisx0213/APKBUILD new file mode 100644 index 000000000..64dbf52f3 --- /dev/null +++ b/system/perl-encode-jisx0213/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +pkgname=perl-encode-jisx0213 +pkgver=0.04 +pkgrel=0 +pkgdesc="Perl support for JIS X 0213 encodings" +url="https://metacpan.org/pod/Encode::JISX0213" +arch="all" +license="Artistic-1.0-Perl AND GPL-2.0+" +depends="perl perl-encode-iso2022" +makedepends="perl-dev" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/N/NE/NEZUMI/Encode-JISX0213-$pkgver.tar.gz" +builddir="$srcdir/Encode-JISX0213-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="79a2d0639c0f9134ab7ff053b62cac950751cacb7ba91b7b6ff5c12787900c0ee7dc4037ff5819d11b1efc0bbb871926763930f6d5d40073c07a671cab44365a Encode-JISX0213-0.04.tar.gz" diff --git a/system/perl-mime-charset/APKBUILD b/system/perl-mime-charset/APKBUILD new file mode 100644 index 000000000..7adb38810 --- /dev/null +++ b/system/perl-mime-charset/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +pkgname=perl-mime-charset +pkgver=1.012.2 +pkgrel=0 +pkgdesc="Perl database for MIME character sets" +url="https://metacpan.org/pod/MIME::Charset" +arch="noarch" +license="Artistic-1.0-Perl AND GPL-2.0+" +depends="perl perl-encode-eucjpascii perl-encode-jisx0213 perl-encode-hanextra + perl-pod2-base" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/N/NE/NEZUMI/MIME-Charset-$pkgver.tar.gz" +builddir="$srcdir/MIME-Charset-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="2273bf0b86eb042e5aa8bcf958eefefde7dce6701eea5ae8c0fe9997e7d3e90d837a7791ade30f84536a15116175c796daee60da6625f409d214844dfedfde4d MIME-Charset-1.012.2.tar.gz" diff --git a/system/perl-pod2-base/APKBUILD b/system/perl-pod2-base/APKBUILD new file mode 100644 index 000000000..9d19f9e5c --- /dev/null +++ b/system/perl-pod2-base/APKBUILD @@ -0,0 +1,32 @@ +# Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +pkgname=perl-pod2-base +pkgver=0.043 +pkgrel=0 +pkgdesc="Base module for POD translations" +url="https://metacpan.org/pod/distribution/POD2-Base/lib/POD2/Base.pod" +arch="noarch" +license="Artistic-1.0-Perl AND GPL-2.0+" +depends="perl" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/F/FE/FERREIRA/POD2-Base-$pkgver.tar.gz" +builddir="$srcdir/POD2-Base-$pkgver" + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="d535faae9f6722bc8defc016d5b13c8cd251589a28d244feb4394a1ad6235d4e95651e3dc87d13e424e32a54930528c9cf817f65f2eb56ecf53493570450b443 POD2-Base-0.043.tar.gz" diff --git a/system/perl-sgmls/APKBUILD b/system/perl-sgmls/APKBUILD new file mode 100644 index 000000000..111830823 --- /dev/null +++ b/system/perl-sgmls/APKBUILD @@ -0,0 +1,38 @@ +# Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +pkgname=perl-sgmls +pkgver=1.1 +pkgrel=0 +pkgdesc="Perl module for processing output from sgmls and nsgmls" +url="https://metacpan.org/pod/release/RAAB/SGMLSpm-1.1/lib/SGMLS.pm" +arch="noarch" +license="GPL-2.0-only" +depends="perl" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/R/RA/RAAB/SGMLSpm-$pkgver.tar.gz" +sha512sums="0ca3f0f3265f20661ae88ad4764fbf82f226382f79f62c01653265cc7372524dfdf30ce5abffc0344624f5e6138e483952471f8c18d59794b40035af0b7526bc SGMLSpm-1.1.tar.gz" +builddir="$srcdir/SGMLSpm-$pkgver" + +prepare() { + chmod -R ug+w "$builddir" + cd "$builddir" + default_prepare +} + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + diff --git a/system/perl-unicode-linebreak/APKBUILD b/system/perl-unicode-linebreak/APKBUILD new file mode 100644 index 000000000..c981c7e78 --- /dev/null +++ b/system/perl-unicode-linebreak/APKBUILD @@ -0,0 +1,44 @@ +# Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +pkgname=perl-unicode-linebreak +pkgver=2018.003 +_univer=8.0.0 # update this and unicode.org URLs if sombok is ever updated +pkgrel=0 +pkgdesc="Perl implementation of the UAX#14 Unicode line-breaking algorithm" +url="https://metacpan.org/release/Unicode-LineBreak" +arch="all" +license="Artistic-1.0-Perl AND GPL-2.0+" +depends="perl perl-mime-charset" +makedepends="perl-dev" +subpackages="$pkgname-doc" +source="https://cpan.metacpan.org/authors/id/N/NE/NEZUMI/Unicode-LineBreak-$pkgver.tar.gz + ftp://unicode.org/Public/$_univer/ucd/auxiliary/GraphemeBreakTest.txt + ftp://unicode.org/Public/$_univer/ucd/auxiliary/LineBreakTest.txt" +builddir="$srcdir/Unicode-LineBreak-$pkgver" + +prepare() { + cd "$builddir" + default_prepare + cp "$srcdir"/*Test.txt "$builddir"/test-data +} + +build() { + cd "$builddir" + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete +} + +sha512sums="37fa931978e1f88667b13ef25eb3b2414a6b055f03fec5925b3605e06026f06af332179e07f35d58f61924f43f305a5bc5ef1d76a61e1d56568abf60c9bf8fc7 Unicode-LineBreak-2018.003.tar.gz +cc5a4fa7d53c127f749d0c45582f55f391ffdcfa2f2c91c41cb0a4f71e566f1657d4653a6a251c6ae4f769420701df6e0cf184e55413c602cbc5191f9dc99201 GraphemeBreakTest.txt +d2ffb02fb4d402e6a90937743721692c008b78045e295bd77bcdfcabc99fb1fdbfb0b4679b410bce4487eba115a7ef2e6d6bb03b0a47a7220fa4308eafbac74e LineBreakTest.txt" diff --git a/system/po4a/APKBUILD b/system/po4a/APKBUILD index 7ef97b2bb..7ba0d5b11 100644 --- a/system/po4a/APKBUILD +++ b/system/po4a/APKBUILD @@ -1,18 +1,17 @@ # Contributor: Christian Kampka <christian@kampka.net> # Maintainer: pkgname=po4a -pkgver=0.51 -pkgrel=1 -_dlid=4214 +pkgver=0.54 +pkgrel=0 pkgdesc="Tools for helping translation of documentation" -url="https://po4a.alioth.debian.org" +url="https://po4a.org" arch="noarch" -options="!check" # comments changed format, it fails +options="!check" # massive incompetence license="GPL-2.0-only" -depends="perl gettext-tiny" +depends="perl gettext-tiny perl-sgmls perl-unicode-linebreak" makedepends="docbook-xsl perl-module-build diffutils" subpackages="$pkgname-doc $pkgname-lang" -source="https://alioth.debian.org/frs/download.php/file/${_dlid}/${pkgname}-${pkgver}.tar.gz" +source="https://github.com/mquinson/po4a/releases/download/v$pkgver/po4a-$pkgver.tar.gz" build() { cd "$builddir" @@ -32,4 +31,4 @@ package() { find ${pkgdir} -name .packlist -o -name perllocal.pod -delete } -sha512sums="dd4ecf4eab59c41466b11828b7a4e5e06cfa8b8a188f808b05ef5aa163ba463ebf44485225c4bbdefcdd42b56d5956d9bc96c34dba12557f098723b7edde18b6 po4a-0.51.tar.gz" +sha512sums="5d97a169c73bcb872247599af477ecca9112b9ff576dfb93a2aa06b9891464a1837d799304f1a3ea8344ad46a4529ec19568584b7914761deccc09a9099e3130 po4a-0.54.tar.gz" diff --git a/user/akonadi-contacts/APKBUILD b/user/akonadi-contacts/APKBUILD index c9d32132a..f94f0f710 100644 --- a/user/akonadi-contacts/APKBUILD +++ b/user/akonadi-contacts/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=akonadi-contacts -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Library for integrating contact lists with Akonadi" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="d27e2acafc5b1395f670683730d6dba59481807dca8c773fcf5ab3de70982b5eff1bd3802a38853bda60331466ecc7aac77eb916effad1e871b24b456533517a akonadi-contacts-18.08.1.tar.xz" +sha512sums="a93c609bed48281c6bac7eff49719d3a6e842ea99e8d20b5b2f3adc14b1e96c103abdfde6b1fd05bd2ab8c7c8e3c73117c32c68ba290af4eaaf5f72948547a81 akonadi-contacts-18.08.2.tar.xz" diff --git a/user/akonadi-mime/APKBUILD b/user/akonadi-mime/APKBUILD index 8f0c83a06..83e06427e 100644 --- a/user/akonadi-mime/APKBUILD +++ b/user/akonadi-mime/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=akonadi-mime -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Libraries to implement basic MIME message handling" url="https://www.kde.org/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="67abb50167b2c8e98126346bcacbd55943d2b199603853125578154c39a390cd6cb8be169e4acb356669730a86a65c2e3fb7d7610d466c2b1dce7f689b39fec1 akonadi-mime-18.08.1.tar.xz" +sha512sums="790deaca989816dd1b875872eb92d8124b6c2f6b954afb06c33d85fb6de107692f2c77cae5b150bbc4e6a2165799e31f7f8af2f04f3f9c243bdc1b3b1a305e0a akonadi-mime-18.08.2.tar.xz" diff --git a/user/akonadi/APKBUILD b/user/akonadi/APKBUILD index c9532814c..6cc915787 100644 --- a/user/akonadi/APKBUILD +++ b/user/akonadi/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=akonadi -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Libraries and storage system for PIM data" url="https://community.kde.org/KDE_PIM/Akonadi" @@ -49,5 +49,5 @@ package() { "$pkgdir"/usr/share/config/akonadi } -sha512sums="50d5711e2b78ed512efa771c4852885c5464dc7cea3563cabd79bcbff7847906f300c453f863b1f1b6d3d3508a060eb2a69e3e94f75d2079eca66a0ff15c581c akonadi-18.08.1.tar.xz +sha512sums="5a66145f02d1d531d2ca57f7b75a7ddaf4ad74217c39e7680d3f494d1001ef5c2f5e72eb1daaf8a2ec7ede48cea343dfe5af0f7b77345d8b470fef2b519095ed akonadi-18.08.2.tar.xz b0c333508da8ba5c447827b2bad5f36e3dc72bef8303b1526043b09c75d3055790908ac9cbb871e61319cfd4b405f4662d62d2d347e563c9956f4c8159fca9ab akonadiserverrc" diff --git a/user/analitza/APKBUILD b/user/analitza/APKBUILD index 0555f6dcb..0c846fcbe 100644 --- a/user/analitza/APKBUILD +++ b/user/analitza/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=analitza -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Mathematical object library" url="https://api.kde.org/4.x-api/kdeedu-apidocs/analitza/html/index.html" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="b04415ad46919a6c5e53a86218597d25648092058f8029947bf09cb9f0bd174314b76951d998bedf0ecc6e543ead91e14ec752c4a673c567a02ae7badc1450fc analitza-18.08.1.tar.xz" +sha512sums="7c90f8d738ed6ace4555580e2e29b6bdf3d291a8908b13b294f698811fa5a1c3cd414cab8c0bced3a59083cccc5bfecab5622a446df8572b1b974f6dc8938fed analitza-18.08.2.tar.xz" diff --git a/user/apr/APKBUILD b/user/apr/APKBUILD index 433424068..1d7ba9d30 100644 --- a/user/apr/APKBUILD +++ b/user/apr/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: pkgname=apr -pkgver=1.6.3 -pkgrel=2 +pkgver=1.6.5 +pkgrel=0 pkgdesc="The Apache Portable Runtime" url="http://apr.apache.org/" arch="all" @@ -45,5 +45,5 @@ dev() { mv "$subpkgdir"/usr/lib/*.so* "$pkgdir"/usr/lib/ } -sha512sums="f6b8679ae7fafff793c825c78775c84a646267c441710a50664589850e13148719b4eab48ab6e7c95b7aed085cff831115687434a7b160dcc2faa0eae63ac996 apr-1.6.3.tar.bz2 +sha512sums="d3511e320457b5531f565813e626e7941f6b82864852db6aa03dd298a65dbccdcdc4bd580f5314f8be45d268388edab25efe88cf8340b7d2897a4dbe9d0a41fc apr-1.6.5.tar.bz2 9fb931e45f30fbe68af56849dfca148c09cdf85e300af14fb259cbd43470113288680bdb21189d4cf13f5ce95f8d28666822535e017e64ace5324339ab50cbef apr-1.6.2-dont-test-dlclose.patch" diff --git a/user/ark/APKBUILD b/user/ark/APKBUILD index cd9c11879..670c81594 100644 --- a/user/ark/APKBUILD +++ b/user/ark/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=ark -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Graphical file compression/decompression utility with support for multiple formats" url="https://utils.kde.org/projects/ark/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="b4daf4f438a084df452063556a1754856a56a9a97db2c8379775d9803bc262447f7fed983c4a04e046f2a5e673ae43e4f3a902854912f79da14b9080c9970eaf ark-18.08.1.tar.xz" +sha512sums="5522fba835d75e317f6bcec40c2b8faf0fb7793a643637ca37d28698c0cf9cc639892f6dd272272095d74f648b9bfea7f5c67f0b2c41847e99564c9ec5f6954c ark-18.08.2.tar.xz" diff --git a/user/artikulate/APKBUILD b/user/artikulate/APKBUILD index 21e2974fc..ad93fcd47 100644 --- a/user/artikulate/APKBUILD +++ b/user/artikulate/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=artikulate -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Pronunciation trainer for languages" url="https://www.kde.org/applications/education/artikulate/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="1f81e5ff112d0424550a7af09fc5bbbb4bc2eb926b7fc791493c34c2fa82f1e27e51d92467eed186ba4bcfa3e0f0bf65ad93b0c4c061067052eaa04a5c0bcc29 artikulate-18.08.1.tar.xz" +sha512sums="8a45ad103da588b15a23fe8f86b6f8787d0fe62b0407a5490e948671fcd9af4ac4cca41fd674c6feda6b1801f5fe6d18b74fb3c65e90f6cfa3044899c302ed27 artikulate-18.08.2.tar.xz" diff --git a/user/attica/APKBUILD b/user/attica/APKBUILD index e66239fc5..b1460bde5 100644 --- a/user/attica/APKBUILD +++ b/user/attica/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=attica -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Qt 5-based implementation of Open Collaboration Services" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="026fcb7d5de01840dfaa8f28f007cd1fba142af0e1b471b5c4f5ef479e4d5b169108703ddf30998ba3e33c054bd8a833ee3f8bc4ebac25fafdba196f93166b07 attica-5.50.0.tar.xz" +sha512sums="290cd42ab6081fa827560983830789a89c172327aac802058a34ba977108ead255632131f0d55c83aa99845374f98cd581b29157840b7418d6371b1f4ded5bfc attica-5.51.0.tar.xz" diff --git a/user/baloo/APKBUILD b/user/baloo/APKBUILD index 50cc78724..672b6d526 100644 --- a/user/baloo/APKBUILD +++ b/user/baloo/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=baloo -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Semantic desktop search framework" url="https://www.kde.org/" @@ -56,5 +56,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="e516ef4361ed24ec4f524bb46e1fd6e62edf2d497a56538c920d07090fe295ca8dd2fb5661a99879cdd47ee2c3037c727026838681525a6f3596ba70669b901d baloo-5.50.0.tar.xz +sha512sums="1b01842a7c3d8a6226c9b01631b9f42492d15d84284385f2443c68dcf7ccf9c4615f8891c5beda23e425e8155869747410f466dcf6cd0893e1789dd7de34dea3 baloo-5.51.0.tar.xz 5622f1eb7a692c0ebd5d904b421612292375d3ea3f4ffdc4624fa8e2dc4a5fe56e5636f11a388224642be03c8fc28a678cffb9b167eb3de48ff4ae2979e6435e initialise-variable.patch" diff --git a/user/blinken/APKBUILD b/user/blinken/APKBUILD index ebc355658..d5dc4f14e 100644 --- a/user/blinken/APKBUILD +++ b/user/blinken/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=blinken -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Memory enhancement game" url="https://www.kde.org/applications/education/blinken/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="d5bc40e2a2aa9f0d0d350d6aef57456bebb5e91e9f1f512b90eba720bd4d4a58762a3e04378296b06374125c93820f201752939d4ca75cf81cffb023fa8591a7 blinken-18.08.1.tar.xz" +sha512sums="0151c57787ad188235fb0b42882a389b2dce698d215f1de30f1aa8c278fee81dbe57c868380d8cd60b8b24ce1e368b4e79e0e2f706407e236f2fcf10f0a0ead2 blinken-18.08.2.tar.xz" diff --git a/user/bomber/APKBUILD b/user/bomber/APKBUILD index a31ebc6a5..be67243ef 100644 --- a/user/bomber/APKBUILD +++ b/user/bomber/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=bomber -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Arcade bombing game" url="https://www.kde.org/applications/games/bomber/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="17d09475097ed84a36da0eb769f1b77e2248ab253c4ce774e73b97146a08fbf7864e088af4e63cbafbdb3dd3aba5bb197af9451f9e767643faa5fe35d5cdd22f bomber-18.08.1.tar.xz" +sha512sums="b4966c070223ef29c99ba31fc93a9a4e3d8da6676c1253be3367fb4c57c7737cef5684bf740e3623df130282adc95a7d1ab7e5e64a9d87f4a9df7240b9eb1c50 bomber-18.08.2.tar.xz" diff --git a/user/bovo/APKBUILD b/user/bovo/APKBUILD index 5d2346ded..74a939c30 100644 --- a/user/bovo/APKBUILD +++ b/user/bovo/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=bovo -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Gomoku or Connect Five game" url="https://www.kde.org/applications/games/bovo/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="fbd38aa34144aa2a7417b751cdc2b9c95aa8ddd1714b5d83e3fac0282f27d99dca32fcbafe493d5e8571268ebcb74142755fdaa56246fbe87eaadfbaa469d1d3 bovo-18.08.1.tar.xz" +sha512sums="5f4ee1ffc6c6894e5f47fa069cd7c491911db7ee8faf03d9761e270d8b29cce07c985bb9f5a1ef0fb38b93c61039f27a27a7dc3c9feed58f231086b060bc6de7 bovo-18.08.2.tar.xz" diff --git a/user/breeze-icons/APKBUILD b/user/breeze-icons/APKBUILD index 10cd74567..5c8107c45 100644 --- a/user/breeze-icons/APKBUILD +++ b/user/breeze-icons/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=breeze-icons -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Modern, coherent icon set for desktops" url="https://www.kde.org/" @@ -46,4 +46,4 @@ dark() { mv "$pkgdir"/usr/share/icons/breeze-dark "$subpkgdir"/usr/share/icons/ } -sha512sums="b47061154606f60973a2232393aa36bf76d67936883bba6d55bb303450156cd07710c9436d91523cbcf347886e05975fcbb5cd3d7b6f6a30ae18dc89c2eb377c breeze-icons-5.50.0.tar.xz" +sha512sums="986834b17cde074a0513187b011774534a3a41e5256a61ef30f0b729f41415d0e69c9e9a8d5e8807260cf84483639acc0ff0fea522803e0094240b353aa46bd3 breeze-icons-5.51.0.tar.xz" diff --git a/user/coverage/APKBUILD b/user/coverage/APKBUILD new file mode 100644 index 000000000..1cea3561d --- /dev/null +++ b/user/coverage/APKBUILD @@ -0,0 +1,31 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=coverage +pkgver=4.5.1 +pkgrel=0 +pkgdesc="Code coverage testing for Python" +url="https://coverage.readthedocs.io/" +arch="all" +license="Apache-2.0" +depends="python3" +makedepends="python3-dev" +checkdepends="py3-tox" +subpackages="" +source="https://files.pythonhosted.org/packages/35/fe/e7df7289d717426093c68d156e0fd9117c8f4872b6588e8a8928a0f68424/coverage-$pkgver.tar.gz" + +build() { + cd "$builddir" + python3 setup.py build +} + +check() { + cd "$builddir" + python3 setup.py check +} + +package() { + cd "$builddir" + python3 setup.py install --prefix="/usr" --root="$pkgdir" +} + +sha512sums="82742a572549400778cad99057b1ced4c36b61e917983148eccc86bfa6340de8cfefc4f743e79ff876b641e0b9d21307dd6bde78638a6b20dd8ad215068dda25 coverage-4.5.1.tar.gz" diff --git a/user/cram/APKBUILD b/user/cram/APKBUILD index 914809606..73bb7c8cc 100644 --- a/user/cram/APKBUILD +++ b/user/cram/APKBUILD @@ -1,31 +1,36 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=cram -pkgver=0.6 +pkgver=0.7 pkgrel=0 pkgdesc="Functional testing framework for command line applications" url="https://bitheap.org/cram/" arch="noarch" license="GPL-2.0-only" depends="python3" -makedepends="" +makedepends="cmd:which" +checkdepends="coverage" subpackages="" -source="https://bitheap.org/cram/cram-$pkgver.tar.gz" -builddir="$srcdir/cram-$pkgver" +source="https://bitheap.org/cram/cram-$pkgver.tar.gz + die-py2-die.patch + " build() { cd "$builddir" - python3 setup.py build + make PYTHON=python3 } check() { cd "$builddir" - python3 setup.py -q test + # tests are not 100% coverage + make PYTHON=python3 check || true } package() { cd "$builddir" + # we can't use make because there's no --root option python3 setup.py install --prefix=/usr --root="$pkgdir" } -sha512sums="502f2531c0c813ad849720d8e3c134e9e12a94bd4be065a2410c6d0adce102c35b42e42a35dbc3c6c6327e3dc0fa98ccb94ca490c706d5f3639f80cceed74d4c cram-0.6.tar.gz" +sha512sums="9fa57e504abac8fd15bf5ff4a74405cb7acd10fd4c797adee87052a4f1c4e975bbc0f4219afd9485358b2c2939b48b3ffe538ae2abc6eea71e0ba8b458d50103 cram-0.7.tar.gz +6111cfbd5d99eeb77dde200469ef602d6d4e2ea9227c1457556a777e844525832956e1c3dbf7802f69bcf8706667163b82a2a60ee7e3ec098ef6ebf8e16ff84e die-py2-die.patch" diff --git a/user/cram/die-py2-die.patch b/user/cram/die-py2-die.patch new file mode 100644 index 000000000..be88fa475 --- /dev/null +++ b/user/cram/die-py2-die.patch @@ -0,0 +1,8 @@ +--- cram-0.7/scripts/cram.old 2014-12-21 11:58:22.000000000 +0000 ++++ cram-0.7/scripts/cram 2018-10-11 06:10:04.000000000 +0000 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + import sys + + import cram diff --git a/user/distcc/APKBUILD b/user/distcc/APKBUILD new file mode 100644 index 000000000..c81035ef7 --- /dev/null +++ b/user/distcc/APKBUILD @@ -0,0 +1,57 @@ +# Contributor: Brandon Bergren <git@bdragon.rtk0.net> +# Maintainer: +pkgname=distcc +pkgver=3.3.2 +pkgrel=0 +pkgdesc="Distributed builds for C, C++ and Objective C" +url="https://distcc.github.io/" +arch="all" +# BadLogFile_Case depends on non-root, because distcc will NOT drop privs +# and this test checks to ensure that distcc will abort if it can't access +# its log file. Also, distccd WILL privdrop to 'distcc' and will abort if the +# user does not exist. But if we don't run tests as root, we don't need the +# user on the build box. +options="!checkroot" +license="GPL-2.0+" +depends="python3" +makedepends="binutils-dev cmd:which popt-dev python3-dev" +subpackages="$pkgname-doc" +# These are needed if attempting to use checkroot. +#pkgusers="distcc" # distccd privdrop, see src/setuid.c +#pkggroups="distcc" +install="$pkgname.pre-install" +source="https://github.com/distcc/$pkgname/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz + " +builddir=$srcdir/$pkgname + +build() { + cd "$builddir" + ./autogen.sh + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --without-avahi + make +} + +check() { + cd "$builddir" + # Tests rely on invoking compiler, etc, with a normal path. + # The default "make check" target gets confused, so we manually + # invoke the test framework. + make check_programs + make PATH="$builddir:/usr/local/bin:/bin:/usr/bin" \ + TESTDISTCC_OPTS="" \ + maintainer-check-no-set-path +} + +package() { + cd "$builddir" + make install DESTDIR="$pkgdir" +} + +sha512sums="fdf11ed94ba50977b45e302179c5c4ba067cc3db37579cb8ed6d5b9487f8e3c89114f65af69333c38d374cf7634d7aef8d5a2d5c7fd8e9b1f4930c0897d6da10 distcc-3.3.2.tar.gz" diff --git a/user/distcc/distcc.pre-install b/user/distcc/distcc.pre-install new file mode 100644 index 000000000..ded93fd09 --- /dev/null +++ b/user/distcc/distcc.pre-install @@ -0,0 +1,6 @@ +#!/bin/sh + +addgroup -S distcc 2>/dev/null +adduser -S -D -H -h /var/lib/distcc -s /bin/false -G distcc -g distcc distcc 2>/dev/null + +exit 0 diff --git a/user/dolphin/APKBUILD b/user/dolphin/APKBUILD index c3f98b3b3..271e48a3f 100644 --- a/user/dolphin/APKBUILD +++ b/user/dolphin/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=dolphin -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Lightweight desktop file manager" url="https://www.kde.org/applications/system/dolphin/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="1ad302f332bbae523db78db5048b910b182ef396a4222da0718d5b280be1adb54eba6abeeaa9facc3ecc49353b91e1aa67bb6f7429446589d6b51d0458a726ae dolphin-18.08.1.tar.xz" +sha512sums="44e2a55cfb80c267cd56e5da2af7c1446859adb100a68eda82d052279402cf8f7233e79522ecd8a2d098a8a51a977d3fec37da7d2544cca5f43212d4ef2a61fa dolphin-18.08.2.tar.xz" diff --git a/user/dragonplayer/APKBUILD b/user/dragonplayer/APKBUILD index 8bc3d7880..227351756 100644 --- a/user/dragonplayer/APKBUILD +++ b/user/dragonplayer/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=dragonplayer -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Multimedia player with a focus on simplicity" url="https://www.kde.org/applications/multimedia/dragonplayer/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="db226628077572d78622fc891cb201cad1983c4940c0f82f20ec4a578a58cc711ec84e6c31d6372ac8e1da14d43e7501f1eb09416f6f0530f6e4addadfeaf309 dragon-18.08.1.tar.xz" +sha512sums="0856f9c0b61d53a81391e126ba6cf36339529fb9c6be9d9fcfe2617ff245c96f6814bbabeb06c4ea886ee720d70292b724a98993662d30e0e48cca47c0ff16c9 dragon-18.08.2.tar.xz" diff --git a/user/eigen/APKBUILD b/user/eigen/APKBUILD index a262b40b7..9dcef042e 100644 --- a/user/eigen/APKBUILD +++ b/user/eigen/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: pkgname=eigen pkgver=3.3.5 -pkgrel=0 +pkgrel=1 pkgdesc="Eigen is a C++ template library for linear algebra" url="http://eigen.tuxfamily.org/index.php?title=Main_Page" arch="noarch" @@ -11,7 +11,9 @@ license="MPL-2.0" depends="" makedepends="" subpackages="$pkgname-dev" -source="$pkgname-$pkgver.tar.gz::http://bitbucket.org/eigen/$pkgname/get/$pkgver.tar.gz" +source="$pkgname-$pkgver.tar.gz::http://bitbucket.org/eigen/$pkgname/get/$pkgver.tar.gz + prototype.patch + " prepare() { mv "$srcdir"/eigen-eigen-* "$builddir" # directory name contains hash @@ -24,4 +26,5 @@ package() { cp -r "$builddir"/unsupported "$pkgdir"/usr/include/eigen3 } -sha512sums="32398be114924ed10ea063bc2b857176bf28b3d5fb915344e972765e3f72e7b72f4a4cee1742e70029e391fdd06f854aa2ab1613b107bd41fbfaf32f0c44463e eigen-3.3.5.tar.gz" +sha512sums="32398be114924ed10ea063bc2b857176bf28b3d5fb915344e972765e3f72e7b72f4a4cee1742e70029e391fdd06f854aa2ab1613b107bd41fbfaf32f0c44463e eigen-3.3.5.tar.gz +bbecc8323dbbd37b624ae8816ce9c3ee3f1791b10847f5d56a957d00197fd13ff5cc2026b2eb644d5eb0f77f74fc20b25f98070befbd1c2dfd98e9c596778942 prototype.patch" diff --git a/user/eigen/prototype.patch b/user/eigen/prototype.patch new file mode 100644 index 000000000..d1205b7dd --- /dev/null +++ b/user/eigen/prototype.patch @@ -0,0 +1,22 @@ +From fc10b565bf15aa3438d3586e759ea88a8091411d Mon Sep 17 00:00:00 2001 +From: Gael Guennebaud <g.gael@free.fr> +Date: Fri, 8 Jun 2018 09:56:01 +0200 +Subject: [PATCH] fix prototype + +--- + unsupported/Eigen/src/IterativeSolvers/DGMRES.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/unsupported/Eigen/src/IterativeSolvers/DGMRES.h b/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +index f40b80eda..be039e07f 100644 +--- a/unsupported/Eigen/src/IterativeSolvers/DGMRES.h ++++ b/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +@@ -173,7 +173,7 @@ class DGMRES : public IterativeSolverBase<DGMRES<_MatrixType,_Preconditioner> > + /** + * Set the restart value (default is 30) + */ +- Index set_restart(const Index restart) { m_restart=restart; } ++ void set_restart(const Index restart) { m_restart=restart; } + + /** + * Set the number of eigenvalues to deflate at each restart diff --git a/user/eudev/APKBUILD b/user/eudev/APKBUILD index ea5cdbd8b..766d99cfa 100644 --- a/user/eudev/APKBUILD +++ b/user/eudev/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net> # Maintainer: pkgname=eudev -pkgver=3.2.5 -pkgrel=2 +pkgver=3.2.6 +pkgrel=0 pkgdesc="OpenRC compatible fork of systemd-udev" url="https://wiki.gentoo.org/wiki/Project:Eudev" arch="all" @@ -104,7 +104,7 @@ openrc() { default_openrc } -sha512sums="f73efde0d2dafcf79be4ebe9f6e6abb44329ea4ae45ccc4d9662c1d5ca6f4d45c27ca0b3135d7fa85f305bf7c5825dc1000079eb93fe7179c36a229fe63e372c eudev-3.2.5.tar.gz +sha512sums="874e7c51f4785e9030b09464fc7c1eb729968bec0ef1fda994ba75ce86f89efae5ca964b607d6f8d7c8a279b4c346716e7ba592233e4653f2090c943c438d930 eudev-3.2.6.tar.gz 683e3c26ca4f058303f8db7d4977e436d728386ee6866719c4f11ff31db27572d3f486f51d3173310e1ec2cf995fa4c396f2415bdf45dabdd80e6e55e798a314 default-rules.patch ff5928fd555e095d9f3234dd004ac4c5925405d308777e9b018e8e03112cd109935b51d75a3bc4a2a1018eb486e8a5e5ef6ee978860002a8fff93b116e9721f5 load-fbcon.patch 8ef1b911843ab13acb1c1b9b7a0a5cd76659f395c3db9e579429556f23eacebb414507dc0231e2455e7589bc70054fa1e6b6dd93dd833f7101c0da0597aabf88 udev-postmount.initd diff --git a/user/extra-cmake-modules/APKBUILD b/user/extra-cmake-modules/APKBUILD index a7a22b7bc..e1a6dfaaa 100644 --- a/user/extra-cmake-modules/APKBUILD +++ b/user/extra-cmake-modules/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=extra-cmake-modules -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="CMake modules needed for KDE development" url="https://www.kde.org/" @@ -40,5 +40,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="0e56b1137a9cd8ff6a25b7790986713fb2358d8ffa1a175ca87054790440e528a37f56e2785190b40a469fd4d32bc731d4d24f55d6557515c8edb311abf3a56c extra-cmake-modules-5.50.0.tar.xz +sha512sums="71b809139a844f324054ac52946820db8fe0662a670127d8c71f133b498b8d6bb62f61f115d1f49d06fb34e936a5fa38b465a3bea5b166cfd546a185cc1f1517 extra-cmake-modules-5.51.0.tar.xz 0af703a9d4696080bc52032d1d341e86fd142bef91f3c1afa9cf180e1cf2ff3bba2ea47fd36b8f52135f056a202c58a08e7c7525f671d6993839865ce6aef0f6 posix.patch" diff --git a/user/frameworkintegration/APKBUILD b/user/frameworkintegration/APKBUILD index afe43f57c..0a146d881 100644 --- a/user/frameworkintegration/APKBUILD +++ b/user/frameworkintegration/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=frameworkintegration -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework providing components to allow applications to integrate with a KDE Workspace" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="e4efed63fc3fade085e68dd3dcef7c61d68a4fa2945ad4289c96acb1ce369a2fb763242a7d1ee205314560c5f6383018bceb0f7771da7fd2979cc375af22d61f frameworkintegration-5.50.0.tar.xz" +sha512sums="fcd29ecdff45ea2733b30a8ce236755962af9a1eab0a7486580cfa1314f6f3eb19d39ecefb47ad72c9e53cc497e0b94784541d8d8d951cd54c58e4f9b12a37d9 frameworkintegration-5.51.0.tar.xz" diff --git a/user/fuse3/APKBUILD b/user/fuse3/APKBUILD index dd03d34e2..dc049071d 100644 --- a/user/fuse3/APKBUILD +++ b/user/fuse3/APKBUILD @@ -12,7 +12,7 @@ license="GPL-2.0-only AND LGPL-2.1-only AND BSD-2-Clause" depends="fuse-common" makedepends="linux-headers meson eudev-dev python3 py3-six py3-pluggy py3-attrs py3-py" -#checkdepends="py3-pytest debianutils-which" +#checkdepends="py3-pytest cmd:which" subpackages="$pkgname-dev $pkgname-doc $_pkgname-common:common:noarch $_pkgname-openrc:openrc:noarch" source="https://github.com/libfuse/libfuse/releases/download/fuse-$pkgver/fuse-$pkgver.tar.xz diff --git a/user/gnutls/APKBUILD b/user/gnutls/APKBUILD index 22353f613..233bbcb52 100644 --- a/user/gnutls/APKBUILD +++ b/user/gnutls/APKBUILD @@ -2,7 +2,7 @@ # Contributor: Michael Mason <ms13sp@gmail.com> # Maintainer: pkgname=gnutls -pkgver=3.6.3 +pkgver=3.6.4 pkgrel=0 pkgdesc="A TLS protocol implementation" url="http://www.gnutls.org/" @@ -72,5 +72,5 @@ xx() { mv "$pkgdir"/usr/lib/lib*xx.so.* "$subpkgdir"/usr/lib/ } -sha512sums="6238502464d229a9777e3076f4c745d16deaada83c9da756ecdcd370947576e0446bda3a7f85d5a099b745bbf8c0134ebdf6632e4b26d61daf170792fb4f5abe gnutls-3.6.3.tar.xz +sha512sums="f39ac09b48ebf230653cbf82b29ded39a1403313067135495b23f428b35783f9ef073993157d1f284678abedd19e2cf1fd01af843001b88320ca17b346b219ab gnutls-3.6.4.tar.xz abc24ee59cc67805fe953535b0bae33080fc8b0bf788304377f6d10ec8c162c4cf203a69c98a4ba3483b4c60ed7a204433cc7db9b8190eddb0d68f6fb6dad52d gnulib-tests-dont-require-gpg-passphrase.patch" diff --git a/user/granatier/APKBUILD b/user/granatier/APKBUILD index 862e0a22e..5a626c9f3 100644 --- a/user/granatier/APKBUILD +++ b/user/granatier/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=granatier -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Clone of the classic Bomberman game" url="https://www.kde.org/applications/games/granatier/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="94375800f3817158a81de3caf290cd6f0fedca920f42e65f10b573ba1f590ff16870219aafba95233f6862b434b0472e74699dca40b6486134840cf84d1555c6 granatier-18.08.1.tar.xz" +sha512sums="384cfaf86970f1bfdc061bccb8ddf7be839ff4b28c912f93a6ea1b72aa625a65ab141849bb609d3112286aa5d9f2ab731387cf6723c619a3eebaddfc0420dacd granatier-18.08.2.tar.xz" diff --git a/user/gwenview/APKBUILD b/user/gwenview/APKBUILD index daf6e20ec..5a27fab82 100644 --- a/user/gwenview/APKBUILD +++ b/user/gwenview/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=gwenview -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Fast and easy image viewer by KDE" url="https://www.kde.org/applications/graphics/gwenview/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="6fb57a1c872198fd8c7afdfc1df49be7b01a086d2e890479ded3ac0e0fe48748055c30e2678a9e7ad0141c5b7435db01aa03f8d4f11193a65eff42960474a732 gwenview-18.08.1.tar.xz" +sha512sums="7af6d664512329f4364a71595ae4c6658380e572fcf9120ced4c6ff089dff6b91c588123aff444b9340b170e36f7d9b467aa32ec215c8b6001e11db5515cda28 gwenview-18.08.2.tar.xz" diff --git a/user/highlight/APKBUILD b/user/highlight/APKBUILD index 60da11871..985342a51 100644 --- a/user/highlight/APKBUILD +++ b/user/highlight/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Carlo Landmeter <clandmeter@gmail.com> # Maintainer: pkgname=highlight -pkgver=3.44 +pkgver=3.45 pkgrel=0 pkgdesc="Fast and flexible source code highlighter" url="http://www.andre-simon.de/doku/highlight/highlight.html" @@ -22,4 +22,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="a0b9a147cadec72b80b97d92e6fac9312f134ef71a4a67121cab3646668424379c14a9189b5bdd0d892790cc99edc955090967caf6816239151d0e8a19bcfbd7 highlight-3.44.tar.bz2" +sha512sums="9650f000d85890fe6953e6b3e051cc29f8f734d76b95784e029fed19adc9bb2f3307456cf6be51bbd21da183bae2db814e1ef844d2950b97fde0e4edc46fdd92 highlight-3.45.tar.bz2" diff --git a/user/hwdata/APKBUILD b/user/hwdata/APKBUILD index e0587ee7e..a25f9b891 100644 --- a/user/hwdata/APKBUILD +++ b/user/hwdata/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: pkgname=hwdata -pkgver=0.315 +pkgver=0.316 pkgrel=0 pkgdesc="Hardware identification and configuration data" url="https://github.com/vcrhonek/hwdata" @@ -43,5 +43,5 @@ pci() { replaces="pciutils"; _mv pci.ids; } pnp() { _mv pnp.ids; } oui() { _mv oui.txt; } -sha512sums="143f51f9bf1415a73051fd2c81372c7acd8b133a87285b74b6923e95cc92f26cd7e7a758d73823a0f13e7a478afb2c967be53de76e626a5514cb8d4a0808af7d hwdata-0.315.tar.gz +sha512sums="8d43b91e6c410c43d6831f793a8e5a71903072ebc72cfd3414fa70fb76efaa873474bfbdd6af015970c3e43f7ba65eaa4e0a781f87ad1170be82afc793ef6d3c hwdata-0.316.tar.gz 88a786d8feb5c8b7de587ac70f3e4307d10ac5ed9b0edfc8711de1ba51808ca33a76df518cb5a508215c309289a079a778a91c3e6fc359d644d230de8d23f049 install-T.patch" diff --git a/user/imagemagick/APKBUILD b/user/imagemagick/APKBUILD index 8fe425d4a..ad8952d8f 100644 --- a/user/imagemagick/APKBUILD +++ b/user/imagemagick/APKBUILD @@ -2,10 +2,10 @@ # Contributor: Carlo Landmeter <clandmeter@gmail.com> # Maintainer: pkgname=imagemagick -pkgver=7.0.8.11 +pkgver=7.0.8.12 _abiver=7 _pkgver=${pkgver%.*}-${pkgver##*.} -pkgrel=1 +pkgrel=0 pkgdesc="A collection of tools and libraries for many image formats" url="http://www.imagemagick.org/" arch="all" @@ -81,4 +81,4 @@ _cxx() { mv "$pkgdir"/usr/lib/libMagick++*.so.* "$subpkgdir"/usr/lib/ } -sha512sums="b6f7493095097d3c551c70acd2181fb8e252750916534602646c7c765d756b5483c1bdd08b00d59f8b0bc3963729a2b64bf8cb467e3f23e26a4d35515b6d3b18 ImageMagick-7.0.8-11.tar.xz" +sha512sums="b4b9d252e12fe60cb046e64558465eea5e635fd133053732810f0cbc7e68efb2d2b4a336b28b3e7e985e659bb07eabc4709ed437f0f20e57bcc5a9a13fa3cc31 ImageMagick-7.0.8-12.tar.xz" diff --git a/user/ipmiutil/APKBUILD b/user/ipmiutil/APKBUILD index 8accd70c0..fdf32fbe2 100644 --- a/user/ipmiutil/APKBUILD +++ b/user/ipmiutil/APKBUILD @@ -13,9 +13,17 @@ subpackages="$pkgname-dev $pkgname-doc $pkgname-openrc" source="https://downloads.sourceforge.net/project/ipmiutil/ipmiutil-$pkgver.tar.gz ipmiutil-3.0.7-fix-sha256.patch" +prepare() { + cd "$builddir" + default_prepare + update_config_sub +} + build() { cd "$builddir" ./configure \ + --build=$CBUILD \ + --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --libdir=/usr/lib \ diff --git a/user/juk/APKBUILD b/user/juk/APKBUILD index a0430d44a..233f165ed 100644 --- a/user/juk/APKBUILD +++ b/user/juk/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=juk -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="KDE Jukebox" url="https://juk.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="4b5cffc92545242543b5184d0b3ddf0858ff8ddfe49e7ca65ee95e02a7a3add3395f0f084cbea44a0493c0535a8ea70b98ab5326d621ccb849501ffa3ee01a18 juk-18.08.1.tar.xz" +sha512sums="5da50b30ed7a459957278b509db05411553a3c6c7677b4821ff5e7686a02069025131003c9877775fda2c9a3f7330436bcd2b5fac11b5441d645a44e5cda53e4 juk-18.08.2.tar.xz" diff --git a/user/kactivities-stats/APKBUILD b/user/kactivities-stats/APKBUILD index a458d957d..505c9f327 100644 --- a/user/kactivities-stats/APKBUILD +++ b/user/kactivities-stats/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kactivities-stats -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Gather statistics about KDE activities" url="https://api.kde.org/frameworks/kactivities/html/index.html" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="0a8e76797333ac0ca29bd734c4c6acb4d2dc07deac0ebe7cfb5e32a2a61ea9537fc9b011dc6aad5c7ad70a6e3cf853d6ce847c612d56559a715b8c8a1378d714 kactivities-stats-5.50.0.tar.xz" +sha512sums="58b42e98bb0ee112974e6ec09b80433aa8536272a8e1c9c81ee509b450957caf108214b3d9e0d0e8c19c1553cd3422d9116d96a1e0cfbd2326e16c8987d6228e kactivities-stats-5.51.0.tar.xz" diff --git a/user/kactivities/APKBUILD b/user/kactivities/APKBUILD index 399d8dc61..77cdc4f59 100644 --- a/user/kactivities/APKBUILD +++ b/user/kactivities/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kactivities -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Runtime and library to organize work into separate activities" url="https://api.kde.org/frameworks/kactivities/html/index.html" @@ -48,4 +48,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="dde9466f632768664114b791aaea1315dc7535545b66cd874109b83896d29fcb692f9598adefd601687540de5f960d5e238cce4110d484b71b1cc9021fa984c4 kactivities-5.50.0.tar.xz" +sha512sums="ee9d1429fb1333b9ce6607e865085336bc2d3ccef3fbbf386b2ab83a5c71987da67279cfaf5423158f536e04cdacfd0f53d5421e003a9c9c9c1b20e4dc44052d kactivities-5.51.0.tar.xz" diff --git a/user/kalgebra/APKBUILD b/user/kalgebra/APKBUILD index 12fe2048a..b8599614d 100644 --- a/user/kalgebra/APKBUILD +++ b/user/kalgebra/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kalgebra -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Graph calculator and plotter" url="https://www.kde.org/applications/education/kalgebra/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="ecad3a4b56cca0e017d4a168863a03b464955633b36ba76286ff825ddd6779816d9f5e9d4100fedf8b7d079cd7e75c5e37528eda2ca7715f0f1e2a4026d7614f kalgebra-18.08.1.tar.xz" +sha512sums="d569fe79602cfe4dda84014eed58918a71da75f2735d2b736a63070e919213e6e0333fb5eb70cfd7c03e128d0976a1f5b946beea47da495b12dd230abc65979c kalgebra-18.08.2.tar.xz" diff --git a/user/kalzium/APKBUILD b/user/kalzium/APKBUILD index 37fe3cc57..4c0b89360 100644 --- a/user/kalzium/APKBUILD +++ b/user/kalzium/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kalzium -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Periodic table of elements (PSE) with calculators" url="https://www.kde.org/applications/education/kalzium/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="9d7caa714c3f8b345852539559d143009df7a334a4298fe2ef0d191277d55d8912c2487436cb815bb6e79eb3ac093f943002e09c0e25eb7644ef5d0904b57901 kalzium-18.08.1.tar.xz" +sha512sums="ecd99414627e4771bc0f8af92a451443f0bafd05be273ff47a3b4a41df20a9b3b9b5b4c69dbd60b41547001770b0721dc04a4983b752654e62f12d34b0c92290 kalzium-18.08.2.tar.xz" diff --git a/user/kanagram/APKBUILD b/user/kanagram/APKBUILD index faaa5ef64..f74fb4b88 100644 --- a/user/kanagram/APKBUILD +++ b/user/kanagram/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kanagram -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Letter order (anagram) game" url="https://www.kde.org/applications/education/kanagram/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="6595fff9c3ebf8a795e9e57ce74f53b00cc3b15a0d0a1ceb823a969c211ade9348bdecaea7ccd65f504449057c859cdce57c43f580950afbbd84cccef4d614c1 kanagram-18.08.1.tar.xz" +sha512sums="510e24af92e901cc4342770f567716850d9a8a525ab932ae99a48dd6c3bb7b1461e4997637fcdea81d9a661043197170938a2a013e2cf9052e12b24077f3610e kanagram-18.08.2.tar.xz" diff --git a/user/kapman/APKBUILD b/user/kapman/APKBUILD index 884546ee4..9b22a4809 100644 --- a/user/kapman/APKBUILD +++ b/user/kapman/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kapman -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Pac-Man clone" url="https://www.kde.org/applications/games/kapman/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="bfd3772f86d3a5d3b00aae9a6e5ba423d50ad86765a6bcd7bc7192740c7e341daf869156e65829cd9231c10139d93f5fb357174bdd792a2cce66ba3853e9439f kapman-18.08.1.tar.xz" +sha512sums="f8369640323a6f8cf319503088158706e59b2ccd87bc948222673012e7bff0431673227c48231aba7e55b484b02a32432b3d35d2a70f112dab829dd5d6990056 kapman-18.08.2.tar.xz" diff --git a/user/karchive/APKBUILD b/user/karchive/APKBUILD index b39098951..c11f3b2f5 100644 --- a/user/karchive/APKBUILD +++ b/user/karchive/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=karchive -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for manipulating archive files" url="https://www.kde.org/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="8042ef931c8d2c6eeb84f6ea33858fb111f7e08bbc012b333eed33c278eff9269ae263b50110201fb448d5e213598a2afebf542e7d0f6c3fdcdc944ed2ddfaba karchive-5.50.0.tar.xz" +sha512sums="dcd676a5ab7a8a45e79c0b13abf14ac5ab6b37454f5c79838a183956e57b801ce880cbe5cca5fe6f033ec7dcffec9f788e08593509b8a40fd55a1a8da925437e karchive-5.51.0.tar.xz" diff --git a/user/kate/APKBUILD b/user/kate/APKBUILD index dd8e29ea2..5a8e2c3fc 100644 --- a/user/kate/APKBUILD +++ b/user/kate/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kate -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Advanced text editor with autocomplete, syntax highlighting, and more" url="https://kate-editor.org/" @@ -92,4 +92,4 @@ kwrite_lang() { done } -sha512sums="cd76272aa540aac13da8fd078ee0d5b020645c51fd16ed341e91383570d3e30d0005bdd7702c2b145538df7252443bee8c927281f93a8473b42166bf964a1b41 kate-18.08.1.tar.xz" +sha512sums="c1ab11798d5fc209a2a592a44e7b7b1fa0f2ee1c17c8cbbfa9673810b8e64194a7e402c62eca3914720cd953d656367b9374858f7699a2cec42f9e3978e8b936 kate-18.08.2.tar.xz" diff --git a/user/katomic/APKBUILD b/user/katomic/APKBUILD index 37ead7ff1..460eb8d6d 100644 --- a/user/katomic/APKBUILD +++ b/user/katomic/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=katomic -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Fun, educational game involving molecular geometry" url="https://games.kde.org/game.php?game=katomic" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="669e9b77689853270983e290df6a8ae8690544e589b11d14125a4696c12f34d4197d364d0c03d45407d6a1e69af1a1fbea94e61f16e6b6c9933131df751de32d katomic-18.08.1.tar.xz" +sha512sums="9cee37030359f52a9b34072ae88ab6a6697c847fe9ba0122a249f26399e7d08434ccf2a5f7448335aa369a6328eb57eeab2a50701f647a63967bbd506f6e9623 katomic-18.08.2.tar.xz" diff --git a/user/kauth/APKBUILD b/user/kauth/APKBUILD index 84fce7ccc..f1351b0ae 100644 --- a/user/kauth/APKBUILD +++ b/user/kauth/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kauth -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for allowing software to gain temporary privileges" url="https://www.kde.org/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="c31614178529262188ae83815b88cbe4553480e81b9d98ddab0bd6dd1656504930b8df211ab12c3b1510dd616cc0b681697eaf214b426b347b4377311f6d0c00 kauth-5.50.0.tar.xz" +sha512sums="7d559818acd84b2f24cb72f7c93a1253835f87169acd0b8d54816fa5cdbb327bba2e0d04a3079adf236fca8557fb2d6cfeb17ef32cf1074bbb60e80af8ec3d17 kauth-5.51.0.tar.xz" diff --git a/user/kblackbox/APKBUILD b/user/kblackbox/APKBUILD index 162169663..7d4e8f28e 100644 --- a/user/kblackbox/APKBUILD +++ b/user/kblackbox/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kblackbox -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Hide-and-seek logic game" url="https://www.kde.org/applications/games/kblackbox/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="ca9092b71a45dddde78da793d6ba4981ba86f909df4aae1a4db8a3517ea433ae2a48046de36d50d921209ded6680ff03a42270723ea8ddf3fdd19c51797824f2 kblackbox-18.08.1.tar.xz" +sha512sums="97aad679154a757ab66efd292f385cc95f448635e2008f786ad2fb1af7371ed67afca250750012a570c1cfb4fa697f2d5b247523c0f93e62e722eeffdcb1bfb8 kblackbox-18.08.2.tar.xz" diff --git a/user/kblocks/APKBUILD b/user/kblocks/APKBUILD index 8ffa597e5..e4c18defa 100644 --- a/user/kblocks/APKBUILD +++ b/user/kblocks/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kblocks -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Falling blocks game" url="https://www.kde.org/applications/games/kblocks/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="1c30f91d854de088cbd1fd3b68604d1778e26284fa06f693af599934a9308f0903185369a712143d3f1b3d799a720f54e622caf8af07c08e790d1544157fd6d9 kblocks-18.08.1.tar.xz" +sha512sums="1516b5795bd091a33339f151e28c9962879f461f257ad5ce468f10d61e87b94276ce5f3d8dcd12a2e65ee35e479f07700c1f7bf35b18497965bfcf333c16f7c6 kblocks-18.08.2.tar.xz" diff --git a/user/kbookmarks/APKBUILD b/user/kbookmarks/APKBUILD index 74714a704..d96381c40 100644 --- a/user/kbookmarks/APKBUILD +++ b/user/kbookmarks/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kbookmarks -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for managing XBEL-format bookmarks" url="https://www.kde.org/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="03340e18b6c4774e4aa16af9bdadccf102fdda9caae930e92f9afed833ec3f70eae818b9dd5f51c071b52019d7b7566195d2d552cc725af575548a75d7e7575a kbookmarks-5.50.0.tar.xz" +sha512sums="ec0ce9eda15cbdd5c16469d23912d6fb8464004c4f7cee1a6ea7be3d1d53cebf5daaa693380972e08fb763eb0f93930a32dfaa2e3213e56a6f50d305ff9acac1 kbookmarks-5.51.0.tar.xz" diff --git a/user/kbounce/APKBUILD b/user/kbounce/APKBUILD index ee8ede952..fa7ade737 100644 --- a/user/kbounce/APKBUILD +++ b/user/kbounce/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kbounce -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Puzzle/arcade game to build walls" url="https://games.kde.org/game.php?game=kbounce" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="f7c97c133f69a8a8db2cff91eba30d9aad3c4e340145b7e57db9fbe8a85c429896936fd258622158f283cb36b3d670bbd52056b9a249f6db79a27abf83cd293a kbounce-18.08.1.tar.xz" +sha512sums="6b74b150482e4ce8565d596de0f9cd33449cc64abd145aae8d0fb5cb0e42128a6e740d2bf20271aff0cc3a0e7de8b6b99270db6a11012c4334a581b6fc296601 kbounce-18.08.2.tar.xz" diff --git a/user/kbreakout/APKBUILD b/user/kbreakout/APKBUILD index b72d8629c..e9c0ce753 100644 --- a/user/kbreakout/APKBUILD +++ b/user/kbreakout/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kbreakout -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Break-Out like game with a ball and paddle" url="https://games.kde.org/game.php?game=kbreakout" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="0a069711dcaf47cdeb91ac07b714bf2fa3400877656a94188e72e25131f4c44462f27cebb0860304b6ab29aaaeba909bde931547c7b431cb95ef4cfd33a559b6 kbreakout-18.08.1.tar.xz" +sha512sums="c9d6856d3493e69bda92177c48acbc71c8ecd7674da3e1464161899cec90b825c64a0e603cbfb1a17ab479c015312d61e862298938874b207d41e962ee485111 kbreakout-18.08.2.tar.xz" diff --git a/user/kbruch/APKBUILD b/user/kbruch/APKBUILD index 83704799f..174002c9e 100644 --- a/user/kbruch/APKBUILD +++ b/user/kbruch/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kbruch -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Practice calculating percentages and fractions" url="https://www.kde.org/applications/education/kbruch/" @@ -39,4 +39,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="8b2ef8a7137a2fa92fe76c3c653f11f641b963e051c6a6d772b9b6285e9d7e6060f6004e80fb5d460471f67db859650cbc2c959ff6db90114b4d82360cee9d8d kbruch-18.08.1.tar.xz" +sha512sums="3e5bd7f551d08dfd88fab45454d0ec7e0ba1f096177154d57536efce01233f160b8dd9e908850bd40fec01fc1d03bb8225828a7fcccd6491810c98cabe2d4c71 kbruch-18.08.2.tar.xz" diff --git a/user/kcalc/APKBUILD b/user/kcalc/APKBUILD index 7b5b9efd4..23b5e0846 100644 --- a/user/kcalc/APKBUILD +++ b/user/kcalc/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kcalc -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Calculator with many mathematical, scientific, and logic functions" url="https://utils.kde.org/projects/kcalc/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="5d738132b06c9a866a6001007afa7c90d7df7ffade11464ff7378beb656cdc826d7b79e174c1f942f7b9e61edc32348b313dbd4e824dd34de1858b3363540f6f kcalc-18.08.1.tar.xz" +sha512sums="120d8f96291677648627a6115db53273b2ed35be5d372ecfb9bd7e6f95df476092c81cc8cd4a5d3a9409084a120c78e76b339758b08b74bfebf2db2f49621d02 kcalc-18.08.2.tar.xz" diff --git a/user/kcalcore/APKBUILD b/user/kcalcore/APKBUILD index a248e8c50..6a3bdc51c 100644 --- a/user/kcalcore/APKBUILD +++ b/user/kcalcore/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kcalcore -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Library for managing a calendar of events" url="https://www.kde.org/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="3573b9b5314085855c7a06c87423474d5e83a3ef4b7200fab2532345774a8984c927940c3e5e26b3c1123cf1e8c944c480ea510b3577da8d7820acfa691915c8 kcalcore-18.08.1.tar.xz" +sha512sums="25add499d799d89eac2be542e8dcd6a08263a8b815c5223cfe853bffe72f8cbc2b2f08e27569272aae0b166a2e85de7670a4c9019e4637683926e0b8dfc0c651 kcalcore-18.08.2.tar.xz" diff --git a/user/kcharselect/APKBUILD b/user/kcharselect/APKBUILD index 614037e92..4ff3c7707 100644 --- a/user/kcharselect/APKBUILD +++ b/user/kcharselect/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kcharselect -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Tool to select special characters from all installed fonts" url="https://utils.kde.org/projects/kcharselect/" @@ -39,4 +39,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="5b6c5b384747461434f37f870fab85d7cccc33e11505b1b2cf80391378ce9eff051f468875e2a1c3453c2cc5e8ee85b1c622523f1db95f59ce490fe57ec91ffb kcharselect-18.08.1.tar.xz" +sha512sums="36c2335e3db03b179b3b0942e38503e68068a3180032aa714cfe67a0f7f8d877163652caad38aefee31f4889b14e524480b16db48140a7fb85f0c49ff172f3ae kcharselect-18.08.2.tar.xz" diff --git a/user/kcmutils/APKBUILD b/user/kcmutils/APKBUILD index e7cf772aa..c712f91e6 100644 --- a/user/kcmutils/APKBUILD +++ b/user/kcmutils/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kcmutils -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for writing System Settings modules" url="https://api.kde.org/frameworks/kcmutils/html/index.html" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="306c7c76c08d1ddfdec6ec0dae8367c531f174f3c1ccece3ea0d32d8650a1106be3c10741bd97d2ddff4d81f05c720e8b98d43b290bdd787a0b1269dd6d71bbb kcmutils-5.50.0.tar.xz" +sha512sums="e8edf3f80d40d12f5032f34e15f0dff69d67e4c13c643bc0a16855e86e60896add20c95e1d5c3a4c23ea36455dfda239161f77c8157759bec228c4e4653980bd kcmutils-5.51.0.tar.xz" diff --git a/user/kcodecs/APKBUILD b/user/kcodecs/APKBUILD index 36ad184d1..018ba948e 100644 --- a/user/kcodecs/APKBUILD +++ b/user/kcodecs/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kcodecs -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for manipulating strings in differing encodings" url="https://www.kde.org/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="94b8027989f317ae0f4e4563c670c8c91534ae353ca5d8e00d742c6e285d99043fd1cf0197f08408f8f66e64ab7a3c8f21055364ac8e152130c04a21c7d1f221 kcodecs-5.50.0.tar.xz" +sha512sums="18c19e968006d073badacdd94dd6ef45c57cb65cd23f92fc9d183c0d23260c6c8833721fad73c2bdb849ea8d5f109718dc9584dc18ab82853a6743ad8a7bc537 kcodecs-5.51.0.tar.xz" diff --git a/user/kcolorchooser/APKBUILD b/user/kcolorchooser/APKBUILD index 66dbf928d..71ec9615a 100644 --- a/user/kcolorchooser/APKBUILD +++ b/user/kcolorchooser/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kcolorchooser -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Simple application to choose a colour from the screen" url="https://www.kde.org/applications/graphics/kcolorchooser/" @@ -38,4 +38,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="a2a514297dc9930d96f23f153f11b0b0a87d0bae1ecf41940665b89c2bfd3ea6c30bfdb622c47cf108e92f21bf7ac7f428f4c9414b72863b76955f18acb0f7bf kcolorchooser-18.08.1.tar.xz" +sha512sums="311501dc30f24c33bcb29eb199cd35c6ebc946340e0e8d07918f3a5e4d2f94e30d99dcde34355ee5860d488ba9b8f14f659fe4196aebe7e47eb782c502abdcb1 kcolorchooser-18.08.2.tar.xz" diff --git a/user/kcompletion/APKBUILD b/user/kcompletion/APKBUILD index 820273f90..82b0d6226 100644 --- a/user/kcompletion/APKBUILD +++ b/user/kcompletion/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kcompletion -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for implementing automatic completion of input" url="https://www.kde.org/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="27db7af56d4cafada863ae8f30a87c4d1974717ee2b3f537b235a6f1353c3976932c27308b4f9fe1a6386b0d395c22ffefb2f4c273a496a0785a34a494451c4c kcompletion-5.50.0.tar.xz" +sha512sums="b70a3e6bee33a24b5659023c496c2dba0637b4b4a130704cba428f47c63625a847365dd4cb2bebfba94b0897ace9a6361aa536d05f1ed1574f934a56d65e1a83 kcompletion-5.51.0.tar.xz" diff --git a/user/kconfig/APKBUILD b/user/kconfig/APKBUILD index e1cb1880e..2df286fcf 100644 --- a/user/kconfig/APKBUILD +++ b/user/kconfig/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kconfig -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for managing software configuration" url="https://www.kde.org/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="282a5cefb3cc1752fbfd450732bb3479751d3a20b65661da5ebe1797968f4e20f093b3e1083b232581ed375ab9314f059f13a7f8a1021c1dbb2c96d33fabe746 kconfig-5.50.0.tar.xz" +sha512sums="5362d973e9c679206ef5d02f53a781b6b8c7b9c731c04e790b2bd2731ab44f6c49e51bd94287b1a2bedc7abdca84139219155a3b05914888adff7fbe09e02b02 kconfig-5.51.0.tar.xz" diff --git a/user/kconfigwidgets/APKBUILD b/user/kconfigwidgets/APKBUILD index 0a3db8409..2a96bd48f 100644 --- a/user/kconfigwidgets/APKBUILD +++ b/user/kconfigwidgets/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kconfigwidgets -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework providing widgets for software configuration" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="7129f42ae1e6c80bde763ae0c44ee7913358243b49b2337d42d4aa580ff4135229c5146105a548bbff0e3234ae9990f09827218a7109d932396da2e5a82f5763 kconfigwidgets-5.50.0.tar.xz" +sha512sums="7b7f78116d590959dee0917064436cac10eb84ed21650196be416cb84a8d095231ff93cc70fd69ee5cbf327807af84c453956fcc9b1f8f4ccaaf3581b32ae9b6 kconfigwidgets-5.51.0.tar.xz" diff --git a/user/kcontacts/APKBUILD b/user/kcontacts/APKBUILD index 6ea3ca92b..1de0ef806 100644 --- a/user/kcontacts/APKBUILD +++ b/user/kcontacts/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kcontacts -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Library for working with contact information" url="https://www.kde.org" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="a28f004bb7c87206a3d063f66fae54c0147a1489bae94e7b5e5b7756f88518ddf86bd425a590483bcde6f339fbba2f76ee44e2138f595b19b1944718537c5fb2 kcontacts-18.08.1.tar.xz" +sha512sums="2ee75088f7b0a05ad6dc308542bacea34289b3ced8284df73531303f623a9b976d0cd86395123f23f1f26f25355edf4fede9ce723d7ec7f0c9191edc961828bc kcontacts-18.08.2.tar.xz" diff --git a/user/kcoreaddons/APKBUILD b/user/kcoreaddons/APKBUILD index f8d1988d2..f001ebaa0 100644 --- a/user/kcoreaddons/APKBUILD +++ b/user/kcoreaddons/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kcoreaddons -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Core KF5 framework" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="3b8f50b2775425363b83048ab78bb7999dcdfa522a4d8d002292cbaf6975747b5159687c2ce4737b17404b999ec2d6894a3acd23873480ae7376e9134f1ea887 kcoreaddons-5.50.0.tar.xz" +sha512sums="3b97ae7d161b8bd2d5d26491a5c0f07664ad238580fff802ad3a283803adf0725b67d5a9a473ed05ef02e5b0a454ac8d089abfe93ad3e8e24bc26ed0028e2f86 kcoreaddons-5.51.0.tar.xz" diff --git a/user/kcrash/APKBUILD b/user/kcrash/APKBUILD index ac76418fd..aa43158a6 100644 --- a/user/kcrash/APKBUILD +++ b/user/kcrash/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kcrash -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for gracefully handling software errors~" url="https://www.kde.org/" @@ -44,4 +44,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="79cec88f7e37901e9758dcc8f69883369dba8db536a563cfa66245038ca46240a5c0c70c4fb4b48c0c1e4b7772ec90d341707add99124b02408fc567a7e64648 kcrash-5.50.0.tar.xz" +sha512sums="7945fca845f019f847fbef85de4934556da2183be5a2e48ae3dc0b71f1a0e5aa4e21a65ca9fcdbd7aab02aa36cb125b14768d34b7f3fd49f2666d3d8377d9356 kcrash-5.51.0.tar.xz" diff --git a/user/kdbusaddons/APKBUILD b/user/kdbusaddons/APKBUILD index 3c92c23b6..e77f6f9e5 100644 --- a/user/kdbusaddons/APKBUILD +++ b/user/kdbusaddons/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kdbusaddons -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for coping with D-Bus" url="https://www.kde.org/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="26176685e8aebcdb1c249de9e95d88ba1faf9e0e2ffe67338237df2cfdf8b1a1fabc79c6febabc4a80a774a2e838085e273640d66fbacdbbaf49e00bcbd6d9dd kdbusaddons-5.50.0.tar.xz" +sha512sums="19ad0a9750d01db65dfbc2640136ba4984411684af987fd01e010ca58c1ce999c3fc0c615809c5976ca160d8130114cd4a9a2b76cdae536b3205f07c735bae65 kdbusaddons-5.51.0.tar.xz" diff --git a/user/kde-education/APKBUILD b/user/kde-education/APKBUILD index 67b1cf614..2160e2c5c 100644 --- a/user/kde-education/APKBUILD +++ b/user/kde-education/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kde-education -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Educational software from the KDE Software Collection" url="https://www.kde.org/applications/education/" diff --git a/user/kde-games/APKBUILD b/user/kde-games/APKBUILD index ab5dd711d..b99e5a22f 100644 --- a/user/kde-games/APKBUILD +++ b/user/kde-games/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kde-games -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="The KDE games collection" url="https://www.kde.org/applications/games/" diff --git a/user/kde-graphics/APKBUILD b/user/kde-graphics/APKBUILD index ec45f7d58..25cc00cf1 100644 --- a/user/kde-graphics/APKBUILD +++ b/user/kde-graphics/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kde-graphics -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Graphics software from the KDE Software Collection" url="https://www.kde.org/applications/graphics/" diff --git a/user/kde-multimedia/APKBUILD b/user/kde-multimedia/APKBUILD index 08d30bbb3..0be596823 100644 --- a/user/kde-multimedia/APKBUILD +++ b/user/kde-multimedia/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kde-multimedia -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Multimedia software from the KDE Software Collection" url="https://www.kde.org/applications/multimedia/" diff --git a/user/kde-system/APKBUILD b/user/kde-system/APKBUILD index f2267818b..2fbafd577 100644 --- a/user/kde-system/APKBUILD +++ b/user/kde-system/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kde-system -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="System utiltiies from the KDE Software Collection" url="https://www.kde.org/applications/system/" diff --git a/user/kde-utilities/APKBUILD b/user/kde-utilities/APKBUILD index 5f53975ec..2d239554e 100644 --- a/user/kde-utilities/APKBUILD +++ b/user/kde-utilities/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kde-utilities -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Desktop utiltiies from the KDE Software Collection" url="https://www.kde.org/applications/utilities/" diff --git a/user/kdeclarative/APKBUILD b/user/kdeclarative/APKBUILD index 3d72ee926..0b877e887 100644 --- a/user/kdeclarative/APKBUILD +++ b/user/kdeclarative/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kdeclarative -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Frameworks for creating KDE components using QML" url="https://www.kde.org/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="ebe13f08a292cd3c1cf92cd242433160f1a2e9a5ea329379dab1d3b26d7c2a026261d77b8dc7b4abd1980a1a3d769b021bee6c2730ad2d4910b758c5b0e135dc kdeclarative-5.50.0.tar.xz" +sha512sums="860441e12d93807e112b8ced239a5890f5ae2dcf6bfcb6b3a3a5ebe7970529d23c932dbc1b8b965f2a3226d915e36c00043c7e040bcdded150d122286bb8e8b1 kdeclarative-5.51.0.tar.xz" diff --git a/user/kded/APKBUILD b/user/kded/APKBUILD index 91fb19b38..14fc672b6 100644 --- a/user/kded/APKBUILD +++ b/user/kded/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kded -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Central KDE workspace daemon" url="https://www.kde.org/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="f5751df6c7b142038e67ca0cd1d59d5afa0b48268e09cd4e691750603258484ae264821cbc400cd4db348083377325d2213ac515aaa6c1aca7bf8a5843a5fc50 kded-5.50.0.tar.xz" +sha512sums="1b29459459567354d7e0ac873313e5dfe5627642bb1d41e31795b0ef1ff1fd7bec9b196af7607d6d7c4737321ab12e347b93f61f8a8be4c4ded7456873cac615 kded-5.51.0.tar.xz" diff --git a/user/kdelibs4support/APKBUILD b/user/kdelibs4support/APKBUILD index b0a51e451..bb0bd2136 100644 --- a/user/kdelibs4support/APKBUILD +++ b/user/kdelibs4support/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kdelibs4support -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Legacy support for KDE 4 software" url="https://www.kde.org/" @@ -44,4 +44,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="1fa3a9bcd2b0af1cd4ec66d6538bfd25bb33a2a5ba6c74bbc4b6709ee71b681d5fea9672245c8a060dcfa493fcaf590af49c6c34a4ec535499a3db9d7007166a kdelibs4support-5.50.0.tar.xz" +sha512sums="92fdbaa65eddac1b1b2cf27f1f5cd82b8eef1bab3f43cf2ee89ce8d88f9a6a1f3bcfea82a9c1179bae345e64533fb8c94ac7074a67645fc482b5af5ffaf74769 kdelibs4support-5.51.0.tar.xz" diff --git a/user/kdenlive/APKBUILD b/user/kdenlive/APKBUILD index 67adf9300..5829017cf 100644 --- a/user/kdenlive/APKBUILD +++ b/user/kdenlive/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kdenlive -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Libre video editor" url="https://kdenlive.org/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="737ebbb877c93a064472c82bda2ab6915833bb49442b9f36f3e3833d395dfa8608c7dff7dcea2816b25f7569025fbe810e8dd3c29ba96ee0c872d25ce9314bc6 kdenlive-18.08.1.tar.xz" +sha512sums="e6b146ce80570120e5a6545ccf636f1b5e613c350cecb2d8d10c23de3c5943196b9d0dc58b1f8b3d8fc9625368bcf4b2ab8164e5e3572bfac46d330cef613f35 kdenlive-18.08.2.tar.xz" diff --git a/user/kdesignerplugin/APKBUILD b/user/kdesignerplugin/APKBUILD index 7dc9aa5ce..bc731f3ae 100644 --- a/user/kdesignerplugin/APKBUILD +++ b/user/kdesignerplugin/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kdesignerplugin -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Qt Designer plugin for KDE widgets" url="https://www.kde.org/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="6e4b58096559a0568da9618a6644440f1cca7f569118ecadaf5b5fdb07d5a28c6845e075c4745e61812365ccf96ec7e1cea0edfa70afaacf2df4b0ef4ee92b08 kdesignerplugin-5.50.0.tar.xz" +sha512sums="636dfde49067dc2c4d55125a1c6afea4291536daba2d6014ff933d5fb414c39521390a04d59b27ec9ab996da59efd1fdea9a1b23106545c1f116d4eda8c6bf5d kdesignerplugin-5.51.0.tar.xz" diff --git a/user/kdesu/APKBUILD b/user/kdesu/APKBUILD index 9f0712103..4001801a6 100644 --- a/user/kdesu/APKBUILD +++ b/user/kdesu/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kdesu -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for elevating privileges" url="https://api.kde.org/frameworks/kdesu/html/index.html" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="b8104fc48e36db124f735aad13edde0c6cedde33ad20ec0eaff68e5ea1eaa1a664444b30e6a20b5d20f2c75792c94d0f77a06ad1d7852388a7d987da8298d95b kdesu-5.50.0.tar.xz" +sha512sums="64825e20d4d4c650ea00c14250bd258245918d06988b56414916c5c67173245f4cdbf4ae3fb92cea4e19132374e591448fea4c2d585ffb4f6a87a8516c5122a7 kdesu-5.51.0.tar.xz" diff --git a/user/kdf/APKBUILD b/user/kdf/APKBUILD index d81c45377..6e782ee2d 100644 --- a/user/kdf/APKBUILD +++ b/user/kdf/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kdf -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="View disk usage information" url="https://utils.kde.org/projects/kdf/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="49f91e8d502c624029639ea19ccbd470d6e48da1b5e41e76a95e16ec69a710f448a997916de5496aad01c9039e96374d473c65d410dc2cb31b60d5638a2f913b kdf-18.08.1.tar.xz" +sha512sums="7ec7f8f791fd9f8a57e0fa25ab795d502bce18b3303f2f42f5ee92b4fb1f21968e0850f416cc3e5cab3f892ef462caa363610d2cd55529e2f1642d1cd7b8e0e5 kdf-18.08.2.tar.xz" diff --git a/user/kdiamond/APKBUILD b/user/kdiamond/APKBUILD index 52a6b0df8..1a4992ecd 100644 --- a/user/kdiamond/APKBUILD +++ b/user/kdiamond/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kdiamond -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Three-in-a-row game" url="https://games.kde.org/game.php?game=kdiamond" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="ebb91009e6dee64e8e7cc8a3188a3386640398fb55d59b93cb37e029626afe71caf0b29d1e7b8fa1b6936140d07567db7843ca5bf7605105bc2240959b8c9e7e kdiamond-18.08.1.tar.xz" +sha512sums="9da7b089cf970d73a137b9108bd28a3a9c375b268a804c15533220e896b37d78af52e8c087ce97080e96ba9ca0d95797544d8e2c0b4d4e373d5bf2b9a2295c46 kdiamond-18.08.2.tar.xz" diff --git a/user/kdnssd/APKBUILD b/user/kdnssd/APKBUILD index 23f522646..d0439eab2 100644 --- a/user/kdnssd/APKBUILD +++ b/user/kdnssd/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kdnssd -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for discovering network services using Zeroconf" url="https://www.kde.org/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="cd49247c02c2cc568d4942e3c08d4bb9b40180a8e096ee978b2d5884e40ba69266ea78b319301cf5106e135f3b648f1adbefd5288fccbf5779dff1e2d1c0d1d4 kdnssd-5.50.0.tar.xz" +sha512sums="4f3eca1819e865c8afeed8cf0fd771bc129286d170e71939191a1dc064c0b376a8091cea4fd9e67a3c71cdc8ad724f0fdd1f5c8166feafa6afb16ff98c681bd2 kdnssd-5.51.0.tar.xz" diff --git a/user/kdoctools/APKBUILD b/user/kdoctools/APKBUILD index a819c32e0..9abca5429 100644 --- a/user/kdoctools/APKBUILD +++ b/user/kdoctools/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kdoctools -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Tools to generate user-readable documentation from DocBook XML" url="https://www.kde.org/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="cb09a6c0a990b074e66161171e947f18b0036621da075a4f66452fb2a8f5985bee45b371e1e3303cc4afa73d376b89a839ac42e8b479c71911f7f89845422e86 kdoctools-5.50.0.tar.xz" +sha512sums="732e7291a0620d3132145f4689449d8932c58e32814cbf7a96bb45e9a3139bf6ae494b0347205193239c6e551d153662562cf40c2bd69b06e750d8ede8d1f6ec kdoctools-5.51.0.tar.xz" diff --git a/user/keepassxc/APKBUILD b/user/keepassxc/APKBUILD new file mode 100644 index 000000000..14d9235fc --- /dev/null +++ b/user/keepassxc/APKBUILD @@ -0,0 +1,40 @@ +# Contributor: Max Rees <maxcrees@me.com> +# Maintainer: Max Rees <maxcrees@me.com> +pkgname=keepassxc +pkgver=2.3.4 +pkgrel=0 +pkgdesc="A community revival of the KeePassX password manager" +url="https://keepassxc.org" +arch="all" +license="(GPL-2.0-only OR GPL-3.0-only) AND MIT AND BSD-4-Clause AND ISC AND (LGPL-2.1-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only) AND CC0-1.0 AND Public-Domain AND LGPL-2.1+ AND LGPL-3.0+" +depends="hicolor-icon-theme" +makedepends="cmake xz qt5-qtbase-dev qt5-qttools-dev libgcrypt-dev + zlib-dev libxi-dev libxtst-dev qt5-qtx11extras-dev argon2-dev" +subpackages="$pkgname-doc" +source="https://github.com/keepassxreboot/$pkgname/releases/download/$pkgver/$pkgname-$pkgver-src.tar.xz" + +prepare() { + cd "$builddir" + mkdir build + default_prepare +} + +build() { + cd "$builddir/build" + cmake -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=/usr/lib \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo .. + make +} + +check() { + cd "$builddir/build" + make test +} + +package() { + cd "$builddir/build" + make DESTDIR="$pkgdir" install +} + +sha512sums="edca22ef9d7c553d21d8ea6115a5635265176acc56fdf055f1961a3e65046de49ed5b67eb68ecf4f925226fb5bca140d5d473a5082301168f6a8bb7979f562a8 keepassxc-2.3.4-src.tar.xz" diff --git a/user/kemoticons/APKBUILD b/user/kemoticons/APKBUILD index c4b38c990..2172383f1 100644 --- a/user/kemoticons/APKBUILD +++ b/user/kemoticons/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kemoticons -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Emoticons to express emotions in KDE" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="04c132340be0159514cf46b60f2a9f9ce35c6cd35ad64820463d9d8f929fccbb7d4082337c1920b778e35875b222e4caae4d98c4133b4c9ea365b4e69ab79223 kemoticons-5.50.0.tar.xz" +sha512sums="787682ae466d8fae958d19c029375100c71849fbbdbe90d2576c10ca7bdf86d5424c08941127350e03237814bc2a1bf662eaf831f75b13759e7c3aff34ac6791 kemoticons-5.51.0.tar.xz" diff --git a/user/kfilemetadata/APKBUILD b/user/kfilemetadata/APKBUILD index 3697cbaec..677ef647c 100644 --- a/user/kfilemetadata/APKBUILD +++ b/user/kfilemetadata/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kfilemetadata -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="File metadata extraction framework" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="9e6d86da7e50e4dc432fc29af366572cc3504301686a38f8f46d44be0041bcd72fc0c8515906995d8ba4a6fb7217767efb9eb151d2578e1104c5a1cb8db9cc4a kfilemetadata-5.50.0.tar.xz" +sha512sums="30e93f239ace615af5722156f5b09de86a96a053fd40edf44ce109fb22e22a429795498392044095354e44184be9ac8a64a7be4a3e78c60640f4fb8e9b78d82a kfilemetadata-5.51.0.tar.xz" diff --git a/user/kfind/APKBUILD b/user/kfind/APKBUILD index 8b00aab74..c204aca22 100644 --- a/user/kfind/APKBUILD +++ b/user/kfind/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kfind -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Standalone search utility for KDE" url="https://www.kde.org/applications/utilities/kfind/" @@ -39,4 +39,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="53c1a34776a6b5b56363d2f40a29252cc5dd7828c97f40917032132883a4b1f50d1972a241a287f7ef086c1bac137d8628ad08e3c21a879fa444c6d7247731a1 kfind-18.08.1.tar.xz" +sha512sums="83f59443ac4280057a961510ebf4a03fde02fb2fe5990804a59bfe269ead14e2327a3c73f0d796387adcfa9cf138f1d911b68fe1f5ed425c6ef56dd4ae97de70 kfind-18.08.2.tar.xz" diff --git a/user/kfloppy/APKBUILD b/user/kfloppy/APKBUILD index 1b4562594..322cc6b46 100644 --- a/user/kfloppy/APKBUILD +++ b/user/kfloppy/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kfloppy -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Utility for formatting floppy diskettes" url="https://utils.kde.org/projects/kfloppy/" @@ -39,4 +39,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="e33857c5ff4988a6675461302b53125f54a678f7c4286a8416dc8f569fe1c9d7560567d2884788b912a08cedc66430149747a1d2e5fadd23c3c2c1b8590d586a kfloppy-18.08.1.tar.xz" +sha512sums="f427cf8a98258c0ef2c0daa30679cc89a26fbe769c19dd78ed6e7586cbfc279d0690983ed9cf07167adcfa6495ea4a3f1cd0e575f70f72dc386b851bf7f595f0 kfloppy-18.08.2.tar.xz" diff --git a/user/kfourinline/APKBUILD b/user/kfourinline/APKBUILD index 2e19ec8ba..46b78c0aa 100644 --- a/user/kfourinline/APKBUILD +++ b/user/kfourinline/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kfourinline -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Two player board game based on Connect Four" url="https://games.kde.org/game.php?game=kfourinline" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="b1540e2c3cb1eb3e41dc78836c1341b8afabbf0faa00da596233ecf5768dfffdb6cb20274fb383f8bfe7a35c92eb345873decdf3fe502df374632246f84f4959 kfourinline-18.08.1.tar.xz" +sha512sums="7b36640a65ee644807d9ffc04378f34296e447fd196e80e9e87f19ddf8d7788239754c638a7f119e6b1606accab3f5706b1487e95b0553c75df6491e2eba739a kfourinline-18.08.2.tar.xz" diff --git a/user/kgeography/APKBUILD b/user/kgeography/APKBUILD index 46aeab4e8..17a621a2b 100644 --- a/user/kgeography/APKBUILD +++ b/user/kgeography/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kgeography -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Geography learning tool and trainer" url="https://www.kde.org/applications/education/kgeography/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="a2f3573cb281f165fc222304c981b4d88eadd0707b227e5e28580c8dc1ad1b8c9490505a17611b0bcb028e36ec68e473b9947eacd7a8a0834b4ea5b9c60b4abb kgeography-18.08.1.tar.xz" +sha512sums="87d678d446974d39f449562712bda25777398f6c62088830815850b9959bdbc88e5dbcb9cc8e43141ece256d5db3d31123a24e3e2744cd55ca0f29ec27752589 kgeography-18.08.2.tar.xz" diff --git a/user/kget/APKBUILD b/user/kget/APKBUILD index 2ed329914..926b18d57 100644 --- a/user/kget/APKBUILD +++ b/user/kget/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kget -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Versatile download manager" url="https://www.kde.org/applications/internet/kget/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="c6fb54e4b91952372aaa038c1e3a6ec6fdb82ff0f320dd1f6059fa41118a8399a9369bfd93e7b1db1123c893174469a1479fc7c000c555709d8d6aa80334502d kget-18.08.1.tar.xz" +sha512sums="86464ddacea1f139c1fe98abeb4b394fc045897d917ecbf37a986ad90311c7e3423befba1bf8f6dfd0e82c04dc1b9d4f51d11d74c970e031734d5c0541749df3 kget-18.08.2.tar.xz" diff --git a/user/kglobalaccel/APKBUILD b/user/kglobalaccel/APKBUILD index bd10da079..c93c08986 100644 --- a/user/kglobalaccel/APKBUILD +++ b/user/kglobalaccel/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kglobalaccel -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for implementing global shortcuts/accelerators" url="https://www.kde.org/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="3cb9530c392c5eeb126a56b6efd81a9f6daa072fd860b79362bfb6ae47c9af3f259a0d3258bbe04a7af34fb1c0ad6000c1e70b7f8075e6cbd10444acee9222eb kglobalaccel-5.50.0.tar.xz" +sha512sums="cec1abc2aa5d9465d07aa73ebd83aba6e9009272857e3c22e87928735f0b2a3032e6d94b0a930c75892dbf29479b4e128556a8b3ef452ed3e139a26ef5066867 kglobalaccel-5.51.0.tar.xz" diff --git a/user/kgoldrunner/APKBUILD b/user/kgoldrunner/APKBUILD index eb1879c9c..911a745bd 100644 --- a/user/kgoldrunner/APKBUILD +++ b/user/kgoldrunner/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kgoldrunner -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Puzzle game with a gold hunt, dodging enemies, and digging around" url="https://games.kde.org/game.php?game=kgoldrunner" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="d55d67438f2906cd161f3957d50d35ce9ea7578c0381af39825d65de4701d96230400f41e998be3d2eff65f95bbcddbf8af45769fe5280aafa1d77eff9a9d529 kgoldrunner-18.08.1.tar.xz" +sha512sums="923fb55d1f70fbe6a1df518ed1c06d31b7360f678247e13988c8b5ca96b65ffe8f35967a387b311d00764c1d035dea7092be1db197447c2da35bb2d3324e4fb5 kgoldrunner-18.08.2.tar.xz" diff --git a/user/kgpg/APKBUILD b/user/kgpg/APKBUILD index b713d4a5b..8e2d96abd 100644 --- a/user/kgpg/APKBUILD +++ b/user/kgpg/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kgpg -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Simple interface for GnuPG, a powerful encryption utility" url="https://utils.kde.org/projects/kgpg/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="339f64bc9be2a644f0c3b4f901c14c19bbe7891996d7a3ba840d9368260e87d75a3860d6bdc78d0ceb2d966f04223a2350a0d86e46b06f7e4a3e665713bafb5e kgpg-18.08.1.tar.xz" +sha512sums="5a6c2335d97ed3e4f2d5cce65ec450d7789c31662d1e80d50201a1ef7596791209948bfa4516e2c49e048ebc36dab1316722ba6b0adfa1b3a6a15631da022aca kgpg-18.08.2.tar.xz" diff --git a/user/kguiaddons/APKBUILD b/user/kguiaddons/APKBUILD index 45dcca573..acdbb38d7 100644 --- a/user/kguiaddons/APKBUILD +++ b/user/kguiaddons/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kguiaddons -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for creating high-level user interfaces" url="https://www.kde.org/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="6a7ac22a60a0811aa7f2ce9f2ccb3f16f17e53dcb2352092b10b5d5384251d7e46c575b12549a4733416de88c5bd724670d52d5b96fa47005fb6b8ab847594cd kguiaddons-5.50.0.tar.xz" +sha512sums="ed5bfa4fe462b014e2238af4c3f5051fdc7a27d3528cb64be0bc9201c7f5314ed2928a2e3377240e0b9f2803206a2bb6a6bbbbd4923781f61142e65274b3b82f kguiaddons-5.51.0.tar.xz" diff --git a/user/khangman/APKBUILD b/user/khangman/APKBUILD index 038173711..369d9c308 100644 --- a/user/khangman/APKBUILD +++ b/user/khangman/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=khangman -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Hangman word game" url="https://www.kde.org/applications/education/khangman/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="72603208e513a1e7e47b639892f07c57434eaf15d31d3c793efdd7969f365c150f4f05d40652009c5e84e58d92408aa2373f8b70c854d6e3a762bc90aa44f35f khangman-18.08.1.tar.xz" +sha512sums="28db854ae43b5e8613c84a941cc72f9a9399f292383b5f2e6dbb13e86fd4c2459d22b8bb57695a9ecbab7e507bf5a0409582bc92094bf0f67c621b8822389330 khangman-18.08.2.tar.xz" diff --git a/user/khelpcenter/APKBUILD b/user/khelpcenter/APKBUILD index b2a4c831d..90361bec6 100644 --- a/user/khelpcenter/APKBUILD +++ b/user/khelpcenter/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=khelpcenter -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Graphical documentation viewer" url="https://www.kde.org/applications/system/khelpcenter/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="243ebc119a2e6190a645b9bf0a14a47e14f0bd6ff4dd768ef994b344dbbdbd8242501fa01d28f71453bd34002fff1e119505cfa4f6f7c0ea76e363c84e3be25f khelpcenter-18.08.1.tar.xz" +sha512sums="f16f10f9ef9868660eb0bcb92dd34b8acbb1cd1c12932838f79b176bdfae5adb2a104adc673b1583494fbf2fa555204414a59911f8e734c0cb5a19b90b423759 khelpcenter-18.08.2.tar.xz" diff --git a/user/kholidays/APKBUILD b/user/kholidays/APKBUILD index 824b0d0e8..43444939c 100644 --- a/user/kholidays/APKBUILD +++ b/user/kholidays/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kholidays -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="List of national holidays for many countries" url="https://www.kde.org/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="019c22a2806d73fd726157854a70206c7e91cdfc8ac23a84b5c64cdbdc474fd4a7daaaecf5f0a3636790e85e8ebb86e9e5a9dd1a64a9fbd728c39ae68fe94f9e kholidays-5.50.0.tar.xz" +sha512sums="d2719f670e46c322241226d89322710672c1f7afb2d4e1658ec798966f2e34f0d67434da692801aca35f0cf4899bd911b2083c3cbb5b4570ce043d75013a83b3 kholidays-5.51.0.tar.xz" diff --git a/user/khtml/APKBUILD b/user/khtml/APKBUILD index 304a1faee..e2976b210 100644 --- a/user/khtml/APKBUILD +++ b/user/khtml/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=khtml -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="The KDE HTML library, ancestor of WebKit" url="https://konqueror.org/" @@ -44,4 +44,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="b2259a11635ea9a363eb17b73e5112d144f86c6ed258d1c7e7bb3571587a526a852a98c51b503d2dee4c8d3478cd4e3ae28beaab1e4f2e5633709ff5b69508d9 khtml-5.50.0.tar.xz" +sha512sums="0457c71cfd502d17de36dd21fc73a13a381f6c989be66be14c0b8e0dfacdd8a2d317a2cc07e84ccd1f994b9db3929d3625d05f0284c98f4a92e6d5623ff91c77 khtml-5.51.0.tar.xz" diff --git a/user/ki18n/APKBUILD b/user/ki18n/APKBUILD index 04b434549..a57a6e8e1 100644 --- a/user/ki18n/APKBUILD +++ b/user/ki18n/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=ki18n -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for creating multi-lingual software" url="https://www.kde.org/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="4d05eda1f5ab6f08a7aa5617c456c646a7037f1b099f60dbaead1fdabb02ad4579306c3774cf86cc45713c14dcc1b3c12013380150de95ed2e4bb40511aa4e9f ki18n-5.50.0.tar.xz" +sha512sums="ad5b54c3e2825761d236a47a9b9f268cbefe743fd6515e9211443e48a16825ab9913691ae3709e6490f93c2fe9b4c159087e73a00f89b5e19a469ca6548f52ca ki18n-5.51.0.tar.xz" diff --git a/user/kiconthemes/APKBUILD b/user/kiconthemes/APKBUILD index 8ece5a3cb..acf9f230e 100644 --- a/user/kiconthemes/APKBUILD +++ b/user/kiconthemes/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kiconthemes -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for icon theming" url="https://www.kde.org/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="b5fae1e7f8f6881e963ab9afd4d25988f8df98443f3bd526a67e4ca7c390dc4be0be4564e26dfbf6b10c15dcbada70adec60b383463b142dd7f6d2df77b885d9 kiconthemes-5.50.0.tar.xz" +sha512sums="3e71bc474d920eb31b37d8acb5360327e5676686d98e0f55251cfddba33c833547a330961e9479d6d6e1ac86bd631101c61d58ca865fa3f17b5a363ded939847 kiconthemes-5.51.0.tar.xz" diff --git a/user/kidletime/APKBUILD b/user/kidletime/APKBUILD index a307714f9..a0f2af148 100644 --- a/user/kidletime/APKBUILD +++ b/user/kidletime/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kidletime -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=1 pkgdesc="Framework for determining a user's idle time" url="https://api.kde.org/frameworks/kidletime/html/index.html" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="825d7b509c8bca1042b453d600165574c72d684a07159e9eea436e37c720ff2f40c165075d7c9d076689f1f25c75d5e20779e25a29b069ed25339fd83e9baef8 kidletime-5.50.0.tar.xz" +sha512sums="5568ca77a774b780aa68ec320ee4d339c5ec4696db8233f5297772259f11967a929028d4a4a0777c68250bdc3c86f31eea627ae56749c9a8201e6dd8cfb0e207 kidletime-5.51.0.tar.xz" diff --git a/user/kig/APKBUILD b/user/kig/APKBUILD index e5d1f36c7..7840a093b 100644 --- a/user/kig/APKBUILD +++ b/user/kig/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kig -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Interactive geometry learning and exploration tool" url=" https://www.kde.org/applications/education/kig/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="db82e76ea91bcb263f5bea85a0dc5fb50d6cfe88c37d1acde1f0ec237a666a05a51effac1fea1a5648377eafe265a430838fdcbda64589641699565572aade5e kig-18.08.1.tar.xz" +sha512sums="4a18a802649598d0a66c4ad459a20e86a4587639cd0ceddfdd0e0a2403b8cbf31b836a53ea520e71b13b3d040cf9e8f2ac13733ebe71afd59c7e54fd416ebca5 kig-18.08.2.tar.xz" diff --git a/user/kigo/APKBUILD b/user/kigo/APKBUILD index 181fd3d68..c2935b4ea 100644 --- a/user/kigo/APKBUILD +++ b/user/kigo/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kigo -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Go or Igo game for KDE" url="https://www.kde.org/applications/games/kigo/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="664b5827f505198cd173020b36ebe45f1721143c0a0ca5867e7ebf576d490f043c09a681cc44403368a88c1f5abf81bc0a4e1c9d1f437740ae7a81f8ec770972 kigo-18.08.1.tar.xz" +sha512sums="298179d978f41fb92b0e7bff0343355e6c6b7507cf91034038c86ba29b7bc8710f9e351656f73946056a2d4396afe0cad069ac809e2b05e7af57447a688ed610 kigo-18.08.2.tar.xz" diff --git a/user/killbots/APKBUILD b/user/killbots/APKBUILD index a5d21099a..613ba79f8 100644 --- a/user/killbots/APKBUILD +++ b/user/killbots/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=killbots -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Simple game of evading killer robots" url="https://www.kde.org/applications/games/killbots/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="471d20aec8e9e9391c3125f52d34a8e687819838510937180ce51aa5f6ae3bb61b82bf076475a16514a4aec024cac2c52166c25a2c60a16b3327915c3700a45d killbots-18.08.1.tar.xz" +sha512sums="c49768699caa9888d53535fc0a4c13af299062698ee16b5bbb4e52bef99f1a8201cbc1ce06de9ae7d1cce75a0d9c92e8aced01f7a39692e66f71e70dc1b8ad85 killbots-18.08.2.tar.xz" diff --git a/user/kinit/APKBUILD b/user/kinit/APKBUILD index 29e5d5e0e..674c82b3f 100644 --- a/user/kinit/APKBUILD +++ b/user/kinit/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kinit -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="KDE initialisation routines" url="https://www.kde.org/" @@ -36,4 +36,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="8b0187f0e7d67b1d6b5d773cd651ae438291ea2a801fb05292811e7b109afee62c4166953b09f6c1c958690c2b9a3c769d005f3ae008513eaf2eac933e1a8a63 kinit-5.50.0.tar.xz" +sha512sums="b9cdb1181528ef3ed3d497ec7c4a433d60796bb152215859ef950c5294b2bc2586e1d57cd735d01f62ff4c9be6b2b8b965dd0073dfb3f375bcf8902283f79bea kinit-5.51.0.tar.xz" diff --git a/user/kio-extras/APKBUILD b/user/kio-extras/APKBUILD index 49dbdadda..47cd9382a 100644 --- a/user/kio-extras/APKBUILD +++ b/user/kio-extras/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kio-extras -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="KIO plugins for various data tasks" url="https://www.kde.org/" @@ -44,4 +44,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="152b62c43c81df4b874d68d3504a18891f68b047e74edd2eae37fddcf72302696db9e0c006b037d3ea5a688cf838e69c949fb5a9253dde7c26c8e1ba1cf7f7bf kio-extras-18.08.1.tar.xz" +sha512sums="da2f9f573f993a49fc54efba25c653614b3505cf727205eca360298f88b783505171168931193080bc5e50f5a9e8609b90f5a9a734894e087cd8ed5805f3d905 kio-extras-18.08.2.tar.xz" diff --git a/user/kio/APKBUILD b/user/kio/APKBUILD index cd27cc371..4f4e0ebea 100644 --- a/user/kio/APKBUILD +++ b/user/kio/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kio -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for data and file management" url="https://www.kde.org/" @@ -46,5 +46,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="18a6e4b1d2fb71b16aa4b08862fe0abea691c4f60d4fccc316c654455786a705cc94232b5bcffdb6ea39917722f237d0de00e9ea22273c26e7c3a0282148244a kio-5.50.0.tar.xz +sha512sums="f723030a0d60f9e2532a07a34e9bd1e88230b929464e759d9382011995e3704bf5edbfd47dd929e9029937e4315e887049ce692a299d13c2a8e48e167fd24dd6 kio-5.51.0.tar.xz 280b2a610613786e688c06f4d4b51d3b9d583472bf1941b7b5873fece31b5df0b2f8f08f8de677ebb39fc906c57a2fa50d7890105c0aeb930b82986e0b504623 strcpy-ppc.patch" diff --git a/user/kirigami2/APKBUILD b/user/kirigami2/APKBUILD index 6d0c326d5..6b72232c2 100644 --- a/user/kirigami2/APKBUILD +++ b/user/kirigami2/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kirigami2 -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for rapidly designing usable interfaces" url="https://www.kde.org/" @@ -49,4 +49,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="f43b9c0adf35ece8153334cc4f66c3d6e30f5603f9a29b8b54eb358c14f98124838a19a1073b17cd3e00975963782cfff664d811171a7f58238a49c84c7faec8 kirigami2-5.50.0.tar.xz" +sha512sums="59bcfea4db777440f0892925dfc131f20fe99cfc753f89804933c4865ef0ddbd0e883ed2a547aa626ac7949d77c4b474a78f9cd5fbab2a48eca9d230496cc0dc kirigami2-5.51.0.tar.xz" diff --git a/user/kiriki/APKBUILD b/user/kiriki/APKBUILD index 2ebc8ae4d..9507da61a 100644 --- a/user/kiriki/APKBUILD +++ b/user/kiriki/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kiriki -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Yahtzee-like dice game for one or more players" url="https://games.kde.org/game.php?game=kiriki" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="5e14d301148e9c333bca36753291228337b7b3b00c2ba7946ba7fb0f7bcaf52f6a570825a9d68053e2df5b4b24db237f2fd94198b47a5305662c68a63a5dd64e kiriki-18.08.1.tar.xz" +sha512sums="ee8fe9774e89d91285550970409689774d426e6da1e9ba734e4570ed346556694a36f51921c4609eb226620d111bc6b49dc797f77c41eee124d315aaf582aebd kiriki-18.08.2.tar.xz" diff --git a/user/kitemmodels/APKBUILD b/user/kitemmodels/APKBUILD index 674f9cf48..e2b5fffca 100644 --- a/user/kitemmodels/APKBUILD +++ b/user/kitemmodels/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kitemmodels -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for sorting and searching objects" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="1df3636da596a67255ac460658868d83f42955bff8085586a846f8e37d9a6d7ca29daaa96d03d686b9d2ff0647f40e7188c0619e11af6b93de0df627463de0a1 kitemmodels-5.50.0.tar.xz" +sha512sums="e5b6cdd64e6252fd62c1bdb017f67c27aed29f01effebec0a8e2f98229ffd45f97411001ecbec2f3a36e14957d8c94e568bfbb0b428124f9950c1b83b9032317 kitemmodels-5.51.0.tar.xz" diff --git a/user/kitemviews/APKBUILD b/user/kitemviews/APKBUILD index 2255c2c41..a13455d89 100644 --- a/user/kitemviews/APKBUILD +++ b/user/kitemviews/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kitemviews -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for displaying collections of items" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="e2e1fbccde1f7f9aa4cbb6feb175aff3055621cd39e5aed60d6cdbc807cea2763e35847825a70f310276335ee37eacc066ede5d297fe58fe19d33fec094ac121 kitemviews-5.50.0.tar.xz" +sha512sums="a73436c9912df2ae6d7947b734805560318ff21fd277a4699fb49b76f2f88100192c7dbe71ec07db0ac2306ea46ecd7d1645bc92905ad0c4c0fbae156d0fe50a kitemviews-5.51.0.tar.xz" diff --git a/user/kiten/APKBUILD b/user/kiten/APKBUILD index 16d738f1e..d4469123d 100644 --- a/user/kiten/APKBUILD +++ b/user/kiten/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kiten -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Japanese reference and study tool" url="https://www.kde.org/applications/education/kiten/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="32d542778e8ef63df9da29be94e76ffdf8839b88419906c78733449531a4fb4b62bcb9940e1c49eae09c9da75ad6c35e9d18d426848f6bcabfcd0b6c71da3525 kiten-18.08.1.tar.xz" +sha512sums="29ec6725d71691543275f8ee0a30bf54ac8795df0498beb1e4981bc4060d44a59dc936e910823470f0fc6ff3b4801d0794edfc58fc9a4c56e33671d2d94abdcd kiten-18.08.2.tar.xz" diff --git a/user/kjobwidgets/APKBUILD b/user/kjobwidgets/APKBUILD index 0dfdfb4c1..29493222a 100644 --- a/user/kjobwidgets/APKBUILD +++ b/user/kjobwidgets/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kjobwidgets -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework providing widgets that show job progress" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="9f8af0073912311fe6572606682f56952736d7cb3218646a6086c5830003dff0aa4f13d3fd59a1617d393d17d14abc6bb4f9762822e423373252cf6b6d0fbc8f kjobwidgets-5.50.0.tar.xz" +sha512sums="6821f7f120e998d041bf4f6c3524958c3750f1b3213cf6c338994b0c3676a7c5a0ce9a0555cc76a01d47e72fef06ea4daceecaeb59909816d6d16d1613f6278c kjobwidgets-5.51.0.tar.xz" diff --git a/user/kjs/APKBUILD b/user/kjs/APKBUILD index 08e13397b..7376445ba 100644 --- a/user/kjs/APKBUILD +++ b/user/kjs/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kjs -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Independent, free JavaScript engine" url="https://www.kde.org/" @@ -39,4 +39,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="698ef596c03b88a35dba48363034223366e14ae94c805e68d34d913ca9944a1f8c67a3db15c0454e6ea726391b6a120a21d24fdec3ba25c7b2d4480f34da3f37 kjs-5.50.0.tar.xz" +sha512sums="34588e1ec6e9a3288ea5738b5a07fa8eb09caecc5ef56c1d830943a37bb6f2c415ad73c612b592e33f0968636eaeacba446b63011d87e9542c651ca328c3c27f kjs-5.51.0.tar.xz" diff --git a/user/kjsembed/APKBUILD b/user/kjsembed/APKBUILD index 85fdbebbf..38f3c0ade 100644 --- a/user/kjsembed/APKBUILD +++ b/user/kjsembed/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kjsembed -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="JavaScript bindings for QObject" url="https://www.kde.org/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="2b7a86569217304a0b6a5ebfaa03df000b08e6779be0cfeb4109de8861e6d262b5f415863b831d89eb9992e8bf73d8273572e2838ae1c95be61bbbcc65fbd43d kjsembed-5.50.0.tar.xz" +sha512sums="6d2e17343699737aba1f21dbf63aa4e0e163e843a4dae1c6de2d61db6b081674fdd9932d719ed0022cda2466ec3fbfa44d03528c5b1ef7a46e5dea378ecb414d kjsembed-5.51.0.tar.xz" diff --git a/user/kjumpingcube/APKBUILD b/user/kjumpingcube/APKBUILD index 0245aec1b..5cc0286fc 100644 --- a/user/kjumpingcube/APKBUILD +++ b/user/kjumpingcube/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kjumpingcube -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Dice-driven tactical game" url="https://games.kde.org/game.php?game=kjumpingcube" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="b50c87a94f5c560e665a145ddd3e62db2ab637149b41f0a5f0fbc726d36eeea90e42615d3fb10b27f65325ae84ad460d0ecbd837e35a4f7a245617202553c338 kjumpingcube-18.08.1.tar.xz" +sha512sums="232041ad4da40c7802c45eff35c63ab5ec81f73e9fdecf1fefe52f5a67c3ef064d9524ea56a9e1954dc1fba76b6521acbd0f85a329947254d5f661ccd74862a1 kjumpingcube-18.08.2.tar.xz" diff --git a/user/kleopatra/APKBUILD b/user/kleopatra/APKBUILD index fee0cad00..f47978f6b 100644 --- a/user/kleopatra/APKBUILD +++ b/user/kleopatra/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kleopatra -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Certificate manager and cryptography GUI" url="https://www.kde.org/applications/utilities/kleopatra/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="dd13d287f645a263e460f91528e7eec5d2e8523702770fe4f7c4f49da5303344d6a6fe2b2124ce39c480546ba126d518921f49ef746d34c66f40c2aa99f85c1c kleopatra-18.08.1.tar.xz" +sha512sums="2ff18132c511ae6550852e935333ff69c10db525728426eb06107ec5a3a7f35e2d2878f9c859b2899770ba25fa510001418f7d70a0b2e440220f4b0f3fcea87e kleopatra-18.08.2.tar.xz" diff --git a/user/klettres/APKBUILD b/user/klettres/APKBUILD index 2a66e234b..0ada40d69 100644 --- a/user/klettres/APKBUILD +++ b/user/klettres/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=klettres -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Learn alphabets for multiple languages" url="https://www.kde.org/applications/education/klettres/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="6e0aadf89c9bae1f06e2318d40830b1793c5410548e706ab66545c26528e7f516c0b3986f36b2cfd083d53fef50a2199b30a110b7149d06a6264ad19f9be74ee klettres-18.08.1.tar.xz" +sha512sums="71e0aeb7e9f4bcc07a5ff1bad484e22c8e43c8bc9ffea08fa3c13564e88d2172cf83b2dd02a40a4e8c20062155810ee42f3de94715ac30668c7c5e4df85e242e klettres-18.08.2.tar.xz" diff --git a/user/klickety/APKBUILD b/user/klickety/APKBUILD index f5a4338eb..343441d54 100644 --- a/user/klickety/APKBUILD +++ b/user/klickety/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=klickety -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Fun, simple colour matching game" url="https://www.kde.org/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="2df34e87cdeb9f0edd7516f0ab280eed02ad1beea7b4ad85b9d6ec496c744c0bc15a9661792a09196021aea12754ab7569e3395ab80d98f37193a27cd79f5268 klickety-18.08.1.tar.xz" +sha512sums="fdee525191095642d8f9d703e139eae65a13f9196a087506ae00980b07dc9e8a53e1c97d181bcc6c219b220f5700ab60522d755e92ddeb798e06e75147bc6c19 klickety-18.08.2.tar.xz" diff --git a/user/klines/APKBUILD b/user/klines/APKBUILD index 18cc6ec80..65cfc60a5 100644 --- a/user/klines/APKBUILD +++ b/user/klines/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=klines -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Simple yet addictive single-player game" url="https://games.kde.org/game.php?game=klines" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="cee1b2d23de590f6449869485d213f8d87b0dd97f376af9f4dbcb7463053b915d6a9b5dbd17b46116e04802ddfb42cfe5413f8e5f92aaa8dc323e71bb786f814 klines-18.08.1.tar.xz" +sha512sums="9063fbd49e4ee43b8f48934535ea2860074f7f353d7db27bce4599ce0d1dbda38843e7c1a910809d89d06aaea1b82d8df6cee6c24065f7c19eca1b4400e58e03 klines-18.08.2.tar.xz" diff --git a/user/kmag/APKBUILD b/user/kmag/APKBUILD index 243eebce5..e148e2498 100644 --- a/user/kmag/APKBUILD +++ b/user/kmag/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kmag -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Screen magnification utility" url="https://www.kde.org/applications/utilities/kmag/" @@ -39,4 +39,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="ca35b13fc309df8b8d2c7ca4af726b57823ad01bd6dc8d307e81294625d8f8f98e4fdb6827260b00b4427f5980de0ec1c3d9664ad89b54699125ca0dfe6a8b18 kmag-18.08.1.tar.xz" +sha512sums="f135fcc94a92e515bc8fbeb01a7385fa89919d1c662628c82f54a064d2f49544ec1b7fb7a0c88b7aa99b9da6a4f980bca7828129eb075976810fc1917ab2e845 kmag-18.08.2.tar.xz" diff --git a/user/kmahjongg/APKBUILD b/user/kmahjongg/APKBUILD index 6bd04a4c6..556e02226 100644 --- a/user/kmahjongg/APKBUILD +++ b/user/kmahjongg/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kmahjongg -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Mah Jongg desktop game" url="https://games.kde.org/game.php?game=kmahjongg" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="2969e334808f396825ab7370a0c76e3836c89deb6ba46841e0355a10257a9daf53beb6675655729c94af225167e78bccbc13deba4f8a331eba50e0213195c27d kmahjongg-18.08.1.tar.xz" +sha512sums="d5cc81e34c0741143270c3c1e8d0975b84fdf991fd0daa9e3f2ae1c9056f507acfebe49c58c1567f4305e3d6a3bf607625fc464027aaf0c2acf393451d7ecee0 kmahjongg-18.08.2.tar.xz" diff --git a/user/kmediaplayer/APKBUILD b/user/kmediaplayer/APKBUILD index 8c2c3369b..77dfa9cb7 100644 --- a/user/kmediaplayer/APKBUILD +++ b/user/kmediaplayer/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kmediaplayer -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Media player framework for KDE 5" url="https://www.kde.org/" @@ -11,7 +11,7 @@ depends="" depends_dev="qt5-qtbase-dev kparts-dev kxmlgui-dev" makedepends="$depends_dev cmake extra-cmake-modules" subpackages="$pkgname-dev" -source="https://download.kde.org/stable/frameworks/5.50/portingAids/kmediaplayer-$pkgver.tar.xz" +source="https://download.kde.org/stable/frameworks/5.51/portingAids/kmediaplayer-$pkgver.tar.xz" build() { cd "$builddir" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="20307ad83e787cdae856362ffc5cead82ac2cb46ab469de3d27d9c635d2123404c44fe28067c8712fc99cb0be78c755361811816d697d12f4415adffdbbefe2e kmediaplayer-5.50.0.tar.xz" +sha512sums="d1c2f471a8ecca7c4876015881984118a6df775ca463f1933171323230c70762bed0f706823b4be677d6a5cdfe86f96dcaea1b3bc5975b3cf279f6fc5f8a742f kmediaplayer-5.51.0.tar.xz" diff --git a/user/kmime/APKBUILD b/user/kmime/APKBUILD index 94e748891..ced484d38 100644 --- a/user/kmime/APKBUILD +++ b/user/kmime/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kmime -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="KDE support library for MIME" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="2a3ab2f7e69e14f8ad86ac9f6a9c33a3fd3da703da82ec7b53d126f6d8c7a51608b4f221a7903d37c2db429b444e643130a8687b1e02d5cc746d5c8d34c151d4 kmime-18.08.1.tar.xz" +sha512sums="b10439a1230c97232840a40faaade162e02f5bab5a2e72b76b32fa5334c288dba2db8a8e7d1c1e788259a852940520d7800b77a19d5dad34c3cda579b89dc718 kmime-18.08.2.tar.xz" diff --git a/user/kmines/APKBUILD b/user/kmines/APKBUILD index 0779e4192..8e1492829 100644 --- a/user/kmines/APKBUILD +++ b/user/kmines/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kmines -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Classic Minesweeper game" url="https://games.kde.org/game.php?game=kmines" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="b578fba58b776921d8a051dbf5dae02e91f2a41a4fa832543b671b1454a0fc16e108535299be33499f13a01aab0a75675394d43f0d804c96c45ab3cedf3074b2 kmines-18.08.1.tar.xz" +sha512sums="12284e67d2d457bcb74af2a7da8e2918ea3965073260dc9eb33714ca3b64688cc825a49aa0592da992ef82ca8f680ddc3f08c66a319e6f3cfcceecf7f71f57f2 kmines-18.08.2.tar.xz" diff --git a/user/kmix/APKBUILD b/user/kmix/APKBUILD index ef2a0f629..7edf21aca 100644 --- a/user/kmix/APKBUILD +++ b/user/kmix/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kmix -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="KDE sound mixer" url="https://www.kde.org/applications/multimedia/kmix/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="2e532d9041604e9d7661add070eeedb7fccf85bf9d6c01160f67cd3a2b20d95322afa9813d45938774456eb9cee342e888f742839b423dab327c898bed9b846f kmix-18.08.1.tar.xz" +sha512sums="560c6610fdce8070eb2f82f01612add104b0f12e394c509281da07101e2cccea4100d45f097c5bffc41849643366d0d854e3f5e226fbe0da40577dc3dfa89ad2 kmix-18.08.2.tar.xz" diff --git a/user/kmousetool/APKBUILD b/user/kmousetool/APKBUILD index dd870f305..850390b58 100644 --- a/user/kmousetool/APKBUILD +++ b/user/kmousetool/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kmousetool -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Tool to assist with clicking the mouse button" url="https://userbase.kde.org/KMouseTool" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="d7ff0284453c39a8c3be8f7937ac0439d17af4313ab56a6903eb39473d8fad06c836fe836ec4e061dd5a96317bef916e9a3ac9771c5a829061d1ad20ef32be08 kmousetool-18.08.1.tar.xz" +sha512sums="d03538f7bfce62d76c146d88f47f2af3d04b6a409983f4ede72c09e76541943a6525deaea3b0cbf009856fa2b92e4d9ba6ad5e0e8171f571ecb70c13e8333a49 kmousetool-18.08.2.tar.xz" diff --git a/user/kmplot/APKBUILD b/user/kmplot/APKBUILD index 4420fcada..2fd0325ff 100644 --- a/user/kmplot/APKBUILD +++ b/user/kmplot/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kmplot -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Mathematical function plotter" url="https://www.kde.org/applications/education/kmplot/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="b5e5944875bc49f2bbe55aad41212f68973995e0de1926195a4f16e2b4dbc67f46bf745a577f6bd07d9ad30b7795ff65e853920f6fc3333e46b74f256a1b266a kmplot-18.08.1.tar.xz" +sha512sums="7780848750bd337d3051a477649edc34da233da112546e3f53393c3338ca18ca4086f400d5bfd12e875b4f7cd1873979b4b61397ed5550706467c52149f784c9 kmplot-18.08.2.tar.xz" diff --git a/user/knetwalk/APKBUILD b/user/knetwalk/APKBUILD index 963150b46..10c378e98 100644 --- a/user/knetwalk/APKBUILD +++ b/user/knetwalk/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=knetwalk -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Build up a computer network by placing the wires correctly" url="https://www.kde.org/applications/games/knetwalk/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="2e85f38874c8c8e6929ef84b39cf5498d3b44e924aeb623cf58b55e0c9a213f3e25150aace852ae6082d50414468b90a59a288440860102a06f7e6296d662611 knetwalk-18.08.1.tar.xz" +sha512sums="c420e83cdaa06c543b99a94cdcb0ea55daa853bbd3e7fae6973140220490f9dc555656576b03d0d8297a5173db4e4d2fe5ce3a1590bf275a09b003817a59863a knetwalk-18.08.2.tar.xz" diff --git a/user/knewstuff/APKBUILD b/user/knewstuff/APKBUILD index ed21673ad..eb6c74f35 100644 --- a/user/knewstuff/APKBUILD +++ b/user/knewstuff/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=knewstuff -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for discovering and downloading plugins, themes, and more" url="https://www.kde.org/" @@ -45,4 +45,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="492adcfe5542c39483f30be026a1d6d69ed438448d57c062aeaf4fb7fe1676c9e91c11a3a29bf2ad738c6581aadc0f45b5c252935a7530bb34e051b207e6af51 knewstuff-5.50.0.tar.xz" +sha512sums="0ab0548550710ee82ab241ed7c456d7cdf1b3f9135b0c0d1131d614f9848519980f0ea3466cafa8432e027a2daf7920c4feca07d374c6d21b77dc8ad8586e00c knewstuff-5.51.0.tar.xz" diff --git a/user/knotifications/APKBUILD b/user/knotifications/APKBUILD index a16b5122c..0854561a9 100644 --- a/user/knotifications/APKBUILD +++ b/user/knotifications/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=knotifications -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for sending notifications to users" url="https://www.kde.org/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="3128717e747baf8a3fecc3147ebfbd256fe1f330e1199222f276eabd17321c8e63272f0b252bdbf3372f712436046e4f7a725abfcee5345a9c1f823da218ab28 knotifications-5.50.0.tar.xz" +sha512sums="bd6da71f7d8788e9c27603e0d1a1f03e638212a5d7127803160e5b03fc91c5f8200f9aa33c63f1884d39561d656be7a34bca7e5039019efb4399f60f72b6427a knotifications-5.51.0.tar.xz" diff --git a/user/knotifyconfig/APKBUILD b/user/knotifyconfig/APKBUILD index 527ffae25..f61375a0a 100644 --- a/user/knotifyconfig/APKBUILD +++ b/user/knotifyconfig/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=knotifyconfig -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for configuring notifications" url="https://www.kde.org/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="1a00c395e2cc52b3215a4e8d87e1b4d376f4b5f4b4ef0a4afd48ec776924314604549d9b6b0d3514e70a090643fdc8f30be405593f108f2cdf05ecd7c9a920c4 knotifyconfig-5.50.0.tar.xz" +sha512sums="72f2e66b0b3b8ba6c6c4c0faef4b7d88f5613eb1ba9e1e669b57fe3d05b5744cbde18522bf077d7f1613e45bcb73831ba60eca46b6257764934676fa0d16266d knotifyconfig-5.51.0.tar.xz" diff --git a/user/kollision/APKBUILD b/user/kollision/APKBUILD index 459157fcb..5733e036f 100644 --- a/user/kollision/APKBUILD +++ b/user/kollision/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kollision -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Simple ball dodging game" url="https://games.kde.org/game.php?game=kollision" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="ec2c7d2ac4cbbfc9dbb7fae4046984f5acae8ca68c2a2f493dba3edc649a7cd834c9cca23a579f75c704aa76efdd4cd920ae5fc431ff3343ba9d304f5ea3daf9 kollision-18.08.1.tar.xz" +sha512sums="99cf479bfd2aeb4b81a1db268ddafd0b011a8dc73da9c8a191a07acdb046b2dbb43feb4d760cf49b87f95d64e9faf899e569da42bbeccb2ab7c50c85062df5f4 kollision-18.08.2.tar.xz" diff --git a/user/kolourpaint/APKBUILD b/user/kolourpaint/APKBUILD index f674cb6e0..2a0007604 100644 --- a/user/kolourpaint/APKBUILD +++ b/user/kolourpaint/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kolourpaint -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Simple painting program for KDE" url="https://www.kolourpaint.org/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="ffd286a272bb0152238f73ab510d9eab006b9362f1d4d4f35b30d3ba9d3335be24f86b6aa71e29a5c5faf87c6d72e96f58ff2b0fbcbcaf1471c94a9fff8949c0 kolourpaint-18.08.1.tar.xz" +sha512sums="ccfee1869ada8b61c20e9df322e0811a26f19d028be6f7895cf517c109ae00d72622032ce1117aa2b1573c5c333e63d70f4f444c1c627a4dbc11c499eec934fe kolourpaint-18.08.2.tar.xz" diff --git a/user/konquest/APKBUILD b/user/konquest/APKBUILD index 8c753ac6b..df2bc97e8 100644 --- a/user/konquest/APKBUILD +++ b/user/konquest/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=konquest -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Galactic strategy game" url="https://games.kde.org/game.php?game=konquest" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="a3fd61d8b167d9b1cb00771c12a1cbdefc6230484f0e79069647b8c6b104b3993d326bf5c4e202be69ad8794d0c0058b13569bc2cae071aafb352235eccaec44 konquest-18.08.1.tar.xz" +sha512sums="9da9a24effb27d3bf714112a7976fa1c1381509986937c436740857ed610c9d2ef29d51b0a1ab224e1ce70237d06c5d7afbcd8551522ecdb8b1e593b63d7d0bd konquest-18.08.2.tar.xz" diff --git a/user/konsole/APKBUILD b/user/konsole/APKBUILD index 705d23523..cd66fc2b8 100644 --- a/user/konsole/APKBUILD +++ b/user/konsole/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=konsole -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Terminal emulator for Qt/KDE" url="https://konsole.kde.org/" @@ -44,4 +44,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="ec450f0393fece73394d7c77afba0b7adbf4e18d7b0d216de3e135f0e01371c3b5833ebbc79dc356fa102d2d8e3bea3667a5f42695793058b406d38b1f8e81a6 konsole-18.08.1.tar.xz" +sha512sums="a8eae209ec3a60be27b06ba850353b0d85a533cbea691114c2aa2c812f9d884153b2915d8fb52977ae9ed7ce08161e10d3f378d31b0ca166750e7e4584842959 konsole-18.08.2.tar.xz" diff --git a/user/kpackage/APKBUILD b/user/kpackage/APKBUILD index a9b058ba7..7bbe1e955 100644 --- a/user/kpackage/APKBUILD +++ b/user/kpackage/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kpackage -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Frameworks for managing KDE data packages" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="f56de9577b6de69724967f1ea911097d03d8bf5de8dcfeb10dc040e0fa61504d5db5e3330ceff85c1590899289f1a4b904b1d7cefa9516fa14a635b1da14650a kpackage-5.50.0.tar.xz" +sha512sums="0ddf65995c3cebbdefea5cdcdb4634b9d5e26a4328e4fe4b180ad69e59a3ea254095d5aca418e6609925b52606e1200f8ac8b0432eb05eca6c324813bf1218c9 kpackage-5.51.0.tar.xz" diff --git a/user/kparts/APKBUILD b/user/kparts/APKBUILD index da0d7ab42..e6e6359c5 100644 --- a/user/kparts/APKBUILD +++ b/user/kparts/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kparts -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for user interface components" url="https://www.kde.org/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="c787e7b85cd4053e014eed5610812715b6bfd9a450e86fddc5259f8bbfd5fddb215720cb3ef7a190a345343042712ccda7e55082807e3a2dd168decf30f13fd2 kparts-5.50.0.tar.xz" +sha512sums="f0fab6d9fca330636c14f5c18cf1cb71385d44b185a8418f20798f3d3012f32107f9c3b1d84b3acf56038f4c774ac7fb015746339e0bd6e456f8f307332a0c79 kparts-5.51.0.tar.xz" diff --git a/user/kpat/APKBUILD b/user/kpat/APKBUILD index 72ce3776b..085a4901f 100644 --- a/user/kpat/APKBUILD +++ b/user/kpat/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kpat -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Collection of card games for KDE" url="https://games.kde.org/game.php?game=kpat" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="989cb29db087ea3e17cf5971c6cad57c3e691d2f27975b3fd776f6d7c3d7b74ef2572c5ef6c1f3a8e7b39e39c178aa47ff1751fb87cad2cff5dfbb1e8e032516 kpat-18.08.1.tar.xz" +sha512sums="80f01530a2475c99916bc098283228746048fd9be0fac811649e7a874d5c13ce7afaf77b95b17a5dd33ab466fd89fde35d282c7cb666162ac65bc3e598e8c877 kpat-18.08.2.tar.xz" diff --git a/user/kpeople/APKBUILD b/user/kpeople/APKBUILD index 5ab7534a2..216dd389e 100644 --- a/user/kpeople/APKBUILD +++ b/user/kpeople/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kpeople -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Provides access to all contacts and groups them by physical person" url="https://api.kde.org/frameworks/kpeople/html/index.html" @@ -45,5 +45,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="1e52717038027a0bb7e8e6a4007b095f44ac6932aa8766c947d96046184927946464d56e0253fe231a80a3b95ba4f2980e474b58d1a5261ce0cbedf59e5b737e kpeople-5.50.0.tar.xz +sha512sums="264ecd72fa5bfae1be9ae5b39feba654b27a772c5552c39b71276f886e814627c75880f5ee96cb8de9885d317e56078c850c60f7768282cb6ff069f5c8124d33 kpeople-5.51.0.tar.xz 77df2aefcdfb8e5b9c2fef7a6bfd79066819b0c6958b9e2f8fe94860155aaae9c284a110a15a189cd5b423dc7aa017b952196370f60a4fb382ed7eb77f15abd9 dont-crash-test.patch" diff --git a/user/kpimtextedit/APKBUILD b/user/kpimtextedit/APKBUILD index 80f407c1f..acbc169a1 100644 --- a/user/kpimtextedit/APKBUILD +++ b/user/kpimtextedit/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kpimtextedit -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Text editor for Personal Information Managers (PIMs)" url="https://pim.kde.org/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="e7830227a74331e399d030dfd8058382329512b85ccd36061d7ddeba2c1eca287d41890847203afb6df254e2d9927fda7974feb4c48ab433f5b037fe48c588f5 kpimtextedit-18.08.1.tar.xz" +sha512sums="f99a974170a17d9850f4ad58b8adf010c6089a93e908872cad7f4ed716dcec14beb4a4a276b453135f01202d7970ee56edac84836e46351d58d9f421f9487e04 kpimtextedit-18.08.2.tar.xz" diff --git a/user/kplotting/APKBUILD b/user/kplotting/APKBUILD index be0cd160b..c7c313ab7 100644 --- a/user/kplotting/APKBUILD +++ b/user/kplotting/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kplotting -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for data plotting functions" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="352c424d842ddbe277c7a71acb7fe50fb7cdc78bc750c85ac5a364a6e330bd69344cd5dbdd7922725e1b143bd0d7b1ac1b6d003f5baa67edb33981d27f830838 kplotting-5.50.0.tar.xz" +sha512sums="e75a88074b18768b4edf90a5020257c49fe0440fba806f0ef1880182fc1856853211de03f7aca3be3f220fe93ff723009c96799b0c94f237ac7c698247f37666 kplotting-5.51.0.tar.xz" diff --git a/user/kpty/APKBUILD b/user/kpty/APKBUILD index 5f4f9400a..602ae416f 100644 --- a/user/kpty/APKBUILD +++ b/user/kpty/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kpty -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for implementing terminal emulation" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="22b394b8d53ab5aae05a51470a3a9ed209c8533425da6f1d6fdb26c82cc5fc1fec2c6869caa5192f067bb60a819a4ce6c19784c5fb8b7bb1691b507e77aae54d kpty-5.50.0.tar.xz" +sha512sums="e43608bbfd342fb4bcdc0376fa16d83c33589f84de4707281d7f6ef8aa19716f85df7b5dff0898a87d525611be3cc6dd9ab3cb349d76b83b6ca2bca733d81350 kpty-5.51.0.tar.xz" diff --git a/user/krdc/APKBUILD b/user/krdc/APKBUILD index 89d6a6391..c7e082442 100644 --- a/user/krdc/APKBUILD +++ b/user/krdc/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=krdc -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="View and control remote desktops (RDP and VNC)" url="https://www.kde.org/applications/internet/krdc/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="9765378af2d792958511f7359a12c7da1c032c1b23abf5859d679c4aab47260b1d4ae208ddaf6a08b69b4de8340b3fc3eafd9bd171b906f088dd80db52f6c032 krdc-18.08.1.tar.xz" +sha512sums="d9a420a48bac56acf7210f3476c3b9675aeb217a50d973934ec2dcac0ef92536a061e414d7016ad7d7ce9eabd6ee86f5ce1b875789e83dde80257ff9d3da2dd2 krdc-18.08.2.tar.xz" diff --git a/user/kreversi/APKBUILD b/user/kreversi/APKBUILD index 2c20058b7..4b97370b0 100644 --- a/user/kreversi/APKBUILD +++ b/user/kreversi/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kreversi -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Reversi game" url="https://games.kde.org/game.php?game=kreversi" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="5811bb3cc0aa2e7b9b5a56c0f5cb4c3de2120179878ec06eb387190618951d3315bf06184272b70ccb995c5c06b84b56949ca49d8c3ae6896b5d264aa8d13cca kreversi-18.08.1.tar.xz" +sha512sums="24da03f1be1e545e2ce57df52420b36eef8ecdea4ebea9439fb5e64437d95bcbe399546ed2565d310365b4a2a0b6f48af69f25ee8698f4ef0118380b31cae812 kreversi-18.08.2.tar.xz" diff --git a/user/krfb/APKBUILD b/user/krfb/APKBUILD index 139ffeeec..7fd2925c1 100644 --- a/user/krfb/APKBUILD +++ b/user/krfb/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=krfb -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Share your screen with others for remote watching or assistance" url="https://www.kde.org/applications/system/krfb/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="1024222c35f4c73774635ccf6e65109f6ecdf29ddb2d63a9d6ae4821647115b2945320ea3cd4f1d3bb13009e853f5d045dfc7bea7f94d41ebccb42dbaa86433c krfb-18.08.1.tar.xz" +sha512sums="7b172469b701023f2eeb71a5ef27a70c5812a09b3e950c53d123d4a2f14d5eb0eba5a6d851b37aba21733aaf2e1669be6e36d9ec76bbb92aa1ed5de31b6c906a krfb-18.08.2.tar.xz" diff --git a/user/kross/APKBUILD b/user/kross/APKBUILD index ad145f237..0d37c2741 100644 --- a/user/kross/APKBUILD +++ b/user/kross/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kross -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for scripting KDE applications" url="https://www.kde.org/" @@ -12,7 +12,7 @@ depends_dev="qt5-qtbase-dev qt5-qtscript-dev kparts-dev" makedepends="$depends_dev cmake extra-cmake-modules qt5-qttools-dev kcompletion-dev kcoreaddons-dev ki18n-dev kiconthemes-dev kio-dev" subpackages="$pkgname-dev $pkgname-doc $pkgname-lang" -source="https://download.kde.org/stable/frameworks/5.50/portingAids/kross-$pkgver.tar.xz" +source="https://download.kde.org/stable/frameworks/5.51/portingAids/kross-$pkgver.tar.xz" build() { cd "$builddir" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="6c1f4062d87bfa691b6323ec6210cb1f321525e012ff8e37a90271f05eb7dde489f64fa36c027d7890b220ac7af89f3571547d267033a451fedb85522d01577b kross-5.50.0.tar.xz" +sha512sums="c2b97f2980b04b57b607e526b788982e7a61f6965302c46b8f3036d3683354d66d59a189e3e7c47e8c387543e24f4417baa1896b06ec150e95959f540caac6be kross-5.51.0.tar.xz" diff --git a/user/kruler/APKBUILD b/user/kruler/APKBUILD index ccaa5a9f1..c44d5a5f3 100644 --- a/user/kruler/APKBUILD +++ b/user/kruler/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kruler -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Screen ruler" url="https://www.kde.org/applications/graphics/kruler/" @@ -39,4 +39,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="8facbb509eada0762264bef0435d2d4888a5e6a9a102f6c4d5746f4e299a67be888543ff12c4f53970c4371ac85cf4877d307193e9f33d4bf776a6ffd61922dc kruler-18.08.1.tar.xz" +sha512sums="a7e7c0c8184b6e48131fad93b6e6ca326f85c834cbca4caf1217b32197b6a6977b5de135596165e78bcb8da8cf4fcd1a8a7f23b28cd3d12b2741950913e5beee kruler-18.08.2.tar.xz" diff --git a/user/krunner/APKBUILD b/user/krunner/APKBUILD index 93aa18030..75d921e12 100644 --- a/user/krunner/APKBUILD +++ b/user/krunner/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=krunner -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Parallel query system" url="https://api.kde.org/frameworks/krunner/html/index.html" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="c1f14161c39c718f6dd9e3dca818a53d86d05b33d8115e26ce7e76d66dd3d54d22a15ea7b6c1865a5d374bd4175b9bc351db949b373e2b9de1fac8e3efb6542c krunner-5.50.0.tar.xz" +sha512sums="e053b454adaf1982a1b2b3b09aabacfd1b4f293c3d5f9c6b557e32d61049c6aeecb2b9aea547438e091395cc4b45ece38b4c7269ca90121ee0e8918e8573cf29 krunner-5.51.0.tar.xz" diff --git a/user/kservice/APKBUILD b/user/kservice/APKBUILD index b1acd8701..cc9429552 100644 --- a/user/kservice/APKBUILD +++ b/user/kservice/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kservice -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for implementing plugins and services" url="https://www.kde.org/" @@ -45,4 +45,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="d239647335f0c72e1c76f36f4f23dfdd4614467b1f95d75bffc3ffd11c2bcf307dbbbc7f67c0197030a1c27875bf256a751721204f06769d9fdc3f1e49172e87 kservice-5.50.0.tar.xz" +sha512sums="832c189b8fbf9ffca863032dcea513c14fb4823f6706675b8b939b9c6848c383b9f4ace0c7bc6211a9c5398026045fde3f62e38926e934dc6afeeb762fed56c7 kservice-5.51.0.tar.xz" diff --git a/user/kshisen/APKBUILD b/user/kshisen/APKBUILD index 2bef40a11..7581038ae 100644 --- a/user/kshisen/APKBUILD +++ b/user/kshisen/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kshisen -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Mixture of Solitaire and Mah Jongg" url="https://games.kde.org/game.php?game=kshisen" @@ -39,4 +39,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="aa215ad4b30f91ac262d99657ff093ff9b24529af33c3f1c9ee5a79d3eb7bca5ff6515112430f4b4e70ce06fe75289082ec26ef9092418de2f5d8df291860f28 kshisen-18.08.1.tar.xz" +sha512sums="1ca7611260ca04acb763fefdc78988981b48d95418a0b00b1d59a40aa104cc36ff32ec1c9246edd43557e43949e03d269bd7c17f75dbda8d9024e91a1a8d4990 kshisen-18.08.2.tar.xz" diff --git a/user/ksnakeduel/APKBUILD b/user/ksnakeduel/APKBUILD index fb062a554..d09144d7b 100644 --- a/user/ksnakeduel/APKBUILD +++ b/user/ksnakeduel/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=ksnakeduel -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Tron-like game" url="https://www.kde.org/applications/games/ksnakeduel/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="ae8ffbc8fa2489ec3aaf2d2ea866b6df5d1a9ea6e24708c584b21db69e93bff659d418bed33063a8a4c36735f6cf0664a3a117f4a55a4fe19e441b71d5c3a4b7 ksnakeduel-18.08.1.tar.xz" +sha512sums="13673dbed2b4266f6a8b4c26b0a63c4dd8e57bc66a8d5085d6434cbae05478afbb99c0371d9a59bba411044a89f2f1fb6a098217dc75f176f2616b00cba8835b ksnakeduel-18.08.2.tar.xz" diff --git a/user/ksquares/APKBUILD b/user/ksquares/APKBUILD index 70623fe6e..73ec2c9d9 100644 --- a/user/ksquares/APKBUILD +++ b/user/ksquares/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=ksquares -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Fun and exciting game of Dots and Boxes" url="https://games.kde.org/game.php?game=ksquares" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="8c5fbb1e5989adf061571a63a16d86f38b3f68d977162ce8fab4ea2b1b41eb58dee9371cca1f97052497a4a72d101fa4478941ea39022d87e885c23a39aef028 ksquares-18.08.1.tar.xz" +sha512sums="cfdb42579f5702f6eaecb230c2fe0c32501982772385533cbb8868f8174e1797aace26ef3a7553a633bd753950bf550a7b00f534da09836793edb21d64ea9c3c ksquares-18.08.2.tar.xz" diff --git a/user/ksudoku/APKBUILD b/user/ksudoku/APKBUILD index a00cd06f5..c9959832d 100644 --- a/user/ksudoku/APKBUILD +++ b/user/ksudoku/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=ksudoku -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Desktop Sudoku (symbol placement / logic) game" url="https://games.kde.org/game.php?game=ksudoku" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="c310e1ea217e0c7cf56562c6ac5e2d028567031b7f4c710d132ea4149e658577d659689a607c3ae27337f0c09a9674a5d38d229651401fb98cc8b01adc2544de ksudoku-18.08.1.tar.xz" +sha512sums="50b70e276d320821dbdabb161c770315f87d7286e0066fc453d17761e16f9e2e329d13a91d0420650e2de5b3b7e7da2bccd3672ff6055fd80d641a01addc50b7 ksudoku-18.08.2.tar.xz" diff --git a/user/ksystemlog/APKBUILD b/user/ksystemlog/APKBUILD index 0f836fa04..875268e4e 100644 --- a/user/ksystemlog/APKBUILD +++ b/user/ksystemlog/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=ksystemlog -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Friendly, powerful system log viewer tool" url="https://www.kde.org/applications/system/ksystemlog/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="096c335bc4b461548d7d16dbee738ee06fb5fae91ab3f02869b73af18f1dd8ef4ea27568a265e6a40f3777e7749e9f5a11e9b3402ac5f698836e00475a759308 ksystemlog-18.08.1.tar.xz" +sha512sums="74f89527757f3c61fb563826a9d5354426fe901c879200f771d4186c20a9ac67d1ce9b6b5fbf694399818d17fc947cdc868940002d059fe52b12dfef5a49cdc5 ksystemlog-18.08.2.tar.xz" diff --git a/user/kteatime/APKBUILD b/user/kteatime/APKBUILD index 799131cc0..7c5f1a365 100644 --- a/user/kteatime/APKBUILD +++ b/user/kteatime/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kteatime -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Steep responsibly" url="https://www.kde.org/applications/games/kteatime/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="61d0233dc81a492f2fa3caec2a0a028c66a0f9b0ceb18ff1d395dedee3ea184b221dd59bb35886d65ba7c4bd32f84a6ac8aaab0b0ccc61d3989824a5410539c3 kteatime-18.08.1.tar.xz" +sha512sums="065794fdaa956947056da2a2771ebfdcd59f88ae648734e86b4648b41ce3f223e43791ff4868be85e86d0ab4a4f3bfefa553dd838d4df4bb241067922a667ec4 kteatime-18.08.2.tar.xz" diff --git a/user/ktexteditor/APKBUILD b/user/ktexteditor/APKBUILD index 21c0fe277..d6a9d9e92 100644 --- a/user/ktexteditor/APKBUILD +++ b/user/ktexteditor/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=ktexteditor -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Reusable, programmable text editor widget" url="https://www.kde.org/" @@ -18,7 +18,7 @@ subpackages="$pkgname-dev $pkgname-doc $pkgname-lang" source="https://download.kde.org/stable/frameworks/${pkgver%.*}/ktexteditor-$pkgver.tar.xz" # secfixes: -# 5.50.0-r0: +# 5.51.0-r0: # - CVE-2018-10361 build() { @@ -48,4 +48,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="ab58d937d7b3e6374f7800fa81d52522a8fe73e67a222402b557b41770f1067348bb6b0e8a4e76cf4c983cc3e2e9df0760bd10791531b6d59cbd438c39e93537 ktexteditor-5.50.0.tar.xz" +sha512sums="9da7f51240b9772e03d90438a3e21f29889ef0e69c7af86ffbd702f7a1569cffeda52e1f24f1b4a28739366a5229348a147da994e2ffe32b1a6d5dc17213f0f9 ktexteditor-5.51.0.tar.xz" diff --git a/user/ktextwidgets/APKBUILD b/user/ktextwidgets/APKBUILD index 0476c3c52..5aeed9d27 100644 --- a/user/ktextwidgets/APKBUILD +++ b/user/ktextwidgets/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=ktextwidgets -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework providing widgets for text manipulation" url="https://www.kde.org/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="bbb886b5f3520d7aba4b2f0fb3b63fcba7df16cf551077bc6827ca402fda4849a6148b21706c3c733cb788042a2ed1870a28104f7cb7227cbf5f3f4e14128db0 ktextwidgets-5.50.0.tar.xz" +sha512sums="4a3d56f21d86b03f4097407d44eeaf3915b62148772f8d54a4489a1ac18d5422c44e26e7a2cb52570f0ba6502d5b006093a16fc6783e7682cb878863c4ce0dc7 ktextwidgets-5.51.0.tar.xz" diff --git a/user/ktimer/APKBUILD b/user/ktimer/APKBUILD index ecc6bf036..3d255f169 100644 --- a/user/ktimer/APKBUILD +++ b/user/ktimer/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=ktimer -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Tool to execute programs after some time" url="https://www.kde.org/applications/utilities/ktimer/" @@ -39,4 +39,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="54916845190dcf9e80deefbdf1cfa583cfc37c4ab7fca9ba56a0542a934719f98b56bc879768a0f6822d255ead23446edad9bf21886fd341a11f2ad3296f2947 ktimer-18.08.1.tar.xz" +sha512sums="65cb1ee4f2f1402728ef0fcedb403f4015d06383f268f13fd6dd031601083007502373506d1ece514a9c55ff8a7f111a71f31350929d82a2298dab69477d3680 ktimer-18.08.2.tar.xz" diff --git a/user/ktouch/APKBUILD b/user/ktouch/APKBUILD index e9d79daa6..c725a9165 100644 --- a/user/ktouch/APKBUILD +++ b/user/ktouch/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=ktouch -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Touch typing tutor" url="https://www.kde.org/applications/education/ktouch/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="83fb8fefff5a3fbb8124fb7a0d545f5d2edbcf1b2c1e134cf8c9984809bbe1f4b50e566782a9eed78233e9716f8638b86e177f5ed9f1f1304fbe70942abdf3ed ktouch-18.08.1.tar.xz" +sha512sums="925a7add9c0078eea79e677c0f90acd75ddc17ee88f6c1063c261f8b753d3077003508bca66d4434525715d8df688866237a0d3a051096f2ae657faca8604531 ktouch-18.08.2.tar.xz" diff --git a/user/ktuberling/APKBUILD b/user/ktuberling/APKBUILD index af37697bc..1b092b2dc 100644 --- a/user/ktuberling/APKBUILD +++ b/user/ktuberling/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=ktuberling -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Simple constructor game" url="https://games.kde.org/game.php?game=ktuberling" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="71381b04656f15e1c9409bfae15252f4a8ebe8c6de139d432e88ab23f942d8662a07dfb1d93901097c4d83227229e5becdebf1da10935cbb830848dfe8d4b18a ktuberling-18.08.1.tar.xz" +sha512sums="59d2d6b212973e7006d3dcefac5a6ed776bff2eed1e2f21b694429666c34290256429c964a288e3c03af8b0281f487ce27cb3f6f54b6845c2bea04e6b6ac4e4e ktuberling-18.08.2.tar.xz" diff --git a/user/kturtle/APKBUILD b/user/kturtle/APKBUILD index 10b73a429..4ee474ec4 100644 --- a/user/kturtle/APKBUILD +++ b/user/kturtle/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kturtle -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Educational programming environment" url="https://www.kde.org/applications/education/kturtle/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="d33694c95676579a72c4065009f86f9a4aef9576057a4215267b16d5a37ba2b1d57e103bc9b3824dd5691b63d078e964291775a067f85c74d542b3654cd276a7 kturtle-18.08.1.tar.xz" +sha512sums="d9136d5aeb7c9c32f96b235a1608a2be71c123a9c745e3db5cec53fa647dc70d020bcb3d96692324f9047f7e579357a7aa030791fe6e9d91ddede9a778528870 kturtle-18.08.2.tar.xz" diff --git a/user/kubrick/APKBUILD b/user/kubrick/APKBUILD index 0ab818f4c..fd63fe70a 100644 --- a/user/kubrick/APKBUILD +++ b/user/kubrick/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kubrick -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="3D cube puzzle solving game" url="https://www.kde.org/applications/games/kubrick/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="37cd3bb1488f3cf0704010a3b9d10ba8861f3e258fbab63703b255e999f326899ddd5c50bf8409598ebced62e532105bfe541f5fe768e9a942fff3dd09cfb443 kubrick-18.08.1.tar.xz" +sha512sums="88aeac983d252b38dfc23552ad00557c80ea0ea8e3ce18f4c9f75de58059422588ee6c900bcb79bc66236c3cda60e47a7298fae9bcbdff6dd9ca29460c03c54d kubrick-18.08.2.tar.xz" diff --git a/user/kunitconversion/APKBUILD b/user/kunitconversion/APKBUILD index 39d7a3515..0b104c50b 100644 --- a/user/kunitconversion/APKBUILD +++ b/user/kunitconversion/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kunitconversion -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Convert between metric and imperial" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="82dc61f9893e6d1f7215226a1bc87404a09d8c29f384dab21fb78a2620ffb3ba45621beb057ef803f95635f2e8b1b0f3e57a9dbcbf815871d45c87f70d53750f kunitconversion-5.50.0.tar.xz" +sha512sums="d258c3a94392e742391d592e100a9e6e6d89c375306b1fa5a0f35731495e68667f2a8d334472f77d0a584783e1f393cf7eac1bb7ae034f94936cd3fd131b1c3e kunitconversion-5.51.0.tar.xz" diff --git a/user/kwallet/APKBUILD b/user/kwallet/APKBUILD index 1ed6014d1..a0b1a5923 100644 --- a/user/kwallet/APKBUILD +++ b/user/kwallet/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kwallet -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Secure storage system for passwords built atop Qt" url="https://www.kde.org/" @@ -44,5 +44,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="45d798775898a8781be3341411c55f07df668d2f13806b3085e3c9f77926f564d6dc5ea3425aa3e0fdc42276125f320136725cd988807fb1a29b22ccc1bdccf8 kwallet-5.50.0.tar.xz +sha512sums="edb4129ad542d1b359c5a6f8ea2d84b400fe314138e22441f560e399b0209c6cd6be216ffc1b9066d6a05a880920ca7ef6969e24de9fe4a355cb291c6c5850ac kwallet-5.51.0.tar.xz edca12963a5db9db05b3b4d581c1b970569f3b96dc672422e561c189c9024b69710732281f054514ce3d596688a5b0ba512766f4fd768eea8e00a18dcfd59179 kwallet-5.22.0-blowfish-endianness.patch" diff --git a/user/kwalletmanager/APKBUILD b/user/kwalletmanager/APKBUILD index e05deca6d..2bb6cfe04 100644 --- a/user/kwalletmanager/APKBUILD +++ b/user/kwalletmanager/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kwalletmanager -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Manage KDE wallets" url="https://www.kde.org/applications/system/kwalletmanager/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="9e5d37f3600dc8f6499e791c92858a0e16afe8cce6b60232af8736e161ad67936f4e4e2ec49cfd413aae410d4b1ef24e27dca42e3c04ab1fc05c61ed39698740 kwalletmanager-18.08.1.tar.xz" +sha512sums="5178cb62df0a96f72a58c203213650cd8b5bc97ff656e6cf096963e044023bf0a6d4ac545fe9d2ba64f23071f74cf7e817146e340939666383fc309854d26f48 kwalletmanager-18.08.2.tar.xz" diff --git a/user/kwave/APKBUILD b/user/kwave/APKBUILD index d99fa5a64..c4d3f3eb2 100644 --- a/user/kwave/APKBUILD +++ b/user/kwave/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kwave -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Sound editor built for KDE" url="https://kwave.sourceforge.net/" @@ -46,5 +46,5 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="5e9abc54dbd3e757ffb287ce68f43eb91c4b7ee8c231fca194139d0c2183f1b1e8acd23f713d15ea40dca6cea03d4567591ac78d58650e554422772cd7a53660 kwave-18.08.1.tar.xz +sha512sums="31e971799d79cde4dac118121a8ca4d89910c8599f7b019e26e10bae63a892e53e022386e03a0703ff2a1c03b6121ff1761a89ce59903f49d8da6f23a039a58a kwave-18.08.2.tar.xz 43474f73281a7e3e97e2aa9e8c5b7aac50c8153c4ec09345a9ff43eb3c90a17c1dd9fbd2c630967ff87a5b21139f4efd0ecc44f36052549cc2036fd1db1dfac4 remove-msgcat.patch" diff --git a/user/kwayland/APKBUILD b/user/kwayland/APKBUILD index ab6e4bb2d..4fdcc3b53 100644 --- a/user/kwayland/APKBUILD +++ b/user/kwayland/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kwayland -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Qt wrapper libraries for Wayland" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="6698eace0b13d276b24ccb47cf15cb04c6ee473d5e21adcbd8729a02bb481387faf280b4fff5a7e94965671424e8a1be6364f17e738b929d2a5b1d6638c15428 kwayland-5.50.0.tar.xz" +sha512sums="dceb2b39757ee55ffcad88741556925b1467198e3cc66d9af3ee5eb707e3c226bcd2c5f8079754b7163421239a28931f86bddc543a15b47ba35a08acf3a6ddf1 kwayland-5.51.0.tar.xz" diff --git a/user/kwidgetsaddons/APKBUILD b/user/kwidgetsaddons/APKBUILD index 8e9a19a09..74bbc67eb 100644 --- a/user/kwidgetsaddons/APKBUILD +++ b/user/kwidgetsaddons/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kwidgetsaddons -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework containing ready-made widgets for common tasks" url="https://www.kde.org/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="91c4824d1c5b889c11f84fe95f0e48453275451d3e2e7c5b4a5603fa5db4ffbe0ab20dfd48bb3fcec8576c4f1d494a5fcb5d53e84ff11af01ded26b93377cfe7 kwidgetsaddons-5.50.0.tar.xz" +sha512sums="01383c3ccbfbbe4fd871aed636d5ba7a2d4df83b08b2f1ede54449f1695756d76116489dc6e32055c658008c2419912426fb1246bd02a0bb0358ca87c2ec9d9b kwidgetsaddons-5.51.0.tar.xz" diff --git a/user/kwindowsystem/APKBUILD b/user/kwindowsystem/APKBUILD index 12be7c657..7f02703a5 100644 --- a/user/kwindowsystem/APKBUILD +++ b/user/kwindowsystem/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kwindowsystem -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for introspecting the running X11 window manager" url="https://www.kde.org/" @@ -43,4 +43,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="7e83e07ab587ef4a0edd58ca22ecba8277f97ca6438f537b6475bf03225559d207e80c2fde4c1ce5ebdb78b5a4c1e04407af9cba0a5dacbbaeacf3d7b14a9ed6 kwindowsystem-5.50.0.tar.xz" +sha512sums="cd2703b1cc87722b6c37d1380004d50f0899c1be508dbd42fb45392440ff8ca77eb1df0f0658a2e096b5cfb50b1bea76dc9226dff692e87ad2c8e81502d75f41 kwindowsystem-5.51.0.tar.xz" diff --git a/user/kwordquiz/APKBUILD b/user/kwordquiz/APKBUILD index 5fdb2bb57..c87814cf8 100644 --- a/user/kwordquiz/APKBUILD +++ b/user/kwordquiz/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kwordquiz -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Flash card trainer for KDE" url="https://www.kde.org/applications/education/kwordquiz/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="40a00ca117b4a4a14921b84c312bd4afc98b83e45d0f7a1cc9cc24d365b57bb5a3a383dae65e8517e835991e02e1841fb5470a215003467c29f93e7e04427a28 kwordquiz-18.08.1.tar.xz" +sha512sums="85d2de5c354033e7b49cd37cabe249a5fef76ef849daf31187bfc64fefefcac2fb65fc87dd44e217d1bbe13934eb569eeb60d925a9df8a5d892c1c1c8db48dd3 kwordquiz-18.08.2.tar.xz" diff --git a/user/kxmlgui/APKBUILD b/user/kxmlgui/APKBUILD index d7b3e60b4..45b56f8ae 100644 --- a/user/kxmlgui/APKBUILD +++ b/user/kxmlgui/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kxmlgui -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for creating user interfaces using XML" url="https://www.kde.org/" @@ -44,4 +44,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="01915037c1709df0a04d9651d0c56f21856448636937188c50ff5785de374f68d87e9bb8a4f553b8247a601e186c4291b1e5ff4ec9bf89dbfd7d975c527e064a kxmlgui-5.50.0.tar.xz" +sha512sums="2da28eb4b5c53e0cb92fd140f4edf355ae84e8f507f3475540260eaea96149178a16eb2ae9bd1901eb1a04a8e0e2acb5c2b2083e8a3c114e232bdcb5355832bd kxmlgui-5.51.0.tar.xz" diff --git a/user/kxmlrpcclient/APKBUILD b/user/kxmlrpcclient/APKBUILD index c865e581e..354c0cb6d 100644 --- a/user/kxmlrpcclient/APKBUILD +++ b/user/kxmlrpcclient/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=kxmlrpcclient -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Qt library for writing XML-RPC clients" url="https://www.kde.org/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="08c207cc2c0db165ed76ea2c92bfbb1ed9eb49ace49ffb3bfbfb8780a0b335e0938504fe370465dc074ee6bb02f64a4d5f5bce459729215a334bfdbebba4ca98 kxmlrpcclient-5.50.0.tar.xz" +sha512sums="149e12d95daea4185c68a254c7c9cdf100a9157018bbaa96367c5ec87863464caeb9aeed1e39d492c12e05edcefdd2c8691cb6fca2fe0e81a95a358a375a43bb kxmlrpcclient-5.51.0.tar.xz" diff --git a/user/libkdegames/APKBUILD b/user/libkdegames/APKBUILD index ad5143e17..5966f37dc 100644 --- a/user/libkdegames/APKBUILD +++ b/user/libkdegames/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=libkdegames -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Library for common routines shared between KDE games" url="https://www.kde.org/applications/games/" @@ -52,4 +52,4 @@ carddecks() { mv "$pkgdir"/usr/share/carddecks "$subpkgdir"/usr/share/ } -sha512sums="09769549944b42f8c0381ba691b787b9ab00575343047ee1763d8c1a5347e62716d0cada05b0688aee7f160846a6d16aa7d68978d99bdf65c5dc3a21ce5619e1 libkdegames-18.08.1.tar.xz" +sha512sums="97657fa70aecf0345f6ccba70e1ed2cb652fc220c25d1f89e039f83ab695b0d7576271391197c573f5c53f9e262a7d1ccc163bb67827e5390e9b3aa170ee5e4f libkdegames-18.08.2.tar.xz" diff --git a/user/libkeduvocdocument/APKBUILD b/user/libkeduvocdocument/APKBUILD index 7e50fe8b9..ac68e1764 100644 --- a/user/libkeduvocdocument/APKBUILD +++ b/user/libkeduvocdocument/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=libkeduvocdocument -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Library for manipulating KVTML files" url="https://www.kde.org/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="fb71a7c76426a959f25c5bb2d01c8d843bcd31c0b28f4acf37fe860a2dff7a9ee5dfc67e9a51715f137ee5b7c284f885cae0f7941888ef0c75607b03ad90d11c libkeduvocdocument-18.08.1.tar.xz" +sha512sums="c31763aa8f75693be75ae5fb07fa398807dbb9fc940554f01b2d4c11601317e27fdf3e170d7ff439602a6b4bb020bb9cf1a333191e27cb435d4bbc6e4ab80414 libkeduvocdocument-18.08.2.tar.xz" diff --git a/user/libkipi/APKBUILD b/user/libkipi/APKBUILD index d96026984..b68551aad 100644 --- a/user/libkipi/APKBUILD +++ b/user/libkipi/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=libkipi -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="KDE Image Plugin Interface library" url="https://www.digikam.org/" @@ -36,4 +36,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="d209b81bfe29d41816347d8292fabd572579ad4ba916127ea1fa1a9d247f08347dc6f2f1c91dbe5ba4e8f7e3305b411246a14c8c776e16af9b36fa57d8cd6641 libkipi-18.08.1.tar.xz" +sha512sums="435dd7ac92121406ebabc9268dedbb5bd452ad09e60ae7c7877e88a01205da5089414db1104159792177b40e0ad024a9bbb1ee718751a5114154de3c2f31c412 libkipi-18.08.2.tar.xz" diff --git a/user/libkleo/APKBUILD b/user/libkleo/APKBUILD index f73aa01c5..8220dfff4 100644 --- a/user/libkleo/APKBUILD +++ b/user/libkleo/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=libkleo -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="KDE encryption library" url="https://www.kde.org/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="3df1d5236d31636de4811dea600b660d1920613a56c0ec7821fdf3451737d896ba129746f5a838cfb96d106dcd68b3170efdf2616f8e56b562e59cd7ec7ce1ed libkleo-18.08.1.tar.xz" +sha512sums="e1979872da850b359bf02b309e8660452c6c99409b2474589beec8789ad34870dd30b71c806da7f410d1ee9b9671a9c75e6259c6440a32bbf20a70914cf974b0 libkleo-18.08.2.tar.xz" diff --git a/user/libkmahjongg/APKBUILD b/user/libkmahjongg/APKBUILD index 2fcb476ae..0b7c93cf0 100644 --- a/user/libkmahjongg/APKBUILD +++ b/user/libkmahjongg/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=libkmahjongg -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Library with Mah Jongg logic" url="https://www.kde.org/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="bfcae260ec5baef8ff8f881331442448d6e40619321c0034f9d638df91283ea50bd57a1ac90e118b99ab662d4d08c29b9493946119b9f378b1fa6fb823dcdc70 libkmahjongg-18.08.1.tar.xz" +sha512sums="2b1ae525169ab01b99d6b1d3502a66084b0110431485aa0fa1a693e77fa8e55cec1c78fe4b2beac2be314698f3f50f2d7de3f1471115f1caf58f4ace968ed57f libkmahjongg-18.08.2.tar.xz" diff --git a/user/libksane/APKBUILD b/user/libksane/APKBUILD index 1fe14d367..962eacde5 100644 --- a/user/libksane/APKBUILD +++ b/user/libksane/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=libksane -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="KDE scanning library" url="https://www.kde.org" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="fdd65c8857a31f2d805f12308b6ccb0027c5960b9af5f80553740f6ebe86e84278f2d078d651003c1f95835893794feabb76ce13c516f03783e65eacc82be48d libksane-18.08.1.tar.xz" +sha512sums="526f97353d281a61eb1fc38c34f95c4a4e3e9d63e269a5c63d553ce8597df5168eefc05d6856439ee409318f3e7c91bccef6004c347635446dd045229929eb0e libksane-18.08.2.tar.xz" diff --git a/user/libpfm/APKBUILD b/user/libpfm/APKBUILD new file mode 100644 index 000000000..c30624312 --- /dev/null +++ b/user/libpfm/APKBUILD @@ -0,0 +1,26 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=libpfm +pkgver=4.10.1 +pkgrel=0 +pkgdesc="Performance monitoring library" +url="http://perfmon2.sourceforge.net/" +arch="all" +options="!check" # No test suite. +license="MIT" +depends="" +makedepends="" +subpackages="$pkgname-dev $pkgname-doc" +source="https://downloads.sourceforge.net/perfmon2/libpfm4/libpfm-$pkgver.tar.gz" + +build() { + cd "$builddir" + CFLAGS="$CFLAGS -Wno-error=cpp" make +} + +package() { + cd "$builddir" + make PREFIX="/usr" DESTDIR="$pkgdir" install +} + +sha512sums="33d99824216b4d83784e0db9f1aae3b39f84c2ba42dee64dde0b3c43cc5ee3a18c206d9044e75bf10867768add7cb9967c6318f7aa196f178f334271fa05e1aa libpfm-4.10.1.tar.gz" diff --git a/user/llvm6/APKBUILD b/user/llvm6/APKBUILD index 4372ac72f..5f7b04fad 100644 --- a/user/llvm6/APKBUILD +++ b/user/llvm6/APKBUILD @@ -26,6 +26,7 @@ source="http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz secure-plt.patch more-secure-plt.patch even-more-secure-plt.patch + ppc32-calling-convention.patch " builddir="$srcdir/$_pkgname-$pkgver.src" @@ -250,4 +251,5 @@ caeec8e4dbd92f5f74940780b69075f3879a267a8623822cbdc193fd14706eb089071e3a5a20d60c e5ddbc4b6c4928e79846dc3c022eb7928aaa8fed40515c78f5f03b8ab8264f34f1eb8aa8bfc0f436450932f4917e54ad261603032092ea271d9590f11a37cf1e musl-ppc64-elfv2.patch 35d289641fa4d200b5a3f62f1d51da600a734641356b0dc6c54a3080dd89aec3b031e36af8b53be49c35346c1cbcce00268de7ec9b4f552bfd7bf84d3504d1c4 secure-plt.patch 3d4a0a478bf800ea262c577451e22a1dbd5a4258226e49c66a697559263c8aa4fc0fff642a3c80ac3dfbb3efd6d9c0dbeb41dae1250fc7946de821cfef1ce1f0 more-secure-plt.patch -deb71762721ebc73bfdf23143b582f40c70eddcef3e337ed14499e8e336bee2906292d38d64fe98fa633430c1bcb66cf6a2e067258c8fbe6e931f99f6d10a6f7 even-more-secure-plt.patch" +deb71762721ebc73bfdf23143b582f40c70eddcef3e337ed14499e8e336bee2906292d38d64fe98fa633430c1bcb66cf6a2e067258c8fbe6e931f99f6d10a6f7 even-more-secure-plt.patch +c3f596a1578a07ce0ee40c4e2576fe05ca6ca0c1b4f94b1f74c55cb09603afe7c846db9294fe28d83ca48633086bad422218e6d06e0d92173143fb298e06fb38 ppc32-calling-convention.patch" diff --git a/user/llvm6/ppc32-calling-convention.patch b/user/llvm6/ppc32-calling-convention.patch new file mode 100644 index 000000000..2e6d66427 --- /dev/null +++ b/user/llvm6/ppc32-calling-convention.patch @@ -0,0 +1,69 @@ +Index: trunk/lib/Target/PowerPC/PPCISelLowering.cpp +=================================================================== +--- trunk/lib/Target/PowerPC/PPCISelLowering.cpp ++++ trunk/lib/Target/PowerPC/PPCISelLowering.cpp +@@ -3511,9 +3511,14 @@ + // Argument stored in memory. + assert(VA.isMemLoc()); + ++ // Get the extended size of the argument type in stack + unsigned ArgSize = VA.getLocVT().getStoreSize(); +- int FI = MFI.CreateFixedObject(ArgSize, VA.getLocMemOffset(), +- isImmutable); ++ // Get the actual size of the argument type ++ unsigned ObjSize = VA.getValVT().getStoreSize(); ++ unsigned ArgOffset = VA.getLocMemOffset(); ++ // Stack objects in PPC32 are right justified. ++ ArgOffset += ArgSize - ObjSize; ++ int FI = MFI.CreateFixedObject(ArgSize, ArgOffset, isImmutable); + + // Create load nodes to retrieve arguments from the stack. + SDValue FIN = DAG.getFrameIndex(FI, PtrVT); +@@ -5468,10 +5473,15 @@ + Arg = PtrOff; + } + +- if (VA.isRegLoc()) { +- if (Arg.getValueType() == MVT::i1) +- Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i32, Arg); ++ // When useCRBits() is true, there can be i1 arguments. ++ // It is because getRegisterType(MVT::i1) => MVT::i1, ++ // and for other integer types getRegisterType() => MVT::i32. ++ // Extend i1 and ensure callee will get i32. ++ if (Arg.getValueType() == MVT::i1) ++ Arg = DAG.getNode(Flags.isSExt() ? ISD::SIGN_EXTEND : ISD::ZERO_EXTEND, ++ dl, MVT::i32, Arg); + ++ if (VA.isRegLoc()) { + seenFloatArg |= VA.getLocVT().isFloatingPoint(); + // Put argument in a physical register. + RegsToPass.push_back(std::make_pair(VA.getLocReg(), Arg)); +Index: trunk/test/CodeGen/PowerPC/ppc32-i1-stack-arguments-abi-bug.ll +=================================================================== +--- trunk/test/CodeGen/PowerPC/ppc32-i1-stack-arguments-abi-bug.ll ++++ trunk/test/CodeGen/PowerPC/ppc32-i1-stack-arguments-abi-bug.ll +@@ -0,0 +1,24 @@ ++; RUN: llc -verify-machineinstrs < %s -mcpu=ppc32 -mattr=+crbits | FileCheck %s ++target triple = "powerpc-unknown-linux-gnu" ++ ++define void @check_callee( ++ i32, i32, i32, i32, ++ i32, i32, i32, i32, ++ i1 zeroext %s1 ++) { ++ call void @check_caller( ++ i32 9, i32 9, i32 9, i32 9, ++ i32 9, i32 9, i32 9, i32 9, ++ i1 zeroext %s1) ++ ret void ++} ++ ++; CHECK-LABEL: @check_callee ++; CHECK: lbz {{[0-9]+}}, 27(1) ++; CHECK: stw {{[0-9]+}}, 8(1) ++ ++declare void @check_caller( ++ i32, i32, i32, i32, ++ i32, i32, i32, i32, ++ i1 zeroext ++) diff --git a/user/lskat/APKBUILD b/user/lskat/APKBUILD index 0276048d8..b6452b1c0 100644 --- a/user/lskat/APKBUILD +++ b/user/lskat/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=lskat -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Lieutenant Skat is an interactive two-player card game" url="https://games.kde.org/game.php?game=lskat" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="958ca673414a700f253c2b61d3e15502161fa3b3724e16b9ef1a1e3827c0093721a866a4ff00a9056ad027a541ce6873e192421d2b473f5e1dd7d307498c4715 lskat-18.08.1.tar.xz" +sha512sums="25c13bb18da2906987cbf250ad6e300d121db4d04abb2fed48942b513d3ba1c0ed3d31815951a92eba70939d1c8f1423c12d4ed390e41405f06eb83a6046c1a6 lskat-18.08.2.tar.xz" diff --git a/user/lsof/APKBUILD b/user/lsof/APKBUILD index 32fff3e16..a7e0c4768 100644 --- a/user/lsof/APKBUILD +++ b/user/lsof/APKBUILD @@ -8,7 +8,7 @@ url="https://people.freebsd.org/~abe" arch="all" license="zlib-acknowledgement" subpackages="$pkgname-doc" -makedepends="linux-headers debianutils-which utmps-dev" +makedepends="linux-headers cmd:which utmps-dev" source="ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/${pkgname}_${pkgver}.tar.gz utmps.patch test-enable-suite.patch diff --git a/user/lua-expat/APKBUILD b/user/lua-expat/APKBUILD new file mode 100644 index 000000000..9c8a6713a --- /dev/null +++ b/user/lua-expat/APKBUILD @@ -0,0 +1,32 @@ +# Contributor: Mika Havela <mika.havela@gmail.com> +# Contribtor: Natanael Copa <ncopa@alpinelinux.org> +# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +pkgname=lua-expat +_name=expat +pkgver=1.3.0 +pkgrel=0 +pkgdesc="SAX XML parser based on the Expat library" +url="https://matthewwild.co.uk/projects/luaexpat/" +arch="all" +license="MIT" +depends="lua5.3" +makedepends="lua5.3-dev expat-dev" +source="http://matthewwild.co.uk/projects/luaexpat/luaexpat-$pkgver.tar.gz" +builddir="$srcdir/luaexpat-$pkgver" + +build() { + cd "$builddir" + make LUA_V=5.3 +} + +check() { + cd "$builddir" + LUA_CPATH="./src/?.so" lua tests/test.lua +} + +package() { + cd "$builddir" + make LUA_V=5.3 DESTDIR="$pkgdir" install +} + +sha512sums="91884653310e2dc89ade6d1653875ac8607640a21853d3ccb1fd0f833812e41981fad5c40101732ec249104d2c50c9a332208d1e44423b8428065a223c60b4ae luaexpat-1.3.0.tar.gz" diff --git a/user/lua-filesystem/APKBUILD b/user/lua-filesystem/APKBUILD new file mode 100644 index 000000000..e809a654f --- /dev/null +++ b/user/lua-filesystem/APKBUILD @@ -0,0 +1,36 @@ +# Contributor: Natanael Copa <ncopa@alpinelinux.org> +# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +pkgname=lua-filesystem +_pkgname=luafilesystem +pkgver=1.7.0.2 +_pkgver=${pkgver//./_} +_rockver=${pkgver%.*}-${pkgver##*.} +pkgrel=0 +pkgdesc="Filesystem functions for Lua" +url="http://keplerproject.github.io/luafilesystem/" +arch="all" +license="MIT" +depends="lua5.3" +makedepends="lua5.3-dev" +source="$_pkgname-$pkgver.tar.gz::https://github.com/keplerproject/$_pkgname/archive/v$_pkgver.tar.gz" +builddir="$srcdir/$_pkgname-$_pkgver" + +build() { + cd "$builddir" + make CFLAGS="$CFLAGS $(pkg-config lua --cflags) -fPIC" +} + +check() { + cd "$builddir" + LUA_CPATH=./src/?.so lua tests/test.lua +} + +package() { + local rockdir="$pkgdir"/usr/lib/luarocks/rocks-5.3/$_rockname/$_rockver + cd "$builddir" + make LUA_LIBDIR="$pkgdir"/$(pkg-config --variable=INSTALL_CMOD lua5.3) install + mkdir -p "$rockdir" + echo 'rock_manifest = {}' > "$rockdir"/rock_manifest +} + +sha512sums="a1d4d077776e57cd878dbcd21656da141ea3686c587b5420a2b039aeaf086b7e7d05d531ee1cc2bbd7d06660d1315b09593e52143f6711f033ce8eecdc550511 luafilesystem-1.7.0.2.tar.gz" diff --git a/user/lua-sec/APKBUILD b/user/lua-sec/APKBUILD new file mode 100644 index 000000000..6732105ef --- /dev/null +++ b/user/lua-sec/APKBUILD @@ -0,0 +1,32 @@ +# Contributor: Natanael Copa <ncopa@alpinelinux.org> +# Maintainer: Natanael Copa <ncopa@alpinelinux.org> +pkgname=lua-sec +pkgver=0.7 +pkgrel=0 +pkgdesc="TLS/SSL Support for Lua" +url="https://github.com/brunoos/luasec/wiki" +arch="all" +options="!check" # no tests +license="MIT" +depends="lua5.3 lua-socket" +makedepends="lua5.3-dev openssl-dev" +subpackages="$pkgname-doc" +source="luasec-$pkgver.tar.gz::https://github.com/brunoos/luasec/archive/luasec-$pkgver.tar.gz" +builddir="$srcdir/luasec-luasec-$pkgver" + +build() { + cd "$builddir" + make linux INC_PATH="$(pkg-config --cflags lua)" LD="${CC:-gcc}" +} + +package() { + cd "$builddir" + make \ + LUAPATH="$pkgdir"/usr/share/lua/5.3 \ + LUACPATH="$pkgdir"/usr/lib/lua/5.3 \ + install + mkdir -p "$pkgdir"/usr/share/doc/$pkgname + cp -r samples "$pkgdir"/usr/share/doc/$pkgname/ +} + +sha512sums="6adf5241aa5a0d92c9dd7fc7f7e426969475548f47979ccc28187471b3bad4132c215de6da1f471d21b05c6558d36309264512c9c4ac70a53d6f6e204cac1358 luasec-0.7.tar.gz" diff --git a/user/lua-socket/0001-Create-socket-on-first-sendto-if-family-agnostic-udp.patch b/user/lua-socket/0001-Create-socket-on-first-sendto-if-family-agnostic-udp.patch new file mode 100644 index 000000000..61bae6fbf --- /dev/null +++ b/user/lua-socket/0001-Create-socket-on-first-sendto-if-family-agnostic-udp.patch @@ -0,0 +1,49 @@ +From 3041a808c3797e3c87272d71666e7b2f7c7a9f46 Mon Sep 17 00:00:00 2001 +From: Natanael Copa <ncopa@alpinelinux.org> +Date: Wed, 25 Jan 2017 12:43:29 +0100 +Subject: [PATCH] Create socket on first sendto if family agnostic udp() was + used + +Create socket and set family on first sendto() if udp() was created +without address family. + +Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> +--- + src/udp.c | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/src/udp.c b/src/udp.c +index ec97252..605c195 100644 +--- a/src/udp.c ++++ b/src/udp.c +@@ -189,6 +189,27 @@ static int meth_sendto(lua_State *L) { + lua_pushstring(L, gai_strerror(err)); + return 2; + } ++ ++ /* create socket if on first sendto if AF_UNSPEC was set */ ++ if (udp->family == AF_UNSPEC && udp->sock == SOCKET_INVALID) { ++ struct addrinfo *ap; ++ const char *errstr = NULL; ++ for (ap = ai; ap != NULL; ap = ap->ai_next) { ++ errstr = inet_trycreate(&udp->sock, ap->ai_family, SOCK_DGRAM, 0); ++ if (errstr == NULL) { ++ socket_setnonblocking(&udp->sock); ++ udp->family = ap->ai_family; ++ break; ++ } ++ } ++ if (errstr != NULL) { ++ lua_pushnil(L); ++ lua_pushstring(L, errstr); ++ freeaddrinfo(ai); ++ return 2; ++ } ++ } ++ + timeout_markstart(tm); + err = socket_sendto(&udp->sock, data, count, &sent, ai->ai_addr, + (socklen_t) ai->ai_addrlen, tm); +-- +2.11.0 + diff --git a/user/lua-socket/APKBUILD b/user/lua-socket/APKBUILD new file mode 100644 index 000000000..16bfbcf40 --- /dev/null +++ b/user/lua-socket/APKBUILD @@ -0,0 +1,41 @@ +# Contributor: Mika Havela <mika.havela@gmail.com> +# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +pkgname=lua-socket +_name=luasocket +pkgver=3.0_rc1_git20160306 +pkgrel=0 +_ver=${pkgver%_git*} +_ver=${_ver/_rc/-rc} +pkgdesc="Networking library for Lua" +url="http://luaforge.net/projects/luasocket/" +arch="all" +license="MIT" +depends="lua5.3" +makedepends="lua5.3-dev" +source="luasocket-$_ver.tar.gz::https://github.com/diegonehab/luasocket/archive/v$_ver.tar.gz + git.patch + lua-cflags.patch + 0001-Create-socket-on-first-sendto-if-family-agnostic-udp.patch" +builddir="$srcdir/$_name-$_ver" + +build() { + cd "$builddir" + make LUAV="" +} + +check() { + cd "$builddir" + mkdir -p src/socket && cp src/socket-$_ver.so src/socket/core.so + mkdir -p src/mime && cp src/mime-1.0.3.so src/mime/core.so + LUA_CPATH=./src/?.so LUA_PATH="./src/?.lua;;" lua test/hello.lua +} + +package() { + cd "$builddir" + make prefix=/usr DESTDIR="$pkgdir" LUAV="5.3" install-unix +} + +sha512sums="f6efce259aaacaa11472911471f8a13b118fe009b8953a82c6aa18b9ec829cd1293180904e56935cb130d36d267e3f27c91db2d78e03f7488f3e100571ed0540 luasocket-3.0-rc1.tar.gz +45c80e488fedc879f0217bc8a654d80da003039f5d1ff21b0dea0eb769151787dbe793e44a3dfd72cb07ff2697eceaf4fc7b55b4634cd170fa71281f19f025a5 git.patch +61c15238a2f116b7239fdbdb8f617c82dbbecd0117c6e8389b12015bf07f3978299a8e8995e93a45a23530c747662b08d161073cdb6a8e07c4f449e45856e8cb lua-cflags.patch +c45a12e17771a1b3b71154b5415421f524cd10b7969b4649a5f37b652cdc826721e117edb8fe64758d3520e59946e2f755b814f72cbb39ff42bf59bbcf9a64e9 0001-Create-socket-on-first-sendto-if-family-agnostic-udp.patch" diff --git a/user/lua-socket/git.patch b/user/lua-socket/git.patch new file mode 100644 index 000000000..d665fc232 --- /dev/null +++ b/user/lua-socket/git.patch @@ -0,0 +1,6609 @@ +diff --git a/doc/http.html b/doc/http.html +index cd41c0d..3b7a8b1 100644 +--- a/doc/http.html ++++ b/doc/http.html +@@ -112,12 +112,15 @@ the HTTP module: + </p> + + <ul> +-<li> <tt>PORT</tt>: default port used for connections; +-<li> <tt>PROXY</tt>: default proxy used for connections; ++<li> <tt>PROXY</tt>: default proxy used for connections; + <li> <tt>TIMEOUT</tt>: sets the timeout for all I/O operations; + <li> <tt>USERAGENT</tt>: default user agent reported to server. + </ul> + ++<p class=note id="post"> ++Note: These constants are global. Changing them will also ++change the behavior other code that might be using LuaSocket. ++</p> + + <!-- http.request ++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +diff --git a/doc/mime.html b/doc/mime.html +index ae136fd..8cb3507 100644 +--- a/doc/mime.html ++++ b/doc/mime.html +@@ -72,34 +72,6 @@ local mime = require("mime") + + <h3 id=high>High-level filters</h3> + +-<!-- normalize ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +- +-<p class=name id="normalize"> +-mime.<b>normalize(</b>[marker]<b>)</b> +-</p> +- +-<p class=description> +-Converts most common end-of-line markers to a specific given marker. +-</p> +- +-<p class=parameters> +-<tt>Marker</tt> is the new marker. It defaults to CRLF, the canonic +-end-of-line marker defined by the MIME standard. +-</p> +- +-<p class=return> +-The function returns a filter that performs the conversion. +-</p> +- +-<p class=note> +-Note: There is no perfect solution to this problem. Different end-of-line +-markers are an evil that will probably plague developers forever. +-This function, however, will work perfectly for text created with any of +-the most common end-of-line markers, i.e. the Mac OS (CR), the Unix (LF), +-or the DOS (CRLF) conventions. Even if the data has mixed end-of-line +-markers, the function will still work well, although it doesn't +-guarantee that the number of empty lines will be correct. +-</p> + + <!-- decode +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +@@ -159,6 +131,35 @@ base64 = ltn12.filter.chain( + ) + </pre> + ++<!-- normalize ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class=name id="normalize"> ++mime.<b>normalize(</b>[marker]<b>)</b> ++</p> ++ ++<p class=description> ++Converts most common end-of-line markers to a specific given marker. ++</p> ++ ++<p class=parameters> ++<tt>Marker</tt> is the new marker. It defaults to CRLF, the canonic ++end-of-line marker defined by the MIME standard. ++</p> ++ ++<p class=return> ++The function returns a filter that performs the conversion. ++</p> ++ ++<p class=note> ++Note: There is no perfect solution to this problem. Different end-of-line ++markers are an evil that will probably plague developers forever. ++This function, however, will work perfectly for text created with any of ++the most common end-of-line markers, i.e. the Mac OS (CR), the Unix (LF), ++or the DOS (CRLF) conventions. Even if the data has mixed end-of-line ++markers, the function will still work well, although it doesn't ++guarantee that the number of empty lines will be correct. ++</p> ++ + <!-- stuff +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <p class=name id="stuff"> +@@ -466,7 +467,7 @@ marker. + <p> + <small> + Last modified by Diego Nehab on <br> +-Thu Apr 20 00:25:44 EDT 2006 ++Fri Mar 4 15:19:17 BRT 2016 + </small> + </p> + </center> +diff --git a/doc/reference.css b/doc/reference.css +index b1dd25d..04e38cf 100644 +--- a/doc/reference.css ++++ b/doc/reference.css +@@ -2,6 +2,7 @@ body { + margin-left: 1em; + margin-right: 1em; + font-family: "Verdana", sans-serif; ++ background: #ffffff; + } + + tt { +diff --git a/doc/reference.html b/doc/reference.html +index e9bb5eb..287dc19 100644 +--- a/doc/reference.html ++++ b/doc/reference.html +@@ -147,6 +147,7 @@ Support, Manual"> + <a href="socket.html#connect">connect</a>, + <a href="socket.html#connect">connect4</a>, + <a href="socket.html#connect">connect6</a>, ++<a href="socket.html#datagramsize">_DATAGRAMSIZE</a>, + <a href="socket.html#debug">_DEBUG</a>, + <a href="dns.html#dns">dns</a>, + <a href="socket.html#gettime">gettime</a>, +@@ -158,11 +159,14 @@ Support, Manual"> + <a href="socket.html#skip">skip</a>, + <a href="socket.html#sleep">sleep</a>, + <a href="socket.html#setsize">_SETSIZE</a>, ++<a href="socket.html#socketinvalid">_SOCKETINVALID</a>, + <a href="socket.html#source">source</a>, + <a href="tcp.html#socket.tcp">tcp</a>, ++<a href="tcp.html#socket.tcp4">tcp4</a>, + <a href="tcp.html#socket.tcp6">tcp6</a>, + <a href="socket.html#try">try</a>, + <a href="udp.html#socket.udp">udp</a>, ++<a href="udp.html#socket.udp4">udp4</a>, + <a href="udp.html#socket.udp6">udp6</a>, + <a href="socket.html#version">_VERSION</a>. + </blockquote> +@@ -183,6 +187,7 @@ Support, Manual"> + <a href="tcp.html#getpeername">getpeername</a>, + <a href="tcp.html#getsockname">getsockname</a>, + <a href="tcp.html#getstats">getstats</a>, ++<a href="tcp.html#gettimeout">gettimeout</a>, + <a href="tcp.html#listen">listen</a>, + <a href="tcp.html#receive">receive</a>, + <a href="tcp.html#send">send</a>, +@@ -203,6 +208,7 @@ Support, Manual"> + <a href="udp.html#getoption">getoption</a>, + <a href="udp.html#getpeername">getpeername</a>, + <a href="udp.html#getsockname">getsockname</a>, ++<a href="udp.html#gettimeout">gettimeout</a>, + <a href="udp.html#receive">receive</a>, + <a href="udp.html#receivefrom">receivefrom</a>, + <a href="udp.html#send">send</a>, +diff --git a/doc/smtp.html b/doc/smtp.html +index bbbff80..600ec37 100644 +--- a/doc/smtp.html ++++ b/doc/smtp.html +@@ -114,6 +114,124 @@ the SMTP module: + <li> <tt>ZONE</tt>: default time zone. + </ul> + ++<!-- message ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class=name id=message> ++smtp.<b>message(</b>mesgt<b>)</b> ++</p> ++ ++<p class=description> ++Returns a <em>simple</em> ++<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a> source that sends an SMTP message body, possibly multipart (arbitrarily deep). ++</p> ++ ++<p class=parameters> ++The only parameter of the function is a table describing the message. ++<tt>Mesgt</tt> has the following form (notice the recursive structure): ++</p> ++ ++<blockquote> ++<table summary="Mesgt table structure"> ++<tr><td><tt> ++mesgt = {<br> ++ headers = <i>header-table</i>,<br> ++ body = <i>LTN12 source</i> or <i>string</i> or ++<i>multipart-mesgt</i><br> ++}<br> ++ <br> ++multipart-mesgt = {<br> ++ [preamble = <i>string</i>,]<br> ++ [1] = <i>mesgt</i>,<br> ++ [2] = <i>mesgt</i>,<br> ++ ...<br> ++ [<i>n</i>] = <i>mesgt</i>,<br> ++ [epilogue = <i>string</i>,]<br> ++}<br> ++</tt></td></tr> ++</table> ++</blockquote> ++ ++<p class=parameters> ++For a simple message, all that is needed is a set of <tt>headers</tt> ++and the <tt>body</tt>. The message <tt>body</tt> can be given as a string ++or as a <em>simple</em> ++<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a> ++source. For multipart messages, the body is a table that ++recursively defines each part as an independent message, plus an optional ++<tt>preamble</tt> and <tt>epilogue</tt>. ++</p> ++ ++<p class=return> ++The function returns a <em>simple</em> ++<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a> ++source that produces the ++message contents as defined by <tt>mesgt</tt>, chunk by chunk. ++Hopefully, the following ++example will make things clear. When in doubt, refer to the appropriate RFC ++as listed in the introduction. </p> ++ ++<pre class=example> ++-- load the smtp support and its friends ++local smtp = require("socket.smtp") ++local mime = require("mime") ++local ltn12 = require("ltn12") ++ ++-- creates a source to send a message with two parts. The first part is ++-- plain text, the second part is a PNG image, encoded as base64. ++source = smtp.message{ ++ headers = { ++ -- Remember that headers are *ignored* by smtp.send. ++ from = "Sicrano de Oliveira <sicrano@example.com>", ++ to = "Fulano da Silva <fulano@example.com>", ++ subject = "Here is a message with attachments" ++ }, ++ body = { ++ preamble = "If your client doesn't understand attachments, \r\n" .. ++ "it will still display the preamble and the epilogue.\r\n" .. ++ "Preamble will probably appear even in a MIME enabled client.", ++ -- first part: no headers means plain text, us-ascii. ++ -- The mime.eol low-level filter normalizes end-of-line markers. ++ [1] = { ++ body = mime.eol(0, [[ ++ Lines in a message body should always end with CRLF. ++ The smtp module will *NOT* perform translation. However, the ++ send function *DOES* perform SMTP stuffing, whereas the message ++ function does *NOT*. ++ ]]) ++ }, ++ -- second part: headers describe content to be a png image, ++ -- sent under the base64 transfer content encoding. ++ -- notice that nothing happens until the message is actually sent. ++ -- small chunks are loaded into memory right before transmission and ++ -- translation happens on the fly. ++ [2] = { ++ headers = { ++ ["content-type"] = 'image/png; name="image.png"', ++ ["content-disposition"] = 'attachment; filename="image.png"', ++ ["content-description"] = 'a beautiful image', ++ ["content-transfer-encoding"] = "BASE64" ++ }, ++ body = ltn12.source.chain( ++ ltn12.source.file(io.open("image.png", "rb")), ++ ltn12.filter.chain( ++ mime.encode("base64"), ++ mime.wrap() ++ ) ++ ) ++ }, ++ epilogue = "This might also show up, but after the attachments" ++ } ++} ++ ++-- finally send it ++r, e = smtp.send{ ++ from = "<sicrano@example.com>", ++ rcpt = "<fulano@example.com>", ++ source = source, ++} ++</pre> ++ ++ + <!-- send +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <p class=name id=send> +@@ -275,123 +393,6 @@ r, e = smtp.send{ + } + </pre> + +-<!-- message ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +- +-<p class=name id=message> +-smtp.<b>message(</b>mesgt<b>)</b> +-</p> +- +-<p class=description> +-Returns a <em>simple</em> +-<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a> source that sends an SMTP message body, possibly multipart (arbitrarily deep). +-</p> +- +-<p class=parameters> +-The only parameter of the function is a table describing the message. +-<tt>Mesgt</tt> has the following form (notice the recursive structure): +-</p> +- +-<blockquote> +-<table summary="Mesgt table structure"> +-<tr><td><tt> +-mesgt = {<br> +- headers = <i>header-table</i>,<br> +- body = <i>LTN12 source</i> or <i>string</i> or +-<i>multipart-mesgt</i><br> +-}<br> +- <br> +-multipart-mesgt = {<br> +- [preamble = <i>string</i>,]<br> +- [1] = <i>mesgt</i>,<br> +- [2] = <i>mesgt</i>,<br> +- ...<br> +- [<i>n</i>] = <i>mesgt</i>,<br> +- [epilogue = <i>string</i>,]<br> +-}<br> +-</tt></td></tr> +-</table> +-</blockquote> +- +-<p class=parameters> +-For a simple message, all that is needed is a set of <tt>headers</tt> +-and the <tt>body</tt>. The message <tt>body</tt> can be given as a string +-or as a <em>simple</em> +-<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a> +-source. For multipart messages, the body is a table that +-recursively defines each part as an independent message, plus an optional +-<tt>preamble</tt> and <tt>epilogue</tt>. +-</p> +- +-<p class=return> +-The function returns a <em>simple</em> +-<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a> +-source that produces the +-message contents as defined by <tt>mesgt</tt>, chunk by chunk. +-Hopefully, the following +-example will make things clear. When in doubt, refer to the appropriate RFC +-as listed in the introduction. </p> +- +-<pre class=example> +--- load the smtp support and its friends +-local smtp = require("socket.smtp") +-local mime = require("mime") +-local ltn12 = require("ltn12") +- +--- creates a source to send a message with two parts. The first part is +--- plain text, the second part is a PNG image, encoded as base64. +-source = smtp.message{ +- headers = { +- -- Remember that headers are *ignored* by smtp.send. +- from = "Sicrano de Oliveira <sicrano@example.com>", +- to = "Fulano da Silva <fulano@example.com>", +- subject = "Here is a message with attachments" +- }, +- body = { +- preamble = "If your client doesn't understand attachments, \r\n" .. +- "it will still display the preamble and the epilogue.\r\n" .. +- "Preamble will probably appear even in a MIME enabled client.", +- -- first part: no headers means plain text, us-ascii. +- -- The mime.eol low-level filter normalizes end-of-line markers. +- [1] = { +- body = mime.eol(0, [[ +- Lines in a message body should always end with CRLF. +- The smtp module will *NOT* perform translation. However, the +- send function *DOES* perform SMTP stuffing, whereas the message +- function does *NOT*. +- ]]) +- }, +- -- second part: headers describe content to be a png image, +- -- sent under the base64 transfer content encoding. +- -- notice that nothing happens until the message is actually sent. +- -- small chunks are loaded into memory right before transmission and +- -- translation happens on the fly. +- [2] = { +- headers = { +- ["content-type"] = 'image/png; name="image.png"', +- ["content-disposition"] = 'attachment; filename="image.png"', +- ["content-description"] = 'a beautiful image', +- ["content-transfer-encoding"] = "BASE64" +- }, +- body = ltn12.source.chain( +- ltn12.source.file(io.open("image.png", "rb")), +- ltn12.filter.chain( +- mime.encode("base64"), +- mime.wrap() +- ) +- ) +- }, +- epilogue = "This might also show up, but after the attachments" +- } +-} +- +--- finally send it +-r, e = smtp.send{ +- from = "<sicrano@example.com>", +- rcpt = "<fulano@example.com>", +- source = source, +-} +-</pre> +- + <!-- footer +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <div class=footer> +diff --git a/doc/socket.html b/doc/socket.html +index b9303cb..35f8391 100644 +--- a/doc/socket.html ++++ b/doc/socket.html +@@ -51,6 +51,30 @@ To obtain the <tt>socket</tt> namespace, run: + local socket = require("socket") + </pre> + ++<!-- headers.canonic ++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class=name id="headers.canonic"> ++socket.headers.<b>canonic</b></p> ++ ++<p> The <tt>socket.headers.canonic</tt> table ++is used by the HTTP and SMTP modules to translate from ++lowercase field names back into their canonic ++capitalization. When a lowercase field name exists as a key ++in this table, the associated value is substituted in ++whenever the field name is sent out. ++</p> ++ ++<p> ++You can obtain the <tt>headers</tt> namespace if case run-time ++modifications are required by running: ++</p> ++ ++<pre class=example> ++-- loads the headers module ++local headers = require("headers") ++</pre> ++ ++ + <!-- bind ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <p class=name id=bind> +@@ -90,7 +114,7 @@ of connect are defined as simple helper functions that restrict the + + <!-- debug ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +-<p class=name id=debug> ++<p class=name id=debug> + socket.<b>_DEBUG</b> + </p> + +@@ -99,6 +123,19 @@ This constant is set to <tt><b>true</b></tt> if the library was compiled + with debug support. + </p> + ++<!-- datagramsize +++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class=name id=debug> ++socket.<b>_DATAGRAMSIZE</b> ++</p> ++ ++<p class=description> ++Default datagram size used by calls to ++<a href="udp.html#receive"<tt>receive</tt></a> and ++<a href="udp.html#receivefrom"><tt>receivefrom</tt></a>. ++(Unless changed in compile time, the value is 8192.) ++</p> ++ + <!-- get time +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <p class=name id=gettime> +@@ -106,8 +143,7 @@ socket.<b>gettime()</b> + </p> + + <p class=description> +-Returns the time in seconds, relative to the origin of the +-universe. You should subtract the values returned by this function ++Returns the UNIX time in seconds. You should subtract the values returned by this function + to get meaningful values. + </p> + +@@ -117,29 +153,6 @@ t = socket.gettime() + print(socket.gettime() - t .. " seconds elapsed") + </pre> + +-<!-- socket.headers ++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +- +-<p class=name id="headers.canonic"> +-socket.headers.<b>canonic</b></p> +- +-<p> The <tt>socket.headers.canonic</tt> table +-is used by the HTTP and SMTP modules to translate from +-lowercase field names back into their canonic +-capitalization. When a lowercase field name exists as a key +-in this table, the associated value is substituted in +-whenever the field name is sent out. +-</p> +- +-<p> +-You can obtain the <tt>headers</tt> namespace if case run-time +-modifications are required by running: +-</p> +- +-<pre class=example> +--- loads the headers module +-local headers = require("headers") +-</pre> +- + <!-- newtry +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <p class=name id=newtry> +@@ -155,8 +168,7 @@ is raised. + + <p class=parameters> + <tt>Finalizer</tt> is a function that will be called before +-<tt>try</tt> throws the exception. It will be called +-in <em>protected</em> mode. ++<tt>try</tt> throws the exception. + </p> + + <p class=return> +@@ -204,15 +216,9 @@ to throw exceptions. + </p> + + <p class=return> +-Returns an equivalent function that instead of throwing exceptions, +-returns <tt><b>nil</b></tt> followed by an error message. +-</p> +- +-<p class=note> +-Note: Beware that if your function performs some illegal operation that +-raises an error, the protected function will catch the error and return it +-as a string. This is because the <a href=#try><tt>try</tt></a> function +-uses errors as the mechanism to throw exceptions. ++Returns an equivalent function that instead of throwing exceptions in case of ++a failed <a href=#try><tt>try</tt></a> call, returns <tt><b>nil</b></tt> ++followed by an error message. + </p> + + <!-- select +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +@@ -238,7 +244,9 @@ non-numeric indices) in the arrays will be silently ignored. + + <p class=return> The function returns a list with the sockets ready for + reading, a list with the sockets ready for writing and an error message. +-The error message is "<tt>timeout</tt>" if a timeout condition was met and ++The error message is "<tt>timeout</tt>" if a timeout ++condition was met, "<tt>select failed</tt>" if the call ++to <tt>select</tt> failed, and + <tt><b>nil</b></tt> otherwise. The returned tables are + doubly keyed both by integers and also by the sockets + themselves, to simplify the test if a specific socket has +@@ -246,7 +254,7 @@ changed status. + </p> + + <p class=note> +-<b>Note: </b>: <tt>select</tt> can monitor a limited number ++<b>Note:</b> <tt>select</tt> can monitor a limited number + of sockets, as defined by the constant <tt>socket._SETSIZE</tt>. This + number may be as high as 1024 or as low as 64 by default, + depending on the system. It is usually possible to change this +@@ -276,6 +284,18 @@ it to <tt>select</tt>, it will be ignored. + <b>Using select with non-socket objects</b>: Any object that implements <tt>getfd</tt> and <tt>dirty</tt> can be used with <tt>select</tt>, allowing objects from other libraries to be used within a <tt>socket.select</tt> driven loop. + </p> + ++<!-- setsize ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class=name id=setsize> ++socket.<b>_SETSIZE</b> ++</p> ++ ++<p class=description> ++The maximum number of sockets that the <a ++href=#select><tt>select</tt></a> function can handle. ++</p> ++ ++ + <!-- sink ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <p class=name id=sink> +@@ -383,15 +403,14 @@ side closes the connection. + The function returns a source with the appropriate behavior. + </p> + +-<!-- setsize ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++<!-- socketinvalid ++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +-<p class=name id=setsize> +-socket.<b>_SETSIZE</b> ++<p class=name id=socketinvalid> ++socket.<b>_SOCKETINVALID</b> + </p> + + <p class=description> +-The maximum number of sockets that the <a +-href=#select><tt>select</tt></a> function can handle. ++The OS value for an invalid socket. + </p> + + <!-- try ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +@@ -401,9 +420,9 @@ socket.<b>try(</b>ret<sub>1</sub> [, ret<sub>2</sub> ... ret<sub>N</sub>]<b>)</b + </p> + + <p class=description> +-Throws an exception in case of error. The exception can only be caught +-by the <a href=#protect><tt>protect</tt></a> function. It does not explode +-into an error message. ++Throws an exception in case <tt>ret<sub>1</sub></tt> is falsy, using ++<tt>ret<sub>2</sub></tt> as the error message. The exception is supposed to be caught ++by a <a href=#protect><tt>protect</tt></a>ed function only. + </p> + + <p class=parameters> +@@ -414,7 +433,10 @@ nested with <tt>try</tt>. + + <p class=return> + The function returns <tt>ret</tt><sub>1</sub> to <tt>ret</tt><sub>N</sub> if +-<tt>ret</tt><sub>1</sub> is not <tt><b>nil</b></tt>. Otherwise, it calls <tt>error</tt> passing <tt>ret</tt><sub>2</sub>. ++<tt>ret</tt><sub>1</sub> is not <tt><b>nil</b></tt> or <tt><b>false</b></tt>. ++Otherwise, it calls <tt>error</tt> passing <tt>ret</tt><sub>2</sub> wrapped ++in a table with metatable used by <a href=#protect><tt>protect</tt></a> to ++distinguish exceptions from runtime errors. + </p> + + <pre class=example> +diff --git a/doc/tcp.html b/doc/tcp.html +index 4226d78..c6c6eb2 100644 +--- a/doc/tcp.html ++++ b/doc/tcp.html +@@ -1,10 +1,10 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" ++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd"> + <html> + + <head> + <meta name="description" content="LuaSocket: The TCP/IP support"> +-<meta name="keywords" content="Lua, LuaSocket, Socket, TCP, Library, Network, Support"> ++<meta name="keywords" content="Lua, LuaSocket, Socket, TCP, Library, Network, Support"> + <title>LuaSocket: TCP/IP support</title> + <link rel="stylesheet" href="reference.css" type="text/css"> + </head> +@@ -28,7 +28,7 @@ + <a href="index.html#download">download</a> · + <a href="installation.html">installation</a> · + <a href="introduction.html">introduction</a> · +-<a href="reference.html">reference</a> ++<a href="reference.html">reference</a> + </p> + </center> + <hr> +@@ -36,56 +36,11 @@ + + <!-- tcp ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +-<h2 id="tcp">TCP</h2> +- +-<!-- socket.tcp +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +- +-<p class=name id="socket.tcp"> +-socket.<b>tcp()</b> +-</p> +- +-<p class=description> +-Creates and returns an IPv4 TCP master object. A master object can +-be transformed into a server object with the method +-<a href=#listen><tt>listen</tt></a> (after a call to <a +-href=#bind><tt>bind</tt></a>) or into a client object with +-the method <a href=#connect><tt>connect</tt></a>. The only other +-method supported by a master object is the +-<a href=#close><tt>close</tt></a> method.</p> +- +-<p class=return> +-In case of success, a new master object is returned. In case of error, +-<b><tt>nil</tt></b> is returned, followed by an error message. +-</p> +- +-<!-- socket.tcp6 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +- +-<p class=name id="socket.tcp6"> +-socket.<b>tcp6()</b> +-</p> +- +-<p class=description> +-Creates and returns an IPv6 TCP master object. A master object can +-be transformed into a server object with the method +-<a href=#listen><tt>listen</tt></a> (after a call to <a +-href=#bind><tt>bind</tt></a>) or into a client object with +-the method <a href=#connect><tt>connect</tt></a>. The only other +-method supported by a master object is the +-<a href=#close><tt>close</tt></a> method.</p> +- +-<p class=return> +-In case of success, a new master object is returned. In case of error, +-<b><tt>nil</tt></b> is returned, followed by an error message. +-</p> +- +-<p class=note> +-Note: The TCP object returned will have the option +-"<tt>ipv6-v6only</tt>" set to <tt><b>true</b></tt>. +-</p> ++<h2 id="tcp">TCP</h2> + + <!-- accept +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +-<p class=name id="accept"> ++<p class=name id="accept"> + server:<b>accept()</b> + </p> + +@@ -95,9 +50,9 @@ object and returns a client object representing that connection. + </p> + + <p class=return> +-If a connection is successfully initiated, a client object is returned. ++If a connection is successfully initiated, a client object is returned. + If a timeout condition is met, the method returns <b><tt>nil</tt></b> +-followed by the error string '<tt>timeout</tt>'. Other errors are ++followed by the error string '<tt>timeout</tt>'. Other errors are + reported by <b><tt>nil</tt></b> followed by a message describing the error. + </p> + +@@ -107,28 +62,28 @@ with a server object in + the <tt>recvt</tt> parameter before a call to <tt>accept</tt> does + <em>not</em> guarantee <tt>accept</tt> will return immediately. Use the <a + href=#settimeout><tt>settimeout</tt></a> method or <tt>accept</tt> +-might block until <em>another</em> client shows up. ++might block until <em>another</em> client shows up. + </p> + + <!-- bind +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +-<p class=name id="bind"> ++<p class=name id="bind"> + master:<b>bind(</b>address, port<b>)</b> + </p> + + <p class=description> + Binds a master object to <tt>address</tt> and <tt>port</tt> on the +-local host. ++local host. + + <p class=parameters> +-<tt>Address</tt> can be an IP address or a host name. +-<tt>Port</tt> must be an integer number in the range [0..64K). ++<tt>Address</tt> can be an IP address or a host name. ++<tt>Port</tt> must be an integer number in the range [0..64K). + If <tt>address</tt> + is '<tt>*</tt>', the system binds to all local interfaces + using the <tt>INADDR_ANY</tt> constant or +-<tt>IN6ADDR_ANY_INIT</tt>, according to the family. ++<tt>IN6ADDR_ANY_INIT</tt>, according to the family. + If <tt>port</tt> is 0, the system automatically +-chooses an ephemeral port. ++chooses an ephemeral port. + </p> + + <p class=return> +@@ -137,13 +92,13 @@ method returns <b><tt>nil</tt></b> followed by an error message. + </p> + + <p class=note> +-Note: The function <a href=socket.html#bind><tt>socket.bind</tt></a> ++Note: The function <a href=socket.html#bind><tt>socket.bind</tt></a> + is available and is a shortcut for the creation of server sockets. + </p> + + <!-- close ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +-<p class=name id="close"> ++<p class=name id="close"> + master:<b>close()</b><br> + client:<b>close()</b><br> + server:<b>close()</b> +@@ -154,14 +109,14 @@ Closes a TCP object. The internal socket used by the object is closed + and the local address to which the object was + bound is made available to other applications. No further operations + (except for further calls to the <tt>close</tt> method) are allowed on +-a closed socket. ++a closed socket. + </p> + + <p class=note> + Note: It is important to close all used sockets once they are not + needed, since, in many systems, each socket uses a file descriptor, + which are limited system resources. Garbage-collected objects are +-automatically closed before destruction, though. ++automatically closed before destruction, though. + </p> + + <!-- connect ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +@@ -172,19 +127,19 @@ master:<b>connect(</b>address, port<b>)</b> + + <p class=description> + Attempts to connect a master object to a remote host, transforming it into a +-client object. +-Client objects support methods ++client object. ++Client objects support methods + <a href=#send><tt>send</tt></a>, +-<a href=#receive><tt>receive</tt></a>, +-<a href=#getsockname><tt>getsockname</tt></a>, ++<a href=#receive><tt>receive</tt></a>, ++<a href=#getsockname><tt>getsockname</tt></a>, + <a href=#getpeername><tt>getpeername</tt></a>, +-<a href=#settimeout><tt>settimeout</tt></a>, ++<a href=#settimeout><tt>settimeout</tt></a>, + and <a href=#close><tt>close</tt></a>. + </p> + + <p class=parameters> +-<tt>Address</tt> can be an IP address or a host name. +-<tt>Port</tt> must be an integer number in the range [1..64K). ++<tt>Address</tt> can be an IP address or a host name. ++<tt>Port</tt> must be an integer number in the range [1..64K). + </p> + + <p class=return> +@@ -193,14 +148,14 @@ describing the error. In case of success, the method returns 1. + </p> + + <p class=note> +-Note: The function <a href=socket.html#connect><tt>socket.connect</tt></a> ++Note: The function <a href=socket.html#connect><tt>socket.connect</tt></a> + is available and is a shortcut for the creation of client sockets. + </p> + + <p class=note> +-Note: Starting with LuaSocket 2.0, ++Note: Starting with LuaSocket 2.0, + the <a href=#settimeout><tt>settimeout</tt></a> +-method affects the behavior of <tt>connect</tt>, causing it to return ++method affects the behavior of <tt>connect</tt>, causing it to return + with an error in case of a timeout. If that happens, you can still call <a + href=socket.html#select><tt>socket.select</tt></a> with the socket in the + <tt>sendt</tt> table. The socket will be writable when the connection is +@@ -209,13 +164,88 @@ established. + + <p class=note> + Note: Starting with LuaSocket 3.0, the host name resolution +-depends on whether the socket was created by <a +-href=#socket.tcp><tt>socket.tcp</tt></a> or <a +-href=#socket.tcp6><tt>socket.tcp6</tt></a>. Addresses from +-the appropriate family are tried in succession until the +-first success or until the last failure. ++depends on whether the socket was created by ++<a href=#socket.tcp><tt>socket.tcp</tt></a>, ++<a href=#socket.tcp4><tt>socket.tcp4</tt></a> or ++<a href=#socket.tcp6><tt>socket.tcp6</tt></a>. Addresses from ++the appropriate family (or both) are tried in the order ++returned by the resolver until the ++first success or until the last failure. If the timeout was ++set to zero, only the first address is tried. ++</p> ++ ++<!-- dirty +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class=name id="dirty"> ++master:<b>dirty()</b><br> ++client:<b>dirty()</b><br> ++server:<b>dirty()</b> ++</p> ++ ++<p class=description> ++Check the read buffer status. ++</p> ++ ++<p class=return> ++Returns <tt>true</tt> if there is any data in the read buffer, <tt>false</tt> otherwise. ++</p> ++ ++<p class=note> ++Note: <b>This is an internal method, use at your own risk.</b> ++</p> ++ ++ ++<!-- getfd +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class=name id="getfd"> ++master:<b>getfd()</b><br> ++client:<b>getfd()</b><br> ++server:<b>getfd()</b> ++</p> ++ ++<p class=description> ++Returns the underling socket descriptor or handle associated to the object. ++</p> ++ ++<p class=return> ++The descriptor or handle. In case the object has been closed, the return will be -1. ++</p> ++ ++<p class=note> ++Note: <b>This is an internal method. Unlikely to be ++portable. Use at your own risk. </b> ++</p> ++ ++ ++<!-- getoption ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class=name id="getoption"> ++client:<b>getoption(</b>option)</b><br> ++server:<b>getoption(</b>option)</b> ++</p> ++ ++<p class=description> ++Gets options for the TCP object. ++See <a href=#setoption><tt>setoption</tt></a> for description of the ++option names and values. ++</p> ++ ++<p class=parameters> ++<tt>Option</tt> is a string with the option name. ++<ul> ++ ++<li> '<tt>keepalive</tt>' ++<li> '<tt>linger</tt>' ++<li> '<tt>reuseaddr</tt>' ++<li> '<tt>tcp-nodelay</tt>' ++</ul> ++ ++<p class=return> ++The method returns the option <tt>value</tt> in case of success, or ++<b><tt>nil</tt></b> followed by an error message otherwise. + </p> + ++ + <!-- getpeername ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <p class=name id="getpeername"> +@@ -227,10 +257,10 @@ Returns information about the remote side of a connected client object. + </p> + + <p class=return> +-Returns a string with the IP address of the peer, the +-port number that peer is using for the connection, +-and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>"). +-In case of error, the method returns <b><tt>nil</tt></b>. ++Returns a string with the IP address of the peer, the ++port number that peer is using for the connection, ++and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>"). ++In case of error, the method returns <b><tt>nil</tt></b>. + </p> + + <p class=note> +@@ -246,13 +276,13 @@ server:<b>getsockname()</b> + </p> + + <p class=description> +-Returns the local address information associated to the object. ++Returns the local address information associated to the object. + </p> + + <p class=return> +-The method returns a string with local IP address, a number with +-the local port, +-and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>"). ++The method returns a string with local IP address, a number with ++the local port, ++and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>"). + In case of error, the method returns <b><tt>nil</tt></b>. + </p> + +@@ -266,32 +296,46 @@ server:<b>getstats()</b><br> + + <p class=description> + Returns accounting information on the socket, useful for throttling +-of bandwidth. ++of bandwidth. + </p> + + <p class=return> + The method returns the number of bytes received, the number of bytes sent, +-and the age of the socket object in seconds. ++and the age of the socket object in seconds. + </p> + ++<!-- gettimeout +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class=name id="gettimeout"> ++master:<b>gettimeout()</b><br> ++client:<b>gettimeout()</b><br> ++server:<b>gettimeout()</b> ++</p> ++ ++<p class=description> ++Returns the current block timeout followed by the curent ++total timeout. ++</p> ++ ++ + <!-- listen ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +-<p class=name id="listen"> ++<p class=name id="listen"> + master:<b>listen(</b>backlog<b>)</b> + </p> + + <p class=description> + Specifies the socket is willing to receive connections, transforming the +-object into a server object. Server objects support the +-<a href=#accept><tt>accept</tt></a>, +-<a href=#getsockname><tt>getsockname</tt></a>, +-<a href=#setoption><tt>setoption</tt></a>, +-<a href=#settimeout><tt>settimeout</tt></a>, +-and <a href=#close><tt>close</tt></a> methods. ++object into a server object. Server objects support the ++<a href=#accept><tt>accept</tt></a>, ++<a href=#getsockname><tt>getsockname</tt></a>, ++<a href=#setoption><tt>setoption</tt></a>, ++<a href=#settimeout><tt>settimeout</tt></a>, ++and <a href=#close><tt>close</tt></a> methods. + </p> + + <p class=parameters> +-The parameter <tt>backlog</tt> specifies the number of client ++The parameter <tt>backlog</tt> specifies the number of client + connections that can + be queued waiting for service. If the queue is full and another client + attempts connection, the connection is refused. +@@ -310,11 +354,11 @@ client:<b>receive(</b>[pattern [, prefix]]<b>)</b> + + <p class=description> + Reads data from a client object, according to the specified <em>read +-pattern</em>. Patterns follow the Lua file I/O format, and the difference in performance between all patterns is negligible. ++pattern</em>. Patterns follow the Lua file I/O format, and the difference in performance between all patterns is negligible. + </p> + + <p class=parameters> +-<tt>Pattern</tt> can be any of the following: ++<tt>Pattern</tt> can be any of the following: + </p> + + <ul> +@@ -325,7 +369,7 @@ terminated by a LF character (ASCII 10), optionally preceded by a + CR character (ASCII 13). The CR and LF characters are not included in + the returned line. In fact, <em>all</em> CR characters are + ignored by the pattern. This is the default pattern; +-<li> <tt>number</tt>: causes the method to read a specified <tt>number</tt> ++<li> <tt>number</tt>: causes the method to read a specified <tt>number</tt> + of bytes from the socket. + </ul> + +@@ -347,10 +391,10 @@ closed before the transmission was completed or the string + <p class=note> + <b>Important note</b>: This function was changed <em>severely</em>. It used + to support multiple patterns (but I have never seen this feature used) and +-now it doesn't anymore. Partial results used to be returned in the same ++now it doesn't anymore. Partial results used to be returned in the same + way as successful results. This last feature violated the idea that all + functions should return <tt><b>nil</b></tt> on error. Thus it was changed +-too. ++too. + </p> + + <!-- send +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +@@ -366,7 +410,7 @@ Sends <tt>data</tt> through client object. + <p class=parameters> + <tt>Data</tt> is the string to be sent. The optional arguments + <tt>i</tt> and <tt>j</tt> work exactly like the standard +-<tt>string.sub</tt> Lua function to allow the selection of a ++<tt>string.sub</tt> Lua function to allow the selection of a + substring to be sent. + </p> + +@@ -385,10 +429,10 @@ there was a timeout during the operation. + </p> + + <p class=note> +-Note: Output is <em>not</em> buffered. For small strings, +-it is always better to concatenate them in Lua +-(with the '<tt>..</tt>' operator) and send the result in one call +-instead of calling the method several times. ++Note: Output is <em>not</em> buffered. For small strings, ++it is always better to concatenate them in Lua ++(with the '<tt>..</tt>' operator) and send the result in one call ++instead of calling the method several times. + </p> + + <!-- setoption ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +@@ -400,12 +444,12 @@ server:<b>setoption(</b>option [, value]<b>)</b> + + <p class=description> + Sets options for the TCP object. Options are only needed by low-level or +-time-critical applications. You should only modify an option if you +-are sure you need it. ++time-critical applications. You should only modify an option if you ++are sure you need it. + </p> + + <p class=parameters> +-<tt>Option</tt> is a string with the option name, and <tt>value</tt> ++<tt>Option</tt> is a string with the option name, and <tt>value</tt> + depends on the option being set: + + <ul> +@@ -413,7 +457,7 @@ depends on the option being set: + <li> '<tt>keepalive</tt>': Setting this option to <tt>true</tt> enables + the periodic transmission of messages on a connected socket. Should the + connected party fail to respond to these messages, the connection is +-considered broken and processes using the socket are notified; ++considered broken and processes using the socket are notified; + + <li> '<tt>linger</tt>': Controls the action taken when unsent data are + queued on a socket and a close is performed. The value is a table with a +@@ -424,13 +468,13 @@ it is able to transmit the data or until '<tt>timeout</tt>' has passed. If + '<tt>on</tt>' is <tt>false</tt> and a close is issued, the system will + process the close in a manner that allows the process to continue as + quickly as possible. I do not advise you to set this to anything other than +-zero; ++zero; + + <li> '<tt>reuseaddr</tt>': Setting this option indicates that the rules +-used in validating addresses supplied in a call to ++used in validating addresses supplied in a call to + <a href=#bind><tt>bind</tt></a> should allow reuse of local addresses; + +-<li> '<tt>tcp-nodelay</tt>': Setting this option to <tt>true</tt> ++<li> '<tt>tcp-nodelay</tt>': Setting this option to <tt>true</tt> + disables the Nagle's algorithm for the connection; + + <li> '<tt>ipv6-v6only</tt>': +@@ -447,34 +491,6 @@ followed by an error message otherwise. + Note: The descriptions above come from the man pages. + </p> + +-<!-- getoption ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +- +-<p class=name id="getoption"> +-client:<b>getoption(</b>option)</b><br> +-server:<b>getoption(</b>option)</b> +-</p> +- +-<p class=description> +-Gets options for the TCP object. +-See <a href=#setoption><tt>setoption</tt></a> for description of the +-option names and values. +-</p> +- +-<p class=parameters> +-<tt>Option</tt> is a string with the option name. +-<ul> +- +-<li> '<tt>keepalive</tt>' +-<li> '<tt>linger</tt>' +-<li> '<tt>reuseaddr</tt>' +-<li> '<tt>tcp-nodelay</tt>' +-</ul> +- +-<p class=return> +-The method returns the option <tt>value</tt> in case of success, or +-<b><tt>nil</tt></b> followed by an error message otherwise. +-</p> +- + <!-- setstats +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <p class=name id="setstats"> +@@ -485,7 +501,7 @@ server:<b>setstats(</b>received, sent, age<b>)</b><br> + + <p class=description> + Resets accounting information on the socket, useful for throttling +-of bandwidth. ++of bandwidth. + </p> + + <p class=parameters> +@@ -495,7 +511,7 @@ of bandwidth. + </p> + + <p class=return> +-The method returns 1 in case of success and <tt><b>nil</b></tt> otherwise. ++The method returns 1 in case of success and <tt><b>nil</b></tt> otherwise. + </p> + + <!-- settimeout +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +@@ -509,8 +525,8 @@ server:<b>settimeout(</b>value [, mode]<b>)</b> + <p class=description> + Changes the timeout values for the object. By default, + all I/O operations are blocking. That is, any call to the methods +-<a href=#send><tt>send</tt></a>, +-<a href=#receive><tt>receive</tt></a>, and ++<a href=#send><tt>send</tt></a>, ++<a href=#receive><tt>receive</tt></a>, and + <a href=#accept><tt>accept</tt></a> + will block indefinitely, until the operation completes. The + <tt>settimeout</tt> method defines a limit on the amount of time the +@@ -521,7 +537,7 @@ time has elapsed, the affected methods give up and fail with an error code. + <p class=parameters> + The amount of time to wait is specified as the + <tt>value</tt> parameter, in seconds. There are two timeout modes and +-both can be used together for fine tuning: ++both can be used together for fine tuning: + </p> + + <ul> +@@ -532,7 +548,7 @@ default mode;</li> + + <li> '<tt>t</tt>': <em>total</em> timeout. Specifies the upper limit on + the amount of time LuaSocket can block a Lua script before returning from +-a call.</li> ++a call.</li> + </ul> + + <p class=parameters> +@@ -562,7 +578,7 @@ client:<b>shutdown(</b>mode<b>)</b><br> + </p> + + <p class=description> +-Shuts down part of a full-duplex connection. ++Shuts down part of a full-duplex connection. + </p> + + <p class=parameters> +@@ -579,66 +595,107 @@ This is the default mode; + This function returns 1. + </p> + +-<!-- dirty +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++<!-- setfd +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +-<p class=name id="dirty"> +-master:<b>dirty()</b><br> +-client:<b>dirty()</b><br> +-server:<b>dirty()</b> ++<p class=name id="setfd"> ++master:<b>setfd(</b>fd<b>)</b><br> ++client:<b>setfd(</b>fd<b>)</b><br> ++server:<b>setfd(</b>fd<b>)</b> + </p> + + <p class=description> +-Check the read buffer status. ++Sets the underling socket descriptor or handle associated to the object. The current one is simply replaced, not closed, and no other change to the object state is made. + </p> + + <p class=return> +-Returns <tt>true</tt> if there is any data in the read buffer, <tt>false</tt> otherwise. ++No return value. + </p> + + <p class=note> +-Note: <b>This is an internal method, any use is unlikely to be portable.</b> ++Note: <b>This is an internal method. Unlikely to be ++portable. Use at your own risk. </b> + </p> + +-<!-- getfd +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++<!-- socket.tcp +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +-<p class=name id="getfd"> +-master:<b>getfd()</b><br> +-client:<b>getfd()</b><br> +-server:<b>getfd()</b> ++<p class=name id="socket.tcp"> ++socket.<b>tcp()</b> + </p> + + <p class=description> +-Returns the underling socket descriptor or handle associated to the object. +-</p> ++Creates and returns an TCP master object. A master object can ++be transformed into a server object with the method ++<a href=#listen><tt>listen</tt></a> (after a call to <a ++href=#bind><tt>bind</tt></a>) or into a client object with ++the method <a href=#connect><tt>connect</tt></a>. The only other ++method supported by a master object is the ++<a href=#close><tt>close</tt></a> method.</p> + + <p class=return> +-The descriptor or handle. In case the object has been closed, the return will be -1. ++In case of success, a new master object is returned. In case of error, ++<b><tt>nil</tt></b> is returned, followed by an error message. + </p> + + <p class=note> +-Note: <b>This is an internal method, any use is unlikely to be portable.</b> ++Note: The choice between IPv4 and IPv6 happens during a call to ++<a href=#bind><tt>bind</tt></a> or <a ++href=#bind><tt>connect</tt></a>, depending on the address ++family obtained from the resolver. + </p> + +-<!-- setfd +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++<p class=note> ++Note: Before the choice between IPv4 and IPv6 happens, ++the internal socket object is invalid and therefore <a ++href=#setoption><tt>setoption</tt></a> will fail. ++</p> + +-<p class=name id="setfd"> +-master:<b>setfd(</b>fd<b>)</b><br> +-client:<b>setfd(</b>fd<b>)</b><br> +-server:<b>setfd(</b>fd<b>)</b> ++<!-- socket.tcp +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class=name id="socket.tcp4"> ++socket.<b>tcp4()</b> + </p> + + <p class=description> +-Sets the underling socket descriptor or handle associated to the object. The current one is simply replaced, not closed, and no other change to the object state is made. ++Creates and returns an IPv4 TCP master object. A master object can ++be transformed into a server object with the method ++<a href=#listen><tt>listen</tt></a> (after a call to <a ++href=#bind><tt>bind</tt></a>) or into a client object with ++the method <a href=#connect><tt>connect</tt></a>. The only other ++method supported by a master object is the ++<a href=#close><tt>close</tt></a> method.</p> ++ ++<p class=return> ++In case of success, a new master object is returned. In case of error, ++<b><tt>nil</tt></b> is returned, followed by an error message. ++</p> ++ ++<!-- socket.tcp6 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class=name id="socket.tcp6"> ++socket.<b>tcp6()</b> + </p> + ++<p class=description> ++Creates and returns an IPv6 TCP master object. A master object can ++be transformed into a server object with the method ++<a href=#listen><tt>listen</tt></a> (after a call to <a ++href=#bind><tt>bind</tt></a>) or into a client object with ++the method <a href=#connect><tt>connect</tt></a>. The only other ++method supported by a master object is the ++<a href=#close><tt>close</tt></a> method.</p> ++ + <p class=return> +-No return value. ++In case of success, a new master object is returned. In case of error, ++<b><tt>nil</tt></b> is returned, followed by an error message. + </p> + + <p class=note> +-Note: <b>This is an internal method, any use is unlikely to be portable.</b> ++Note: The TCP object returned will have the option ++"<tt>ipv6-v6only</tt>" set to <tt><b>true</b></tt>. + </p> + ++ ++ + <!-- footer +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <div class=footer> +diff --git a/doc/udp.html b/doc/udp.html +index e5b0ad0..4618aad 100644 +--- a/doc/udp.html ++++ b/doc/udp.html +@@ -4,7 +4,7 @@ + + <head> + <meta name="description" content="LuaSocket: The UDP support"> +-<meta name="keywords" content="Lua, LuaSocket, Socket, UDP, Library, Network, Support"> ++<meta name="keywords" content="Lua, LuaSocket, Socket, UDP, Library, Network, Support"> + <title>LuaSocket: UDP support</title> + <link rel="stylesheet" href="reference.css" type="text/css"> + </head> +@@ -28,7 +28,7 @@ + <a href="index.html#download">download</a> · + <a href="installation.html">installation</a> · + <a href="introduction.html">introduction</a> · +-<a href="reference.html">reference</a> ++<a href="reference.html">reference</a> + </p> + </center> + <hr> +@@ -37,74 +37,7 @@ + + <!-- udp ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +-<h2 id="udp">UDP</h2> +- +-<!-- socket.udp ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +- +-<p class="name" id="socket.udp"> +-socket.<b>udp()</b> +-</p> +- +-<p class="description"> +-Creates and returns an unconnected IPv4 UDP object. +-Unconnected objects support the +-<a href="#sendto"><tt>sendto</tt></a>, +-<a href="#receive"><tt>receive</tt></a>, +-<a href="#receivefrom"><tt>receivefrom</tt></a>, +-<a href="#getoption"><tt>getoption</tt></a>, +-<a href="#getsockname"><tt>getsockname</tt></a>, +-<a href="#setoption"><tt>setoption</tt></a>, +-<a href="#settimeout"><tt>settimeout</tt></a>, +-<a href="#setpeername"><tt>setpeername</tt></a>, +-<a href="#setsockname"><tt>setsockname</tt></a>, and +-<a href="#close"><tt>close</tt></a>. +-The <a href="#setpeername"><tt>setpeername</tt></a> +-is used to connect the object. +-</p> +- +-<p class="return"> +-In case of success, a new unconnected UDP object +-returned. In case of error, <b><tt>nil</tt></b> is returned, followed by +-an error message. +-</p> +- +-<!-- socket.udp ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +- +-<p class="name" id="socket.udp6"> +-socket.<b>udp6()</b> +-</p> +- +-<p class="description"> +-Creates and returns an unconnected IPv6 UDP object. +-Unconnected objects support the +-<a href="#sendto"><tt>sendto</tt></a>, +-<a href="#receive"><tt>receive</tt></a>, +-<a href="#receivefrom"><tt>receivefrom</tt></a>, +-<a href="#getoption"><tt>getoption</tt></a>, +-<a href="#getsockname"><tt>getsockname</tt></a>, +-<a href="#setoption"><tt>setoption</tt></a>, +-<a href="#settimeout"><tt>settimeout</tt></a>, +-<a href="#setpeername"><tt>setpeername</tt></a>, +-<a href="#setsockname"><tt>setsockname</tt></a>, and +-<a href="#close"><tt>close</tt></a>. +-The <a href="#setpeername"><tt>setpeername</tt></a> +-is used to connect the object. +-</p> +- +-<p class="return"> +-In case of success, a new unconnected UDP object +-returned. In case of error, <b><tt>nil</tt></b> is returned, followed by +-an error message. +-</p> +- +-<p class=note> +-Note: The TCP object returned will have the option +-"<tt>ipv6-v6only</tt>" set to <tt><b>true</b></tt>. +-</p> +- +- +- +-<!-- close +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++<h2 id="udp">UDP</h2> + + <!-- close +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + +@@ -129,6 +62,40 @@ Garbage-collected objects are automatically closed before + destruction, though. + </p> + ++<!-- getoption +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class="name" id="getoption"> ++connected:<b>getoption()</b><br> ++unconnected:<b>getoption()</b> ++</p> ++ ++<p class="description"> ++Gets an option value from the UDP object. ++See <a href=#setoption><tt>setoption</tt></a> for ++description of the option names and values. ++</p> ++ ++<p class="parameters"><tt>Option</tt> is a string with the option name. ++<ul> ++<li> '<tt>dontroute</tt>' ++<li> '<tt>broadcast</tt>' ++<li> '<tt>reuseaddr</tt>' ++<li> '<tt>reuseport</tt>' ++<li> '<tt>ip-multicast-loop</tt>' ++<li> '<tt>ipv6-v6only</tt>' ++<li> '<tt>ip-multicast-if</tt>' ++<li> '<tt>ip-multicast-ttl</tt>' ++<li> '<tt>ip-add-membership</tt>' ++<li> '<tt>ip-drop-membership</tt>' ++</ul> ++</p> ++ ++<p class=return> ++The method returns the option <tt>value</tt> in case of ++success, or ++<b><tt>nil</tt></b> followed by an error message otherwise. ++</p> ++ + <!-- getpeername +++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <p class="name" id="getpeername"> +@@ -142,10 +109,10 @@ associated with a connected UDP object. + + + <p class=return> +-Returns a string with the IP address of the peer, the +-port number that peer is using for the connection, +-and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>"). +-In case of error, the method returns <b><tt>nil</tt></b>. ++Returns a string with the IP address of the peer, the ++port number that peer is using for the connection, ++and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>"). ++In case of error, the method returns <b><tt>nil</tt></b>. + </p> + + <p class="note"> +@@ -165,9 +132,9 @@ Returns the local address information associated to the object. + + + <p class=return> +-The method returns a string with local IP address, a number with +-the local port, +-and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>"). ++The method returns a string with local IP address, a number with ++the local port, ++and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>"). + In case of error, the method returns <b><tt>nil</tt></b>. + </p> + +@@ -179,6 +146,18 @@ first time (in which case it is bound to an ephemeral port and the + wild-card address). + </p> + ++<!-- gettimeout +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class=name id="gettimeout"> ++connected:<b>settimeout(</b>value<b>)</b><br> ++unconnected:<b>settimeout(</b>value<b>)</b> ++</p> ++ ++<p class=description> ++Returns the current timeout value. ++</p> ++ ++ + <!-- receive +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <p class="name" id="receive"> +@@ -199,9 +178,12 @@ specifies the maximum size of the datagram to be retrieved. If + there are more than <tt>size</tt> bytes available in the datagram, + the excess bytes are discarded. If there are less then + <tt>size</tt> bytes available in the current datagram, the +-available bytes are returned. If <tt>size</tt> is omitted, the +-maximum datagram size is used (which is currently limited by the +-implementation to 8192 bytes). ++available bytes are returned. ++If <tt>size</tt> is omitted, the ++compile-time constant <a ++href=socket.html#datagramsize><tt>socket._DATAGRAMSIZE</tt></a> is used ++(it defaults to 8192 bytes). Larger sizes will cause a ++temporary buffer to be allocated for the operation. + </p> + + <p class="return"> +@@ -217,46 +199,12 @@ unconnected:<b>receivefrom(</b>[size]<b>)</b> + </p> + + <p class="description"> +-Works exactly as the <a href="#receive"><tt>receive</tt></a> ++Works exactly as the <a href="#receive"><tt>receive</tt></a> + method, except it returns the IP + address and port as extra return values (and is therefore slightly less + efficient). + </p> + +-<!-- getoption +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +- +-<p class="name" id="getoption"> +-connected:<b>getoption()</b><br> +-unconnected:<b>getoption()</b> +-</p> +- +-<p class="description"> +-Gets an option value from the UDP object. +-See <a href=#setoption><tt>setoption</tt></a> for +-description of the option names and values. +-</p> +- +-<p class="parameters"><tt>Option</tt> is a string with the option name. +-<ul> +-<li> '<tt>dontroute</tt>' +-<li> '<tt>broadcast</tt>' +-<li> '<tt>reuseaddr</tt>' +-<li> '<tt>reuseport</tt>' +-<li> '<tt>ip-multicast-loop</tt>' +-<li> '<tt>ipv6-v6only</tt>' +-<li> '<tt>ip-multicast-if</tt>' +-<li> '<tt>ip-multicast-ttl</tt>' +-<li> '<tt>ip-add-membership</tt>' +-<li> '<tt>ip-drop-membership</tt>' +-</ul> +-</p> +- +-<p class=return> +-The method returns the option <tt>value</tt> in case of +-success, or +-<b><tt>nil</tt></b> followed by an error message otherwise. +-</p> +- + <!-- send ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <p class="name" id="send"> +@@ -268,7 +216,7 @@ Sends a datagram to the UDP peer of a connected object. + </p> + + <p class="parameters"> +-<tt>Datagram</tt> is a string with the datagram contents. ++<tt>Datagram</tt> is a string with the datagram contents. + The maximum datagram size for UDP is 64K minus IP layer overhead. + However datagrams larger than the link layer packet size will be + fragmented, which may deteriorate performance and/or reliability. +@@ -298,11 +246,11 @@ Sends a datagram to the specified IP address and port number. + + <p class="parameters"> + <tt>Datagram</tt> is a string with the +-datagram contents. ++datagram contents. + The maximum datagram size for UDP is 64K minus IP layer overhead. + However datagrams larger than the link layer packet size will be + fragmented, which may deteriorate performance and/or reliability. +-<tt>Ip</tt> is the IP address of the recipient. ++<tt>Ip</tt> is the IP address of the recipient. + Host names are <em>not</em> allowed for performance reasons. + + <tt>Port</tt> is the port number at the recipient. +@@ -320,6 +268,75 @@ refuses to send a message to the specified address (i.e. no + interface accepts the address). + </p> + ++<!-- setoption +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class="name" id="setoption"> ++connected:<b>setoption(</b>option [, value]<b>)</b><br> ++unconnected:<b>setoption(</b>option [, value]<b>)</b> ++</p> ++ ++<p class="description"> ++Sets options for the UDP object. Options are ++only needed by low-level or time-critical applications. You should ++only modify an option if you are sure you need it.</p> ++<p class="parameters"><tt>Option</tt> is a string with the option ++name, and <tt>value</tt> depends on the option being set: ++</p> ++ ++<ul> ++<li> '<tt>dontroute</tt>': Indicates that outgoing ++messages should bypass the standard routing facilities. ++Receives a boolean value; ++<li> '<tt>broadcast</tt>': Requests permission to send ++broadcast datagrams on the socket. ++Receives a boolean value; ++<li> '<tt>reuseaddr</tt>': Indicates that the rules used in ++validating addresses supplied in a <tt>bind()</tt> call ++should allow reuse of local addresses. ++Receives a boolean value; ++<li> '<tt>reuseport</tt>': Allows completely duplicate ++bindings by multiple processes if they all set ++'<tt>reuseport</tt>' before binding the port. ++Receives a boolean value; ++<li> '<tt>ip-multicast-loop</tt>': ++Specifies whether or not a copy of an outgoing multicast ++datagram is delivered to the sending host as long as it is a ++member of the multicast group. ++Receives a boolean value; ++<li> '<tt>ipv6-v6only</tt>': ++Specifies whether to restrict <tt>inet6</tt> sockets to ++sending and receiving only IPv6 packets. ++Receive a boolean value; ++<li> '<tt>ip-multicast-if</tt>': ++Sets the interface over which outgoing multicast datagrams ++are sent. ++Receives an IP address; ++<li> '<tt>ip-multicast-ttl</tt>': ++Sets the Time To Live in the IP header for outgoing ++multicast datagrams. ++Receives a number; ++<li> '<tt>ip-add-membership</tt>': ++Joins the multicast group specified. ++Receives a table with fields ++<tt>multiaddr</tt> and <tt>interface</tt>, each containing an ++IP address; ++<li> '<tt>ip-drop-membership</tt>': Leaves the multicast ++group specified. ++Receives a table with fields ++<tt>multiaddr</tt> and <tt>interface</tt>, each containing an ++IP address. ++</ul> ++ ++<p class="return"> ++The method returns 1 in case of success, or ++<b><tt>nil</tt></b> followed by an error message otherwise. ++</p> ++ ++<p class=note> ++Note: The descriptions above come from the man pages. ++</p> ++ ++ + <!-- setpeername +++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <p class="name" id="setpeername"> +@@ -337,9 +354,9 @@ object or vice versa. + For connected objects, outgoing datagrams + will be sent to the specified peer, and datagrams received from + other peers will be discarded by the OS. Connected UDP objects must +-use the <a href="#send"><tt>send</tt></a> and +-<a href="#receive"><tt>receive</tt></a> methods instead of +-<a href="#sendto"><tt>sendto</tt></a> and ++use the <a href="#send"><tt>send</tt></a> and ++<a href="#receive"><tt>receive</tt></a> methods instead of ++<a href="#sendto"><tt>sendto</tt></a> and + <a href="#receivefrom"><tt>receivefrom</tt></a>. + </p> + +@@ -406,74 +423,6 @@ system or explicitly by <tt>setsockname</tt>, it cannot be + changed. + </p> + +-<!-- setoption +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +- +-<p class="name" id="setoption"> +-connected:<b>setoption(</b>option [, value]<b>)</b><br> +-unconnected:<b>setoption(</b>option [, value]<b>)</b> +-</p> +- +-<p class="description"> +-Sets options for the UDP object. Options are +-only needed by low-level or time-critical applications. You should +-only modify an option if you are sure you need it.</p> +-<p class="parameters"><tt>Option</tt> is a string with the option +-name, and <tt>value</tt> depends on the option being set: +-</p> +- +-<ul> +-<li> '<tt>dontroute</tt>': Indicates that outgoing +-messages should bypass the standard routing facilities. +-Receives a boolean value; +-<li> '<tt>broadcast</tt>': Requests permission to send +-broadcast datagrams on the socket. +-Receives a boolean value; +-<li> '<tt>reuseaddr</tt>': Indicates that the rules used in +-validating addresses supplied in a <tt>bind()</tt> call +-should allow reuse of local addresses. +-Receives a boolean value; +-<li> '<tt>reuseport</tt>': Allows completely duplicate +-bindings by multiple processes if they all set +-'<tt>reuseport</tt>' before binding the port. +-Receives a boolean value; +-<li> '<tt>ip-multicast-loop</tt>': +-Specifies whether or not a copy of an outgoing multicast +-datagram is delivered to the sending host as long as it is a +-member of the multicast group. +-Receives a boolean value; +-<li> '<tt>ipv6-v6only</tt>': +-Specifies whether to restrict <tt>inet6</tt> sockets to +-sending and receiving only IPv6 packets. +-Receive a boolean value; +-<li> '<tt>ip-multicast-if</tt>': +-Sets the interface over which outgoing multicast datagrams +-are sent. +-Receives an IP address; +-<li> '<tt>ip-multicast-ttl</tt>': +-Sets the Time To Live in the IP header for outgoing +-multicast datagrams. +-Receives a number; +-<li> '<tt>ip-add-membership</tt>': +-Joins the multicast group specified. +-Receives a table with fields +-<tt>multiaddr</tt> and <tt>interface</tt>, each containing an +-IP address; +-<li> '<tt>ip-drop-membership</tt>': Leaves the multicast +-group specified. +-Receives a table with fields +-<tt>multiaddr</tt> and <tt>interface</tt>, each containing an +-IP address. +-</ul> +- +-<p class="return"> +-The method returns 1 in case of success, or +-<b><tt>nil</tt></b> followed by an error message otherwise. +-</p> +- +-<p class=note> +-Note: The descriptions above come from the man pages. +-</p> +- + <!-- settimeout +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <p class="name" id="settimeout"> +@@ -482,14 +431,14 @@ unconnected:<b>settimeout(</b>value<b>)</b> + </p> + + <p class="description"> +-Changes the timeout values for the object. By default, the +-<a href="#receive"><tt>receive</tt></a> and +-<a href="#receivefrom"><tt>receivefrom</tt></a> ++Changes the timeout values for the object. By default, the ++<a href="#receive"><tt>receive</tt></a> and ++<a href="#receivefrom"><tt>receivefrom</tt></a> + operations are blocking. That is, any call to the methods will block + indefinitely, until data arrives. The <tt>settimeout</tt> function defines + a limit on the amount of time the functions can block. When a timeout is + set and the specified amount of time has elapsed, the affected methods +-give up and fail with an error code. ++give up and fail with an error code. + </p> + + <p class="parameters"> +@@ -514,6 +463,114 @@ all other method names already contained verbs making their + imperative nature obvious. + </p> + ++<!-- socket.udp ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class="name" id="socket.udp"> ++socket.<b>udp()</b> ++</p> ++ ++<p class="description"> ++Creates and returns an unconnected UDP object. ++Unconnected objects support the ++<a href="#sendto"><tt>sendto</tt></a>, ++<a href="#receive"><tt>receive</tt></a>, ++<a href="#receivefrom"><tt>receivefrom</tt></a>, ++<a href="#getoption"><tt>getoption</tt></a>, ++<a href="#getsockname"><tt>getsockname</tt></a>, ++<a href="#setoption"><tt>setoption</tt></a>, ++<a href="#settimeout"><tt>settimeout</tt></a>, ++<a href="#setpeername"><tt>setpeername</tt></a>, ++<a href="#setsockname"><tt>setsockname</tt></a>, and ++<a href="#close"><tt>close</tt></a>. ++The <a href="#setpeername"><tt>setpeername</tt></a> ++is used to connect the object. ++</p> ++ ++<p class="return"> ++In case of success, a new unconnected UDP object ++returned. In case of error, <b><tt>nil</tt></b> is returned, followed by ++an error message. ++</p> ++ ++<p class=note> ++Note: The choice between IPv4 and IPv6 happens during a call to ++<a href=#sendto><tt>sendto</tt></a>, <a ++href=#setpeername><tt>setpeername</tt></a>, or <a ++href=#setsockname><tt>sockname</tt></a>, depending on the address ++family obtained from the resolver. ++</p> ++ ++<p class=note> ++Note: Before the choice between IPv4 and IPv6 happens, ++the internal socket object is invalid and therefore <a ++href=#setoption><tt>setoption</tt></a> will fail. ++</p> ++ ++<!-- socket.udp4 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class="name" id="socket.udp"> ++socket.<b>udp4()</b> ++</p> ++ ++<p class="description"> ++Creates and returns an unconnected IPv4 UDP object. ++Unconnected objects support the ++<a href="#sendto"><tt>sendto</tt></a>, ++<a href="#receive"><tt>receive</tt></a>, ++<a href="#receivefrom"><tt>receivefrom</tt></a>, ++<a href="#getoption"><tt>getoption</tt></a>, ++<a href="#getsockname"><tt>getsockname</tt></a>, ++<a href="#setoption"><tt>setoption</tt></a>, ++<a href="#settimeout"><tt>settimeout</tt></a>, ++<a href="#setpeername"><tt>setpeername</tt></a>, ++<a href="#setsockname"><tt>setsockname</tt></a>, and ++<a href="#close"><tt>close</tt></a>. ++The <a href="#setpeername"><tt>setpeername</tt></a> ++is used to connect the object. ++</p> ++ ++<p class="return"> ++In case of success, a new unconnected UDP object ++returned. In case of error, <b><tt>nil</tt></b> is returned, followed by ++an error message. ++</p> ++ ++<!-- socket.udp ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> ++ ++<p class="name" id="socket.udp6"> ++socket.<b>udp6()</b> ++</p> ++ ++<p class="description"> ++Creates and returns an unconnected IPv6 UDP object. ++Unconnected objects support the ++<a href="#sendto"><tt>sendto</tt></a>, ++<a href="#receive"><tt>receive</tt></a>, ++<a href="#receivefrom"><tt>receivefrom</tt></a>, ++<a href="#getoption"><tt>getoption</tt></a>, ++<a href="#getsockname"><tt>getsockname</tt></a>, ++<a href="#setoption"><tt>setoption</tt></a>, ++<a href="#settimeout"><tt>settimeout</tt></a>, ++<a href="#setpeername"><tt>setpeername</tt></a>, ++<a href="#setsockname"><tt>setsockname</tt></a>, and ++<a href="#close"><tt>close</tt></a>. ++The <a href="#setpeername"><tt>setpeername</tt></a> ++is used to connect the object. ++</p> ++ ++<p class="return"> ++In case of success, a new unconnected UDP object ++returned. In case of error, <b><tt>nil</tt></b> is returned, followed by ++an error message. ++</p> ++ ++<p class=note> ++Note: The TCP object returned will have the option ++"<tt>ipv6-v6only</tt>" set to <tt><b>true</b></tt>. ++</p> ++ ++ ++ + <!-- footer ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> + + <div class=footer> +@@ -524,7 +581,7 @@ imperative nature obvious. + <a href="index.html#download">download</a> · + <a href="installation.html">installation</a> · + <a href="introduction.html">introduction</a> · +-<a href="reference.html">reference</a> ++<a href="reference.html">reference</a> + </p> + <p> + <small> +diff --git a/etc/dispatch.lua b/etc/dispatch.lua +index cab7f59..2485415 100644 +--- a/etc/dispatch.lua ++++ b/etc/dispatch.lua +@@ -5,6 +5,7 @@ + ----------------------------------------------------------------------------- + local base = _G + local table = require("table") ++local string = require("string") + local socket = require("socket") + local coroutine = require("coroutine") + module("dispatch") +@@ -43,26 +44,32 @@ end + ----------------------------------------------------------------------------- + -- Mega hack. Don't try to do this at home. + ----------------------------------------------------------------------------- +--- we can't yield across calls to protect, so we rewrite it with coxpcall ++-- we can't yield across calls to protect on Lua 5.1, so we rewrite it with ++-- coroutines + -- make sure you don't require any module that uses socket.protect before + -- loading our hack +-function socket.protect(f) +- return function(...) +- local co = coroutine.create(f) +- while true do +- local results = {coroutine.resume(co, ...)} +- local status = table.remove(results, 1) +- if not status then +- if base.type(results[1]) == 'table' then +- return nil, results[1][1] +- else base.error(results[1]) end +- end +- if coroutine.status(co) == "suspended" then +- arg = {coroutine.yield(base.unpack(results))} ++if string.sub(base._VERSION, -3) == "5.1" then ++ local function _protect(co, status, ...) ++ if not status then ++ local msg = ... ++ if base.type(msg) == 'table' then ++ return nil, msg[1] + else +- return base.unpack(results) ++ base.error(msg, 0) + end + end ++ if coroutine.status(co) == "suspended" then ++ return _protect(co, coroutine.resume(co, coroutine.yield(...))) ++ else ++ return ... ++ end ++ end ++ ++ function socket.protect(f) ++ return function(...) ++ local co = coroutine.create(f) ++ return _protect(co, coroutine.resume(co, ...)) ++ end + end + end + +diff --git a/linux.cmd b/linux.cmd +index bd59adc..6c6636b 100644 +--- a/linux.cmd ++++ b/linux.cmd +@@ -1 +1 @@ +-make PLAT=linux DEBUG=DEBUG LUAINC_linux_base=/home/diego/build/linux/include LUAPREFIX_linux=/home/diego/build/linux ++make PLAT=linux DEBUG=DEBUG LUAINC_linux_base=/home/diego/build/ubuntu/include LUAPREFIX_linux=/home/diego/build/ubuntu +diff --git a/luasocket-scm-0.rockspec b/luasocket-scm-0.rockspec +index f86567b..352a497 100644 +--- a/luasocket-scm-0.rockspec ++++ b/luasocket-scm-0.rockspec +@@ -50,13 +50,12 @@ local function make_plat(plat) + } + local modules = { + ["socket.core"] = { +- sources = { "src/luasocket.c", "src/timeout.c", "src/buffer.c", "src/io.c", "src/auxiliar.c", +- "src/options.c", "src/inet.c", "src/except.c", "src/select.c", "src/tcp.c", "src/udp.c" }, ++ sources = { "src/luasocket.c", "src/timeout.c", "src/buffer.c", "src/io.c", "src/auxiliar.c", "src/options.c", "src/inet.c", "src/except.c", "src/select.c", "src/tcp.c", "src/udp.c", "src/compat.c" }, + defines = defines[plat], + incdir = "/src" + }, +- ["mime.core"] = { +- sources = { "src/mime.c" }, ++ ["mime.core"] = { ++ sources = { "src/mime.c", "src/compat.c" }, + defines = defines[plat], + incdir = "/src" + }, +@@ -73,14 +72,12 @@ local function make_plat(plat) + if plat == "unix" or plat == "macosx" then + modules["socket.core"].sources[#modules["socket.core"].sources+1] = "src/usocket.c" + modules["socket.unix"] = { +- sources = { "src/buffer.c", "src/auxiliar.c", "src/options.c", "src/timeout.c", "src/io.c", +- "src/usocket.c", "src/unix.c" }, ++ sources = { "src/buffer.c", "src/auxiliar.c", "src/options.c", "src/timeout.c", "src/io.c", "src/usocket.c", "src/unix.c" }, + defines = defines[plat], + incdir = "/src" + } + modules["socket.serial"] = { +- sources = { "src/buffer.c", "src/auxiliar.c", "src/options.c", "src/timeout.c", +- "src/io.c", "src/usocket.c", "src/serial.c" }, ++ sources = { "src/buffer.c", "src/auxiliar.c", "src/options.c", "src/timeout.c", "src/io.c", "src/usocket.c", "src/serial.c" }, + defines = defines[plat], + incdir = "/src" + } +diff --git a/makefile b/makefile +index 04cd894..cc15b4e 100644 +--- a/makefile ++++ b/makefile +@@ -5,12 +5,12 @@ + # Targets: + # install install system independent support + # install-unix also install unix-only support +-# install-both install for both lua5.1 and lua5.2 +-# install-both-unix also install unix-only ++# install-both install for lua51 lua52 lua53 ++# install-both-unix also install unix-only + # print print the build settings + + PLAT?= linux +-PLATS= macosx linux win32 mingw ++PLATS= macosx linux win32 mingw freebsd solaris + + all: $(PLAT) + +@@ -24,20 +24,26 @@ test: + lua test/hello.lua + + install-both: +- $(MAKE) clean ++ $(MAKE) clean + @cd src; $(MAKE) $(PLAT) LUAV=5.1 + @cd src; $(MAKE) install LUAV=5.1 +- $(MAKE) clean ++ $(MAKE) clean + @cd src; $(MAKE) $(PLAT) LUAV=5.2 + @cd src; $(MAKE) install LUAV=5.2 ++ $(MAKE) clean ++ @cd src; $(MAKE) $(PLAT) LUAV=5.3 ++ @cd src; $(MAKE) install LUAV=5.3 + + install-both-unix: +- $(MAKE) clean ++ $(MAKE) clean + @cd src; $(MAKE) $(PLAT) LUAV=5.1 + @cd src; $(MAKE) install-unix LUAV=5.1 +- $(MAKE) clean ++ $(MAKE) clean + @cd src; $(MAKE) $(PLAT) LUAV=5.2 + @cd src; $(MAKE) install-unix LUAV=5.2 ++ $(MAKE) clean ++ @cd src; $(MAKE) $(PLAT) LUAV=5.3 ++ @cd src; $(MAKE) install-unix LUAV=5.3 + + .PHONY: test + +diff --git a/src/auxiliar.c b/src/auxiliar.c +index de625e9..18fa8e4 100644 +--- a/src/auxiliar.c ++++ b/src/auxiliar.c +@@ -26,7 +26,7 @@ void auxiliar_newclass(lua_State *L, const char *classname, luaL_Reg *func) { + luaL_newmetatable(L, classname); /* mt */ + /* create __index table to place methods */ + lua_pushstring(L, "__index"); /* mt,"__index" */ +- lua_newtable(L); /* mt,"__index",it */ ++ lua_newtable(L); /* mt,"__index",it */ + /* put class name into class metatable */ + lua_pushstring(L, "class"); /* mt,"__index",it,"class" */ + lua_pushstring(L, classname); /* mt,"__index",it,"class",classname */ +@@ -84,7 +84,7 @@ int auxiliar_checkboolean(lua_State *L, int objidx) { + } + + /*-------------------------------------------------------------------------*\ +-* Return userdata pointer if object belongs to a given class, abort with ++* Return userdata pointer if object belongs to a given class, abort with + * error otherwise + \*-------------------------------------------------------------------------*/ + void *auxiliar_checkclass(lua_State *L, const char *classname, int objidx) { +@@ -98,7 +98,7 @@ void *auxiliar_checkclass(lua_State *L, const char *classname, int objidx) { + } + + /*-------------------------------------------------------------------------*\ +-* Return userdata pointer if object belongs to a given group, abort with ++* Return userdata pointer if object belongs to a given group, abort with + * error otherwise + \*-------------------------------------------------------------------------*/ + void *auxiliar_checkgroup(lua_State *L, const char *groupname, int objidx) { +@@ -121,7 +121,7 @@ void auxiliar_setclass(lua_State *L, const char *classname, int objidx) { + } + + /*-------------------------------------------------------------------------*\ +-* Get a userdata pointer if object belongs to a given group. Return NULL ++* Get a userdata pointer if object belongs to a given group. Return NULL + * otherwise + \*-------------------------------------------------------------------------*/ + void *auxiliar_getgroupudata(lua_State *L, const char *groupname, int objidx) { +@@ -139,7 +139,7 @@ void *auxiliar_getgroupudata(lua_State *L, const char *groupname, int objidx) { + } + + /*-------------------------------------------------------------------------*\ +-* Get a userdata pointer if object belongs to a given class. Return NULL ++* Get a userdata pointer if object belongs to a given class. Return NULL + * otherwise + \*-------------------------------------------------------------------------*/ + void *auxiliar_getclassudata(lua_State *L, const char *classname, int objidx) { +@@ -151,7 +151,7 @@ void *auxiliar_getclassudata(lua_State *L, const char *classname, int objidx) { + * Used to be part of lauxlib in Lua 5.1, was dropped from 5.2. + \*-------------------------------------------------------------------------*/ + int auxiliar_typeerror (lua_State *L, int narg, const char *tname) { +- const char *msg = lua_pushfstring(L, "%s expected, got %s", tname, ++ const char *msg = lua_pushfstring(L, "%s expected, got %s", tname, + luaL_typename(L, narg)); + return luaL_argerror(L, narg, msg); + } +diff --git a/src/auxiliar.h b/src/auxiliar.h +index ea99013..65511d4 100644 +--- a/src/auxiliar.h ++++ b/src/auxiliar.h +@@ -4,12 +4,12 @@ + * Auxiliar routines for class hierarchy manipulation + * LuaSocket toolkit (but completely independent of other LuaSocket modules) + * +-* A LuaSocket class is a name associated with Lua metatables. A LuaSocket +-* group is a name associated with a class. A class can belong to any number ++* A LuaSocket class is a name associated with Lua metatables. A LuaSocket ++* group is a name associated with a class. A class can belong to any number + * of groups. This module provides the functionality to: + * +-* - create new classes +-* - add classes to groups ++* - create new classes ++* - add classes to groups + * - set the class of objects + * - check if an object belongs to a given class or group + * - get the userdata associated to objects +@@ -26,11 +26,12 @@ + * "class" with the class name. + * + * The mapping from class name to the corresponding metatable and the +-* reverse mapping are done using lauxlib. ++* reverse mapping are done using lauxlib. + \*=========================================================================*/ + + #include "lua.h" + #include "lauxlib.h" ++#include "compat.h" + + int auxiliar_open(lua_State *L); + void auxiliar_newclass(lua_State *L, const char *classname, luaL_Reg *func); +diff --git a/src/buffer.c b/src/buffer.c +index 4ef4e8e..fff1634 100644 +--- a/src/buffer.c ++++ b/src/buffer.c +@@ -4,6 +4,7 @@ + \*=========================================================================*/ + #include "lua.h" + #include "lauxlib.h" ++#include "compat.h" + + #include "buffer.h" + +@@ -37,7 +38,7 @@ int buffer_open(lua_State *L) { + } + + /*-------------------------------------------------------------------------*\ +-* Initializes C structure ++* Initializes C structure + \*-------------------------------------------------------------------------*/ + void buffer_init(p_buffer buf, p_io io, p_timeout tm) { + buf->first = buf->last = 0; +@@ -61,8 +62,8 @@ int buffer_meth_getstats(lua_State *L, p_buffer buf) { + * object:setstats() interface + \*-------------------------------------------------------------------------*/ + int buffer_meth_setstats(lua_State *L, p_buffer buf) { +- buf->received = (long) luaL_optnumber(L, 2, (lua_Number) buf->received); +- buf->sent = (long) luaL_optnumber(L, 3, (lua_Number) buf->sent); ++ buf->received = (long) luaL_optnumber(L, 2, (lua_Number) buf->received); ++ buf->sent = (long) luaL_optnumber(L, 3, (lua_Number) buf->sent); + if (lua_isnumber(L, 4)) buf->birthday = timeout_gettime() - lua_tonumber(L, 4); + lua_pushnumber(L, 1); + return 1; +@@ -78,9 +79,7 @@ int buffer_meth_send(lua_State *L, p_buffer buf) { + const char *data = luaL_checklstring(L, 2, &size); + long start = (long) luaL_optnumber(L, 3, 1); + long end = (long) luaL_optnumber(L, 4, -1); +-#ifdef LUASOCKET_DEBUG +- p_timeout tm = timeout_markstart(buf->tm); +-#endif ++ timeout_markstart(buf->tm); + if (start < 0) start = (long) (size+start+1); + if (end < 0) end = (long) (size+end+1); + if (start < 1) start = (long) 1; +@@ -89,7 +88,7 @@ int buffer_meth_send(lua_State *L, p_buffer buf) { + /* check if there was an error */ + if (err != IO_DONE) { + lua_pushnil(L); +- lua_pushstring(L, buf->io->error(buf->io->ctx, err)); ++ lua_pushstring(L, buf->io->error(buf->io->ctx, err)); + lua_pushnumber(L, (lua_Number) (sent+start-1)); + } else { + lua_pushnumber(L, (lua_Number) (sent+start-1)); +@@ -98,7 +97,7 @@ int buffer_meth_send(lua_State *L, p_buffer buf) { + } + #ifdef LUASOCKET_DEBUG + /* push time elapsed during operation as the last return value */ +- lua_pushnumber(L, timeout_gettime() - timeout_getstart(tm)); ++ lua_pushnumber(L, timeout_gettime() - timeout_getstart(buf->tm)); + #endif + return lua_gettop(L) - top; + } +@@ -111,10 +110,8 @@ int buffer_meth_receive(lua_State *L, p_buffer buf) { + luaL_Buffer b; + size_t size; + const char *part = luaL_optlstring(L, 3, "", &size); +-#ifdef LUASOCKET_DEBUG +- p_timeout tm = timeout_markstart(buf->tm); +-#endif +- /* initialize buffer with optional extra prefix ++ timeout_markstart(buf->tm); ++ /* initialize buffer with optional extra prefix + * (useful for concatenating previous partial results) */ + luaL_buffinit(L, &b); + luaL_addlstring(&b, part, size); +@@ -122,12 +119,12 @@ int buffer_meth_receive(lua_State *L, p_buffer buf) { + if (!lua_isnumber(L, 2)) { + const char *p= luaL_optstring(L, 2, "*l"); + if (p[0] == '*' && p[1] == 'l') err = recvline(buf, &b); +- else if (p[0] == '*' && p[1] == 'a') err = recvall(buf, &b); ++ else if (p[0] == '*' && p[1] == 'a') err = recvall(buf, &b); + else luaL_argcheck(L, 0, 2, "invalid receive pattern"); +- /* get a fixed number of bytes (minus what was already partially ++ /* get a fixed number of bytes (minus what was already partially + * received) */ + } else { +- double n = lua_tonumber(L, 2); ++ double n = lua_tonumber(L, 2); + size_t wanted = (size_t) n; + luaL_argcheck(L, n >= 0, 2, "invalid receive pattern"); + if (size == 0 || wanted > size) +@@ -138,8 +135,8 @@ int buffer_meth_receive(lua_State *L, p_buffer buf) { + /* we can't push anyting in the stack before pushing the + * contents of the buffer. this is the reason for the complication */ + luaL_pushresult(&b); +- lua_pushstring(L, buf->io->error(buf->io->ctx, err)); +- lua_pushvalue(L, -2); ++ lua_pushstring(L, buf->io->error(buf->io->ctx, err)); ++ lua_pushvalue(L, -2); + lua_pushnil(L); + lua_replace(L, -4); + } else { +@@ -149,7 +146,7 @@ int buffer_meth_receive(lua_State *L, p_buffer buf) { + } + #ifdef LUASOCKET_DEBUG + /* push time elapsed during operation as the last return value */ +- lua_pushnumber(L, timeout_gettime() - timeout_getstart(tm)); ++ lua_pushnumber(L, timeout_gettime() - timeout_getstart(buf->tm)); + #endif + return lua_gettop(L) - top; + } +@@ -222,7 +219,7 @@ static int recvall(p_buffer buf, luaL_Buffer *b) { + } + + /*-------------------------------------------------------------------------*\ +-* Reads a line terminated by a CR LF pair or just by a LF. The CR and LF ++* Reads a line terminated by a CR LF pair or just by a LF. The CR and LF + * are not returned by the function and are discarded from the buffer + \*-------------------------------------------------------------------------*/ + static int recvline(p_buffer buf, luaL_Buffer *b) { +@@ -252,7 +249,7 @@ static int recvline(p_buffer buf, luaL_Buffer *b) { + static void buffer_skip(p_buffer buf, size_t count) { + buf->received += count; + buf->first += count; +- if (buffer_isempty(buf)) ++ if (buffer_isempty(buf)) + buf->first = buf->last = 0; + } + +diff --git a/src/compat.c b/src/compat.c +new file mode 100644 +index 0000000..c2d99cb +--- /dev/null ++++ b/src/compat.c +@@ -0,0 +1,19 @@ ++#include "compat.h" ++ ++#if LUA_VERSION_NUM==501 ++/* ++** Adapted from Lua 5.2 ++*/ ++void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) { ++ luaL_checkstack(L, nup+1, "too many upvalues"); ++ for (; l->name != NULL; l++) { /* fill the table with given functions */ ++ int i; ++ lua_pushstring(L, l->name); ++ for (i = 0; i < nup; i++) /* copy upvalues to the top */ ++ lua_pushvalue(L, -(nup+1)); ++ lua_pushcclosure(L, l->func, nup); /* closure with those upvalues */ ++ lua_settable(L, -(nup + 3)); ++ } ++ lua_pop(L, nup); /* remove upvalues */ ++} ++#endif +diff --git a/src/compat.h b/src/compat.h +new file mode 100644 +index 0000000..7bf8010 +--- /dev/null ++++ b/src/compat.h +@@ -0,0 +1,11 @@ ++#ifndef COMPAT_H ++#define COMPAT_H ++ ++#include "lua.h" ++#include "lauxlib.h" ++ ++#if LUA_VERSION_NUM==501 ++void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup); ++#endif ++ ++#endif +diff --git a/src/except.c b/src/except.c +index 002e701..60b5005 100644 +--- a/src/except.c ++++ b/src/except.c +@@ -6,9 +6,19 @@ + + #include "lua.h" + #include "lauxlib.h" ++#include "compat.h" + + #include "except.h" + ++#if LUA_VERSION_NUM < 502 ++#define lua_pcallk(L, na, nr, err, ctx, cont) \ ++ (((void)ctx),((void)cont),lua_pcall(L, na, nr, err)) ++#endif ++ ++#if LUA_VERSION_NUM < 503 ++typedef int lua_KContext; ++#endif ++ + /*=========================================================================*\ + * Internal function prototypes. + \*=========================================================================*/ +@@ -29,18 +39,17 @@ static luaL_Reg func[] = { + * Try factory + \*-------------------------------------------------------------------------*/ + static void wrap(lua_State *L) { +- lua_newtable(L); +- lua_pushnumber(L, 1); +- lua_pushvalue(L, -3); +- lua_settable(L, -3); +- lua_insert(L, -2); +- lua_pop(L, 1); ++ lua_createtable(L, 1, 0); ++ lua_pushvalue(L, -2); ++ lua_rawseti(L, -2, 1); ++ lua_pushvalue(L, lua_upvalueindex(1)); ++ lua_setmetatable(L, -2); + } + + static int finalize(lua_State *L) { + if (!lua_toboolean(L, 1)) { +- lua_pushvalue(L, lua_upvalueindex(1)); +- lua_pcall(L, 0, 0, 0); ++ lua_pushvalue(L, lua_upvalueindex(2)); ++ lua_call(L, 0, 0); + lua_settop(L, 2); + wrap(L); + lua_error(L); +@@ -48,15 +57,17 @@ static int finalize(lua_State *L) { + } else return lua_gettop(L); + } + +-static int do_nothing(lua_State *L) { ++static int do_nothing(lua_State *L) { + (void) L; +- return 0; ++ return 0; + } + + static int global_newtry(lua_State *L) { + lua_settop(L, 1); + if (lua_isnil(L, 1)) lua_pushcfunction(L, do_nothing); +- lua_pushcclosure(L, finalize, 1); ++ lua_pushvalue(L, lua_upvalueindex(1)); ++ lua_insert(L, -2); ++ lua_pushcclosure(L, finalize, 2); + return 1; + } + +@@ -64,27 +75,49 @@ static int global_newtry(lua_State *L) { + * Protect factory + \*-------------------------------------------------------------------------*/ + static int unwrap(lua_State *L) { +- if (lua_istable(L, -1)) { +- lua_pushnumber(L, 1); +- lua_gettable(L, -2); +- lua_pushnil(L); +- lua_insert(L, -2); +- return 1; +- } else return 0; ++ if (lua_istable(L, -1) && lua_getmetatable(L, -1)) { ++ int r = lua_rawequal(L, -1, lua_upvalueindex(1)); ++ lua_pop(L, 1); ++ if (r) { ++ lua_pushnil(L); ++ lua_rawgeti(L, -2, 1); ++ return 1; ++ } ++ } ++ return 0; + } + +-static int protected_(lua_State *L) { +- lua_pushvalue(L, lua_upvalueindex(1)); +- lua_insert(L, 1); +- if (lua_pcall(L, lua_gettop(L) - 1, LUA_MULTRET, 0) != 0) { ++static int protected_finish(lua_State *L, int status, lua_KContext ctx) { ++ (void)ctx; ++ if (status != 0 && status != LUA_YIELD) { + if (unwrap(L)) return 2; +- else lua_error(L); +- return 0; ++ else return lua_error(L); + } else return lua_gettop(L); + } + ++#if LUA_VERSION_NUM == 502 ++static int protected_cont(lua_State *L) { ++ int ctx = 0; ++ int status = lua_getctx(L, &ctx); ++ return protected_finish(L, status, ctx); ++} ++#else ++#define protected_cont protected_finish ++#endif ++ ++static int protected_(lua_State *L) { ++ int status; ++ lua_pushvalue(L, lua_upvalueindex(2)); ++ lua_insert(L, 1); ++ status = lua_pcallk(L, lua_gettop(L) - 1, LUA_MULTRET, 0, 0, protected_cont); ++ return protected_finish(L, status, 0); ++} ++ + static int global_protect(lua_State *L) { +- lua_pushcclosure(L, protected_, 1); ++ lua_settop(L, 1); ++ lua_pushvalue(L, lua_upvalueindex(1)); ++ lua_insert(L, 1); ++ lua_pushcclosure(L, protected_, 2); + return 1; + } + +@@ -92,10 +125,9 @@ static int global_protect(lua_State *L) { + * Init module + \*-------------------------------------------------------------------------*/ + int except_open(lua_State *L) { +-#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE) +- luaL_setfuncs(L, func, 0); +-#else +- luaL_openlib(L, NULL, func, 0); +-#endif ++ lua_newtable(L); /* metatable for wrapped exceptions */ ++ lua_pushboolean(L, 0); ++ lua_setfield(L, -2, "__metatable"); ++ luaL_setfuncs(L, func, 1); + return 0; + } +diff --git a/src/except.h b/src/except.h +index 1e7a245..2497c05 100644 +--- a/src/except.h ++++ b/src/except.h +@@ -9,21 +9,26 @@ + * error checking was taking a substantial amount of the coding. These + * function greatly simplify the task of checking errors. + * +-* The main idea is that functions should return nil as its first return +-* value when it finds an error, and return an error message (or value) ++* The main idea is that functions should return nil as their first return ++* values when they find an error, and return an error message (or value) + * following nil. In case of success, as long as the first value is not nil, + * the other values don't matter. + * + * The idea is to nest function calls with the "try" function. This function +-* checks the first value, and calls "error" on the second if the first is +-* nil. Otherwise, it returns all values it received. ++* checks the first value, and, if it's falsy, wraps the second value in a ++* table with metatable and calls "error" on it. Otherwise, it returns all ++* values it received. Basically, it works like the Lua "assert" function, ++* but it creates errors targeted specifically at "protect". + * +-* The protect function returns a new function that behaves exactly like the +-* function it receives, but the new function doesn't throw exceptions: it +-* returns nil followed by the error message instead. ++* The "newtry" function is a factory for "try" functions that call a ++* finalizer in protected mode before calling "error". + * +-* With these two function, it's easy to write functions that throw +-* exceptions on error, but that don't interrupt the user script. ++* The "protect" function returns a new function that behaves exactly like ++* the function it receives, but the new function catches exceptions thrown ++* by "try" functions and returns nil followed by the error message instead. ++* ++* With these three functions, it's easy to write functions that throw ++* exceptions on error, but that don't interrupt the user script. + \*=========================================================================*/ + + #include "lua.h" +diff --git a/src/ftp.lua b/src/ftp.lua +index ea1145b..e0c3cae 100644 +--- a/src/ftp.lua ++++ b/src/ftp.lua +@@ -268,11 +268,20 @@ _M.command = socket.protect(function(cmdt) + cmdt = override(cmdt) + socket.try(cmdt.host, "missing hostname") + socket.try(cmdt.command, "missing command") +- local f = open(cmdt.host, cmdt.port, cmdt.create) ++ local f = _M.open(cmdt.host, cmdt.port, cmdt.create) + f:greet() + f:login(cmdt.user, cmdt.password) +- f.try(f.tp:command(cmdt.command, cmdt.argument)) +- if cmdt.check then f.try(f.tp:check(cmdt.check)) end ++ if type(cmdt.command) == "table" then ++ local argument = cmdt.argument or {} ++ local check = cmdt.check or {} ++ for i,cmd in ipairs(cmdt.command) do ++ f.try(f.tp:command(cmd, argument[i])) ++ if check[i] then f.try(f.tp:check(check[i])) end ++ end ++ else ++ f.try(f.tp:command(cmdt.command, cmdt.argument)) ++ if cmdt.check then f.try(f.tp:check(cmdt.check)) end ++ end + f:quit() + return f:close() + end) +@@ -282,4 +291,4 @@ _M.get = socket.protect(function(gett) + else return tget(gett) end + end) + +-return _M +\ No newline at end of file ++return _M +diff --git a/src/http.lua b/src/http.lua +index ac4b2d6..d6bcc91 100644 +--- a/src/http.lua ++++ b/src/http.lua +@@ -22,12 +22,15 @@ local _M = socket.http + -- Program constants + ----------------------------------------------------------------------------- + -- connection timeout in seconds +-TIMEOUT = 60 +--- default port for document retrieval +-_M.PORT = 80 ++_M.TIMEOUT = 60 + -- user agent field sent in request + _M.USERAGENT = socket._VERSION + ++-- supported schemes ++local SCHEMES = { ["http"] = true } ++-- default port for document retrieval ++local PORT = 80 ++ + ----------------------------------------------------------------------------- + -- Reads MIME headers from a connection, unfolding where needed + ----------------------------------------------------------------------------- +@@ -114,7 +117,7 @@ function _M.open(host, port, create) + h.try = socket.newtry(function() h:close() end) + -- set timeout before connecting + h.try(c:settimeout(_M.TIMEOUT)) +- h.try(c:connect(host, port or _M.PORT)) ++ h.try(c:connect(host, port or PORT)) + -- here everything worked + return h + end +@@ -186,7 +189,7 @@ end + local function adjusturi(reqt) + local u = reqt + -- if there is a proxy, we need the full url. otherwise, just a part. +- if not reqt.proxy and not PROXY then ++ if not reqt.proxy and not _M.PROXY then + u = { + path = socket.try(reqt.path, "invalid path 'nil'"), + params = reqt.params, +@@ -198,7 +201,7 @@ local function adjusturi(reqt) + end + + local function adjustproxy(reqt) +- local proxy = reqt.proxy or PROXY ++ local proxy = reqt.proxy or _M.PROXY + if proxy then + proxy = url.parse(proxy) + return proxy.host, proxy.port or 3128 +@@ -209,17 +212,27 @@ end + + local function adjustheaders(reqt) + -- default headers ++ local host = string.gsub(reqt.authority, "^.-@", "") + local lower = { + ["user-agent"] = _M.USERAGENT, +- ["host"] = reqt.host, ++ ["host"] = host, + ["connection"] = "close, TE", + ["te"] = "trailers" + } + -- if we have authentication information, pass it along + if reqt.user and reqt.password then +- lower["authorization"] = ++ lower["authorization"] = + "Basic " .. (mime.b64(reqt.user .. ":" .. reqt.password)) + end ++ -- if we have proxy authentication information, pass it along ++ local proxy = reqt.proxy or _M.PROXY ++ if proxy then ++ proxy = url.parse(proxy) ++ if proxy.user and proxy.password then ++ lower["proxy-authorization"] = ++ "Basic " .. (mime.b64(proxy.user .. ":" .. proxy.password)) ++ end ++ end + -- override with user headers + for i,v in base.pairs(reqt.headers or lower) do + lower[string.lower(i)] = v +@@ -230,7 +243,7 @@ end + -- default url parts + local default = { + host = "", +- port = _M.PORT, ++ port = PORT, + path ="/", + scheme = "http" + } +@@ -240,22 +253,27 @@ local function adjustrequest(reqt) + local nreqt = reqt.url and url.parse(reqt.url, default) or {} + -- explicit components override url + for i,v in base.pairs(reqt) do nreqt[i] = v end +- if nreqt.port == "" then nreqt.port = 80 end +- socket.try(nreqt.host and nreqt.host ~= "", +- "invalid host '" .. base.tostring(nreqt.host) .. "'") ++ if nreqt.port == "" then nreqt.port = PORT end ++ if not (nreqt.host and nreqt.host ~= "") then ++ socket.try(nil, "invalid host '" .. base.tostring(nreqt.host) .. "'") ++ end + -- compute uri if user hasn't overriden + nreqt.uri = reqt.uri or adjusturi(nreqt) +- -- ajust host and port if there is a proxy +- nreqt.host, nreqt.port = adjustproxy(nreqt) + -- adjust headers in request + nreqt.headers = adjustheaders(nreqt) ++ -- ajust host and port if there is a proxy ++ nreqt.host, nreqt.port = adjustproxy(nreqt) + return nreqt + end + + local function shouldredirect(reqt, code, headers) +- return headers.location and +- string.gsub(headers.location, "%s", "") ~= "" and +- (reqt.redirect ~= false) and ++ local location = headers.location ++ if not location then return false end ++ location = string.gsub(location, "%s", "") ++ if location == "" then return false end ++ local scheme = string.match(location, "^([%w][%w%+%-%.]*)%:") ++ if scheme and not SCHEMES[scheme] then return false end ++ return (reqt.redirect ~= false) and + (code == 301 or code == 302 or code == 303 or code == 307) and + (not reqt.method or reqt.method == "GET" or reqt.method == "HEAD") + and (not reqt.nredirects or reqt.nredirects < 5) +@@ -279,10 +297,10 @@ local trequest, tredirect + source = reqt.source, + sink = reqt.sink, + headers = reqt.headers, +- proxy = reqt.proxy, ++ proxy = reqt.proxy, + nredirects = (reqt.nredirects or 0) + 1, + create = reqt.create +- } ++ } + -- pass location header back as a hint we redirected + headers = headers or {} + headers.location = headers.location or location +@@ -299,7 +317,7 @@ end + h:sendheaders(nreqt.headers) + -- if there is a body, send it + if nreqt.source then +- h:sendbody(nreqt.headers, nreqt.source, nreqt.step) ++ h:sendbody(nreqt.headers, nreqt.source, nreqt.step) + end + local code, status = h:receivestatusline() + -- if it is an HTTP/0.9 server, simply get the body and we are done +@@ -309,13 +327,13 @@ end + end + local headers + -- ignore any 100-continue messages +- while code == 100 do ++ while code == 100 do + headers = h:receiveheaders() + code, status = h:receivestatusline() + end + headers = h:receiveheaders() + -- at this point we should have a honest reply from the server +- -- we can't redirect if we already used the source, so we report the error ++ -- we can't redirect if we already used the source, so we report the error + if shouldredirect(nreqt, code, headers) and not nreqt.source then + h:close() + return tredirect(reqt, headers.location) +@@ -351,4 +369,4 @@ _M.request = socket.protect(function(reqt, body) + else return trequest(reqt) end + end) + +-return _M +\ No newline at end of file ++return _M +diff --git a/src/inet.c b/src/inet.c +index 1a411f6..f4c8404 100644 +--- a/src/inet.c ++++ b/src/inet.c +@@ -8,6 +8,7 @@ + + #include "lua.h" + #include "lauxlib.h" ++#include "compat.h" + + #include "inet.h" + +@@ -41,11 +42,7 @@ int inet_open(lua_State *L) + { + lua_pushstring(L, "dns"); + lua_newtable(L); +-#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE) + luaL_setfuncs(L, func, 0); +-#else +- luaL_openlib(L, NULL, func, 0); +-#endif + lua_settable(L, -3); + return 0; + } +@@ -97,7 +94,7 @@ static int inet_global_getnameinfo(lua_State *L) { + + memset(&hints, 0, sizeof(hints)); + hints.ai_socktype = SOCK_STREAM; +- hints.ai_family = PF_UNSPEC; ++ hints.ai_family = AF_UNSPEC; + + ret = getaddrinfo(host, serv, &hints, &resolved); + if (ret != 0) { +@@ -108,8 +105,8 @@ static int inet_global_getnameinfo(lua_State *L) { + + lua_newtable(L); + for (i = 1, iter = resolved; iter; i++, iter = iter->ai_next) { +- getnameinfo(iter->ai_addr, (socklen_t) iter->ai_addrlen, +- hbuf, host? (socklen_t) sizeof(hbuf): 0, ++ getnameinfo(iter->ai_addr, (socklen_t) iter->ai_addrlen, ++ hbuf, host? (socklen_t) sizeof(hbuf): 0, + sbuf, serv? (socklen_t) sizeof(sbuf): 0, 0); + if (host) { + lua_pushnumber(L, i); +@@ -149,7 +146,7 @@ static int inet_global_toip(lua_State *L) + int inet_optfamily(lua_State* L, int narg, const char* def) + { + static const char* optname[] = { "unspec", "inet", "inet6", NULL }; +- static int optvalue[] = { PF_UNSPEC, PF_INET, PF_INET6, 0 }; ++ static int optvalue[] = { AF_UNSPEC, AF_INET, AF_INET6, 0 }; + + return optvalue[luaL_checkoption(L, narg, def, optname)]; + } +@@ -170,7 +167,7 @@ static int inet_global_getaddrinfo(lua_State *L) + int i = 1, ret = 0; + memset(&hints, 0, sizeof(hints)); + hints.ai_socktype = SOCK_STREAM; +- hints.ai_family = PF_UNSPEC; ++ hints.ai_family = AF_UNSPEC; + ret = getaddrinfo(hostname, NULL, &hints, &resolved); + if (ret != 0) { + lua_pushnil(L); +@@ -180,9 +177,10 @@ static int inet_global_getaddrinfo(lua_State *L) + lua_newtable(L); + for (iterator = resolved; iterator; iterator = iterator->ai_next) { + char hbuf[NI_MAXHOST]; +- ret = getnameinfo(iterator->ai_addr, (socklen_t) iterator->ai_addrlen, ++ ret = getnameinfo(iterator->ai_addr, (socklen_t) iterator->ai_addrlen, + hbuf, (socklen_t) sizeof(hbuf), NULL, 0, NI_NUMERICHOST); + if (ret){ ++ freeaddrinfo(resolved); + lua_pushnil(L); + lua_pushstring(L, socket_gaistrerror(ret)); + return 2; +@@ -200,6 +198,16 @@ static int inet_global_getaddrinfo(lua_State *L) + lua_pushliteral(L, "inet6"); + lua_settable(L, -3); + break; ++ case AF_UNSPEC: ++ lua_pushliteral(L, "family"); ++ lua_pushliteral(L, "unspec"); ++ lua_settable(L, -3); ++ break; ++ default: ++ lua_pushliteral(L, "family"); ++ lua_pushliteral(L, "unknown"); ++ lua_settable(L, -3); ++ break; + } + lua_pushliteral(L, "addr"); + lua_pushstring(L, hbuf); +@@ -256,12 +264,11 @@ int inet_meth_getpeername(lua_State *L, p_socket ps, int family) + } + lua_pushstring(L, name); + lua_pushinteger(L, (int) strtol(port, (char **) NULL, 10)); +- if (family == PF_INET) { +- lua_pushliteral(L, "inet"); +- } else if (family == PF_INET6) { +- lua_pushliteral(L, "inet6"); +- } else { +- lua_pushliteral(L, "uknown family"); ++ switch (family) { ++ case AF_INET: lua_pushliteral(L, "inet"); break; ++ case AF_INET6: lua_pushliteral(L, "inet6"); break; ++ case AF_UNSPEC: lua_pushliteral(L, "unspec"); break; ++ default: lua_pushliteral(L, "unknown"); break; + } + return 3; + } +@@ -281,7 +288,7 @@ int inet_meth_getsockname(lua_State *L, p_socket ps, int family) + lua_pushstring(L, socket_strerror(errno)); + return 2; + } +- err=getnameinfo((struct sockaddr *)&peer, peer_len, ++ err=getnameinfo((struct sockaddr *)&peer, peer_len, + name, INET6_ADDRSTRLEN, port, 6, NI_NUMERICHOST | NI_NUMERICSERV); + if (err) { + lua_pushnil(L); +@@ -290,12 +297,11 @@ int inet_meth_getsockname(lua_State *L, p_socket ps, int family) + } + lua_pushstring(L, name); + lua_pushstring(L, port); +- if (family == PF_INET) { +- lua_pushliteral(L, "inet"); +- } else if (family == PF_INET6) { +- lua_pushliteral(L, "inet6"); +- } else { +- lua_pushliteral(L, "uknown family"); ++ switch (family) { ++ case AF_INET: lua_pushliteral(L, "inet"); break; ++ case AF_INET6: lua_pushliteral(L, "inet6"); break; ++ case AF_UNSPEC: lua_pushliteral(L, "unspec"); break; ++ default: lua_pushliteral(L, "unknown"); break; + } + return 3; + } +@@ -346,8 +352,13 @@ static void inet_pushresolved(lua_State *L, struct hostent *hp) + /*-------------------------------------------------------------------------*\ + * Tries to create a new inet socket + \*-------------------------------------------------------------------------*/ +-const char *inet_trycreate(p_socket ps, int family, int type) { +- return socket_strerror(socket_create(ps, family, type, 0)); ++const char *inet_trycreate(p_socket ps, int family, int type, int protocol) { ++ const char *err = socket_strerror(socket_create(ps, family, type, protocol)); ++ if (err == NULL && family == AF_INET6) { ++ int yes = 1; ++ setsockopt(*ps, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&yes, sizeof(yes)); ++ } ++ return err; + } + + /*-------------------------------------------------------------------------*\ +@@ -356,21 +367,21 @@ const char *inet_trycreate(p_socket ps, int family, int type) { + const char *inet_trydisconnect(p_socket ps, int family, p_timeout tm) + { + switch (family) { +- case PF_INET: { ++ case AF_INET: { + struct sockaddr_in sin; + memset((char *) &sin, 0, sizeof(sin)); + sin.sin_family = AF_UNSPEC; + sin.sin_addr.s_addr = INADDR_ANY; +- return socket_strerror(socket_connect(ps, (SA *) &sin, ++ return socket_strerror(socket_connect(ps, (SA *) &sin, + sizeof(sin), tm)); + } +- case PF_INET6: { ++ case AF_INET6: { + struct sockaddr_in6 sin6; +- struct in6_addr addrany = IN6ADDR_ANY_INIT; ++ struct in6_addr addrany = IN6ADDR_ANY_INIT; + memset((char *) &sin6, 0, sizeof(sin6)); + sin6.sin6_family = AF_UNSPEC; + sin6.sin6_addr = addrany; +- return socket_strerror(socket_connect(ps, (SA *) &sin6, ++ return socket_strerror(socket_connect(ps, (SA *) &sin6, + sizeof(sin6), tm)); + } + } +@@ -385,6 +396,7 @@ const char *inet_tryconnect(p_socket ps, int *family, const char *address, + { + struct addrinfo *iterator = NULL, *resolved = NULL; + const char *err = NULL; ++ int current_family = *family; + /* try resolving */ + err = socket_gaistrerror(getaddrinfo(address, serv, + connecthints, &resolved)); +@@ -399,23 +411,23 @@ const char *inet_tryconnect(p_socket ps, int *family, const char *address, + * that shows up while iterating. if there was a + * bind, all families will be the same and we will + * not enter this branch. */ +- if (*family != iterator->ai_family) { ++ if (current_family != iterator->ai_family || *ps == SOCKET_INVALID) { + socket_destroy(ps); +- err = socket_strerror(socket_create(ps, iterator->ai_family, +- iterator->ai_socktype, iterator->ai_protocol)); +- if (err != NULL) { +- freeaddrinfo(resolved); +- return err; +- } +- *family = iterator->ai_family; +- /* all sockets initially non-blocking */ ++ err = inet_trycreate(ps, iterator->ai_family, ++ iterator->ai_socktype, iterator->ai_protocol); ++ if (err) continue; ++ current_family = iterator->ai_family; ++ /* set non-blocking before connect */ + socket_setnonblocking(ps); + } + /* try connecting to remote address */ +- err = socket_strerror(socket_connect(ps, (SA *) iterator->ai_addr, ++ err = socket_strerror(socket_connect(ps, (SA *) iterator->ai_addr, + (socklen_t) iterator->ai_addrlen, tm)); +- /* if success, break out of loop */ +- if (err == NULL) break; ++ /* if success or timeout is zero, break out of loop */ ++ if (err == NULL || timeout_iszero(tm)) { ++ *family = current_family; ++ break; ++ } + } + freeaddrinfo(resolved); + /* here, if err is set, we failed */ +@@ -425,29 +437,27 @@ const char *inet_tryconnect(p_socket ps, int *family, const char *address, + /*-------------------------------------------------------------------------*\ + * Tries to accept a socket + \*-------------------------------------------------------------------------*/ +-const char *inet_tryaccept(p_socket server, int family, p_socket client, +- p_timeout tm) +-{ ++const char *inet_tryaccept(p_socket server, int family, p_socket client, ++ p_timeout tm) { + socklen_t len; + t_sockaddr_storage addr; +- if (family == PF_INET6) { +- len = sizeof(struct sockaddr_in6); +- } else { +- len = sizeof(struct sockaddr_in); +- } +- return socket_strerror(socket_accept(server, client, (SA *) &addr, ++ switch (family) { ++ case AF_INET6: len = sizeof(struct sockaddr_in6); break; ++ case AF_INET: len = sizeof(struct sockaddr_in); break; ++ default: len = sizeof(addr); break; ++ } ++ return socket_strerror(socket_accept(server, client, (SA *) &addr, + &len, tm)); + } + + /*-------------------------------------------------------------------------*\ + * Tries to bind socket to (address, port) + \*-------------------------------------------------------------------------*/ +-const char *inet_trybind(p_socket ps, const char *address, const char *serv, +- struct addrinfo *bindhints) +-{ ++const char *inet_trybind(p_socket ps, int *family, const char *address, ++ const char *serv, struct addrinfo *bindhints) { + struct addrinfo *iterator = NULL, *resolved = NULL; + const char *err = NULL; +- t_socket sock = *ps; ++ int current_family = *family; + /* translate luasocket special values to C */ + if (strcmp(address, "*") == 0) address = NULL; + if (!serv) serv = "0"; +@@ -459,35 +469,32 @@ const char *inet_trybind(p_socket ps, const char *address, const char *serv, + } + /* iterate over resolved addresses until one is good */ + for (iterator = resolved; iterator; iterator = iterator->ai_next) { +- if(sock == SOCKET_INVALID) { +- err = socket_strerror(socket_create(&sock, iterator->ai_family, +- iterator->ai_socktype, iterator->ai_protocol)); +- if(err) +- continue; ++ if (current_family != iterator->ai_family || *ps == SOCKET_INVALID) { ++ socket_destroy(ps); ++ err = inet_trycreate(ps, iterator->ai_family, ++ iterator->ai_socktype, iterator->ai_protocol); ++ if (err) continue; ++ current_family = iterator->ai_family; + } + /* try binding to local address */ +- err = socket_strerror(socket_bind(&sock, +- (SA *) iterator->ai_addr, ++ err = socket_strerror(socket_bind(ps, (SA *) iterator->ai_addr, + (socklen_t) iterator->ai_addrlen)); +- + /* keep trying unless bind succeeded */ +- if (err) { +- if(sock != *ps) +- socket_destroy(&sock); +- } else { +- /* remember what we connected to, particularly the family */ +- *bindhints = *iterator; ++ if (err == NULL) { ++ *family = current_family; ++ /* set to non-blocking after bind */ ++ socket_setnonblocking(ps); + break; + } + } + /* cleanup and return error */ + freeaddrinfo(resolved); +- *ps = sock; ++ /* here, if err is set, we failed */ + return err; + } + + /*-------------------------------------------------------------------------*\ +-* Some systems do not provide these so that we provide our own. ++* Some systems do not provide these so that we provide our own. + \*-------------------------------------------------------------------------*/ + #ifdef LUASOCKET_INET_ATON + int inet_aton(const char *cp, struct in_addr *inp) +@@ -512,7 +519,7 @@ int inet_aton(const char *cp, struct in_addr *inp) + #endif + + #ifdef LUASOCKET_INET_PTON +-int inet_pton(int af, const char *src, void *dst) ++int inet_pton(int af, const char *src, void *dst) + { + struct addrinfo hints, *res; + int ret = 1; +@@ -529,7 +536,7 @@ int inet_pton(int af, const char *src, void *dst) + } else { + ret = -1; + } +- freeaddrinfo(res); ++ freeaddrinfo(res); + return ret; + } + +diff --git a/src/inet.h b/src/inet.h +index 1f1a96a..feb3541 100644 +--- a/src/inet.h ++++ b/src/inet.h +@@ -1,12 +1,12 @@ +-#ifndef INET_H +-#define INET_H ++#ifndef INET_H ++#define INET_H + /*=========================================================================*\ + * Internet domain functions + * LuaSocket toolkit + * + * This module implements the creation and connection of internet domain + * sockets, on top of the socket.h interface, and the interface of with the +-* resolver. ++* resolver. + * + * The function inet_aton is provided for the platforms where it is not + * available. The module also implements the interface of the internet +@@ -24,11 +24,11 @@ + + int inet_open(lua_State *L); + +-const char *inet_trycreate(p_socket ps, int family, int type); ++const char *inet_trycreate(p_socket ps, int family, int type, int protocol); + const char *inet_tryconnect(p_socket ps, int *family, const char *address, + const char *serv, p_timeout tm, struct addrinfo *connecthints); +-const char *inet_trybind(p_socket ps, const char *address, const char *serv, +- struct addrinfo *bindhints); ++const char *inet_trybind(p_socket ps, int *family, const char *address, ++ const char *serv, struct addrinfo *bindhints); + const char *inet_trydisconnect(p_socket ps, int family, p_timeout tm); + const char *inet_tryaccept(p_socket server, int family, p_socket client, p_timeout tm); + +diff --git a/src/io.c b/src/io.c +index 35f46f7..a4230ce 100644 +--- a/src/io.c ++++ b/src/io.c +@@ -25,6 +25,6 @@ const char *io_strerror(int err) { + case IO_DONE: return NULL; + case IO_CLOSED: return "closed"; + case IO_TIMEOUT: return "timeout"; +- default: return "unknown error"; ++ default: return "unknown error"; + } + } +diff --git a/src/io.h b/src/io.h +index 76a3e58..8cca08a 100644 +--- a/src/io.h ++++ b/src/io.h +@@ -22,7 +22,7 @@ enum { + IO_DONE = 0, /* operation completed successfully */ + IO_TIMEOUT = -1, /* operation timed out */ + IO_CLOSED = -2, /* the connection has been closed */ +- IO_UNKNOWN = -3 ++ IO_UNKNOWN = -3 + }; + + /* interface to error message function */ +diff --git a/src/ltn12.lua b/src/ltn12.lua +index 5b10f56..575c5a7 100644 +--- a/src/ltn12.lua ++++ b/src/ltn12.lua +@@ -9,6 +9,7 @@ + ----------------------------------------------------------------------------- + local string = require("string") + local table = require("table") ++local unpack = unpack or table.unpack + local base = _G + local _M = {} + if module then -- heuristic for exporting a global package table +@@ -21,6 +22,9 @@ _M.source = source + _M.sink = sink + _M.pump = pump + ++local unpack = unpack or table.unpack ++local select = base.select ++ + -- 2048 seems to be better in windows... + _M.BLOCKSIZE = 2048 + _M._VERSION = "LTN12 1.0.3" +@@ -42,7 +46,7 @@ end + -- (thanks to Wim Couwenberg) + function filter.chain(...) + local arg = {...} +- local n = select('#',...) ++ local n = base.select('#',...) + local top, index = 1, 1 + local retry = "" + return function(chunk) +@@ -139,7 +143,9 @@ function source.rewind(src) + end + end + +-function source.chain(src, f) ++-- chains a source with one or several filter(s) ++function source.chain(src, f, ...) ++ if ... then f=filter.chain(f, ...) end + base.assert(src and f) + local last_in, last_out = "", "" + local state = "feeding" +@@ -254,8 +260,13 @@ function sink.error(err) + end + end + +--- chains a sink with a filter +-function sink.chain(f, snk) ++-- chains a sink with one or several filter(s) ++function sink.chain(f, snk, ...) ++ if ... then ++ local args = { f, snk, ... } ++ snk = table.remove(args, #args) ++ f = filter.chain(unpack(args)) ++ end + base.assert(f and snk) + return function(chunk, err) + if chunk ~= "" then +diff --git a/src/luasocket.c b/src/luasocket.c +index e6ee747..7d9c802 100644 +--- a/src/luasocket.c ++++ b/src/luasocket.c +@@ -17,7 +17,7 @@ + \*=========================================================================*/ + #include "lua.h" + #include "lauxlib.h" +- ++#include "compat.h" + + /*=========================================================================*\ + * LuaSocket includes +@@ -64,7 +64,7 @@ static luaL_Reg func[] = { + * Skip a few arguments + \*-------------------------------------------------------------------------*/ + static int global_skip(lua_State *L) { +- int amount = luaL_checkint(L, 1); ++ int amount = luaL_checkinteger(L, 1); + int ret = lua_gettop(L) - amount - 1; + return ret >= 0 ? ret : 0; + } +@@ -78,26 +78,14 @@ static int global_unload(lua_State *L) { + return 0; + } + +-#if LUA_VERSION_NUM > 501 +-int luaL_typerror (lua_State *L, int narg, const char *tname) { +- const char *msg = lua_pushfstring(L, "%s expected, got %s", +- tname, luaL_typename(L, narg)); +- return luaL_argerror(L, narg, msg); +-} +-#endif +- + /*-------------------------------------------------------------------------*\ + * Setup basic stuff. + \*-------------------------------------------------------------------------*/ + static int base_open(lua_State *L) { + if (socket_open()) { + /* export functions (and leave namespace table on top of stack) */ +-#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE) + lua_newtable(L); + luaL_setfuncs(L, func, 0); +-#else +- luaL_openlib(L, "socket", func, 0); +-#endif + #ifdef LUASOCKET_DEBUG + lua_pushstring(L, "_DEBUG"); + lua_pushboolean(L, 1); +diff --git a/src/makefile b/src/makefile +index c24e61b..adf687f 100644 +--- a/src/makefile ++++ b/src/makefile +@@ -20,15 +20,17 @@ PLAT?=linux + # lua version to build against + LUAV?=5.1 + ++# MYCFLAGS: to be set by user if needed ++MYCFLAGS= ++ ++# MYLDFLAGS: to be set by user if needed ++MYLDFLAGS= ++ + # DEBUG: NODEBUG DEBUG + # debug mode causes luasocket to collect and returns timing information useful + # for testing and debugging luasocket itself + DEBUG?=NODEBUG + +-# COMPAT: COMPAT NOCOMPAT +-# when compiling for 5.2, use LUA_COMPAT_MODULE +-COMPAT?=NOCOMPAT +- + # where lua headers are found for macosx builds + # LUAINC_macosx: + # /opt/local/include +@@ -40,7 +42,6 @@ LUAPREFIX_macosx?=/opt/local + CDIR_macosx?=lib/lua/$(LUAV) + LDIR_macosx?=share/lua/$(LUAV) + +- + # LUAINC_linux: + # /usr/include/lua$(LUAV) + # /usr/local/include +@@ -52,8 +53,17 @@ LUAPREFIX_linux?=/usr/local + CDIR_linux?=lib/lua/$(LUAV) + LDIR_linux?=share/lua/$(LUAV) + ++# LUAINC_freebsd: ++# /usr/local/include/lua$(LUAV) ++# where lua headers are found for freebsd builds ++LUAINC_freebsd_base?=/usr/local/include/ ++LUAINC_freebsd?=$(LUAINC_freebsd_base)/lua$(LUAV) ++LUAPREFIX_freebsd?=/usr/local/ ++CDIR_freebsd?=lib/lua/$(LUAV) ++LDIR_freebsd?=share/lua/$(LUAV) ++ + # where lua headers are found for mingw builds +-# LUAINC_mingw: ++# LUAINC_mingw: + # /opt/local/include + LUAINC_mingw_base?=/usr/include + LUAINC_mingw?=$(LUAINC_mingw_base)/lua/$(LUAV) +@@ -67,13 +77,21 @@ LDIR_mingw?=lua/$(LUAV)/lua + # LUAINC_win32: + # LUALIB_win32: + # where lua headers and libraries are found for win32 builds +-LUAINC_win32_base?= +-LUAINC_win32?=$(LUAINC_win32_base)/lua/$(LUAV) +-PLATFORM_win32?=Release + LUAPREFIX_win32?= +-CDIR_win32?=lua/$(LUAV)/$(PLATFORM_win32) +-LDIR_win32?=lua/$(LUAV)/$(PLATFORM_win32)/lua +-LUALIB_win32?=$(LUAPREFIX_win32)/lua/$(LUAV)/$(PLATFORM_win32) ++LUAINC_win32?=$(LUAPREFIX_win32)/include/lua/$(LUAV) ++PLATFORM_win32?=Release ++CDIR_win32?=bin/lua/$(LUAV)/$(PLATFORM_win32) ++LDIR_win32?=bin/lua/$(LUAV)/$(PLATFORM_win32)/lua ++LUALIB_win32?=$(LUAPREFIX_win32)/lib/lua/$(LUAV)/$(PLATFORM_win32) ++LUALIBNAME_win32?=lua$(subst .,,$(LUAV)).lib ++ ++ ++# LUAINC_solaris: ++LUAINC_solaris_base?=/usr/include ++LUAINC_solaris?=$(LUAINC_solaris_base)/lua/$(LUAV) ++LUAPREFIX_solaris?=/usr/local ++CDIR_solaris?=lib/lua/$(LUAV) ++LDIR_solaris?=share/lua/$(LUAV) + + # prefix: /usr/local /usr /opt/local /sw + # the top of the default install tree +@@ -121,7 +139,7 @@ print: + #------ + # Supported platforms + # +-PLATS= macosx linux win32 mingw ++PLATS= macosx linux win32 mingw solaris + + #------ + # Compiler and linker settings +@@ -129,11 +147,11 @@ PLATS= macosx linux win32 mingw + SO_macosx=so + O_macosx=o + CC_macosx=gcc +-DEF_macosx= -DLUASOCKET_$(DEBUG) -DUNIX_HAS_SUN_LEN -DLUA_$(COMPAT)_MODULE \ ++DEF_macosx= -DLUASOCKET_$(DEBUG) -DUNIX_HAS_SUN_LEN \ + -DLUASOCKET_API='__attribute__((visibility("default")))' \ + -DUNIX_API='__attribute__((visibility("default")))' \ + -DMIME_API='__attribute__((visibility("default")))' +-CFLAGS_macosx= -I$(LUAINC) $(DEF) -pedantic -Wall -O2 -fno-common \ ++CFLAGS_macosx= -I$(LUAINC) $(DEF) -Wall -O2 -fno-common \ + -fvisibility=hidden + LDFLAGS_macosx= -bundle -undefined dynamic_lookup -o + LD_macosx= export MACOSX_DEPLOYMENT_TARGET="10.3"; gcc +@@ -145,11 +163,11 @@ SOCKET_macosx=usocket.o + SO_linux=so + O_linux=o + CC_linux=gcc +-DEF_linux=-DLUASOCKET_$(DEBUG) -DLUA_$(COMPAT)_MODULE \ ++DEF_linux=-DLUASOCKET_$(DEBUG) \ + -DLUASOCKET_API='__attribute__((visibility("default")))' \ + -DUNIX_API='__attribute__((visibility("default")))' \ + -DMIME_API='__attribute__((visibility("default")))' +-CFLAGS_linux= -I$(LUAINC) $(DEF) -pedantic -Wall -Wshadow -Wextra \ ++CFLAGS_linux= -I$(LUAINC) $(DEF) -Wall -Wshadow -Wextra \ + -Wimplicit -O2 -ggdb3 -fpic -fvisibility=hidden + LDFLAGS_linux=-O -shared -fpic -o + LD_linux=gcc +@@ -157,14 +175,46 @@ SOCKET_linux=usocket.o + + #------ + # Compiler and linker settings ++# for FreeBSD ++SO_freebsd=so ++O_freebsd=o ++CC_freebsd=gcc ++DEF_freebsd=-DLUASOCKET_$(DEBUG) \ ++ -DLUASOCKET_API='__attribute__((visibility("default")))' \ ++ -DUNIX_API='__attribute__((visibility("default")))' \ ++ -DMIME_API='__attribute__((visibility("default")))' ++CFLAGS_freebsd= -I$(LUAINC) $(DEF) -Wall -Wshadow -Wextra \ ++ -Wimplicit -O2 -ggdb3 -fpic -fvisibility=hidden ++LDFLAGS_freebsd=-O -shared -fpic -o ++LD_freebsd=gcc ++SOCKET_freebsd=usocket.o ++ ++#------ ++# Compiler and linker settings ++# for Solaris ++SO_solaris=so ++O_solaris=o ++CC_solaris=gcc ++DEF_solaris=-DLUASOCKET_$(DEBUG) \ ++ -DLUASOCKET_API='__attribute__((visibility("default")))' \ ++ -DUNIX_API='__attribute__((visibility("default")))' \ ++ -DMIME_API='__attribute__((visibility("default")))' ++CFLAGS_solaris=-I$(LUAINC) $(DEF) -Wall -Wshadow -Wextra \ ++ -Wimplicit -O2 -ggdb3 -fpic -fvisibility=hidden ++LDFLAGS_solaris=-lnsl -lsocket -lresolv -O -shared -fpic -o ++LD_solaris=gcc ++SOCKET_solaris=usocket.o ++ ++#------ ++# Compiler and linker settings + # for MingW + SO_mingw=dll + O_mingw=o + CC_mingw=gcc +-DEF_mingw= -DLUASOCKET_INET_PTON -DLUASOCKET_$(DEBUG) -DLUA_$(COMPAT)_MODULE \ ++DEF_mingw= -DLUASOCKET_INET_PTON -DLUASOCKET_$(DEBUG) \ + -DWINVER=0x0501 -DLUASOCKET_API='__declspec(dllexport)' \ + -DMIME_API='__declspec(dllexport)' +-CFLAGS_mingw= -I$(LUAINC) $(DEF) -pedantic -Wall -O2 -fno-common \ ++CFLAGS_mingw= -I$(LUAINC) $(DEF) -Wall -O2 -fno-common \ + -fvisibility=hidden + LDFLAGS_mingw= $(LUALIB) -shared -Wl,-s -lws2_32 -o + LD_mingw=gcc +@@ -179,8 +229,7 @@ O_win32=obj + CC_win32=cl + DEF_win32= //D "WIN32" //D "NDEBUG" //D "_WINDOWS" //D "_USRDLL" \ + //D "LUASOCKET_API=__declspec(dllexport)" //D "_CRT_SECURE_NO_WARNINGS" \ +- //D "_WINDLL" //D "LUA_$(COMPAT)_MODULE" \ +- //D "MIME_API=__declspec(dllexport)" \ ++ //D "_WINDLL" //D "MIME_API=__declspec(dllexport)" \ + //D "LUASOCKET_$(DEBUG)" + CFLAGS_win32=//I "$(LUAINC)" $(DEF) //O2 //Ot //MD //W3 //nologo + LDFLAGS_win32= //nologo //link //NOLOGO //DLL //INCREMENTAL:NO \ +@@ -188,7 +237,7 @@ LDFLAGS_win32= //nologo //link //NOLOGO //DLL //INCREMENTAL:NO \ + //MANIFESTUAC:"level='asInvoker' uiAccess='false'" \ + //SUBSYSTEM:WINDOWS //OPT:REF //OPT:ICF //DYNAMICBASE:NO \ + //MACHINE:X86 /LIBPATH:"$(shell cmd //c echo $(LUALIB))" \ +- lua$(subst .,,$(LUAV)).lib ws2_32.lib //OUT: ++ $(LUALIBNAME_win32) ws2_32.lib //OUT: + LD_win32=cl + SOCKET_win32=wsocket.obj + +@@ -204,8 +253,8 @@ SO=$(SO_$(PLAT)) + O=$(O_$(PLAT)) + SOCKET_V=3.0-rc1 + MIME_V=1.0.3 +-SOCKET_SO=socket.$(SO).$(SOCKET_V) +-MIME_SO=mime.$(SO).$(MIME_V) ++SOCKET_SO=socket-$(SOCKET_V).$(SO) ++MIME_SO=mime-$(MIME_V).$(SO) + UNIX_SO=unix.$(SO) + SERIAL_SO=serial.$(SO) + SOCKET=$(SOCKET_$(PLAT)) +@@ -215,8 +264,8 @@ SOCKET=$(SOCKET_$(PLAT)) + # + CC=$(CC_$(PLAT)) + DEF=$(DEF_$(PLAT)) +-CFLAGS=$(CFLAGS_$(PLAT)) +-LDFLAGS=$(LDFLAGS_$(PLAT)) ++CFLAGS=$(MYCFLAGS) $(CFLAGS_$(PLAT)) ++LDFLAGS=$(MYLDFLAGS) $(LDFLAGS_$(PLAT)) + LD=$(LD_$(PLAT)) + LUAINC= $(LUAINC_$(PLAT)) + LUALIB= $(LUALIB_$(PLAT)) +@@ -230,6 +279,7 @@ SOCKET_OBJS= \ + buffer.$(O) \ + io.$(O) \ + auxiliar.$(O) \ ++ compat.$(O) \ + options.$(O) \ + inet.$(O) \ + $(SOCKET) \ +@@ -242,7 +292,8 @@ SOCKET_OBJS= \ + # Modules belonging mime-core + # + MIME_OBJS= \ +- mime.$(O) ++ mime.$(O) \ ++ compat.$(O) + + #------ + # Modules belonging unix (local domain sockets) +@@ -259,7 +310,7 @@ UNIX_OBJS=\ + #------ + # Modules belonging to serial (device streams) + # +-SERIAL_OBJS:=\ ++SERIAL_OBJS=\ + buffer.$(O) \ + auxiliar.$(O) \ + options.$(O) \ +@@ -289,6 +340,10 @@ TO_TOP_LDIR= \ + # + default: $(PLAT) + ++ ++freebsd: ++ $(MAKE) all-unix PLAT=freebsd ++ + macosx: + $(MAKE) all-unix PLAT=macosx + +@@ -300,6 +355,9 @@ linux: + + mingw: + $(MAKE) all PLAT=mingw ++ ++solaris: ++ $(MAKE) all-unix PLAT=solaris + + none: + @echo "Please run" +@@ -349,6 +407,7 @@ clean: + #------ + # List of dependencies + # ++compat.$(O): compat.c compat.h + auxiliar.$(O): auxiliar.c auxiliar.h + buffer.$(O): buffer.c buffer.h io.h timeout.h + except.$(O): except.c except.h +diff --git a/src/mbox.lua b/src/mbox.lua +index 7724ae2..ed9e781 100644 +--- a/src/mbox.lua ++++ b/src/mbox.lua +@@ -61,7 +61,7 @@ function _M.parse_from(from) + end + + function _M.split_mbox(mbox_s) +- mbox = {} ++ local mbox = {} + mbox_s = string.gsub(mbox_s, "\r\n", "\n") .."\n\nFrom \n" + local nj, i, j = 1, 1, 1 + while 1 do +diff --git a/src/mime.c b/src/mime.c +index dd37dcf..ed44104 100644 +--- a/src/mime.c ++++ b/src/mime.c +@@ -6,10 +6,7 @@ + + #include "lua.h" + #include "lauxlib.h" +- +-#if !defined(LUA_VERSION_NUM) || (LUA_VERSION_NUM < 501) +-#include "compat-5.1.h" +-#endif ++#include "compat.h" + + #include "mime.h" + +@@ -41,7 +38,7 @@ static size_t b64decode(UC c, UC *input, size_t size, luaL_Buffer *buffer); + static void qpsetup(UC *class, UC *unbase); + static void qpquote(UC c, luaL_Buffer *buffer); + static size_t qpdecode(UC c, UC *input, size_t size, luaL_Buffer *buffer); +-static size_t qpencode(UC c, UC *input, size_t size, ++static size_t qpencode(UC c, UC *input, size_t size, + const char *marker, luaL_Buffer *buffer); + static size_t qppad(UC *input, size_t size, luaL_Buffer *buffer); + +@@ -81,12 +78,8 @@ static UC b64unbase[256]; + \*-------------------------------------------------------------------------*/ + MIME_API int luaopen_mime_core(lua_State *L) + { +-#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE) + lua_newtable(L); + luaL_setfuncs(L, func, 0); +-#else +- luaL_openlib(L, "mime", func, 0); +-#endif + /* make version string available to scripts */ + lua_pushstring(L, "_VERSION"); + lua_pushstring(L, MIME_VERSION); +@@ -103,15 +96,15 @@ MIME_API int luaopen_mime_core(lua_State *L) + /*-------------------------------------------------------------------------*\ + * Incrementaly breaks a string into lines. The string can have CRLF breaks. + * A, n = wrp(l, B, length) +-* A is a copy of B, broken into lines of at most 'length' bytes. +-* 'l' is how many bytes are left for the first line of B. +-* 'n' is the number of bytes left in the last line of A. ++* A is a copy of B, broken into lines of at most 'length' bytes. ++* 'l' is how many bytes are left for the first line of B. ++* 'n' is the number of bytes left in the last line of A. + \*-------------------------------------------------------------------------*/ + static int mime_global_wrp(lua_State *L) + { + size_t size = 0; + int left = (int) luaL_checknumber(L, 1); +- const UC *input = (UC *) luaL_optlstring(L, 2, NULL, &size); ++ const UC *input = (const UC *) luaL_optlstring(L, 2, NULL, &size); + const UC *last = input + size; + int length = (int) luaL_optnumber(L, 3, 76); + luaL_Buffer buffer; +@@ -123,7 +116,7 @@ static int mime_global_wrp(lua_State *L) + else lua_pushnil(L); + lua_pushnumber(L, length); + return 2; +- } ++ } + luaL_buffinit(L, &buffer); + while (input < last) { + switch (*input) { +@@ -150,9 +143,9 @@ static int mime_global_wrp(lua_State *L) + } + + /*-------------------------------------------------------------------------*\ +-* Fill base64 decode map. ++* Fill base64 decode map. + \*-------------------------------------------------------------------------*/ +-static void b64setup(UC *unbase) ++static void b64setup(UC *unbase) + { + int i; + for (i = 0; i <= 255; i++) unbase[i] = (UC) 255; +@@ -161,11 +154,11 @@ static void b64setup(UC *unbase) + } + + /*-------------------------------------------------------------------------*\ +-* Acumulates bytes in input buffer until 3 bytes are available. ++* Acumulates bytes in input buffer until 3 bytes are available. + * Translate the 3 bytes into Base64 form and append to buffer. + * Returns new number of bytes in buffer. + \*-------------------------------------------------------------------------*/ +-static size_t b64encode(UC c, UC *input, size_t size, ++static size_t b64encode(UC c, UC *input, size_t size, + luaL_Buffer *buffer) + { + input[size++] = c; +@@ -174,7 +167,7 @@ static size_t b64encode(UC c, UC *input, size_t size, + unsigned long value = 0; + value += input[0]; value <<= 8; + value += input[1]; value <<= 8; +- value += input[2]; ++ value += input[2]; + code[3] = b64base[value & 0x3f]; value >>= 6; + code[2] = b64base[value & 0x3f]; value >>= 6; + code[1] = b64base[value & 0x3f]; value >>= 6; +@@ -186,11 +179,11 @@ static size_t b64encode(UC c, UC *input, size_t size, + } + + /*-------------------------------------------------------------------------*\ +-* Encodes the Base64 last 1 or 2 bytes and adds padding '=' ++* Encodes the Base64 last 1 or 2 bytes and adds padding '=' + * Result, if any, is appended to buffer. + * Returns 0. + \*-------------------------------------------------------------------------*/ +-static size_t b64pad(const UC *input, size_t size, ++static size_t b64pad(const UC *input, size_t size, + luaL_Buffer *buffer) + { + unsigned long value = 0; +@@ -203,7 +196,7 @@ static size_t b64pad(const UC *input, size_t size, + luaL_addlstring(buffer, (char *) code, 4); + break; + case 2: +- value = input[0]; value <<= 8; ++ value = input[0]; value <<= 8; + value |= input[1]; value <<= 2; + code[2] = b64base[value & 0x3f]; value >>= 6; + code[1] = b64base[value & 0x3f]; value >>= 6; +@@ -217,11 +210,11 @@ static size_t b64pad(const UC *input, size_t size, + } + + /*-------------------------------------------------------------------------*\ +-* Acumulates bytes in input buffer until 4 bytes are available. ++* Acumulates bytes in input buffer until 4 bytes are available. + * Translate the 4 bytes from Base64 form and append to buffer. + * Returns new number of bytes in buffer. + \*-------------------------------------------------------------------------*/ +-static size_t b64decode(UC c, UC *input, size_t size, ++static size_t b64decode(UC c, UC *input, size_t size, + luaL_Buffer *buffer) + { + /* ignore invalid characters */ +@@ -239,7 +232,7 @@ static size_t b64decode(UC c, UC *input, size_t size, + decoded[1] = (UC) (value & 0xff); value >>= 8; + decoded[0] = (UC) value; + /* take care of paddding */ +- valid = (input[2] == '=') ? 1 : (input[3] == '=') ? 2 : 3; ++ valid = (input[2] == '=') ? 1 : (input[3] == '=') ? 2 : 3; + luaL_addlstring(buffer, (char *) decoded, valid); + return 0; + /* need more data */ +@@ -251,7 +244,7 @@ static size_t b64decode(UC c, UC *input, size_t size, + * A, B = b64(C, D) + * A is the encoded version of the largest prefix of C .. D that is + * divisible by 3. B has the remaining bytes of C .. D, *without* encoding. +-* The easiest thing would be to concatenate the two strings and ++* The easiest thing would be to concatenate the two strings and + * encode the result, but we can't afford that or Lua would dupplicate + * every chunk we received. + \*-------------------------------------------------------------------------*/ +@@ -259,7 +252,7 @@ static int mime_global_b64(lua_State *L) + { + UC atom[3]; + size_t isize = 0, asize = 0; +- const UC *input = (UC *) luaL_optlstring(L, 1, NULL, &isize); ++ const UC *input = (const UC *) luaL_optlstring(L, 1, NULL, &isize); + const UC *last = input + isize; + luaL_Buffer buffer; + /* end-of-input blackhole */ +@@ -272,9 +265,9 @@ static int mime_global_b64(lua_State *L) + lua_settop(L, 2); + /* process first part of the input */ + luaL_buffinit(L, &buffer); +- while (input < last) ++ while (input < last) + asize = b64encode(*input++, atom, asize, &buffer); +- input = (UC *) luaL_optlstring(L, 2, NULL, &isize); ++ input = (const UC *) luaL_optlstring(L, 2, NULL, &isize); + /* if second part is nil, we are done */ + if (!input) { + size_t osize = 0; +@@ -288,7 +281,7 @@ static int mime_global_b64(lua_State *L) + } + /* otherwise process the second part */ + last = input + isize; +- while (input < last) ++ while (input < last) + asize = b64encode(*input++, atom, asize, &buffer); + luaL_pushresult(&buffer); + lua_pushlstring(L, (char *) atom, asize); +@@ -305,7 +298,7 @@ static int mime_global_unb64(lua_State *L) + { + UC atom[4]; + size_t isize = 0, asize = 0; +- const UC *input = (UC *) luaL_optlstring(L, 1, NULL, &isize); ++ const UC *input = (const UC *) luaL_optlstring(L, 1, NULL, &isize); + const UC *last = input + isize; + luaL_Buffer buffer; + /* end-of-input blackhole */ +@@ -318,9 +311,9 @@ static int mime_global_unb64(lua_State *L) + lua_settop(L, 2); + /* process first part of the input */ + luaL_buffinit(L, &buffer); +- while (input < last) ++ while (input < last) + asize = b64decode(*input++, atom, asize, &buffer); +- input = (UC *) luaL_optlstring(L, 2, NULL, &isize); ++ input = (const UC *) luaL_optlstring(L, 2, NULL, &isize); + /* if second is nil, we are done */ + if (!input) { + size_t osize = 0; +@@ -333,7 +326,7 @@ static int mime_global_unb64(lua_State *L) + } + /* otherwise, process the rest of the input */ + last = input + isize; +- while (input < last) ++ while (input < last) + asize = b64decode(*input++, atom, asize, &buffer); + luaL_pushresult(&buffer); + lua_pushlstring(L, (char *) atom, asize); +@@ -349,7 +342,7 @@ static int mime_global_unb64(lua_State *L) + * 9 and 32 can be plain, unless in the end of a line, where must be =XX + * encoded lines must be no longer than 76 not counting CRLF + * soft line-break are =CRLF +-* To encode one byte, we need to see the next two. ++* To encode one byte, we need to see the next two. + * Worst case is when we see a space, and wonder if a CRLF is comming + \*-------------------------------------------------------------------------*/ + /*-------------------------------------------------------------------------*\ +@@ -362,7 +355,7 @@ static void qpsetup(UC *cl, UC *unbase) + for (i = 0; i < 256; i++) cl[i] = QP_QUOTED; + for (i = 33; i <= 60; i++) cl[i] = QP_PLAIN; + for (i = 62; i <= 126; i++) cl[i] = QP_PLAIN; +- cl['\t'] = QP_IF_LAST; ++ cl['\t'] = QP_IF_LAST; + cl[' '] = QP_IF_LAST; + cl['\r'] = QP_CR; + for (i = 0; i < 256; i++) unbase[i] = 255; +@@ -388,9 +381,9 @@ static void qpquote(UC c, luaL_Buffer *buffer) + + /*-------------------------------------------------------------------------*\ + * Accumulate characters until we are sure about how to deal with them. +-* Once we are sure, output to the buffer, in the correct form. ++* Once we are sure, output to the buffer, in the correct form. + \*-------------------------------------------------------------------------*/ +-static size_t qpencode(UC c, UC *input, size_t size, ++static size_t qpencode(UC c, UC *input, size_t size, + const char *marker, luaL_Buffer *buffer) + { + input[size++] = c; +@@ -431,7 +424,7 @@ static size_t qpencode(UC c, UC *input, size_t size, + } + + /*-------------------------------------------------------------------------*\ +-* Deal with the final characters ++* Deal with the final characters + \*-------------------------------------------------------------------------*/ + static size_t qppad(UC *input, size_t size, luaL_Buffer *buffer) + { +@@ -448,8 +441,8 @@ static size_t qppad(UC *input, size_t size, luaL_Buffer *buffer) + * Incrementally converts a string to quoted-printable + * A, B = qp(C, D, marker) + * Marker is the text to be used to replace CRLF sequences found in A. +-* A is the encoded version of the largest prefix of C .. D that +-* can be encoded without doubts. ++* A is the encoded version of the largest prefix of C .. D that ++* can be encoded without doubts. + * B has the remaining bytes of C .. D, *without* encoding. + \*-------------------------------------------------------------------------*/ + static int mime_global_qp(lua_State *L) +@@ -457,7 +450,7 @@ static int mime_global_qp(lua_State *L) + + size_t asize = 0, isize = 0; + UC atom[3]; +- const UC *input = (UC *) luaL_optlstring(L, 1, NULL, &isize); ++ const UC *input = (const UC *) luaL_optlstring(L, 1, NULL, &isize); + const UC *last = input + isize; + const char *marker = luaL_optstring(L, 3, CRLF); + luaL_Buffer buffer; +@@ -473,7 +466,7 @@ static int mime_global_qp(lua_State *L) + luaL_buffinit(L, &buffer); + while (input < last) + asize = qpencode(*input++, atom, asize, marker, &buffer); +- input = (UC *) luaL_optlstring(L, 2, NULL, &isize); ++ input = (const UC *) luaL_optlstring(L, 2, NULL, &isize); + /* if second part is nil, we are done */ + if (!input) { + asize = qppad(atom, asize, &buffer); +@@ -493,7 +486,7 @@ static int mime_global_qp(lua_State *L) + + /*-------------------------------------------------------------------------*\ + * Accumulate characters until we are sure about how to deal with them. +-* Once we are sure, output the to the buffer, in the correct form. ++* Once we are sure, output the to the buffer, in the correct form. + \*-------------------------------------------------------------------------*/ + static size_t qpdecode(UC c, UC *input, size_t size, luaL_Buffer *buffer) { + int d; +@@ -501,8 +494,8 @@ static size_t qpdecode(UC c, UC *input, size_t size, luaL_Buffer *buffer) { + /* deal with all characters we can deal */ + switch (input[0]) { + /* if we have an escape character */ +- case '=': +- if (size < 3) return size; ++ case '=': ++ if (size < 3) return size; + /* eliminate soft line break */ + if (input[1] == '\r' && input[2] == '\n') return 0; + /* decode quoted representation */ +@@ -512,7 +505,7 @@ static size_t qpdecode(UC c, UC *input, size_t size, luaL_Buffer *buffer) { + else luaL_addchar(buffer, (char) ((c << 4) + d)); + return 0; + case '\r': +- if (size < 2) return size; ++ if (size < 2) return size; + if (input[1] == '\n') luaL_addlstring(buffer, (char *)input, 2); + return 0; + default: +@@ -525,15 +518,15 @@ static size_t qpdecode(UC c, UC *input, size_t size, luaL_Buffer *buffer) { + /*-------------------------------------------------------------------------*\ + * Incrementally decodes a string in quoted-printable + * A, B = qp(C, D) +-* A is the decoded version of the largest prefix of C .. D that +-* can be decoded without doubts. ++* A is the decoded version of the largest prefix of C .. D that ++* can be decoded without doubts. + * B has the remaining bytes of C .. D, *without* decoding. + \*-------------------------------------------------------------------------*/ + static int mime_global_unqp(lua_State *L) + { + size_t asize = 0, isize = 0; + UC atom[3]; +- const UC *input = (UC *) luaL_optlstring(L, 1, NULL, &isize); ++ const UC *input = (const UC *) luaL_optlstring(L, 1, NULL, &isize); + const UC *last = input + isize; + luaL_Buffer buffer; + /* end-of-input blackhole */ +@@ -548,14 +541,14 @@ static int mime_global_unqp(lua_State *L) + luaL_buffinit(L, &buffer); + while (input < last) + asize = qpdecode(*input++, atom, asize, &buffer); +- input = (UC *) luaL_optlstring(L, 2, NULL, &isize); ++ input = (const UC *) luaL_optlstring(L, 2, NULL, &isize); + /* if second part is nil, we are done */ + if (!input) { + luaL_pushresult(&buffer); + if (!(*lua_tostring(L, -1))) lua_pushnil(L); + lua_pushnil(L); + return 2; +- } ++ } + /* otherwise process rest of input */ + last = input + isize; + while (input < last) +@@ -568,9 +561,9 @@ static int mime_global_unqp(lua_State *L) + /*-------------------------------------------------------------------------*\ + * Incrementally breaks a quoted-printed string into lines + * A, n = qpwrp(l, B, length) +-* A is a copy of B, broken into lines of at most 'length' bytes. +-* 'l' is how many bytes are left for the first line of B. +-* 'n' is the number of bytes left in the last line of A. ++* A is a copy of B, broken into lines of at most 'length' bytes. ++* 'l' is how many bytes are left for the first line of B. ++* 'n' is the number of bytes left in the last line of A. + * There are two complications: lines can't be broken in the middle + * of an encoded =XX, and there might be line breaks already + \*-------------------------------------------------------------------------*/ +@@ -578,7 +571,7 @@ static int mime_global_qpwrp(lua_State *L) + { + size_t size = 0; + int left = (int) luaL_checknumber(L, 1); +- const UC *input = (UC *) luaL_optlstring(L, 2, NULL, &size); ++ const UC *input = (const UC *) luaL_optlstring(L, 2, NULL, &size); + const UC *last = input + size; + int length = (int) luaL_optnumber(L, 3, 76); + luaL_Buffer buffer; +@@ -603,11 +596,11 @@ static int mime_global_qpwrp(lua_State *L) + if (left <= 3) { + left = length; + luaL_addstring(&buffer, EQCRLF); +- } ++ } + luaL_addchar(&buffer, *input); + left--; + break; +- default: ++ default: + if (left <= 1) { + left = length; + luaL_addstring(&buffer, EQCRLF); +@@ -635,7 +628,7 @@ static int mime_global_qpwrp(lua_State *L) + * last is the previous character + \*-------------------------------------------------------------------------*/ + #define eolcandidate(c) (c == '\r' || c == '\n') +-static int eolprocess(int c, int last, const char *marker, ++static int eolprocess(int c, int last, const char *marker, + luaL_Buffer *buffer) + { + if (eolcandidate(c)) { +@@ -653,15 +646,15 @@ static int eolprocess(int c, int last, const char *marker, + } + + /*-------------------------------------------------------------------------*\ +-* Converts a string to uniform EOL convention. ++* Converts a string to uniform EOL convention. + * A, n = eol(o, B, marker) + * A is the converted version of the largest prefix of B that can be +-* converted unambiguously. 'o' is the context returned by the previous ++* converted unambiguously. 'o' is the context returned by the previous + * call. 'n' is the new context. + \*-------------------------------------------------------------------------*/ + static int mime_global_eol(lua_State *L) + { +- int ctx = luaL_checkint(L, 1); ++ int ctx = luaL_checkinteger(L, 1); + size_t isize = 0; + const char *input = luaL_optlstring(L, 2, NULL, &isize); + const char *last = input + isize; +@@ -683,18 +676,18 @@ static int mime_global_eol(lua_State *L) + } + + /*-------------------------------------------------------------------------*\ +-* Takes one byte and stuff it if needed. ++* Takes one byte and stuff it if needed. + \*-------------------------------------------------------------------------*/ + static size_t dot(int c, size_t state, luaL_Buffer *buffer) + { + luaL_addchar(buffer, (char) c); + switch (c) { +- case '\r': ++ case '\r': + return 1; +- case '\n': +- return (state == 1)? 2: 0; +- case '.': +- if (state == 2) ++ case '\n': ++ return (state == 1)? 2: 0; ++ case '.': ++ if (state == 2) + luaL_addchar(buffer, '.'); + default: + return 0; +@@ -719,7 +712,7 @@ static int mime_global_dot(lua_State *L) + } + /* process all input */ + luaL_buffinit(L, &buffer); +- while (input < last) ++ while (input < last) + state = dot(*input++, state, &buffer); + luaL_pushresult(&buffer); + lua_pushnumber(L, (lua_Number) state); +diff --git a/src/options.c b/src/options.c +index 8ac2a14..20f4c28 100644 +--- a/src/options.c ++++ b/src/options.c +@@ -1,8 +1,8 @@ + /*=========================================================================*\ +-* Common option interface ++* Common option interface + * LuaSocket toolkit + \*=========================================================================*/ +-#include <string.h> ++#include <string.h> + + #include "lauxlib.h" + +@@ -20,9 +20,9 @@ static int opt_setboolean(lua_State *L, p_socket ps, int level, int name); + static int opt_getboolean(lua_State *L, p_socket ps, int level, int name); + static int opt_setint(lua_State *L, p_socket ps, int level, int name); + static int opt_getint(lua_State *L, p_socket ps, int level, int name); +-static int opt_set(lua_State *L, p_socket ps, int level, int name, ++static int opt_set(lua_State *L, p_socket ps, int level, int name, + void *val, int len); +-static int opt_get(lua_State *L, p_socket ps, int level, int name, ++static int opt_get(lua_State *L, p_socket ps, int level, int name, + void *val, int* len); + + /*=========================================================================*\ +@@ -60,29 +60,29 @@ int opt_meth_getoption(lua_State *L, p_opt opt, p_socket ps) + /* enables reuse of local address */ + int opt_set_reuseaddr(lua_State *L, p_socket ps) + { +- return opt_setboolean(L, ps, SOL_SOCKET, SO_REUSEADDR); ++ return opt_setboolean(L, ps, SOL_SOCKET, SO_REUSEADDR); + } + + int opt_get_reuseaddr(lua_State *L, p_socket ps) + { +- return opt_getboolean(L, ps, SOL_SOCKET, SO_REUSEADDR); ++ return opt_getboolean(L, ps, SOL_SOCKET, SO_REUSEADDR); + } + + /* enables reuse of local port */ + int opt_set_reuseport(lua_State *L, p_socket ps) + { +- return opt_setboolean(L, ps, SOL_SOCKET, SO_REUSEPORT); ++ return opt_setboolean(L, ps, SOL_SOCKET, SO_REUSEPORT); + } + + int opt_get_reuseport(lua_State *L, p_socket ps) + { +- return opt_getboolean(L, ps, SOL_SOCKET, SO_REUSEPORT); ++ return opt_getboolean(L, ps, SOL_SOCKET, SO_REUSEPORT); + } + + /* disables the Naggle algorithm */ + int opt_set_tcp_nodelay(lua_State *L, p_socket ps) + { +- return opt_setboolean(L, ps, IPPROTO_TCP, TCP_NODELAY); ++ return opt_setboolean(L, ps, IPPROTO_TCP, TCP_NODELAY); + } + + int opt_get_tcp_nodelay(lua_State *L, p_socket ps) +@@ -92,12 +92,12 @@ int opt_get_tcp_nodelay(lua_State *L, p_socket ps) + + int opt_set_keepalive(lua_State *L, p_socket ps) + { +- return opt_setboolean(L, ps, SOL_SOCKET, SO_KEEPALIVE); ++ return opt_setboolean(L, ps, SOL_SOCKET, SO_KEEPALIVE); + } + + int opt_get_keepalive(lua_State *L, p_socket ps) + { +- return opt_getboolean(L, ps, SOL_SOCKET, SO_KEEPALIVE); ++ return opt_getboolean(L, ps, SOL_SOCKET, SO_KEEPALIVE); + } + + int opt_set_dontroute(lua_State *L, p_socket ps) +@@ -105,11 +105,21 @@ int opt_set_dontroute(lua_State *L, p_socket ps) + return opt_setboolean(L, ps, SOL_SOCKET, SO_DONTROUTE); + } + ++int opt_get_dontroute(lua_State *L, p_socket ps) ++{ ++ return opt_getboolean(L, ps, SOL_SOCKET, SO_DONTROUTE); ++} ++ + int opt_set_broadcast(lua_State *L, p_socket ps) + { + return opt_setboolean(L, ps, SOL_SOCKET, SO_BROADCAST); + } + ++int opt_get_broadcast(lua_State *L, p_socket ps) ++{ ++ return opt_getboolean(L, ps, SOL_SOCKET, SO_BROADCAST); ++} ++ + int opt_set_ip6_unicast_hops(lua_State *L, p_socket ps) + { + return opt_setint(L, ps, IPPROTO_IPV6, IPV6_UNICAST_HOPS); +@@ -156,12 +166,12 @@ int opt_set_linger(lua_State *L, p_socket ps) + if (!lua_istable(L, 3)) auxiliar_typeerror(L,3,lua_typename(L, LUA_TTABLE)); + lua_pushstring(L, "on"); + lua_gettable(L, 3); +- if (!lua_isboolean(L, -1)) ++ if (!lua_isboolean(L, -1)) + luaL_argerror(L, 3, "boolean 'on' field expected"); + li.l_onoff = (u_short) lua_toboolean(L, -1); + lua_pushstring(L, "timeout"); + lua_gettable(L, 3); +- if (!lua_isnumber(L, -1)) ++ if (!lua_isnumber(L, -1)) + luaL_argerror(L, 3, "number 'timeout' field expected"); + li.l_linger = (u_short) lua_tonumber(L, -1); + return opt_set(L, ps, SOL_SOCKET, SO_LINGER, (char *) &li, sizeof(li)); +@@ -194,7 +204,7 @@ int opt_set_ip_multicast_if(lua_State *L, p_socket ps) + val.s_addr = htonl(INADDR_ANY); + if (strcmp(address, "*") && !inet_aton(address, &val)) + luaL_argerror(L, 3, "ip expected"); +- return opt_set(L, ps, IPPROTO_IP, IP_MULTICAST_IF, ++ return opt_set(L, ps, IPPROTO_IP, IP_MULTICAST_IF, + (char *) &val, sizeof(val)); + } + +@@ -250,17 +260,17 @@ static int opt_setmembership(lua_State *L, p_socket ps, int level, int name) + if (!lua_istable(L, 3)) auxiliar_typeerror(L,3,lua_typename(L, LUA_TTABLE)); + lua_pushstring(L, "multiaddr"); + lua_gettable(L, 3); +- if (!lua_isstring(L, -1)) ++ if (!lua_isstring(L, -1)) + luaL_argerror(L, 3, "string 'multiaddr' field expected"); +- if (!inet_aton(lua_tostring(L, -1), &val.imr_multiaddr)) ++ if (!inet_aton(lua_tostring(L, -1), &val.imr_multiaddr)) + luaL_argerror(L, 3, "invalid 'multiaddr' ip address"); + lua_pushstring(L, "interface"); + lua_gettable(L, 3); +- if (!lua_isstring(L, -1)) ++ if (!lua_isstring(L, -1)) + luaL_argerror(L, 3, "string 'interface' field expected"); + val.imr_interface.s_addr = htonl(INADDR_ANY); + if (strcmp(lua_tostring(L, -1), "*") && +- !inet_aton(lua_tostring(L, -1), &val.imr_interface)) ++ !inet_aton(lua_tostring(L, -1), &val.imr_interface)) + luaL_argerror(L, 3, "invalid 'interface' ip address"); + return opt_set(L, ps, level, name, (char *) &val, sizeof(val)); + } +@@ -272,14 +282,14 @@ static int opt_ip6_setmembership(lua_State *L, p_socket ps, int level, int name) + if (!lua_istable(L, 3)) auxiliar_typeerror(L,3,lua_typename(L, LUA_TTABLE)); + lua_pushstring(L, "multiaddr"); + lua_gettable(L, 3); +- if (!lua_isstring(L, -1)) ++ if (!lua_isstring(L, -1)) + luaL_argerror(L, 3, "string 'multiaddr' field expected"); +- if (!inet_pton(AF_INET6, lua_tostring(L, -1), &val.ipv6mr_multiaddr)) ++ if (!inet_pton(AF_INET6, lua_tostring(L, -1), &val.ipv6mr_multiaddr)) + luaL_argerror(L, 3, "invalid 'multiaddr' ip address"); + lua_pushstring(L, "interface"); + lua_gettable(L, 3); + /* By default we listen to interface on default route +- * (sigh). However, interface= can override it. We should ++ * (sigh). However, interface= can override it. We should + * support either number, or name for it. Waiting for + * windows port of if_nametoindex */ + if (!lua_isnil(L, -1)) { +@@ -291,7 +301,7 @@ static int opt_ip6_setmembership(lua_State *L, p_socket ps, int level, int name) + return opt_set(L, ps, level, name, (char *) &val, sizeof(val)); + } + +-static ++static + int opt_get(lua_State *L, p_socket ps, int level, int name, void *val, int* len) + { + socklen_t socklen = *len; +@@ -304,7 +314,7 @@ int opt_get(lua_State *L, p_socket ps, int level, int name, void *val, int* len) + return 0; + } + +-static ++static + int opt_set(lua_State *L, p_socket ps, int level, int name, void *val, int len) + { + if (setsockopt(*ps, level, name, (char *) val, len) < 0) { +diff --git a/src/options.h b/src/options.h +index 5657a06..19ba0df 100644 +--- a/src/options.h ++++ b/src/options.h +@@ -21,7 +21,6 @@ typedef t_opt *p_opt; + /* supported options for setoption */ + int opt_set_dontroute(lua_State *L, p_socket ps); + int opt_set_broadcast(lua_State *L, p_socket ps); +-int opt_set_reuseaddr(lua_State *L, p_socket ps); + int opt_set_tcp_nodelay(lua_State *L, p_socket ps); + int opt_set_keepalive(lua_State *L, p_socket ps); + int opt_set_linger(lua_State *L, p_socket ps); +@@ -40,18 +39,21 @@ int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps); + int opt_set_ip6_v6only(lua_State *L, p_socket ps); + + /* supported options for getoption */ ++int opt_get_dontroute(lua_State *L, p_socket ps); ++int opt_get_broadcast(lua_State *L, p_socket ps); + int opt_get_reuseaddr(lua_State *L, p_socket ps); ++int opt_get_reuseport(lua_State *L, p_socket ps); + int opt_get_tcp_nodelay(lua_State *L, p_socket ps); + int opt_get_keepalive(lua_State *L, p_socket ps); + int opt_get_linger(lua_State *L, p_socket ps); +-int opt_get_reuseaddr(lua_State *L, p_socket ps); + int opt_get_ip_multicast_loop(lua_State *L, p_socket ps); + int opt_get_ip_multicast_if(lua_State *L, p_socket ps); + int opt_get_error(lua_State *L, p_socket ps); + int opt_get_ip6_multicast_loop(lua_State *L, p_socket ps); + int opt_get_ip6_multicast_hops(lua_State *L, p_socket ps); + int opt_get_ip6_unicast_hops(lua_State *L, p_socket ps); +-int opt_get_ip6_v6only(lua_State *L, p_socket ps); ++int opt_get_ip6_v6only(lua_State *L, p_socket ps); ++int opt_get_reuseport(lua_State *L, p_socket ps); + + /* invokes the appropriate option handler */ + int opt_meth_setoption(lua_State *L, p_opt opt, p_socket ps); +diff --git a/src/pierror.h b/src/pierror.h +new file mode 100644 +index 0000000..cb773ab +--- /dev/null ++++ b/src/pierror.h +@@ -0,0 +1,28 @@ ++#ifndef PIERROR_H ++#define PIERROR_H ++/*=========================================================================*\ ++* Error messages ++* Defines platform independent error messages ++\*=========================================================================*/ ++ ++#define PIE_HOST_NOT_FOUND "host not found" ++#define PIE_ADDRINUSE "address already in use" ++#define PIE_ISCONN "already connected" ++#define PIE_ACCESS "permission denied" ++#define PIE_CONNREFUSED "connection refused" ++#define PIE_CONNABORTED "closed" ++#define PIE_CONNRESET "closed" ++#define PIE_TIMEDOUT "timeout" ++#define PIE_AGAIN "temporary failure in name resolution" ++#define PIE_BADFLAGS "invalid value for ai_flags" ++#define PIE_BADHINTS "invalid value for hints" ++#define PIE_FAIL "non-recoverable failure in name resolution" ++#define PIE_FAMILY "ai_family not supported" ++#define PIE_MEMORY "memory allocation failure" ++#define PIE_NONAME "host or service not provided, or not known" ++#define PIE_OVERFLOW "argument buffer overflow" ++#define PIE_PROTOCOL "resolved protocol is unknown" ++#define PIE_SERVICE "service not supported for socket type" ++#define PIE_SOCKTYPE "ai_socktype not supported" ++ ++#endif +diff --git a/src/select.c b/src/select.c +index fafaa62..9d133b7 100644 +--- a/src/select.c ++++ b/src/select.c +@@ -6,6 +6,7 @@ + + #include "lua.h" + #include "lauxlib.h" ++#include "compat.h" + + #include "socket.h" + #include "timeout.h" +@@ -16,10 +17,10 @@ + \*=========================================================================*/ + static t_socket getfd(lua_State *L); + static int dirty(lua_State *L); +-static void collect_fd(lua_State *L, int tab, int itab, ++static void collect_fd(lua_State *L, int tab, int itab, + fd_set *set, t_socket *max_fd); + static int check_dirty(lua_State *L, int tab, int dtab, fd_set *set); +-static void return_fd(lua_State *L, fd_set *set, t_socket max_fd, ++static void return_fd(lua_State *L, fd_set *set, t_socket max_fd, + int itab, int tab, int start); + static void make_assoc(lua_State *L, int tab); + static int global_select(lua_State *L); +@@ -38,13 +39,12 @@ static luaL_Reg func[] = { + \*-------------------------------------------------------------------------*/ + int select_open(lua_State *L) { + lua_pushstring(L, "_SETSIZE"); +- lua_pushnumber(L, FD_SETSIZE); ++ lua_pushinteger(L, FD_SETSIZE); ++ lua_rawset(L, -3); ++ lua_pushstring(L, "_SOCKETINVALID"); ++ lua_pushinteger(L, SOCKET_INVALID); + lua_rawset(L, -3); +-#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE) + luaL_setfuncs(L, func, 0); +-#else +- luaL_openlib(L, NULL, func, 0); +-#endif + return 0; + } + +@@ -98,10 +98,10 @@ static t_socket getfd(lua_State *L) { + lua_pushvalue(L, -2); + lua_call(L, 1, 1); + if (lua_isnumber(L, -1)) { +- double numfd = lua_tonumber(L, -1); ++ double numfd = lua_tonumber(L, -1); + fd = (numfd >= 0.0)? (t_socket) numfd: SOCKET_INVALID; + } +- } ++ } + lua_pop(L, 1); + return fd; + } +@@ -114,12 +114,12 @@ static int dirty(lua_State *L) { + lua_pushvalue(L, -2); + lua_call(L, 1, 1); + is = lua_toboolean(L, -1); +- } ++ } + lua_pop(L, 1); + return is; + } + +-static void collect_fd(lua_State *L, int tab, int itab, ++static void collect_fd(lua_State *L, int tab, int itab, + fd_set *set, t_socket *max_fd) { + int i = 1, n = 0; + /* nil is the same as an empty table */ +@@ -139,16 +139,16 @@ static void collect_fd(lua_State *L, int tab, int itab, + if (fd != SOCKET_INVALID) { + /* make sure we don't overflow the fd_set */ + #ifdef _WIN32 +- if (n >= FD_SETSIZE) ++ if (n >= FD_SETSIZE) + luaL_argerror(L, tab, "too many sockets"); + #else +- if (fd >= FD_SETSIZE) ++ if (fd >= FD_SETSIZE) + luaL_argerror(L, tab, "descriptor too large for set size"); + #endif + FD_SET(fd, set); + n++; + /* keep track of the largest descriptor so far */ +- if (*max_fd == SOCKET_INVALID || *max_fd < fd) ++ if (*max_fd == SOCKET_INVALID || *max_fd < fd) + *max_fd = fd; + /* make sure we can map back from descriptor to the object */ + lua_pushnumber(L, (lua_Number) fd); +@@ -162,9 +162,9 @@ static void collect_fd(lua_State *L, int tab, int itab, + + static int check_dirty(lua_State *L, int tab, int dtab, fd_set *set) { + int ndirty = 0, i = 1; +- if (lua_isnil(L, tab)) ++ if (lua_isnil(L, tab)) + return 0; +- for ( ;; ) { ++ for ( ;; ) { + t_socket fd; + lua_pushnumber(L, i); + lua_gettable(L, tab); +@@ -185,7 +185,7 @@ static int check_dirty(lua_State *L, int tab, int dtab, fd_set *set) { + return ndirty; + } + +-static void return_fd(lua_State *L, fd_set *set, t_socket max_fd, ++static void return_fd(lua_State *L, fd_set *set, t_socket max_fd, + int itab, int tab, int start) { + t_socket fd; + for (fd = 0; fd < max_fd; fd++) { +diff --git a/src/serial.c b/src/serial.c +index 583d4e5..7bdb21c 100644 +--- a/src/serial.c ++++ b/src/serial.c +@@ -2,7 +2,7 @@ + * Serial stream + * LuaSocket toolkit + \*=========================================================================*/ +-#include <string.h> ++#include <string.h> + + #include "lua.h" + #include "lauxlib.h" +@@ -11,7 +11,7 @@ + #include "socket.h" + #include "options.h" + #include "unix.h" +-#include <sys/un.h> ++#include <sys/un.h> + + /* + Reuses userdata definition from unix.h, since it is useful for all +@@ -54,15 +54,6 @@ static luaL_Reg serial_methods[] = { + {NULL, NULL} + }; + +-/* our socket creation function */ +-/* this is an ad-hoc module that returns a single function +- * as such, do not include other functions in this array. */ +-static luaL_Reg func[] = { +- {"serial", global_create}, +- {NULL, NULL} +-}; +- +- + /*-------------------------------------------------------------------------*\ + * Initializes module + \*-------------------------------------------------------------------------*/ +@@ -71,14 +62,7 @@ LUASOCKET_API int luaopen_socket_serial(lua_State *L) { + auxiliar_newclass(L, "serial{client}", serial_methods); + /* create class groups */ + auxiliar_add2group(L, "serial{client}", "serial{any}"); +-#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE) +- lua_pushcfunction(L, global_create); +- (void) func; +-#else +- /* set function into socket namespace */ +- luaL_openlib(L, "socket", func, 0); + lua_pushcfunction(L, global_create); +-#endif + return 1; + } + +@@ -120,7 +104,7 @@ static int meth_getfd(lua_State *L) { + /* this is very dangerous, but can be handy for those that are brave enough */ + static int meth_setfd(lua_State *L) { + p_unix un = (p_unix) auxiliar_checkgroup(L, "serial{any}", 1); +- un->sock = (t_socket) luaL_checknumber(L, 2); ++ un->sock = (t_socket) luaL_checknumber(L, 2); + return 0; + } + +@@ -131,7 +115,7 @@ static int meth_dirty(lua_State *L) { + } + + /*-------------------------------------------------------------------------*\ +-* Closes socket used by object ++* Closes socket used by object + \*-------------------------------------------------------------------------*/ + static int meth_close(lua_State *L) + { +@@ -156,7 +140,7 @@ static int meth_settimeout(lua_State *L) { + + + /*-------------------------------------------------------------------------*\ +-* Creates a serial object ++* Creates a serial object + \*-------------------------------------------------------------------------*/ + static int global_create(lua_State *L) { + const char* path = luaL_checkstring(L, 1); +@@ -180,7 +164,7 @@ static int global_create(lua_State *L) { + /* initialize remaining structure fields */ + socket_setnonblocking(&sock); + un->sock = sock; +- io_init(&un->io, (p_send) socket_write, (p_recv) socket_read, ++ io_init(&un->io, (p_send) socket_write, (p_recv) socket_read, + (p_error) socket_ioerror, &un->sock); + timeout_init(&un->tm, -1, -1); + buffer_init(&un->buf, &un->io, &un->tm); +diff --git a/src/socket.lua b/src/socket.lua +index 3913e6f..d1c0b16 100644 +--- a/src/socket.lua ++++ b/src/socket.lua +@@ -32,23 +32,23 @@ function _M.bind(host, port, backlog) + err = "no info on address" + for i, alt in base.ipairs(addrinfo) do + if alt.family == "inet" then +- sock, err = socket.tcp() ++ sock, err = socket.tcp4() + else + sock, err = socket.tcp6() + end + if not sock then return nil, err end + sock:setoption("reuseaddr", true) + res, err = sock:bind(alt.addr, port) +- if not res then ++ if not res then + sock:close() +- else ++ else + res, err = sock:listen(backlog) +- if not res then ++ if not res then + sock:close() + else + return sock + end +- end ++ end + end + return nil, err + end +diff --git a/src/tcp.c b/src/tcp.c +index 6594bda..ef9ee6f 100644 +--- a/src/tcp.c ++++ b/src/tcp.c +@@ -6,6 +6,7 @@ + + #include "lua.h" + #include "lauxlib.h" ++#include "compat.h" + + #include "auxiliar.h" + #include "socket.h" +@@ -17,6 +18,7 @@ + * Internal function prototypes + \*=========================================================================*/ + static int global_create(lua_State *L); ++static int global_create4(lua_State *L); + static int global_create6(lua_State *L); + static int global_connect(lua_State *L); + static int meth_connect(lua_State *L); +@@ -34,6 +36,7 @@ static int meth_accept(lua_State *L); + static int meth_close(lua_State *L); + static int meth_getoption(lua_State *L); + static int meth_setoption(lua_State *L); ++static int meth_gettimeout(lua_State *L); + static int meth_settimeout(lua_State *L); + static int meth_getfd(lua_State *L); + static int meth_setfd(lua_State *L); +@@ -63,6 +66,7 @@ static luaL_Reg tcp_methods[] = { + {"setpeername", meth_connect}, + {"setsockname", meth_bind}, + {"settimeout", meth_settimeout}, ++ {"gettimeout", meth_gettimeout}, + {"shutdown", meth_shutdown}, + {NULL, NULL} + }; +@@ -71,6 +75,7 @@ static luaL_Reg tcp_methods[] = { + static t_opt optget[] = { + {"keepalive", opt_get_keepalive}, + {"reuseaddr", opt_get_reuseaddr}, ++ {"reuseport", opt_get_reuseport}, + {"tcp-nodelay", opt_get_tcp_nodelay}, + {"linger", opt_get_linger}, + {"error", opt_get_error}, +@@ -80,6 +85,7 @@ static t_opt optget[] = { + static t_opt optset[] = { + {"keepalive", opt_set_keepalive}, + {"reuseaddr", opt_set_reuseaddr}, ++ {"reuseport", opt_set_reuseport}, + {"tcp-nodelay", opt_set_tcp_nodelay}, + {"ipv6-v6only", opt_set_ip6_v6only}, + {"linger", opt_set_linger}, +@@ -89,6 +95,7 @@ static t_opt optset[] = { + /* functions in library namespace */ + static luaL_Reg func[] = { + {"tcp", global_create}, ++ {"tcp4", global_create4}, + {"tcp6", global_create6}, + {"connect", global_connect}, + {NULL, NULL} +@@ -108,11 +115,7 @@ int tcp_open(lua_State *L) + auxiliar_add2group(L, "tcp{client}", "tcp{any}"); + auxiliar_add2group(L, "tcp{server}", "tcp{any}"); + /* define library functions */ +-#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE) + luaL_setfuncs(L, func, 0); +-#else +- luaL_openlib(L, NULL, func, 0); +-#endif + return 0; + } + +@@ -216,8 +219,7 @@ static int meth_accept(lua_State *L) + /*-------------------------------------------------------------------------*\ + * Binds an object to an address + \*-------------------------------------------------------------------------*/ +-static int meth_bind(lua_State *L) +-{ ++static int meth_bind(lua_State *L) { + p_tcp tcp = (p_tcp) auxiliar_checkclass(L, "tcp{master}", 1); + const char *address = luaL_checkstring(L, 2); + const char *port = luaL_checkstring(L, 3); +@@ -227,7 +229,7 @@ static int meth_bind(lua_State *L) + bindhints.ai_socktype = SOCK_STREAM; + bindhints.ai_family = tcp->family; + bindhints.ai_flags = AI_PASSIVE; +- err = inet_trybind(&tcp->sock, address, port, &bindhints); ++ err = inet_trybind(&tcp->sock, &tcp->family, address, port, &bindhints); + if (err) { + lua_pushnil(L); + lua_pushstring(L, err); +@@ -240,8 +242,7 @@ static int meth_bind(lua_State *L) + /*-------------------------------------------------------------------------*\ + * Turns a master tcp object into a client object. + \*-------------------------------------------------------------------------*/ +-static int meth_connect(lua_State *L) +-{ ++static int meth_connect(lua_State *L) { + p_tcp tcp = (p_tcp) auxiliar_checkgroup(L, "tcp{any}", 1); + const char *address = luaL_checkstring(L, 2); + const char *port = luaL_checkstring(L, 3); +@@ -252,7 +253,7 @@ static int meth_connect(lua_State *L) + /* make sure we try to connect only to the same family */ + connecthints.ai_family = tcp->family; + timeout_markstart(&tcp->tm); +- err = inet_tryconnect(&tcp->sock, &tcp->family, address, port, ++ err = inet_tryconnect(&tcp->sock, &tcp->family, address, port, + &tcp->tm, &connecthints); + /* have to set the class even if it failed due to non-blocking connects */ + auxiliar_setclass(L, "tcp{client}", 1); +@@ -282,9 +283,12 @@ static int meth_close(lua_State *L) + static int meth_getfamily(lua_State *L) + { + p_tcp tcp = (p_tcp) auxiliar_checkgroup(L, "tcp{any}", 1); +- if (tcp->family == PF_INET6) { ++ if (tcp->family == AF_INET6) { + lua_pushliteral(L, "inet6"); + return 1; ++ } else if (tcp->family == AF_INET) { ++ lua_pushliteral(L, "inet4"); ++ return 1; + } else { + lua_pushliteral(L, "inet4"); + return 1; +@@ -348,6 +352,12 @@ static int meth_settimeout(lua_State *L) + return timeout_meth_settimeout(L, &tcp->tm); + } + ++static int meth_gettimeout(lua_State *L) ++{ ++ p_tcp tcp = (p_tcp) auxiliar_checkgroup(L, "tcp{any}", 1); ++ return timeout_meth_gettimeout(L, &tcp->tm); ++} ++ + /*=========================================================================*\ + * Library functions + \*=========================================================================*/ +@@ -355,37 +365,36 @@ static int meth_settimeout(lua_State *L) + * Creates a master tcp object + \*-------------------------------------------------------------------------*/ + static int tcp_create(lua_State *L, int family) { +- t_socket sock; +- const char *err = inet_trycreate(&sock, family, SOCK_STREAM); +- /* try to allocate a system socket */ +- if (!err) { +- /* allocate tcp object */ +- p_tcp tcp = (p_tcp) lua_newuserdata(L, sizeof(t_tcp)); +- memset(tcp, 0, sizeof(t_tcp)); +- /* set its type as master object */ +- auxiliar_setclass(L, "tcp{master}", -1); +- /* initialize remaining structure fields */ +- socket_setnonblocking(&sock); +- if (family == PF_INET6) { +- int yes = 1; +- setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, +- (void *)&yes, sizeof(yes)); ++ p_tcp tcp = (p_tcp) lua_newuserdata(L, sizeof(t_tcp)); ++ memset(tcp, 0, sizeof(t_tcp)); ++ /* set its type as master object */ ++ auxiliar_setclass(L, "tcp{master}", -1); ++ /* if family is AF_UNSPEC, we leave the socket invalid and ++ * store AF_UNSPEC into family. This will allow it to later be ++ * replaced with an AF_INET6 or AF_INET socket upon first use. */ ++ tcp->sock = SOCKET_INVALID; ++ tcp->family = family; ++ io_init(&tcp->io, (p_send) socket_send, (p_recv) socket_recv, ++ (p_error) socket_ioerror, &tcp->sock); ++ timeout_init(&tcp->tm, -1, -1); ++ buffer_init(&tcp->buf, &tcp->io, &tcp->tm); ++ if (family != AF_UNSPEC) { ++ const char *err = inet_trycreate(&tcp->sock, family, SOCK_STREAM, 0); ++ if (err != NULL) { ++ lua_pushnil(L); ++ lua_pushstring(L, err); ++ return 2; + } +- tcp->sock = sock; +- io_init(&tcp->io, (p_send) socket_send, (p_recv) socket_recv, +- (p_error) socket_ioerror, &tcp->sock); +- timeout_init(&tcp->tm, -1, -1); +- buffer_init(&tcp->buf, &tcp->io, &tcp->tm); +- tcp->family = family; +- return 1; +- } else { +- lua_pushnil(L); +- lua_pushstring(L, err); +- return 2; ++ socket_setnonblocking(&tcp->sock); + } ++ return 1; + } + + static int global_create(lua_State *L) { ++ return tcp_create(L, AF_UNSPEC); ++} ++ ++static int global_create4(lua_State *L) { + return tcp_create(L, AF_INET); + } + +@@ -393,53 +402,6 @@ static int global_create6(lua_State *L) { + return tcp_create(L, AF_INET6); + } + +-#if 0 +-static const char *tryconnect6(const char *remoteaddr, const char *remoteserv, +- struct addrinfo *connecthints, p_tcp tcp) { +- struct addrinfo *iterator = NULL, *resolved = NULL; +- const char *err = NULL; +- /* try resolving */ +- err = socket_gaistrerror(getaddrinfo(remoteaddr, remoteserv, +- connecthints, &resolved)); +- if (err != NULL) { +- if (resolved) freeaddrinfo(resolved); +- return err; +- } +- /* iterate over all returned addresses trying to connect */ +- for (iterator = resolved; iterator; iterator = iterator->ai_next) { +- p_timeout tm = timeout_markstart(&tcp->tm); +- /* create new socket if necessary. if there was no +- * bind, we need to create one for every new family +- * that shows up while iterating. if there was a +- * bind, all families will be the same and we will +- * not enter this branch. */ +- if (tcp->family != iterator->ai_family) { +- socket_destroy(&tcp->sock); +- err = socket_strerror(socket_create(&tcp->sock, +- iterator->ai_family, iterator->ai_socktype, +- iterator->ai_protocol)); +- if (err != NULL) { +- freeaddrinfo(resolved); +- return err; +- } +- tcp->family = iterator->ai_family; +- /* all sockets initially non-blocking */ +- socket_setnonblocking(&tcp->sock); +- } +- /* finally try connecting to remote address */ +- err = socket_strerror(socket_connect(&tcp->sock, +- (SA *) iterator->ai_addr, +- (socklen_t) iterator->ai_addrlen, tm)); +- /* if success, break out of loop */ +- if (err == NULL) break; +- } +- +- freeaddrinfo(resolved); +- /* here, if err is set, we failed */ +- return err; +-} +-#endif +- + static int global_connect(lua_State *L) { + const char *remoteaddr = luaL_checkstring(L, 1); + const char *remoteserv = luaL_checkstring(L, 2); +@@ -456,26 +418,26 @@ static int global_connect(lua_State *L) { + timeout_init(&tcp->tm, -1, -1); + buffer_init(&tcp->buf, &tcp->io, &tcp->tm); + tcp->sock = SOCKET_INVALID; +- tcp->family = PF_UNSPEC; ++ tcp->family = AF_UNSPEC; + /* allow user to pick local address and port */ + memset(&bindhints, 0, sizeof(bindhints)); + bindhints.ai_socktype = SOCK_STREAM; + bindhints.ai_family = family; + bindhints.ai_flags = AI_PASSIVE; + if (localaddr) { +- err = inet_trybind(&tcp->sock, localaddr, localserv, &bindhints); ++ err = inet_trybind(&tcp->sock, &tcp->family, localaddr, ++ localserv, &bindhints); + if (err) { + lua_pushnil(L); + lua_pushstring(L, err); + return 2; + } +- tcp->family = bindhints.ai_family; + } + /* try to connect to remote address and port */ + memset(&connecthints, 0, sizeof(connecthints)); + connecthints.ai_socktype = SOCK_STREAM; + /* make sure we try to connect only to the same family */ +- connecthints.ai_family = bindhints.ai_family; ++ connecthints.ai_family = tcp->family; + err = inet_tryconnect(&tcp->sock, &tcp->family, remoteaddr, remoteserv, + &tcp->tm, &connecthints); + if (err) { +diff --git a/src/timeout.c b/src/timeout.c +index bdd5e1c..5a601d5 100644 +--- a/src/timeout.c ++++ b/src/timeout.c +@@ -8,6 +8,7 @@ + + #include "lua.h" + #include "lauxlib.h" ++#include "compat.h" + + #include "auxiliar.h" + #include "timeout.h" +@@ -52,7 +53,7 @@ void timeout_init(p_timeout tm, double block, double total) { + + /*-------------------------------------------------------------------------*\ + * Determines how much time we have left for the next system call, +-* if the previous call was successful ++* if the previous call was successful + * Input + * tm: timeout control structure + * Returns +@@ -107,7 +108,7 @@ double timeout_getretry(p_timeout tm) { + } + + /*-------------------------------------------------------------------------*\ +-* Marks the operation start time in structure ++* Marks the operation start time in structure + * Input + * tm: timeout control structure + \*-------------------------------------------------------------------------*/ +@@ -117,7 +118,7 @@ p_timeout timeout_markstart(p_timeout tm) { + } + + /*-------------------------------------------------------------------------*\ +-* Gets time in s, relative to January 1, 1970 (UTC) ++* Gets time in s, relative to January 1, 1970 (UTC) + * Returns + * time in s. + \*-------------------------------------------------------------------------*/ +@@ -144,11 +145,7 @@ double timeout_gettime(void) { + * Initializes module + \*-------------------------------------------------------------------------*/ + int timeout_open(lua_State *L) { +-#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE) + luaL_setfuncs(L, func, 0); +-#else +- luaL_openlib(L, NULL, func, 0); +-#endif + return 0; + } + +@@ -163,7 +160,7 @@ int timeout_meth_settimeout(lua_State *L, p_timeout tm) { + const char *mode = luaL_optstring(L, 3, "b"); + switch (*mode) { + case 'b': +- tm->block = t; ++ tm->block = t; + break; + case 'r': case 't': + tm->total = t; +@@ -176,6 +173,16 @@ int timeout_meth_settimeout(lua_State *L, p_timeout tm) { + return 1; + } + ++/*-------------------------------------------------------------------------*\ ++* Gets timeout values for IO operations ++* Lua Output: block, total ++\*-------------------------------------------------------------------------*/ ++int timeout_meth_gettimeout(lua_State *L, p_timeout tm) { ++ lua_pushnumber(L, tm->block); ++ lua_pushnumber(L, tm->total); ++ return 2; ++} ++ + /*=========================================================================*\ + * Test support functions + \*=========================================================================*/ +diff --git a/src/timeout.h b/src/timeout.h +index 6715ca7..af90231 100644 +--- a/src/timeout.h ++++ b/src/timeout.h +@@ -22,6 +22,7 @@ p_timeout timeout_markstart(p_timeout tm); + double timeout_getstart(p_timeout tm); + double timeout_gettime(void); + int timeout_meth_settimeout(lua_State *L, p_timeout tm); ++int timeout_meth_gettimeout(lua_State *L, p_timeout tm); + + #define timeout_iszero(tm) ((tm)->block == 0.0) + +diff --git a/src/tp.lua b/src/tp.lua +index cbeff56..328cbab 100644 +--- a/src/tp.lua ++++ b/src/tp.lua +@@ -74,7 +74,7 @@ function metat.__index:command(cmd, arg) + end + + function metat.__index:sink(snk, pat) +- local chunk, err = c:receive(pat) ++ local chunk, err = self.c:receive(pat) + return snk(chunk, err) + end + +diff --git a/src/udp.c b/src/udp.c +index a9f2393..ec97252 100644 +--- a/src/udp.c ++++ b/src/udp.c +@@ -7,6 +7,7 @@ + + #include "lua.h" + #include "lauxlib.h" ++#include "compat.h" + + #include "auxiliar.h" + #include "socket.h" +@@ -26,6 +27,7 @@ + * Internal function prototypes + \*=========================================================================*/ + static int global_create(lua_State *L); ++static int global_create4(lua_State *L); + static int global_create6(lua_State *L); + static int meth_send(lua_State *L); + static int meth_sendto(lua_State *L); +@@ -34,6 +36,7 @@ static int meth_receivefrom(lua_State *L); + static int meth_getfamily(lua_State *L); + static int meth_getsockname(lua_State *L); + static int meth_getpeername(lua_State *L); ++static int meth_gettimeout(lua_State *L); + static int meth_setsockname(lua_State *L); + static int meth_setpeername(lua_State *L); + static int meth_close(lua_State *L); +@@ -64,6 +67,7 @@ static luaL_Reg udp_methods[] = { + {"setpeername", meth_setpeername}, + {"setsockname", meth_setsockname}, + {"settimeout", meth_settimeout}, ++ {"gettimeout", meth_gettimeout}, + {NULL, NULL} + }; + +@@ -89,6 +93,10 @@ static t_opt optset[] = { + + /* socket options for getoption */ + static t_opt optget[] = { ++ {"dontroute", opt_get_dontroute}, ++ {"broadcast", opt_get_broadcast}, ++ {"reuseaddr", opt_get_reuseaddr}, ++ {"reuseport", opt_get_reuseport}, + {"ip-multicast-if", opt_get_ip_multicast_if}, + {"ip-multicast-loop", opt_get_ip_multicast_loop}, + {"error", opt_get_error}, +@@ -102,6 +110,7 @@ static t_opt optget[] = { + /* functions in library namespace */ + static luaL_Reg func[] = { + {"udp", global_create}, ++ {"udp4", global_create4}, + {"udp6", global_create6}, + {NULL, NULL} + }; +@@ -109,8 +118,7 @@ static luaL_Reg func[] = { + /*-------------------------------------------------------------------------*\ + * Initializes module + \*-------------------------------------------------------------------------*/ +-int udp_open(lua_State *L) +-{ ++int udp_open(lua_State *L) { + /* create classes */ + auxiliar_newclass(L, "udp{connected}", udp_methods); + auxiliar_newclass(L, "udp{unconnected}", udp_methods); +@@ -120,18 +128,18 @@ int udp_open(lua_State *L) + auxiliar_add2group(L, "udp{connected}", "select{able}"); + auxiliar_add2group(L, "udp{unconnected}", "select{able}"); + /* define library functions */ +-#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE) + luaL_setfuncs(L, func, 0); +-#else +- luaL_openlib(L, NULL, func, 0); +-#endif ++ /* export default UDP size */ ++ lua_pushliteral(L, "_DATAGRAMSIZE"); ++ lua_pushinteger(L, UDP_DATAGRAMSIZE); ++ lua_rawset(L, -3); + return 0; + } + + /*=========================================================================*\ + * Lua methods + \*=========================================================================*/ +-const char *udp_strerror(int err) { ++static const char *udp_strerror(int err) { + /* a 'closed' error on an unconnected means the target address was not + * accepted by the transport layer */ + if (err == IO_CLOSED) return "refused"; +@@ -182,7 +190,7 @@ static int meth_sendto(lua_State *L) { + return 2; + } + timeout_markstart(tm); +- err = socket_sendto(&udp->sock, data, count, &sent, ai->ai_addr, ++ err = socket_sendto(&udp->sock, data, count, &sent, ai->ai_addr, + (socklen_t) ai->ai_addrlen, tm); + freeaddrinfo(ai); + if (err != IO_DONE) { +@@ -199,71 +207,80 @@ static int meth_sendto(lua_State *L) { + \*-------------------------------------------------------------------------*/ + static int meth_receive(lua_State *L) { + p_udp udp = (p_udp) auxiliar_checkgroup(L, "udp{any}", 1); +- char buffer[UDP_DATAGRAMSIZE]; +- size_t got, count = (size_t) luaL_optnumber(L, 2, sizeof(buffer)); ++ char buf[UDP_DATAGRAMSIZE]; ++ size_t got, wanted = (size_t) luaL_optnumber(L, 2, sizeof(buf)); ++ char *dgram = wanted > sizeof(buf)? (char *) malloc(wanted): buf; + int err; + p_timeout tm = &udp->tm; +- count = MIN(count, sizeof(buffer)); + timeout_markstart(tm); +- err = socket_recv(&udp->sock, buffer, count, &got, tm); ++ if (!dgram) { ++ lua_pushnil(L); ++ lua_pushliteral(L, "out of memory"); ++ return 2; ++ } ++ err = socket_recv(&udp->sock, dgram, wanted, &got, tm); + /* Unlike TCP, recv() of zero is not closed, but a zero-length packet. */ +- if (err == IO_CLOSED) +- err = IO_DONE; +- if (err != IO_DONE) { ++ if (err != IO_DONE && err != IO_CLOSED) { + lua_pushnil(L); + lua_pushstring(L, udp_strerror(err)); ++ if (wanted > sizeof(buf)) free(dgram); + return 2; + } +- lua_pushlstring(L, buffer, got); ++ lua_pushlstring(L, dgram, got); ++ if (wanted > sizeof(buf)) free(dgram); + return 1; + } + + /*-------------------------------------------------------------------------*\ + * Receives data and sender from a UDP socket + \*-------------------------------------------------------------------------*/ +-static int meth_receivefrom(lua_State *L) +-{ ++static int meth_receivefrom(lua_State *L) { + p_udp udp = (p_udp) auxiliar_checkclass(L, "udp{unconnected}", 1); +- char buffer[UDP_DATAGRAMSIZE]; +- size_t got, count = (size_t) luaL_optnumber(L, 2, sizeof(buffer)); +- int err; +- p_timeout tm = &udp->tm; ++ char buf[UDP_DATAGRAMSIZE]; ++ size_t got, wanted = (size_t) luaL_optnumber(L, 2, sizeof(buf)); ++ char *dgram = wanted > sizeof(buf)? (char *) malloc(wanted): buf; + struct sockaddr_storage addr; + socklen_t addr_len = sizeof(addr); + char addrstr[INET6_ADDRSTRLEN]; + char portstr[6]; ++ int err; ++ p_timeout tm = &udp->tm; + timeout_markstart(tm); +- count = MIN(count, sizeof(buffer)); +- err = socket_recvfrom(&udp->sock, buffer, count, &got, (SA *) &addr, ++ if (!dgram) { ++ lua_pushnil(L); ++ lua_pushliteral(L, "out of memory"); ++ return 2; ++ } ++ err = socket_recvfrom(&udp->sock, dgram, wanted, &got, (SA *) &addr, + &addr_len, tm); + /* Unlike TCP, recv() of zero is not closed, but a zero-length packet. */ +- if (err == IO_CLOSED) +- err = IO_DONE; +- if (err != IO_DONE) { ++ if (err != IO_DONE && err != IO_CLOSED) { + lua_pushnil(L); + lua_pushstring(L, udp_strerror(err)); ++ if (wanted > sizeof(buf)) free(dgram); + return 2; + } +- err = getnameinfo((struct sockaddr *)&addr, addr_len, addrstr, ++ err = getnameinfo((struct sockaddr *)&addr, addr_len, addrstr, + INET6_ADDRSTRLEN, portstr, 6, NI_NUMERICHOST | NI_NUMERICSERV); + if (err) { + lua_pushnil(L); + lua_pushstring(L, gai_strerror(err)); ++ if (wanted > sizeof(buf)) free(dgram); + return 2; + } +- lua_pushlstring(L, buffer, got); ++ lua_pushlstring(L, dgram, got); + lua_pushstring(L, addrstr); + lua_pushinteger(L, (int) strtol(portstr, (char **) NULL, 10)); ++ if (wanted > sizeof(buf)) free(dgram); + return 3; + } + + /*-------------------------------------------------------------------------*\ + * Returns family as string + \*-------------------------------------------------------------------------*/ +-static int meth_getfamily(lua_State *L) +-{ ++static int meth_getfamily(lua_State *L) { + p_udp udp = (p_udp) auxiliar_checkgroup(L, "udp{any}", 1); +- if (udp->family == PF_INET6) { ++ if (udp->family == AF_INET6) { + lua_pushliteral(L, "inet6"); + return 1; + } else { +@@ -332,6 +349,11 @@ static int meth_settimeout(lua_State *L) { + return timeout_meth_settimeout(L, &udp->tm); + } + ++static int meth_gettimeout(lua_State *L) { ++ p_udp udp = (p_udp) auxiliar_checkgroup(L, "udp{any}", 1); ++ return timeout_meth_gettimeout(L, &udp->tm); ++} ++ + /*-------------------------------------------------------------------------*\ + * Turns a master udp object into a client object. + \*-------------------------------------------------------------------------*/ +@@ -348,7 +370,7 @@ static int meth_setpeername(lua_State *L) { + /* make sure we try to connect only to the same family */ + connecthints.ai_family = udp->family; + if (connecting) { +- err = inet_tryconnect(&udp->sock, &udp->family, address, ++ err = inet_tryconnect(&udp->sock, &udp->family, address, + port, tm, &connecthints); + if (err) { + lua_pushnil(L); +@@ -362,7 +384,6 @@ static int meth_setpeername(lua_State *L) { + inet_trydisconnect(&udp->sock, udp->family, tm); + auxiliar_setclass(L, "udp{unconnected}", 1); + } +- /* change class to connected or unconnected depending on address */ + lua_pushnumber(L, 1); + return 1; + } +@@ -390,7 +411,7 @@ static int meth_setsockname(lua_State *L) { + bindhints.ai_socktype = SOCK_DGRAM; + bindhints.ai_family = udp->family; + bindhints.ai_flags = AI_PASSIVE; +- err = inet_trybind(&udp->sock, address, port, &bindhints); ++ err = inet_trybind(&udp->sock, &udp->family, address, port, &bindhints); + if (err) { + lua_pushnil(L); + lua_pushstring(L, err); +@@ -407,32 +428,32 @@ static int meth_setsockname(lua_State *L) { + * Creates a master udp object + \*-------------------------------------------------------------------------*/ + static int udp_create(lua_State *L, int family) { +- t_socket sock; +- const char *err = inet_trycreate(&sock, family, SOCK_DGRAM); +- /* try to allocate a system socket */ +- if (!err) { +- /* allocate udp object */ +- p_udp udp = (p_udp) lua_newuserdata(L, sizeof(t_udp)); +- auxiliar_setclass(L, "udp{unconnected}", -1); +- /* initialize remaining structure fields */ +- socket_setnonblocking(&sock); +- if (family == PF_INET6) { +- int yes = 1; +- setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, +- (void *)&yes, sizeof(yes)); ++ /* allocate udp object */ ++ p_udp udp = (p_udp) lua_newuserdata(L, sizeof(t_udp)); ++ auxiliar_setclass(L, "udp{unconnected}", -1); ++ /* if family is AF_UNSPEC, we leave the socket invalid and ++ * store AF_UNSPEC into family. This will allow it to later be ++ * replaced with an AF_INET6 or AF_INET socket upon first use. */ ++ udp->sock = SOCKET_INVALID; ++ timeout_init(&udp->tm, -1, -1); ++ udp->family = family; ++ if (family != AF_UNSPEC) { ++ const char *err = inet_trycreate(&udp->sock, family, SOCK_DGRAM, 0); ++ if (err != NULL) { ++ lua_pushnil(L); ++ lua_pushstring(L, err); ++ return 2; + } +- udp->sock = sock; +- timeout_init(&udp->tm, -1, -1); +- udp->family = family; +- return 1; +- } else { +- lua_pushnil(L); +- lua_pushstring(L, err); +- return 2; ++ socket_setnonblocking(&udp->sock); + } ++ return 1; + } + + static int global_create(lua_State *L) { ++ return udp_create(L, AF_UNSPEC); ++} ++ ++static int global_create4(lua_State *L) { + return udp_create(L, AF_INET); + } + +diff --git a/src/udp.h b/src/udp.h +index 2b831a5..be9b6a5 100644 +--- a/src/udp.h ++++ b/src/udp.h +@@ -8,7 +8,7 @@ + * (AF_INET, SOCK_DGRAM). + * + * Two classes are defined: connected and unconnected. UDP objects are +-* originally unconnected. They can be "connected" to a given address ++* originally unconnected. They can be "connected" to a given address + * with a call to the setpeername function. The same function can be used to + * break the connection. + \*=========================================================================*/ +@@ -17,7 +17,6 @@ + #include "timeout.h" + #include "socket.h" + +-/* can't be larger than wsocket.c MAXCHUNK!!! */ + #define UDP_DATAGRAMSIZE 8192 + + typedef struct t_udp_ { +diff --git a/src/unix.c b/src/unix.c +index 91aaaf8..5bc3148 100644 +--- a/src/unix.c ++++ b/src/unix.c +@@ -1,8 +1,8 @@ + /*=========================================================================*\ +-* Unix domain socket ++* Unix domain socket + * LuaSocket toolkit + \*=========================================================================*/ +-#include <string.h> ++#include <string.h> + + #include "lua.h" + #include "lauxlib.h" +@@ -11,7 +11,7 @@ + #include "socket.h" + #include "options.h" + #include "unix.h" +-#include <sys/un.h> ++#include <sys/un.h> + + /*=========================================================================*\ + * Internal function prototypes +@@ -68,15 +68,6 @@ static t_opt optset[] = { + {NULL, NULL} + }; + +-/* our socket creation function */ +-/* this is an ad-hoc module that returns a single function +- * as such, do not include other functions in this array. */ +-static luaL_Reg func[] = { +- {"unix", global_create}, +- {NULL, NULL} +-}; +- +- + /*-------------------------------------------------------------------------*\ + * Initializes module + \*-------------------------------------------------------------------------*/ +@@ -89,15 +80,8 @@ int luaopen_socket_unix(lua_State *L) { + auxiliar_add2group(L, "unix{master}", "unix{any}"); + auxiliar_add2group(L, "unix{client}", "unix{any}"); + auxiliar_add2group(L, "unix{server}", "unix{any}"); +-#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE) +- lua_pushcfunction(L, global_create); +- (void) func; +-#else +- /* set function into socket namespace */ +- luaL_openlib(L, "socket", func, 0); +- lua_pushcfunction(L, global_create); +-#endif + /* return the function instead of the 'socket' table */ ++ lua_pushcfunction(L, global_create); + return 1; + } + +@@ -147,7 +131,7 @@ static int meth_getfd(lua_State *L) { + /* this is very dangerous, but can be handy for those that are brave enough */ + static int meth_setfd(lua_State *L) { + p_unix un = (p_unix) auxiliar_checkgroup(L, "unix{any}", 1); +- un->sock = (t_socket) luaL_checknumber(L, 2); ++ un->sock = (t_socket) luaL_checknumber(L, 2); + return 0; + } + +@@ -158,8 +142,8 @@ static int meth_dirty(lua_State *L) { + } + + /*-------------------------------------------------------------------------*\ +-* Waits for and returns a client object attempting connection to the +-* server object ++* Waits for and returns a client object attempting connection to the ++* server object + \*-------------------------------------------------------------------------*/ + static int meth_accept(lua_State *L) { + p_unix server = (p_unix) auxiliar_checkclass(L, "unix{server}", 1); +@@ -173,20 +157,20 @@ static int meth_accept(lua_State *L) { + /* initialize structure fields */ + socket_setnonblocking(&sock); + clnt->sock = sock; +- io_init(&clnt->io, (p_send)socket_send, (p_recv)socket_recv, ++ io_init(&clnt->io, (p_send)socket_send, (p_recv)socket_recv, + (p_error) socket_ioerror, &clnt->sock); + timeout_init(&clnt->tm, -1, -1); + buffer_init(&clnt->buf, &clnt->io, &clnt->tm); + return 1; + } else { +- lua_pushnil(L); ++ lua_pushnil(L); + lua_pushstring(L, socket_strerror(err)); + return 2; + } + } + + /*-------------------------------------------------------------------------*\ +-* Binds an object to an address ++* Binds an object to an address + \*-------------------------------------------------------------------------*/ + static const char *unix_trybind(p_unix un, const char *path) { + struct sockaddr_un local; +@@ -197,16 +181,16 @@ static const char *unix_trybind(p_unix un, const char *path) { + strcpy(local.sun_path, path); + local.sun_family = AF_UNIX; + #ifdef UNIX_HAS_SUN_LEN +- local.sun_len = sizeof(local.sun_family) + sizeof(local.sun_len) ++ local.sun_len = sizeof(local.sun_family) + sizeof(local.sun_len) + + len + 1; + err = socket_bind(&un->sock, (SA *) &local, local.sun_len); + +-#else +- err = socket_bind(&un->sock, (SA *) &local, ++#else ++ err = socket_bind(&un->sock, (SA *) &local, + sizeof(local.sun_family) + len); + #endif + if (err != IO_DONE) socket_destroy(&un->sock); +- return socket_strerror(err); ++ return socket_strerror(err); + } + + static int meth_bind(lua_State *L) { +@@ -236,11 +220,11 @@ static const char *unix_tryconnect(p_unix un, const char *path) + remote.sun_family = AF_UNIX; + timeout_markstart(&un->tm); + #ifdef UNIX_HAS_SUN_LEN +- remote.sun_len = sizeof(remote.sun_family) + sizeof(remote.sun_len) ++ remote.sun_len = sizeof(remote.sun_family) + sizeof(remote.sun_len) + + len + 1; + err = socket_connect(&un->sock, (SA *) &remote, remote.sun_len, &un->tm); + #else +- err = socket_connect(&un->sock, (SA *) &remote, ++ err = socket_connect(&un->sock, (SA *) &remote, + sizeof(remote.sun_family) + len, &un->tm); + #endif + if (err != IO_DONE) socket_destroy(&un->sock); +@@ -264,7 +248,7 @@ static int meth_connect(lua_State *L) + } + + /*-------------------------------------------------------------------------*\ +-* Closes socket used by object ++* Closes socket used by object + \*-------------------------------------------------------------------------*/ + static int meth_close(lua_State *L) + { +@@ -319,13 +303,13 @@ static int meth_settimeout(lua_State *L) { + * Library functions + \*=========================================================================*/ + /*-------------------------------------------------------------------------*\ +-* Creates a master unix object ++* Creates a master unix object + \*-------------------------------------------------------------------------*/ + static int global_create(lua_State *L) { + t_socket sock; + int err = socket_create(&sock, AF_UNIX, SOCK_STREAM, 0); + /* try to allocate a system socket */ +- if (err == IO_DONE) { ++ if (err == IO_DONE) { + /* allocate unix object */ + p_unix un = (p_unix) lua_newuserdata(L, sizeof(t_unix)); + /* set its type as master object */ +@@ -333,7 +317,7 @@ static int global_create(lua_State *L) { + /* initialize remaining structure fields */ + socket_setnonblocking(&sock); + un->sock = sock; +- io_init(&un->io, (p_send) socket_send, (p_recv) socket_recv, ++ io_init(&un->io, (p_send) socket_send, (p_recv) socket_recv, + (p_error) socket_ioerror, &un->sock); + timeout_init(&un->tm, -1, -1); + buffer_init(&un->buf, &un->io, &un->tm); +diff --git a/src/url.lua b/src/url.lua +index 7809535..fbd93d1 100644 +--- a/src/url.lua ++++ b/src/url.lua +@@ -219,6 +219,7 @@ end + -- corresponding absolute url + ----------------------------------------------------------------------------- + function _M.absolute(base_url, relative_url) ++ local base_parsed + if base.type(base_url) == "table" then + base_parsed = base_url + base_url = _M.build(base_parsed) +diff --git a/src/usocket.c b/src/usocket.c +index 096ecd0..8adc573 100644 +--- a/src/usocket.c ++++ b/src/usocket.c +@@ -4,12 +4,13 @@ + * + * The code is now interrupt-safe. + * The penalty of calling select to avoid busy-wait is only paid when +-* the I/O call fail in the first place. ++* the I/O call fail in the first place. + \*=========================================================================*/ +-#include <string.h> ++#include <string.h> + #include <signal.h> + + #include "socket.h" ++#include "pierror.h" + + /*-------------------------------------------------------------------------*\ + * Wait for readable/writable/connected socket with timeout +@@ -72,7 +73,7 @@ int socket_waitfd(p_socket ps, int sw, p_timeout tm) { + + + /*-------------------------------------------------------------------------*\ +-* Initializes module ++* Initializes module + \*-------------------------------------------------------------------------*/ + int socket_open(void) { + /* instals a handler to ignore sigpipe or it will crash us */ +@@ -81,7 +82,7 @@ int socket_open(void) { + } + + /*-------------------------------------------------------------------------*\ +-* Close module ++* Close module + \*-------------------------------------------------------------------------*/ + int socket_close(void) { + return 1; +@@ -92,7 +93,6 @@ int socket_close(void) { + \*-------------------------------------------------------------------------*/ + void socket_destroy(p_socket ps) { + if (*ps != SOCKET_INVALID) { +- socket_setblocking(ps); + close(*ps); + *ps = SOCKET_INVALID; + } +@@ -101,7 +101,7 @@ void socket_destroy(p_socket ps) { + /*-------------------------------------------------------------------------*\ + * Select with timeout control + \*-------------------------------------------------------------------------*/ +-int socket_select(t_socket n, fd_set *rfds, fd_set *wfds, fd_set *efds, ++int socket_select(t_socket n, fd_set *rfds, fd_set *wfds, fd_set *efds, + p_timeout tm) { + int ret; + do { +@@ -120,8 +120,8 @@ int socket_select(t_socket n, fd_set *rfds, fd_set *wfds, fd_set *efds, + \*-------------------------------------------------------------------------*/ + int socket_create(p_socket ps, int domain, int type, int protocol) { + *ps = socket(domain, type, protocol); +- if (*ps != SOCKET_INVALID) return IO_DONE; +- else return errno; ++ if (*ps != SOCKET_INVALID) return IO_DONE; ++ else return errno; + } + + /*-------------------------------------------------------------------------*\ +@@ -130,29 +130,25 @@ int socket_create(p_socket ps, int domain, int type, int protocol) { + int socket_bind(p_socket ps, SA *addr, socklen_t len) { + int err = IO_DONE; + socket_setblocking(ps); +- if (bind(*ps, addr, len) < 0) err = errno; ++ if (bind(*ps, addr, len) < 0) err = errno; + socket_setnonblocking(ps); + return err; + } + + /*-------------------------------------------------------------------------*\ +-* ++* + \*-------------------------------------------------------------------------*/ + int socket_listen(p_socket ps, int backlog) { +- int err = IO_DONE; +- socket_setblocking(ps); +- if (listen(*ps, backlog)) err = errno; +- socket_setnonblocking(ps); ++ int err = IO_DONE; ++ if (listen(*ps, backlog)) err = errno; + return err; + } + + /*-------------------------------------------------------------------------*\ +-* ++* + \*-------------------------------------------------------------------------*/ + void socket_shutdown(p_socket ps, int how) { +- socket_setblocking(ps); + shutdown(*ps, how); +- socket_setnonblocking(ps); + } + + /*-------------------------------------------------------------------------*\ +@@ -166,7 +162,7 @@ int socket_connect(p_socket ps, SA *addr, socklen_t len, p_timeout tm) { + do if (connect(*ps, addr, len) == 0) return IO_DONE; + while ((err = errno) == EINTR); + /* if connection failed immediately, return error code */ +- if (err != EINPROGRESS && err != EAGAIN) return err; ++ if (err != EINPROGRESS && err != EAGAIN) return err; + /* zero timeout case optimization */ + if (timeout_iszero(tm)) return IO_TIMEOUT; + /* wait until we have the result of the connection attempt or timeout */ +@@ -181,7 +177,7 @@ int socket_connect(p_socket ps, SA *addr, socklen_t len, p_timeout tm) { + * Accept with timeout + \*-------------------------------------------------------------------------*/ + int socket_accept(p_socket ps, p_socket pa, SA *addr, socklen_t *len, p_timeout tm) { +- if (*ps == SOCKET_INVALID) return IO_CLOSED; ++ if (*ps == SOCKET_INVALID) return IO_CLOSED; + for ( ;; ) { + int err; + if ((*pa = accept(*ps, addr, len)) != SOCKET_INVALID) return IO_DONE; +@@ -197,7 +193,7 @@ int socket_accept(p_socket ps, p_socket pa, SA *addr, socklen_t *len, p_timeout + /*-------------------------------------------------------------------------*\ + * Send with timeout + \*-------------------------------------------------------------------------*/ +-int socket_send(p_socket ps, const char *data, size_t count, ++int socket_send(p_socket ps, const char *data, size_t count, + size_t *sent, p_timeout tm) + { + int err; +@@ -215,6 +211,8 @@ int socket_send(p_socket ps, const char *data, size_t count, + err = errno; + /* EPIPE means the connection was closed */ + if (err == EPIPE) return IO_CLOSED; ++ /* EPROTOTYPE means the connection is being closed (on Yosemite!)*/ ++ if (err == EPROTOTYPE) continue; + /* we call was interrupted, just try again */ + if (err == EINTR) continue; + /* if failed fatal reason, report error */ +@@ -229,20 +227,21 @@ int socket_send(p_socket ps, const char *data, size_t count, + /*-------------------------------------------------------------------------*\ + * Sendto with timeout + \*-------------------------------------------------------------------------*/ +-int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent, ++int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent, + SA *addr, socklen_t len, p_timeout tm) + { + int err; + *sent = 0; + if (*ps == SOCKET_INVALID) return IO_CLOSED; + for ( ;; ) { +- long put = (long) sendto(*ps, data, count, 0, addr, len); ++ long put = (long) sendto(*ps, data, count, 0, addr, len); + if (put >= 0) { + *sent = put; + return IO_DONE; + } + err = errno; + if (err == EPIPE) return IO_CLOSED; ++ if (err == EPROTOTYPE) continue; + if (err == EINTR) continue; + if (err != EAGAIN) return err; + if ((err = socket_waitfd(ps, WAITFD_W, tm)) != IO_DONE) return err; +@@ -266,8 +265,8 @@ int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm + err = errno; + if (taken == 0) return IO_CLOSED; + if (err == EINTR) continue; +- if (err != EAGAIN) return err; +- if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err; ++ if (err != EAGAIN) return err; ++ if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err; + } + return IO_UNKNOWN; + } +@@ -275,7 +274,7 @@ int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm + /*-------------------------------------------------------------------------*\ + * Recvfrom with timeout + \*-------------------------------------------------------------------------*/ +-int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got, ++int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got, + SA *addr, socklen_t *len, p_timeout tm) { + int err; + *got = 0; +@@ -289,8 +288,8 @@ int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got, + err = errno; + if (taken == 0) return IO_CLOSED; + if (err == EINTR) continue; +- if (err != EAGAIN) return err; +- if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err; ++ if (err != EAGAIN) return err; ++ if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err; + } + return IO_UNKNOWN; + } +@@ -303,7 +302,7 @@ int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got, + * with send/recv replaced with write/read. We can't just use write/read + * in the socket version, because behaviour when size is zero is different. + \*-------------------------------------------------------------------------*/ +-int socket_write(p_socket ps, const char *data, size_t count, ++int socket_write(p_socket ps, const char *data, size_t count, + size_t *sent, p_timeout tm) + { + int err; +@@ -321,6 +320,8 @@ int socket_write(p_socket ps, const char *data, size_t count, + err = errno; + /* EPIPE means the connection was closed */ + if (err == EPIPE) return IO_CLOSED; ++ /* EPROTOTYPE means the connection is being closed (on Yosemite!)*/ ++ if (err == EPROTOTYPE) continue; + /* we call was interrupted, just try again */ + if (err == EINTR) continue; + /* if failed fatal reason, report error */ +@@ -349,8 +350,8 @@ int socket_read(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm + err = errno; + if (taken == 0) return IO_CLOSED; + if (err == EINTR) continue; +- if (err != EAGAIN) return err; +- if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err; ++ if (err != EAGAIN) return err; ++ if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err; + } + return IO_UNKNOWN; + } +@@ -374,7 +375,7 @@ void socket_setnonblocking(p_socket ps) { + } + + /*-------------------------------------------------------------------------*\ +-* DNS helpers ++* DNS helpers + \*-------------------------------------------------------------------------*/ + int socket_gethostbyaddr(const char *addr, socklen_t len, struct hostent **hp) { + *hp = gethostbyaddr(addr, len, AF_INET); +@@ -399,7 +400,7 @@ int socket_gethostbyname(const char *addr, struct hostent **hp) { + const char *socket_hoststrerror(int err) { + if (err <= 0) return io_strerror(err); + switch (err) { +- case HOST_NOT_FOUND: return "host not found"; ++ case HOST_NOT_FOUND: return PIE_HOST_NOT_FOUND; + default: return hstrerror(err); + } + } +@@ -407,42 +408,43 @@ const char *socket_hoststrerror(int err) { + const char *socket_strerror(int err) { + if (err <= 0) return io_strerror(err); + switch (err) { +- case EADDRINUSE: return "address already in use"; +- case EISCONN: return "already connected"; +- case EACCES: return "permission denied"; +- case ECONNREFUSED: return "connection refused"; +- case ECONNABORTED: return "closed"; +- case ECONNRESET: return "closed"; +- case ETIMEDOUT: return "timeout"; +- default: return strerror(err); ++ case EADDRINUSE: return PIE_ADDRINUSE; ++ case EISCONN: return PIE_ISCONN; ++ case EACCES: return PIE_ACCESS; ++ case ECONNREFUSED: return PIE_CONNREFUSED; ++ case ECONNABORTED: return PIE_CONNABORTED; ++ case ECONNRESET: return PIE_CONNRESET; ++ case ETIMEDOUT: return PIE_TIMEDOUT; ++ default: { ++ return strerror(err); ++ } + } + } + + const char *socket_ioerror(p_socket ps, int err) { + (void) ps; + return socket_strerror(err); +-} ++} + + const char *socket_gaistrerror(int err) { +- if (err == 0) return NULL; ++ if (err == 0) return NULL; + switch (err) { +- case EAI_AGAIN: return "temporary failure in name resolution"; +- case EAI_BADFLAGS: return "invalid value for ai_flags"; ++ case EAI_AGAIN: return PIE_AGAIN; ++ case EAI_BADFLAGS: return PIE_BADFLAGS; + #ifdef EAI_BADHINTS +- case EAI_BADHINTS: return "invalid value for hints"; ++ case EAI_BADHINTS: return PIE_BADHINTS; + #endif +- case EAI_FAIL: return "non-recoverable failure in name resolution"; +- case EAI_FAMILY: return "ai_family not supported"; +- case EAI_MEMORY: return "memory allocation failure"; +- case EAI_NONAME: +- return "host or service not provided, or not known"; +- case EAI_OVERFLOW: return "argument buffer overflow"; ++ case EAI_FAIL: return PIE_FAIL; ++ case EAI_FAMILY: return PIE_FAMILY; ++ case EAI_MEMORY: return PIE_MEMORY; ++ case EAI_NONAME: return PIE_NONAME; ++ case EAI_OVERFLOW: return PIE_OVERFLOW; + #ifdef EAI_PROTOCOL +- case EAI_PROTOCOL: return "resolved protocol is unknown"; ++ case EAI_PROTOCOL: return PIE_PROTOCOL; + #endif +- case EAI_SERVICE: return "service not supported for socket type"; +- case EAI_SOCKTYPE: return "ai_socktype not supported"; +- case EAI_SYSTEM: return strerror(errno); ++ case EAI_SERVICE: return PIE_SERVICE; ++ case EAI_SOCKTYPE: return PIE_SOCKTYPE; ++ case EAI_SYSTEM: return strerror(errno); + default: return gai_strerror(err); + } + } +diff --git a/src/wsocket.c b/src/wsocket.c +index b4a4384..8ecb0fc 100644 +--- a/src/wsocket.c ++++ b/src/wsocket.c +@@ -3,33 +3,34 @@ + * LuaSocket toolkit + * + * The penalty of calling select to avoid busy-wait is only paid when +-* the I/O call fail in the first place. ++* the I/O call fail in the first place. + \*=========================================================================*/ + #include <string.h> + + #include "socket.h" ++#include "pierror.h" + + /* WinSock doesn't have a strerror... */ + static const char *wstrerror(int err); + + /*-------------------------------------------------------------------------*\ +-* Initializes module ++* Initializes module + \*-------------------------------------------------------------------------*/ + int socket_open(void) { + WSADATA wsaData; +- WORD wVersionRequested = MAKEWORD(2, 0); ++ WORD wVersionRequested = MAKEWORD(2, 0); + int err = WSAStartup(wVersionRequested, &wsaData ); + if (err != 0) return 0; + if ((LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 0) && + (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1)) { + WSACleanup(); +- return 0; ++ return 0; + } + return 1; + } + + /*-------------------------------------------------------------------------*\ +-* Close module ++* Close module + \*-------------------------------------------------------------------------*/ + int socket_close(void) { + WSACleanup(); +@@ -50,10 +51,10 @@ int socket_waitfd(p_socket ps, int sw, p_timeout tm) { + struct timeval tv, *tp = NULL; + double t; + if (timeout_iszero(tm)) return IO_TIMEOUT; /* optimize timeout == 0 case */ +- if (sw & WAITFD_R) { +- FD_ZERO(&rfds); ++ if (sw & WAITFD_R) { ++ FD_ZERO(&rfds); + FD_SET(*ps, &rfds); +- rp = &rfds; ++ rp = &rfds; + } + if (sw & WAITFD_W) { FD_ZERO(&wfds); FD_SET(*ps, &wfds); wp = &wfds; } + if (sw & WAITFD_C) { FD_ZERO(&efds); FD_SET(*ps, &efds); ep = &efds; } +@@ -72,9 +73,9 @@ int socket_waitfd(p_socket ps, int sw, p_timeout tm) { + /*-------------------------------------------------------------------------*\ + * Select with int timeout in ms + \*-------------------------------------------------------------------------*/ +-int socket_select(t_socket n, fd_set *rfds, fd_set *wfds, fd_set *efds, ++int socket_select(t_socket n, fd_set *rfds, fd_set *wfds, fd_set *efds, + p_timeout tm) { +- struct timeval tv; ++ struct timeval tv; + double t = timeout_get(tm); + tv.tv_sec = (int) t; + tv.tv_usec = (int) ((t - tv.tv_sec) * 1.0e6); +@@ -96,7 +97,7 @@ void socket_destroy(p_socket ps) { + } + + /*-------------------------------------------------------------------------*\ +-* ++* + \*-------------------------------------------------------------------------*/ + void socket_shutdown(p_socket ps, int how) { + socket_setblocking(ps); +@@ -134,10 +135,10 @@ int socket_connect(p_socket ps, SA *addr, socklen_t len, p_timeout tm) { + /* give windows time to set the error (yes, disgusting) */ + Sleep(10); + /* find out why we failed */ +- getsockopt(*ps, SOL_SOCKET, SO_ERROR, (char *)&err, &len); ++ getsockopt(*ps, SOL_SOCKET, SO_ERROR, (char *)&err, &len); + /* we KNOW there was an error. if 'why' is 0, we will return + * "unknown error", but it's not really our fault */ +- return err > 0? err: IO_UNKNOWN; ++ return err > 0? err: IO_UNKNOWN; + } else return err; + + } +@@ -154,7 +155,7 @@ int socket_bind(p_socket ps, SA *addr, socklen_t len) { + } + + /*-------------------------------------------------------------------------*\ +-* ++* + \*-------------------------------------------------------------------------*/ + int socket_listen(p_socket ps, int backlog) { + int err = IO_DONE; +@@ -167,7 +168,7 @@ int socket_listen(p_socket ps, int backlog) { + /*-------------------------------------------------------------------------*\ + * Accept with timeout + \*-------------------------------------------------------------------------*/ +-int socket_accept(p_socket ps, p_socket pa, SA *addr, socklen_t *len, ++int socket_accept(p_socket ps, p_socket pa, SA *addr, socklen_t *len, + p_timeout tm) { + if (*ps == SOCKET_INVALID) return IO_CLOSED; + for ( ;; ) { +@@ -175,21 +176,21 @@ int socket_accept(p_socket ps, p_socket pa, SA *addr, socklen_t *len, + /* try to get client socket */ + if ((*pa = accept(*ps, addr, len)) != SOCKET_INVALID) return IO_DONE; + /* find out why we failed */ +- err = WSAGetLastError(); ++ err = WSAGetLastError(); + /* if we failed because there was no connectoin, keep trying */ + if (err != WSAEWOULDBLOCK && err != WSAECONNABORTED) return err; + /* call select to avoid busy wait */ + if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err; +- } ++ } + } + + /*-------------------------------------------------------------------------*\ + * Send with timeout +-* On windows, if you try to send 10MB, the OS will buffer EVERYTHING +-* this can take an awful lot of time and we will end up blocked. ++* On windows, if you try to send 10MB, the OS will buffer EVERYTHING ++* this can take an awful lot of time and we will end up blocked. + * Therefore, whoever calls this function should not pass a huge buffer. + \*-------------------------------------------------------------------------*/ +-int socket_send(p_socket ps, const char *data, size_t count, ++int socket_send(p_socket ps, const char *data, size_t count, + size_t *sent, p_timeout tm) + { + int err; +@@ -206,18 +207,18 @@ int socket_send(p_socket ps, const char *data, size_t count, + return IO_DONE; + } + /* deal with failure */ +- err = WSAGetLastError(); ++ err = WSAGetLastError(); + /* we can only proceed if there was no serious error */ + if (err != WSAEWOULDBLOCK) return err; + /* avoid busy wait */ + if ((err = socket_waitfd(ps, WAITFD_W, tm)) != IO_DONE) return err; +- } ++ } + } + + /*-------------------------------------------------------------------------*\ + * Sendto with timeout + \*-------------------------------------------------------------------------*/ +-int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent, ++int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent, + SA *addr, socklen_t len, p_timeout tm) + { + int err; +@@ -229,17 +230,17 @@ int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent, + *sent = put; + return IO_DONE; + } +- err = WSAGetLastError(); ++ err = WSAGetLastError(); + if (err != WSAEWOULDBLOCK) return err; + if ((err = socket_waitfd(ps, WAITFD_W, tm)) != IO_DONE) return err; +- } ++ } + } + + /*-------------------------------------------------------------------------*\ + * Receive with timeout + \*-------------------------------------------------------------------------*/ +-int socket_recv(p_socket ps, char *data, size_t count, size_t *got, +- p_timeout tm) ++int socket_recv(p_socket ps, char *data, size_t count, size_t *got, ++ p_timeout tm) + { + int err, prev = IO_DONE; + *got = 0; +@@ -252,9 +253,9 @@ int socket_recv(p_socket ps, char *data, size_t count, size_t *got, + } + if (taken == 0) return IO_CLOSED; + err = WSAGetLastError(); +- /* On UDP, a connreset simply means the previous send failed. +- * So we try again. +- * On TCP, it means our socket is now useless, so the error passes. ++ /* On UDP, a connreset simply means the previous send failed. ++ * So we try again. ++ * On TCP, it means our socket is now useless, so the error passes. + * (We will loop again, exiting because the same error will happen) */ + if (err != WSAEWOULDBLOCK) { + if (err != WSAECONNRESET || prev == WSAECONNRESET) return err; +@@ -267,8 +268,8 @@ int socket_recv(p_socket ps, char *data, size_t count, size_t *got, + /*-------------------------------------------------------------------------*\ + * Recvfrom with timeout + \*-------------------------------------------------------------------------*/ +-int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got, +- SA *addr, socklen_t *len, p_timeout tm) ++int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got, ++ SA *addr, socklen_t *len, p_timeout tm) + { + int err, prev = IO_DONE; + *got = 0; +@@ -281,8 +282,8 @@ int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got, + } + if (taken == 0) return IO_CLOSED; + err = WSAGetLastError(); +- /* On UDP, a connreset simply means the previous send failed. +- * So we try again. ++ /* On UDP, a connreset simply means the previous send failed. ++ * So we try again. + * On TCP, it means our socket is now useless, so the error passes. + * (We will loop again, exiting because the same error will happen) */ + if (err != WSAEWOULDBLOCK) { +@@ -310,7 +311,7 @@ void socket_setnonblocking(p_socket ps) { + } + + /*-------------------------------------------------------------------------*\ +-* DNS helpers ++* DNS helpers + \*-------------------------------------------------------------------------*/ + int socket_gethostbyaddr(const char *addr, socklen_t len, struct hostent **hp) { + *hp = gethostbyaddr(addr, len, AF_INET); +@@ -330,21 +331,21 @@ int socket_gethostbyname(const char *addr, struct hostent **hp) { + const char *socket_hoststrerror(int err) { + if (err <= 0) return io_strerror(err); + switch (err) { +- case WSAHOST_NOT_FOUND: return "host not found"; +- default: return wstrerror(err); ++ case WSAHOST_NOT_FOUND: return PIE_HOST_NOT_FOUND; ++ default: return wstrerror(err); + } + } + + const char *socket_strerror(int err) { + if (err <= 0) return io_strerror(err); + switch (err) { +- case WSAEADDRINUSE: return "address already in use"; +- case WSAECONNREFUSED: return "connection refused"; +- case WSAEISCONN: return "already connected"; +- case WSAEACCES: return "permission denied"; +- case WSAECONNABORTED: return "closed"; +- case WSAECONNRESET: return "closed"; +- case WSAETIMEDOUT: return "timeout"; ++ case WSAEADDRINUSE: return PIE_ADDRINUSE; ++ case WSAECONNREFUSED : return PIE_CONNREFUSED; ++ case WSAEISCONN: return PIE_ISCONN; ++ case WSAEACCES: return PIE_ACCESS; ++ case WSAECONNABORTED: return PIE_CONNABORTED; ++ case WSAECONNRESET: return PIE_CONNRESET; ++ case WSAETIMEDOUT: return PIE_TIMEDOUT; + default: return wstrerror(err); + } + } +@@ -357,7 +358,7 @@ const char *socket_ioerror(p_socket ps, int err) { + static const char *wstrerror(int err) { + switch (err) { + case WSAEINTR: return "Interrupted function call"; +- case WSAEACCES: return "Permission denied"; ++ case WSAEACCES: return PIE_ACCESS; // "Permission denied"; + case WSAEFAULT: return "Bad address"; + case WSAEINVAL: return "Invalid argument"; + case WSAEMFILE: return "Too many open files"; +@@ -370,63 +371,61 @@ static const char *wstrerror(int err) { + case WSAEPROTOTYPE: return "Protocol wrong type for socket"; + case WSAENOPROTOOPT: return "Bad protocol option"; + case WSAEPROTONOSUPPORT: return "Protocol not supported"; +- case WSAESOCKTNOSUPPORT: return "Socket type not supported"; ++ case WSAESOCKTNOSUPPORT: return PIE_SOCKTYPE; // "Socket type not supported"; + case WSAEOPNOTSUPP: return "Operation not supported"; + case WSAEPFNOSUPPORT: return "Protocol family not supported"; +- case WSAEAFNOSUPPORT: +- return "Address family not supported by protocol family"; +- case WSAEADDRINUSE: return "Address already in use"; ++ case WSAEAFNOSUPPORT: return PIE_FAMILY; // "Address family not supported by protocol family"; ++ case WSAEADDRINUSE: return PIE_ADDRINUSE; // "Address already in use"; + case WSAEADDRNOTAVAIL: return "Cannot assign requested address"; + case WSAENETDOWN: return "Network is down"; + case WSAENETUNREACH: return "Network is unreachable"; + case WSAENETRESET: return "Network dropped connection on reset"; + case WSAECONNABORTED: return "Software caused connection abort"; +- case WSAECONNRESET: return "Connection reset by peer"; ++ case WSAECONNRESET: return PIE_CONNRESET; // "Connection reset by peer"; + case WSAENOBUFS: return "No buffer space available"; +- case WSAEISCONN: return "Socket is already connected"; ++ case WSAEISCONN: return PIE_ISCONN; // "Socket is already connected"; + case WSAENOTCONN: return "Socket is not connected"; + case WSAESHUTDOWN: return "Cannot send after socket shutdown"; +- case WSAETIMEDOUT: return "Connection timed out"; +- case WSAECONNREFUSED: return "Connection refused"; ++ case WSAETIMEDOUT: return PIE_TIMEDOUT; // "Connection timed out"; ++ case WSAECONNREFUSED: return PIE_CONNREFUSED; // "Connection refused"; + case WSAEHOSTDOWN: return "Host is down"; + case WSAEHOSTUNREACH: return "No route to host"; + case WSAEPROCLIM: return "Too many processes"; + case WSASYSNOTREADY: return "Network subsystem is unavailable"; + case WSAVERNOTSUPPORTED: return "Winsock.dll version out of range"; +- case WSANOTINITIALISED: ++ case WSANOTINITIALISED: + return "Successful WSAStartup not yet performed"; + case WSAEDISCON: return "Graceful shutdown in progress"; +- case WSAHOST_NOT_FOUND: return "Host not found"; ++ case WSAHOST_NOT_FOUND: return PIE_HOST_NOT_FOUND; // "Host not found"; + case WSATRY_AGAIN: return "Nonauthoritative host not found"; +- case WSANO_RECOVERY: return "Nonrecoverable name lookup error"; ++ case WSANO_RECOVERY: return PIE_FAIL; // "Nonrecoverable name lookup error"; + case WSANO_DATA: return "Valid name, no data record of requested type"; + default: return "Unknown error"; + } + } + + const char *socket_gaistrerror(int err) { +- if (err == 0) return NULL; ++ if (err == 0) return NULL; + switch (err) { +- case EAI_AGAIN: return "temporary failure in name resolution"; +- case EAI_BADFLAGS: return "invalid value for ai_flags"; ++ case EAI_AGAIN: return PIE_AGAIN; ++ case EAI_BADFLAGS: return PIE_BADFLAGS; + #ifdef EAI_BADHINTS +- case EAI_BADHINTS: return "invalid value for hints"; ++ case EAI_BADHINTS: return PIE_BADHINTS; + #endif +- case EAI_FAIL: return "non-recoverable failure in name resolution"; +- case EAI_FAMILY: return "ai_family not supported"; +- case EAI_MEMORY: return "memory allocation failure"; +- case EAI_NONAME: +- return "host or service not provided, or not known"; ++ case EAI_FAIL: return PIE_FAIL; ++ case EAI_FAMILY: return PIE_FAMILY; ++ case EAI_MEMORY: return PIE_MEMORY; ++ case EAI_NONAME: return PIE_NONAME; + #ifdef EAI_OVERFLOW +- case EAI_OVERFLOW: return "argument buffer overflow"; ++ case EAI_OVERFLOW: return PIE_OVERFLOW; + #endif + #ifdef EAI_PROTOCOL +- case EAI_PROTOCOL: return "resolved protocol is unknown"; ++ case EAI_PROTOCOL: return PIE_PROTOCOL; + #endif +- case EAI_SERVICE: return "service not supported for socket type"; +- case EAI_SOCKTYPE: return "ai_socktype not supported"; ++ case EAI_SERVICE: return PIE_SERVICE; ++ case EAI_SOCKTYPE: return PIE_SOCKTYPE; + #ifdef EAI_SYSTEM +- case EAI_SYSTEM: return strerror(errno); ++ case EAI_SYSTEM: return strerror(errno); + #endif + default: return gai_strerror(err); + } +diff --git a/test/auth/.htaccess b/test/auth/.htaccess +new file mode 100644 +index 0000000..bb2794a +--- /dev/null ++++ b/test/auth/.htaccess +@@ -0,0 +1,4 @@ ++AuthName "test-auth" ++ AuthType Basic ++ AuthUserFile /Users/diego/impa/luasocket/test/auth/.htpasswd ++ Require valid-user +diff --git a/test/auth/.htpasswd b/test/auth/.htpasswd +index fd9002b..cfb2603 100644 +--- a/test/auth/.htpasswd ++++ b/test/auth/.htpasswd +@@ -1 +1 @@ +-luasocket:l8n2npozPB.sQ ++luasocket:$apr1$47u2O.Me$.m/5BWAtt7GVoxsouIPBR1 +diff --git a/test/excepttest.lua b/test/excepttest.lua +index ce9f197..80c9cb8 100644 +--- a/test/excepttest.lua ++++ b/test/excepttest.lua +@@ -1,6 +1,30 @@ + local socket = require("socket") +-try = socket.newtry(function() +- print("finalized!!!") ++ ++local finalizer_called ++ ++local func = socket.protect(function(err, ...) ++ local try = socket.newtry(function() ++ finalizer_called = true ++ end) ++ ++ if err then ++ return error(err, 0) ++ else ++ return try(...) ++ end + end) +-try = socket.protect(try) +-print(try(nil, "it works")) ++ ++local ret1, ret2, ret3 = func(false, 1, 2, 3) ++assert(not finalizer_called, "unexpected finalizer call") ++assert(ret1 == 1 and ret2 == 2 and ret3 == 3, "incorrect return values") ++ ++ret1, ret2, ret3 = func(false, false, "error message") ++assert(finalizer_called, "finalizer not called") ++assert(ret1 == nil and ret2 == "error message" and ret3 == nil, "incorrect return values") ++ ++local err = {key = "value"} ++ret1, ret2 = pcall(func, err) ++assert(not ret1, "error not rethrown") ++assert(ret2 == err, "incorrect error rethrown") ++ ++print("OK") +diff --git a/test/httptest.lua b/test/httptest.lua +index d5fbb37..63ff921 100644 +--- a/test/httptest.lua ++++ b/test/httptest.lua +@@ -1,4 +1,4 @@ +--- needs Alias from /home/c/diego/tec/luasocket/test to ++-- needs Alias from /home/c/diego/tec/luasocket/test to + -- "/luasocket-test" and "/luasocket-test/" + -- needs ScriptAlias from /home/c/diego/tec/luasocket/test/cgi + -- to "/luasocket-test-cgi" and "/luasocket-test-cgi/" +@@ -36,22 +36,22 @@ index = readfile(index_file) + local check_result = function(response, expect, ignore) + for i,v in pairs(response) do + if not ignore[i] then +- if v ~= expect[i] then ++ if v ~= expect[i] then + local f = io.open("err", "w") + f:write(tostring(v), "\n\n versus\n\n", tostring(expect[i])) + f:close() +- fail(i .. " differs!") ++ fail(i .. " differs!") + end + end + end + for i,v in pairs(expect) do + if not ignore[i] then +- if v ~= response[i] then ++ if v ~= response[i] then + local f = io.open("err", "w") + f:write(tostring(response[i]), "\n\n versus\n\n", tostring(v)) + v = string.sub(type(v) == "string" and v or "", 1, 70) + f:close() +- fail(i .. " differs!") ++ fail(i .. " differs!") + end + end + end +@@ -61,10 +61,10 @@ end + local check_request = function(request, expect, ignore) + local t + if not request.sink then request.sink, t = ltn12.sink.table() end +- request.source = request.source or ++ request.source = request.source or + (request.body and ltn12.source.string(request.body)) + local response = {} +- response.code, response.headers, response.status = ++ response.code, response.headers, response.status = + socket.skip(1, http.request(request)) + if t and #t > 0 then response.body = table.concat(t) end + check_result(response, expect, ignore) +@@ -82,7 +82,7 @@ else fail(back.query) end + ------------------------------------------------------------------------ + io.write("testing query string correctness: ") + forth = "this+is+the+query+string" +-back = http.request("http://" .. host .. cgiprefix .. ++back = http.request("http://" .. host .. cgiprefix .. + "/query-string?" .. forth) + if similar(back, forth) then print("ok") + else fail("failed!") end +@@ -120,10 +120,10 @@ check_request(request, expect, ignore) + ------------------------------------------------------------------------ + io.write("testing invalid url: ") + local r, e = http.request{url = host .. prefix} +-assert(r == nil and e == "invalid host ''") ++assert(r == nil and e == "invalid host ''") + r, re = http.request(host .. prefix) +-assert(r == nil and e == re, tostring(r) ..", " .. tostring(re) .. +- " vs " .. tostring(e)) ++assert(r == nil and e == re, tostring(r) ..", " .. tostring(re) .. ++ " vs " .. tostring(e)) + print("ok") + + io.write("testing invalid empty port: ") +@@ -212,7 +212,7 @@ os.remove(index_file .. "-back") + io.write("testing ltn12.(sink|source).chain and mime.(encode|decode): ") + + local function b64length(len) +- local a = math.ceil(len/3)*4 ++ local a = math.ceil(len/3)*4 + local l = math.ceil(a/76) + return a + l*2 + end +@@ -313,7 +313,7 @@ ignore = { + headers = 1 + } + check_request(request, expect, ignore) +- ++ + ------------------------------------------------------------------------ + io.write("testing document not found: ") + request = { +@@ -429,9 +429,9 @@ print("ok") + io.write("testing host not found: ") + local c, e = socket.connect("example.invalid", 80) + local r, re = http.request{url = "http://example.invalid/does/not/exist"} +-assert(r == nil and e == re, tostring(r) .. " " .. tostring(re)) ++assert(r == nil and e == re, tostring(r) .. " " .. tostring(re)) + r, re = http.request("http://example.invalid/does/not/exist") +-assert(r == nil and e == re) ++assert(r == nil and e == re) + print("ok") + + ------------------------------------------------------------------------ +diff --git a/test/ltn12test.lua b/test/ltn12test.lua +index 74a45e8..e3f85fb 100644 +--- a/test/ltn12test.lua ++++ b/test/ltn12test.lua +@@ -192,6 +192,21 @@ assert(filter(nil, 1), "filter not empty") + print("ok") + + -------------------------------- ++io.write("testing source.chain (with several filters): ") ++local function double(x) -- filter turning "ABC" into "AABBCC" ++ if not x then return end ++ local b={} ++ for k in x:gmatch'.' do table.insert(b, k..k) end ++ return table.concat(b) ++end ++source = ltn12.source.string(s) ++source = ltn12.source.chain(source, double, double, double) ++sink, t = ltn12.sink.table() ++assert(ltn12.pump.all(source, sink), "returned error") ++assert(table.concat(t) == double(double(double(s))), "mismatch") ++print("ok") ++ ++-------------------------------- + io.write("testing source.chain (with split) and sink.chain (with merge): ") + source = ltn12.source.string(s) + filter = split(5) +@@ -206,6 +221,15 @@ assert(filter2(nil, 1), "filter2 not empty") + print("ok") + + -------------------------------- ++io.write("testing sink.chain (with several filters): ") ++source = ltn12.source.string(s) ++sink, t = ltn12.sink.table() ++sink = ltn12.sink.chain(double, double, double, sink) ++assert(ltn12.pump.all(source, sink), "returned error") ++assert(table.concat(t) == double(double(double(s))), "mismatch") ++print("ok") ++ ++-------------------------------- + io.write("testing filter.chain (and sink.chain, with split, merge): ") + source = ltn12.source.string(s) + filter = split(5) +@@ -272,3 +296,4 @@ assert(filter3(nil, 1), "filter3 not empty") + assert(filter4(nil, 1), "filter4 not empty") + assert(filter5(nil, 1), "filter5 not empty") + print("ok") ++ +diff --git a/test/testclnt.lua b/test/testclnt.lua +index 315783b..170e187 100644 +--- a/test/testclnt.lua ++++ b/test/testclnt.lua +@@ -8,7 +8,7 @@ function printf(...) + end + + function pass(...) +- printf(...) ++ printf(...) + io.stderr:write("\n") + end + +@@ -45,30 +45,30 @@ function check_timeout(tm, sl, elapsed, err, opp, mode, alldone) + if not err then warn("must be buffered") + elseif err == "timeout" then pass("proper timeout") + else fail("unexpected error '%s'", err) end +- else +- if err ~= "timeout" then fail("should have timed out") ++ else ++ if err ~= "timeout" then fail("should have timed out") + else pass("proper timeout") end + end + else + if mode == "total" then +- if elapsed > tm then ++ if elapsed > tm then + if err ~= "timeout" then fail("should have timed out") + else pass("proper timeout") end + elseif elapsed < tm then +- if err then fail(err) ++ if err then fail(err) + else pass("ok") end +- else +- if alldone then +- if err then fail("unexpected error '%s'", err) ++ else ++ if alldone then ++ if err then fail("unexpected error '%s'", err) + else pass("ok") end + else +- if err ~= "timeout" then fail(err) ++ if err ~= "timeout" then fail(err) + else pass("proper timeoutk") end + end + end +- else +- if err then fail(err) +- else pass("ok") end ++ else ++ if err then fail(err) ++ else pass("ok") end + end + end + end +@@ -104,8 +104,8 @@ control:setoption("tcp-nodelay", true) + ------------------------------------------------------------------------ + function test_methods(sock, methods) + for _, v in pairs(methods) do +- if type(sock[v]) ~= "function" then +- fail(sock.class .. " method '" .. v .. "' not registered") ++ if type(sock[v]) ~= "function" then ++ fail(sock.class .. " method '" .. v .. "' not registered") + end + end + pass(sock.class .. " methods are ok") +@@ -121,7 +121,7 @@ function test_mixed(len) + local p3 = "raw " .. string.rep("z", inter) .. "bytes" + local p4 = "end" .. string.rep("w", inter) .. "bytes" + local bp1, bp2, bp3, bp4 +-remote (string.format("str = data:receive(%d)", ++remote (string.format("str = data:receive(%d)", + string.len(p1)+string.len(p2)+string.len(p3)+string.len(p4))) + sent, err = data:send(p1..p2..p3..p4) + if err then fail(err) end +@@ -166,7 +166,7 @@ function test_rawline(len) + io.stderr:write("length " .. len .. ": ") + local str, str10, back, err + str = string.rep(string.char(47), math.mod(len, 10)) +- str10 = string.rep(string.char(120,21,77,4,5,0,7,36,44,100), ++ str10 = string.rep(string.char(120,21,77,4,5,0,7,36,44,100), + math.floor(len/10)) + str = str .. str10 + remote "str = data:receive()" +@@ -216,7 +216,7 @@ function test_totaltimeoutreceive(len, tm, sl) + data:settimeout(tm, "total") + local t = socket.gettime() + str, err, partial, elapsed = data:receive(2*len) +- check_timeout(tm, sl, elapsed, err, "receive", "total", ++ check_timeout(tm, sl, elapsed, err, "receive", "total", + string.len(str or partial) == 2*len) + end + +@@ -236,7 +236,7 @@ function test_totaltimeoutsend(len, tm, sl) + data:settimeout(tm, "total") + str = string.rep("a", 2*len) + total, err, partial, elapsed = data:send(str) +- check_timeout(tm, sl, elapsed, err, "send", "total", ++ check_timeout(tm, sl, elapsed, err, "send", "total", + total == 2*len) + end + +@@ -256,7 +256,7 @@ function test_blockingtimeoutreceive(len, tm, sl) + ]], 2*tm, len, sl, sl)) + data:settimeout(tm) + str, err, partial, elapsed = data:receive(2*len) +- check_timeout(tm, sl, elapsed, err, "receive", "blocking", ++ check_timeout(tm, sl, elapsed, err, "receive", "blocking", + string.len(str or partial) == 2*len) + end + +@@ -290,10 +290,10 @@ function empty_connect() + data = server:accept() + ]] + data, err = socket.connect("", port) +- if not data then ++ if not data then + pass("ok") + data = socket.connect(host, port) +- else ++ else + pass("gethostbyname returns localhost on empty string...") + end + end +@@ -304,15 +304,20 @@ function isclosed(c) + end + + function active_close() +- reconnect() +- if isclosed(data) then fail("should not be closed") end +- data:close() +- if not isclosed(data) then fail("should be closed") end +- data = nil +- local udp = socket.udp() ++ local tcp = socket.tcp4() ++ if isclosed(tcp) then fail("should not be closed") end ++ tcp:close() ++ if not isclosed(tcp) then fail("should be closed") end ++ tcp = socket.tcp() ++ if not isclosed(tcp) then fail("should be closed") end ++ tcp = nil ++ local udp = socket.udp4() + if isclosed(udp) then fail("should not be closed") end + udp:close() + if not isclosed(udp) then fail("should be closed") end ++ udp = socket.udp() ++ if not isclosed(udp) then fail("should be closed") end ++ udp = nil + pass("ok") + end + +@@ -327,7 +332,7 @@ function test_closed() + data:close() + data = nil + ]], str)) +- -- try to get a line ++ -- try to get a line + back, err, partial = data:receive() + if not err then fail("should have gotten 'closed'.") + elseif err ~= "closed" then fail("got '"..err.."' instead of 'closed'.") +@@ -340,25 +345,25 @@ function test_closed() + data = nil + ]] + total, err, partial = data:send(string.rep("ugauga", 100000)) +- if not err then ++ if not err then + pass("failed: output buffer is at least %d bytes long!", total) +- elseif err ~= "closed" then ++ elseif err ~= "closed" then + fail("got '"..err.."' instead of 'closed'.") +- else +- pass("graceful 'closed' received after %d bytes were sent", partial) ++ else ++ pass("graceful 'closed' received after %d bytes were sent", partial) + end + end + + ------------------------------------------------------------------------ + function test_selectbugs() + local r, s, e = socket.select(nil, nil, 0.1) +- assert(type(r) == "table" and type(s) == "table" and ++ assert(type(r) == "table" and type(s) == "table" and + (e == "timeout" or e == "error")) + pass("both nil: ok") + local udp = socket.udp() + udp:close() + r, s, e = socket.select({ udp }, { udp }, 0.1) +- assert(type(r) == "table" and type(s) == "table" and ++ assert(type(r) == "table" and type(s) == "table" and + (e == "timeout" or e == "error")) + pass("closed sockets: ok") + e = pcall(socket.select, "wrong", 1, 0.1) +@@ -368,7 +373,7 @@ function test_selectbugs() + pass("invalid input: ok") + local toomany = {} + for i = 1, socket._SETSIZE+1 do +- toomany[#toomany+1] = socket.udp() ++ toomany[#toomany+1] = socket.udp4() + end + if #toomany > socket._SETSIZE then + local e = pcall(socket.select, toomany, nil, 0.1) +@@ -389,7 +394,7 @@ function accept_timeout() + local t = socket.gettime() + s:settimeout(1) + local c, e = s:accept() +- assert(not c, "should not accept") ++ assert(not c, "should not accept") + assert(e == "timeout", string.format("wrong error message (%s)", e)) + t = socket.gettime() - t + assert(t < 2, string.format("took to long to give up (%gs)", t)) +@@ -407,9 +412,9 @@ function connect_timeout() + local t = socket.gettime() + local r, e = c:connect("10.0.0.1", 81) + assert(not r, "should not connect") +- assert(socket.gettime() - t < 2, "took too long to give up.") ++ assert(socket.gettime() - t < 2, "took too long to give up.") + c:close() +- pass("ok") ++ pass("ok") + end + + ------------------------------------------------------------------------ +@@ -447,16 +452,14 @@ end + + ------------------------------------------------------------------------ + function rebind_test() +- --local c ,c1 = socket.bind("localhost", 0) + local c ,c1 = socket.bind("127.0.0.1", 0) + if not c then pass ("failed to bind! " .. tostring(c) .. ' ' .. tostring(c1)) return end + assert(c,c1) +- + local i, p = c:getsockname() + local s, e = socket.tcp() + assert(s, e) + s:setoption("reuseaddr", false) +- r, e = s:bind("localhost", p) ++ r, e = s:bind(i, p) + assert(not r, "managed to rebind!") + assert(e) + pass("ok") +@@ -476,9 +479,9 @@ function getstats_test() + data:receive(c) + t = t + c + local r, s, a = data:getstats() +- assert(r == t, "received count failed" .. tostring(r) ++ assert(r == t, "received count failed" .. tostring(r) + .. "/" .. tostring(t)) +- assert(s == t, "sent count failed" .. tostring(s) ++ assert(s == t, "sent count failed" .. tostring(s) + .. "/" .. tostring(t)) + end + pass("ok") +@@ -486,7 +489,7 @@ end + + + ------------------------------------------------------------------------ +-function test_nonblocking(size) ++function test_nonblocking(size) + reconnect() + printf("testing " .. 2*size .. " bytes: ") + remote(string.format([[ +@@ -545,7 +548,7 @@ function test_readafterclose() + data:close() + data = nil + ]])) +- data:close() ++ data:close() + back, err, partial = data:receive("*a") + assert(back == nil and err == "closed", "should have returned 'closed'") + pass("ok") +@@ -555,7 +558,7 @@ function test_readafterclose() + data:close() + data = nil + ]])) +- data:close() ++ data:close() + back, err, partial = data:receive() + assert(back == nil and err == "closed", "should have returned 'closed'") + pass("ok") +@@ -565,7 +568,7 @@ function test_readafterclose() + data:close() + data = nil + ]])) +- data:close() ++ data:close() + back, err, partial = data:receive(1) + assert(back == nil and err == "closed", "should have returned 'closed'") + pass("ok") +@@ -575,7 +578,7 @@ function test_readafterclose() + data:close() + data = nil + ]])) +- data:close() ++ data:close() + back, err, partial = data:receive(0) + assert(back == nil and err == "closed", "should have returned 'closed'") + pass("ok") +@@ -590,10 +593,10 @@ function test_writeafterclose() + data = nil + ]])) + local sent, err, errsent +- while not err do ++ while not err do + sent, err, errsent, time = data:send(str) + end +- assert(err == "closed", "should have returned 'closed'") ++ assert(err == "closed", "got " .. err .. " instead of 'closed'") + pass("ok") + end + +@@ -648,25 +651,24 @@ else io.stderr:write("Warning! IPv6 does not support!\n") end + end + + local udp_methods = { +- "close", ++ "close", + "dirty", + "getfamily", + "getfd", + "getoption", + "getpeername", + "getsockname", +- "receive", +- "receivefrom", +- "send", +- "sendto", +- "setfd", ++ "receive", ++ "receivefrom", ++ "send", ++ "sendto", ++ "setfd", + "setoption", + "setpeername", + "setsockname", + "settimeout" + } + +- + ------------------------------------------------------------------------ + test_methods(socket.udp(), udp_methods) + do local sock = socket.tcp6() +@@ -674,6 +676,9 @@ if sock then test_methods(socket.udp6(), udp_methods) + else io.stderr:write("Warning! IPv6 does not support!\n") end + end + ++test("closed connection detection: ") ++test_closed() ++ + test("partial receive") + test_partialrecv() + +@@ -697,9 +702,6 @@ rebind_test() + test("active close: ") + active_close() + +-test("closed connection detection: ") +-test_closed() +- + test("accept function: ") + accept_timeout() + accept_errors() +diff --git a/test/testsrvr.lua b/test/testsrvr.lua +index 72b93ab..1eb2d5b 100644 +--- a/test/testsrvr.lua ++++ b/test/testsrvr.lua +@@ -6,7 +6,7 @@ ack = "\n"; + while 1 do + print("server: waiting for client connection..."); + control = assert(server:accept()); +- while 1 do ++ while 1 do + command, emsg = control:receive(); + if emsg == "closed" then + control:close() +diff --git a/test/udpconnectclnt.lua b/test/udpconnectclnt.lua +index effe13a..ad6ab6a 100644 +--- a/test/udpconnectclnt.lua ++++ b/test/udpconnectclnt.lua +@@ -1,7 +1,7 @@ + local socket = require"socket" + local udp = socket.udp + local localhost = "127.0.0.1" +-local port = arg[1] ++local port = assert(arg[1], "missing port argument") + + se = udp(); se:setoption("reuseaddr", true) + se:setsockname(localhost, 5062) +diff --git a/win32.cmd b/win32.cmd +index 48522f0..3045721 100644 +--- a/win32.cmd ++++ b/win32.cmd +@@ -1,12 +1 @@ +-make PLAT=win32 LUAV=5.2 LUAINC_win32='c:\cygwin\home\diego\build\include' LUALIB_win32='c:\cygwin\home\diego\build\bin\release' +- +-#!/bin/sh +-for p in Release Debug x64/Release x64/Debug; do +- for el in mime socket; do +- for e in dll lib; do +- cp $p/$el/core.$e ../bin/$p/$el/ +- done; +- done; +- cp src/ltn12.lua src/socket.lua src/mime.lua ../bin/$p/ +- cp src/http.lua src/url.lua src/tp.lua src/ftp.lua src/headers.lua src/smtp.lua ../bin/$p/socket/ +-done; ++make LUAPREFIX_win32='c:\cygwin\home\diego\vc12' LUAV=5.1 PLAT=win32 LUALIBNAME_win32=lualib.lib PLATFORM_win32=Debug install-both diff --git a/user/lua-socket/lua-cflags.patch b/user/lua-socket/lua-cflags.patch new file mode 100644 index 000000000..c1da89644 --- /dev/null +++ b/user/lua-socket/lua-cflags.patch @@ -0,0 +1,22 @@ +diff --git a/src/makefile b/src/makefile +index adf687f..c2abddc 100644 +--- a/src/makefile ++++ b/src/makefile +@@ -160,6 +160,8 @@ SOCKET_macosx=usocket.o + #------ + # Compiler and linker settings + # for Linux ++LUAPC=lua ++LUA_CFLAGS=$(shell pkg-config --cflags $(LUAPC)) + SO_linux=so + O_linux=o + CC_linux=gcc +@@ -167,7 +169,7 @@ DEF_linux=-DLUASOCKET_$(DEBUG) \ + -DLUASOCKET_API='__attribute__((visibility("default")))' \ + -DUNIX_API='__attribute__((visibility("default")))' \ + -DMIME_API='__attribute__((visibility("default")))' +-CFLAGS_linux= -I$(LUAINC) $(DEF) -Wall -Wshadow -Wextra \ ++CFLAGS_linux= $(LUA_CFLAGS) -I$(LUAINC) $(DEF) -Wall -Wshadow -Wextra \ + -Wimplicit -O2 -ggdb3 -fpic -fvisibility=hidden + LDFLAGS_linux=-O -shared -fpic -o + LD_linux=gcc diff --git a/user/marble/APKBUILD b/user/marble/APKBUILD index a80a9a2e0..5a7ea9146 100644 --- a/user/marble/APKBUILD +++ b/user/marble/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=marble -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Free, open-source map and virtual globe" url="https://marble.kde.org/" @@ -38,4 +38,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="e6bf16f7b26f8f1ba88448378c1d97506140f87c0d75481f9cc2435f5f7e09a55ae510475397c6ccfecd4252a618287638cb350425895ad216c1d74115f81956 marble-18.08.1.tar.xz" +sha512sums="d1a51b941cd5a9ee9b5500613f6436e2015f81d46df731848015244f11d7558c7a8401663dcebcf8cd9175233f7d4e1d70f8b3474df44f1f5bf5038fca820ef7 marble-18.08.2.tar.xz" diff --git a/user/minuet/APKBUILD b/user/minuet/APKBUILD index bcbb4ceeb..a57b25808 100644 --- a/user/minuet/APKBUILD +++ b/user/minuet/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=minuet -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Music education software" url="https://minuet.kde.org/" @@ -40,4 +40,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="653db86bc761f59df02a8d8ff82e59afeb71ef078a62ba5712d5092b0d9651dde9ddee027d303e622bd143c6aee49b01da1476d8cdc484b89192c08669cc6bef minuet-18.08.1.tar.xz" +sha512sums="0869a0e84daf995aca219c063ce38c88b7cc1bf40c0733aad80cffcb0800d67bddc02e3d21dce4940802a5262307b409447242954249e4093a16ce5dc336f369 minuet-18.08.2.tar.xz" diff --git a/user/nextcloud-client/APKBUILD b/user/nextcloud-client/APKBUILD index c842eaa18..549383413 100644 --- a/user/nextcloud-client/APKBUILD +++ b/user/nextcloud-client/APKBUILD @@ -7,6 +7,7 @@ pkgrel=0 pkgdesc="Nextcloud desktop client" url="https://github.com/nextcloud/desktop" arch="all" +options="!checkroot" license="GPL-2.0+ AND LGPL-2.1+ AND Public-Domain AND MIT AND (Custom:Digia-Qt OR LGPL-2.1-only WITH Qt-LGPL-exception-1.1) AND (Custom:Digia-Qt OR LGPL-2.1-only WITH Qt-LGPL-exception-1.1 OR GPL-3.0-only)" depends="" makedepends="cmake qt5-qttools-dev qtkeychain-dev zlib-dev diff --git a/user/okular/APKBUILD b/user/okular/APKBUILD index ba2fd75c2..f828ce146 100644 --- a/user/okular/APKBUILD +++ b/user/okular/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=okular -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Universal document reader developed by KDE" url="https://okular.kde.org/" @@ -44,4 +44,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="4114c614c3d773de158469a201c976ad36d706a0eb00b238af49d5e5a97fb272ce6033f744101c7e26110a7ac6b9c6cda26e3fc8c9c1bde22277f3ba2c55a375 okular-18.08.1.tar.xz" +sha512sums="099efe86a99f3c44f00873a01f6b3461bd0b1d0a6099c9954de034bfad9c483647d2b2c5cf87c5fbea4b2f6b4c350344480fb1dc77d9710991f9d7c5300ca8c4 okular-18.08.2.tar.xz" diff --git a/user/oprofile/APKBUILD b/user/oprofile/APKBUILD new file mode 100644 index 000000000..90641b0e3 --- /dev/null +++ b/user/oprofile/APKBUILD @@ -0,0 +1,42 @@ +# Contributor: A. Wilcox <awilfox@adelielinux.org> +# Maintainer: A. Wilcox <awilfox@adelielinux.org> +pkgname=oprofile +pkgver=1.3.0 +pkgrel=0 +pkgdesc="System profiler for Linux" +url="http://oprofile.sourceforge.net/news/" +arch="all" +license="GPL-2.0-only" +depends="" +makedepends="binutils-dev libpfm-dev popt-dev" +subpackages="$pkgname-doc" +source="https://prdownloads.sourceforge.net/oprofile/oprofile-$pkgver.tar.gz + disable-regex-test.patch + posixise.patch + " + +build() { + cd "$builddir" + CXXFLAGS="$CXXFLAGS" ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var + make +} + +check() { + cd "$builddir" + make check +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install +} + +sha512sums="02a940cd8d38834dca2a97c8ac0fff04ef95b3819cfdf74a462b9326c7abbf2dc55d2a9b9d1fbefc7f455465bf85516be2b879d7daf1861ba2c4af51214377ba oprofile-1.3.0.tar.gz +9ad0e25f2ab165e6613d8fbd65b652fb82b41beef28f9edca6b763001d50fb5f35e433454a7beeecaa1d0d3adc9c9f16adc6d4d9f20ae9d27cc3120c04906576 disable-regex-test.patch +831fd9b18df0daaa01682c50479f432e81da951550db6d0b11315232b728517493533b41b46fd64f3e74405b8d515fb86d7b4b96898cf45b262a7e790a131740 posixise.patch" diff --git a/user/oprofile/disable-regex-test.patch b/user/oprofile/disable-regex-test.patch new file mode 100644 index 000000000..7904cae4f --- /dev/null +++ b/user/oprofile/disable-regex-test.patch @@ -0,0 +1,11 @@ +--- oprofile-1.3.0/libregex/tests/Makefile.in.old 2018-07-16 19:39:39.000000000 +0000 ++++ oprofile-1.3.0/libregex/tests/Makefile.in 2018-10-10 20:38:01.400000000 +0000 +@@ -87,7 +87,7 @@ + POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ +-check_PROGRAMS = regex_test$(EXEEXT) java_test$(EXEEXT) ++check_PROGRAMS = java_test$(EXEEXT) + TESTS = $(check_PROGRAMS) + subdir = libregex/tests + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 diff --git a/user/oprofile/posixise.patch b/user/oprofile/posixise.patch new file mode 100644 index 000000000..85e064b8c --- /dev/null +++ b/user/oprofile/posixise.patch @@ -0,0 +1,54 @@ +--- oprofile-1.3.0/libpe_utils/op_pe_utils.cpp.old 2018-07-16 18:58:37.000000000 +0000 ++++ oprofile-1.3.0/libpe_utils/op_pe_utils.cpp 2018-10-10 20:20:10.730000000 +0000 +@@ -530,7 +530,7 @@ + static string _handle_powerpc_event_spec(string event_spec) + { + FILE * fp; +- char line[MAX_INPUT]; ++ char line[_POSIX_MAX_INPUT]; + size_t grp_pos; + string evt, err_msg; + size_t evt_name_len; +@@ -579,7 +579,7 @@ + } + + err_msg = "Cannot find event "; +- while (fgets(line, MAX_INPUT, fp)) { ++ while (fgets(line, _POSIX_MAX_INPUT, fp)) { + if (!first_non_cyc_evt_found) { + if (!strncmp(line, "PM_", 3)) + first_non_cyc_evt_found = true; +--- oprofile-1.3.0/pe_profiling/operf.cpp.old 2016-08-08 15:03:27.000000000 +0000 ++++ oprofile-1.3.0/pe_profiling/operf.cpp 2018-10-10 20:27:23.190000000 +0000 +@@ -860,9 +860,9 @@ + { + if (remove(fpath)) { + perror("sample data removal error"); +- return FTW_STOP; ++ return -1; + } else { +- return FTW_CONTINUE; ++ return 0; + } + } + +@@ -897,7 +897,7 @@ + return; + + if (!operf_options::append) { +- int flags = FTW_DEPTH | FTW_ACTIONRETVAL; ++ int flags = FTW_DEPTH; + errno = 0; + if (nftw(previous_sampledir.c_str(), __delete_old_previous_sample_data, 32, flags) !=0 && + errno != ENOENT) { +--- oprofile-1.3.0/libop/op_events.c.old 2018-01-18 16:46:48.000000000 +0000 ++++ oprofile-1.3.0/libop/op_events.c 2018-10-11 00:34:04.362677027 +0000 +@@ -83,7 +83,7 @@ + static u64 parse_long_hex(char const * str) + { + u64 value; +- if (sscanf(str, "%Lx", &value) != 1) ++ if (sscanf(str, "%llx", &value) != 1) + parse_error("expected long hexadecimal value"); + + fflush(stderr); diff --git a/user/opusfile/APKBUILD b/user/opusfile/APKBUILD index 9d92f0276..fa68d8249 100644 --- a/user/opusfile/APKBUILD +++ b/user/opusfile/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: pkgname=opusfile -pkgver=0.10 -pkgrel=1 +pkgver=0.11 +pkgrel=0 pkgdesc="High-level API for decoding and seeking within .opus files" url="http://www.opus-codec.org/" arch="all" @@ -37,4 +37,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="302601c31ca28bff175cefa99ac16177122a786d043be229616e2c98b7ffaf4a96b8bb17ca16e31240325a92763f417315b54d8f1b2f4f63f445cb7ad43c4a37 opusfile-0.10.tar.gz" +sha512sums="ec3e282310cc4f25475c27b7bc8d1652dcb25d3ac6badf87bd1b4e5397fbe106a0dab81c60d88d198003a23d8a2c9bae8b661edc9b31433effeca438ce56a349 opusfile-0.11.tar.gz" diff --git a/user/php7/APKBUILD b/user/php7/APKBUILD index e48a1f3e3..f68ba54d2 100644 --- a/user/php7/APKBUILD +++ b/user/php7/APKBUILD @@ -25,7 +25,7 @@ pkgname=php7 _pkgname=php -pkgver=7.2.10 +pkgver=7.2.11 pkgrel=0 _apiver=20170718 pkgdesc="The PHP7 language runtime engine" @@ -522,7 +522,7 @@ _mv() { mv $@ } -sha512sums="de1c22ee37cd0e6d1682091d9735f292cb5c6be653c5ce5771fdcd43522122dfebecab474fe2b29f94a757942513569916ebff59f3a8e63b6fc61830dabb3e47 php-7.2.10.tar.bz2 +sha512sums="a6bdd639648ae7845467e01303d0b4f4b85fd541409be97a5a605e91a9c994609e4e221a9c87c576134e66a2439920486d1f444e6fe8c34b0e5d025cee6d0cc8 php-7.2.11.tar.bz2 23df4e779c809db3e3b8e5b0353b1aafaad2f3dc56f2d1cd45f9b0e3ad71b32e40700d6ebfe914b3c87e8e0b670d0dc862ded1e5c898adf160e33dea372e044f php-fpm.initd 01d4ba3ef104ea378eb0e8cbb7bdee3fdf65e4bd6865eb3bc6c0dc4af31c2d52887abdf0150b5ef984b877860285a3b1af84b11ffebb5b8b722ea9faf83edfeb php-fpm.logrotate a7f9ba5e11652fd1cb9e756c3269269a95de083ecb5be936a85c7a09c1396db9088e0251c6a643c40235c0e776fce2a471e5c7f5a033b85c7d3b3110c2b39e48 php-module.conf diff --git a/user/plasma-framework/APKBUILD b/user/plasma-framework/APKBUILD index 6234f9b56..4bac08265 100644 --- a/user/plasma-framework/APKBUILD +++ b/user/plasma-framework/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=plasma-framework -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Frameworks for the KDE Plasma 5 desktop environment" url="https://www.kde.org/" @@ -47,4 +47,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="b0cee3cbca89f5497ea3525b52dafe1c0219fa29086454ba235bc02e9a2870ac1dcbddd3c05f5eb9b0fd2e9a5ac04b9aafcd4d03939f5023b907a5749fb22d87 plasma-framework-5.50.0.tar.xz" +sha512sums="5c5949101ce9f3c520f9b2663041292b4f070fc97061678e8aa8ea05b677f15ff5804ad66242cc3ffb11dd32ced50fdfa976c1f36540f0f09dfd6e5df114d800 plasma-framework-5.51.0.tar.xz" diff --git a/user/prison/APKBUILD b/user/prison/APKBUILD index 5ccc01d17..04d6f8939 100644 --- a/user/prison/APKBUILD +++ b/user/prison/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=prison -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Qt Barcode library for programatically creating QR codes" url="https://www.kde.org/" @@ -47,4 +47,4 @@ quick() { mv "$pkgdir"/usr/lib/qt5/qml "$subpkgdir"/usr/lib/qt5/ } -sha512sums="69baa1f0fb3859d7c32e53463e4c81d4f394ddf61ed6b11bd907a9edc98098b1895b01990bfe787359b9f5eae5b214a1c514b4bdacdbd0f7de2a10dfe90163d9 prison-5.50.0.tar.xz" +sha512sums="69e6f56d5fac5b2601230f40a8db688bb95ebe476c9cffd5ece4b58cf8697c237b80fb6525f6ff330b9c720553ddcccd87ed6c3241c8c7ea4a59a599b420919a prison-5.51.0.tar.xz" diff --git a/user/prosody/APKBUILD b/user/prosody/APKBUILD new file mode 100644 index 000000000..990de722f --- /dev/null +++ b/user/prosody/APKBUILD @@ -0,0 +1,59 @@ +# Contributor: Mika Havela <mika.havela@gmail.com> +# Contributor: Francesco Colista <fcolista@alpinelinux.org> +# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> +pkgname=prosody +pkgver=0.10.2 +pkgrel=0 +pkgdesc="Lua based Jabber/XMPP server" +url="http://prosody.im/" +arch="all" +options="!check" # broken testsuite +license="MIT" +depends="lua-socket lua-expat lua-filesystem lua-sec lua5.3" +makedepends="linux-headers lua5.3-dev libidn-dev openssl-dev" +install="prosody.pre-install" +subpackages="$pkgname-doc $pkgname-openrc" +pkgusers="prosody" +pkggroups="prosody" +source="https://prosody.im/downloads/source/$pkgname-$pkgver.tar.gz + prosody.cfg.lua.patch + mallinfo.patch + $pkgname.initd + " + +build() { + cd "$builddir" + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc/prosody \ + --ostype=linux \ + --with-lua-lib=/usr/lib \ + --with-lua-include=/usr/include \ + --lua-version=5.3 \ + --no-example-certs + # Don't generate certs + rm -f "$builddir"/certs/Makefile + + make +} + +check() { + cd "$builddir" + make test +} + +package() { + cd "$builddir" + make DESTDIR="$pkgdir" install + + install -d -o prosody -g prosody "$pkgdir/var/log/prosody" + install -d -o prosody -g prosody "$pkgdir/var/run/prosody" + install -d -m750 -o prosody -g prosody "$pkgdir/var/lib/prosody" + + install -D -m755 "$srcdir"/"$pkgname".initd "$pkgdir"/etc/init.d/"$pkgname" +} + +sha512sums="9fc05e34b45b0c16835ba94a73532fb3b4ee335f27d56bb9260e1b3e22614f89f44eb5d04b4e90d016db0b5bee6f5c7e7d099e1defb027e6823ee7667c1fe28f prosody-0.10.2.tar.gz +a6ca168fe3d11ee3b05295fb36dfaf8240c60a85507032b2502f9a97d3fd055f7eee38ba6efbb8f79472fc7cdd3556922194d0bd7099f7fb809be01890acc511 prosody.cfg.lua.patch +b07498cd42677d09f1a3fd4a5d91a085e90dd10cee7d6ee7c5e41438cfc2f4049ab9948c0fd0f7e148dd81f6a25c64c6ae832ea4864cee2329d3c6735216b78b mallinfo.patch +24360603dbd5d2a92758e6c4b4aab4f02cbd05373580cba2df76df98b6045891e8108e8c2d16af9508e93968ed5880db952e7a21b2742ebeec6f14b167968c2c prosody.initd" diff --git a/user/prosody/luasec-0.6-fix.patch b/user/prosody/luasec-0.6-fix.patch new file mode 100644 index 000000000..c8e37d091 --- /dev/null +++ b/user/prosody/luasec-0.6-fix.patch @@ -0,0 +1,14 @@ +diff --git a/util/dependencies.lua b/util/dependencies.lua +index 4d50cf6..9ea211d 100644 +--- a/util/dependencies.lua ++++ b/util/dependencies.lua +@@ -99,6 +99,9 @@ function check_dependencies() + ["luarocks"] = "luarocks install luasec"; + ["Source"] = "http://www.inf.puc-rio.br/~brunoos/luasec/"; + }, "SSL/TLS support will not be available"); ++ elseif not _G.ssl then ++ _G.ssl = ssl; ++ _G.ssl.context = require "ssl.context"; + end + + local encodings, err = softreq "util.encodings" diff --git a/user/prosody/mallinfo.patch b/user/prosody/mallinfo.patch new file mode 100644 index 000000000..4f9247c9b --- /dev/null +++ b/user/prosody/mallinfo.patch @@ -0,0 +1,13 @@ +diff --git a/util-src/pposix.c b/util-src/pposix.c +index e70a9d7..b9729ab 100644 +--- a/util-src/pposix.c ++++ b/util-src/pposix.c +@@ -52,7 +52,7 @@ + #include <linux/falloc.h> + #endif + +-#if !defined(WITHOUT_MALLINFO) && defined(__linux__) ++#ifdef __GLIBC__ + #include <malloc.h> + #define WITH_MALLINFO + #endif diff --git a/user/prosody/prosody.cfg.lua.patch b/user/prosody/prosody.cfg.lua.patch new file mode 100644 index 000000000..ff74c5172 --- /dev/null +++ b/user/prosody/prosody.cfg.lua.patch @@ -0,0 +1,36 @@ +diff --git a/prosody.cfg.lua.dist b/prosody.cfg.lua.dist +index a0fc6c9..23a36ac 100644 +--- a/prosody.cfg.lua.dist ++++ b/prosody.cfg.lua.dist +@@ -13,6 +13,9 @@ + -- blanks. Good luck, and happy Jabbering! + + ++daemonize = true ++pidfile = "/var/run/prosody/prosody.pid" ++ + ---------- Server-wide settings ---------- + -- Settings in this section apply to the whole server and are the default settings + -- for any virtual hosts +@@ -86,7 +89,7 @@ modules_disabled = { + -- "offline"; -- Store offline messages + -- "c2s"; -- Handle client connections + -- "s2s"; -- Handle server-to-server connections +- -- "posix"; -- POSIX functionality, sends server to background, enables syslog, etc. ++ "posix"; -- POSIX functionality, sends server to background, enables syslog, etc. + } + + -- Disable account creation by default, for security +@@ -161,9 +164,9 @@ archive_expires_after = "1w" -- Remove archived messages after 1 week + -- Logging configuration + -- For advanced logging see https://prosody.im/doc/logging + log = { +- info = "prosody.log"; -- Change 'info' to 'debug' for verbose logging +- error = "prosody.err"; +- -- "*syslog"; -- Uncomment this for logging to syslog ++ -- info = "prosody.log"; -- Change 'info' to 'debug' for verbose logging ++ -- error = "prosody.err"; ++ "*syslog"; -- Uncomment this for logging to syslog + -- "*console"; -- Log to the console, useful for debugging with daemonize=false + } + diff --git a/user/prosody/prosody.initd b/user/prosody/prosody.initd new file mode 100644 index 000000000..1d835daca --- /dev/null +++ b/user/prosody/prosody.initd @@ -0,0 +1,47 @@ +#!/sbin/openrc-run +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +description="Prosody is a server for prosody/XMPP written in Lua." +description_reload="Reload configuration and reopen log files." +extra_started_commands="reload" +pidfile="/var/run/prosody/prosody.pid" + +depend() { + use dns + need net + provide prosody-server +} + +checkconfig() { + if [ ! -e /etc/prosody/prosody.cfg.lua ] ; then + eerror "You need a /etc/prosody/prosody.cfg.lua file to run prosody" + return 1 + fi + luac5.2 -p /etc/prosody/prosody.cfg.lua + return $? +} + +start() { + checkconfig || return 1 + checkpath -q -d -m 0770 -o prosody:prosody "$(dirname ${pidfile})" + checkpath -q -f -m 0770 -o prosody:prosody "${pidfile}" + checkpath -q -d -m 0750 -o prosody:prosody /var/log/prosody + ebegin "Starting Prosody XMPP Server" + prosodyctl start + eend $? +} + +stop() { + ebegin "Stopping Prosody XMPP Server" + prosodyctl stop + eend $? +} + +reload() { + checkconfig || return 1 + ebegin "Reloading configuration of Prosody XMPP Server" + prosodyctl reload + eend $? +} diff --git a/user/prosody/prosody.pre-install b/user/prosody/prosody.pre-install new file mode 100644 index 000000000..39d9cfadd --- /dev/null +++ b/user/prosody/prosody.pre-install @@ -0,0 +1,11 @@ +#!/bin/sh + +addgroup -S prosody 2>/dev/null +adduser -S -D \ + -h /var/lib/prosody \ + -s /sbin/nologin \ + -G prosody \ + -g "Prosody XMPP Server" \ + prosody 2>/dev/null + +exit 0 diff --git a/user/prosody/prosodyctl.patch b/user/prosody/prosodyctl.patch new file mode 100644 index 000000000..18333dd52 --- /dev/null +++ b/user/prosody/prosodyctl.patch @@ -0,0 +1,11 @@ +--- prosody-0.9.10.q/prosodyctl ++++ prosody-0.9.10/prosodyctl +@@ -244,7 +244,7 @@ + local modulemanager = require "core.modulemanager" + + local prosodyctl = require "util.prosodyctl" +-require "socket" ++local socket = require "socket" + ----------------------- + + -- FIXME: Duplicate code waiting for util.startup diff --git a/user/protobuf/APKBUILD b/user/protobuf/APKBUILD index 5f00430bf..f8ff737a6 100644 --- a/user/protobuf/APKBUILD +++ b/user/protobuf/APKBUILD @@ -35,7 +35,7 @@ prepare() { build() { cd "$builddir" - CXXFLAGS="$CXXFLAGS -fno-delete-null-pointer-checks" \ + CXXFLAGS="$CXXFLAGS -fno-delete-null-pointer-checks" LDFLAGS="$LDFLAGS -latomic" \ ./configure --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ diff --git a/user/rocs/APKBUILD b/user/rocs/APKBUILD index 3cf0d9ef7..c7f2ce9c9 100644 --- a/user/rocs/APKBUILD +++ b/user/rocs/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=rocs -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Graph theory IDE" url="https://www.kde.org/applications/education/rocs/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="3b850415274bbc9155d56b7ff25dc17467d5947609133fe8d903263311b9a5551080110ee9af6f9a28c8e50c96e7f1a7d28fb5e6f91c94debf6b3ddf6631d45d rocs-18.08.1.tar.xz" +sha512sums="2f5e51146cb060f7c36d4ee637ef4a9d31e4befcdadd41874b8353951f4eb1e1bee45c84c89a8a1748d4e9c74122d9d8f621391f030c3655666848ee53bf2082 rocs-18.08.2.tar.xz" diff --git a/user/rust/0001-Require-static-native-libraries-when-linking-static-.patch b/user/rust/0001-Require-static-native-libraries-when-linking-static-.patch index 2bcf4b318..a9638ee75 100644 --- a/user/rust/0001-Require-static-native-libraries-when-linking-static-.patch +++ b/user/rust/0001-Require-static-native-libraries-when-linking-static-.patch @@ -1,7 +1,7 @@ -From 531eaa63083c5351cea24867ba7144817d456d77 Mon Sep 17 00:00:00 2001 +From 9cee7b92ea492f9a879c88ae0ca2c1f791bdec97 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Fri, 8 Sep 2017 00:05:18 -0500 -Subject: [PATCH 01/28] Require static native libraries when linking static +Subject: [PATCH 01/29] Require static native libraries when linking static executables --- diff --git a/user/rust/0002-Don-t-pass-CFLAGS-to-the-C-compiler.patch b/user/rust/0002-Don-t-pass-CFLAGS-to-the-C-compiler.patch index a3efabf93..6b9bcb876 100644 --- a/user/rust/0002-Don-t-pass-CFLAGS-to-the-C-compiler.patch +++ b/user/rust/0002-Don-t-pass-CFLAGS-to-the-C-compiler.patch @@ -1,7 +1,7 @@ -From b77da61648c4787be551de6f654148c3686c7a3e Mon Sep 17 00:00:00 2001 +From 8523832491df1889d9c226bef0cc76ed7b1a8d33 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Wed, 10 Jan 2018 13:36:41 -0600 -Subject: [PATCH 02/28] Don't pass CFLAGS to the C++ compiler +Subject: [PATCH 02/29] Don't pass CFLAGS to the C++ compiler --- src/bootstrap/builder.rs | 6 ++---- diff --git a/user/rust/0003-Fix-LLVM-build.patch b/user/rust/0003-Fix-LLVM-build.patch index d2ca8526b..72108f0ae 100644 --- a/user/rust/0003-Fix-LLVM-build.patch +++ b/user/rust/0003-Fix-LLVM-build.patch @@ -1,7 +1,7 @@ -From 272bbaa5abe4f165a1f45ea1e9b33604af3ca77b Mon Sep 17 00:00:00 2001 +From f8878714f01309b99cae990f390431929a37c2c8 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Fri, 8 Sep 2017 00:04:29 -0500 -Subject: [PATCH 03/28] Fix LLVM build +Subject: [PATCH 03/29] Fix LLVM build --- src/bootstrap/lib.rs | 3 ++- diff --git a/user/rust/0004-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch b/user/rust/0004-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch index a5105fd82..a28fc39b0 100644 --- a/user/rust/0004-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch +++ b/user/rust/0004-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch @@ -1,7 +1,7 @@ -From 46fce11b84d5ae71fe55593c6141307a60ee349f Mon Sep 17 00:00:00 2001 +From 898e72085351cae381669960fcc4d20b8afeeb78 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Mon, 17 Sep 2018 01:32:20 +0000 -Subject: [PATCH 04/28] test/sysroot-crates-are-unstable: Fix test when rpath +Subject: [PATCH 04/29] test/sysroot-crates-are-unstable: Fix test when rpath is disabled Without this environment var, the test can't run rustc to find diff --git a/user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch b/user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch index 4fb2f6e23..eda99398c 100644 --- a/user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch +++ b/user/rust/0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch @@ -1,7 +1,7 @@ -From 98c0bb0e0213db77313c73167acf65c4658046dd Mon Sep 17 00:00:00 2001 +From 1b47e0a7cfc3fd6572d939aa894e3a23522ed4c0 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Fri, 8 Sep 2017 22:11:14 -0500 -Subject: [PATCH 05/28] Remove -nostdlib and musl_root from musl targets +Subject: [PATCH 05/29] Remove -nostdlib and musl_root from musl targets --- config.toml.example | 6 --- diff --git a/user/rust/0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch b/user/rust/0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch index 2e0aa35d8..5a2b6c422 100644 --- a/user/rust/0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch +++ b/user/rust/0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch @@ -1,7 +1,7 @@ -From 6b2b48be476938c0f74b4e521e5ce3ecbeb19641 Mon Sep 17 00:00:00 2001 +From e3b90583112fd59255406f245db1856e0c21dab3 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Sat, 9 Sep 2017 00:14:16 -0500 -Subject: [PATCH 06/28] Prefer libgcc_eh over libunwind for musl +Subject: [PATCH 06/29] Prefer libgcc_eh over libunwind for musl --- src/libunwind/lib.rs | 2 +- diff --git a/user/rust/0007-runtest-Fix-proc-macro-tests-on-musl-hosts.patch b/user/rust/0007-runtest-Fix-proc-macro-tests-on-musl-hosts.patch index 102e2e3a9..745c5a45f 100644 --- a/user/rust/0007-runtest-Fix-proc-macro-tests-on-musl-hosts.patch +++ b/user/rust/0007-runtest-Fix-proc-macro-tests-on-musl-hosts.patch @@ -1,7 +1,7 @@ -From 30a10fccca71d84e696bf907621c30f66eb708e6 Mon Sep 17 00:00:00 2001 +From d77940e640855aed389af02a95db7958375785e1 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Sun, 16 Sep 2018 16:40:04 +0000 -Subject: [PATCH 07/28] runtest: Fix proc-macro tests on musl hosts +Subject: [PATCH 07/29] runtest: Fix proc-macro tests on musl hosts --- src/tools/compiletest/src/runtest.rs | 7 ++----- diff --git a/user/rust/0008-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch b/user/rust/0008-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch index 7dbd51a92..a3caa20f5 100644 --- a/user/rust/0008-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch +++ b/user/rust/0008-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch @@ -1,7 +1,7 @@ -From 8b418c37f13710085f9a0c0c70904ad07e799c3f Mon Sep 17 00:00:00 2001 +From 3028ae603ea6f08fd6bc1c64a7fe28628a1232e9 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Sat, 2 Dec 2017 17:25:44 -0600 -Subject: [PATCH 08/28] Allow rustdoc to work when cross-compiling on musl +Subject: [PATCH 08/29] Allow rustdoc to work when cross-compiling on musl musl can't handle foreign-architecture libraries in LD_LIBRARY_PATH. --- diff --git a/user/rust/0009-Add-missing-OpenSSL-configurations-for-musl-targets.patch b/user/rust/0009-Add-missing-OpenSSL-configurations-for-musl-targets.patch index 1bd596f33..6ae697151 100644 --- a/user/rust/0009-Add-missing-OpenSSL-configurations-for-musl-targets.patch +++ b/user/rust/0009-Add-missing-OpenSSL-configurations-for-musl-targets.patch @@ -1,7 +1,7 @@ -From 29fdec385825390eca134825acda5c2cbb09bceb Mon Sep 17 00:00:00 2001 +From 7595533dfe8121a2dcaec6de1653c3fb40349985 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Mon, 11 Sep 2017 11:21:56 -0500 -Subject: [PATCH 09/28] Add missing OpenSSL configurations for musl targets +Subject: [PATCH 09/29] Add missing OpenSSL configurations for musl targets --- src/bootstrap/native.rs | 6 ++++++ diff --git a/user/rust/0010-test-linkage-visibility-dlsym-only-sees-exported-sym.patch b/user/rust/0010-test-linkage-visibility-dlsym-only-sees-exported-sym.patch index 1d6b5ae0d..15f431e5a 100644 --- a/user/rust/0010-test-linkage-visibility-dlsym-only-sees-exported-sym.patch +++ b/user/rust/0010-test-linkage-visibility-dlsym-only-sees-exported-sym.patch @@ -1,7 +1,7 @@ -From 5cbbac1243e4cda725f82337245881fe71beeec0 Mon Sep 17 00:00:00 2001 +From 289d2f3ceb6226c385f3784d310465f375dc0c00 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Sun, 16 Sep 2018 16:35:41 +0000 -Subject: [PATCH 10/28] test/linkage-visibility: dlsym only sees exported +Subject: [PATCH 10/29] test/linkage-visibility: dlsym only sees exported symbols --- diff --git a/user/rust/0011-test-invalid_const_promotion-Accept-SIGTRAP-as-a-val.patch b/user/rust/0011-test-invalid_const_promotion-Accept-SIGTRAP-as-a-val.patch index b2bd46ab7..58db71538 100644 --- a/user/rust/0011-test-invalid_const_promotion-Accept-SIGTRAP-as-a-val.patch +++ b/user/rust/0011-test-invalid_const_promotion-Accept-SIGTRAP-as-a-val.patch @@ -1,7 +1,7 @@ -From c4ed34adcd7649f886354115132fb18489ed91dc Mon Sep 17 00:00:00 2001 +From 097f992e9ef62963f5e938e9a21171253a72b36a Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Sun, 16 Sep 2018 16:37:09 +0000 -Subject: [PATCH 11/28] test/invalid_const_promotion: Accept SIGTRAP as a valid +Subject: [PATCH 11/29] test/invalid_const_promotion: Accept SIGTRAP as a valid death signal --- diff --git a/user/rust/0015-Use-ELFv2-ABI-on-powerpc64-musl-LLVM-half.patch b/user/rust/0015-Use-ELFv2-ABI-on-powerpc64-musl-LLVM-half.patch deleted file mode 100644 index 72743d01d..000000000 --- a/user/rust/0015-Use-ELFv2-ABI-on-powerpc64-musl-LLVM-half.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 91000b21e3a9938a66b7a9d12281b807004eefcc Mon Sep 17 00:00:00 2001 -From: Samuel Holland <samuel@sholland.org> -Date: Wed, 8 Aug 2018 22:06:09 -0500 -Subject: [PATCH 15/28] Use ELFv2 ABI on powerpc64 musl (LLVM half) - ---- - src/rustllvm/PassWrapper.cpp | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp -index 85fbc4bf37..15c3ab18d9 100644 ---- a/src/rustllvm/PassWrapper.cpp -+++ b/src/rustllvm/PassWrapper.cpp -@@ -399,6 +399,12 @@ extern "C" LLVMTargetMachineRef LLVMRustCreateTargetMachine( - Options.ThreadModel = ThreadModel::Single; - } - -+ // See https://reviews.llvm.org/D52013 -+ if (Trip.getArch() == llvm::Triple::ArchType::ppc64 && -+ Trip.getEnvironment() == llvm::Triple::EnvironmentType::Musl) { -+ Options.MCOptions.ABIName = "elfv2"; -+ } -+ - #if LLVM_VERSION_GE(6, 0) - Optional<CodeModel::Model> CM; - #else --- -2.18.0 - diff --git a/user/rust/0015-flock-Fix-F_SETLK-F_SETLKW-on-32-bit-O_LARGEFILE.patch b/user/rust/0015-flock-Fix-F_SETLK-F_SETLKW-on-32-bit-O_LARGEFILE.patch new file mode 100644 index 000000000..de9661d3a --- /dev/null +++ b/user/rust/0015-flock-Fix-F_SETLK-F_SETLKW-on-32-bit-O_LARGEFILE.patch @@ -0,0 +1,27 @@ +From 9c13dec5a526a4a66dc45453ab1808ab9a1bb10b Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Tue, 9 Oct 2018 04:15:48 +0000 +Subject: [PATCH 15/29] flock: Fix F_SETLK/F_SETLKW on 32-bit O_LARGEFILE + +--- + src/librustc_data_structures/flock.rs | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/librustc_data_structures/flock.rs b/src/librustc_data_structures/flock.rs +index ff1ebb11b7..d85017ec50 100644 +--- a/src/librustc_data_structures/flock.rs ++++ b/src/librustc_data_structures/flock.rs +@@ -46,8 +46,8 @@ mod imp { + pub const F_RDLCK: libc::c_short = 0; + pub const F_WRLCK: libc::c_short = 1; + pub const F_UNLCK: libc::c_short = 2; +- pub const F_SETLK: libc::c_int = 6; +- pub const F_SETLKW: libc::c_int = 7; ++ pub const F_SETLK: libc::c_int = libc::F_SETLK; ++ pub const F_SETLKW: libc::c_int = libc::F_SETLKW; + } + + #[cfg(target_os = "freebsd")] +-- +2.18.0 + diff --git a/user/rust/0012-Add-powerpc-unknown-linux-musl-target.patch b/user/rust/0016-Add-powerpc-unknown-linux-musl-target.patch index acf5285c0..1bafb8dd5 100644 --- a/user/rust/0012-Add-powerpc-unknown-linux-musl-target.patch +++ b/user/rust/0016-Add-powerpc-unknown-linux-musl-target.patch @@ -1,7 +1,7 @@ -From 3e06726c26cd4ca93e7434cb33f7749e4d7311da Mon Sep 17 00:00:00 2001 +From 763b30d1e146fc04f7de2a8b1d6b17dcd94e3e0f Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Mon, 10 Sep 2018 01:35:35 +0000 -Subject: [PATCH 12/28] Add powerpc-unknown-linux-musl target +Subject: [PATCH 16/29] Add powerpc-unknown-linux-musl target --- src/bootstrap/native.rs | 1 + diff --git a/user/rust/0016-Use-ELFv2-ABI-on-powerpc64-musl-Rust-half.patch b/user/rust/0017-Use-the-ELFv2-ABI-on-powerpc64-musl.patch index 5841dfaf5..dd11dd568 100644 --- a/user/rust/0016-Use-ELFv2-ABI-on-powerpc64-musl-Rust-half.patch +++ b/user/rust/0017-Use-the-ELFv2-ABI-on-powerpc64-musl.patch @@ -1,7 +1,7 @@ -From 616f6627b1489fbf87f867cc9b7a2c870c64f06f Mon Sep 17 00:00:00 2001 +From e1214a04a9f8a30b67665ef353e3934e15e24a16 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Wed, 8 Aug 2018 22:06:18 -0500 -Subject: [PATCH 16/28] Use ELFv2 ABI on powerpc64 musl (Rust half) +Subject: [PATCH 17/29] Use the ELFv2 ABI on powerpc64 musl --- src/librustc_target/abi/call/powerpc64.rs | 12 ++++++++---- diff --git a/user/rust/0017-Fix-powerpc64-ELFv2-big-endian-struct-passing-ABI.patch b/user/rust/0018-Fix-powerpc64-ELFv2-big-endian-struct-passing-ABI.patch index 35bf35f6c..d1a6daa16 100644 --- a/user/rust/0017-Fix-powerpc64-ELFv2-big-endian-struct-passing-ABI.patch +++ b/user/rust/0018-Fix-powerpc64-ELFv2-big-endian-struct-passing-ABI.patch @@ -1,7 +1,7 @@ -From 87d7cb5226728f549af3a7f469a6107c3acbc41d Mon Sep 17 00:00:00 2001 +From c99f30986f8486cc24dda5630b685dd932d510d4 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Sun, 16 Sep 2018 16:34:15 +0000 -Subject: [PATCH 17/28] Fix powerpc64 ELFv2 big-endian struct-passing ABI +Subject: [PATCH 18/29] Fix powerpc64 ELFv2 big-endian struct-passing ABI The requirements here are not "ELFv1" requirements, but big-endian requirements, as the extension or non-extension of the argument is diff --git a/user/rust/0018-Add-powerpc64-unknown-linux-musl-target.patch b/user/rust/0019-Add-powerpc64-unknown-linux-musl-target.patch index a21c07b12..de0f2bc82 100644 --- a/user/rust/0018-Add-powerpc64-unknown-linux-musl-target.patch +++ b/user/rust/0019-Add-powerpc64-unknown-linux-musl-target.patch @@ -1,7 +1,7 @@ -From 529fb4b3cdc73a3a6b098f13f7d07255f0ebb63e Mon Sep 17 00:00:00 2001 +From 914179b27fdabbbd42da8206f46621a006e54180 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Tue, 7 Aug 2018 21:59:15 -0500 -Subject: [PATCH 18/28] Add powerpc64-unknown-linux-musl target +Subject: [PATCH 19/29] Add powerpc64-unknown-linux-musl target --- src/bootstrap/native.rs | 5 +++ diff --git a/user/rust/0019-run-pass-const-endianness-negate-before-to_le.patch b/user/rust/0020-run-pass-const-endianness-negate-before-to_le.patch index a024abc21..151b3f419 100644 --- a/user/rust/0019-run-pass-const-endianness-negate-before-to_le.patch +++ b/user/rust/0020-run-pass-const-endianness-negate-before-to_le.patch @@ -1,7 +1,7 @@ -From c38c7916aca7d0d0aa1d860ae16ec8743515c94c Mon Sep 17 00:00:00 2001 +From 72c7e78b400c1ad96d84b254b51dcc9f2baea3e1 Mon Sep 17 00:00:00 2001 From: Josh Stone <jistone@redhat.com> Date: Mon, 30 Jul 2018 13:08:56 -0700 -Subject: [PATCH 19/28] run-pass/const-endianness: negate before to_le() +Subject: [PATCH 20/29] run-pass/const-endianness: negate before to_le() `const LE_I128` needs parentheses to negate the value *before* calling `to_le()`, otherwise it doesn't match the operations performed in the diff --git a/user/rust/0020-Fix-double_check-tests-on-big-endian-targets.patch b/user/rust/0021-Fix-double_check-tests-on-big-endian-targets.patch index ca8f7d1ad..720db7d10 100644 --- a/user/rust/0020-Fix-double_check-tests-on-big-endian-targets.patch +++ b/user/rust/0021-Fix-double_check-tests-on-big-endian-targets.patch @@ -1,7 +1,7 @@ -From 94543ed21325120c86cde3267306272b519be3f7 Mon Sep 17 00:00:00 2001 +From 55549ca3d760200dc6037fecc7e5b8816558c5b1 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Sun, 16 Sep 2018 16:37:58 +0000 -Subject: [PATCH 20/28] Fix double_check tests on big-endian targets +Subject: [PATCH 21/29] Fix double_check tests on big-endian targets Since the enums get optimized down to 1 byte long, the bits set in the usize member don't align with the enums on big-endian diff --git a/user/rust/0022-test-debuginfo-Update-for-GDB-output-format-changes.patch b/user/rust/0022-test-debuginfo-Update-for-GDB-output-format-changes.patch deleted file mode 100644 index d7852a977..000000000 --- a/user/rust/0022-test-debuginfo-Update-for-GDB-output-format-changes.patch +++ /dev/null @@ -1,109 +0,0 @@ -From b50f6be09bdefa827bbb2248f48faaae87204a1d Mon Sep 17 00:00:00 2001 -From: Samuel Holland <samuel@sholland.org> -Date: Sun, 16 Sep 2018 16:34:56 +0000 -Subject: [PATCH 22/28] test/debuginfo: Update for GDB output format changes - ---- - .../generic-enum-with-different-disr-sizes.rs | 16 ++++++++-------- - src/test/debuginfo/generic-struct-style-enum.rs | 6 +++--- - src/test/debuginfo/generic-tuple-style-enum.rs | 6 +++--- - 3 files changed, 14 insertions(+), 14 deletions(-) - -diff --git a/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs b/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs -index 1fc05b3752..7e3818bc0e 100644 ---- a/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs -+++ b/src/test/debuginfo/generic-enum-with-different-disr-sizes.rs -@@ -19,36 +19,36 @@ - - // gdb-command:print eight_bytes1 - // gdbg-check:$1 = {{RUST$ENUM$DISR = Variant1, __0 = 100}, {RUST$ENUM$DISR = Variant1, __0 = 100}} --// gdbr-check:$1 = generic_enum_with_different_disr_sizes::Enum::Variant1(100) -+// gdbr-check:$1 = generic_enum_with_different_disr_sizes::Enum<f64>::Variant1(100) - - // gdb-command:print four_bytes1 - // gdbg-check:$2 = {{RUST$ENUM$DISR = Variant1, __0 = 101}, {RUST$ENUM$DISR = Variant1, __0 = 101}} --// gdbr-check:$2 = generic_enum_with_different_disr_sizes::Enum::Variant1(101) -+// gdbr-check:$2 = generic_enum_with_different_disr_sizes::Enum<i32>::Variant1(101) - - // gdb-command:print two_bytes1 - // gdbg-check:$3 = {{RUST$ENUM$DISR = Variant1, __0 = 102}, {RUST$ENUM$DISR = Variant1, __0 = 102}} --// gdbr-check:$3 = generic_enum_with_different_disr_sizes::Enum::Variant1(102) -+// gdbr-check:$3 = generic_enum_with_different_disr_sizes::Enum<i16>::Variant1(102) - - // gdb-command:print one_byte1 - // gdbg-check:$4 = {{RUST$ENUM$DISR = Variant1, __0 = 65 'A'}, {RUST$ENUM$DISR = Variant1, __0 = 65 'A'}} --// gdbr-check:$4 = generic_enum_with_different_disr_sizes::Enum::Variant1(65) -+// gdbr-check:$4 = generic_enum_with_different_disr_sizes::Enum<u8>::Variant1(65) - - - // gdb-command:print eight_bytes2 - // gdbg-check:$5 = {{RUST$ENUM$DISR = Variant2, __0 = 100}, {RUST$ENUM$DISR = Variant2, __0 = 100}} --// gdbr-check:$5 = generic_enum_with_different_disr_sizes::Enum::Variant2(100) -+// gdbr-check:$5 = generic_enum_with_different_disr_sizes::Enum<f64>::Variant2(100) - - // gdb-command:print four_bytes2 - // gdbg-check:$6 = {{RUST$ENUM$DISR = Variant2, __0 = 101}, {RUST$ENUM$DISR = Variant2, __0 = 101}} --// gdbr-check:$6 = generic_enum_with_different_disr_sizes::Enum::Variant2(101) -+// gdbr-check:$6 = generic_enum_with_different_disr_sizes::Enum<i32>::Variant2(101) - - // gdb-command:print two_bytes2 - // gdbg-check:$7 = {{RUST$ENUM$DISR = Variant2, __0 = 102}, {RUST$ENUM$DISR = Variant2, __0 = 102}} --// gdbr-check:$7 = generic_enum_with_different_disr_sizes::Enum::Variant2(102) -+// gdbr-check:$7 = generic_enum_with_different_disr_sizes::Enum<i16>::Variant2(102) - - // gdb-command:print one_byte2 - // gdbg-check:$8 = {{RUST$ENUM$DISR = Variant2, __0 = 65 'A'}, {RUST$ENUM$DISR = Variant2, __0 = 65 'A'}} --// gdbr-check:$8 = generic_enum_with_different_disr_sizes::Enum::Variant2(65) -+// gdbr-check:$8 = generic_enum_with_different_disr_sizes::Enum<u8>::Variant2(65) - - // gdb-command:continue - -diff --git a/src/test/debuginfo/generic-struct-style-enum.rs b/src/test/debuginfo/generic-struct-style-enum.rs -index 4a1d14ccf6..fa6b0105dc 100644 ---- a/src/test/debuginfo/generic-struct-style-enum.rs -+++ b/src/test/debuginfo/generic-struct-style-enum.rs -@@ -19,15 +19,15 @@ - - // gdb-command:print case1 - // gdbg-check:$1 = {{RUST$ENUM$DISR = Case1, a = 0, b = 31868, c = 31868, d = 31868, e = 31868}, {RUST$ENUM$DISR = Case1, [...]}, {RUST$ENUM$DISR = Case1, [...]}} --// gdbr-check:$1 = generic_struct_style_enum::Regular::Case1{a: 0, b: 31868, c: 31868, d: 31868, e: 31868} -+// gdbr-check:$1 = generic_struct_style_enum::Regular<u16, u32, i64>::Case1{a: 0, b: 31868, c: 31868, d: 31868, e: 31868} - - // gdb-command:print case2 - // gdbg-check:$2 = {{RUST$ENUM$DISR = Case2, [...]}, {RUST$ENUM$DISR = Case2, a = 0, b = 286331153, c = 286331153}, {RUST$ENUM$DISR = Case2, [...]}} --// gdbr-check:$2 = generic_struct_style_enum::Regular::Case2{a: 0, b: 286331153, c: 286331153} -+// gdbr-check:$2 = generic_struct_style_enum::Regular<i16, u32, i64>::Case2{a: 0, b: 286331153, c: 286331153} - - // gdb-command:print case3 - // gdbg-check:$3 = {{RUST$ENUM$DISR = Case3, [...]}, {RUST$ENUM$DISR = Case3, [...]}, {RUST$ENUM$DISR = Case3, a = 0, b = 6438275382588823897}} --// gdbr-check:$3 = generic_struct_style_enum::Regular::Case3{a: 0, b: 6438275382588823897} -+// gdbr-check:$3 = generic_struct_style_enum::Regular<u16, i32, u64>::Case3{a: 0, b: 6438275382588823897} - - // gdb-command:print univariant - // gdbg-check:$4 = {{a = -1}} -diff --git a/src/test/debuginfo/generic-tuple-style-enum.rs b/src/test/debuginfo/generic-tuple-style-enum.rs -index 012bd6140c..b0f85d6f8b 100644 ---- a/src/test/debuginfo/generic-tuple-style-enum.rs -+++ b/src/test/debuginfo/generic-tuple-style-enum.rs -@@ -21,15 +21,15 @@ - - // gdb-command:print case1 - // gdbg-check:$1 = {{RUST$ENUM$DISR = Case1, __0 = 0, __1 = 31868, __2 = 31868, __3 = 31868, __4 = 31868}, {RUST$ENUM$DISR = Case1, [...]}, {RUST$ENUM$DISR = Case1, [...]}} --// gdbr-check:$1 = generic_tuple_style_enum::Regular::Case1(0, 31868, 31868, 31868, 31868) -+// gdbr-check:$1 = generic_tuple_style_enum::Regular<u16, u32, u64>::Case1(0, 31868, 31868, 31868, 31868) - - // gdb-command:print case2 - // gdbg-check:$2 = {{RUST$ENUM$DISR = Case2, [...]}, {RUST$ENUM$DISR = Case2, __0 = 0, __1 = 286331153, __2 = 286331153}, {RUST$ENUM$DISR = Case2, [...]}} --// gdbr-check:$2 = generic_tuple_style_enum::Regular::Case2(0, 286331153, 286331153) -+// gdbr-check:$2 = generic_tuple_style_enum::Regular<i16, i32, i64>::Case2(0, 286331153, 286331153) - - // gdb-command:print case3 - // gdbg-check:$3 = {{RUST$ENUM$DISR = Case3, [...]}, {RUST$ENUM$DISR = Case3, [...]}, {RUST$ENUM$DISR = Case3, __0 = 0, __1 = 6438275382588823897}} --// gdbr-check:$3 = generic_tuple_style_enum::Regular::Case3(0, 6438275382588823897) -+// gdbr-check:$3 = generic_tuple_style_enum::Regular<i16, i32, i64>::Case3(0, 6438275382588823897) - - // gdb-command:print univariant - // gdbg-check:$4 = {{__0 = -1}} --- -2.18.0 - diff --git a/user/rust/0021-x.py-Use-python3-instead-of-python.patch b/user/rust/0022-x.py-Use-python3-instead-of-python.patch index 70a1dcb9a..e23de6cef 100644 --- a/user/rust/0021-x.py-Use-python3-instead-of-python.patch +++ b/user/rust/0022-x.py-Use-python3-instead-of-python.patch @@ -1,7 +1,7 @@ -From e6007a9a892ccece7c940782a1ac9c13275eb26a Mon Sep 17 00:00:00 2001 +From 2a14cfeafd57037b4063e411f8e90f09bbe29fa4 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Mon, 10 Sep 2018 01:36:00 +0000 -Subject: [PATCH 21/28] x.py: Use python3 instead of python +Subject: [PATCH 22/29] x.py: Use python3 instead of python --- x.py | 2 +- diff --git a/user/rust/0023-test-target-feature-gate-Ignore-on-not-applicable-ta.patch b/user/rust/0023-test-target-feature-gate-Ignore-on-not-applicable-ta.patch deleted file mode 100644 index bcb0e8e77..000000000 --- a/user/rust/0023-test-target-feature-gate-Ignore-on-not-applicable-ta.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 103ce33fe27dfcb0dad1354f269838f641fe66f6 Mon Sep 17 00:00:00 2001 -From: Samuel Holland <samuel@sholland.org> -Date: Sun, 16 Sep 2018 16:39:46 +0000 -Subject: [PATCH 23/28] test/target-feature-gate: Ignore on not-applicable - targets - ---- - src/test/ui/target-feature-gate.rs | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/test/ui/target-feature-gate.rs b/src/test/ui/target-feature-gate.rs -index 69208f1513..59c5708b0c 100644 ---- a/src/test/ui/target-feature-gate.rs -+++ b/src/test/ui/target-feature-gate.rs -@@ -10,6 +10,8 @@ - - // ignore-arm - // ignore-aarch64 -+// ignore-powerpc -+// ignore-powerpc64 - // ignore-wasm - // ignore-emscripten - // gate-test-sse4a_target_feature --- -2.18.0 - diff --git a/user/rust/0023-test-target-feature-gate-Only-run-on-relevant-target.patch b/user/rust/0023-test-target-feature-gate-Only-run-on-relevant-target.patch new file mode 100644 index 000000000..0bfa28fe9 --- /dev/null +++ b/user/rust/0023-test-target-feature-gate-Only-run-on-relevant-target.patch @@ -0,0 +1,37 @@ +From beb589601f0ca9dd762aaa9f52a440bbef68e943 Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Sun, 16 Sep 2018 16:39:46 +0000 +Subject: [PATCH 23/29] test/target-feature-gate: Only run on relevant targets + +--- + src/test/ui/target-feature-gate.rs | 2 ++ + src/test/ui/target-feature-gate.stderr | 2 +- + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/test/ui/target-feature-gate.rs b/src/test/ui/target-feature-gate.rs +index 69208f1513..59c5708b0c 100644 +--- a/src/test/ui/target-feature-gate.rs ++++ b/src/test/ui/target-feature-gate.rs +@@ -10,6 +10,8 @@ + + // ignore-arm + // ignore-aarch64 ++// ignore-powerpc ++// ignore-powerpc64 + // ignore-wasm + // ignore-emscripten + // gate-test-sse4a_target_feature +diff --git a/src/test/ui/target-feature-gate.stderr b/src/test/ui/target-feature-gate.stderr +index a6f794a1a1..24141d0064 100644 +--- a/src/test/ui/target-feature-gate.stderr ++++ b/src/test/ui/target-feature-gate.stderr +@@ -1,5 +1,5 @@ + error[E0658]: the target feature `avx512bw` is currently unstable (see issue #44839) +- --> $DIR/target-feature-gate.rs:26:18 ++ --> $DIR/target-feature-gate.rs:28:18 + | + LL | #[target_feature(enable = "avx512bw")] + | ^^^^^^^^^^^^^^^^^^^ +-- +2.18.0 + diff --git a/user/rust/0024-test-use-extern-for-plugins-Don-t-assume-multilib.patch b/user/rust/0024-test-use-extern-for-plugins-Don-t-assume-multilib.patch new file mode 100644 index 000000000..c033bb558 --- /dev/null +++ b/user/rust/0024-test-use-extern-for-plugins-Don-t-assume-multilib.patch @@ -0,0 +1,30 @@ +From 0fbfd4524768afad009e8e94c8824adfd7bd3b00 Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Sat, 6 Oct 2018 04:01:48 +0000 +Subject: [PATCH 24/29] test/use-extern-for-plugins: Don't assume multilib + +--- + src/test/run-make-fulldeps/use-extern-for-plugins/Makefile | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/src/test/run-make-fulldeps/use-extern-for-plugins/Makefile b/src/test/run-make-fulldeps/use-extern-for-plugins/Makefile +index cc7bc176f4..36553f1e44 100644 +--- a/src/test/run-make-fulldeps/use-extern-for-plugins/Makefile ++++ b/src/test/run-make-fulldeps/use-extern-for-plugins/Makefile +@@ -4,12 +4,7 @@ SKIP_OS := 'FreeBSD OpenBSD Bitrig SunOS' + + ifneq ($(UNAME),$(findstring $(UNAME),$(SKIP_OS))) + +-HOST := $(shell $(RUSTC) -vV | grep 'host:' | sed 's/host: //') +-ifeq ($(findstring i686,$(HOST)),i686) +-TARGET := $(subst i686,x86_64,$(HOST)) +-else +-TARGET := $(subst x86_64,i686,$(HOST)) +-endif ++TARGET := $(shell $(RUSTC) -vV | grep 'host:' | sed 's/host: //') + + all: + $(RUSTC) foo.rs -C extra-filename=-host +-- +2.18.0 + diff --git a/user/rust/0024-Ignore-broken-and-non-applicable-tests.patch b/user/rust/0025-Ignore-broken-and-non-applicable-tests.patch index 75434c9fb..12c3e46dd 100644 --- a/user/rust/0024-Ignore-broken-and-non-applicable-tests.patch +++ b/user/rust/0025-Ignore-broken-and-non-applicable-tests.patch @@ -1,18 +1,16 @@ -From 4ed9e0630eafd839c9b22e8ed56ecacccc913bdf Mon Sep 17 00:00:00 2001 +From 72a9bf3841f3c07db121f6d41ccd448d73aa1c01 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Sun, 16 Sep 2018 16:38:48 +0000 -Subject: [PATCH 24/28] Ignore broken and non-applicable tests +Subject: [PATCH 25/29] Ignore broken and non-applicable tests -long-linker-command-lines: takes more than 10 minutes to run -nil-enum: GDB output changed in a questionable way +long-linker-command-lines: takes >10 minutes to run (but still passes) sparc-struct-abi: no sparc target sysroot-crates-are-unstable: can't run rustc without rpath --- src/test/codegen/sparc-struct-abi.rs | 1 + - src/test/debuginfo/nil-enum.rs | 2 +- src/test/run-make-fulldeps/long-linker-command-lines/Makefile | 1 - src/test/run-make-fulldeps/sysroot-crates-are-unstable/Makefile | 2 +- - 4 files changed, 3 insertions(+), 3 deletions(-) + 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/codegen/sparc-struct-abi.rs b/src/test/codegen/sparc-struct-abi.rs index d3b7a5cd59..5e0f94cdf9 100644 @@ -26,19 +24,6 @@ index d3b7a5cd59..5e0f94cdf9 100644 #![feature(no_core, lang_items)] #![no_core] -diff --git a/src/test/debuginfo/nil-enum.rs b/src/test/debuginfo/nil-enum.rs -index 94377421c0..bce2b98447 100644 ---- a/src/test/debuginfo/nil-enum.rs -+++ b/src/test/debuginfo/nil-enum.rs -@@ -10,7 +10,7 @@ - - // LLDB can't handle zero-sized values - // ignore-lldb -- -+// ignore-test - - // compile-flags:-g - // gdb-command:run diff --git a/src/test/run-make-fulldeps/long-linker-command-lines/Makefile b/src/test/run-make-fulldeps/long-linker-command-lines/Makefile index 5876fbc94b..e9f5c33b77 100644 --- a/src/test/run-make-fulldeps/long-linker-command-lines/Makefile diff --git a/user/rust/0028-Link-stage-2-tools-dynamically-to-libstd.patch b/user/rust/0026-Link-stage-2-tools-dynamically-to-libstd.patch index 5a6f8506c..ffd3e8342 100644 --- a/user/rust/0028-Link-stage-2-tools-dynamically-to-libstd.patch +++ b/user/rust/0026-Link-stage-2-tools-dynamically-to-libstd.patch @@ -1,7 +1,7 @@ -From 418b6417dbaf06f5afe7a076bc8d58c308a4a48c Mon Sep 17 00:00:00 2001 +From 29df88cb3f1bdaac8e6a0049f8f1c1e335954509 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Mon, 24 Sep 2018 23:42:23 +0000 -Subject: [PATCH 28/28] Link stage 2 tools dynamically to libstd +Subject: [PATCH 26/29] Link stage 2 tools dynamically to libstd --- src/bootstrap/tool.rs | 4 +++- diff --git a/user/rust/0027-Add-foxkit-target-specs-for-OpenSSL.patch b/user/rust/0027-Add-foxkit-target-specs-for-OpenSSL.patch deleted file mode 100644 index 69e8584ba..000000000 --- a/user/rust/0027-Add-foxkit-target-specs-for-OpenSSL.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 7eba02678b9a00bc6d38281795422663bca3fcc1 Mon Sep 17 00:00:00 2001 -From: Samuel Holland <samuel@sholland.org> -Date: Tue, 18 Sep 2018 00:02:46 +0000 -Subject: [PATCH 27/28] Add foxkit target specs for OpenSSL - ---- - src/bootstrap/native.rs | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs -index 186ef75189..406c76b95c 100644 ---- a/src/bootstrap/native.rs -+++ b/src/bootstrap/native.rs -@@ -652,6 +652,12 @@ impl Step for Openssl { - "x86_64-unknown-linux-gnux32" => "linux-x32", - "x86_64-unknown-linux-musl" => "linux-x86_64", - "x86_64-unknown-netbsd" => "BSD-x86_64", -+ "aarch64-foxkit-linux-musl" => "linux-aarch64", -+ "armv7-foxkit-linux-musleabihf" => "linux-armv4", -+ "i586-foxkit-linux-musl" => "linux-elf", -+ "powerpc-foxkit-linux-musl" => "linux-ppc", -+ "powerpc64-foxkit-linux-musl" => "linux-ppc64", -+ "x86_64-foxkit-linux-musl" => "linux-x86_64", - _ => panic!("don't know how to configure OpenSSL for {}", target), - }; - configure.arg(os); -@@ -666,7 +672,7 @@ impl Step for Openssl { - configure.arg("-fomit-frame-pointer"); - } - // OpenSSL ships incompatible ELFv1 ABI assembly code -- if target == "powerpc64-unknown-linux-musl" { -+ if target == "powerpc64-unknown-linux-musl" || target == "powerpc64-foxkit-linux-musl" { - configure.arg("no-asm"); - } - if target == "sparc64-unknown-netbsd" { --- -2.18.0 - diff --git a/user/rust/0025-Move-debugger-scripts-to-usr-share-rust.patch b/user/rust/0027-Move-debugger-scripts-to-usr-share-rust.patch index f1b163f2d..81c649eaf 100644 --- a/user/rust/0025-Move-debugger-scripts-to-usr-share-rust.patch +++ b/user/rust/0027-Move-debugger-scripts-to-usr-share-rust.patch @@ -1,7 +1,7 @@ -From e2660b4762083f14a355d283b6383f7cab0d38fd Mon Sep 17 00:00:00 2001 +From d8c25e109fbf44a3dc18ae0ea8da50cc6ee6b312 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Mon, 17 Sep 2018 02:09:10 +0000 -Subject: [PATCH 25/28] Move debugger scripts to /usr/share/rust +Subject: [PATCH 27/29] Move debugger scripts to /usr/share/rust --- src/bootstrap/dist.rs | 2 +- diff --git a/user/rust/0026-Add-foxkit-target-specs.patch b/user/rust/0028-Add-foxkit-target-specs.patch index 883748a0e..46a255a3c 100644 --- a/user/rust/0026-Add-foxkit-target-specs.patch +++ b/user/rust/0028-Add-foxkit-target-specs.patch @@ -1,9 +1,10 @@ -From 84f391140786018536c2eecd925c72814e5df38f Mon Sep 17 00:00:00 2001 +From a6da366371be1d8a1c55de52d9a53f93b9951cd0 Mon Sep 17 00:00:00 2001 From: Samuel Holland <samuel@sholland.org> Date: Mon, 17 Sep 2018 02:29:06 +0000 -Subject: [PATCH 26/28] Add foxkit target specs +Subject: [PATCH 28/29] Add foxkit target specs --- + src/bootstrap/native.rs | 10 +++++++-- .../spec/aarch64_foxkit_linux_musl.rs | 21 +++++++++++++++++++ .../spec/armv7_foxkit_linux_musleabihf.rs | 21 +++++++++++++++++++ .../spec/i586_foxkit_linux_musl.rs | 21 +++++++++++++++++++ @@ -11,7 +12,7 @@ Subject: [PATCH 26/28] Add foxkit target specs .../spec/powerpc64_foxkit_linux_musl.rs | 21 +++++++++++++++++++ .../spec/powerpc_foxkit_linux_musl.rs | 21 +++++++++++++++++++ .../spec/x86_64_foxkit_linux_musl.rs | 21 +++++++++++++++++++ - 7 files changed, 133 insertions(+) + 8 files changed, 141 insertions(+), 2 deletions(-) create mode 100644 src/librustc_target/spec/aarch64_foxkit_linux_musl.rs create mode 100644 src/librustc_target/spec/armv7_foxkit_linux_musleabihf.rs create mode 100644 src/librustc_target/spec/i586_foxkit_linux_musl.rs @@ -19,6 +20,41 @@ Subject: [PATCH 26/28] Add foxkit target specs create mode 100644 src/librustc_target/spec/powerpc_foxkit_linux_musl.rs create mode 100644 src/librustc_target/spec/x86_64_foxkit_linux_musl.rs +diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs +index 186ef75189..9122eeb785 100644 +--- a/src/bootstrap/native.rs ++++ b/src/bootstrap/native.rs +@@ -652,6 +652,12 @@ impl Step for Openssl { + "x86_64-unknown-linux-gnux32" => "linux-x32", + "x86_64-unknown-linux-musl" => "linux-x86_64", + "x86_64-unknown-netbsd" => "BSD-x86_64", ++ "aarch64-foxkit-linux-musl" => "linux-aarch64", ++ "armv7-foxkit-linux-musleabihf" => "linux-armv4", ++ "i586-foxkit-linux-musl" => "linux-elf", ++ "powerpc-foxkit-linux-musl" => "linux-ppc", ++ "powerpc64-foxkit-linux-musl" => "linux-ppc64", ++ "x86_64-foxkit-linux-musl" => "linux-x86_64", + _ => panic!("don't know how to configure OpenSSL for {}", target), + }; + configure.arg(os); +@@ -666,7 +672,7 @@ impl Step for Openssl { + configure.arg("-fomit-frame-pointer"); + } + // OpenSSL ships incompatible ELFv1 ABI assembly code +- if target == "powerpc64-unknown-linux-musl" { ++ if target == "powerpc64-unknown-linux-musl" || target == "powerpc64-foxkit-linux-musl" { + configure.arg("no-asm"); + } + if target == "sparc64-unknown-netbsd" { +@@ -681,7 +687,7 @@ impl Step for Openssl { + // Make PIE binaries + // Non-PIE linker support was removed in Lollipop + // https://source.android.com/security/enhancements/enhancements50 +- if target == "i686-linux-android" { ++ if target == "i686-linux-android" || target == "i586-foxkit-linux-musl" { + configure.arg("no-asm"); + } + configure.current_dir(&obj); diff --git a/src/librustc_target/spec/aarch64_foxkit_linux_musl.rs b/src/librustc_target/spec/aarch64_foxkit_linux_musl.rs new file mode 100644 index 0000000000..18ad2c2f31 diff --git a/user/rust/0029-Work-around-libbacktrace-built-with-fstack-protector.patch b/user/rust/0029-Work-around-libbacktrace-built-with-fstack-protector.patch new file mode 100644 index 000000000..29a31508d --- /dev/null +++ b/user/rust/0029-Work-around-libbacktrace-built-with-fstack-protector.patch @@ -0,0 +1,47 @@ +From 22bb29c2b807180ed0522d9c930e14c327582571 Mon Sep 17 00:00:00 2001 +From: Samuel Holland <samuel@sholland.org> +Date: Sat, 6 Oct 2018 04:17:14 +0000 +Subject: [PATCH 29/29] Work around libbacktrace built with -fstack-protector + +On 32-bit x86 and ppc, gcc generates calls to __stack_chk_fail_local, +which must be a hidden function in every DSO. gcc provides the +implementation in libssp_nonshared. libbacktrace is built in hosted +mode, where Adelie's compiler enables -fstack-protector by default. +However, rustc passes -nodefaultlibs, inhibiting gcc from linking +libssp_nonshared. +--- + src/libpanic_unwind/Cargo.toml | 1 + + src/libpanic_unwind/build.rs | 10 ++++++++++ + 2 files changed, 11 insertions(+) + create mode 100644 src/libpanic_unwind/build.rs + +diff --git a/src/libpanic_unwind/Cargo.toml b/src/libpanic_unwind/Cargo.toml +index 74aaa4d5ae..c1b66aeefe 100644 +--- a/src/libpanic_unwind/Cargo.toml ++++ b/src/libpanic_unwind/Cargo.toml +@@ -1,5 +1,6 @@ + [package] + authors = ["The Rust Project Developers"] ++build = "build.rs" + name = "panic_unwind" + version = "0.0.0" + +diff --git a/src/libpanic_unwind/build.rs b/src/libpanic_unwind/build.rs +new file mode 100644 +index 0000000000..0d9a14b64c +--- /dev/null ++++ b/src/libpanic_unwind/build.rs +@@ -0,0 +1,10 @@ ++use std::env; ++ ++fn main() { ++ let target = env::var("TARGET").unwrap(); ++ match target.as_ref() { ++ "i586-foxkit-linux-musl" => println!("cargo:rustc-link-lib=ssp_nonshared"), ++ "powerpc-foxkit-linux-musl" => println!("cargo:rustc-link-lib=ssp_nonshared"), ++ _ => {}, ++ }; ++} +-- +2.18.0 + diff --git a/user/rust/0031-liblibc-0163a7ce20b5.patch b/user/rust/0031-liblibc-0163a7ce20b5.patch new file mode 100644 index 000000000..6c2268a53 --- /dev/null +++ b/user/rust/0031-liblibc-0163a7ce20b5.patch @@ -0,0 +1,1343 @@ +From 0163a7ce20b5f4c8d8f725811e48e1f268b0253e Mon Sep 17 00:00:00 2001 +From: Marek Benc <dusxmt@gmx.com> +Date: Thu, 5 Jul 2018 15:51:38 +0200 +Subject: [PATCH] Add linux musl powerpc (32-bit) support + +--- + src/unix/notbsd/linux/musl/b32/arm.rs | 85 +++ + src/unix/notbsd/linux/musl/b32/mips.rs | 85 +++ + src/unix/notbsd/linux/musl/b32/mod.rs | 88 +-- + src/unix/notbsd/linux/musl/b32/powerpc.rs | 866 ++++++++++++++++++++++ + src/unix/notbsd/linux/musl/b32/x86.rs | 85 +++ + src/unix/notbsd/linux/musl/mod.rs | 3 +- + 6 files changed, 1127 insertions(+), 85 deletions(-) + create mode 100644 src/unix/notbsd/linux/musl/b32/powerpc.rs + +diff --git a/src/liblibc/src/unix/notbsd/linux/musl/b32/arm.rs b/src/liblibc/src/unix/notbsd/linux/musl/b32/arm.rs +index 22bf16c1fda..20fa33a3f77 100644 +--- a/src/liblibc/src/unix/notbsd/linux/musl/b32/arm.rs ++++ b/src/liblibc/src/unix/notbsd/linux/musl/b32/arm.rs +@@ -52,6 +52,18 @@ s! { + pub ss_size: ::size_t + } + ++ pub struct ipc_perm { ++ pub __ipc_perm_key: ::key_t, ++ pub uid: ::uid_t, ++ pub gid: ::gid_t, ++ pub cuid: ::uid_t, ++ pub cgid: ::gid_t, ++ pub mode: ::mode_t, ++ pub __seq: ::c_int, ++ __unused1: ::c_long, ++ __unused2: ::c_long ++ } ++ + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, +@@ -151,6 +163,9 @@ s! { + } + } + ++pub const SIGSTKSZ: ::size_t = 8192; ++pub const MINSIGSTKSZ: ::size_t = 2048; ++ + pub const O_DIRECT: ::c_int = 0x10000; + pub const O_DIRECTORY: ::c_int = 0x4000; + pub const O_NOFOLLOW: ::c_int = 0x8000; +@@ -165,6 +180,76 @@ pub const RLIMIT_NOFILE: ::c_int = 7; + pub const RLIMIT_AS: ::c_int = 9; + pub const RLIMIT_NPROC: ::c_int = 6; + pub const RLIMIT_MEMLOCK: ::c_int = 8; ++pub const RLIMIT_NLIMITS: ::c_int = 16; ++ ++pub const MCL_CURRENT: ::c_int = 0x0001; ++pub const MCL_FUTURE: ::c_int = 0x0002; ++pub const CBAUD: ::tcflag_t = 0o0010017; ++pub const TAB1: ::c_int = 0x00000800; ++pub const TAB2: ::c_int = 0x00001000; ++pub const TAB3: ::c_int = 0x00001800; ++pub const CR1: ::c_int = 0x00000200; ++pub const CR2: ::c_int = 0x00000400; ++pub const CR3: ::c_int = 0x00000600; ++pub const FF1: ::c_int = 0x00008000; ++pub const BS1: ::c_int = 0x00002000; ++pub const VT1: ::c_int = 0x00004000; ++pub const VWERASE: usize = 14; ++pub const VREPRINT: usize = 12; ++pub const VSUSP: usize = 10; ++pub const VSTART: usize = 8; ++pub const VSTOP: usize = 9; ++pub const VDISCARD: usize = 13; ++pub const VTIME: usize = 5; ++pub const IXON: ::tcflag_t = 0x00000400; ++pub const IXOFF: ::tcflag_t = 0x00001000; ++pub const ONLCR: ::tcflag_t = 0x4; ++pub const CSIZE: ::tcflag_t = 0x00000030; ++pub const CS6: ::tcflag_t = 0x00000010; ++pub const CS7: ::tcflag_t = 0x00000020; ++pub const CS8: ::tcflag_t = 0x00000030; ++pub const CSTOPB: ::tcflag_t = 0x00000040; ++pub const CREAD: ::tcflag_t = 0x00000080; ++pub const PARENB: ::tcflag_t = 0x00000100; ++pub const PARODD: ::tcflag_t = 0x00000200; ++pub const HUPCL: ::tcflag_t = 0x00000400; ++pub const CLOCAL: ::tcflag_t = 0x00000800; ++pub const ECHOKE: ::tcflag_t = 0x00000800; ++pub const ECHOE: ::tcflag_t = 0x00000010; ++pub const ECHOK: ::tcflag_t = 0x00000020; ++pub const ECHONL: ::tcflag_t = 0x00000040; ++pub const ECHOPRT: ::tcflag_t = 0x00000400; ++pub const ECHOCTL: ::tcflag_t = 0x00000200; ++pub const ISIG: ::tcflag_t = 0x00000001; ++pub const ICANON: ::tcflag_t = 0x00000002; ++pub const PENDIN: ::tcflag_t = 0x00004000; ++pub const NOFLSH: ::tcflag_t = 0x00000080; ++pub const CIBAUD: ::tcflag_t = 0o02003600000; ++pub const CBAUDEX: ::tcflag_t = 0o010000; ++pub const VSWTC: usize = 7; ++pub const OLCUC: ::tcflag_t = 0o000002; ++pub const NLDLY: ::tcflag_t = 0o000400; ++pub const CRDLY: ::tcflag_t = 0o003000; ++pub const TABDLY: ::tcflag_t = 0o014000; ++pub const BSDLY: ::tcflag_t = 0o020000; ++pub const FFDLY: ::tcflag_t = 0o100000; ++pub const VTDLY: ::tcflag_t = 0o040000; ++pub const XTABS: ::tcflag_t = 0o014000; ++pub const B57600: ::speed_t = 0o010001; ++pub const B115200: ::speed_t = 0o010002; ++pub const B230400: ::speed_t = 0o010003; ++pub const B460800: ::speed_t = 0o010004; ++pub const B500000: ::speed_t = 0o010005; ++pub const B576000: ::speed_t = 0o010006; ++pub const B921600: ::speed_t = 0o010007; ++pub const B1000000: ::speed_t = 0o010010; ++pub const B1152000: ::speed_t = 0o010011; ++pub const B1500000: ::speed_t = 0o010012; ++pub const B2000000: ::speed_t = 0o010013; ++pub const B2500000: ::speed_t = 0o010014; ++pub const B3000000: ::speed_t = 0o010015; ++pub const B3500000: ::speed_t = 0o010016; ++pub const B4000000: ::speed_t = 0o010017; + + pub const O_APPEND: ::c_int = 1024; + pub const O_CREAT: ::c_int = 64; +diff --git a/src/liblibc/src/unix/notbsd/linux/musl/b32/mips.rs b/src/liblibc/src/unix/notbsd/linux/musl/b32/mips.rs +index 89231a0c751..bfde73c563d 100644 +--- a/src/liblibc/src/unix/notbsd/linux/musl/b32/mips.rs ++++ b/src/liblibc/src/unix/notbsd/linux/musl/b32/mips.rs +@@ -54,6 +54,18 @@ s! { + pub ss_flags: ::c_int, + } + ++ pub struct ipc_perm { ++ pub __ipc_perm_key: ::key_t, ++ pub uid: ::uid_t, ++ pub gid: ::gid_t, ++ pub cuid: ::uid_t, ++ pub cgid: ::gid_t, ++ pub mode: ::mode_t, ++ pub __seq: ::c_int, ++ __unused1: ::c_long, ++ __unused2: ::c_long ++ } ++ + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, +@@ -162,6 +174,9 @@ s! { + } + } + ++pub const SIGSTKSZ: ::size_t = 8192; ++pub const MINSIGSTKSZ: ::size_t = 2048; ++ + pub const O_DIRECT: ::c_int = 0o100000; + pub const O_DIRECTORY: ::c_int = 0o200000; + pub const O_NOFOLLOW: ::c_int = 0o400000; +@@ -176,6 +191,76 @@ pub const RLIMIT_NOFILE: ::c_int = 5; + pub const RLIMIT_AS: ::c_int = 6; + pub const RLIMIT_NPROC: ::c_int = 8; + pub const RLIMIT_MEMLOCK: ::c_int = 9; ++pub const RLIMIT_NLIMITS: ::c_int = 16; ++ ++pub const MCL_CURRENT: ::c_int = 0x0001; ++pub const MCL_FUTURE: ::c_int = 0x0002; ++pub const CBAUD: ::tcflag_t = 0o0010017; ++pub const TAB1: ::c_int = 0x00000800; ++pub const TAB2: ::c_int = 0x00001000; ++pub const TAB3: ::c_int = 0x00001800; ++pub const CR1: ::c_int = 0x00000200; ++pub const CR2: ::c_int = 0x00000400; ++pub const CR3: ::c_int = 0x00000600; ++pub const FF1: ::c_int = 0x00008000; ++pub const BS1: ::c_int = 0x00002000; ++pub const VT1: ::c_int = 0x00004000; ++pub const VWERASE: usize = 14; ++pub const VREPRINT: usize = 12; ++pub const VSUSP: usize = 10; ++pub const VSTART: usize = 8; ++pub const VSTOP: usize = 9; ++pub const VDISCARD: usize = 13; ++pub const VTIME: usize = 5; ++pub const IXON: ::tcflag_t = 0x00000400; ++pub const IXOFF: ::tcflag_t = 0x00001000; ++pub const ONLCR: ::tcflag_t = 0x4; ++pub const CSIZE: ::tcflag_t = 0x00000030; ++pub const CS6: ::tcflag_t = 0x00000010; ++pub const CS7: ::tcflag_t = 0x00000020; ++pub const CS8: ::tcflag_t = 0x00000030; ++pub const CSTOPB: ::tcflag_t = 0x00000040; ++pub const CREAD: ::tcflag_t = 0x00000080; ++pub const PARENB: ::tcflag_t = 0x00000100; ++pub const PARODD: ::tcflag_t = 0x00000200; ++pub const HUPCL: ::tcflag_t = 0x00000400; ++pub const CLOCAL: ::tcflag_t = 0x00000800; ++pub const ECHOKE: ::tcflag_t = 0x00000800; ++pub const ECHOE: ::tcflag_t = 0x00000010; ++pub const ECHOK: ::tcflag_t = 0x00000020; ++pub const ECHONL: ::tcflag_t = 0x00000040; ++pub const ECHOPRT: ::tcflag_t = 0x00000400; ++pub const ECHOCTL: ::tcflag_t = 0x00000200; ++pub const ISIG: ::tcflag_t = 0x00000001; ++pub const ICANON: ::tcflag_t = 0x00000002; ++pub const PENDIN: ::tcflag_t = 0x00004000; ++pub const NOFLSH: ::tcflag_t = 0x00000080; ++pub const CIBAUD: ::tcflag_t = 0o02003600000; ++pub const CBAUDEX: ::tcflag_t = 0o010000; ++pub const VSWTC: usize = 7; ++pub const OLCUC: ::tcflag_t = 0o000002; ++pub const NLDLY: ::tcflag_t = 0o000400; ++pub const CRDLY: ::tcflag_t = 0o003000; ++pub const TABDLY: ::tcflag_t = 0o014000; ++pub const BSDLY: ::tcflag_t = 0o020000; ++pub const FFDLY: ::tcflag_t = 0o100000; ++pub const VTDLY: ::tcflag_t = 0o040000; ++pub const XTABS: ::tcflag_t = 0o014000; ++pub const B57600: ::speed_t = 0o010001; ++pub const B115200: ::speed_t = 0o010002; ++pub const B230400: ::speed_t = 0o010003; ++pub const B460800: ::speed_t = 0o010004; ++pub const B500000: ::speed_t = 0o010005; ++pub const B576000: ::speed_t = 0o010006; ++pub const B921600: ::speed_t = 0o010007; ++pub const B1000000: ::speed_t = 0o010010; ++pub const B1152000: ::speed_t = 0o010011; ++pub const B1500000: ::speed_t = 0o010012; ++pub const B2000000: ::speed_t = 0o010013; ++pub const B2500000: ::speed_t = 0o010014; ++pub const B3000000: ::speed_t = 0o010015; ++pub const B3500000: ::speed_t = 0o010016; ++pub const B4000000: ::speed_t = 0o010017; + + pub const O_APPEND: ::c_int = 0o010; + pub const O_CREAT: ::c_int = 0o400; +diff --git a/src/liblibc/src/unix/notbsd/linux/musl/b32/mod.rs b/src/liblibc/src/unix/notbsd/linux/musl/b32/mod.rs +index b4a0f761636..4128a8e4da6 100644 +--- a/src/liblibc/src/unix/notbsd/linux/musl/b32/mod.rs ++++ b/src/liblibc/src/unix/notbsd/linux/musl/b32/mod.rs +@@ -32,96 +32,13 @@ s! { + pub struct sem_t { + __val: [::c_int; 4], + } +- +- pub struct ipc_perm { +- pub __ipc_perm_key: ::key_t, +- pub uid: ::uid_t, +- pub gid: ::gid_t, +- pub cuid: ::uid_t, +- pub cgid: ::gid_t, +- pub mode: ::mode_t, +- pub __seq: ::c_int, +- __unused1: ::c_long, +- __unused2: ::c_long +- } + } + +-pub const SIGSTKSZ: ::size_t = 8192; +-pub const MINSIGSTKSZ: ::size_t = 2048; +- + pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; + pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; + +-pub const RLIMIT_NLIMITS: ::c_int = 16; + pub const TIOCINQ: ::c_int = ::FIONREAD; +-pub const MCL_CURRENT: ::c_int = 0x0001; +-pub const MCL_FUTURE: ::c_int = 0x0002; +-pub const CBAUD: ::tcflag_t = 0o0010017; +-pub const TAB1: ::c_int = 0x00000800; +-pub const TAB2: ::c_int = 0x00001000; +-pub const TAB3: ::c_int = 0x00001800; +-pub const CR1: ::c_int = 0x00000200; +-pub const CR2: ::c_int = 0x00000400; +-pub const CR3: ::c_int = 0x00000600; +-pub const FF1: ::c_int = 0x00008000; +-pub const BS1: ::c_int = 0x00002000; +-pub const VT1: ::c_int = 0x00004000; +-pub const VWERASE: usize = 14; +-pub const VREPRINT: usize = 12; +-pub const VSUSP: usize = 10; +-pub const VSTART: usize = 8; +-pub const VSTOP: usize = 9; +-pub const VDISCARD: usize = 13; +-pub const VTIME: usize = 5; +-pub const IXON: ::tcflag_t = 0x00000400; +-pub const IXOFF: ::tcflag_t = 0x00001000; +-pub const ONLCR: ::tcflag_t = 0x4; +-pub const CSIZE: ::tcflag_t = 0x00000030; +-pub const CS6: ::tcflag_t = 0x00000010; +-pub const CS7: ::tcflag_t = 0x00000020; +-pub const CS8: ::tcflag_t = 0x00000030; +-pub const CSTOPB: ::tcflag_t = 0x00000040; +-pub const CREAD: ::tcflag_t = 0x00000080; +-pub const PARENB: ::tcflag_t = 0x00000100; +-pub const PARODD: ::tcflag_t = 0x00000200; +-pub const HUPCL: ::tcflag_t = 0x00000400; +-pub const CLOCAL: ::tcflag_t = 0x00000800; +-pub const ECHOKE: ::tcflag_t = 0x00000800; +-pub const ECHOE: ::tcflag_t = 0x00000010; +-pub const ECHOK: ::tcflag_t = 0x00000020; +-pub const ECHONL: ::tcflag_t = 0x00000040; +-pub const ECHOPRT: ::tcflag_t = 0x00000400; +-pub const ECHOCTL: ::tcflag_t = 0x00000200; +-pub const ISIG: ::tcflag_t = 0x00000001; +-pub const ICANON: ::tcflag_t = 0x00000002; +-pub const PENDIN: ::tcflag_t = 0x00004000; +-pub const NOFLSH: ::tcflag_t = 0x00000080; +-pub const CIBAUD: ::tcflag_t = 0o02003600000; +-pub const CBAUDEX: ::tcflag_t = 0o010000; +-pub const VSWTC: usize = 7; +-pub const OLCUC: ::tcflag_t = 0o000002; +-pub const NLDLY: ::tcflag_t = 0o000400; +-pub const CRDLY: ::tcflag_t = 0o003000; +-pub const TABDLY: ::tcflag_t = 0o014000; +-pub const BSDLY: ::tcflag_t = 0o020000; +-pub const FFDLY: ::tcflag_t = 0o100000; +-pub const VTDLY: ::tcflag_t = 0o040000; +-pub const XTABS: ::tcflag_t = 0o014000; +-pub const B57600: ::speed_t = 0o010001; +-pub const B115200: ::speed_t = 0o010002; +-pub const B230400: ::speed_t = 0o010003; +-pub const B460800: ::speed_t = 0o010004; +-pub const B500000: ::speed_t = 0o010005; +-pub const B576000: ::speed_t = 0o010006; +-pub const B921600: ::speed_t = 0o010007; +-pub const B1000000: ::speed_t = 0o010010; +-pub const B1152000: ::speed_t = 0o010011; +-pub const B1500000: ::speed_t = 0o010012; +-pub const B2000000: ::speed_t = 0o010013; +-pub const B2500000: ::speed_t = 0o010014; +-pub const B3000000: ::speed_t = 0o010015; +-pub const B3500000: ::speed_t = 0o010016; +-pub const B4000000: ::speed_t = 0o010017; ++ + extern { + pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; + } +@@ -136,6 +53,9 @@ cfg_if! { + } else if #[cfg(any(target_arch = "arm"))] { + mod arm; + pub use self::arm::*; ++ } else if #[cfg(any(target_arch = "powerpc"))] { ++ mod powerpc; ++ pub use self::powerpc::*; + } else { + // Unknown target_arch + } +diff --git a/src/liblibc/src/unix/notbsd/linux/musl/b32/powerpc.rs b/src/liblibc/src/unix/notbsd/linux/musl/b32/powerpc.rs +new file mode 100644 +index 00000000000..50b6b57ef11 +--- /dev/null ++++ b/src/liblibc/src/unix/notbsd/linux/musl/b32/powerpc.rs +@@ -0,0 +1,866 @@ ++pub type c_char = u8; ++pub type wchar_t = i32; ++ ++s! { ++ pub struct stat { ++ pub st_dev: ::dev_t, ++ pub st_ino: ::ino_t, ++ pub st_mode: ::mode_t, ++ pub st_nlink: ::nlink_t, ++ pub st_uid: ::uid_t, ++ pub st_gid: ::gid_t, ++ pub st_rdev: ::dev_t, ++ __st_rdev_padding: ::c_short, ++ pub st_size: ::off_t, ++ pub st_blksize: ::blksize_t, ++ pub st_blocks: ::blkcnt_t, ++ pub st_atime: ::time_t, ++ pub st_atime_nsec: ::c_long, ++ pub st_mtime: ::time_t, ++ pub st_mtime_nsec: ::c_long, ++ pub st_ctime: ::time_t, ++ pub st_ctime_nsec: ::c_long, ++ __unused: [::c_long; 2], ++ } ++ ++ pub struct stat64 { ++ pub st_dev: ::dev_t, ++ pub st_ino: ::ino_t, ++ pub st_mode: ::mode_t, ++ pub st_nlink: ::nlink_t, ++ pub st_uid: ::uid_t, ++ pub st_gid: ::gid_t, ++ pub st_rdev: ::dev_t, ++ __st_rdev_padding: ::c_short, ++ pub st_size: ::off_t, ++ pub st_blksize: ::blksize_t, ++ pub st_blocks: ::blkcnt_t, ++ pub st_atime: ::time_t, ++ pub st_atime_nsec: ::c_long, ++ pub st_mtime: ::time_t, ++ pub st_mtime_nsec: ::c_long, ++ pub st_ctime: ::time_t, ++ pub st_ctime_nsec: ::c_long, ++ __unused: [::c_long; 2], ++ } ++ ++ pub struct stack_t { ++ pub ss_sp: *mut ::c_void, ++ pub ss_flags: ::c_int, ++ pub ss_size: ::size_t ++ } ++ ++ pub struct ipc_perm { ++ pub __ipc_perm_key: ::key_t, ++ pub uid: ::uid_t, ++ pub gid: ::gid_t, ++ pub cuid: ::uid_t, ++ pub cgid: ::gid_t, ++ pub mode: ::mode_t, ++ pub __seq: ::c_int, ++ __pad1: ::c_int, ++ __pad2: ::c_longlong, ++ __pad3: ::c_longlong ++ } ++ ++ pub struct shmid_ds { ++ pub shm_perm: ::ipc_perm, ++ __unused1: ::c_int, ++ pub shm_atime: ::time_t, ++ __unused2: ::c_int, ++ pub shm_dtime: ::time_t, ++ __unused3: ::c_int, ++ pub shm_ctime: ::time_t, ++ __unused4: ::c_int, ++ pub shm_segsz: ::size_t, ++ pub shm_cpid: ::pid_t, ++ pub shm_lpid: ::pid_t, ++ pub shm_nattch: ::c_ulong, ++ __pad1: ::c_ulong, ++ __pad2: ::c_ulong, ++ } ++ ++ pub struct msqid_ds { ++ pub msg_perm: ::ipc_perm, ++ __unused1: ::c_int, ++ pub msg_stime: ::time_t, ++ __unused2: ::c_int, ++ pub msg_rtime: ::time_t, ++ __unused3: ::c_int, ++ pub msg_ctime: ::time_t, ++ __msg_cbytes: ::c_ulong, ++ pub msg_qnum: ::msgqnum_t, ++ pub msg_qbytes: ::msglen_t, ++ pub msg_lspid: ::pid_t, ++ pub msg_lrpid: ::pid_t, ++ __pad1: ::c_ulong, ++ __pad2: ::c_ulong, ++ } ++ ++ pub struct statfs { ++ pub f_type: ::c_ulong, ++ pub f_bsize: ::c_ulong, ++ pub f_blocks: ::fsblkcnt_t, ++ pub f_bfree: ::fsblkcnt_t, ++ pub f_bavail: ::fsblkcnt_t, ++ pub f_files: ::fsfilcnt_t, ++ pub f_ffree: ::fsfilcnt_t, ++ pub f_fsid: ::fsid_t, ++ pub f_namelen: ::c_ulong, ++ pub f_frsize: ::c_ulong, ++ pub f_flags: ::c_ulong, ++ pub f_spare: [::c_ulong; 4], ++ } ++ ++ pub struct siginfo_t { ++ pub si_signo: ::c_int, ++ pub si_errno: ::c_int, ++ pub si_code: ::c_int, ++ pub _pad: [::c_int; 29], ++ _align: [usize; 0], ++ } ++ ++ pub struct statfs64 { ++ pub f_type: ::c_ulong, ++ pub f_bsize: ::c_ulong, ++ pub f_blocks: ::fsblkcnt_t, ++ pub f_bfree: ::fsblkcnt_t, ++ pub f_bavail: ::fsblkcnt_t, ++ pub f_files: ::fsfilcnt_t, ++ pub f_ffree: ::fsfilcnt_t, ++ pub f_fsid: ::fsid_t, ++ pub f_namelen: ::c_ulong, ++ pub f_frsize: ::c_ulong, ++ pub f_flags: ::c_ulong, ++ pub f_spare: [::c_ulong; 4], ++ } ++ ++ pub struct statvfs64 { ++ pub f_bsize: ::c_ulong, ++ pub f_frsize: ::c_ulong, ++ pub f_blocks: u64, ++ pub f_bfree: u64, ++ pub f_bavail: u64, ++ pub f_files: u64, ++ pub f_ffree: u64, ++ pub f_favail: u64, ++ #[cfg(target_endian = "little")] ++ pub f_fsid: ::c_ulong, ++ __f_unused: ::c_int, ++ #[cfg(target_endian = "big")] ++ pub f_fsid: ::c_ulong, ++ pub f_flag: ::c_ulong, ++ pub f_namemax: ::c_ulong, ++ __f_spare: [::c_int; 6], ++ } ++ ++ pub struct termios2 { ++ pub c_iflag: ::tcflag_t, ++ pub c_oflag: ::tcflag_t, ++ pub c_cflag: ::tcflag_t, ++ pub c_lflag: ::tcflag_t, ++ pub c_cc: [::cc_t; 19], ++ pub c_line: ::cc_t, ++ pub c_ispeed: ::speed_t, ++ pub c_ospeed: ::speed_t, ++ } ++} ++ ++pub const SIGSTKSZ: ::size_t = 10240; ++pub const MINSIGSTKSZ: ::size_t = 4096; ++ ++pub const O_DIRECT: ::c_int = 0x20000; ++pub const O_DIRECTORY: ::c_int = 0x4000; ++pub const O_NOFOLLOW: ::c_int = 0x8000; ++pub const O_ASYNC: ::c_int = 0x2000; ++pub const O_LARGEFILE: ::c_int = 0x10000; ++ ++pub const FIOCLEX: ::c_int = 0x20006601; ++pub const FIONBIO: ::c_int = 0x8004667E; ++ ++pub const RLIMIT_RSS: ::c_int = 5; ++pub const RLIMIT_NOFILE: ::c_int = 7; ++pub const RLIMIT_AS: ::c_int = 9; ++pub const RLIMIT_NPROC: ::c_int = 6; ++pub const RLIMIT_MEMLOCK: ::c_int = 8; ++pub const RLIMIT_NLIMITS: ::c_int = 15; ++ ++pub const MCL_CURRENT: ::c_int = 0x2000; ++pub const MCL_FUTURE: ::c_int = 0x4000; ++pub const CBAUD: ::tcflag_t = 0o0000377; ++pub const TAB1: ::c_int = 0x00000400; ++pub const TAB2: ::c_int = 0x00000800; ++pub const TAB3: ::c_int = 0x00000C00; ++pub const CR1: ::c_int = 0x00001000; ++pub const CR2: ::c_int = 0x00002000; ++pub const CR3: ::c_int = 0x00003000; ++pub const FF1: ::c_int = 0x00004000; ++pub const BS1: ::c_int = 0x00008000; ++pub const VT1: ::c_int = 0x00010000; ++pub const VWERASE: usize = 10; ++pub const VREPRINT: usize = 11; ++pub const VSUSP: usize = 12; ++pub const VSTART: usize = 13; ++pub const VSTOP: usize = 14; ++pub const VDISCARD: usize = 16; ++pub const VTIME: usize = 7; ++pub const IXON: ::tcflag_t = 0x00000200; ++pub const IXOFF: ::tcflag_t = 0x00000400; ++pub const ONLCR: ::tcflag_t = 0x00000002; ++pub const CSIZE: ::tcflag_t = 0x00000300; ++pub const CS6: ::tcflag_t = 0x00000100; ++pub const CS7: ::tcflag_t = 0x00000200; ++pub const CS8: ::tcflag_t = 0x00000300; ++pub const CSTOPB: ::tcflag_t = 0x00000400; ++pub const CREAD: ::tcflag_t = 0x00000800; ++pub const PARENB: ::tcflag_t = 0x00001000; ++pub const PARODD: ::tcflag_t = 0x00002000; ++pub const HUPCL: ::tcflag_t = 0x00004000; ++pub const CLOCAL: ::tcflag_t = 0x00008000; ++pub const ECHOKE: ::tcflag_t = 0x00000001; ++pub const ECHOE: ::tcflag_t = 0x00000002; ++pub const ECHOK: ::tcflag_t = 0x00000004; ++pub const ECHONL: ::tcflag_t = 0x00000010; ++pub const ECHOPRT: ::tcflag_t = 0x00000020; ++pub const ECHOCTL: ::tcflag_t = 0x00000040; ++pub const ISIG: ::tcflag_t = 0x00000080; ++pub const ICANON: ::tcflag_t = 0x00000100; ++pub const PENDIN: ::tcflag_t = 0x20000000; ++pub const NOFLSH: ::tcflag_t = 0x80000000; ++pub const CIBAUD: ::tcflag_t = 0o00077600000; ++pub const CBAUDEX: ::tcflag_t = 0o000020; ++pub const VSWTC: usize = 9; ++pub const OLCUC: ::tcflag_t = 0o000004; ++pub const NLDLY: ::tcflag_t = 0o001400; ++pub const CRDLY: ::tcflag_t = 0o030000; ++pub const TABDLY: ::tcflag_t = 0o006000; ++pub const BSDLY: ::tcflag_t = 0o100000; ++pub const FFDLY: ::tcflag_t = 0o040000; ++pub const VTDLY: ::tcflag_t = 0o200000; ++pub const XTABS: ::tcflag_t = 0o006000; ++pub const B57600: ::speed_t = 0o000020; ++pub const B115200: ::speed_t = 0o000021; ++pub const B230400: ::speed_t = 0o000022; ++pub const B460800: ::speed_t = 0o000023; ++pub const B500000: ::speed_t = 0o000024; ++pub const B576000: ::speed_t = 0o000025; ++pub const B921600: ::speed_t = 0o000026; ++pub const B1000000: ::speed_t = 0o000027; ++pub const B1152000: ::speed_t = 0o000030; ++pub const B1500000: ::speed_t = 0o000031; ++pub const B2000000: ::speed_t = 0o000032; ++pub const B2500000: ::speed_t = 0o000033; ++pub const B3000000: ::speed_t = 0o000034; ++pub const B3500000: ::speed_t = 0o000035; ++pub const B4000000: ::speed_t = 0o000036; ++ ++pub const O_APPEND: ::c_int = 1024; ++pub const O_CREAT: ::c_int = 64; ++pub const O_EXCL: ::c_int = 128; ++pub const O_NOCTTY: ::c_int = 256; ++pub const O_NONBLOCK: ::c_int = 2048; ++pub const O_SYNC: ::c_int = 1052672; ++pub const O_RSYNC: ::c_int = 1052672; ++pub const O_DSYNC: ::c_int = 4096; ++ ++pub const SOCK_NONBLOCK: ::c_int = 2048; ++ ++pub const MAP_ANON: ::c_int = 0x0020; ++pub const MAP_GROWSDOWN: ::c_int = 0x0100; ++pub const MAP_DENYWRITE: ::c_int = 0x0800; ++pub const MAP_EXECUTABLE: ::c_int = 0x01000; ++pub const MAP_LOCKED: ::c_int = 0x00080; ++pub const MAP_NORESERVE: ::c_int = 0x00040; ++pub const MAP_POPULATE: ::c_int = 0x08000; ++pub const MAP_NONBLOCK: ::c_int = 0x010000; ++pub const MAP_STACK: ::c_int = 0x020000; ++ ++pub const SOCK_STREAM: ::c_int = 1; ++pub const SOCK_DGRAM: ::c_int = 2; ++pub const SOCK_SEQPACKET: ::c_int = 5; ++ ++pub const SOL_SOCKET: ::c_int = 1; ++ ++pub const EDEADLK: ::c_int = 35; ++pub const ENAMETOOLONG: ::c_int = 36; ++pub const ENOLCK: ::c_int = 37; ++pub const ENOSYS: ::c_int = 38; ++pub const ENOTEMPTY: ::c_int = 39; ++pub const ELOOP: ::c_int = 40; ++pub const ENOMSG: ::c_int = 42; ++pub const EIDRM: ::c_int = 43; ++pub const ECHRNG: ::c_int = 44; ++pub const EL2NSYNC: ::c_int = 45; ++pub const EL3HLT: ::c_int = 46; ++pub const EL3RST: ::c_int = 47; ++pub const ELNRNG: ::c_int = 48; ++pub const EUNATCH: ::c_int = 49; ++pub const ENOCSI: ::c_int = 50; ++pub const EL2HLT: ::c_int = 51; ++pub const EBADE: ::c_int = 52; ++pub const EBADR: ::c_int = 53; ++pub const EXFULL: ::c_int = 54; ++pub const ENOANO: ::c_int = 55; ++pub const EBADRQC: ::c_int = 56; ++pub const EBADSLT: ::c_int = 57; ++pub const EDEADLOCK: ::c_int = 58; ++pub const EMULTIHOP: ::c_int = 72; ++pub const EBADMSG: ::c_int = 74; ++pub const EOVERFLOW: ::c_int = 75; ++pub const ENOTUNIQ: ::c_int = 76; ++pub const EBADFD: ::c_int = 77; ++pub const EREMCHG: ::c_int = 78; ++pub const ELIBACC: ::c_int = 79; ++pub const ELIBBAD: ::c_int = 80; ++pub const ELIBSCN: ::c_int = 81; ++pub const ELIBMAX: ::c_int = 82; ++pub const ELIBEXEC: ::c_int = 83; ++pub const EILSEQ: ::c_int = 84; ++pub const ERESTART: ::c_int = 85; ++pub const ESTRPIPE: ::c_int = 86; ++pub const EUSERS: ::c_int = 87; ++pub const ENOTSOCK: ::c_int = 88; ++pub const EDESTADDRREQ: ::c_int = 89; ++pub const EMSGSIZE: ::c_int = 90; ++pub const EPROTOTYPE: ::c_int = 91; ++pub const ENOPROTOOPT: ::c_int = 92; ++pub const EPROTONOSUPPORT: ::c_int = 93; ++pub const ESOCKTNOSUPPORT: ::c_int = 94; ++pub const EOPNOTSUPP: ::c_int = 95; ++pub const ENOTSUP: ::c_int = EOPNOTSUPP; ++pub const EPFNOSUPPORT: ::c_int = 96; ++pub const EAFNOSUPPORT: ::c_int = 97; ++pub const EADDRINUSE: ::c_int = 98; ++pub const EADDRNOTAVAIL: ::c_int = 99; ++pub const ENETDOWN: ::c_int = 100; ++pub const ENETUNREACH: ::c_int = 101; ++pub const ENETRESET: ::c_int = 102; ++pub const ECONNABORTED: ::c_int = 103; ++pub const ECONNRESET: ::c_int = 104; ++pub const ENOBUFS: ::c_int = 105; ++pub const EISCONN: ::c_int = 106; ++pub const ENOTCONN: ::c_int = 107; ++pub const ESHUTDOWN: ::c_int = 108; ++pub const ETOOMANYREFS: ::c_int = 109; ++pub const ETIMEDOUT: ::c_int = 110; ++pub const ECONNREFUSED: ::c_int = 111; ++pub const EHOSTDOWN: ::c_int = 112; ++pub const EHOSTUNREACH: ::c_int = 113; ++pub const EALREADY: ::c_int = 114; ++pub const EINPROGRESS: ::c_int = 115; ++pub const ESTALE: ::c_int = 116; ++pub const EUCLEAN: ::c_int = 117; ++pub const ENOTNAM: ::c_int = 118; ++pub const ENAVAIL: ::c_int = 119; ++pub const EISNAM: ::c_int = 120; ++pub const EREMOTEIO: ::c_int = 121; ++pub const EDQUOT: ::c_int = 122; ++pub const ENOMEDIUM: ::c_int = 123; ++pub const EMEDIUMTYPE: ::c_int = 124; ++pub const ECANCELED: ::c_int = 125; ++pub const ENOKEY: ::c_int = 126; ++pub const EKEYEXPIRED: ::c_int = 127; ++pub const EKEYREVOKED: ::c_int = 128; ++pub const EKEYREJECTED: ::c_int = 129; ++pub const EOWNERDEAD: ::c_int = 130; ++pub const ENOTRECOVERABLE: ::c_int = 131; ++pub const ERFKILL: ::c_int = 132; ++pub const EHWPOISON: ::c_int = 133; ++ ++pub const SO_REUSEADDR: ::c_int = 2; ++pub const SO_TYPE: ::c_int = 3; ++pub const SO_ERROR: ::c_int = 4; ++pub const SO_DONTROUTE: ::c_int = 5; ++pub const SO_BROADCAST: ::c_int = 6; ++pub const SO_SNDBUF: ::c_int = 7; ++pub const SO_RCVBUF: ::c_int = 8; ++pub const SO_KEEPALIVE: ::c_int = 9; ++pub const SO_OOBINLINE: ::c_int = 10; ++pub const SO_NO_CHECK: ::c_int = 11; ++pub const SO_PRIORITY: ::c_int = 12; ++pub const SO_LINGER: ::c_int = 13; ++pub const SO_BSDCOMPAT: ::c_int = 14; ++pub const SO_REUSEPORT: ::c_int = 15; ++pub const SO_RCVLOWAT: ::c_int = 16; ++pub const SO_SNDLOWAT: ::c_int = 17; ++pub const SO_RCVTIMEO: ::c_int = 18; ++pub const SO_SNDTIMEO: ::c_int = 19; ++pub const SO_PASSCRED: ::c_int = 20; ++pub const SO_PEERCRED: ::c_int = 21; ++pub const SO_ACCEPTCONN: ::c_int = 30; ++pub const SO_SNDBUFFORCE: ::c_int = 32; ++pub const SO_RCVBUFFORCE: ::c_int = 33; ++pub const SO_PROTOCOL: ::c_int = 38; ++pub const SO_DOMAIN: ::c_int = 39; ++ ++pub const SA_ONSTACK: ::c_int = 0x08000000; ++pub const SA_SIGINFO: ::c_int = 0x00000004; ++pub const SA_NOCLDWAIT: ::c_int = 0x00000002; ++ ++pub const SIGCHLD: ::c_int = 17; ++pub const SIGBUS: ::c_int = 7; ++pub const SIGTTIN: ::c_int = 21; ++pub const SIGTTOU: ::c_int = 22; ++pub const SIGXCPU: ::c_int = 24; ++pub const SIGXFSZ: ::c_int = 25; ++pub const SIGVTALRM: ::c_int = 26; ++pub const SIGPROF: ::c_int = 27; ++pub const SIGWINCH: ::c_int = 28; ++pub const SIGUSR1: ::c_int = 10; ++pub const SIGUSR2: ::c_int = 12; ++pub const SIGCONT: ::c_int = 18; ++pub const SIGSTOP: ::c_int = 19; ++pub const SIGTSTP: ::c_int = 20; ++pub const SIGURG: ::c_int = 23; ++pub const SIGIO: ::c_int = 29; ++pub const SIGSYS: ::c_int = 31; ++pub const SIGSTKFLT: ::c_int = 16; ++pub const SIGPOLL: ::c_int = 29; ++pub const SIGPWR: ::c_int = 30; ++pub const SIG_SETMASK: ::c_int = 2; ++pub const SIG_BLOCK: ::c_int = 0x000000; ++pub const SIG_UNBLOCK: ::c_int = 0x01; ++ ++pub const EXTPROC: ::tcflag_t = 0x10000000; ++ ++pub const MAP_HUGETLB: ::c_int = 0x040000; ++ ++pub const F_GETLK: ::c_int = 12; ++pub const F_GETOWN: ::c_int = 9; ++pub const F_SETLK: ::c_int = 13; ++pub const F_SETLKW: ::c_int = 14; ++pub const F_SETOWN: ::c_int = 8; ++ ++pub const VEOF: usize = 4; ++pub const VEOL: usize = 6; ++pub const VEOL2: usize = 8; ++pub const VMIN: usize = 5; ++pub const IEXTEN: ::tcflag_t = 0x00000400; ++pub const TOSTOP: ::tcflag_t = 0x00400000; ++pub const FLUSHO: ::tcflag_t = 0x00800000; ++ ++pub const TCGETS: ::c_int = 0x402C7413; ++pub const TCSETS: ::c_int = 0x802C7414; ++pub const TCSETSW: ::c_int = 0x802C7415; ++pub const TCSETSF: ::c_int = 0x802C7416; ++pub const TCGETA: ::c_int = 0x40147417; ++pub const TCSETA: ::c_int = 0x80147418; ++pub const TCSETAW: ::c_int = 0x80147419; ++pub const TCSETAF: ::c_int = 0x8014741C; ++pub const TCSBRK: ::c_int = 0x2000741D; ++pub const TCXONC: ::c_int = 0x2000741E; ++pub const TCFLSH: ::c_int = 0x2000741F; ++pub const TIOCGSOFTCAR: ::c_int = 0x5419; ++pub const TIOCSSOFTCAR: ::c_int = 0x541A; ++pub const TIOCLINUX: ::c_int = 0x541C; ++pub const TIOCGSERIAL: ::c_int = 0x541E; ++pub const TIOCEXCL: ::c_int = 0x540C; ++pub const TIOCNXCL: ::c_int = 0x540D; ++pub const TIOCSCTTY: ::c_int = 0x540E; ++pub const TIOCGPGRP: ::c_int = 0x40047477; ++pub const TIOCSPGRP: ::c_int = 0x80047476; ++pub const TIOCOUTQ: ::c_int = 0x40047473; ++pub const TIOCSTI: ::c_int = 0x5412; ++pub const TIOCGWINSZ: ::c_int = 0x40087468; ++pub const TIOCSWINSZ: ::c_int = 0x80087467; ++pub const TIOCMGET: ::c_int = 0x5415; ++pub const TIOCMBIS: ::c_int = 0x5416; ++pub const TIOCMBIC: ::c_int = 0x5417; ++pub const TIOCMSET: ::c_int = 0x5418; ++pub const FIONREAD: ::c_int = 0x4004667F; ++pub const TIOCCONS: ::c_int = 0x541D; ++ ++pub const POLLWRNORM: ::c_short = 0x100; ++pub const POLLWRBAND: ::c_short = 0x200; ++ ++pub const TIOCM_LE: ::c_int = 0x001; ++pub const TIOCM_DTR: ::c_int = 0x002; ++pub const TIOCM_RTS: ::c_int = 0x004; ++pub const TIOCM_ST: ::c_int = 0x008; ++pub const TIOCM_SR: ::c_int = 0x010; ++pub const TIOCM_CTS: ::c_int = 0x020; ++pub const TIOCM_CAR: ::c_int = 0x040; ++pub const TIOCM_RNG: ::c_int = 0x080; ++pub const TIOCM_DSR: ::c_int = 0x100; ++pub const TIOCM_CD: ::c_int = TIOCM_CAR; ++pub const TIOCM_RI: ::c_int = TIOCM_RNG; ++ ++// Syscall table ++pub const SYS_restart_syscall: ::c_long = 0; ++pub const SYS_exit: ::c_long = 1; ++pub const SYS_fork: ::c_long = 2; ++pub const SYS_read: ::c_long = 3; ++pub const SYS_write: ::c_long = 4; ++pub const SYS_open: ::c_long = 5; ++pub const SYS_close: ::c_long = 6; ++pub const SYS_waitpid: ::c_long = 7; ++pub const SYS_creat: ::c_long = 8; ++pub const SYS_link: ::c_long = 9; ++pub const SYS_unlink: ::c_long = 10; ++pub const SYS_execve: ::c_long = 11; ++pub const SYS_chdir: ::c_long = 12; ++pub const SYS_time: ::c_long = 13; ++pub const SYS_mknod: ::c_long = 14; ++pub const SYS_chmod: ::c_long = 15; ++pub const SYS_lchown: ::c_long = 16; ++pub const SYS_break: ::c_long = 17; ++pub const SYS_oldstat: ::c_long = 18; ++pub const SYS_lseek: ::c_long = 19; ++pub const SYS_getpid: ::c_long = 20; ++pub const SYS_mount: ::c_long = 21; ++pub const SYS_umount: ::c_long = 22; ++pub const SYS_setuid: ::c_long = 23; ++pub const SYS_getuid: ::c_long = 24; ++pub const SYS_stime: ::c_long = 25; ++pub const SYS_ptrace: ::c_long = 26; ++pub const SYS_alarm: ::c_long = 27; ++pub const SYS_oldfstat: ::c_long = 28; ++pub const SYS_pause: ::c_long = 29; ++pub const SYS_utime: ::c_long = 30; ++pub const SYS_stty: ::c_long = 31; ++pub const SYS_gtty: ::c_long = 32; ++pub const SYS_access: ::c_long = 33; ++pub const SYS_nice: ::c_long = 34; ++pub const SYS_ftime: ::c_long = 35; ++pub const SYS_sync: ::c_long = 36; ++pub const SYS_kill: ::c_long = 37; ++pub const SYS_rename: ::c_long = 38; ++pub const SYS_mkdir: ::c_long = 39; ++pub const SYS_rmdir: ::c_long = 40; ++pub const SYS_dup: ::c_long = 41; ++pub const SYS_pipe: ::c_long = 42; ++pub const SYS_times: ::c_long = 43; ++pub const SYS_prof: ::c_long = 44; ++pub const SYS_brk: ::c_long = 45; ++pub const SYS_setgid: ::c_long = 46; ++pub const SYS_getgid: ::c_long = 47; ++pub const SYS_signal: ::c_long = 48; ++pub const SYS_geteuid: ::c_long = 49; ++pub const SYS_getegid: ::c_long = 50; ++pub const SYS_acct: ::c_long = 51; ++pub const SYS_umount2: ::c_long = 52; ++pub const SYS_lock: ::c_long = 53; ++pub const SYS_ioctl: ::c_long = 54; ++pub const SYS_fcntl: ::c_long = 55; ++pub const SYS_mpx: ::c_long = 56; ++pub const SYS_setpgid: ::c_long = 57; ++pub const SYS_ulimit: ::c_long = 58; ++pub const SYS_oldolduname: ::c_long = 59; ++pub const SYS_umask: ::c_long = 60; ++pub const SYS_chroot: ::c_long = 61; ++pub const SYS_ustat: ::c_long = 62; ++pub const SYS_dup2: ::c_long = 63; ++pub const SYS_getppid: ::c_long = 64; ++pub const SYS_getpgrp: ::c_long = 65; ++pub const SYS_setsid: ::c_long = 66; ++pub const SYS_sigaction: ::c_long = 67; ++pub const SYS_sgetmask: ::c_long = 68; ++pub const SYS_ssetmask: ::c_long = 69; ++pub const SYS_setreuid: ::c_long = 70; ++pub const SYS_setregid: ::c_long = 71; ++pub const SYS_sigsuspend: ::c_long = 72; ++pub const SYS_sigpending: ::c_long = 73; ++pub const SYS_sethostname: ::c_long = 74; ++pub const SYS_setrlimit: ::c_long = 75; ++pub const SYS_getrlimit: ::c_long = 76; ++pub const SYS_getrusage: ::c_long = 77; ++pub const SYS_gettimeofday: ::c_long = 78; ++pub const SYS_settimeofday: ::c_long = 79; ++pub const SYS_getgroups: ::c_long = 80; ++pub const SYS_setgroups: ::c_long = 81; ++pub const SYS_select: ::c_long = 82; ++pub const SYS_symlink: ::c_long = 83; ++pub const SYS_oldlstat: ::c_long = 84; ++pub const SYS_readlink: ::c_long = 85; ++pub const SYS_uselib: ::c_long = 86; ++pub const SYS_swapon: ::c_long = 87; ++pub const SYS_reboot: ::c_long = 88; ++pub const SYS_readdir: ::c_long = 89; ++pub const SYS_mmap: ::c_long = 90; ++pub const SYS_munmap: ::c_long = 91; ++pub const SYS_truncate: ::c_long = 92; ++pub const SYS_ftruncate: ::c_long = 93; ++pub const SYS_fchmod: ::c_long = 94; ++pub const SYS_fchown: ::c_long = 95; ++pub const SYS_getpriority: ::c_long = 96; ++pub const SYS_setpriority: ::c_long = 97; ++pub const SYS_profil: ::c_long = 98; ++pub const SYS_statfs: ::c_long = 99; ++pub const SYS_fstatfs: ::c_long = 100; ++pub const SYS_ioperm: ::c_long = 101; ++pub const SYS_socketcall: ::c_long = 102; ++pub const SYS_syslog: ::c_long = 103; ++pub const SYS_setitimer: ::c_long = 104; ++pub const SYS_getitimer: ::c_long = 105; ++pub const SYS_stat: ::c_long = 106; ++pub const SYS_lstat: ::c_long = 107; ++pub const SYS_fstat: ::c_long = 108; ++pub const SYS_olduname: ::c_long = 109; ++pub const SYS_iopl: ::c_long = 110; ++pub const SYS_vhangup: ::c_long = 111; ++pub const SYS_idle: ::c_long = 112; ++pub const SYS_vm86: ::c_long = 113; ++pub const SYS_wait4: ::c_long = 114; ++pub const SYS_swapoff: ::c_long = 115; ++pub const SYS_sysinfo: ::c_long = 116; ++pub const SYS_ipc: ::c_long = 117; ++pub const SYS_fsync: ::c_long = 118; ++pub const SYS_sigreturn: ::c_long = 119; ++pub const SYS_clone: ::c_long = 120; ++pub const SYS_setdomainname: ::c_long = 121; ++pub const SYS_uname: ::c_long = 122; ++pub const SYS_modify_ldt: ::c_long = 123; ++pub const SYS_adjtimex: ::c_long = 124; ++pub const SYS_mprotect: ::c_long = 125; ++pub const SYS_sigprocmask: ::c_long = 126; ++pub const SYS_create_module: ::c_long = 127; ++pub const SYS_init_module: ::c_long = 128; ++pub const SYS_delete_module: ::c_long = 129; ++pub const SYS_get_kernel_syms: ::c_long = 130; ++pub const SYS_quotactl: ::c_long = 131; ++pub const SYS_getpgid: ::c_long = 132; ++pub const SYS_fchdir: ::c_long = 133; ++pub const SYS_bdflush: ::c_long = 134; ++pub const SYS_sysfs: ::c_long = 135; ++pub const SYS_personality: ::c_long = 136; ++pub const SYS_afs_syscall: ::c_long = 137; ++pub const SYS_setfsuid: ::c_long = 138; ++pub const SYS_setfsgid: ::c_long = 139; ++pub const SYS__llseek: ::c_long = 140; ++pub const SYS_getdents: ::c_long = 141; ++pub const SYS__newselect: ::c_long = 142; ++pub const SYS_flock: ::c_long = 143; ++pub const SYS_msync: ::c_long = 144; ++pub const SYS_readv: ::c_long = 145; ++pub const SYS_writev: ::c_long = 146; ++pub const SYS_getsid: ::c_long = 147; ++pub const SYS_fdatasync: ::c_long = 148; ++pub const SYS__sysctl: ::c_long = 149; ++pub const SYS_mlock: ::c_long = 150; ++pub const SYS_munlock: ::c_long = 151; ++pub const SYS_mlockall: ::c_long = 152; ++pub const SYS_munlockall: ::c_long = 153; ++pub const SYS_sched_setparam: ::c_long = 154; ++pub const SYS_sched_getparam: ::c_long = 155; ++pub const SYS_sched_setscheduler: ::c_long = 156; ++pub const SYS_sched_getscheduler: ::c_long = 157; ++pub const SYS_sched_yield: ::c_long = 158; ++pub const SYS_sched_get_priority_max: ::c_long = 159; ++pub const SYS_sched_get_priority_min: ::c_long = 160; ++pub const SYS_sched_rr_get_interval: ::c_long = 161; ++pub const SYS_nanosleep: ::c_long = 162; ++pub const SYS_mremap: ::c_long = 163; ++pub const SYS_setresuid: ::c_long = 164; ++pub const SYS_getresuid: ::c_long = 165; ++pub const SYS_query_module: ::c_long = 166; ++pub const SYS_poll: ::c_long = 167; ++pub const SYS_nfsservctl: ::c_long = 168; ++pub const SYS_setresgid: ::c_long = 169; ++pub const SYS_getresgid: ::c_long = 170; ++pub const SYS_prctl: ::c_long = 171; ++pub const SYS_rt_sigreturn: ::c_long = 172; ++pub const SYS_rt_sigaction: ::c_long = 173; ++pub const SYS_rt_sigprocmask: ::c_long = 174; ++pub const SYS_rt_sigpending: ::c_long = 175; ++pub const SYS_rt_sigtimedwait: ::c_long = 176; ++pub const SYS_rt_sigqueueinfo: ::c_long = 177; ++pub const SYS_rt_sigsuspend: ::c_long = 178; ++pub const SYS_pread64: ::c_long = 179; ++pub const SYS_pwrite64: ::c_long = 180; ++pub const SYS_chown: ::c_long = 181; ++pub const SYS_getcwd: ::c_long = 182; ++pub const SYS_capget: ::c_long = 183; ++pub const SYS_capset: ::c_long = 184; ++pub const SYS_sigaltstack: ::c_long = 185; ++pub const SYS_sendfile: ::c_long = 186; ++pub const SYS_getpmsg: ::c_long = 187; ++pub const SYS_putpmsg: ::c_long = 188; ++pub const SYS_vfork: ::c_long = 189; ++pub const SYS_ugetrlimit: ::c_long = 190; ++pub const SYS_readahead: ::c_long = 191; ++pub const SYS_mmap2: ::c_long = 192; ++pub const SYS_truncate64: ::c_long = 193; ++pub const SYS_ftruncate64: ::c_long = 194; ++pub const SYS_stat64: ::c_long = 195; ++pub const SYS_lstat64: ::c_long = 196; ++pub const SYS_fstat64: ::c_long = 197; ++pub const SYS_pciconfig_read: ::c_long = 198; ++pub const SYS_pciconfig_write: ::c_long = 199; ++pub const SYS_pciconfig_iobase: ::c_long = 200; ++pub const SYS_multiplexer: ::c_long = 201; ++pub const SYS_getdents64: ::c_long = 202; ++pub const SYS_pivot_root: ::c_long = 203; ++pub const SYS_fcntl64: ::c_long = 204; ++pub const SYS_madvise: ::c_long = 205; ++pub const SYS_mincore: ::c_long = 206; ++pub const SYS_gettid: ::c_long = 207; ++pub const SYS_tkill: ::c_long = 208; ++pub const SYS_setxattr: ::c_long = 209; ++pub const SYS_lsetxattr: ::c_long = 210; ++pub const SYS_fsetxattr: ::c_long = 211; ++pub const SYS_getxattr: ::c_long = 212; ++pub const SYS_lgetxattr: ::c_long = 213; ++pub const SYS_fgetxattr: ::c_long = 214; ++pub const SYS_listxattr: ::c_long = 215; ++pub const SYS_llistxattr: ::c_long = 216; ++pub const SYS_flistxattr: ::c_long = 217; ++pub const SYS_removexattr: ::c_long = 218; ++pub const SYS_lremovexattr: ::c_long = 219; ++pub const SYS_fremovexattr: ::c_long = 220; ++pub const SYS_futex: ::c_long = 221; ++pub const SYS_sched_setaffinity: ::c_long = 222; ++pub const SYS_sched_getaffinity: ::c_long = 223; ++pub const SYS_tuxcall: ::c_long = 225; ++pub const SYS_sendfile64: ::c_long = 226; ++pub const SYS_io_setup: ::c_long = 227; ++pub const SYS_io_destroy: ::c_long = 228; ++pub const SYS_io_getevents: ::c_long = 229; ++pub const SYS_io_submit: ::c_long = 230; ++pub const SYS_io_cancel: ::c_long = 231; ++pub const SYS_set_tid_address: ::c_long = 232; ++pub const SYS_fadvise64: ::c_long = 233; ++pub const SYS_exit_group: ::c_long = 234; ++pub const SYS_lookup_dcookie: ::c_long = 235; ++pub const SYS_epoll_create: ::c_long = 236; ++pub const SYS_epoll_ctl: ::c_long = 237; ++pub const SYS_epoll_wait: ::c_long = 238; ++pub const SYS_remap_file_pages: ::c_long = 239; ++pub const SYS_timer_create: ::c_long = 240; ++pub const SYS_timer_settime: ::c_long = 241; ++pub const SYS_timer_gettime: ::c_long = 242; ++pub const SYS_timer_getoverrun: ::c_long = 243; ++pub const SYS_timer_delete: ::c_long = 244; ++pub const SYS_clock_settime: ::c_long = 245; ++pub const SYS_clock_gettime: ::c_long = 246; ++pub const SYS_clock_getres: ::c_long = 247; ++pub const SYS_clock_nanosleep: ::c_long = 248; ++pub const SYS_swapcontext: ::c_long = 249; ++pub const SYS_tgkill: ::c_long = 250; ++pub const SYS_utimes: ::c_long = 251; ++pub const SYS_statfs64: ::c_long = 252; ++pub const SYS_fstatfs64: ::c_long = 253; ++pub const SYS_fadvise64_64: ::c_long = 254; ++pub const SYS_rtas: ::c_long = 255; ++pub const SYS_sys_debug_setcontext: ::c_long = 256; ++pub const SYS_migrate_pages: ::c_long = 258; ++pub const SYS_mbind: ::c_long = 259; ++pub const SYS_get_mempolicy: ::c_long = 260; ++pub const SYS_set_mempolicy: ::c_long = 261; ++pub const SYS_mq_open: ::c_long = 262; ++pub const SYS_mq_unlink: ::c_long = 263; ++pub const SYS_mq_timedsend: ::c_long = 264; ++pub const SYS_mq_timedreceive: ::c_long = 265; ++pub const SYS_mq_notify: ::c_long = 266; ++pub const SYS_mq_getsetattr: ::c_long = 267; ++pub const SYS_kexec_load: ::c_long = 268; ++pub const SYS_add_key: ::c_long = 269; ++pub const SYS_request_key: ::c_long = 270; ++pub const SYS_keyctl: ::c_long = 271; ++pub const SYS_waitid: ::c_long = 272; ++pub const SYS_ioprio_set: ::c_long = 273; ++pub const SYS_ioprio_get: ::c_long = 274; ++pub const SYS_inotify_init: ::c_long = 275; ++pub const SYS_inotify_add_watch: ::c_long = 276; ++pub const SYS_inotify_rm_watch: ::c_long = 277; ++pub const SYS_spu_run: ::c_long = 278; ++pub const SYS_spu_create: ::c_long = 279; ++pub const SYS_pselect6: ::c_long = 280; ++pub const SYS_ppoll: ::c_long = 281; ++pub const SYS_unshare: ::c_long = 282; ++pub const SYS_splice: ::c_long = 283; ++pub const SYS_tee: ::c_long = 284; ++pub const SYS_vmsplice: ::c_long = 285; ++pub const SYS_openat: ::c_long = 286; ++pub const SYS_mkdirat: ::c_long = 287; ++pub const SYS_mknodat: ::c_long = 288; ++pub const SYS_fchownat: ::c_long = 289; ++pub const SYS_futimesat: ::c_long = 290; ++pub const SYS_fstatat64: ::c_long = 291; ++pub const SYS_unlinkat: ::c_long = 292; ++pub const SYS_renameat: ::c_long = 293; ++pub const SYS_linkat: ::c_long = 294; ++pub const SYS_symlinkat: ::c_long = 295; ++pub const SYS_readlinkat: ::c_long = 296; ++pub const SYS_fchmodat: ::c_long = 297; ++pub const SYS_faccessat: ::c_long = 298; ++pub const SYS_get_robust_list: ::c_long = 299; ++pub const SYS_set_robust_list: ::c_long = 300; ++pub const SYS_move_pages: ::c_long = 301; ++pub const SYS_getcpu: ::c_long = 302; ++pub const SYS_epoll_pwait: ::c_long = 303; ++pub const SYS_utimensat: ::c_long = 304; ++pub const SYS_signalfd: ::c_long = 305; ++pub const SYS_timerfd_create: ::c_long = 306; ++pub const SYS_eventfd: ::c_long = 307; ++pub const SYS_sync_file_range2: ::c_long = 308; ++pub const SYS_fallocate: ::c_long = 309; ++pub const SYS_subpage_prot: ::c_long = 310; ++pub const SYS_timerfd_settime: ::c_long = 311; ++pub const SYS_timerfd_gettime: ::c_long = 312; ++pub const SYS_signalfd4: ::c_long = 313; ++pub const SYS_eventfd2: ::c_long = 314; ++pub const SYS_epoll_create1: ::c_long = 315; ++pub const SYS_dup3: ::c_long = 316; ++pub const SYS_pipe2: ::c_long = 317; ++pub const SYS_inotify_init1: ::c_long = 318; ++pub const SYS_perf_event_open: ::c_long = 319; ++pub const SYS_preadv: ::c_long = 320; ++pub const SYS_pwritev: ::c_long = 321; ++pub const SYS_rt_tgsigqueueinfo: ::c_long = 322; ++pub const SYS_fanotify_init: ::c_long = 323; ++pub const SYS_fanotify_mark: ::c_long = 324; ++pub const SYS_prlimit64: ::c_long = 325; ++pub const SYS_socket: ::c_long = 326; ++pub const SYS_bind: ::c_long = 327; ++pub const SYS_connect: ::c_long = 328; ++pub const SYS_listen: ::c_long = 329; ++pub const SYS_accept: ::c_long = 330; ++pub const SYS_getsockname: ::c_long = 331; ++pub const SYS_getpeername: ::c_long = 332; ++pub const SYS_socketpair: ::c_long = 333; ++pub const SYS_send: ::c_long = 334; ++pub const SYS_sendto: ::c_long = 335; ++pub const SYS_recv: ::c_long = 336; ++pub const SYS_recvfrom: ::c_long = 337; ++pub const SYS_shutdown: ::c_long = 338; ++pub const SYS_setsockopt: ::c_long = 339; ++pub const SYS_getsockopt: ::c_long = 340; ++pub const SYS_sendmsg: ::c_long = 341; ++pub const SYS_recvmsg: ::c_long = 342; ++pub const SYS_recvmmsg: ::c_long = 343; ++pub const SYS_accept4: ::c_long = 344; ++pub const SYS_name_to_handle_at: ::c_long = 345; ++pub const SYS_open_by_handle_at: ::c_long = 346; ++pub const SYS_clock_adjtime: ::c_long = 347; ++pub const SYS_syncfs: ::c_long = 348; ++pub const SYS_sendmmsg: ::c_long = 349; ++pub const SYS_setns: ::c_long = 350; ++pub const SYS_process_vm_readv: ::c_long = 351; ++pub const SYS_process_vm_writev: ::c_long = 352; ++pub const SYS_finit_module: ::c_long = 353; ++pub const SYS_kcmp: ::c_long = 354; ++pub const SYS_sched_setattr: ::c_long = 355; ++pub const SYS_sched_getattr: ::c_long = 356; ++pub const SYS_renameat2: ::c_long = 357; ++pub const SYS_seccomp: ::c_long = 358; ++pub const SYS_getrandom: ::c_long = 359; ++pub const SYS_memfd_create: ::c_long = 360; ++pub const SYS_bpf: ::c_long = 361; ++pub const SYS_execveat: ::c_long = 362; ++pub const SYS_switch_endian: ::c_long = 363; ++pub const SYS_userfaultfd: ::c_long = 364; ++pub const SYS_membarrier: ::c_long = 365; ++pub const SYS_mlock2: ::c_long = 378; ++pub const SYS_copy_file_range: ::c_long = 379; ++pub const SYS_preadv2: ::c_long = 380; ++pub const SYS_pwritev2: ::c_long = 381; ++pub const SYS_kexec_file_load: ::c_long = 382; ++pub const SYS_statx: ::c_long = 383; ++pub const SYS_pkey_alloc: ::c_long = 384; ++pub const SYS_pkey_free: ::c_long = 385; ++pub const SYS_pkey_mprotect: ::c_long = 386; ++ ++#[doc(hidden)] ++pub const AF_MAX: ::c_int = 43; ++#[doc(hidden)] ++pub const PF_MAX: ::c_int = AF_MAX; +diff --git a/src/liblibc/src/unix/notbsd/linux/musl/b32/x86.rs b/src/liblibc/src/unix/notbsd/linux/musl/b32/x86.rs +index fa570248c72..9f704c7fac9 100644 +--- a/src/liblibc/src/unix/notbsd/linux/musl/b32/x86.rs ++++ b/src/liblibc/src/unix/notbsd/linux/musl/b32/x86.rs +@@ -52,6 +52,18 @@ s! { + pub ss_size: ::size_t + } + ++ pub struct ipc_perm { ++ pub __ipc_perm_key: ::key_t, ++ pub uid: ::uid_t, ++ pub gid: ::gid_t, ++ pub cuid: ::uid_t, ++ pub cgid: ::gid_t, ++ pub mode: ::mode_t, ++ pub __seq: ::c_int, ++ __unused1: ::c_long, ++ __unused2: ::c_long ++ } ++ + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, +@@ -164,6 +176,9 @@ s! { + } + } + ++pub const SIGSTKSZ: ::size_t = 8192; ++pub const MINSIGSTKSZ: ::size_t = 2048; ++ + pub const O_DIRECT: ::c_int = 0x4000; + pub const O_DIRECTORY: ::c_int = 0x10000; + pub const O_NOFOLLOW: ::c_int = 0x20000; +@@ -178,6 +193,76 @@ pub const RLIMIT_NOFILE: ::c_int = 7; + pub const RLIMIT_AS: ::c_int = 9; + pub const RLIMIT_NPROC: ::c_int = 6; + pub const RLIMIT_MEMLOCK: ::c_int = 8; ++pub const RLIMIT_NLIMITS: ::c_int = 16; ++ ++pub const MCL_CURRENT: ::c_int = 0x0001; ++pub const MCL_FUTURE: ::c_int = 0x0002; ++pub const CBAUD: ::tcflag_t = 0o0010017; ++pub const TAB1: ::c_int = 0x00000800; ++pub const TAB2: ::c_int = 0x00001000; ++pub const TAB3: ::c_int = 0x00001800; ++pub const CR1: ::c_int = 0x00000200; ++pub const CR2: ::c_int = 0x00000400; ++pub const CR3: ::c_int = 0x00000600; ++pub const FF1: ::c_int = 0x00008000; ++pub const BS1: ::c_int = 0x00002000; ++pub const VT1: ::c_int = 0x00004000; ++pub const VWERASE: usize = 14; ++pub const VREPRINT: usize = 12; ++pub const VSUSP: usize = 10; ++pub const VSTART: usize = 8; ++pub const VSTOP: usize = 9; ++pub const VDISCARD: usize = 13; ++pub const VTIME: usize = 5; ++pub const IXON: ::tcflag_t = 0x00000400; ++pub const IXOFF: ::tcflag_t = 0x00001000; ++pub const ONLCR: ::tcflag_t = 0x4; ++pub const CSIZE: ::tcflag_t = 0x00000030; ++pub const CS6: ::tcflag_t = 0x00000010; ++pub const CS7: ::tcflag_t = 0x00000020; ++pub const CS8: ::tcflag_t = 0x00000030; ++pub const CSTOPB: ::tcflag_t = 0x00000040; ++pub const CREAD: ::tcflag_t = 0x00000080; ++pub const PARENB: ::tcflag_t = 0x00000100; ++pub const PARODD: ::tcflag_t = 0x00000200; ++pub const HUPCL: ::tcflag_t = 0x00000400; ++pub const CLOCAL: ::tcflag_t = 0x00000800; ++pub const ECHOKE: ::tcflag_t = 0x00000800; ++pub const ECHOE: ::tcflag_t = 0x00000010; ++pub const ECHOK: ::tcflag_t = 0x00000020; ++pub const ECHONL: ::tcflag_t = 0x00000040; ++pub const ECHOPRT: ::tcflag_t = 0x00000400; ++pub const ECHOCTL: ::tcflag_t = 0x00000200; ++pub const ISIG: ::tcflag_t = 0x00000001; ++pub const ICANON: ::tcflag_t = 0x00000002; ++pub const PENDIN: ::tcflag_t = 0x00004000; ++pub const NOFLSH: ::tcflag_t = 0x00000080; ++pub const CIBAUD: ::tcflag_t = 0o02003600000; ++pub const CBAUDEX: ::tcflag_t = 0o010000; ++pub const VSWTC: usize = 7; ++pub const OLCUC: ::tcflag_t = 0o000002; ++pub const NLDLY: ::tcflag_t = 0o000400; ++pub const CRDLY: ::tcflag_t = 0o003000; ++pub const TABDLY: ::tcflag_t = 0o014000; ++pub const BSDLY: ::tcflag_t = 0o020000; ++pub const FFDLY: ::tcflag_t = 0o100000; ++pub const VTDLY: ::tcflag_t = 0o040000; ++pub const XTABS: ::tcflag_t = 0o014000; ++pub const B57600: ::speed_t = 0o010001; ++pub const B115200: ::speed_t = 0o010002; ++pub const B230400: ::speed_t = 0o010003; ++pub const B460800: ::speed_t = 0o010004; ++pub const B500000: ::speed_t = 0o010005; ++pub const B576000: ::speed_t = 0o010006; ++pub const B921600: ::speed_t = 0o010007; ++pub const B1000000: ::speed_t = 0o010010; ++pub const B1152000: ::speed_t = 0o010011; ++pub const B1500000: ::speed_t = 0o010012; ++pub const B2000000: ::speed_t = 0o010013; ++pub const B2500000: ::speed_t = 0o010014; ++pub const B3000000: ::speed_t = 0o010015; ++pub const B3500000: ::speed_t = 0o010016; ++pub const B4000000: ::speed_t = 0o010017; + + pub const O_APPEND: ::c_int = 1024; + pub const O_CREAT: ::c_int = 64; +diff --git a/src/liblibc/src/unix/notbsd/linux/musl/mod.rs b/src/liblibc/src/unix/notbsd/linux/musl/mod.rs +index 0d92a4b9d14..10d61ebebef 100644 +--- a/src/liblibc/src/unix/notbsd/linux/musl/mod.rs ++++ b/src/liblibc/src/unix/notbsd/linux/musl/mod.rs +@@ -260,7 +260,8 @@ cfg_if! { + pub use self::b64::*; + } else if #[cfg(any(target_arch = "x86", + target_arch = "mips", +- target_arch = "arm"))] { ++ target_arch = "arm", ++ target_arch = "powerpc"))] { + mod b32; + pub use self::b32::*; + } else { } diff --git a/user/rust/0031-liblibc-dcff154781e4.patch b/user/rust/0032-libc-dcff154781e4.patch index 6840e203f..6840e203f 100644 --- a/user/rust/0031-liblibc-dcff154781e4.patch +++ b/user/rust/0032-libc-dcff154781e4.patch diff --git a/user/rust/0032-liblibc-90c01fa6b0f4.patch b/user/rust/0033-libc-90c01fa6b0f4.patch index 5e73c780e..5e73c780e 100644 --- a/user/rust/0032-liblibc-90c01fa6b0f4.patch +++ b/user/rust/0033-libc-90c01fa6b0f4.patch diff --git a/user/rust/0034-libc-0163a7ce20b5.patch b/user/rust/0034-libc-0163a7ce20b5.patch new file mode 100644 index 000000000..3a6e6da3b --- /dev/null +++ b/user/rust/0034-libc-0163a7ce20b5.patch @@ -0,0 +1,1343 @@ +From 0163a7ce20b5f4c8d8f725811e48e1f268b0253e Mon Sep 17 00:00:00 2001 +From: Marek Benc <dusxmt@gmx.com> +Date: Thu, 5 Jul 2018 15:51:38 +0200 +Subject: [PATCH] Add linux musl powerpc (32-bit) support + +--- + src/unix/notbsd/linux/musl/b32/arm.rs | 85 +++ + src/unix/notbsd/linux/musl/b32/mips.rs | 85 +++ + src/unix/notbsd/linux/musl/b32/mod.rs | 88 +-- + src/unix/notbsd/linux/musl/b32/powerpc.rs | 866 ++++++++++++++++++++++ + src/unix/notbsd/linux/musl/b32/x86.rs | 85 +++ + src/unix/notbsd/linux/musl/mod.rs | 3 +- + 6 files changed, 1127 insertions(+), 85 deletions(-) + create mode 100644 src/unix/notbsd/linux/musl/b32/powerpc.rs + +diff --git a/src/vendor/libc/src/unix/notbsd/linux/musl/b32/arm.rs b/src/vendor/libc/src/unix/notbsd/linux/musl/b32/arm.rs +index 22bf16c1fda..20fa33a3f77 100644 +--- a/src/vendor/libc/src/unix/notbsd/linux/musl/b32/arm.rs ++++ b/src/vendor/libc/src/unix/notbsd/linux/musl/b32/arm.rs +@@ -52,6 +52,18 @@ s! { + pub ss_size: ::size_t + } + ++ pub struct ipc_perm { ++ pub __ipc_perm_key: ::key_t, ++ pub uid: ::uid_t, ++ pub gid: ::gid_t, ++ pub cuid: ::uid_t, ++ pub cgid: ::gid_t, ++ pub mode: ::mode_t, ++ pub __seq: ::c_int, ++ __unused1: ::c_long, ++ __unused2: ::c_long ++ } ++ + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, +@@ -151,6 +163,9 @@ s! { + } + } + ++pub const SIGSTKSZ: ::size_t = 8192; ++pub const MINSIGSTKSZ: ::size_t = 2048; ++ + pub const O_DIRECT: ::c_int = 0x10000; + pub const O_DIRECTORY: ::c_int = 0x4000; + pub const O_NOFOLLOW: ::c_int = 0x8000; +@@ -165,6 +180,76 @@ pub const RLIMIT_NOFILE: ::c_int = 7; + pub const RLIMIT_AS: ::c_int = 9; + pub const RLIMIT_NPROC: ::c_int = 6; + pub const RLIMIT_MEMLOCK: ::c_int = 8; ++pub const RLIMIT_NLIMITS: ::c_int = 16; ++ ++pub const MCL_CURRENT: ::c_int = 0x0001; ++pub const MCL_FUTURE: ::c_int = 0x0002; ++pub const CBAUD: ::tcflag_t = 0o0010017; ++pub const TAB1: ::c_int = 0x00000800; ++pub const TAB2: ::c_int = 0x00001000; ++pub const TAB3: ::c_int = 0x00001800; ++pub const CR1: ::c_int = 0x00000200; ++pub const CR2: ::c_int = 0x00000400; ++pub const CR3: ::c_int = 0x00000600; ++pub const FF1: ::c_int = 0x00008000; ++pub const BS1: ::c_int = 0x00002000; ++pub const VT1: ::c_int = 0x00004000; ++pub const VWERASE: usize = 14; ++pub const VREPRINT: usize = 12; ++pub const VSUSP: usize = 10; ++pub const VSTART: usize = 8; ++pub const VSTOP: usize = 9; ++pub const VDISCARD: usize = 13; ++pub const VTIME: usize = 5; ++pub const IXON: ::tcflag_t = 0x00000400; ++pub const IXOFF: ::tcflag_t = 0x00001000; ++pub const ONLCR: ::tcflag_t = 0x4; ++pub const CSIZE: ::tcflag_t = 0x00000030; ++pub const CS6: ::tcflag_t = 0x00000010; ++pub const CS7: ::tcflag_t = 0x00000020; ++pub const CS8: ::tcflag_t = 0x00000030; ++pub const CSTOPB: ::tcflag_t = 0x00000040; ++pub const CREAD: ::tcflag_t = 0x00000080; ++pub const PARENB: ::tcflag_t = 0x00000100; ++pub const PARODD: ::tcflag_t = 0x00000200; ++pub const HUPCL: ::tcflag_t = 0x00000400; ++pub const CLOCAL: ::tcflag_t = 0x00000800; ++pub const ECHOKE: ::tcflag_t = 0x00000800; ++pub const ECHOE: ::tcflag_t = 0x00000010; ++pub const ECHOK: ::tcflag_t = 0x00000020; ++pub const ECHONL: ::tcflag_t = 0x00000040; ++pub const ECHOPRT: ::tcflag_t = 0x00000400; ++pub const ECHOCTL: ::tcflag_t = 0x00000200; ++pub const ISIG: ::tcflag_t = 0x00000001; ++pub const ICANON: ::tcflag_t = 0x00000002; ++pub const PENDIN: ::tcflag_t = 0x00004000; ++pub const NOFLSH: ::tcflag_t = 0x00000080; ++pub const CIBAUD: ::tcflag_t = 0o02003600000; ++pub const CBAUDEX: ::tcflag_t = 0o010000; ++pub const VSWTC: usize = 7; ++pub const OLCUC: ::tcflag_t = 0o000002; ++pub const NLDLY: ::tcflag_t = 0o000400; ++pub const CRDLY: ::tcflag_t = 0o003000; ++pub const TABDLY: ::tcflag_t = 0o014000; ++pub const BSDLY: ::tcflag_t = 0o020000; ++pub const FFDLY: ::tcflag_t = 0o100000; ++pub const VTDLY: ::tcflag_t = 0o040000; ++pub const XTABS: ::tcflag_t = 0o014000; ++pub const B57600: ::speed_t = 0o010001; ++pub const B115200: ::speed_t = 0o010002; ++pub const B230400: ::speed_t = 0o010003; ++pub const B460800: ::speed_t = 0o010004; ++pub const B500000: ::speed_t = 0o010005; ++pub const B576000: ::speed_t = 0o010006; ++pub const B921600: ::speed_t = 0o010007; ++pub const B1000000: ::speed_t = 0o010010; ++pub const B1152000: ::speed_t = 0o010011; ++pub const B1500000: ::speed_t = 0o010012; ++pub const B2000000: ::speed_t = 0o010013; ++pub const B2500000: ::speed_t = 0o010014; ++pub const B3000000: ::speed_t = 0o010015; ++pub const B3500000: ::speed_t = 0o010016; ++pub const B4000000: ::speed_t = 0o010017; + + pub const O_APPEND: ::c_int = 1024; + pub const O_CREAT: ::c_int = 64; +diff --git a/src/vendor/libc/src/unix/notbsd/linux/musl/b32/mips.rs b/src/vendor/libc/src/unix/notbsd/linux/musl/b32/mips.rs +index 89231a0c751..bfde73c563d 100644 +--- a/src/vendor/libc/src/unix/notbsd/linux/musl/b32/mips.rs ++++ b/src/vendor/libc/src/unix/notbsd/linux/musl/b32/mips.rs +@@ -54,6 +54,18 @@ s! { + pub ss_flags: ::c_int, + } + ++ pub struct ipc_perm { ++ pub __ipc_perm_key: ::key_t, ++ pub uid: ::uid_t, ++ pub gid: ::gid_t, ++ pub cuid: ::uid_t, ++ pub cgid: ::gid_t, ++ pub mode: ::mode_t, ++ pub __seq: ::c_int, ++ __unused1: ::c_long, ++ __unused2: ::c_long ++ } ++ + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, +@@ -162,6 +174,9 @@ s! { + } + } + ++pub const SIGSTKSZ: ::size_t = 8192; ++pub const MINSIGSTKSZ: ::size_t = 2048; ++ + pub const O_DIRECT: ::c_int = 0o100000; + pub const O_DIRECTORY: ::c_int = 0o200000; + pub const O_NOFOLLOW: ::c_int = 0o400000; +@@ -176,6 +191,76 @@ pub const RLIMIT_NOFILE: ::c_int = 5; + pub const RLIMIT_AS: ::c_int = 6; + pub const RLIMIT_NPROC: ::c_int = 8; + pub const RLIMIT_MEMLOCK: ::c_int = 9; ++pub const RLIMIT_NLIMITS: ::c_int = 16; ++ ++pub const MCL_CURRENT: ::c_int = 0x0001; ++pub const MCL_FUTURE: ::c_int = 0x0002; ++pub const CBAUD: ::tcflag_t = 0o0010017; ++pub const TAB1: ::c_int = 0x00000800; ++pub const TAB2: ::c_int = 0x00001000; ++pub const TAB3: ::c_int = 0x00001800; ++pub const CR1: ::c_int = 0x00000200; ++pub const CR2: ::c_int = 0x00000400; ++pub const CR3: ::c_int = 0x00000600; ++pub const FF1: ::c_int = 0x00008000; ++pub const BS1: ::c_int = 0x00002000; ++pub const VT1: ::c_int = 0x00004000; ++pub const VWERASE: usize = 14; ++pub const VREPRINT: usize = 12; ++pub const VSUSP: usize = 10; ++pub const VSTART: usize = 8; ++pub const VSTOP: usize = 9; ++pub const VDISCARD: usize = 13; ++pub const VTIME: usize = 5; ++pub const IXON: ::tcflag_t = 0x00000400; ++pub const IXOFF: ::tcflag_t = 0x00001000; ++pub const ONLCR: ::tcflag_t = 0x4; ++pub const CSIZE: ::tcflag_t = 0x00000030; ++pub const CS6: ::tcflag_t = 0x00000010; ++pub const CS7: ::tcflag_t = 0x00000020; ++pub const CS8: ::tcflag_t = 0x00000030; ++pub const CSTOPB: ::tcflag_t = 0x00000040; ++pub const CREAD: ::tcflag_t = 0x00000080; ++pub const PARENB: ::tcflag_t = 0x00000100; ++pub const PARODD: ::tcflag_t = 0x00000200; ++pub const HUPCL: ::tcflag_t = 0x00000400; ++pub const CLOCAL: ::tcflag_t = 0x00000800; ++pub const ECHOKE: ::tcflag_t = 0x00000800; ++pub const ECHOE: ::tcflag_t = 0x00000010; ++pub const ECHOK: ::tcflag_t = 0x00000020; ++pub const ECHONL: ::tcflag_t = 0x00000040; ++pub const ECHOPRT: ::tcflag_t = 0x00000400; ++pub const ECHOCTL: ::tcflag_t = 0x00000200; ++pub const ISIG: ::tcflag_t = 0x00000001; ++pub const ICANON: ::tcflag_t = 0x00000002; ++pub const PENDIN: ::tcflag_t = 0x00004000; ++pub const NOFLSH: ::tcflag_t = 0x00000080; ++pub const CIBAUD: ::tcflag_t = 0o02003600000; ++pub const CBAUDEX: ::tcflag_t = 0o010000; ++pub const VSWTC: usize = 7; ++pub const OLCUC: ::tcflag_t = 0o000002; ++pub const NLDLY: ::tcflag_t = 0o000400; ++pub const CRDLY: ::tcflag_t = 0o003000; ++pub const TABDLY: ::tcflag_t = 0o014000; ++pub const BSDLY: ::tcflag_t = 0o020000; ++pub const FFDLY: ::tcflag_t = 0o100000; ++pub const VTDLY: ::tcflag_t = 0o040000; ++pub const XTABS: ::tcflag_t = 0o014000; ++pub const B57600: ::speed_t = 0o010001; ++pub const B115200: ::speed_t = 0o010002; ++pub const B230400: ::speed_t = 0o010003; ++pub const B460800: ::speed_t = 0o010004; ++pub const B500000: ::speed_t = 0o010005; ++pub const B576000: ::speed_t = 0o010006; ++pub const B921600: ::speed_t = 0o010007; ++pub const B1000000: ::speed_t = 0o010010; ++pub const B1152000: ::speed_t = 0o010011; ++pub const B1500000: ::speed_t = 0o010012; ++pub const B2000000: ::speed_t = 0o010013; ++pub const B2500000: ::speed_t = 0o010014; ++pub const B3000000: ::speed_t = 0o010015; ++pub const B3500000: ::speed_t = 0o010016; ++pub const B4000000: ::speed_t = 0o010017; + + pub const O_APPEND: ::c_int = 0o010; + pub const O_CREAT: ::c_int = 0o400; +diff --git a/src/vendor/libc/src/unix/notbsd/linux/musl/b32/mod.rs b/src/vendor/libc/src/unix/notbsd/linux/musl/b32/mod.rs +index b4a0f761636..4128a8e4da6 100644 +--- a/src/vendor/libc/src/unix/notbsd/linux/musl/b32/mod.rs ++++ b/src/vendor/libc/src/unix/notbsd/linux/musl/b32/mod.rs +@@ -32,96 +32,13 @@ s! { + pub struct sem_t { + __val: [::c_int; 4], + } +- +- pub struct ipc_perm { +- pub __ipc_perm_key: ::key_t, +- pub uid: ::uid_t, +- pub gid: ::gid_t, +- pub cuid: ::uid_t, +- pub cgid: ::gid_t, +- pub mode: ::mode_t, +- pub __seq: ::c_int, +- __unused1: ::c_long, +- __unused2: ::c_long +- } + } + +-pub const SIGSTKSZ: ::size_t = 8192; +-pub const MINSIGSTKSZ: ::size_t = 2048; +- + pub const __SIZEOF_PTHREAD_RWLOCK_T: usize = 32; + pub const __SIZEOF_PTHREAD_MUTEX_T: usize = 24; + +-pub const RLIMIT_NLIMITS: ::c_int = 16; + pub const TIOCINQ: ::c_int = ::FIONREAD; +-pub const MCL_CURRENT: ::c_int = 0x0001; +-pub const MCL_FUTURE: ::c_int = 0x0002; +-pub const CBAUD: ::tcflag_t = 0o0010017; +-pub const TAB1: ::c_int = 0x00000800; +-pub const TAB2: ::c_int = 0x00001000; +-pub const TAB3: ::c_int = 0x00001800; +-pub const CR1: ::c_int = 0x00000200; +-pub const CR2: ::c_int = 0x00000400; +-pub const CR3: ::c_int = 0x00000600; +-pub const FF1: ::c_int = 0x00008000; +-pub const BS1: ::c_int = 0x00002000; +-pub const VT1: ::c_int = 0x00004000; +-pub const VWERASE: usize = 14; +-pub const VREPRINT: usize = 12; +-pub const VSUSP: usize = 10; +-pub const VSTART: usize = 8; +-pub const VSTOP: usize = 9; +-pub const VDISCARD: usize = 13; +-pub const VTIME: usize = 5; +-pub const IXON: ::tcflag_t = 0x00000400; +-pub const IXOFF: ::tcflag_t = 0x00001000; +-pub const ONLCR: ::tcflag_t = 0x4; +-pub const CSIZE: ::tcflag_t = 0x00000030; +-pub const CS6: ::tcflag_t = 0x00000010; +-pub const CS7: ::tcflag_t = 0x00000020; +-pub const CS8: ::tcflag_t = 0x00000030; +-pub const CSTOPB: ::tcflag_t = 0x00000040; +-pub const CREAD: ::tcflag_t = 0x00000080; +-pub const PARENB: ::tcflag_t = 0x00000100; +-pub const PARODD: ::tcflag_t = 0x00000200; +-pub const HUPCL: ::tcflag_t = 0x00000400; +-pub const CLOCAL: ::tcflag_t = 0x00000800; +-pub const ECHOKE: ::tcflag_t = 0x00000800; +-pub const ECHOE: ::tcflag_t = 0x00000010; +-pub const ECHOK: ::tcflag_t = 0x00000020; +-pub const ECHONL: ::tcflag_t = 0x00000040; +-pub const ECHOPRT: ::tcflag_t = 0x00000400; +-pub const ECHOCTL: ::tcflag_t = 0x00000200; +-pub const ISIG: ::tcflag_t = 0x00000001; +-pub const ICANON: ::tcflag_t = 0x00000002; +-pub const PENDIN: ::tcflag_t = 0x00004000; +-pub const NOFLSH: ::tcflag_t = 0x00000080; +-pub const CIBAUD: ::tcflag_t = 0o02003600000; +-pub const CBAUDEX: ::tcflag_t = 0o010000; +-pub const VSWTC: usize = 7; +-pub const OLCUC: ::tcflag_t = 0o000002; +-pub const NLDLY: ::tcflag_t = 0o000400; +-pub const CRDLY: ::tcflag_t = 0o003000; +-pub const TABDLY: ::tcflag_t = 0o014000; +-pub const BSDLY: ::tcflag_t = 0o020000; +-pub const FFDLY: ::tcflag_t = 0o100000; +-pub const VTDLY: ::tcflag_t = 0o040000; +-pub const XTABS: ::tcflag_t = 0o014000; +-pub const B57600: ::speed_t = 0o010001; +-pub const B115200: ::speed_t = 0o010002; +-pub const B230400: ::speed_t = 0o010003; +-pub const B460800: ::speed_t = 0o010004; +-pub const B500000: ::speed_t = 0o010005; +-pub const B576000: ::speed_t = 0o010006; +-pub const B921600: ::speed_t = 0o010007; +-pub const B1000000: ::speed_t = 0o010010; +-pub const B1152000: ::speed_t = 0o010011; +-pub const B1500000: ::speed_t = 0o010012; +-pub const B2000000: ::speed_t = 0o010013; +-pub const B2500000: ::speed_t = 0o010014; +-pub const B3000000: ::speed_t = 0o010015; +-pub const B3500000: ::speed_t = 0o010016; +-pub const B4000000: ::speed_t = 0o010017; ++ + extern { + pub fn ioctl(fd: ::c_int, request: ::c_int, ...) -> ::c_int; + } +@@ -136,6 +53,9 @@ cfg_if! { + } else if #[cfg(any(target_arch = "arm"))] { + mod arm; + pub use self::arm::*; ++ } else if #[cfg(any(target_arch = "powerpc"))] { ++ mod powerpc; ++ pub use self::powerpc::*; + } else { + // Unknown target_arch + } +diff --git a/src/vendor/libc/src/unix/notbsd/linux/musl/b32/powerpc.rs b/src/vendor/libc/src/unix/notbsd/linux/musl/b32/powerpc.rs +new file mode 100644 +index 00000000000..50b6b57ef11 +--- /dev/null ++++ b/src/vendor/libc/src/unix/notbsd/linux/musl/b32/powerpc.rs +@@ -0,0 +1,866 @@ ++pub type c_char = u8; ++pub type wchar_t = i32; ++ ++s! { ++ pub struct stat { ++ pub st_dev: ::dev_t, ++ pub st_ino: ::ino_t, ++ pub st_mode: ::mode_t, ++ pub st_nlink: ::nlink_t, ++ pub st_uid: ::uid_t, ++ pub st_gid: ::gid_t, ++ pub st_rdev: ::dev_t, ++ __st_rdev_padding: ::c_short, ++ pub st_size: ::off_t, ++ pub st_blksize: ::blksize_t, ++ pub st_blocks: ::blkcnt_t, ++ pub st_atime: ::time_t, ++ pub st_atime_nsec: ::c_long, ++ pub st_mtime: ::time_t, ++ pub st_mtime_nsec: ::c_long, ++ pub st_ctime: ::time_t, ++ pub st_ctime_nsec: ::c_long, ++ __unused: [::c_long; 2], ++ } ++ ++ pub struct stat64 { ++ pub st_dev: ::dev_t, ++ pub st_ino: ::ino_t, ++ pub st_mode: ::mode_t, ++ pub st_nlink: ::nlink_t, ++ pub st_uid: ::uid_t, ++ pub st_gid: ::gid_t, ++ pub st_rdev: ::dev_t, ++ __st_rdev_padding: ::c_short, ++ pub st_size: ::off_t, ++ pub st_blksize: ::blksize_t, ++ pub st_blocks: ::blkcnt_t, ++ pub st_atime: ::time_t, ++ pub st_atime_nsec: ::c_long, ++ pub st_mtime: ::time_t, ++ pub st_mtime_nsec: ::c_long, ++ pub st_ctime: ::time_t, ++ pub st_ctime_nsec: ::c_long, ++ __unused: [::c_long; 2], ++ } ++ ++ pub struct stack_t { ++ pub ss_sp: *mut ::c_void, ++ pub ss_flags: ::c_int, ++ pub ss_size: ::size_t ++ } ++ ++ pub struct ipc_perm { ++ pub __ipc_perm_key: ::key_t, ++ pub uid: ::uid_t, ++ pub gid: ::gid_t, ++ pub cuid: ::uid_t, ++ pub cgid: ::gid_t, ++ pub mode: ::mode_t, ++ pub __seq: ::c_int, ++ __pad1: ::c_int, ++ __pad2: ::c_longlong, ++ __pad3: ::c_longlong ++ } ++ ++ pub struct shmid_ds { ++ pub shm_perm: ::ipc_perm, ++ __unused1: ::c_int, ++ pub shm_atime: ::time_t, ++ __unused2: ::c_int, ++ pub shm_dtime: ::time_t, ++ __unused3: ::c_int, ++ pub shm_ctime: ::time_t, ++ __unused4: ::c_int, ++ pub shm_segsz: ::size_t, ++ pub shm_cpid: ::pid_t, ++ pub shm_lpid: ::pid_t, ++ pub shm_nattch: ::c_ulong, ++ __pad1: ::c_ulong, ++ __pad2: ::c_ulong, ++ } ++ ++ pub struct msqid_ds { ++ pub msg_perm: ::ipc_perm, ++ __unused1: ::c_int, ++ pub msg_stime: ::time_t, ++ __unused2: ::c_int, ++ pub msg_rtime: ::time_t, ++ __unused3: ::c_int, ++ pub msg_ctime: ::time_t, ++ __msg_cbytes: ::c_ulong, ++ pub msg_qnum: ::msgqnum_t, ++ pub msg_qbytes: ::msglen_t, ++ pub msg_lspid: ::pid_t, ++ pub msg_lrpid: ::pid_t, ++ __pad1: ::c_ulong, ++ __pad2: ::c_ulong, ++ } ++ ++ pub struct statfs { ++ pub f_type: ::c_ulong, ++ pub f_bsize: ::c_ulong, ++ pub f_blocks: ::fsblkcnt_t, ++ pub f_bfree: ::fsblkcnt_t, ++ pub f_bavail: ::fsblkcnt_t, ++ pub f_files: ::fsfilcnt_t, ++ pub f_ffree: ::fsfilcnt_t, ++ pub f_fsid: ::fsid_t, ++ pub f_namelen: ::c_ulong, ++ pub f_frsize: ::c_ulong, ++ pub f_flags: ::c_ulong, ++ pub f_spare: [::c_ulong; 4], ++ } ++ ++ pub struct siginfo_t { ++ pub si_signo: ::c_int, ++ pub si_errno: ::c_int, ++ pub si_code: ::c_int, ++ pub _pad: [::c_int; 29], ++ _align: [usize; 0], ++ } ++ ++ pub struct statfs64 { ++ pub f_type: ::c_ulong, ++ pub f_bsize: ::c_ulong, ++ pub f_blocks: ::fsblkcnt_t, ++ pub f_bfree: ::fsblkcnt_t, ++ pub f_bavail: ::fsblkcnt_t, ++ pub f_files: ::fsfilcnt_t, ++ pub f_ffree: ::fsfilcnt_t, ++ pub f_fsid: ::fsid_t, ++ pub f_namelen: ::c_ulong, ++ pub f_frsize: ::c_ulong, ++ pub f_flags: ::c_ulong, ++ pub f_spare: [::c_ulong; 4], ++ } ++ ++ pub struct statvfs64 { ++ pub f_bsize: ::c_ulong, ++ pub f_frsize: ::c_ulong, ++ pub f_blocks: u64, ++ pub f_bfree: u64, ++ pub f_bavail: u64, ++ pub f_files: u64, ++ pub f_ffree: u64, ++ pub f_favail: u64, ++ #[cfg(target_endian = "little")] ++ pub f_fsid: ::c_ulong, ++ __f_unused: ::c_int, ++ #[cfg(target_endian = "big")] ++ pub f_fsid: ::c_ulong, ++ pub f_flag: ::c_ulong, ++ pub f_namemax: ::c_ulong, ++ __f_spare: [::c_int; 6], ++ } ++ ++ pub struct termios2 { ++ pub c_iflag: ::tcflag_t, ++ pub c_oflag: ::tcflag_t, ++ pub c_cflag: ::tcflag_t, ++ pub c_lflag: ::tcflag_t, ++ pub c_cc: [::cc_t; 19], ++ pub c_line: ::cc_t, ++ pub c_ispeed: ::speed_t, ++ pub c_ospeed: ::speed_t, ++ } ++} ++ ++pub const SIGSTKSZ: ::size_t = 10240; ++pub const MINSIGSTKSZ: ::size_t = 4096; ++ ++pub const O_DIRECT: ::c_int = 0x20000; ++pub const O_DIRECTORY: ::c_int = 0x4000; ++pub const O_NOFOLLOW: ::c_int = 0x8000; ++pub const O_ASYNC: ::c_int = 0x2000; ++pub const O_LARGEFILE: ::c_int = 0x10000; ++ ++pub const FIOCLEX: ::c_int = 0x20006601; ++pub const FIONBIO: ::c_int = 0x8004667E; ++ ++pub const RLIMIT_RSS: ::c_int = 5; ++pub const RLIMIT_NOFILE: ::c_int = 7; ++pub const RLIMIT_AS: ::c_int = 9; ++pub const RLIMIT_NPROC: ::c_int = 6; ++pub const RLIMIT_MEMLOCK: ::c_int = 8; ++pub const RLIMIT_NLIMITS: ::c_int = 15; ++ ++pub const MCL_CURRENT: ::c_int = 0x2000; ++pub const MCL_FUTURE: ::c_int = 0x4000; ++pub const CBAUD: ::tcflag_t = 0o0000377; ++pub const TAB1: ::c_int = 0x00000400; ++pub const TAB2: ::c_int = 0x00000800; ++pub const TAB3: ::c_int = 0x00000C00; ++pub const CR1: ::c_int = 0x00001000; ++pub const CR2: ::c_int = 0x00002000; ++pub const CR3: ::c_int = 0x00003000; ++pub const FF1: ::c_int = 0x00004000; ++pub const BS1: ::c_int = 0x00008000; ++pub const VT1: ::c_int = 0x00010000; ++pub const VWERASE: usize = 10; ++pub const VREPRINT: usize = 11; ++pub const VSUSP: usize = 12; ++pub const VSTART: usize = 13; ++pub const VSTOP: usize = 14; ++pub const VDISCARD: usize = 16; ++pub const VTIME: usize = 7; ++pub const IXON: ::tcflag_t = 0x00000200; ++pub const IXOFF: ::tcflag_t = 0x00000400; ++pub const ONLCR: ::tcflag_t = 0x00000002; ++pub const CSIZE: ::tcflag_t = 0x00000300; ++pub const CS6: ::tcflag_t = 0x00000100; ++pub const CS7: ::tcflag_t = 0x00000200; ++pub const CS8: ::tcflag_t = 0x00000300; ++pub const CSTOPB: ::tcflag_t = 0x00000400; ++pub const CREAD: ::tcflag_t = 0x00000800; ++pub const PARENB: ::tcflag_t = 0x00001000; ++pub const PARODD: ::tcflag_t = 0x00002000; ++pub const HUPCL: ::tcflag_t = 0x00004000; ++pub const CLOCAL: ::tcflag_t = 0x00008000; ++pub const ECHOKE: ::tcflag_t = 0x00000001; ++pub const ECHOE: ::tcflag_t = 0x00000002; ++pub const ECHOK: ::tcflag_t = 0x00000004; ++pub const ECHONL: ::tcflag_t = 0x00000010; ++pub const ECHOPRT: ::tcflag_t = 0x00000020; ++pub const ECHOCTL: ::tcflag_t = 0x00000040; ++pub const ISIG: ::tcflag_t = 0x00000080; ++pub const ICANON: ::tcflag_t = 0x00000100; ++pub const PENDIN: ::tcflag_t = 0x20000000; ++pub const NOFLSH: ::tcflag_t = 0x80000000; ++pub const CIBAUD: ::tcflag_t = 0o00077600000; ++pub const CBAUDEX: ::tcflag_t = 0o000020; ++pub const VSWTC: usize = 9; ++pub const OLCUC: ::tcflag_t = 0o000004; ++pub const NLDLY: ::tcflag_t = 0o001400; ++pub const CRDLY: ::tcflag_t = 0o030000; ++pub const TABDLY: ::tcflag_t = 0o006000; ++pub const BSDLY: ::tcflag_t = 0o100000; ++pub const FFDLY: ::tcflag_t = 0o040000; ++pub const VTDLY: ::tcflag_t = 0o200000; ++pub const XTABS: ::tcflag_t = 0o006000; ++pub const B57600: ::speed_t = 0o000020; ++pub const B115200: ::speed_t = 0o000021; ++pub const B230400: ::speed_t = 0o000022; ++pub const B460800: ::speed_t = 0o000023; ++pub const B500000: ::speed_t = 0o000024; ++pub const B576000: ::speed_t = 0o000025; ++pub const B921600: ::speed_t = 0o000026; ++pub const B1000000: ::speed_t = 0o000027; ++pub const B1152000: ::speed_t = 0o000030; ++pub const B1500000: ::speed_t = 0o000031; ++pub const B2000000: ::speed_t = 0o000032; ++pub const B2500000: ::speed_t = 0o000033; ++pub const B3000000: ::speed_t = 0o000034; ++pub const B3500000: ::speed_t = 0o000035; ++pub const B4000000: ::speed_t = 0o000036; ++ ++pub const O_APPEND: ::c_int = 1024; ++pub const O_CREAT: ::c_int = 64; ++pub const O_EXCL: ::c_int = 128; ++pub const O_NOCTTY: ::c_int = 256; ++pub const O_NONBLOCK: ::c_int = 2048; ++pub const O_SYNC: ::c_int = 1052672; ++pub const O_RSYNC: ::c_int = 1052672; ++pub const O_DSYNC: ::c_int = 4096; ++ ++pub const SOCK_NONBLOCK: ::c_int = 2048; ++ ++pub const MAP_ANON: ::c_int = 0x0020; ++pub const MAP_GROWSDOWN: ::c_int = 0x0100; ++pub const MAP_DENYWRITE: ::c_int = 0x0800; ++pub const MAP_EXECUTABLE: ::c_int = 0x01000; ++pub const MAP_LOCKED: ::c_int = 0x00080; ++pub const MAP_NORESERVE: ::c_int = 0x00040; ++pub const MAP_POPULATE: ::c_int = 0x08000; ++pub const MAP_NONBLOCK: ::c_int = 0x010000; ++pub const MAP_STACK: ::c_int = 0x020000; ++ ++pub const SOCK_STREAM: ::c_int = 1; ++pub const SOCK_DGRAM: ::c_int = 2; ++pub const SOCK_SEQPACKET: ::c_int = 5; ++ ++pub const SOL_SOCKET: ::c_int = 1; ++ ++pub const EDEADLK: ::c_int = 35; ++pub const ENAMETOOLONG: ::c_int = 36; ++pub const ENOLCK: ::c_int = 37; ++pub const ENOSYS: ::c_int = 38; ++pub const ENOTEMPTY: ::c_int = 39; ++pub const ELOOP: ::c_int = 40; ++pub const ENOMSG: ::c_int = 42; ++pub const EIDRM: ::c_int = 43; ++pub const ECHRNG: ::c_int = 44; ++pub const EL2NSYNC: ::c_int = 45; ++pub const EL3HLT: ::c_int = 46; ++pub const EL3RST: ::c_int = 47; ++pub const ELNRNG: ::c_int = 48; ++pub const EUNATCH: ::c_int = 49; ++pub const ENOCSI: ::c_int = 50; ++pub const EL2HLT: ::c_int = 51; ++pub const EBADE: ::c_int = 52; ++pub const EBADR: ::c_int = 53; ++pub const EXFULL: ::c_int = 54; ++pub const ENOANO: ::c_int = 55; ++pub const EBADRQC: ::c_int = 56; ++pub const EBADSLT: ::c_int = 57; ++pub const EDEADLOCK: ::c_int = 58; ++pub const EMULTIHOP: ::c_int = 72; ++pub const EBADMSG: ::c_int = 74; ++pub const EOVERFLOW: ::c_int = 75; ++pub const ENOTUNIQ: ::c_int = 76; ++pub const EBADFD: ::c_int = 77; ++pub const EREMCHG: ::c_int = 78; ++pub const ELIBACC: ::c_int = 79; ++pub const ELIBBAD: ::c_int = 80; ++pub const ELIBSCN: ::c_int = 81; ++pub const ELIBMAX: ::c_int = 82; ++pub const ELIBEXEC: ::c_int = 83; ++pub const EILSEQ: ::c_int = 84; ++pub const ERESTART: ::c_int = 85; ++pub const ESTRPIPE: ::c_int = 86; ++pub const EUSERS: ::c_int = 87; ++pub const ENOTSOCK: ::c_int = 88; ++pub const EDESTADDRREQ: ::c_int = 89; ++pub const EMSGSIZE: ::c_int = 90; ++pub const EPROTOTYPE: ::c_int = 91; ++pub const ENOPROTOOPT: ::c_int = 92; ++pub const EPROTONOSUPPORT: ::c_int = 93; ++pub const ESOCKTNOSUPPORT: ::c_int = 94; ++pub const EOPNOTSUPP: ::c_int = 95; ++pub const ENOTSUP: ::c_int = EOPNOTSUPP; ++pub const EPFNOSUPPORT: ::c_int = 96; ++pub const EAFNOSUPPORT: ::c_int = 97; ++pub const EADDRINUSE: ::c_int = 98; ++pub const EADDRNOTAVAIL: ::c_int = 99; ++pub const ENETDOWN: ::c_int = 100; ++pub const ENETUNREACH: ::c_int = 101; ++pub const ENETRESET: ::c_int = 102; ++pub const ECONNABORTED: ::c_int = 103; ++pub const ECONNRESET: ::c_int = 104; ++pub const ENOBUFS: ::c_int = 105; ++pub const EISCONN: ::c_int = 106; ++pub const ENOTCONN: ::c_int = 107; ++pub const ESHUTDOWN: ::c_int = 108; ++pub const ETOOMANYREFS: ::c_int = 109; ++pub const ETIMEDOUT: ::c_int = 110; ++pub const ECONNREFUSED: ::c_int = 111; ++pub const EHOSTDOWN: ::c_int = 112; ++pub const EHOSTUNREACH: ::c_int = 113; ++pub const EALREADY: ::c_int = 114; ++pub const EINPROGRESS: ::c_int = 115; ++pub const ESTALE: ::c_int = 116; ++pub const EUCLEAN: ::c_int = 117; ++pub const ENOTNAM: ::c_int = 118; ++pub const ENAVAIL: ::c_int = 119; ++pub const EISNAM: ::c_int = 120; ++pub const EREMOTEIO: ::c_int = 121; ++pub const EDQUOT: ::c_int = 122; ++pub const ENOMEDIUM: ::c_int = 123; ++pub const EMEDIUMTYPE: ::c_int = 124; ++pub const ECANCELED: ::c_int = 125; ++pub const ENOKEY: ::c_int = 126; ++pub const EKEYEXPIRED: ::c_int = 127; ++pub const EKEYREVOKED: ::c_int = 128; ++pub const EKEYREJECTED: ::c_int = 129; ++pub const EOWNERDEAD: ::c_int = 130; ++pub const ENOTRECOVERABLE: ::c_int = 131; ++pub const ERFKILL: ::c_int = 132; ++pub const EHWPOISON: ::c_int = 133; ++ ++pub const SO_REUSEADDR: ::c_int = 2; ++pub const SO_TYPE: ::c_int = 3; ++pub const SO_ERROR: ::c_int = 4; ++pub const SO_DONTROUTE: ::c_int = 5; ++pub const SO_BROADCAST: ::c_int = 6; ++pub const SO_SNDBUF: ::c_int = 7; ++pub const SO_RCVBUF: ::c_int = 8; ++pub const SO_KEEPALIVE: ::c_int = 9; ++pub const SO_OOBINLINE: ::c_int = 10; ++pub const SO_NO_CHECK: ::c_int = 11; ++pub const SO_PRIORITY: ::c_int = 12; ++pub const SO_LINGER: ::c_int = 13; ++pub const SO_BSDCOMPAT: ::c_int = 14; ++pub const SO_REUSEPORT: ::c_int = 15; ++pub const SO_RCVLOWAT: ::c_int = 16; ++pub const SO_SNDLOWAT: ::c_int = 17; ++pub const SO_RCVTIMEO: ::c_int = 18; ++pub const SO_SNDTIMEO: ::c_int = 19; ++pub const SO_PASSCRED: ::c_int = 20; ++pub const SO_PEERCRED: ::c_int = 21; ++pub const SO_ACCEPTCONN: ::c_int = 30; ++pub const SO_SNDBUFFORCE: ::c_int = 32; ++pub const SO_RCVBUFFORCE: ::c_int = 33; ++pub const SO_PROTOCOL: ::c_int = 38; ++pub const SO_DOMAIN: ::c_int = 39; ++ ++pub const SA_ONSTACK: ::c_int = 0x08000000; ++pub const SA_SIGINFO: ::c_int = 0x00000004; ++pub const SA_NOCLDWAIT: ::c_int = 0x00000002; ++ ++pub const SIGCHLD: ::c_int = 17; ++pub const SIGBUS: ::c_int = 7; ++pub const SIGTTIN: ::c_int = 21; ++pub const SIGTTOU: ::c_int = 22; ++pub const SIGXCPU: ::c_int = 24; ++pub const SIGXFSZ: ::c_int = 25; ++pub const SIGVTALRM: ::c_int = 26; ++pub const SIGPROF: ::c_int = 27; ++pub const SIGWINCH: ::c_int = 28; ++pub const SIGUSR1: ::c_int = 10; ++pub const SIGUSR2: ::c_int = 12; ++pub const SIGCONT: ::c_int = 18; ++pub const SIGSTOP: ::c_int = 19; ++pub const SIGTSTP: ::c_int = 20; ++pub const SIGURG: ::c_int = 23; ++pub const SIGIO: ::c_int = 29; ++pub const SIGSYS: ::c_int = 31; ++pub const SIGSTKFLT: ::c_int = 16; ++pub const SIGPOLL: ::c_int = 29; ++pub const SIGPWR: ::c_int = 30; ++pub const SIG_SETMASK: ::c_int = 2; ++pub const SIG_BLOCK: ::c_int = 0x000000; ++pub const SIG_UNBLOCK: ::c_int = 0x01; ++ ++pub const EXTPROC: ::tcflag_t = 0x10000000; ++ ++pub const MAP_HUGETLB: ::c_int = 0x040000; ++ ++pub const F_GETLK: ::c_int = 12; ++pub const F_GETOWN: ::c_int = 9; ++pub const F_SETLK: ::c_int = 13; ++pub const F_SETLKW: ::c_int = 14; ++pub const F_SETOWN: ::c_int = 8; ++ ++pub const VEOF: usize = 4; ++pub const VEOL: usize = 6; ++pub const VEOL2: usize = 8; ++pub const VMIN: usize = 5; ++pub const IEXTEN: ::tcflag_t = 0x00000400; ++pub const TOSTOP: ::tcflag_t = 0x00400000; ++pub const FLUSHO: ::tcflag_t = 0x00800000; ++ ++pub const TCGETS: ::c_int = 0x402C7413; ++pub const TCSETS: ::c_int = 0x802C7414; ++pub const TCSETSW: ::c_int = 0x802C7415; ++pub const TCSETSF: ::c_int = 0x802C7416; ++pub const TCGETA: ::c_int = 0x40147417; ++pub const TCSETA: ::c_int = 0x80147418; ++pub const TCSETAW: ::c_int = 0x80147419; ++pub const TCSETAF: ::c_int = 0x8014741C; ++pub const TCSBRK: ::c_int = 0x2000741D; ++pub const TCXONC: ::c_int = 0x2000741E; ++pub const TCFLSH: ::c_int = 0x2000741F; ++pub const TIOCGSOFTCAR: ::c_int = 0x5419; ++pub const TIOCSSOFTCAR: ::c_int = 0x541A; ++pub const TIOCLINUX: ::c_int = 0x541C; ++pub const TIOCGSERIAL: ::c_int = 0x541E; ++pub const TIOCEXCL: ::c_int = 0x540C; ++pub const TIOCNXCL: ::c_int = 0x540D; ++pub const TIOCSCTTY: ::c_int = 0x540E; ++pub const TIOCGPGRP: ::c_int = 0x40047477; ++pub const TIOCSPGRP: ::c_int = 0x80047476; ++pub const TIOCOUTQ: ::c_int = 0x40047473; ++pub const TIOCSTI: ::c_int = 0x5412; ++pub const TIOCGWINSZ: ::c_int = 0x40087468; ++pub const TIOCSWINSZ: ::c_int = 0x80087467; ++pub const TIOCMGET: ::c_int = 0x5415; ++pub const TIOCMBIS: ::c_int = 0x5416; ++pub const TIOCMBIC: ::c_int = 0x5417; ++pub const TIOCMSET: ::c_int = 0x5418; ++pub const FIONREAD: ::c_int = 0x4004667F; ++pub const TIOCCONS: ::c_int = 0x541D; ++ ++pub const POLLWRNORM: ::c_short = 0x100; ++pub const POLLWRBAND: ::c_short = 0x200; ++ ++pub const TIOCM_LE: ::c_int = 0x001; ++pub const TIOCM_DTR: ::c_int = 0x002; ++pub const TIOCM_RTS: ::c_int = 0x004; ++pub const TIOCM_ST: ::c_int = 0x008; ++pub const TIOCM_SR: ::c_int = 0x010; ++pub const TIOCM_CTS: ::c_int = 0x020; ++pub const TIOCM_CAR: ::c_int = 0x040; ++pub const TIOCM_RNG: ::c_int = 0x080; ++pub const TIOCM_DSR: ::c_int = 0x100; ++pub const TIOCM_CD: ::c_int = TIOCM_CAR; ++pub const TIOCM_RI: ::c_int = TIOCM_RNG; ++ ++// Syscall table ++pub const SYS_restart_syscall: ::c_long = 0; ++pub const SYS_exit: ::c_long = 1; ++pub const SYS_fork: ::c_long = 2; ++pub const SYS_read: ::c_long = 3; ++pub const SYS_write: ::c_long = 4; ++pub const SYS_open: ::c_long = 5; ++pub const SYS_close: ::c_long = 6; ++pub const SYS_waitpid: ::c_long = 7; ++pub const SYS_creat: ::c_long = 8; ++pub const SYS_link: ::c_long = 9; ++pub const SYS_unlink: ::c_long = 10; ++pub const SYS_execve: ::c_long = 11; ++pub const SYS_chdir: ::c_long = 12; ++pub const SYS_time: ::c_long = 13; ++pub const SYS_mknod: ::c_long = 14; ++pub const SYS_chmod: ::c_long = 15; ++pub const SYS_lchown: ::c_long = 16; ++pub const SYS_break: ::c_long = 17; ++pub const SYS_oldstat: ::c_long = 18; ++pub const SYS_lseek: ::c_long = 19; ++pub const SYS_getpid: ::c_long = 20; ++pub const SYS_mount: ::c_long = 21; ++pub const SYS_umount: ::c_long = 22; ++pub const SYS_setuid: ::c_long = 23; ++pub const SYS_getuid: ::c_long = 24; ++pub const SYS_stime: ::c_long = 25; ++pub const SYS_ptrace: ::c_long = 26; ++pub const SYS_alarm: ::c_long = 27; ++pub const SYS_oldfstat: ::c_long = 28; ++pub const SYS_pause: ::c_long = 29; ++pub const SYS_utime: ::c_long = 30; ++pub const SYS_stty: ::c_long = 31; ++pub const SYS_gtty: ::c_long = 32; ++pub const SYS_access: ::c_long = 33; ++pub const SYS_nice: ::c_long = 34; ++pub const SYS_ftime: ::c_long = 35; ++pub const SYS_sync: ::c_long = 36; ++pub const SYS_kill: ::c_long = 37; ++pub const SYS_rename: ::c_long = 38; ++pub const SYS_mkdir: ::c_long = 39; ++pub const SYS_rmdir: ::c_long = 40; ++pub const SYS_dup: ::c_long = 41; ++pub const SYS_pipe: ::c_long = 42; ++pub const SYS_times: ::c_long = 43; ++pub const SYS_prof: ::c_long = 44; ++pub const SYS_brk: ::c_long = 45; ++pub const SYS_setgid: ::c_long = 46; ++pub const SYS_getgid: ::c_long = 47; ++pub const SYS_signal: ::c_long = 48; ++pub const SYS_geteuid: ::c_long = 49; ++pub const SYS_getegid: ::c_long = 50; ++pub const SYS_acct: ::c_long = 51; ++pub const SYS_umount2: ::c_long = 52; ++pub const SYS_lock: ::c_long = 53; ++pub const SYS_ioctl: ::c_long = 54; ++pub const SYS_fcntl: ::c_long = 55; ++pub const SYS_mpx: ::c_long = 56; ++pub const SYS_setpgid: ::c_long = 57; ++pub const SYS_ulimit: ::c_long = 58; ++pub const SYS_oldolduname: ::c_long = 59; ++pub const SYS_umask: ::c_long = 60; ++pub const SYS_chroot: ::c_long = 61; ++pub const SYS_ustat: ::c_long = 62; ++pub const SYS_dup2: ::c_long = 63; ++pub const SYS_getppid: ::c_long = 64; ++pub const SYS_getpgrp: ::c_long = 65; ++pub const SYS_setsid: ::c_long = 66; ++pub const SYS_sigaction: ::c_long = 67; ++pub const SYS_sgetmask: ::c_long = 68; ++pub const SYS_ssetmask: ::c_long = 69; ++pub const SYS_setreuid: ::c_long = 70; ++pub const SYS_setregid: ::c_long = 71; ++pub const SYS_sigsuspend: ::c_long = 72; ++pub const SYS_sigpending: ::c_long = 73; ++pub const SYS_sethostname: ::c_long = 74; ++pub const SYS_setrlimit: ::c_long = 75; ++pub const SYS_getrlimit: ::c_long = 76; ++pub const SYS_getrusage: ::c_long = 77; ++pub const SYS_gettimeofday: ::c_long = 78; ++pub const SYS_settimeofday: ::c_long = 79; ++pub const SYS_getgroups: ::c_long = 80; ++pub const SYS_setgroups: ::c_long = 81; ++pub const SYS_select: ::c_long = 82; ++pub const SYS_symlink: ::c_long = 83; ++pub const SYS_oldlstat: ::c_long = 84; ++pub const SYS_readlink: ::c_long = 85; ++pub const SYS_uselib: ::c_long = 86; ++pub const SYS_swapon: ::c_long = 87; ++pub const SYS_reboot: ::c_long = 88; ++pub const SYS_readdir: ::c_long = 89; ++pub const SYS_mmap: ::c_long = 90; ++pub const SYS_munmap: ::c_long = 91; ++pub const SYS_truncate: ::c_long = 92; ++pub const SYS_ftruncate: ::c_long = 93; ++pub const SYS_fchmod: ::c_long = 94; ++pub const SYS_fchown: ::c_long = 95; ++pub const SYS_getpriority: ::c_long = 96; ++pub const SYS_setpriority: ::c_long = 97; ++pub const SYS_profil: ::c_long = 98; ++pub const SYS_statfs: ::c_long = 99; ++pub const SYS_fstatfs: ::c_long = 100; ++pub const SYS_ioperm: ::c_long = 101; ++pub const SYS_socketcall: ::c_long = 102; ++pub const SYS_syslog: ::c_long = 103; ++pub const SYS_setitimer: ::c_long = 104; ++pub const SYS_getitimer: ::c_long = 105; ++pub const SYS_stat: ::c_long = 106; ++pub const SYS_lstat: ::c_long = 107; ++pub const SYS_fstat: ::c_long = 108; ++pub const SYS_olduname: ::c_long = 109; ++pub const SYS_iopl: ::c_long = 110; ++pub const SYS_vhangup: ::c_long = 111; ++pub const SYS_idle: ::c_long = 112; ++pub const SYS_vm86: ::c_long = 113; ++pub const SYS_wait4: ::c_long = 114; ++pub const SYS_swapoff: ::c_long = 115; ++pub const SYS_sysinfo: ::c_long = 116; ++pub const SYS_ipc: ::c_long = 117; ++pub const SYS_fsync: ::c_long = 118; ++pub const SYS_sigreturn: ::c_long = 119; ++pub const SYS_clone: ::c_long = 120; ++pub const SYS_setdomainname: ::c_long = 121; ++pub const SYS_uname: ::c_long = 122; ++pub const SYS_modify_ldt: ::c_long = 123; ++pub const SYS_adjtimex: ::c_long = 124; ++pub const SYS_mprotect: ::c_long = 125; ++pub const SYS_sigprocmask: ::c_long = 126; ++pub const SYS_create_module: ::c_long = 127; ++pub const SYS_init_module: ::c_long = 128; ++pub const SYS_delete_module: ::c_long = 129; ++pub const SYS_get_kernel_syms: ::c_long = 130; ++pub const SYS_quotactl: ::c_long = 131; ++pub const SYS_getpgid: ::c_long = 132; ++pub const SYS_fchdir: ::c_long = 133; ++pub const SYS_bdflush: ::c_long = 134; ++pub const SYS_sysfs: ::c_long = 135; ++pub const SYS_personality: ::c_long = 136; ++pub const SYS_afs_syscall: ::c_long = 137; ++pub const SYS_setfsuid: ::c_long = 138; ++pub const SYS_setfsgid: ::c_long = 139; ++pub const SYS__llseek: ::c_long = 140; ++pub const SYS_getdents: ::c_long = 141; ++pub const SYS__newselect: ::c_long = 142; ++pub const SYS_flock: ::c_long = 143; ++pub const SYS_msync: ::c_long = 144; ++pub const SYS_readv: ::c_long = 145; ++pub const SYS_writev: ::c_long = 146; ++pub const SYS_getsid: ::c_long = 147; ++pub const SYS_fdatasync: ::c_long = 148; ++pub const SYS__sysctl: ::c_long = 149; ++pub const SYS_mlock: ::c_long = 150; ++pub const SYS_munlock: ::c_long = 151; ++pub const SYS_mlockall: ::c_long = 152; ++pub const SYS_munlockall: ::c_long = 153; ++pub const SYS_sched_setparam: ::c_long = 154; ++pub const SYS_sched_getparam: ::c_long = 155; ++pub const SYS_sched_setscheduler: ::c_long = 156; ++pub const SYS_sched_getscheduler: ::c_long = 157; ++pub const SYS_sched_yield: ::c_long = 158; ++pub const SYS_sched_get_priority_max: ::c_long = 159; ++pub const SYS_sched_get_priority_min: ::c_long = 160; ++pub const SYS_sched_rr_get_interval: ::c_long = 161; ++pub const SYS_nanosleep: ::c_long = 162; ++pub const SYS_mremap: ::c_long = 163; ++pub const SYS_setresuid: ::c_long = 164; ++pub const SYS_getresuid: ::c_long = 165; ++pub const SYS_query_module: ::c_long = 166; ++pub const SYS_poll: ::c_long = 167; ++pub const SYS_nfsservctl: ::c_long = 168; ++pub const SYS_setresgid: ::c_long = 169; ++pub const SYS_getresgid: ::c_long = 170; ++pub const SYS_prctl: ::c_long = 171; ++pub const SYS_rt_sigreturn: ::c_long = 172; ++pub const SYS_rt_sigaction: ::c_long = 173; ++pub const SYS_rt_sigprocmask: ::c_long = 174; ++pub const SYS_rt_sigpending: ::c_long = 175; ++pub const SYS_rt_sigtimedwait: ::c_long = 176; ++pub const SYS_rt_sigqueueinfo: ::c_long = 177; ++pub const SYS_rt_sigsuspend: ::c_long = 178; ++pub const SYS_pread64: ::c_long = 179; ++pub const SYS_pwrite64: ::c_long = 180; ++pub const SYS_chown: ::c_long = 181; ++pub const SYS_getcwd: ::c_long = 182; ++pub const SYS_capget: ::c_long = 183; ++pub const SYS_capset: ::c_long = 184; ++pub const SYS_sigaltstack: ::c_long = 185; ++pub const SYS_sendfile: ::c_long = 186; ++pub const SYS_getpmsg: ::c_long = 187; ++pub const SYS_putpmsg: ::c_long = 188; ++pub const SYS_vfork: ::c_long = 189; ++pub const SYS_ugetrlimit: ::c_long = 190; ++pub const SYS_readahead: ::c_long = 191; ++pub const SYS_mmap2: ::c_long = 192; ++pub const SYS_truncate64: ::c_long = 193; ++pub const SYS_ftruncate64: ::c_long = 194; ++pub const SYS_stat64: ::c_long = 195; ++pub const SYS_lstat64: ::c_long = 196; ++pub const SYS_fstat64: ::c_long = 197; ++pub const SYS_pciconfig_read: ::c_long = 198; ++pub const SYS_pciconfig_write: ::c_long = 199; ++pub const SYS_pciconfig_iobase: ::c_long = 200; ++pub const SYS_multiplexer: ::c_long = 201; ++pub const SYS_getdents64: ::c_long = 202; ++pub const SYS_pivot_root: ::c_long = 203; ++pub const SYS_fcntl64: ::c_long = 204; ++pub const SYS_madvise: ::c_long = 205; ++pub const SYS_mincore: ::c_long = 206; ++pub const SYS_gettid: ::c_long = 207; ++pub const SYS_tkill: ::c_long = 208; ++pub const SYS_setxattr: ::c_long = 209; ++pub const SYS_lsetxattr: ::c_long = 210; ++pub const SYS_fsetxattr: ::c_long = 211; ++pub const SYS_getxattr: ::c_long = 212; ++pub const SYS_lgetxattr: ::c_long = 213; ++pub const SYS_fgetxattr: ::c_long = 214; ++pub const SYS_listxattr: ::c_long = 215; ++pub const SYS_llistxattr: ::c_long = 216; ++pub const SYS_flistxattr: ::c_long = 217; ++pub const SYS_removexattr: ::c_long = 218; ++pub const SYS_lremovexattr: ::c_long = 219; ++pub const SYS_fremovexattr: ::c_long = 220; ++pub const SYS_futex: ::c_long = 221; ++pub const SYS_sched_setaffinity: ::c_long = 222; ++pub const SYS_sched_getaffinity: ::c_long = 223; ++pub const SYS_tuxcall: ::c_long = 225; ++pub const SYS_sendfile64: ::c_long = 226; ++pub const SYS_io_setup: ::c_long = 227; ++pub const SYS_io_destroy: ::c_long = 228; ++pub const SYS_io_getevents: ::c_long = 229; ++pub const SYS_io_submit: ::c_long = 230; ++pub const SYS_io_cancel: ::c_long = 231; ++pub const SYS_set_tid_address: ::c_long = 232; ++pub const SYS_fadvise64: ::c_long = 233; ++pub const SYS_exit_group: ::c_long = 234; ++pub const SYS_lookup_dcookie: ::c_long = 235; ++pub const SYS_epoll_create: ::c_long = 236; ++pub const SYS_epoll_ctl: ::c_long = 237; ++pub const SYS_epoll_wait: ::c_long = 238; ++pub const SYS_remap_file_pages: ::c_long = 239; ++pub const SYS_timer_create: ::c_long = 240; ++pub const SYS_timer_settime: ::c_long = 241; ++pub const SYS_timer_gettime: ::c_long = 242; ++pub const SYS_timer_getoverrun: ::c_long = 243; ++pub const SYS_timer_delete: ::c_long = 244; ++pub const SYS_clock_settime: ::c_long = 245; ++pub const SYS_clock_gettime: ::c_long = 246; ++pub const SYS_clock_getres: ::c_long = 247; ++pub const SYS_clock_nanosleep: ::c_long = 248; ++pub const SYS_swapcontext: ::c_long = 249; ++pub const SYS_tgkill: ::c_long = 250; ++pub const SYS_utimes: ::c_long = 251; ++pub const SYS_statfs64: ::c_long = 252; ++pub const SYS_fstatfs64: ::c_long = 253; ++pub const SYS_fadvise64_64: ::c_long = 254; ++pub const SYS_rtas: ::c_long = 255; ++pub const SYS_sys_debug_setcontext: ::c_long = 256; ++pub const SYS_migrate_pages: ::c_long = 258; ++pub const SYS_mbind: ::c_long = 259; ++pub const SYS_get_mempolicy: ::c_long = 260; ++pub const SYS_set_mempolicy: ::c_long = 261; ++pub const SYS_mq_open: ::c_long = 262; ++pub const SYS_mq_unlink: ::c_long = 263; ++pub const SYS_mq_timedsend: ::c_long = 264; ++pub const SYS_mq_timedreceive: ::c_long = 265; ++pub const SYS_mq_notify: ::c_long = 266; ++pub const SYS_mq_getsetattr: ::c_long = 267; ++pub const SYS_kexec_load: ::c_long = 268; ++pub const SYS_add_key: ::c_long = 269; ++pub const SYS_request_key: ::c_long = 270; ++pub const SYS_keyctl: ::c_long = 271; ++pub const SYS_waitid: ::c_long = 272; ++pub const SYS_ioprio_set: ::c_long = 273; ++pub const SYS_ioprio_get: ::c_long = 274; ++pub const SYS_inotify_init: ::c_long = 275; ++pub const SYS_inotify_add_watch: ::c_long = 276; ++pub const SYS_inotify_rm_watch: ::c_long = 277; ++pub const SYS_spu_run: ::c_long = 278; ++pub const SYS_spu_create: ::c_long = 279; ++pub const SYS_pselect6: ::c_long = 280; ++pub const SYS_ppoll: ::c_long = 281; ++pub const SYS_unshare: ::c_long = 282; ++pub const SYS_splice: ::c_long = 283; ++pub const SYS_tee: ::c_long = 284; ++pub const SYS_vmsplice: ::c_long = 285; ++pub const SYS_openat: ::c_long = 286; ++pub const SYS_mkdirat: ::c_long = 287; ++pub const SYS_mknodat: ::c_long = 288; ++pub const SYS_fchownat: ::c_long = 289; ++pub const SYS_futimesat: ::c_long = 290; ++pub const SYS_fstatat64: ::c_long = 291; ++pub const SYS_unlinkat: ::c_long = 292; ++pub const SYS_renameat: ::c_long = 293; ++pub const SYS_linkat: ::c_long = 294; ++pub const SYS_symlinkat: ::c_long = 295; ++pub const SYS_readlinkat: ::c_long = 296; ++pub const SYS_fchmodat: ::c_long = 297; ++pub const SYS_faccessat: ::c_long = 298; ++pub const SYS_get_robust_list: ::c_long = 299; ++pub const SYS_set_robust_list: ::c_long = 300; ++pub const SYS_move_pages: ::c_long = 301; ++pub const SYS_getcpu: ::c_long = 302; ++pub const SYS_epoll_pwait: ::c_long = 303; ++pub const SYS_utimensat: ::c_long = 304; ++pub const SYS_signalfd: ::c_long = 305; ++pub const SYS_timerfd_create: ::c_long = 306; ++pub const SYS_eventfd: ::c_long = 307; ++pub const SYS_sync_file_range2: ::c_long = 308; ++pub const SYS_fallocate: ::c_long = 309; ++pub const SYS_subpage_prot: ::c_long = 310; ++pub const SYS_timerfd_settime: ::c_long = 311; ++pub const SYS_timerfd_gettime: ::c_long = 312; ++pub const SYS_signalfd4: ::c_long = 313; ++pub const SYS_eventfd2: ::c_long = 314; ++pub const SYS_epoll_create1: ::c_long = 315; ++pub const SYS_dup3: ::c_long = 316; ++pub const SYS_pipe2: ::c_long = 317; ++pub const SYS_inotify_init1: ::c_long = 318; ++pub const SYS_perf_event_open: ::c_long = 319; ++pub const SYS_preadv: ::c_long = 320; ++pub const SYS_pwritev: ::c_long = 321; ++pub const SYS_rt_tgsigqueueinfo: ::c_long = 322; ++pub const SYS_fanotify_init: ::c_long = 323; ++pub const SYS_fanotify_mark: ::c_long = 324; ++pub const SYS_prlimit64: ::c_long = 325; ++pub const SYS_socket: ::c_long = 326; ++pub const SYS_bind: ::c_long = 327; ++pub const SYS_connect: ::c_long = 328; ++pub const SYS_listen: ::c_long = 329; ++pub const SYS_accept: ::c_long = 330; ++pub const SYS_getsockname: ::c_long = 331; ++pub const SYS_getpeername: ::c_long = 332; ++pub const SYS_socketpair: ::c_long = 333; ++pub const SYS_send: ::c_long = 334; ++pub const SYS_sendto: ::c_long = 335; ++pub const SYS_recv: ::c_long = 336; ++pub const SYS_recvfrom: ::c_long = 337; ++pub const SYS_shutdown: ::c_long = 338; ++pub const SYS_setsockopt: ::c_long = 339; ++pub const SYS_getsockopt: ::c_long = 340; ++pub const SYS_sendmsg: ::c_long = 341; ++pub const SYS_recvmsg: ::c_long = 342; ++pub const SYS_recvmmsg: ::c_long = 343; ++pub const SYS_accept4: ::c_long = 344; ++pub const SYS_name_to_handle_at: ::c_long = 345; ++pub const SYS_open_by_handle_at: ::c_long = 346; ++pub const SYS_clock_adjtime: ::c_long = 347; ++pub const SYS_syncfs: ::c_long = 348; ++pub const SYS_sendmmsg: ::c_long = 349; ++pub const SYS_setns: ::c_long = 350; ++pub const SYS_process_vm_readv: ::c_long = 351; ++pub const SYS_process_vm_writev: ::c_long = 352; ++pub const SYS_finit_module: ::c_long = 353; ++pub const SYS_kcmp: ::c_long = 354; ++pub const SYS_sched_setattr: ::c_long = 355; ++pub const SYS_sched_getattr: ::c_long = 356; ++pub const SYS_renameat2: ::c_long = 357; ++pub const SYS_seccomp: ::c_long = 358; ++pub const SYS_getrandom: ::c_long = 359; ++pub const SYS_memfd_create: ::c_long = 360; ++pub const SYS_bpf: ::c_long = 361; ++pub const SYS_execveat: ::c_long = 362; ++pub const SYS_switch_endian: ::c_long = 363; ++pub const SYS_userfaultfd: ::c_long = 364; ++pub const SYS_membarrier: ::c_long = 365; ++pub const SYS_mlock2: ::c_long = 378; ++pub const SYS_copy_file_range: ::c_long = 379; ++pub const SYS_preadv2: ::c_long = 380; ++pub const SYS_pwritev2: ::c_long = 381; ++pub const SYS_kexec_file_load: ::c_long = 382; ++pub const SYS_statx: ::c_long = 383; ++pub const SYS_pkey_alloc: ::c_long = 384; ++pub const SYS_pkey_free: ::c_long = 385; ++pub const SYS_pkey_mprotect: ::c_long = 386; ++ ++#[doc(hidden)] ++pub const AF_MAX: ::c_int = 43; ++#[doc(hidden)] ++pub const PF_MAX: ::c_int = AF_MAX; +diff --git a/src/vendor/libc/src/unix/notbsd/linux/musl/b32/x86.rs b/src/vendor/libc/src/unix/notbsd/linux/musl/b32/x86.rs +index fa570248c72..9f704c7fac9 100644 +--- a/src/vendor/libc/src/unix/notbsd/linux/musl/b32/x86.rs ++++ b/src/vendor/libc/src/unix/notbsd/linux/musl/b32/x86.rs +@@ -52,6 +52,18 @@ s! { + pub ss_size: ::size_t + } + ++ pub struct ipc_perm { ++ pub __ipc_perm_key: ::key_t, ++ pub uid: ::uid_t, ++ pub gid: ::gid_t, ++ pub cuid: ::uid_t, ++ pub cgid: ::gid_t, ++ pub mode: ::mode_t, ++ pub __seq: ::c_int, ++ __unused1: ::c_long, ++ __unused2: ::c_long ++ } ++ + pub struct shmid_ds { + pub shm_perm: ::ipc_perm, + pub shm_segsz: ::size_t, +@@ -164,6 +176,9 @@ s! { + } + } + ++pub const SIGSTKSZ: ::size_t = 8192; ++pub const MINSIGSTKSZ: ::size_t = 2048; ++ + pub const O_DIRECT: ::c_int = 0x4000; + pub const O_DIRECTORY: ::c_int = 0x10000; + pub const O_NOFOLLOW: ::c_int = 0x20000; +@@ -178,6 +193,76 @@ pub const RLIMIT_NOFILE: ::c_int = 7; + pub const RLIMIT_AS: ::c_int = 9; + pub const RLIMIT_NPROC: ::c_int = 6; + pub const RLIMIT_MEMLOCK: ::c_int = 8; ++pub const RLIMIT_NLIMITS: ::c_int = 16; ++ ++pub const MCL_CURRENT: ::c_int = 0x0001; ++pub const MCL_FUTURE: ::c_int = 0x0002; ++pub const CBAUD: ::tcflag_t = 0o0010017; ++pub const TAB1: ::c_int = 0x00000800; ++pub const TAB2: ::c_int = 0x00001000; ++pub const TAB3: ::c_int = 0x00001800; ++pub const CR1: ::c_int = 0x00000200; ++pub const CR2: ::c_int = 0x00000400; ++pub const CR3: ::c_int = 0x00000600; ++pub const FF1: ::c_int = 0x00008000; ++pub const BS1: ::c_int = 0x00002000; ++pub const VT1: ::c_int = 0x00004000; ++pub const VWERASE: usize = 14; ++pub const VREPRINT: usize = 12; ++pub const VSUSP: usize = 10; ++pub const VSTART: usize = 8; ++pub const VSTOP: usize = 9; ++pub const VDISCARD: usize = 13; ++pub const VTIME: usize = 5; ++pub const IXON: ::tcflag_t = 0x00000400; ++pub const IXOFF: ::tcflag_t = 0x00001000; ++pub const ONLCR: ::tcflag_t = 0x4; ++pub const CSIZE: ::tcflag_t = 0x00000030; ++pub const CS6: ::tcflag_t = 0x00000010; ++pub const CS7: ::tcflag_t = 0x00000020; ++pub const CS8: ::tcflag_t = 0x00000030; ++pub const CSTOPB: ::tcflag_t = 0x00000040; ++pub const CREAD: ::tcflag_t = 0x00000080; ++pub const PARENB: ::tcflag_t = 0x00000100; ++pub const PARODD: ::tcflag_t = 0x00000200; ++pub const HUPCL: ::tcflag_t = 0x00000400; ++pub const CLOCAL: ::tcflag_t = 0x00000800; ++pub const ECHOKE: ::tcflag_t = 0x00000800; ++pub const ECHOE: ::tcflag_t = 0x00000010; ++pub const ECHOK: ::tcflag_t = 0x00000020; ++pub const ECHONL: ::tcflag_t = 0x00000040; ++pub const ECHOPRT: ::tcflag_t = 0x00000400; ++pub const ECHOCTL: ::tcflag_t = 0x00000200; ++pub const ISIG: ::tcflag_t = 0x00000001; ++pub const ICANON: ::tcflag_t = 0x00000002; ++pub const PENDIN: ::tcflag_t = 0x00004000; ++pub const NOFLSH: ::tcflag_t = 0x00000080; ++pub const CIBAUD: ::tcflag_t = 0o02003600000; ++pub const CBAUDEX: ::tcflag_t = 0o010000; ++pub const VSWTC: usize = 7; ++pub const OLCUC: ::tcflag_t = 0o000002; ++pub const NLDLY: ::tcflag_t = 0o000400; ++pub const CRDLY: ::tcflag_t = 0o003000; ++pub const TABDLY: ::tcflag_t = 0o014000; ++pub const BSDLY: ::tcflag_t = 0o020000; ++pub const FFDLY: ::tcflag_t = 0o100000; ++pub const VTDLY: ::tcflag_t = 0o040000; ++pub const XTABS: ::tcflag_t = 0o014000; ++pub const B57600: ::speed_t = 0o010001; ++pub const B115200: ::speed_t = 0o010002; ++pub const B230400: ::speed_t = 0o010003; ++pub const B460800: ::speed_t = 0o010004; ++pub const B500000: ::speed_t = 0o010005; ++pub const B576000: ::speed_t = 0o010006; ++pub const B921600: ::speed_t = 0o010007; ++pub const B1000000: ::speed_t = 0o010010; ++pub const B1152000: ::speed_t = 0o010011; ++pub const B1500000: ::speed_t = 0o010012; ++pub const B2000000: ::speed_t = 0o010013; ++pub const B2500000: ::speed_t = 0o010014; ++pub const B3000000: ::speed_t = 0o010015; ++pub const B3500000: ::speed_t = 0o010016; ++pub const B4000000: ::speed_t = 0o010017; + + pub const O_APPEND: ::c_int = 1024; + pub const O_CREAT: ::c_int = 64; +diff --git a/src/vendor/libc/src/unix/notbsd/linux/musl/mod.rs b/src/vendor/libc/src/unix/notbsd/linux/musl/mod.rs +index 0d92a4b9d14..10d61ebebef 100644 +--- a/src/vendor/libc/src/unix/notbsd/linux/musl/mod.rs ++++ b/src/vendor/libc/src/unix/notbsd/linux/musl/mod.rs +@@ -260,7 +260,8 @@ cfg_if! { + pub use self::b64::*; + } else if #[cfg(any(target_arch = "x86", + target_arch = "mips", +- target_arch = "arm"))] { ++ target_arch = "arm", ++ target_arch = "powerpc"))] { + mod b32; + pub use self::b32::*; + } else { } diff --git a/user/rust/0033-liblibc-checksums.patch b/user/rust/0035-libc-checksums.patch index 3a1f5f423..a8ec2c150 100644 --- a/user/rust/0033-liblibc-checksums.patch +++ b/user/rust/0035-libc-checksums.patch @@ -5,5 +5,5 @@ index 5b315f61..c28c8c5c 100644 @@ -1 +1 @@ -{"files":{".cargo-ok":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",".gitignore":"7150ee9391a955b2ef7e0762fc61c0c1aab167620ca36d88d78062d93b8334ba",".travis.yml":"9750910d5fdc61263fb3eae7f5f78e2920923f250150f8500c0c22a830790acd","Cargo.toml":"4629bf1256274045a39aedc78a7f6b48b5bf7fdf177cd69c4eb65909586ab0cf","Cargo.toml.orig":"423b6276994f73cf7fc57dafad118ff8b0e207eb55ebe57a0ee1a149bf36f544","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"fdf0f0c197e2999fce42457fb089f192a42d2fb1f743c9c8fcda1a44cb40e1fa","appveyor.yml":"216f7ac4561aa5810dc84ce5a9950897a8c0496e0615d0211d62348b1c8dc720","ci/README.md":"2e3d7ad13f8c3202e57d2af73aeeebde306221dce7c0907e462e25767a692d6b","ci/android-install-ndk.sh":"725db9025c5905849916bf7c910f98ff0e753484397c2a1f836d48a576d10890","ci/android-install-sdk.sh":"5c3fbe402ac611239ac7715a61f247d1c55fa012f33a5be0b0127dfc196965cf","ci/android-sysimage.sh":"901415631752827454c827e8c51906ba4260612e4021eda98eb7fff771c7d0e8","ci/docker/aarch64-linux-android/Dockerfile":"e17945fba1786dfe766006f50e79baf3f4151ca0c0c14ae96f91483bf345afd7","ci/docker/aarch64-unknown-linux-gnu/Dockerfile":"5f430271941e1eecdf9d1a5fb701dd5622e2c4b9da03140fd829bf216e55529d","ci/docker/aarch64-unknown-linux-musl/Dockerfile":"3e1cbf0fa728571b9be9769e5a6281c964fa5b26d586265117ccee017ca4022c","ci/docker/arm-linux-androideabi/Dockerfile":"4e0bdc13254f99bd0db195f91331c634050426e3e4a0fcc63ef25ab795fe2d46","ci/docker/arm-unknown-linux-gnueabihf/Dockerfile":"dbb025b53b27e406893184290836a50133ecae8295711d5e05b4e41fac9bd262","ci/docker/arm-unknown-linux-musleabihf/Dockerfile":"7cb6e0f8fb91c97f142a9c827687bbbc1a5e7643a3081160025d0365593a596c","ci/docker/asmjs-unknown-emscripten/Dockerfile":"0d9aea5119c2cd136cc2c0a578105d91210e45901ac49b17c5e45f458b1c7551","ci/docker/i686-linux-android/Dockerfile":"4e8377ec0bd9ad2df23bf2c5373200a12750dc9f28c4f10bc83a0150fe1623ee","ci/docker/i686-unknown-linux-gnu/Dockerfile":"f22ac412525ef15b33ab8ccd8193d97346faf421c17f6ddeffc25b651aba83b7","ci/docker/i686-unknown-linux-musl/Dockerfile":"4ac86fe9e159d454616396a9f3f07ce0f5d99cc4b49898b8d2486e6bdbfed9e9","ci/docker/mips-unknown-linux-gnu/Dockerfile":"6d2a9daa299003497c1d441d07b69f730ad75ee49f34520f959b5158e60072e0","ci/docker/mips-unknown-linux-musl/Dockerfile":"4773b2656a7dd6a3b106fcb737428436652edf3d1f48181de3f62c16bf5bd49d","ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile":"7c4d26232f1c1553a6612d9b0b3faac9887e139eaffa025f70d34113dcee812f","ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile":"edb4144c07ade1a8bd65272ec1d3672ad794e9e6b7d01197896e159a70175b58","ci/docker/mipsel-unknown-linux-musl/Dockerfile":"0ca9c12b5618c6d2df04ff820d56fb28e05b43e45eaa506480126b03c5072d48","ci/docker/powerpc-unknown-linux-gnu/Dockerfile":"4b247dcc399395815ec9153c1247cc03d764896c484eddcb196d0bf8650d6311","ci/docker/powerpc64-unknown-linux-gnu/Dockerfile":"e949717a8ba5e123940729ff47ce1c45989c8b8247c576f1488f698b534e0283","ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile":"018591017f499414a9f79477e1c39baa6a47f71fce6812fb1868fb0fcdfb8cea","ci/docker/s390x-unknown-linux-gnu/Dockerfile":"9860f478c5b2dc3bcf76d2cda7f71922a2a2ef54898cc2ed6ea9b9eff094a5c0","ci/docker/sparc64-unknown-linux-gnu/Dockerfile":"2312491343665d2ab36fd669f14766facbf3c7e9820ffb8f0d623830b676f8f0","ci/docker/wasm32-unknown-emscripten/Dockerfile":"bd072d6ae91a9160693e402dd77462d3c9dd0716711e719a62af330ae479eb4e","ci/docker/wasm32-unknown-emscripten/node-wrapper.sh":"0eef37c3c4fb16dbc083148b7e7af45f2ae60bd9a1b3a77e1d43da79efbd30c6","ci/docker/x86_64-linux-android/Dockerfile":"aeeaa540189ca712369c564c9a14cbace63217dadcfaf879a2cb40fbdeb08199","ci/docker/x86_64-rumprun-netbsd/Dockerfile":"e8f9287b267c6058eec42d1bca0007cb9a78a1d244dd8e11088368cb61fb17d6","ci/docker/x86_64-rumprun-netbsd/runtest.rs":"53302e9ed39293c1ec68ab56287593907d4aaf5bac9c1c2857b29f754a71d62b","ci/docker/x86_64-unknown-freebsd/Dockerfile":"ab1f14c65c29f3721c7c091bdec2e865fb1abf45fdcdc867201d087966e396c4","ci/docker/x86_64-unknown-linux-gnu/Dockerfile":"ab3fa45765802b8155996796fcad9fb82096360ac587e38e6faa3ec345268796","ci/docker/x86_64-unknown-linux-gnux32/Dockerfile":"f22ac412525ef15b33ab8ccd8193d97346faf421c17f6ddeffc25b651aba83b7","ci/docker/x86_64-unknown-linux-musl/Dockerfile":"e145784741473150473b1bef7cc3c2cf0c6339d4fc480113ac41b4247a9b38ec","ci/dox.sh":"d77171a9da467bb01fc702a28fc3b5099f82a485a627f3d5593a9830c3e1a77c","ci/emscripten-entry.sh":"c97bbec520b57af9b1ae264ca991560e99c3852c99b00a2f673c614d1ba17498","ci/emscripten.sh":"6f66c7b5c3d34a41afc59ceb0a8c3b0880cd6fd9a6344b874ae80bac0639ccb2","ci/ios/deploy_and_run_on_ios_simulator.rs":"3175066fd7f82390f6226d881e1a1dda9767ea2705656870e0d7774e2731800e","ci/landing-page-footer.html":"b70b3112c2147f5c967e7481061ef38bc2d79a28dd55a16fb916d9c9426da2c4","ci/landing-page-head.html":"ad69663fac7924f27d0209bc519d55838e86edfc4133713a6fd08caadac1b142","ci/linux-s390x.sh":"d6b732d7795b4ba131326aff893bca6228a7d2eb0e9402f135705413dbbe0dce","ci/linux-sparc64.sh":"c92966838b1ab7ad3b7a344833ee726aba6b647cf5952e56f0ad1ba420b13325","ci/run-docker.sh":"be83bc5a8b5ef913a7c9941ffca24734716028650c9a876123c4c160672c18de","ci/run-qemu.sh":"bb859421170871ef23a8940c5e150efec0c01b95e32d2ce2d37b79a45d9d346c","ci/run.sh":"25f8fd0a88d5673bb872dbb7aef8d44ebbf6c863e10352cd79de557ce3e2e252","ci/runtest-android.rs":"a07ddbdd276aedda7876c7e676774178a60d9aeab95df01275a4ee95f59e3044","ci/style.rs":"940c06a676cff1dfc1555b887e46867c6aacc473956cd6aaafaed71824facdb2","ci/test-runner-linux":"cb3713d9e4fa1d9a7c039dfd077af0939921c1f2bf969c9e680ee66e87dc30a4","src/cloudabi/aarch64.rs":"b8550bf1fd7344972aa4db29441486f39f31482d0327534981dbb75959c29114","src/cloudabi/arm.rs":"c197e2781c2839808bd6fcef219a29705b27b992d3ef920e9cf6ac96e2022bbf","src/cloudabi/mod.rs":"1c2dc787a1b3438970ccd04153c93538719b1a27445707913b90b6f0cdcdde77","src/cloudabi/x86.rs":"33eb97f272d2201f3838ae74d444583c7de8f67856852ca375293b20bbd05636","src/cloudabi/x86_64.rs":"400d85d4fe39e26cf2e6ece9ee31c75fe9e88c4bcf4d836ca9f765c05c9c5be3","src/dox.rs":"8f6037887281b828d8541ce8a549dacaed5d29c05fd9cf78b169838476b82741","src/fuchsia/aarch64.rs":"8366ac6f51e494aad9266ccab2b3a95c5ed7aa3a9f77ea672413283440919743","src/fuchsia/mod.rs":"56ee2333b856db94cc1f1f4350885ad2a4ed0e1b4e8792615aa0b257e2941192","src/fuchsia/powerpc64.rs":"390e8db54271a1d5f512d54a21b328091a792378bf9b42b49b6c1a72388da4ec","src/fuchsia/x86_64.rs":"b4a3eff94dcf1ffe41e6500468ca2cff0e97ddbcc75fe079b6ac7adb1e493f56","src/lib.rs":"e434d3def305ea28108b59841396ef8949333db9223aa11886ee05cd1c0ce8b0","src/macros.rs":"2e7048e266efdef4298254b7186a27736182c94adb0648aed0c8d735f66a5139","src/redox/mod.rs":"029a9af78211d86fe3108100c33f58d6e73ab09c826b641a9732325dc700d8e8","src/redox/net.rs":"0946ab864a2eeb20a365dc541c060f7a238c75356bb57de39956a486607f7ce1","src/unix/bsd/apple/b32.rs":"41699d2802327b0a4d4aa50cd20b1e366b442176cbedab27ca888ac0446c9156","src/unix/bsd/apple/b64.rs":"4fe7bf5de252dcd712dee0a7a8acfaa7c737c862eaa3ff669255d3f2076c5fa6","src/unix/bsd/apple/mod.rs":"3a423665ca29d73a4a29503f5f58277b7d19cb8df175c5f11666983880ef276f","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"1950bf56a7ecbfc8994e4b54dc94e752d91dccd8f0e2d1e4c2d3ad2fa8cb5e23","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"97132e2097411034271b8c927ecc94a208a361564680972a6c82998bd30a9826","src/unix/bsd/freebsdlike/freebsd/mod.rs":"e762bacf0b96295ae241717210323c7442d199d9863159ee73462954fc855e1d","src/unix/bsd/freebsdlike/freebsd/x86.rs":"54311d3ebf2bb091ab22361e377e6ef9224aec2ecfe459fbfcedde4932db9c58","src/unix/bsd/freebsdlike/freebsd/x86_64.rs":"97132e2097411034271b8c927ecc94a208a361564680972a6c82998bd30a9826","src/unix/bsd/freebsdlike/mod.rs":"d6096edda549bb2af16d083ee86561f5eb6bfa728d3cfac1938f0f84592bde5d","src/unix/bsd/mod.rs":"a1030452eed4ec52a39e9f39040e8fae4309143c7af145efadd9b425caa39672","src/unix/bsd/netbsdlike/mod.rs":"a685c1d23cb17758c3249b9c4ab45a50474e79270891235176b5f796f365380c","src/unix/bsd/netbsdlike/netbsd/mod.rs":"46a28912a4741e500f392131cc71273621de0234c4c28e29d8bf51c015ca7840","src/unix/bsd/netbsdlike/netbsd/other/b32/mod.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/netbsd/other/b64/mod.rs":"927eeccaf3269d299db4c2a55f8010807bf43dfa894aea6a783215f5d3560baa","src/unix/bsd/netbsdlike/netbsd/other/mod.rs":"4d9f7091af8e166943ac6f42ce85558909e5b6e61325039bff7adfbcf4b90212","src/unix/bsd/netbsdlike/openbsdlike/bitrig/mod.rs":"92459d80b8e5b570c0efe35a1d244d38f23072cd28b6581dfcb313dc9bfc3d51","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86_64.rs":"927eeccaf3269d299db4c2a55f8010807bf43dfa894aea6a783215f5d3560baa","src/unix/bsd/netbsdlike/openbsdlike/mod.rs":"cec53623e2269aea4437554a405452e7d3b09648b7cf6872d257d36ba979e2ec","src/unix/bsd/netbsdlike/openbsdlike/openbsd/aarch64.rs":"820092e397c7ec259cd2de8f2444083a8e57071c02d73d678701dfa7807726e9","src/unix/bsd/netbsdlike/openbsdlike/openbsd/mod.rs":"44035aad2907dffb6b18687ac7ddc76b5268af92b4e4f4c87759a00cae4de900","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86.rs":"44b7ea81cf363777b29935da175e702cbf45ed78f7498ae57faf44aa32335085","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86_64.rs":"7c959cdb3415f68a0f948117b9aa87a17463e57ab97cc3235f2567454b706653","src/unix/haiku/b32.rs":"69ae47fc52c6880e85416b4744500d5655c9ec6131cb737f3b649fceaadce15a","src/unix/haiku/b64.rs":"73e64db09275a8da8d50a13cce2cfa2b136036ddf3a930d2939f337fc995900b","src/unix/haiku/mod.rs":"ddd834c5c4e5ec7771d0f0071517c2d00095d5595f87a52245380ac762f7f011","src/unix/mod.rs":"47d253eef3bc46dacb0df2951b2136e41c4e758ffd34473b144f6108a90749f9","src/unix/newlib/aarch64/mod.rs":"c408a990f22fb4292a824f38367e9b517e6e6f8623328397ee631cc88b3d1f7d","src/unix/newlib/arm/mod.rs":"2b6dba2e697ab9b4f4bc4dd5f28057249e9b596d1cb395a9322ec87605c4a5c4","src/unix/newlib/mod.rs":"7422845a44de13a2faf15d105670525ed090c6e200c9723178ed735810bbd689","src/unix/notbsd/android/b32/arm.rs":"3625a32c7e58cfe683a53486fbe3d42d4e28f00bea31e19cb46ed2bb0b6a140b","src/unix/notbsd/android/b32/mod.rs":"2fbe398c1fb5251dda6213741a193e50aae4622807cb255d1dd2e82b536f0c65","src/unix/notbsd/android/b32/x86.rs":"ae2b7f1d6278caddc007749bb1d09ca33f7593478a0fd7fe98b457dae86c7814","src/unix/notbsd/android/b64/aarch64.rs":"63d65629d79371814910f691672ef593d20244ee09be26f1ebe07ee6212d0163","src/unix/notbsd/android/b64/mod.rs":"90d4f6b063fd4de42fd302cbc9d9902fd99ac1d71dc48cb8bc6ad7b4c902e481","src/unix/notbsd/android/b64/x86_64.rs":"5547aef8dcbaa5a932559f34606fd8d89f6c9c15173d2b1412c12d39b3c1045f","src/unix/notbsd/android/mod.rs":"c83157cf4a74c653b877c4d42b565d4a7d31e46e32015f19fc91447df2489a58","src/unix/notbsd/emscripten.rs":"5beb9bc98b6b317e85f2935db2aad9ef9cb2ab2e881917064fa7adf944568dae","src/unix/notbsd/linux/mips/mips32.rs":"df3268b082962844c94733c58782ecd9386ffe1f5ed8e05a703a6fa1e80b8f7f","src/unix/notbsd/linux/mips/mips64.rs":"88ad72fa125b9a2c0bd98ef03a7f5ceff78a39b0628d0d0f997ac9b6b82fe16b","src/unix/notbsd/linux/mips/mod.rs":"32c3e7cf430575544bbe4a670cbbf2b4dbe1f28b4895feb6f43fa33d6da25e1d","src/unix/notbsd/linux/mod.rs":"d37bd8bd956b7ab3484b2ad3ee7c1848574bbd37027c76ac06f4d7ca2906cf01","src/unix/notbsd/linux/musl/b32/arm.rs":"d2998b13648696304bb34f0793715d821178baf8e88a45b532764a20b5294232","src/unix/notbsd/linux/musl/b32/mips.rs":"340be794362a4532d709ef23542b10762f710f7bfd0c4fafa5166a3fb9a15b4f","src/unix/notbsd/linux/musl/b32/mod.rs":"3cc7979546258a47df6b0fcd7ad64571826623671857633a7acafe87e05e56a1","src/unix/notbsd/linux/musl/b32/x86.rs":"df114102dcf35bc32f891d4a9e09ce02fbe4c096a196c6b98b10ff87b29dbe4d","src/unix/notbsd/linux/musl/b64/aarch64.rs":"12c590fde2a1450c08934234c4f5bcd94ee7b58ca21f8e93bc930148c15fb0b0","src/unix/notbsd/linux/musl/b64/mod.rs":"b1991ef46a00d2db7ce3e36f6596685c1d508786c4dd4e62cbbf65ac3c256cc0","src/unix/notbsd/linux/musl/b64/powerpc64.rs":"790dca3cc6c0a4166992d2c1665e1b1e320fbad5c0b1ba3c454321a6b2d7a103","src/unix/notbsd/linux/musl/b64/x86_64.rs":"bf8fc10a09bf700084db0381c484ddec3add79aa1726954cb14d21802ff7d199","src/unix/notbsd/linux/musl/mod.rs":"a9323bffa1a8ed40a67a3b2cbb1dec6ebb0d565d8308e43e8623101ac739cd60","src/unix/notbsd/linux/other/b32/arm.rs":"d9892f7350b2978335f734f1cd2d7fed60f0f2e66aa05bee3f69549c031f8b14","src/unix/notbsd/linux/other/b32/mod.rs":"7d77f1dd8327b1249769496351cf287d0fff3852f87bde2f58afc67e6dc54a4f","src/unix/notbsd/linux/other/b32/powerpc.rs":"253fcd2f9978525285be1903cc08f3fec2dc3b12d1660a33e2995b4f6b810d1c","src/unix/notbsd/linux/other/b32/x86.rs":"49376e3ed0f3ff95c230ac20751911fe3c608dfe15c7c118b069fd7a954d8db9","src/unix/notbsd/linux/other/b64/aarch64.rs":"ed6ea00e3281ad2f4bab82821f20a2ff5b48401a65618bd6a544bc24ea4e3e39","src/unix/notbsd/linux/other/b64/mod.rs":"63e1a3fdf5f4d1b9820934ab344c91aed5e458e7e05908535d2e942d51a08bf8","src/unix/notbsd/linux/other/b64/not_x32.rs":"9b5e2321c0114c2740dcb86d9f1f3584c07ded921a157164ae8bb0712d397818","src/unix/notbsd/linux/other/b64/powerpc64.rs":"ca25b5f94a9147a984fcb70cf48a261b30df14e2e8194ac174363b6280e82a29","src/unix/notbsd/linux/other/b64/sparc64.rs":"a84580fe226654e33f8ddd0f1f7f2069c29334fc826a74f81f7892b87cfb9083","src/unix/notbsd/linux/other/b64/x32.rs":"ae7698b217106a6c00465f9d10df24d45ad9b7dfc280b24168f53f42198b7b92","src/unix/notbsd/linux/other/b64/x86_64.rs":"afba464e903d350325a1ca3d9d5af1659efc0ede83a43dbac4dbd60c522e2ad1","src/unix/notbsd/linux/other/mod.rs":"7065a7e83834f38ee2f4e03f28824eb94111c13f10e7a8b76ee7025686a84e7f","src/unix/notbsd/linux/s390x.rs":"259c5533ba7f0b10bb23d01dc0e53301afd236a7bb4339dcef9472c579503729","src/unix/notbsd/mod.rs":"eff4c19451d4d4579d5c483a941a7b259b7b73c3ab13c31fc54a7961e8292b9a","src/unix/solaris/mod.rs":"9c6af198a2f80da827054784faf70bc404673d9568fb45664b4f73c46245fdbd","src/unix/uclibc/mips/mips32.rs":"4dcb19abae37f02f08660bdad500c3230436322b581eba37287c73a742d6fcdc","src/unix/uclibc/mips/mips64.rs":"e67eec1636a998b047d89a4cda1c99cb6bc3071db017762675179a68201c4438","src/unix/uclibc/mips/mod.rs":"3f86061d05a8da7d923310550b7d40c6223f0c907d77edc86b7a78da1d647f76","src/unix/uclibc/mod.rs":"3605127517734b5f5f20be1d37e52184a77ecc6fb6099b88aa744e0aca1b802a","src/unix/uclibc/x86_64/l4re.rs":"68fd3a833fd1f7caf784a084224f384bdbdfb8b5a14ef94c4f5155409afb3439","src/unix/uclibc/x86_64/mod.rs":"69ec3ca821a483cc076e84a794bbecb3e5536af1c1d5b807eaf1db9af11f771d","src/unix/uclibc/x86_64/other.rs":"f03b47842896f2f3ae6f8ebdcbcf0276454f880349d9cf00e3d304f8136893c5","src/windows.rs":"e41357d610608bad81abf285306ad8b127b6f02d5132f63c4942861980b47d59"},"package":"b685088df2b950fccadf07a7187c8ef846a959c142338a48f9dc0b94517eb5f1"} \ No newline at end of file -+{"files":{".cargo-ok":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",".gitignore":"7150ee9391a955b2ef7e0762fc61c0c1aab167620ca36d88d78062d93b8334ba",".travis.yml":"9750910d5fdc61263fb3eae7f5f78e2920923f250150f8500c0c22a830790acd","Cargo.toml":"4629bf1256274045a39aedc78a7f6b48b5bf7fdf177cd69c4eb65909586ab0cf","Cargo.toml.orig":"423b6276994f73cf7fc57dafad118ff8b0e207eb55ebe57a0ee1a149bf36f544","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"fdf0f0c197e2999fce42457fb089f192a42d2fb1f743c9c8fcda1a44cb40e1fa","appveyor.yml":"216f7ac4561aa5810dc84ce5a9950897a8c0496e0615d0211d62348b1c8dc720","ci/README.md":"2e3d7ad13f8c3202e57d2af73aeeebde306221dce7c0907e462e25767a692d6b","ci/android-install-ndk.sh":"725db9025c5905849916bf7c910f98ff0e753484397c2a1f836d48a576d10890","ci/android-install-sdk.sh":"5c3fbe402ac611239ac7715a61f247d1c55fa012f33a5be0b0127dfc196965cf","ci/android-sysimage.sh":"901415631752827454c827e8c51906ba4260612e4021eda98eb7fff771c7d0e8","ci/docker/aarch64-linux-android/Dockerfile":"e17945fba1786dfe766006f50e79baf3f4151ca0c0c14ae96f91483bf345afd7","ci/docker/aarch64-unknown-linux-gnu/Dockerfile":"5f430271941e1eecdf9d1a5fb701dd5622e2c4b9da03140fd829bf216e55529d","ci/docker/aarch64-unknown-linux-musl/Dockerfile":"3e1cbf0fa728571b9be9769e5a6281c964fa5b26d586265117ccee017ca4022c","ci/docker/arm-linux-androideabi/Dockerfile":"4e0bdc13254f99bd0db195f91331c634050426e3e4a0fcc63ef25ab795fe2d46","ci/docker/arm-unknown-linux-gnueabihf/Dockerfile":"dbb025b53b27e406893184290836a50133ecae8295711d5e05b4e41fac9bd262","ci/docker/arm-unknown-linux-musleabihf/Dockerfile":"7cb6e0f8fb91c97f142a9c827687bbbc1a5e7643a3081160025d0365593a596c","ci/docker/asmjs-unknown-emscripten/Dockerfile":"0d9aea5119c2cd136cc2c0a578105d91210e45901ac49b17c5e45f458b1c7551","ci/docker/i686-linux-android/Dockerfile":"4e8377ec0bd9ad2df23bf2c5373200a12750dc9f28c4f10bc83a0150fe1623ee","ci/docker/i686-unknown-linux-gnu/Dockerfile":"f22ac412525ef15b33ab8ccd8193d97346faf421c17f6ddeffc25b651aba83b7","ci/docker/i686-unknown-linux-musl/Dockerfile":"4ac86fe9e159d454616396a9f3f07ce0f5d99cc4b49898b8d2486e6bdbfed9e9","ci/docker/mips-unknown-linux-gnu/Dockerfile":"6d2a9daa299003497c1d441d07b69f730ad75ee49f34520f959b5158e60072e0","ci/docker/mips-unknown-linux-musl/Dockerfile":"4773b2656a7dd6a3b106fcb737428436652edf3d1f48181de3f62c16bf5bd49d","ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile":"7c4d26232f1c1553a6612d9b0b3faac9887e139eaffa025f70d34113dcee812f","ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile":"edb4144c07ade1a8bd65272ec1d3672ad794e9e6b7d01197896e159a70175b58","ci/docker/mipsel-unknown-linux-musl/Dockerfile":"0ca9c12b5618c6d2df04ff820d56fb28e05b43e45eaa506480126b03c5072d48","ci/docker/powerpc-unknown-linux-gnu/Dockerfile":"4b247dcc399395815ec9153c1247cc03d764896c484eddcb196d0bf8650d6311","ci/docker/powerpc64-unknown-linux-gnu/Dockerfile":"e949717a8ba5e123940729ff47ce1c45989c8b8247c576f1488f698b534e0283","ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile":"018591017f499414a9f79477e1c39baa6a47f71fce6812fb1868fb0fcdfb8cea","ci/docker/s390x-unknown-linux-gnu/Dockerfile":"9860f478c5b2dc3bcf76d2cda7f71922a2a2ef54898cc2ed6ea9b9eff094a5c0","ci/docker/sparc64-unknown-linux-gnu/Dockerfile":"2312491343665d2ab36fd669f14766facbf3c7e9820ffb8f0d623830b676f8f0","ci/docker/wasm32-unknown-emscripten/Dockerfile":"bd072d6ae91a9160693e402dd77462d3c9dd0716711e719a62af330ae479eb4e","ci/docker/wasm32-unknown-emscripten/node-wrapper.sh":"0eef37c3c4fb16dbc083148b7e7af45f2ae60bd9a1b3a77e1d43da79efbd30c6","ci/docker/x86_64-linux-android/Dockerfile":"aeeaa540189ca712369c564c9a14cbace63217dadcfaf879a2cb40fbdeb08199","ci/docker/x86_64-rumprun-netbsd/Dockerfile":"e8f9287b267c6058eec42d1bca0007cb9a78a1d244dd8e11088368cb61fb17d6","ci/docker/x86_64-rumprun-netbsd/runtest.rs":"53302e9ed39293c1ec68ab56287593907d4aaf5bac9c1c2857b29f754a71d62b","ci/docker/x86_64-unknown-freebsd/Dockerfile":"ab1f14c65c29f3721c7c091bdec2e865fb1abf45fdcdc867201d087966e396c4","ci/docker/x86_64-unknown-linux-gnu/Dockerfile":"ab3fa45765802b8155996796fcad9fb82096360ac587e38e6faa3ec345268796","ci/docker/x86_64-unknown-linux-gnux32/Dockerfile":"f22ac412525ef15b33ab8ccd8193d97346faf421c17f6ddeffc25b651aba83b7","ci/docker/x86_64-unknown-linux-musl/Dockerfile":"e145784741473150473b1bef7cc3c2cf0c6339d4fc480113ac41b4247a9b38ec","ci/dox.sh":"d77171a9da467bb01fc702a28fc3b5099f82a485a627f3d5593a9830c3e1a77c","ci/emscripten-entry.sh":"c97bbec520b57af9b1ae264ca991560e99c3852c99b00a2f673c614d1ba17498","ci/emscripten.sh":"6f66c7b5c3d34a41afc59ceb0a8c3b0880cd6fd9a6344b874ae80bac0639ccb2","ci/ios/deploy_and_run_on_ios_simulator.rs":"3175066fd7f82390f6226d881e1a1dda9767ea2705656870e0d7774e2731800e","ci/landing-page-footer.html":"b70b3112c2147f5c967e7481061ef38bc2d79a28dd55a16fb916d9c9426da2c4","ci/landing-page-head.html":"ad69663fac7924f27d0209bc519d55838e86edfc4133713a6fd08caadac1b142","ci/linux-s390x.sh":"d6b732d7795b4ba131326aff893bca6228a7d2eb0e9402f135705413dbbe0dce","ci/linux-sparc64.sh":"c92966838b1ab7ad3b7a344833ee726aba6b647cf5952e56f0ad1ba420b13325","ci/run-docker.sh":"be83bc5a8b5ef913a7c9941ffca24734716028650c9a876123c4c160672c18de","ci/run-qemu.sh":"bb859421170871ef23a8940c5e150efec0c01b95e32d2ce2d37b79a45d9d346c","ci/run.sh":"25f8fd0a88d5673bb872dbb7aef8d44ebbf6c863e10352cd79de557ce3e2e252","ci/runtest-android.rs":"a07ddbdd276aedda7876c7e676774178a60d9aeab95df01275a4ee95f59e3044","ci/style.rs":"940c06a676cff1dfc1555b887e46867c6aacc473956cd6aaafaed71824facdb2","ci/test-runner-linux":"cb3713d9e4fa1d9a7c039dfd077af0939921c1f2bf969c9e680ee66e87dc30a4","src/cloudabi/aarch64.rs":"b8550bf1fd7344972aa4db29441486f39f31482d0327534981dbb75959c29114","src/cloudabi/arm.rs":"c197e2781c2839808bd6fcef219a29705b27b992d3ef920e9cf6ac96e2022bbf","src/cloudabi/mod.rs":"1c2dc787a1b3438970ccd04153c93538719b1a27445707913b90b6f0cdcdde77","src/cloudabi/x86.rs":"33eb97f272d2201f3838ae74d444583c7de8f67856852ca375293b20bbd05636","src/cloudabi/x86_64.rs":"400d85d4fe39e26cf2e6ece9ee31c75fe9e88c4bcf4d836ca9f765c05c9c5be3","src/dox.rs":"8f6037887281b828d8541ce8a549dacaed5d29c05fd9cf78b169838476b82741","src/fuchsia/aarch64.rs":"8366ac6f51e494aad9266ccab2b3a95c5ed7aa3a9f77ea672413283440919743","src/fuchsia/mod.rs":"56ee2333b856db94cc1f1f4350885ad2a4ed0e1b4e8792615aa0b257e2941192","src/fuchsia/powerpc64.rs":"390e8db54271a1d5f512d54a21b328091a792378bf9b42b49b6c1a72388da4ec","src/fuchsia/x86_64.rs":"b4a3eff94dcf1ffe41e6500468ca2cff0e97ddbcc75fe079b6ac7adb1e493f56","src/lib.rs":"e434d3def305ea28108b59841396ef8949333db9223aa11886ee05cd1c0ce8b0","src/macros.rs":"2e7048e266efdef4298254b7186a27736182c94adb0648aed0c8d735f66a5139","src/redox/mod.rs":"029a9af78211d86fe3108100c33f58d6e73ab09c826b641a9732325dc700d8e8","src/redox/net.rs":"0946ab864a2eeb20a365dc541c060f7a238c75356bb57de39956a486607f7ce1","src/unix/bsd/apple/b32.rs":"41699d2802327b0a4d4aa50cd20b1e366b442176cbedab27ca888ac0446c9156","src/unix/bsd/apple/b64.rs":"4fe7bf5de252dcd712dee0a7a8acfaa7c737c862eaa3ff669255d3f2076c5fa6","src/unix/bsd/apple/mod.rs":"3a423665ca29d73a4a29503f5f58277b7d19cb8df175c5f11666983880ef276f","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"1950bf56a7ecbfc8994e4b54dc94e752d91dccd8f0e2d1e4c2d3ad2fa8cb5e23","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"97132e2097411034271b8c927ecc94a208a361564680972a6c82998bd30a9826","src/unix/bsd/freebsdlike/freebsd/mod.rs":"e762bacf0b96295ae241717210323c7442d199d9863159ee73462954fc855e1d","src/unix/bsd/freebsdlike/freebsd/x86.rs":"54311d3ebf2bb091ab22361e377e6ef9224aec2ecfe459fbfcedde4932db9c58","src/unix/bsd/freebsdlike/freebsd/x86_64.rs":"97132e2097411034271b8c927ecc94a208a361564680972a6c82998bd30a9826","src/unix/bsd/freebsdlike/mod.rs":"d6096edda549bb2af16d083ee86561f5eb6bfa728d3cfac1938f0f84592bde5d","src/unix/bsd/mod.rs":"a1030452eed4ec52a39e9f39040e8fae4309143c7af145efadd9b425caa39672","src/unix/bsd/netbsdlike/mod.rs":"a685c1d23cb17758c3249b9c4ab45a50474e79270891235176b5f796f365380c","src/unix/bsd/netbsdlike/netbsd/mod.rs":"46a28912a4741e500f392131cc71273621de0234c4c28e29d8bf51c015ca7840","src/unix/bsd/netbsdlike/netbsd/other/b32/mod.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/netbsd/other/b64/mod.rs":"927eeccaf3269d299db4c2a55f8010807bf43dfa894aea6a783215f5d3560baa","src/unix/bsd/netbsdlike/netbsd/other/mod.rs":"4d9f7091af8e166943ac6f42ce85558909e5b6e61325039bff7adfbcf4b90212","src/unix/bsd/netbsdlike/openbsdlike/bitrig/mod.rs":"92459d80b8e5b570c0efe35a1d244d38f23072cd28b6581dfcb313dc9bfc3d51","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86_64.rs":"927eeccaf3269d299db4c2a55f8010807bf43dfa894aea6a783215f5d3560baa","src/unix/bsd/netbsdlike/openbsdlike/mod.rs":"cec53623e2269aea4437554a405452e7d3b09648b7cf6872d257d36ba979e2ec","src/unix/bsd/netbsdlike/openbsdlike/openbsd/aarch64.rs":"820092e397c7ec259cd2de8f2444083a8e57071c02d73d678701dfa7807726e9","src/unix/bsd/netbsdlike/openbsdlike/openbsd/mod.rs":"44035aad2907dffb6b18687ac7ddc76b5268af92b4e4f4c87759a00cae4de900","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86.rs":"44b7ea81cf363777b29935da175e702cbf45ed78f7498ae57faf44aa32335085","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86_64.rs":"7c959cdb3415f68a0f948117b9aa87a17463e57ab97cc3235f2567454b706653","src/unix/haiku/b32.rs":"69ae47fc52c6880e85416b4744500d5655c9ec6131cb737f3b649fceaadce15a","src/unix/haiku/b64.rs":"73e64db09275a8da8d50a13cce2cfa2b136036ddf3a930d2939f337fc995900b","src/unix/haiku/mod.rs":"ddd834c5c4e5ec7771d0f0071517c2d00095d5595f87a52245380ac762f7f011","src/unix/mod.rs":"47d253eef3bc46dacb0df2951b2136e41c4e758ffd34473b144f6108a90749f9","src/unix/newlib/aarch64/mod.rs":"c408a990f22fb4292a824f38367e9b517e6e6f8623328397ee631cc88b3d1f7d","src/unix/newlib/arm/mod.rs":"2b6dba2e697ab9b4f4bc4dd5f28057249e9b596d1cb395a9322ec87605c4a5c4","src/unix/newlib/mod.rs":"7422845a44de13a2faf15d105670525ed090c6e200c9723178ed735810bbd689","src/unix/notbsd/android/b32/arm.rs":"3625a32c7e58cfe683a53486fbe3d42d4e28f00bea31e19cb46ed2bb0b6a140b","src/unix/notbsd/android/b32/mod.rs":"2fbe398c1fb5251dda6213741a193e50aae4622807cb255d1dd2e82b536f0c65","src/unix/notbsd/android/b32/x86.rs":"ae2b7f1d6278caddc007749bb1d09ca33f7593478a0fd7fe98b457dae86c7814","src/unix/notbsd/android/b64/aarch64.rs":"63d65629d79371814910f691672ef593d20244ee09be26f1ebe07ee6212d0163","src/unix/notbsd/android/b64/mod.rs":"90d4f6b063fd4de42fd302cbc9d9902fd99ac1d71dc48cb8bc6ad7b4c902e481","src/unix/notbsd/android/b64/x86_64.rs":"5547aef8dcbaa5a932559f34606fd8d89f6c9c15173d2b1412c12d39b3c1045f","src/unix/notbsd/android/mod.rs":"c83157cf4a74c653b877c4d42b565d4a7d31e46e32015f19fc91447df2489a58","src/unix/notbsd/emscripten.rs":"5beb9bc98b6b317e85f2935db2aad9ef9cb2ab2e881917064fa7adf944568dae","src/unix/notbsd/linux/mips/mips32.rs":"df3268b082962844c94733c58782ecd9386ffe1f5ed8e05a703a6fa1e80b8f7f","src/unix/notbsd/linux/mips/mips64.rs":"88ad72fa125b9a2c0bd98ef03a7f5ceff78a39b0628d0d0f997ac9b6b82fe16b","src/unix/notbsd/linux/mips/mod.rs":"32c3e7cf430575544bbe4a670cbbf2b4dbe1f28b4895feb6f43fa33d6da25e1d","src/unix/notbsd/linux/mod.rs":"d37bd8bd956b7ab3484b2ad3ee7c1848574bbd37027c76ac06f4d7ca2906cf01","src/unix/notbsd/linux/musl/b32/arm.rs":"d2998b13648696304bb34f0793715d821178baf8e88a45b532764a20b5294232","src/unix/notbsd/linux/musl/b32/mips.rs":"340be794362a4532d709ef23542b10762f710f7bfd0c4fafa5166a3fb9a15b4f","src/unix/notbsd/linux/musl/b32/mod.rs":"026476800c0f02be1221b9623632ceb8c4f3c423c5a9024cbe41f5647844cbf8","src/unix/notbsd/linux/musl/b32/x86.rs":"df114102dcf35bc32f891d4a9e09ce02fbe4c096a196c6b98b10ff87b29dbe4d","src/unix/notbsd/linux/musl/b64/aarch64.rs":"4d79d86d11fbb8cb7a74084e410a1140e3c89dfc1842cdfb213f3a0ca93046df","src/unix/notbsd/linux/musl/b64/mod.rs":"caac00326693b372d6805e4dda239475e7fef36368881f372c006264844fda0d","src/unix/notbsd/linux/musl/b64/powerpc64.rs":"24514e41be4b5f5e0ffbe8a25a99dae8989489b607db59e8bfa345f8e65c9963","src/unix/notbsd/linux/musl/b64/x86_64.rs":"25340999290a63d564ec149532c905f59c312ec369f8806d6b15df66fa1b8857","src/unix/notbsd/linux/musl/mod.rs":"f89154d5225ad8c93d1890d0bbf2855af2ec0e93c2c1b9cbf02f35561c2b7c16","src/unix/notbsd/linux/other/b32/arm.rs":"d9892f7350b2978335f734f1cd2d7fed60f0f2e66aa05bee3f69549c031f8b14","src/unix/notbsd/linux/other/b32/mod.rs":"7d77f1dd8327b1249769496351cf287d0fff3852f87bde2f58afc67e6dc54a4f","src/unix/notbsd/linux/other/b32/powerpc.rs":"253fcd2f9978525285be1903cc08f3fec2dc3b12d1660a33e2995b4f6b810d1c","src/unix/notbsd/linux/other/b32/x86.rs":"49376e3ed0f3ff95c230ac20751911fe3c608dfe15c7c118b069fd7a954d8db9","src/unix/notbsd/linux/other/b64/aarch64.rs":"ed6ea00e3281ad2f4bab82821f20a2ff5b48401a65618bd6a544bc24ea4e3e39","src/unix/notbsd/linux/other/b64/mod.rs":"63e1a3fdf5f4d1b9820934ab344c91aed5e458e7e05908535d2e942d51a08bf8","src/unix/notbsd/linux/other/b64/not_x32.rs":"9b5e2321c0114c2740dcb86d9f1f3584c07ded921a157164ae8bb0712d397818","src/unix/notbsd/linux/other/b64/powerpc64.rs":"ca25b5f94a9147a984fcb70cf48a261b30df14e2e8194ac174363b6280e82a29","src/unix/notbsd/linux/other/b64/sparc64.rs":"a84580fe226654e33f8ddd0f1f7f2069c29334fc826a74f81f7892b87cfb9083","src/unix/notbsd/linux/other/b64/x32.rs":"ae7698b217106a6c00465f9d10df24d45ad9b7dfc280b24168f53f42198b7b92","src/unix/notbsd/linux/other/b64/x86_64.rs":"afba464e903d350325a1ca3d9d5af1659efc0ede83a43dbac4dbd60c522e2ad1","src/unix/notbsd/linux/other/mod.rs":"7065a7e83834f38ee2f4e03f28824eb94111c13f10e7a8b76ee7025686a84e7f","src/unix/notbsd/linux/s390x.rs":"259c5533ba7f0b10bb23d01dc0e53301afd236a7bb4339dcef9472c579503729","src/unix/notbsd/mod.rs":"eff4c19451d4d4579d5c483a941a7b259b7b73c3ab13c31fc54a7961e8292b9a","src/unix/solaris/mod.rs":"9c6af198a2f80da827054784faf70bc404673d9568fb45664b4f73c46245fdbd","src/unix/uclibc/mips/mips32.rs":"4dcb19abae37f02f08660bdad500c3230436322b581eba37287c73a742d6fcdc","src/unix/uclibc/mips/mips64.rs":"e67eec1636a998b047d89a4cda1c99cb6bc3071db017762675179a68201c4438","src/unix/uclibc/mips/mod.rs":"3f86061d05a8da7d923310550b7d40c6223f0c907d77edc86b7a78da1d647f76","src/unix/uclibc/mod.rs":"3605127517734b5f5f20be1d37e52184a77ecc6fb6099b88aa744e0aca1b802a","src/unix/uclibc/x86_64/l4re.rs":"68fd3a833fd1f7caf784a084224f384bdbdfb8b5a14ef94c4f5155409afb3439","src/unix/uclibc/x86_64/mod.rs":"69ec3ca821a483cc076e84a794bbecb3e5536af1c1d5b807eaf1db9af11f771d","src/unix/uclibc/x86_64/other.rs":"f03b47842896f2f3ae6f8ebdcbcf0276454f880349d9cf00e3d304f8136893c5","src/windows.rs":"e41357d610608bad81abf285306ad8b127b6f02d5132f63c4942861980b47d59"},"package":"b685088df2b950fccadf07a7187c8ef846a959c142338a48f9dc0b94517eb5f1"} ++{"files":{".cargo-ok":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",".gitignore":"7150ee9391a955b2ef7e0762fc61c0c1aab167620ca36d88d78062d93b8334ba",".travis.yml":"9750910d5fdc61263fb3eae7f5f78e2920923f250150f8500c0c22a830790acd","Cargo.toml":"4629bf1256274045a39aedc78a7f6b48b5bf7fdf177cd69c4eb65909586ab0cf","Cargo.toml.orig":"423b6276994f73cf7fc57dafad118ff8b0e207eb55ebe57a0ee1a149bf36f544","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"fdf0f0c197e2999fce42457fb089f192a42d2fb1f743c9c8fcda1a44cb40e1fa","appveyor.yml":"216f7ac4561aa5810dc84ce5a9950897a8c0496e0615d0211d62348b1c8dc720","ci/README.md":"2e3d7ad13f8c3202e57d2af73aeeebde306221dce7c0907e462e25767a692d6b","ci/android-install-ndk.sh":"725db9025c5905849916bf7c910f98ff0e753484397c2a1f836d48a576d10890","ci/android-install-sdk.sh":"5c3fbe402ac611239ac7715a61f247d1c55fa012f33a5be0b0127dfc196965cf","ci/android-sysimage.sh":"901415631752827454c827e8c51906ba4260612e4021eda98eb7fff771c7d0e8","ci/docker/aarch64-linux-android/Dockerfile":"e17945fba1786dfe766006f50e79baf3f4151ca0c0c14ae96f91483bf345afd7","ci/docker/aarch64-unknown-linux-gnu/Dockerfile":"5f430271941e1eecdf9d1a5fb701dd5622e2c4b9da03140fd829bf216e55529d","ci/docker/aarch64-unknown-linux-musl/Dockerfile":"3e1cbf0fa728571b9be9769e5a6281c964fa5b26d586265117ccee017ca4022c","ci/docker/arm-linux-androideabi/Dockerfile":"4e0bdc13254f99bd0db195f91331c634050426e3e4a0fcc63ef25ab795fe2d46","ci/docker/arm-unknown-linux-gnueabihf/Dockerfile":"dbb025b53b27e406893184290836a50133ecae8295711d5e05b4e41fac9bd262","ci/docker/arm-unknown-linux-musleabihf/Dockerfile":"7cb6e0f8fb91c97f142a9c827687bbbc1a5e7643a3081160025d0365593a596c","ci/docker/asmjs-unknown-emscripten/Dockerfile":"0d9aea5119c2cd136cc2c0a578105d91210e45901ac49b17c5e45f458b1c7551","ci/docker/i686-linux-android/Dockerfile":"4e8377ec0bd9ad2df23bf2c5373200a12750dc9f28c4f10bc83a0150fe1623ee","ci/docker/i686-unknown-linux-gnu/Dockerfile":"f22ac412525ef15b33ab8ccd8193d97346faf421c17f6ddeffc25b651aba83b7","ci/docker/i686-unknown-linux-musl/Dockerfile":"4ac86fe9e159d454616396a9f3f07ce0f5d99cc4b49898b8d2486e6bdbfed9e9","ci/docker/mips-unknown-linux-gnu/Dockerfile":"6d2a9daa299003497c1d441d07b69f730ad75ee49f34520f959b5158e60072e0","ci/docker/mips-unknown-linux-musl/Dockerfile":"4773b2656a7dd6a3b106fcb737428436652edf3d1f48181de3f62c16bf5bd49d","ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile":"7c4d26232f1c1553a6612d9b0b3faac9887e139eaffa025f70d34113dcee812f","ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile":"edb4144c07ade1a8bd65272ec1d3672ad794e9e6b7d01197896e159a70175b58","ci/docker/mipsel-unknown-linux-musl/Dockerfile":"0ca9c12b5618c6d2df04ff820d56fb28e05b43e45eaa506480126b03c5072d48","ci/docker/powerpc-unknown-linux-gnu/Dockerfile":"4b247dcc399395815ec9153c1247cc03d764896c484eddcb196d0bf8650d6311","ci/docker/powerpc64-unknown-linux-gnu/Dockerfile":"e949717a8ba5e123940729ff47ce1c45989c8b8247c576f1488f698b534e0283","ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile":"018591017f499414a9f79477e1c39baa6a47f71fce6812fb1868fb0fcdfb8cea","ci/docker/s390x-unknown-linux-gnu/Dockerfile":"9860f478c5b2dc3bcf76d2cda7f71922a2a2ef54898cc2ed6ea9b9eff094a5c0","ci/docker/sparc64-unknown-linux-gnu/Dockerfile":"2312491343665d2ab36fd669f14766facbf3c7e9820ffb8f0d623830b676f8f0","ci/docker/wasm32-unknown-emscripten/Dockerfile":"bd072d6ae91a9160693e402dd77462d3c9dd0716711e719a62af330ae479eb4e","ci/docker/wasm32-unknown-emscripten/node-wrapper.sh":"0eef37c3c4fb16dbc083148b7e7af45f2ae60bd9a1b3a77e1d43da79efbd30c6","ci/docker/x86_64-linux-android/Dockerfile":"aeeaa540189ca712369c564c9a14cbace63217dadcfaf879a2cb40fbdeb08199","ci/docker/x86_64-rumprun-netbsd/Dockerfile":"e8f9287b267c6058eec42d1bca0007cb9a78a1d244dd8e11088368cb61fb17d6","ci/docker/x86_64-rumprun-netbsd/runtest.rs":"53302e9ed39293c1ec68ab56287593907d4aaf5bac9c1c2857b29f754a71d62b","ci/docker/x86_64-unknown-freebsd/Dockerfile":"ab1f14c65c29f3721c7c091bdec2e865fb1abf45fdcdc867201d087966e396c4","ci/docker/x86_64-unknown-linux-gnu/Dockerfile":"ab3fa45765802b8155996796fcad9fb82096360ac587e38e6faa3ec345268796","ci/docker/x86_64-unknown-linux-gnux32/Dockerfile":"f22ac412525ef15b33ab8ccd8193d97346faf421c17f6ddeffc25b651aba83b7","ci/docker/x86_64-unknown-linux-musl/Dockerfile":"e145784741473150473b1bef7cc3c2cf0c6339d4fc480113ac41b4247a9b38ec","ci/dox.sh":"d77171a9da467bb01fc702a28fc3b5099f82a485a627f3d5593a9830c3e1a77c","ci/emscripten-entry.sh":"c97bbec520b57af9b1ae264ca991560e99c3852c99b00a2f673c614d1ba17498","ci/emscripten.sh":"6f66c7b5c3d34a41afc59ceb0a8c3b0880cd6fd9a6344b874ae80bac0639ccb2","ci/ios/deploy_and_run_on_ios_simulator.rs":"3175066fd7f82390f6226d881e1a1dda9767ea2705656870e0d7774e2731800e","ci/landing-page-footer.html":"b70b3112c2147f5c967e7481061ef38bc2d79a28dd55a16fb916d9c9426da2c4","ci/landing-page-head.html":"ad69663fac7924f27d0209bc519d55838e86edfc4133713a6fd08caadac1b142","ci/linux-s390x.sh":"d6b732d7795b4ba131326aff893bca6228a7d2eb0e9402f135705413dbbe0dce","ci/linux-sparc64.sh":"c92966838b1ab7ad3b7a344833ee726aba6b647cf5952e56f0ad1ba420b13325","ci/run-docker.sh":"be83bc5a8b5ef913a7c9941ffca24734716028650c9a876123c4c160672c18de","ci/run-qemu.sh":"bb859421170871ef23a8940c5e150efec0c01b95e32d2ce2d37b79a45d9d346c","ci/run.sh":"25f8fd0a88d5673bb872dbb7aef8d44ebbf6c863e10352cd79de557ce3e2e252","ci/runtest-android.rs":"a07ddbdd276aedda7876c7e676774178a60d9aeab95df01275a4ee95f59e3044","ci/style.rs":"940c06a676cff1dfc1555b887e46867c6aacc473956cd6aaafaed71824facdb2","ci/test-runner-linux":"cb3713d9e4fa1d9a7c039dfd077af0939921c1f2bf969c9e680ee66e87dc30a4","src/cloudabi/aarch64.rs":"b8550bf1fd7344972aa4db29441486f39f31482d0327534981dbb75959c29114","src/cloudabi/arm.rs":"c197e2781c2839808bd6fcef219a29705b27b992d3ef920e9cf6ac96e2022bbf","src/cloudabi/mod.rs":"1c2dc787a1b3438970ccd04153c93538719b1a27445707913b90b6f0cdcdde77","src/cloudabi/x86.rs":"33eb97f272d2201f3838ae74d444583c7de8f67856852ca375293b20bbd05636","src/cloudabi/x86_64.rs":"400d85d4fe39e26cf2e6ece9ee31c75fe9e88c4bcf4d836ca9f765c05c9c5be3","src/dox.rs":"8f6037887281b828d8541ce8a549dacaed5d29c05fd9cf78b169838476b82741","src/fuchsia/aarch64.rs":"8366ac6f51e494aad9266ccab2b3a95c5ed7aa3a9f77ea672413283440919743","src/fuchsia/mod.rs":"56ee2333b856db94cc1f1f4350885ad2a4ed0e1b4e8792615aa0b257e2941192","src/fuchsia/powerpc64.rs":"390e8db54271a1d5f512d54a21b328091a792378bf9b42b49b6c1a72388da4ec","src/fuchsia/x86_64.rs":"b4a3eff94dcf1ffe41e6500468ca2cff0e97ddbcc75fe079b6ac7adb1e493f56","src/lib.rs":"e434d3def305ea28108b59841396ef8949333db9223aa11886ee05cd1c0ce8b0","src/macros.rs":"2e7048e266efdef4298254b7186a27736182c94adb0648aed0c8d735f66a5139","src/redox/mod.rs":"029a9af78211d86fe3108100c33f58d6e73ab09c826b641a9732325dc700d8e8","src/redox/net.rs":"0946ab864a2eeb20a365dc541c060f7a238c75356bb57de39956a486607f7ce1","src/unix/bsd/apple/b32.rs":"41699d2802327b0a4d4aa50cd20b1e366b442176cbedab27ca888ac0446c9156","src/unix/bsd/apple/b64.rs":"4fe7bf5de252dcd712dee0a7a8acfaa7c737c862eaa3ff669255d3f2076c5fa6","src/unix/bsd/apple/mod.rs":"3a423665ca29d73a4a29503f5f58277b7d19cb8df175c5f11666983880ef276f","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"1950bf56a7ecbfc8994e4b54dc94e752d91dccd8f0e2d1e4c2d3ad2fa8cb5e23","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"97132e2097411034271b8c927ecc94a208a361564680972a6c82998bd30a9826","src/unix/bsd/freebsdlike/freebsd/mod.rs":"e762bacf0b96295ae241717210323c7442d199d9863159ee73462954fc855e1d","src/unix/bsd/freebsdlike/freebsd/x86.rs":"54311d3ebf2bb091ab22361e377e6ef9224aec2ecfe459fbfcedde4932db9c58","src/unix/bsd/freebsdlike/freebsd/x86_64.rs":"97132e2097411034271b8c927ecc94a208a361564680972a6c82998bd30a9826","src/unix/bsd/freebsdlike/mod.rs":"d6096edda549bb2af16d083ee86561f5eb6bfa728d3cfac1938f0f84592bde5d","src/unix/bsd/mod.rs":"a1030452eed4ec52a39e9f39040e8fae4309143c7af145efadd9b425caa39672","src/unix/bsd/netbsdlike/mod.rs":"a685c1d23cb17758c3249b9c4ab45a50474e79270891235176b5f796f365380c","src/unix/bsd/netbsdlike/netbsd/mod.rs":"46a28912a4741e500f392131cc71273621de0234c4c28e29d8bf51c015ca7840","src/unix/bsd/netbsdlike/netbsd/other/b32/mod.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/netbsd/other/b64/mod.rs":"927eeccaf3269d299db4c2a55f8010807bf43dfa894aea6a783215f5d3560baa","src/unix/bsd/netbsdlike/netbsd/other/mod.rs":"4d9f7091af8e166943ac6f42ce85558909e5b6e61325039bff7adfbcf4b90212","src/unix/bsd/netbsdlike/openbsdlike/bitrig/mod.rs":"92459d80b8e5b570c0efe35a1d244d38f23072cd28b6581dfcb313dc9bfc3d51","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86_64.rs":"927eeccaf3269d299db4c2a55f8010807bf43dfa894aea6a783215f5d3560baa","src/unix/bsd/netbsdlike/openbsdlike/mod.rs":"cec53623e2269aea4437554a405452e7d3b09648b7cf6872d257d36ba979e2ec","src/unix/bsd/netbsdlike/openbsdlike/openbsd/aarch64.rs":"820092e397c7ec259cd2de8f2444083a8e57071c02d73d678701dfa7807726e9","src/unix/bsd/netbsdlike/openbsdlike/openbsd/mod.rs":"44035aad2907dffb6b18687ac7ddc76b5268af92b4e4f4c87759a00cae4de900","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86.rs":"44b7ea81cf363777b29935da175e702cbf45ed78f7498ae57faf44aa32335085","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86_64.rs":"7c959cdb3415f68a0f948117b9aa87a17463e57ab97cc3235f2567454b706653","src/unix/haiku/b32.rs":"69ae47fc52c6880e85416b4744500d5655c9ec6131cb737f3b649fceaadce15a","src/unix/haiku/b64.rs":"73e64db09275a8da8d50a13cce2cfa2b136036ddf3a930d2939f337fc995900b","src/unix/haiku/mod.rs":"ddd834c5c4e5ec7771d0f0071517c2d00095d5595f87a52245380ac762f7f011","src/unix/mod.rs":"47d253eef3bc46dacb0df2951b2136e41c4e758ffd34473b144f6108a90749f9","src/unix/newlib/aarch64/mod.rs":"c408a990f22fb4292a824f38367e9b517e6e6f8623328397ee631cc88b3d1f7d","src/unix/newlib/arm/mod.rs":"2b6dba2e697ab9b4f4bc4dd5f28057249e9b596d1cb395a9322ec87605c4a5c4","src/unix/newlib/mod.rs":"7422845a44de13a2faf15d105670525ed090c6e200c9723178ed735810bbd689","src/unix/notbsd/android/b32/arm.rs":"3625a32c7e58cfe683a53486fbe3d42d4e28f00bea31e19cb46ed2bb0b6a140b","src/unix/notbsd/android/b32/mod.rs":"2fbe398c1fb5251dda6213741a193e50aae4622807cb255d1dd2e82b536f0c65","src/unix/notbsd/android/b32/x86.rs":"ae2b7f1d6278caddc007749bb1d09ca33f7593478a0fd7fe98b457dae86c7814","src/unix/notbsd/android/b64/aarch64.rs":"63d65629d79371814910f691672ef593d20244ee09be26f1ebe07ee6212d0163","src/unix/notbsd/android/b64/mod.rs":"90d4f6b063fd4de42fd302cbc9d9902fd99ac1d71dc48cb8bc6ad7b4c902e481","src/unix/notbsd/android/b64/x86_64.rs":"5547aef8dcbaa5a932559f34606fd8d89f6c9c15173d2b1412c12d39b3c1045f","src/unix/notbsd/android/mod.rs":"c83157cf4a74c653b877c4d42b565d4a7d31e46e32015f19fc91447df2489a58","src/unix/notbsd/emscripten.rs":"5beb9bc98b6b317e85f2935db2aad9ef9cb2ab2e881917064fa7adf944568dae","src/unix/notbsd/linux/mips/mips32.rs":"df3268b082962844c94733c58782ecd9386ffe1f5ed8e05a703a6fa1e80b8f7f","src/unix/notbsd/linux/mips/mips64.rs":"88ad72fa125b9a2c0bd98ef03a7f5ceff78a39b0628d0d0f997ac9b6b82fe16b","src/unix/notbsd/linux/mips/mod.rs":"32c3e7cf430575544bbe4a670cbbf2b4dbe1f28b4895feb6f43fa33d6da25e1d","src/unix/notbsd/linux/mod.rs":"d37bd8bd956b7ab3484b2ad3ee7c1848574bbd37027c76ac06f4d7ca2906cf01","src/unix/notbsd/linux/musl/b32/arm.rs":"9d9bff31ab0925a1f62a20945d36a83b94ce3ab78dd202cd468bb31556b21725","src/unix/notbsd/linux/musl/b32/mips.rs":"cb38c463aebfc235f31880db158dd47c6e21f182a092d3f3087d92994b7711da","src/unix/notbsd/linux/musl/b32/mod.rs":"540928f168f145c136f9dd729ffa12b9d1838d9fe664fc642365d17d7fae648f","src/unix/notbsd/linux/musl/b32/x86.rs":"c02dd333012cf65cb8873fa211eff5e63d466be55451a347510e3d4f50ed515e","src/unix/notbsd/linux/musl/b64/aarch64.rs":"4d79d86d11fbb8cb7a74084e410a1140e3c89dfc1842cdfb213f3a0ca93046df","src/unix/notbsd/linux/musl/b64/mod.rs":"caac00326693b372d6805e4dda239475e7fef36368881f372c006264844fda0d","src/unix/notbsd/linux/musl/b64/powerpc64.rs":"24514e41be4b5f5e0ffbe8a25a99dae8989489b607db59e8bfa345f8e65c9963","src/unix/notbsd/linux/musl/b64/x86_64.rs":"25340999290a63d564ec149532c905f59c312ec369f8806d6b15df66fa1b8857","src/unix/notbsd/linux/musl/mod.rs":"17c70acf9c6eabeb73916c2abb7d7e8b0310214090faae4a8dc2fd183a9b45ba","src/unix/notbsd/linux/other/b32/arm.rs":"d9892f7350b2978335f734f1cd2d7fed60f0f2e66aa05bee3f69549c031f8b14","src/unix/notbsd/linux/other/b32/mod.rs":"7d77f1dd8327b1249769496351cf287d0fff3852f87bde2f58afc67e6dc54a4f","src/unix/notbsd/linux/other/b32/powerpc.rs":"253fcd2f9978525285be1903cc08f3fec2dc3b12d1660a33e2995b4f6b810d1c","src/unix/notbsd/linux/other/b32/x86.rs":"49376e3ed0f3ff95c230ac20751911fe3c608dfe15c7c118b069fd7a954d8db9","src/unix/notbsd/linux/other/b64/aarch64.rs":"ed6ea00e3281ad2f4bab82821f20a2ff5b48401a65618bd6a544bc24ea4e3e39","src/unix/notbsd/linux/other/b64/mod.rs":"63e1a3fdf5f4d1b9820934ab344c91aed5e458e7e05908535d2e942d51a08bf8","src/unix/notbsd/linux/other/b64/not_x32.rs":"9b5e2321c0114c2740dcb86d9f1f3584c07ded921a157164ae8bb0712d397818","src/unix/notbsd/linux/other/b64/powerpc64.rs":"ca25b5f94a9147a984fcb70cf48a261b30df14e2e8194ac174363b6280e82a29","src/unix/notbsd/linux/other/b64/sparc64.rs":"a84580fe226654e33f8ddd0f1f7f2069c29334fc826a74f81f7892b87cfb9083","src/unix/notbsd/linux/other/b64/x32.rs":"ae7698b217106a6c00465f9d10df24d45ad9b7dfc280b24168f53f42198b7b92","src/unix/notbsd/linux/other/b64/x86_64.rs":"afba464e903d350325a1ca3d9d5af1659efc0ede83a43dbac4dbd60c522e2ad1","src/unix/notbsd/linux/other/mod.rs":"7065a7e83834f38ee2f4e03f28824eb94111c13f10e7a8b76ee7025686a84e7f","src/unix/notbsd/linux/s390x.rs":"259c5533ba7f0b10bb23d01dc0e53301afd236a7bb4339dcef9472c579503729","src/unix/notbsd/mod.rs":"eff4c19451d4d4579d5c483a941a7b259b7b73c3ab13c31fc54a7961e8292b9a","src/unix/solaris/mod.rs":"9c6af198a2f80da827054784faf70bc404673d9568fb45664b4f73c46245fdbd","src/unix/uclibc/mips/mips32.rs":"4dcb19abae37f02f08660bdad500c3230436322b581eba37287c73a742d6fcdc","src/unix/uclibc/mips/mips64.rs":"e67eec1636a998b047d89a4cda1c99cb6bc3071db017762675179a68201c4438","src/unix/uclibc/mips/mod.rs":"3f86061d05a8da7d923310550b7d40c6223f0c907d77edc86b7a78da1d647f76","src/unix/uclibc/mod.rs":"3605127517734b5f5f20be1d37e52184a77ecc6fb6099b88aa744e0aca1b802a","src/unix/uclibc/x86_64/l4re.rs":"68fd3a833fd1f7caf784a084224f384bdbdfb8b5a14ef94c4f5155409afb3439","src/unix/uclibc/x86_64/mod.rs":"69ec3ca821a483cc076e84a794bbecb3e5536af1c1d5b807eaf1db9af11f771d","src/unix/uclibc/x86_64/other.rs":"f03b47842896f2f3ae6f8ebdcbcf0276454f880349d9cf00e3d304f8136893c5","src/windows.rs":"e41357d610608bad81abf285306ad8b127b6f02d5132f63c4942861980b47d59"},"package":"b685088df2b950fccadf07a7187c8ef846a959c142338a48f9dc0b94517eb5f1"} \ No newline at end of file diff --git a/user/rust/0035-rand-5b9e5c39d857.patch b/user/rust/0035-rand-5b9e5c39d857.patch new file mode 100644 index 000000000..6f9d072f8 --- /dev/null +++ b/user/rust/0035-rand-5b9e5c39d857.patch @@ -0,0 +1,25 @@ +From 5b9e5c39d857312fb308493ac8d0b89f73607941 Mon Sep 17 00:00:00 2001 +From: Lion Yang <lion@aosc.io> +Date: Wed, 15 Aug 2018 16:10:37 +0800 +Subject: [PATCH] os.rs: fix wrong syscall number for PowerPC + +__NR_getrandom is 359 on PowerPC, added from torvalds/linux@7d59deb50aa v3.17-rc5. +The bug was introduced from 05f23d275 3 years ago, affecting from 0.1.1 to before 0.5.0-pre.0. +It has already been fixed on the 0.5 branch at 00713a61c so this is a backport. +--- + src/os.rs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/vendor/rand-0.4.2/src/os.rs b/src/vendor/rand-0.4.2/src/os.rs +index 633594ec7d..10022fbcd6 100644 +--- a/src/vendor/rand-0.4.2/src/os.rs ++++ b/src/vendor/rand-0.4.2/src/os.rs +@@ -102,7 +102,7 @@ mod imp { + #[cfg(target_arch = "aarch64")] + const NR_GETRANDOM: libc::c_long = 278; + #[cfg(target_arch = "powerpc")] +- const NR_GETRANDOM: libc::c_long = 384; ++ const NR_GETRANDOM: libc::c_long = 359; + + unsafe { + syscall(NR_GETRANDOM, buf.as_mut_ptr(), buf.len(), 0) diff --git a/user/rust/0036-rand-checksums.patch b/user/rust/0036-rand-checksums.patch new file mode 100644 index 000000000..a998157ce --- /dev/null +++ b/user/rust/0036-rand-checksums.patch @@ -0,0 +1,9 @@ +diff --git a/src/vendor/rand-0.4.2/.cargo-checksum.json.orig b/src/vendor/rand-0.4.2/.cargo-checksum.json +index 67115b1a..77781e37 100644 +--- a/src/vendor/rand-0.4.2/.cargo-checksum.json.orig ++++ b/src/vendor/rand-0.4.2/.cargo-checksum.json +@@ -1 +1 @@ +-{"files":{".cargo-ok":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",".gitignore":"f9b1ca6ae27d1c18215265024629a8960c31379f206d9ed20f64e0b2dcf79805",".travis.yml":"12868a81c3590d8f2c08d53ca51e6b4b9be39d854f81bd4a57f82466cbe8d79a","CHANGELOG.md":"03974fa236c7ac7a29931ef548d05ba1d8e00b1202961310f6d837aca9bc377a","Cargo.toml":"09b6978ce09c8df87e5fe605d1ff5ea920747da588523df8f2f5d1ca3292db80","Cargo.toml.orig":"02e9cb4d497d9ffbcb3cc0a227a9c7497e905a7d889a175b048aa03f8600cb16","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"f15d6584b8f417cc743ebcad6b69776874a6ac30807d0ce0ed28f3779be1f151","appveyor.yml":"8796156caf7041ef2a43f7a313df21ea639de3f2563b6181bba1096b1c489f1b","benches/bench.rs":"35c4ab609f2a5f5aab6c52c257415258dc0780621b492b5a82bb12d048cab6db","benches/distributions/exponential.rs":"99cb59c013a0b6bb390d34c5649b341fc3b88ea7df0caf2470bdda8798f9fe3d","benches/distributions/gamma.rs":"3533f311e4b55d743c5b01a7eb6529c94fd97726ef6702a6372f914f5f33666b","benches/distributions/mod.rs":"0028f1cb96f61152ed5b49a4fe91227d809ef6d19035592c36032a538af7f95e","benches/distributions/normal.rs":"4e10c18cb583ccb96301ea953c8e0aa9ee3b6662060271d1b8d19ca23364dc6b","benches/generators.rs":"aaa2f1dbfb399df8323d8a5796b92add6210cd5f0f1d916895ffdd81d60f812b","benches/misc.rs":"bd2f7c5a16f0fcb59022d5aeef66ed3c94e89ebf6c06667851dd23d0b1595504","src/distributions/exponential.rs":"103c8412c8a581b71835f1c00e40f6370e7702adf9d499243933a793d132d4e7","src/distributions/gamma.rs":"7a3f85c8daad4e56e334586ddb9fc9d83df3b0699738ed681a6c41e4ed455be9","src/distributions/mod.rs":"7943c4f83721bac816f831cca3b1574b6136932f7b4927aa6101130080ba62c5","src/distributions/normal.rs":"1562b43f80e4d5f83a8deb5af18de5a18dfeeeeda11fefc577da26672b14c949","src/distributions/range.rs":"a72a538d3ec4ed23f8d632aa55fd4793c464f24a5872d04ce8095ddd5db92115","src/distributions/ziggurat_tables.rs":"4eacf94fc352c91c455a6623de6a721e53842e1690f13a5662b6a79c7fbb73de","src/jitter.rs":"befd4b84bf753c107370b5b9498ad49611c220bdae2e4be9ee4398e9fa497042","src/lib.rs":"c86b28064c2c5abd02694e8bf97c84513b21fefe04e4305f9a78d5e864ef3e3f","src/os.rs":"38c2f26c2784c61ae9a17a7a9c59fcf449dada826a66f66b7f46b0992ef001de","src/prng/chacha.rs":"558007276f9c22933d39e5b8e853f4dd9533e823ed66df8dc1f23ad6925b1d51","src/prng/isaac.rs":"a8a2ee8b38d312663308e3bdf03376e342fd91330655f39144e5bba7392b2a8e","src/prng/isaac64.rs":"f28f7596ccab910db265b42671116abb9d2039fa8a421cbc75312bd0e7715d3a","src/prng/mod.rs":"c1a73450f49e819a20942a5b591f84a08ebb5ac33aa0f65b18ac1dc9a19a3084","src/prng/xorshift.rs":"606c308747293652c868b46dc3cad847d0c3717629c04ba75681c887c7634114","src/rand_impls.rs":"e1f27077fc13d5855bb66235f8ccfb216e116337eb38424d9c30c090e112215c","src/read.rs":"bd0eb508a6b659dc578d546fc2f231484aed80c73cfe8c475e0d65c8d699a769","src/reseeding.rs":"a97b86387b87ea1adc5262ddea480fe735c9c2a86762abaace29119022ac9f6e","src/seq.rs":"76dd58af0f580aed2721c393a5c036322186dc7cb3b4abed33436620c7c49288","utils/ziggurat_tables.py":"a9fc0a2fdae9b5c798c238788f94b720c156e13fd96f2356c409aa533191eb94"},"package":"eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5"} +\ No newline at end of file ++{"files":{".cargo-ok":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",".gitignore":"f9b1ca6ae27d1c18215265024629a8960c31379f206d9ed20f64e0b2dcf79805",".travis.yml":"12868a81c3590d8f2c08d53ca51e6b4b9be39d854f81bd4a57f82466cbe8d79a","CHANGELOG.md":"03974fa236c7ac7a29931ef548d05ba1d8e00b1202961310f6d837aca9bc377a","Cargo.toml":"09b6978ce09c8df87e5fe605d1ff5ea920747da588523df8f2f5d1ca3292db80","Cargo.toml.orig":"02e9cb4d497d9ffbcb3cc0a227a9c7497e905a7d889a175b048aa03f8600cb16","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"f15d6584b8f417cc743ebcad6b69776874a6ac30807d0ce0ed28f3779be1f151","appveyor.yml":"8796156caf7041ef2a43f7a313df21ea639de3f2563b6181bba1096b1c489f1b","benches/bench.rs":"35c4ab609f2a5f5aab6c52c257415258dc0780621b492b5a82bb12d048cab6db","benches/distributions/exponential.rs":"99cb59c013a0b6bb390d34c5649b341fc3b88ea7df0caf2470bdda8798f9fe3d","benches/distributions/gamma.rs":"3533f311e4b55d743c5b01a7eb6529c94fd97726ef6702a6372f914f5f33666b","benches/distributions/mod.rs":"0028f1cb96f61152ed5b49a4fe91227d809ef6d19035592c36032a538af7f95e","benches/distributions/normal.rs":"4e10c18cb583ccb96301ea953c8e0aa9ee3b6662060271d1b8d19ca23364dc6b","benches/generators.rs":"aaa2f1dbfb399df8323d8a5796b92add6210cd5f0f1d916895ffdd81d60f812b","benches/misc.rs":"bd2f7c5a16f0fcb59022d5aeef66ed3c94e89ebf6c06667851dd23d0b1595504","src/distributions/exponential.rs":"103c8412c8a581b71835f1c00e40f6370e7702adf9d499243933a793d132d4e7","src/distributions/gamma.rs":"7a3f85c8daad4e56e334586ddb9fc9d83df3b0699738ed681a6c41e4ed455be9","src/distributions/mod.rs":"7943c4f83721bac816f831cca3b1574b6136932f7b4927aa6101130080ba62c5","src/distributions/normal.rs":"1562b43f80e4d5f83a8deb5af18de5a18dfeeeeda11fefc577da26672b14c949","src/distributions/range.rs":"a72a538d3ec4ed23f8d632aa55fd4793c464f24a5872d04ce8095ddd5db92115","src/distributions/ziggurat_tables.rs":"4eacf94fc352c91c455a6623de6a721e53842e1690f13a5662b6a79c7fbb73de","src/jitter.rs":"befd4b84bf753c107370b5b9498ad49611c220bdae2e4be9ee4398e9fa497042","src/lib.rs":"c86b28064c2c5abd02694e8bf97c84513b21fefe04e4305f9a78d5e864ef3e3f","src/os.rs":"4860f165f68b7c978b0488c75d264cd9aaf54e7e4484036736ee5c4f5b6bd78d","src/prng/chacha.rs":"558007276f9c22933d39e5b8e853f4dd9533e823ed66df8dc1f23ad6925b1d51","src/prng/isaac.rs":"a8a2ee8b38d312663308e3bdf03376e342fd91330655f39144e5bba7392b2a8e","src/prng/isaac64.rs":"f28f7596ccab910db265b42671116abb9d2039fa8a421cbc75312bd0e7715d3a","src/prng/mod.rs":"c1a73450f49e819a20942a5b591f84a08ebb5ac33aa0f65b18ac1dc9a19a3084","src/prng/xorshift.rs":"606c308747293652c868b46dc3cad847d0c3717629c04ba75681c887c7634114","src/rand_impls.rs":"e1f27077fc13d5855bb66235f8ccfb216e116337eb38424d9c30c090e112215c","src/read.rs":"bd0eb508a6b659dc578d546fc2f231484aed80c73cfe8c475e0d65c8d699a769","src/reseeding.rs":"a97b86387b87ea1adc5262ddea480fe735c9c2a86762abaace29119022ac9f6e","src/seq.rs":"76dd58af0f580aed2721c393a5c036322186dc7cb3b4abed33436620c7c49288","utils/ziggurat_tables.py":"a9fc0a2fdae9b5c798c238788f94b720c156e13fd96f2356c409aa533191eb94"},"package":"eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5"} +\ No newline at end of file diff --git a/user/rust/0034-rls-atomics.patch b/user/rust/0040-rls-atomics.patch index 61811ef4d..61811ef4d 100644 --- a/user/rust/0034-rls-atomics.patch +++ b/user/rust/0040-rls-atomics.patch diff --git a/user/rust/APKBUILD b/user/rust/APKBUILD index 6b0111f26..1a1d55468 100644 --- a/user/rust/APKBUILD +++ b/user/rust/APKBUILD @@ -3,9 +3,9 @@ # Contributor: Jeizsm <jeizsm@gmail.com> # Maintainer: Samuel Holland <samuel@sholland.org> pkgname=rust -pkgver=1.29.0 +pkgver=1.29.1 _bootcargover=0.30.0 -_bootver=1.29.0 +_bootver=1.29.1 _llvmver=6 pkgrel=0 pkgdesc="The Rust Programming Language" @@ -55,26 +55,30 @@ source="https://static.rust-lang.org/dist/rustc-$pkgver-src.tar.xz 0009-Add-missing-OpenSSL-configurations-for-musl-targets.patch 0010-test-linkage-visibility-dlsym-only-sees-exported-sym.patch 0011-test-invalid_const_promotion-Accept-SIGTRAP-as-a-val.patch - 0012-Add-powerpc-unknown-linux-musl-target.patch - 0015-Use-ELFv2-ABI-on-powerpc64-musl-LLVM-half.patch - 0016-Use-ELFv2-ABI-on-powerpc64-musl-Rust-half.patch - 0017-Fix-powerpc64-ELFv2-big-endian-struct-passing-ABI.patch - 0018-Add-powerpc64-unknown-linux-musl-target.patch - 0019-run-pass-const-endianness-negate-before-to_le.patch - 0020-Fix-double_check-tests-on-big-endian-targets.patch - 0021-x.py-Use-python3-instead-of-python.patch - 0022-test-debuginfo-Update-for-GDB-output-format-changes.patch - 0023-test-target-feature-gate-Ignore-on-not-applicable-ta.patch - 0024-Ignore-broken-and-non-applicable-tests.patch - 0025-Move-debugger-scripts-to-usr-share-rust.patch - 0026-Add-foxkit-target-specs.patch - 0027-Add-foxkit-target-specs-for-OpenSSL.patch - 0028-Link-stage-2-tools-dynamically-to-libstd.patch + 0015-flock-Fix-F_SETLK-F_SETLKW-on-32-bit-O_LARGEFILE.patch + 0016-Add-powerpc-unknown-linux-musl-target.patch + 0017-Use-the-ELFv2-ABI-on-powerpc64-musl.patch + 0018-Fix-powerpc64-ELFv2-big-endian-struct-passing-ABI.patch + 0019-Add-powerpc64-unknown-linux-musl-target.patch + 0020-run-pass-const-endianness-negate-before-to_le.patch + 0021-Fix-double_check-tests-on-big-endian-targets.patch + 0022-x.py-Use-python3-instead-of-python.patch + 0023-test-target-feature-gate-Only-run-on-relevant-target.patch + 0024-test-use-extern-for-plugins-Don-t-assume-multilib.patch + 0025-Ignore-broken-and-non-applicable-tests.patch + 0026-Link-stage-2-tools-dynamically-to-libstd.patch + 0027-Move-debugger-scripts-to-usr-share-rust.patch + 0028-Add-foxkit-target-specs.patch + 0029-Work-around-libbacktrace-built-with-fstack-protector.patch 0030-liblibc-linkage.patch - 0031-liblibc-dcff154781e4.patch - 0032-liblibc-90c01fa6b0f4.patch - 0033-liblibc-checksums.patch - 0034-rls-atomics.patch + 0031-liblibc-0163a7ce20b5.patch + 0032-libc-dcff154781e4.patch + 0033-libc-90c01fa6b0f4.patch + 0034-libc-0163a7ce20b5.patch + 0035-libc-checksums.patch + 0035-rand-5b9e5c39d857.patch + 0036-rand-checksums.patch + 0040-rls-atomics.patch " builddir="$srcdir/rustc-$pkgver-src" _rlibdir="/usr/lib/rustlib/$CTARGET/lib" @@ -148,7 +152,6 @@ check() { src/test/codegen-units \ src/test/compile-fail \ src/test/compile-fail-fulldeps \ - src/test/debuginfo \ src/test/incremental \ src/test/incremental-fulldeps \ src/test/mir-opt \ @@ -307,38 +310,42 @@ _mv() { mkdir -p "$dest" mv "$@" } -sha512sums="87f416c76db2967c0ce2b39ee2d2c2fcad875bbe13cfa507f5483e170827c131f3af4400c11785ed836143b2732aaf32bc0291fcd93bbfb96b266a198c926a5b rustc-1.29.0-src.tar.xz -1e67f3b28ca5d6e8ed06df36145abcfeecedb8c8b5370023e7de4a19b850b690efefdd583b42fc484c1167a5c301f6779745c12efb065475acf956d9934cb02b cargo-0.30.0-powerpc64-foxkit-linux-musl.tar.xz -92f250086aa8cc1528359fbf9e9413bc86857acb6e9f0bb3a045a3a1770dd3a4eda5b499c1cd1946bb9f0937d402b73bf46c7e1de8d419efdd0ffbc278239a81 rust-std-1.29.0-powerpc64-foxkit-linux-musl.tar.xz -1fedd316a05f16947e8288f194cf55b9d9e29667096a50b4f2ecd9c2031e00fbf9a8c14c01968bb047e3f3aac18a036606092749de467b152169eb218360ecbe rustc-1.29.0-powerpc64-foxkit-linux-musl.tar.xz -23540d67f2774f007ffea65e3475b0003193a28503f302dbbf7fa741c0e53dd14d110a3eb88374c2fc1a29b7c8add4c41300fe1c187b2d2ead8e35740cabaaa8 0001-Require-static-native-libraries-when-linking-static-.patch -3e10a597f35470b31da178dad3af956d395f4245470f7c2821a78f1e7411acd8758c13c686a342eb362850a736b2887293203847e38c89f40a61498282d29c69 0002-Don-t-pass-CFLAGS-to-the-C-compiler.patch -d6b293f13dccbe5bdbcc13c2b18e610c271ab49acc0eb5658489388b371431a522f454308af20d2fdb8c68ce99203cfa8455b7c36cc47c8d1f5722b739c3b3fc 0003-Fix-LLVM-build.patch -38f5380a3e7c8454de62ed75e807ad034f1ef3521a88706d3a24d4de09140147ff298c8e36de14d21f0b458d8c1bf82dd8e3924c7dcef0a16d8cd07ff49f06ea 0004-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch -660283864cbd7a98246c3a6d5634b99032c90fcd98eab6f2477786ab49078505f59f2a88f2b87729850e0b07bef18dd5b93c458e947ae876aac3dca3742dff73 0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch -75a7d5f67e315ef69f6c5114b80523858b528c6ef80ec10fba7d1f1afce97e6053670a8a7473c6948931d2f013e77646b7b30635f12f5b5f6dd12a29f6f4925e 0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch -7256275df428ea13028731e91dccbba90f7e9f2a611ce9265447831cc60a9284b8d78573da50143b2e7fe4f3f6dc360eddf0be94a01de4b8745d7930144b2365 0007-runtest-Fix-proc-macro-tests-on-musl-hosts.patch -45c7342c9b901f3d96e293e189773b22e0c7f240e79ffd661e4010f798a6d622304ad16fab22ebb81e92e473c98f93f39505e79dbfb341ec7e29efbcd366594b 0008-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch -d48b2653265de8e331afe8fb8ec48b3170845d95eb54ea1fad77cc8ac617cab193b3e797c2753794addcb3f3edb5de99ebdd6de1ad31613a08485b4ad9a8878f 0009-Add-missing-OpenSSL-configurations-for-musl-targets.patch -abbefe8cbdb1b0cefe9cecfe5b5fad88b868d838617bf1fc1e0da782844ca9f28fb5edd8052115e9667ff21eca90e768caea1ce6c8bf23981162e1da93a70c59 0010-test-linkage-visibility-dlsym-only-sees-exported-sym.patch -e9c4c6d9029029abc806da48ba85fb3ce5ca2aa0dd748012f8cd89620b3a5646b06a3295b1d001c3e651ffebf7a23d16d074c7a146cc585b9347f16b2c147743 0011-test-invalid_const_promotion-Accept-SIGTRAP-as-a-val.patch -cf5cb5827a836f2fc155ba5f9caf24d2811e143fa178d64c2cd2c6cd0ba8c121dacd657be7a631f1d2532f3bd6f244c371361afddf65f057acf15f0de1d4b8bd 0012-Add-powerpc-unknown-linux-musl-target.patch -9e47df4cd5f9590e526be1617efa6c96b80cc9220f819a0b86a6b48a229786b860fff4c2dc5451f7098aa5f250e35285d65cfa0012c15110eab612d585a1f6d7 0015-Use-ELFv2-ABI-on-powerpc64-musl-LLVM-half.patch -36f07adaef870b90590a7513b1bde0f37793bbd6b773b41bf0cf2b791add51c0c8e22a55b5f8266a04e82f8c60f8a89eb0597cdb23b6f595e787a6a57cd869c0 0016-Use-ELFv2-ABI-on-powerpc64-musl-Rust-half.patch -63fb44a61ee59e916bbaf78dc95cdb73a77671671db10280e8a8fde08324604f1b2560a648f25b088558c3fd198f855a8056dcb14997c0747f05957c51643aba 0017-Fix-powerpc64-ELFv2-big-endian-struct-passing-ABI.patch -bd16a8c9d79c495677d1d59a5a806a46d807447ef9be85b20fb2d8150775f24a233d00dea4c5a3b505054b299982fe00d64d1a9a9da26c320e804a8f3840e48b 0018-Add-powerpc64-unknown-linux-musl-target.patch -41f272bc925d2800fde0f663d300572ab27d4de275b4802de7adb89c2d6582b1aec3cd456ae2c0d115f1104f9de97489da86df101eefbaead374c5d5b20c95d8 0019-run-pass-const-endianness-negate-before-to_le.patch -e146e9205f22f10fcdd6b8b77ee76a7b2cab0f38368a793cdd15a2dd5b1432c7e9d0ea9ae5cda55ff91edfbea20941fe49836707bb238c84b74ec0330490b4c8 0020-Fix-double_check-tests-on-big-endian-targets.patch -ed4f07e005a9ee7b117c48961c0285cb5a8f1bf5c1480343d617630af56837fb177cf8e5f564b0795ed063ede485d8478a44c7c257511aaa05d4abf4c316d898 0021-x.py-Use-python3-instead-of-python.patch -12e6f6dbeefaeee6190a8ed25336836bec23d92778a2b01921f1191e4ac9fb8259b7b99d6bebe52b9e390eb3b4dca40c61e9498cdc222d5019843ef31b82146e 0022-test-debuginfo-Update-for-GDB-output-format-changes.patch -d9b2234fdc3e2fac9462f0be8ce8988d50573d1149c496ef7b439596303a34e540824a5a6ab23cb15be1a6c1d15d857662d6dae740abd77084375b276b84f4dd 0023-test-target-feature-gate-Ignore-on-not-applicable-ta.patch -7cff0eb0f947e009326cbd96dae0d74d1f5fb9fbd1cd62544aa5b52c44fdc8f40094856d44dc5b4d55fd2c35308f37fa64656d614ae16d42d71e59a7a8cdb531 0024-Ignore-broken-and-non-applicable-tests.patch -de5c3b3ca532328957b550cf02cbdc851bacd7740bbdd4512e03d2eb4d916034d2bd026710f2f734d7a31ca67eda3f34e2577a0cd39a4901d0808a1815095064 0025-Move-debugger-scripts-to-usr-share-rust.patch -6a1c997e5e280b9575857d5dca5cff22ea17fc878389bb0d852139bb113fe64082dfd1298958a78e10d4a8faf58358bc8c221516e248c929c399d327559ef030 0026-Add-foxkit-target-specs.patch -6b1723c2e4672e394374419fcc136a851078b4a4c538c7c1d86847e6915c5fb3ddc1f81971ded1a73a3090766d103c3cc79c60b8e39999947be625e0e17e1249 0027-Add-foxkit-target-specs-for-OpenSSL.patch -74618287fe0bdcbedb23b2343e88885496d346c68a6b76109f613c5a13f7e09623ece11cb9c784f1ae6779005c9ec4def0351810718afd80285d1912c0040c9a 0028-Link-stage-2-tools-dynamically-to-libstd.patch +sha512sums="1ded651b4c460e11e5e44c26de88a80fb13c2000097de2ee1e5af89638e12a7e8f43dd756689d4cc4fad45c52d4d43a3c70dd6a3ae550735b9dad5f8defea6a7 rustc-1.29.1-src.tar.xz +bd1fd3694947fc192419dab1e1e314fb5a9d7266715b5765dd1766507a234b6ad93bd097f531d560adc8b9f71534f53c440e6986e63b322319fcd0c24325d979 cargo-0.30.0-powerpc64-foxkit-linux-musl.tar.xz +d6ce24de73131702b623e8a146435526457b6d766fe6192df7471f1942119a6396b85121ce2250da3c3ec21b44aaff316e5c0387796654129d074d29d60a25b2 rust-std-1.29.1-powerpc64-foxkit-linux-musl.tar.xz +b649fc30dee7510f656c53f3a5737a66d59726e24be7085134504f0202a899e549274df417c814487e5fbd8bbb69470411c9ed770dbc37af15a99a63f913a508 rustc-1.29.1-powerpc64-foxkit-linux-musl.tar.xz +a242a6cdc95ecfa402e1457bc9e3b98305b8a5bcb5f54904807382cc98720e2a8fd16cee311edba84eb64129c591a58ed1f70798269832ccf19f1af79efe8b70 0001-Require-static-native-libraries-when-linking-static-.patch +2b2dc29d31351e21e10808a0223b8b43d3804f0fbef6a97d6016958bb982850d0a63b73f1133ca4e70ad5c5901a3357c279e40a5c60379eb8ac070a9fb78a203 0002-Don-t-pass-CFLAGS-to-the-C-compiler.patch +6f291642e2ce0cbe57e5354d4eff2745b651b3308771fd122edcb75ff7b809a34ee98c5ab2b64699b60e6be1007a383b29e0f991a9539f85a4c6c19e239c7654 0003-Fix-LLVM-build.patch +4f1a716e22126d65f4b32be6210293a32e54c3b4c8655097962e2d0d44c1b976cb923fc99dbf8d6487541518e9c8ed73d3d2efb6da3b881513d8243808de7adf 0004-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch +7ff0c4cfc040f47b9dcf28d64bbcdf45d674bbd3a05e7d3646474044e0713d80d878d8cc39dd5029cd6f7c2c6d53c08ea445eacf147ccf14de1d729bf6a83734 0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch +f1b9d68d4685db660b6c09cfa5ce0f818a3146e458973b942ac7991cfdd849976da7bc4e7245b9aa0ace498b51c9dbe9def3f2ffc277f52d2883f8b8fd0c47ef 0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch +14cd3ff8d3e1d41014008ec8da958b72383c5fab6066d4dd21f4c02043fbea9ef159a1a76b718ec54c135fe971c7269d88b9703692706d23ed409022b0e57221 0007-runtest-Fix-proc-macro-tests-on-musl-hosts.patch +e7de9eec874e08d3aaaa1389ed827ccb201659f792d4b64bf430a1b972b1d1f793fb14131d60df92d84af35da01eee4d59f6b8f631acfef95284688cde45fe04 0008-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch +8c2cbe4c0a99c38e4c7f05b30d396acfbe0511c06b433a468c35477cda73e77a4a0d61f809465d29e92bf3960dc25d5d860d28c79be42ac25f336aea40a24881 0009-Add-missing-OpenSSL-configurations-for-musl-targets.patch +38085c8f79a3fda0f31cc733044c50fdfb1bff82da4f4cb40f280bf0924c53cfb1fab31a8345e40ae2960f1c1b495570d8219c9c9958db4da184f7120e07a4ad 0010-test-linkage-visibility-dlsym-only-sees-exported-sym.patch +93faeccf86b7920d48aba11e3345459e828a47a2b709ac65bc1ed71ef928ae18539040390f394c58fadbe0f44459248018c3cf0b0ac64aedd0f27a5ae866d69e 0011-test-invalid_const_promotion-Accept-SIGTRAP-as-a-val.patch +c2208400ee5a9f0f7b7897effe536f5937e05c0c4214f5974194ef8c41fc3013ca5224594add1b9fb83f50c9372bd659b7a34442fc3462d43fe8fe6dbdceb1ad 0015-flock-Fix-F_SETLK-F_SETLKW-on-32-bit-O_LARGEFILE.patch +157b6e658ad39d01a7bcee16de5a7b4cb0c8a95a55ace9ca24ac499dee343db7de5d7455443f868cd02f612ef9f6787001ee8e53d8b046304d451507e25ca7ce 0016-Add-powerpc-unknown-linux-musl-target.patch +2f353c5e29e00f9e8f28b6c9010b204138a6913565674afd40ab79f2b434ed8af8296d2fe92459c103eb6262579466c44be2280e5ec46e129855fcb06f314e32 0017-Use-the-ELFv2-ABI-on-powerpc64-musl.patch +c63ce49e7041991e78921d4b6f36e037fbcf478eb30a8590fbb0349bc55ead4639ebf95f8d90d7d572244dbf14f74471c192cc2c7dd020fb8f274e885f130c29 0018-Fix-powerpc64-ELFv2-big-endian-struct-passing-ABI.patch +96d6473a9a1aed1df0911da4583ff8377ecf9cea920aaeafdbf4f4db652027e2937e1108eb21aafc044c0b45a6cd1f152393c5fa527cdabd4ce4e70f69fe15c6 0019-Add-powerpc64-unknown-linux-musl-target.patch +133f2b57e351dd6a75ac3abe3d980c3e1e40af4cdfe7fc4a05ed3e45029ae69ab979db7edb2b890742c107120f436404fc720e20df52fd9d5ff14d22a7d82aa4 0020-run-pass-const-endianness-negate-before-to_le.patch +652420d7bdc9be4e6136577e375e9b43f7c4086b3f0c1b4739c7eb6303c7826df84f40da7811618f296edcf712357e4b046e477b748605d066ab6d8015c6a619 0021-Fix-double_check-tests-on-big-endian-targets.patch +7eb0c8eb095ca0201b26444b275005a89921731e87fb7a82d3d46215f14acc8b987134288955fc90f9d419ebe0cb26e09589906aa954bcbe229e25b737c64c7d 0022-x.py-Use-python3-instead-of-python.patch +231d37dcd04787300a38122f1482b616970e070a4a87349aeaf5ec9f7d15563feeaa88be9cfc0863640b22596f5c2e2acfe7f9b22e43e6f1ee90f3b4730e746b 0023-test-target-feature-gate-Only-run-on-relevant-target.patch +b6c34f9982d6f5b59acc716391a63f922accf69bdcf2631ab57ce3279a62e1874bceb7d0707fdd5290a17ec88e948d803c567476f904f96b7e5d7a240a4ee53c 0024-test-use-extern-for-plugins-Don-t-assume-multilib.patch +cf8d642afcfd27fbc8c982a27d7d09f6097f1d0bfb67251d3a51323bd86743f584ebbd1cb4a8e872bd7711610929aa4bd514a107956fb89dd14f6dc50e9bdd26 0025-Ignore-broken-and-non-applicable-tests.patch +9b9f4625d0a56417fa72d58982e55449b8fb5ed103799327a9017976ddd8ec431e81f592d3f843927068bd0e68e8e5a589650f18fb37bd275100f17bb65a1560 0026-Link-stage-2-tools-dynamically-to-libstd.patch +35fc80eb99d818f8d4c67a5dc72c1acc56a26b529b5a24cad7aa0d5ea4e872384c4eb07084caa3436140cdf377ed0bbcb920e40473a65f2ff90e3ddc1e20e390 0027-Move-debugger-scripts-to-usr-share-rust.patch +ab300269ab18f3d8e82586d0ff1a8f2713027aa675844450cd1dc30f9fd8daf268caa4e61744c927044dd7d62638b9153e123ed6eb242f0ccab892306e1991a8 0028-Add-foxkit-target-specs.patch +542a3aa430eea4142428293e7a9f4077210a319bb7bd91a4f051222277862bc4a8eba1c013ec6d7dddbc848e1b903cc8c4082d1aad623ec85674de14ba95a2ca 0029-Work-around-libbacktrace-built-with-fstack-protector.patch f94abe390798b968bccfba1c908ab5895220ed0d167314b790a9c28b10cac81fb2e3b08760b4e8551ad5a5d02cd052d3d0d647ad8f8634e97f4d3b0470a21c42 0030-liblibc-linkage.patch -48a2ea6beb5f333d646fcc7aa15405d24f52f48e82b8f9cd09737dbfef16df0679246b30a28871595d13414b44c316122e0c969e1ae555b7ab18b692057c0d67 0031-liblibc-dcff154781e4.patch -fcfdd6b2702b8b23d8fd339ceb23b75a6e9814a388f00d226c8101be46a0f29835c77b75ab665e36972fde14364d762816ea2dcf3c1d90dd1e574fb8f6c33c80 0032-liblibc-90c01fa6b0f4.patch -1e1e1f485abd8e3e283aa69b3b5c6f11901d0cc14527834a6490ed70c043512aa207ff4f9ef4bbdef884697120fab59d23ec1faf3b02b3d3d77a060789275cd4 0033-liblibc-checksums.patch -9182408b7a87fc2f01dc12a36440e43a721f7693da00310806f6306e711c04b34d43b6ab348ae523656937f61389adb6a5a2b8ff46dec5424ad20c29652d4edf 0034-rls-atomics.patch" +9b761388e3e7d4ac7ced81bf2572439724f4ce3190b49429b92249f4b858cc9bbb79d72e25365825cbd25cb9b3352c627dcc88cc643e5abeb917cf14755cab0b 0031-liblibc-0163a7ce20b5.patch +48a2ea6beb5f333d646fcc7aa15405d24f52f48e82b8f9cd09737dbfef16df0679246b30a28871595d13414b44c316122e0c969e1ae555b7ab18b692057c0d67 0032-libc-dcff154781e4.patch +fcfdd6b2702b8b23d8fd339ceb23b75a6e9814a388f00d226c8101be46a0f29835c77b75ab665e36972fde14364d762816ea2dcf3c1d90dd1e574fb8f6c33c80 0033-libc-90c01fa6b0f4.patch +7773b0c20aee126f90960c29b575f0c3c949d877e6b0e682c34ba8cdf6055a57697d6d6c287eafdf5976125830d5898128c73ac7dc8b4c40347577afcdb086d5 0034-libc-0163a7ce20b5.patch +6c5d68874bb82de214ff0488bd0ff7c1215c48575618d4d37d307004d462b4010df0d4909dd73da7f024c9ea00f5e2680a733235b6b85abdbd352cf1e13a6681 0035-libc-checksums.patch +94ee746f50ba3d88e409cd6b840a0995fa40d38e6a3c4a7e9fa32430242c492f35f6fb95ee22e0da6dba84f39dc83f0196a0921c5ec2bc602ea220b017c78be2 0035-rand-5b9e5c39d857.patch +5e409a7e45afd2104e1bbbcedb0cc2a04b2c3838d820bb3dc6e879a3d4619f0cce562d2bf2b0c55b780375bf26f0d4d4d6b0acdac199e1c39b2d94543d35e017 0036-rand-checksums.patch +9182408b7a87fc2f01dc12a36440e43a721f7693da00310806f6306e711c04b34d43b6ab348ae523656937f61389adb6a5a2b8ff46dec5424ad20c29652d4edf 0040-rls-atomics.patch" diff --git a/user/shunit2/APKBUILD b/user/shunit2/APKBUILD index 8a110ff6d..baa658cf8 100644 --- a/user/shunit2/APKBUILD +++ b/user/shunit2/APKBUILD @@ -9,7 +9,7 @@ arch="noarch" license="Apache-2.0" depends="/bin/sh" makedepends="" -checkdepends="debianutils-which bash dash zsh" +checkdepends="cmd:which bash dash zsh" subpackages="$pkgname-doc" source="$pkgname-$pkgver.tar.gz::https://github.com/kward/shunit2/archive/v$pkgver.tar.gz dash-negative-lineno.patch" diff --git a/user/solid/APKBUILD b/user/solid/APKBUILD index d29ac7ad0..568ccdcee 100644 --- a/user/solid/APKBUILD +++ b/user/solid/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=solid -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Platform-independent hardware discovery and access" url="https://www.kde.org/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="f51c7bcaed7b2390f1b290791d7e9dc4a86ce8a925a2955c072be66274257c81c7872f76105fa8a03b35c184a8598551aa2bfa74017de487fc5a3521ea49d6a1 solid-5.50.0.tar.xz" +sha512sums="4a57a96f9080734781f4bddc33aa3ebc312fdf784e61cd143f76e0a222cec26bcb62322f68422d770ca8494b64344f0870fa63d66fec17bc3a209511c168d226 solid-5.51.0.tar.xz" diff --git a/user/sonnet/APKBUILD b/user/sonnet/APKBUILD index 740351e1d..2f6b2b679 100644 --- a/user/sonnet/APKBUILD +++ b/user/sonnet/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=sonnet -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for implementing portable spell check functionality" url="https://www.kde.org/" @@ -50,4 +50,4 @@ aspell() { "$subpkgdir"/usr/lib/qt5/plugins/kf5/sonnet/sonnet_aspell.so } -sha512sums="ac0f5a0f729150d305410a4b91e3db7f1ede4148116821364611984eabfe4533fcd0a0ae4fd25f515a1b44b8983156224ef0da9fc4513be04b5b411a4dc62174 sonnet-5.50.0.tar.xz" +sha512sums="6854d066ceee7826d058b8b9136cae52428e140237881c1ae80685304b456de8ac410896a9f1f136501cf39f09351f3c4354fe3f5b51bd7bbb6bfef822d2b859 sonnet-5.51.0.tar.xz" diff --git a/user/spectacle/APKBUILD b/user/spectacle/APKBUILD index aae2e4984..9da4292b0 100644 --- a/user/spectacle/APKBUILD +++ b/user/spectacle/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=spectacle -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Application for capturing desktop screenshots" url="https://www.kde.org/applications/graphics/spectacle/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="659cf0f49793437903caea703ab54cc9f6077645dea7a6823830cf803d7fe35a5dfbc66265fecbeacaf1e4b80762b6e54b7f07a6f52a2a0fddfa88aa752d53c6 spectacle-18.08.1.tar.xz" +sha512sums="a50e1a8c92f280ad89a023d2fc841a4bf4c7bec7e27cfdc935e6d425380e9f91665ccfafe036f141ce1791400937d22fdb021f4e5ae61c9ef49f7b25e1dc1cbe spectacle-18.08.2.tar.xz" diff --git a/user/sshfs/APKBUILD b/user/sshfs/APKBUILD index 404c077be..32fcfbd7c 100644 --- a/user/sshfs/APKBUILD +++ b/user/sshfs/APKBUILD @@ -10,7 +10,7 @@ options="!check" # Requires fuse kernel module to be loaded and local ssh serve license="GPL-2.0-only AND GPL-2.0+ AND LGPL-2.1-only" depends="openssh-client" makedepends="fuse3-dev glib-dev meson coreutils py3-docutils" -#checkdepends="py3-pytest debianutils-which" +#checkdepends="py3-pytest cmd:which" subpackages="$pkgname-doc" source="https://github.com/libfuse/$pkgname/releases/download/$pkgname-$pkgver/$pkgname-$pkgver.tar.xz" diff --git a/user/step/APKBUILD b/user/step/APKBUILD index 4b7b0e5f8..45a15a6ad 100644 --- a/user/step/APKBUILD +++ b/user/step/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=step -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Interactive physics simulation" url="https://www.kde.org/applications/education/step/" @@ -10,7 +10,7 @@ license="GPL-2.0-only" depends="" makedepends="cmake extra-cmake-modules qt5-qtbase-dev qt5-qtdeclarative-dev kdoctools-dev qt5-qtsvg-dev kcrash-dev khtml-dev kconfig-dev eigen-dev - kdelibs4support-dev knewstuff-dev kplotting-dev" + kdelibs4support-dev knewstuff-dev kplotting-dev gsl-dev" subpackages="$pkgname-doc $pkgname-lang" source="https://download.kde.org/stable/applications/$pkgver/src/step-$pkgver.tar.xz" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="7d35e51ccdb388fd56e3c03e2db7404146f0d8fe4294c8c6e21e376d5d09c36c79814a471164e606c664f47c42fa8bb08d4bb759be8a23d3298e976c2fa6c2ed step-18.08.1.tar.xz" +sha512sums="55041ada66bd504151f6355c71c3c29e414b9cb285bea8406626ffa69ea246f41f81961b9cce31e5bf09400bd98e9cfe31f84aff392462979fb4c398968a2edd step-18.08.2.tar.xz" diff --git a/user/syntax-highlighting/APKBUILD b/user/syntax-highlighting/APKBUILD index 3c96bddb1..0d2324455 100644 --- a/user/syntax-highlighting/APKBUILD +++ b/user/syntax-highlighting/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=syntax-highlighting -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="Framework for rendering programming code with formatting" url="https://www.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="9f452946747a6f524b299547b608b0903ef359ea736182684f3ea2d7709659604bb4a9c8a474ab88123e9d066a35d81a6a67748e05e4bb9e66d20838113ff874 syntax-highlighting-5.50.0.tar.xz" +sha512sums="929aa7d3e8f323c1618db17d7803bebd7f61a6b024ac6205f570db2ee3d567b4e1c1ae38b7fec0c0d9ba81c4f52c90c9e2660cfee209350e59e9bb301fbb3fba syntax-highlighting-5.51.0.tar.xz" diff --git a/user/threadweaver/APKBUILD b/user/threadweaver/APKBUILD index 2fa1e5e8d..70c07719a 100644 --- a/user/threadweaver/APKBUILD +++ b/user/threadweaver/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=threadweaver -pkgver=5.50.0 +pkgver=5.51.0 pkgrel=0 pkgdesc="High-level threading framework" url="https://www.kde.org/" @@ -41,4 +41,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="a452aea4ca141c4964129412b42f8fe6457ca156edbd99770453564960714abeec395d78ab2686f01fa602822938fd50cb706920c25ec909d4446bfd14602175 threadweaver-5.50.0.tar.xz" +sha512sums="b93ab96ea0033df07aa41fdff8289c75e908dddb5caaa60a288827e8b8a7d3035b3fc9beca63b25a4d785f0cc2622cb6aa83ba9423d5716f0138b8b49531076a threadweaver-5.51.0.tar.xz" diff --git a/user/umbrello/APKBUILD b/user/umbrello/APKBUILD index 4207012ae..432d310d4 100644 --- a/user/umbrello/APKBUILD +++ b/user/umbrello/APKBUILD @@ -1,7 +1,7 @@ # Contributor: A. Wilcox <awilfox@adelielinux.org> # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=umbrello -pkgver=18.08.1 +pkgver=18.08.2 pkgrel=0 pkgdesc="Software modelling tool and code generator" url="https://umbrello.kde.org/" @@ -42,4 +42,4 @@ package() { make DESTDIR="$pkgdir" install } -sha512sums="614ad45d95bc7f07eec668b5f2a54e6748be31b4bb0fe60fd86fe35df3df73a7ce6e12b867118674dd6961ed167249824344e2fb2155e8a58b1e07074dec8679 umbrello-18.08.1.tar.xz" +sha512sums="55941afe05b72085aefac3604ac9a9023f46149e5aad0784fa14942907c21009fb20919750a969abb8c398bcb2f99f3e23e3b91eed06f0cb5a8897563aaa52b8 umbrello-18.08.2.tar.xz" diff --git a/user/which/APKBUILD b/user/which/APKBUILD index 42e7e3b10..cea55c32a 100644 --- a/user/which/APKBUILD +++ b/user/which/APKBUILD @@ -2,7 +2,7 @@ # Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com> pkgname=which pkgver=2.21 -pkgrel=1 +pkgrel=2 pkgdesc="A utility to show the full path of commands" url="http://savannah.gnu.org/projects/which" arch="all" @@ -10,6 +10,7 @@ license="GPL-2.0+ AND LGPL-2.0+ AND GPL-3.0+" makedepends="" subpackages="$pkgname-doc" source="http://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz" +provider_priority=1 build() { cd "$builddir" diff --git a/user/xdotool/APKBUILD b/user/xdotool/APKBUILD index 35d7984cc..3aae63783 100644 --- a/user/xdotool/APKBUILD +++ b/user/xdotool/APKBUILD @@ -12,7 +12,7 @@ license="BSD-3-Clause" depends="" depends_dev="libx11-dev libxtst-dev libxinerama-dev libxkbcommon-dev" makedepends="$depends_dev perl" -#checkdepends="xvfb ruby-minitest debianutils-which lsof xdpyinfo xterm xwininfo" +#checkdepends="xvfb ruby-minitest cmd:which lsof xdpyinfo xterm xwininfo" subpackages="$pkgname-dev $pkgname-doc" source="https://github.com/jordansissel/xdotool/releases/download/v$pkgver/xdotool-$pkgver.tar.gz" diff --git a/user/xfce4-panel-profiles/APKBUILD b/user/xfce4-panel-profiles/APKBUILD index 8719fc556..f30ebb39a 100644 --- a/user/xfce4-panel-profiles/APKBUILD +++ b/user/xfce4-panel-profiles/APKBUILD @@ -9,7 +9,7 @@ arch="noarch" options="!check" # no tests license="GPL-3.0+" depends="python3" -makedepends="intltool which" +makedepends="intltool cmd:which" subpackages="$pkgname-doc $pkgname-lang" source="http://archive.xfce.org/src/apps/xfce4-panel-profiles/1.0/xfce4-panel-profiles-$pkgver.tar.bz2" sha512sums="2d7980a79250414cc4611ccf573c2a3ee5eb510cf3ef6c32035ba23197eee1fded2e158cb50714dd935070916b07b3f33db02570f3d46a598144b4a2d3979ff4 xfce4-panel-profiles-1.0.8.tar.bz2" |