diff options
author | davidovski <david@davidovski.xyz> | 2022-08-29 13:01:02 +0000 |
---|---|---|
committer | davidovski <david@davidovski.xyz> | 2022-08-29 13:01:02 +0000 |
commit | c38dfe6188112ca490090966a63faefe5ec7e9a0 (patch) | |
tree | 0b5cb4f2b5148784d852070317d90485ab31e122 /repo | |
parent | 49fa1762a5c52ff2cf981f29a45e1797e3885bb4 (diff) |
added snes9x and php
Diffstat (limited to 'repo')
33 files changed, 1206 insertions, 13 deletions
diff --git a/repo/audacity/audacity.xibuild b/repo/audacity/audacity.xibuild new file mode 100644 index 0000000..5d54af0 --- /dev/null +++ b/repo/audacity/audacity.xibuild @@ -0,0 +1,42 @@ +#!/bin/sh + +NAME="audacity" +DESC="Multitrack audio editor" + +MAKEDEPS="make bash alsa-lib bash expat flac jack lame libid3tag libmad libogg libsndfile libvorbis soundtouch soxr taglib wxgtk3 ffmpeg automake autoconf libtool" +DEPS="" + +PKG_VER=2.3.2 +SOURCE="https://github.com/audacity/audacity/archive/Audacity-$PKG_VER.tar.gz" + +prepare () { + autoreconf -fi +} + +build () { + WX_CONFIG=wx-config-gtk3 \ + bash configure \ + --prefix="/usr" \ + --with-libsndfile="system" \ + --with-ffmpeg="system" \ + --with-expat="system" \ + --with-lame="system" \ + --with-libsoxr="system" \ + --with-portaudio \ + --with-portmidi \ + --with-libflac \ + --with-libid3tag \ + --with-libsamplerate \ + --with-sbsms \ + --with-soundtouch \ + --with-libtwolame \ + --with-libvorbis \ + --without-lv2 \ + --enable-sse + make + +} + +package () { + make DESTDIR=$PKG_DEST install +} diff --git a/repo/autoconf/autoconf.xibuild b/repo/autoconf/autoconf.xibuild index 8068345..9b4330f 100644 --- a/repo/autoconf/autoconf.xibuild +++ b/repo/autoconf/autoconf.xibuild @@ -1,7 +1,6 @@ #!/bin/sh -MAKEDEPS="make" -DEPS="gawk m4 diffutils perl sh gettext" +MAKEDEPS="make gawk m4 diffutils perl sh gettext" PKG_VER=2.71 SOURCE=https://ftp.gnu.org/gnu/autoconf/autoconf-$PKG_VER.tar.xz diff --git a/repo/laptop-mode-tools/laptop-mode-tools.xibuild b/repo/laptop-mode-tools/laptop-mode-tools.xibuild new file mode 100644 index 0000000..b07e671 --- /dev/null +++ b/repo/laptop-mode-tools/laptop-mode-tools.xibuild @@ -0,0 +1,22 @@ +#!/bin/sh + +NAME="laptop-mode-tools" +DESC="Power Savings tool for Linux" + +MAKEDEPS="make sh" +DEPS="" + +PKG_VER=1.74 +SOURCE="https://github.com/rickysarraf/laptop-mode-tools/releases/download/$PKG_VER/laptop-mode-tools_$PKG_VER.tar.gz" + +ADDITIONAL="laptop-mode.initd" + +package () { + DESTDIR="${PKG_DEST}" \ + INIT_D="none" \ + MAN_D="/usr/share/man" \ + PMU="disabled" \ + sh ./install.sh + + install -Dm755 laptop-mode.initd /etc/init.d/laptop-mode +} diff --git a/repo/laptop-mode-tools/laptop-mode.initd b/repo/laptop-mode-tools/laptop-mode.initd new file mode 100644 index 0000000..eef8199 --- /dev/null +++ b/repo/laptop-mode-tools/laptop-mode.initd @@ -0,0 +1,52 @@ +#!/sbin/openrc-run +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_started_commands="reload" + +depend() { + need localmount + use acpid hald + after bootmisc +} + +checkconfig() { + if [ ! -f /proc/sys/vm/laptop_mode ] ; then + eerror "Kernel does not support laptop_mode" + return 1 + fi +} + +start() { + checkconfig || return 1 + + ebegin "Starting laptop_mode" + # bug #342049 fix + # check if dir exists and creates if it doesn't + checkpath -q -d -m 755 /var/run/laptop-mode-tools + touch /var/run/laptop-mode-tools/enabled + /usr/sbin/laptop_mode auto >/dev/null + eend $? +} + +stop() { + ebegin "Stopping laptop_mode" + rm -f /var/run/laptop-mode-tools/enabled + /usr/sbin/laptop_mode stop >/dev/null + eend $? +} + +reload() { + if ! service_started "${SVCNAME}" ; then + eerror "${SVCNAME} has not yet been started" + return 1 + fi + + ebegin "Reloading laptop_mode" + /usr/sbin/laptop_mode stop >/dev/null + rm -f /var/run/laptop-mode-tools/* + /usr/sbin/laptop_mode auto force >/dev/null + eend $? +} + +# vim: set ts=4 : diff --git a/repo/libtool/libtool.xibuild b/repo/libtool/libtool.xibuild index c97257c..297dc8f 100644 --- a/repo/libtool/libtool.xibuild +++ b/repo/libtool/libtool.xibuild @@ -1,6 +1,6 @@ #!/bin/sh -MAKEDEPS="make " +MAKEDEPS="make m4" DEPS="sh tar musl" PKG_VER=2.4.6 diff --git a/repo/libxcrypt/libxcrypt.xibuild b/repo/libxcrypt/libxcrypt.xibuild index ec931e1..8273922 100644 --- a/repo/libxcrypt/libxcrypt.xibuild +++ b/repo/libxcrypt/libxcrypt.xibuild @@ -1,7 +1,7 @@ #!/bin/sh MAKEDEPS="make" -DEPS="musl perl" +DEPS="musl perl readline" PKG_VER=4.4.26 SOURCE=https://github.com/besser82/libxcrypt/releases/download/v$PKG_VER/libxcrypt-$PKG_VER.tar.xz diff --git a/repo/openrgb/0001-fix-build.patch b/repo/openrgb/0001-fix-build.patch new file mode 100644 index 0000000..f9371d9 --- /dev/null +++ b/repo/openrgb/0001-fix-build.patch @@ -0,0 +1,29 @@ +diff --git a/i2c_smbus/i2c_smbus_linux.cpp b/i2c_smbus/i2c_smbus_linux.cpp +index 33d1494b..1c5ff27b 100644 +--- a/i2c_smbus/i2c_smbus_linux.cpp ++++ b/i2c_smbus/i2c_smbus_linux.cpp +@@ -14,6 +14,24 @@ + #include <sys/ioctl.h> + #include <cstring> + ++#ifndef HAVE_CANONICALIZE_FILE_NAME ++#include <limits.h> ++#include <string.h> ++#include <stdlib.h> ++#include <stdio.h> ++static char * canonicalize_file_name(const char *path) ++{ ++ char buf[PATH_MAX] = { }; ++ ++ snprintf(buf, sizeof(buf) - 1, "%s", path); ++ ++ if (!realpath(path, buf)) ++ return NULL; ++ ++ return strdup(buf); ++} ++#endif ++ + s32 i2c_smbus_linux::i2c_smbus_xfer(u8 addr, char read_write, u8 command, int size, union i2c_smbus_data* data) + { + diff --git a/repo/openrgb/modules-load.conf b/repo/openrgb/modules-load.conf new file mode 100644 index 0000000..0cdf71f --- /dev/null +++ b/repo/openrgb/modules-load.conf @@ -0,0 +1 @@ +i2c-dev diff --git a/repo/openrgb/openrgb.post-install b/repo/openrgb/openrgb.post-install new file mode 100644 index 0000000..739ef0c --- /dev/null +++ b/repo/openrgb/openrgb.post-install @@ -0,0 +1,5 @@ +#!/bin/sh + +modprobe i2c-dev + +exit 0 diff --git a/repo/openrgb/openrgb.xibuild b/repo/openrgb/openrgb.xibuild new file mode 100644 index 0000000..4934a60 --- /dev/null +++ b/repo/openrgb/openrgb.xibuild @@ -0,0 +1,36 @@ +#!/bin/sh + +NAME="openrgb" +DESC="Open source RGB lighting control that doesn't depend on manufacturer software" + +MAKEDEPS="hidapi libusb mbedtls qt5-qtbase" + +PKG_VER=0.7 +SOURCE="https://gitlab.com/CalcProgrammer1/OpenRGB/-/archive/release_$PKG_VER/OpenRGB-release_$PKG_VER.tar.gz" + +ADDITIONAL=" +0001-fix-build.patch +modules-load.conf +openrgb.post-install +" + +prepare () { +# apply_patches +true +} + +build() { + qmake-qt5 PREFIX=/usr + make +} + +check() { + make check +} + +package() { + INSTALL_ROOT="$PKG_DEST" make install + + install -Dm644 "$BUILD_ROOT"/modules-load.conf "$PKG_DEST"/usr/lib/modules-load.d/openrgb.conf +} + diff --git a/repo/perl/perl.xibuild b/repo/perl/perl.xibuild index 494b9f1..e4b5cbd 100644 --- a/repo/perl/perl.xibuild +++ b/repo/perl/perl.xibuild @@ -3,7 +3,7 @@ MAKEDEPS="make sed" DEPS="gdbm musl bzip2 zlib tar" -PKG_VER=5.34.0 +PKG_VER=5.36.0 SOURCE=https://www.cpan.org/src/5.0/perl-$PKG_VER.tar.gz DESC="The Practical Extraction and Report Language" ADDITIONAL=" diff --git a/repo/php8/.php8.xibuild.swp b/repo/php8/.php8.xibuild.swp Binary files differnew file mode 100644 index 0000000..ffdb8e4 --- /dev/null +++ b/repo/php8/.php8.xibuild.swp diff --git a/repo/php8/atomic-lsapi.patch b/repo/php8/atomic-lsapi.patch new file mode 100644 index 0000000..39cf182 --- /dev/null +++ b/repo/php8/atomic-lsapi.patch @@ -0,0 +1,82 @@ +Patch-Source: https://github.com/php/php-src/pull/7997 + +diff --git a/sapi/litespeed/lsapilib.c b/sapi/litespeed/lsapilib.c +index 2208bbd47b..42dd320356 100644 +--- a/sapi/litespeed/lsapilib.c ++++ b/sapi/litespeed/lsapilib.c +@@ -443,7 +443,7 @@ static void lsapi_close_connection(LSAPI_Request *pReq) + if (s_busy_workers) + __sync_fetch_and_sub(s_busy_workers, 1); + if (s_worker_status) +- __sync_lock_test_and_set(&s_worker_status->m_state, LSAPI_STATE_IDLE); ++ __atomic_test_and_set(&s_worker_status->m_state, LSAPI_STATE_IDLE); + } + + +@@ -1587,7 +1587,7 @@ int LSAPI_Accept_r( LSAPI_Request * pReq ) + else + { + if (s_worker_status) +- __sync_lock_test_and_set(&s_worker_status->m_state, ++ __atomic_test_and_set(&s_worker_status->m_state, + LSAPI_STATE_CONNECTED); + if (s_busy_workers) + __sync_fetch_and_add(s_busy_workers, 1); +@@ -3315,7 +3315,7 @@ static int lsapi_prefork_server_accept( lsapi_prefork_server * pServer, + if (pthread_atfork_func) + (*pthread_atfork_func)(NULL, NULL, set_skip_write); + +- __sync_lock_test_and_set(&s_worker_status->m_state, ++ __atomic_test_and_set(&s_worker_status->m_state, + LSAPI_STATE_CONNECTED); + if (s_busy_workers) + __sync_add_and_fetch(s_busy_workers, 1); +@@ -3402,7 +3402,7 @@ int LSAPI_Postfork_Child(LSAPI_Request * pReq) + if (pthread_atfork_func) + (*pthread_atfork_func)(NULL, NULL, set_skip_write); + +- __sync_lock_test_and_set(&s_worker_status->m_state, ++ __atomic_test_and_set(&s_worker_status->m_state, + LSAPI_STATE_CONNECTED); + if (s_busy_workers) + __sync_add_and_fetch(s_busy_workers, 1); +@@ -3651,7 +3651,7 @@ int LSAPI_Prefork_Accept_r( LSAPI_Request * pReq ) + if (fd == pReq->m_fdListen) + { + if (s_worker_status) +- __sync_lock_test_and_set(&s_worker_status->m_state, ++ __atomic_test_and_set(&s_worker_status->m_state, + LSAPI_STATE_ACCEPTING); + if (s_accepting_workers) + __sync_fetch_and_add(s_accepting_workers, 1); +@@ -3662,7 +3662,7 @@ int LSAPI_Prefork_Accept_r( LSAPI_Request * pReq ) + if (s_accepting_workers) + __sync_fetch_and_sub(s_accepting_workers, 1); + if (s_worker_status) +- __sync_lock_test_and_set(&s_worker_status->m_state, ++ __atomic_test_and_set(&s_worker_status->m_state, + LSAPI_STATE_IDLE); + } + +@@ -3711,7 +3711,7 @@ int LSAPI_Prefork_Accept_r( LSAPI_Request * pReq ) + if ( pReq->m_fd != -1 ) + { + if (s_worker_status) +- __sync_lock_test_and_set(&s_worker_status->m_state, ++ __atomic_test_and_set(&s_worker_status->m_state, + LSAPI_STATE_CONNECTED); + if (s_busy_workers) + __sync_fetch_and_add(s_busy_workers, 1); +diff --git a/sapi/litespeed/lsapilib.c b/sapi/litespeed/lsapilib.c +index 42dd320356..0932ebaaa8 100644 +--- a/sapi/litespeed/lsapilib.c ++++ b/sapi/litespeed/lsapilib.c +@@ -3390,7 +3390,7 @@ int LSAPI_Postfork_Child(LSAPI_Request * pReq) + { + int max_children = g_prefork_server->m_iMaxChildren; + s_pid = getpid(); +- __sync_lock_test_and_set(&pReq->child_status->m_pid, s_pid); ++ __atomic_test_and_set(&pReq->child_status->m_pid, s_pid); + s_worker_status = pReq->child_status; + + setsid(); diff --git a/repo/php8/disabled-tests.list b/repo/php8/disabled-tests.list new file mode 100644 index 0000000..6b6540f --- /dev/null +++ b/repo/php8/disabled-tests.list @@ -0,0 +1,213 @@ +# +# Tests that we don't need to run +# + +# Windows tests +ext/standard/tests/file/windows_mb_path/* +ext/standard/tests/file/*win32*.phpt +ext/standard/tests/dir/*win32*.phpt + +# Require database or slow as dblib +ext/mysqli/tests/* +ext/odbc/tests/* +ext/pdo/tests/*.phpt +ext/pdo_dblib/tests/* +ext/pdo_mysql/tests/* +ext/pdo_odbc/tests/* +ext/pdo_pgsql/tests/* +ext/pgsql/tests/* + +# +# Tests that fail and probably should not... +# + +# Too many tests fail! Some of them bogus, some not. +# THIS SHOULD BE REALLY FIXED! +ext/openssl/tests/bug46127.phpt +ext/openssl/tests/bug48182.phpt +ext/openssl/tests/bug54992.phpt +ext/openssl/tests/bug65538_001.phpt +ext/openssl/tests/bug65538_003.phpt +ext/openssl/tests/bug65729.phpt +ext/openssl/tests/bug68265.phpt +ext/openssl/tests/bug68879.phpt +ext/openssl/tests/bug68920.phpt +ext/openssl/tests/bug69215.phpt +ext/openssl/tests/bug72333.phpt +ext/openssl/tests/bug73072.phpt +ext/openssl/tests/bug74159.phpt +ext/openssl/tests/bug76705.phpt +ext/openssl/tests/bug77390.phpt +ext/openssl/tests/capture_peer_cert_001.phpt +ext/openssl/tests/openssl_peer_fingerprint_basic.phpt +ext/openssl/tests/peer_verification.phpt +ext/openssl/tests/san_peer_matching.phpt +ext/openssl/tests/session_meta_capture.phpt +ext/openssl/tests/session_meta_capture_tlsv13.phpt +ext/openssl/tests/sni_server.phpt +ext/openssl/tests/sni_server_key_cert.phpt +ext/openssl/tests/stream_crypto_flags_001.phpt +ext/openssl/tests/stream_crypto_flags_002.phpt +ext/openssl/tests/stream_crypto_flags_003.phpt +ext/openssl/tests/stream_crypto_flags_004.phpt +ext/openssl/tests/stream_security_level.phpt +ext/openssl/tests/stream_verify_peer_name_001.phpt +ext/openssl/tests/stream_verify_peer_name_002.phpt +ext/openssl/tests/stream_verify_peer_name_003.phpt +ext/openssl/tests/streams_crypto_method.phpt +ext/openssl/tests/tls_min_v1.0_max_v1.1_wrapper.phpt +ext/openssl/tests/tls_wrapper.phpt +ext/openssl/tests/tls_wrapper_with_tls_v1.3.phpt +ext/openssl/tests/tlsv1.0_wrapper.phpt +ext/openssl/tests/tlsv1.1_wrapper.phpt +ext/openssl/tests/tlsv1.2_wrapper.phpt +ext/openssl/tests/tlsv1.3_wrapper.phpt + +# Needs to open tls socket +ext/openssl/tests/bug62890.phpt + +# Broken tests, missing config. +sapi/fpm/tests/socket-ipv4-fallback.phpt + +# Fails in chroot (on Travis). +sapi/cli/tests/cli_process_title_unix.phpt + +# Error messages in different order. +sapi/cgi/tests/005.phpt + +# Fails on ppc64le. +sapi/phpdbg/tests/watch_006.phpt + +# Not stable enchant-2 library support - 15/29 +ext/enchant/tests/broker_dict_exists.phpt +ext/enchant/tests/broker_free_02.phpt +ext/enchant/tests/broker_free_dict.phpt +ext/enchant/tests/broker_request_dict.phpt +ext/enchant/tests/broker_request_dict_01.phpt +ext/enchant/tests/broker_set_ordering.phpt +ext/enchant/tests/dict_add_to_personal.phpt +ext/enchant/tests/dict_add_to_session.phpt +ext/enchant/tests/dict_check.phpt +ext/enchant/tests/dict_describe.phpt +ext/enchant/tests/dict_get_error.phpt +ext/enchant/tests/dict_is_in_session.phpt +ext/enchant/tests/dict_quick_check_01.phpt +ext/enchant/tests/dict_store_replacement.phpt +ext/enchant/tests/dict_suggest.phpt + +# Wrong charset, conversion from `UTF-8' to `ASCII//TRANSLIT' is not allowed. +ext/iconv/tests/iconv_basic_001.phpt + +# Wrong charset, conversion from `UTF-8' to `UTF-8//IGNORE' is not allowed. +ext/iconv/tests/bug48147.phpt + +# stream_filter_append(): unable to create or locate filter "convert.iconv.ucs-2/utf-8//IGNORE" +ext/iconv/tests/bug76249.phpt + +# for ICU <= 57.1 +ext/intl/tests/spoofchecker_001.phpt +ext/intl/tests/timezone_IDforWindowsID_basic.phpt +ext/intl/tests/timezone_windowsID_basic.phpt + +# Class 'Phar' not found. +ext/opcache/tests/issue0115.phpt +ext/opcache/tests/issue0149.phpt + +# Fails in CI - Insufficient privileges. https://gitlab.alpinelinux.org/alpine/aports/-/issues/12692#note_169663 +ext/pcntl/tests/pcntl_unshare_01.phpt +ext/pcntl/tests/pcntl_unshare_02.phpt +ext/pcntl/tests/pcntl_unshare_03.phpt +ext/pcntl/tests/pcntl_unshare_04.phpt + +# Randomly fails. +ext/pcntl/tests/002.phpt +# Randomly fails on arm7 +ext/standard/tests/file/bug60120.phpt + +# Call to undefined function session_start(). +ext/session/tests/session_regenerate_id_cookie.phpt + +# Class 'SoapServer' not found. +ext/soap/tests/bug73037.phpt + +# Incorrect results. +ext/soap/tests/server009.phpt + +# Failing tests related to locale and/or iconv. +ext/date/tests/009.phpt +ext/iconv/tests/bug52211.phpt +ext/intl/tests/bug67052.phpt +ext/json/tests/bug41403.phpt +ext/pcre/tests/ctype_back_to_c.phpt +ext/pcre/tests/locales.phpt +ext/soap/tests/bugs/bug39815.phpt +ext/standard/tests/array/locale_sort.phpt +ext/standard/tests/strings/htmlentities02.phpt +ext/standard/tests/strings/htmlentities03.phpt +ext/standard/tests/strings/setlocale_basic1.phpt +ext/standard/tests/strings/setlocale_basic2.phpt +ext/standard/tests/strings/setlocale_basic3.phpt +ext/standard/tests/strings/setlocale_error.phpt +ext/standard/tests/strings/setlocale_variation1.phpt +ext/standard/tests/strings/setlocale_variation2.phpt +ext/standard/tests/strings/setlocale_variation3.phpt +ext/standard/tests/strings/setlocale_variation4.phpt +ext/standard/tests/strings/setlocale_variation5.phpt +ext/standard/tests/strings/sprintf_f_3.phpt +ext/standard/tests/strings/strtoupper.phpt +ext/standard/tests/time/strptime_basic.phpt +ext/standard/tests/time/strptime_parts.phpt +tests/basic/consistent_float_string_casts.phpt +ext/standard/tests/strings/locale_independent_float_to_string.phpt +tests/lang/bug30638.phpt +Zend/tests/lc_ctype_inheritance.phpt + +# setlocale() does not affect result of nl_langinfo(CODESET) always returns UTF-8 +ext/fileinfo/tests/bug74170.phpt +ext/standard/tests/strings/bug79986.phpt + +# Wrong results +ext/pcre/tests/bug79846.phpt +ext/pcre/tests/bug80118.phpt +# compilation failed https://gitlab.alpinelinux.org/alpine/aports/-/issues/13116 +ext/pcre/tests/bug70345.phpt + +# no xml header displayed +ext/tidy/tests/020.phpt + +# float formatting +ext/standard/tests/strings/printf_h_H.phpt + +# fails on armv7 +ext/standard/tests/strings/chunk_split_variation2_32bit.phpt + +# fails on arch64, ppc64le, s390x +ext/standard/tests/array/range.phpt + + +# +# Tests that fail for known reason and/or we don't need to worry about them +# + +# Fails due to unsupported JP charsets. +ext/iconv/tests/eucjp2iso2022jp.phpt +ext/iconv/tests/iconv_mime_encode.phpt + +# Requires running SNMP server. +ext/snmp/tests/* + +# Expects permissions on /etc to be 40755 +ext/standard/tests/file/006_error.phpt + +# Fails probably due to differencies in musl. +ext/sockets/tests/socket_create_pair-wrongparams.phpt + +# Fail due to libxml2 upgrade to 2.9.12 +# See: https://gitlab.alpinelinux.org/alpine/aports/-/issues/12692 +ext/dom/tests/DOMDocument_loadXML_error1.phpt +ext/dom/tests/DOMDocument_load_error1.phpt +ext/dom/tests/bug43364.phpt +ext/dom/tests/bug80268.phpt +ext/libxml/tests/bug61367-read.phpt +ext/libxml/tests/libxml_disable_entity_loader.phpt +sapi/fpm/tests/bug68391-conf-include-order.phpt diff --git a/repo/php8/fix-tests-devserver.patch b/repo/php8/fix-tests-devserver.patch new file mode 100644 index 0000000..5447980 --- /dev/null +++ b/repo/php8/fix-tests-devserver.patch @@ -0,0 +1,23 @@ +From: Jakub Jirutka <jakub@jirutka.cz> +Date: Mon, 01 May 2017 01:33:00 +0200 +Subject: [PATCH] Fix tests failing due to extra message from built-in web server + +Remove messages like: + + PHP 7.1.4 Development Server started at Mon May 1 00:42:39 2017 + +from test outputs, because tests do not expect them. I have no clue what +happens here... + +--- a/run-tests.php ++++ b/run-tests.php +@@ -2563,6 +2563,9 @@ + // Does the output match what is expected? + $output = preg_replace("/\r\n/", "\n", trim($out)); + ++ // Remove message from built-in development server. ++ $output = preg_replace("/^PHP [0-9.]+ Development Server started at .*\n\n?/m", "", $output); ++ + /* when using CGI, strip the headers from the output */ + $headers = []; + diff --git a/repo/php8/includedir.patch b/repo/php8/includedir.patch new file mode 100644 index 0000000..a835815 --- /dev/null +++ b/repo/php8/includedir.patch @@ -0,0 +1,41 @@ +--- a/scripts/Makefile.frag ++++ b/scripts/Makefile.frag +@@ -2,7 +2,7 @@ + # Build environment install + # + +-phpincludedir = $(includedir)/php ++phpincludedir = $(includedir)/php8 + phpbuilddir = $(libdir)/build + + BUILD_FILES = \ +--- a/ext/pdo/Makefile.frag ++++ b/ext/pdo/Makefile.frag +@@ -1,4 +1,4 @@ +-phpincludedir=$(prefix)/include/php ++phpincludedir=$(prefix)/include/php8 + + PDO_HEADER_FILES= \ + php_pdo.h \ +--- a/scripts/php-config.in ++++ b/scripts/php-config.in +@@ -6,7 +6,7 @@ + exec_prefix="@exec_prefix@" + version="@PHP_VERSION@" + vernum="@PHP_VERSION_ID@" +-include_dir="@includedir@/php" ++include_dir="@includedir@/php8" + includes="-I$include_dir -I$include_dir/main -I$include_dir/TSRM -I$include_dir/Zend -I$include_dir/ext -I$include_dir/ext/date/lib" + ldflags="@PHP_LDFLAGS@" + libs="@EXTRA_LIBS@" +--- a/scripts/phpize.in ++++ b/scripts/phpize.in +@@ -5,7 +5,7 @@ + datarootdir='@datarootdir@' + exec_prefix="`eval echo @exec_prefix@`" + phpdir="`eval echo @libdir@`/build" +-includedir="`eval echo @includedir@`/php" ++includedir="`eval echo @includedir@`/php8" + builddir="`pwd`" + SED="@SED@" + diff --git a/repo/php8/install-pear.patch b/repo/php8/install-pear.patch new file mode 100644 index 0000000..1c9f07f --- /dev/null +++ b/repo/php8/install-pear.patch @@ -0,0 +1,14 @@ +--- ./pear/Makefile.frag.orig 2013-04-12 07:02:27.041602514 +0000 ++++ ./pear/Makefile.frag 2013-04-12 07:04:09.065836822 +0000 +@@ -1,7 +1,10 @@ + peardir=$(PEAR_INSTALLDIR) + ++# help the built php to find xml extension so we can install pear ++PEAR_INSTALL_XML_FLAGS = -d extension="$(top_builddir)/modules/xml.so" -d extension="$(top_builddir)/modules/phar.so" ++ + # Skip all php.ini files altogether +-PEAR_INSTALL_FLAGS = -n -dshort_open_tag=0 -dopen_basedir= -derror_reporting=1803 -dmemory_limit=-1 -ddetect_unicode=0 ++PEAR_INSTALL_FLAGS = -n -dshort_open_tag=0 -dopen_basedir= -derror_reporting=1803 -dmemory_limit=-1 -ddetect_unicode=0 $(PEAR_INSTALL_XML_FLAGS) + + WGET = `which wget 2>/dev/null` + FETCH = `which fetch 2>/dev/null` diff --git a/repo/php8/php8-fpm-version-suffix.patch b/repo/php8/php8-fpm-version-suffix.patch new file mode 100644 index 0000000..50e1345 --- /dev/null +++ b/repo/php8/php8-fpm-version-suffix.patch @@ -0,0 +1,79 @@ +--- a/sapi/fpm/fpm/fpm_conf.c ++++ b/sapi/fpm/fpm/fpm_conf.c +@@ -1262,7 +1262,7 @@ + } + + if (!fpm_global_config.error_log) { +- fpm_global_config.error_log = strdup("log/php-fpm.log"); ++ fpm_global_config.error_log = strdup("log/php8/error.log"); + } + + #ifdef HAVE_SYSTEMD +@@ -1273,7 +1273,7 @@ + + #ifdef HAVE_SYSLOG_H + if (!fpm_global_config.syslog_ident) { +- fpm_global_config.syslog_ident = strdup("php-fpm"); ++ fpm_global_config.syslog_ident = strdup("php-fpm8"); + } + + if (fpm_global_config.syslog_facility < 0) { +@@ -1777,7 +1777,7 @@ + if (fpm_globals.prefix == NULL) { + spprintf(&tmp, 0, "%s/php-fpm.conf", PHP_SYSCONFDIR); + } else { +- spprintf(&tmp, 0, "%s/etc/php-fpm.conf", fpm_globals.prefix); ++ spprintf(&tmp, 0, "%s/etc/php8/php-fpm.conf", fpm_globals.prefix); + } + + if (!tmp) { + +--- a/sapi/fpm/php-fpm.conf.in ++++ b/sapi/fpm/php-fpm.conf.in +@@ -16,3 +16,3 @@ + ; Default Value: none +-;pid = run/php-fpm.pid ++;pid = run/php-fpm8.pid + +@@ -22,4 +22,4 @@ + ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@ +-; Default Value: log/php-fpm.log +-;error_log = log/php-fpm.log ++; Default Value: log/php8/error.log ++;error_log = log/php8/error.log + +@@ -35,4 +35,4 @@ + ; which must suit common needs. +-; Default Value: php-fpm +-;syslog.ident = php-fpm ++; Default Value: php-fpm8 ++;syslog.ident = php-fpm8 + +--- a/sapi/fpm/www.conf.in ++++ b/sapi/fpm/www.conf.in +@@ -273,7 +273,7 @@ + + ; The access log file + ; Default: not set +-;access.log = log/$pool.access.log ++;access.log = log/php8/$pool.access.log + + ; The access log format. + ; The following syntax is allowed +@@ -337,7 +337,7 @@ + ; The log file for slow requests + ; Default Value: not set + ; Note: slowlog is mandatory if request_slowlog_timeout is set +-;slowlog = log/$pool.log.slow ++;slowlog = log/php8/$pool.slow.log + + ; The timeout for serving a single request after which a PHP backtrace will be + ; dumped to the 'slowlog' file. A value of '0s' means 'off'. +@@ -450,6 +450,6 @@ + ; specified at startup with the -d argument + ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com + ;php_flag[display_errors] = off +-;php_admin_value[error_log] = /var/log/fpm-php.www.log ++;php_admin_value[error_log] = /var/log/php8/$pool.error.log + ;php_admin_flag[log_errors] = on + ;php_admin_value[memory_limit] = 32M diff --git a/repo/php8/php8-fpm.initd b/repo/php8/php8-fpm.initd new file mode 100644 index 0000000..f498581 --- /dev/null +++ b/repo/php8/php8-fpm.initd @@ -0,0 +1,93 @@ +#!/sbin/openrc-run + +# If you want to run separate master process per pool, then create a symlink +# to this runscript for each pool. In that mode, the php-fpm daemon is started +# as nobody by default. You can override the user (and group) by declaring +# variable "user" and optionally "group" in conf.d file, or in the $fpm_config +# file (the former has precedence). + +: ${name:="PHP FastCGI Process Manager"} + +command="/usr/sbin/php-fpm8" +command_background="yes" +start_stop_daemon_args="--quiet" +pidfile="/run/$RC_SVCNAME/php-fpm.pid" +retry="SIGTERM/20" + +# configtest is here only for backward compatibility +extra_commands="checkconfig configtest" +extra_started_commands="reload reopen" +description_checkconfig="Run php-fpm config check" +description_reload="Gracefully reload workers and config" +description_reopen="Reopen log files" + +required_files="$fpm_config" + +depend() { + need net + use apache2 lighttpd nginx +} + +init_vars() { + # Defaults for single master process with multiple pools + if [ "$RC_SVCNAME" = "php-fpm8" ]; then + : ${fpm_config:="/etc/php8/php-fpm.conf"} + : ${user:="root"} + # Defaults for master process per pool + else + : ${fpm_config="/etc/php8/php-fpm.d/${RC_SVCNAME#php-fpm8.}.conf"} + : ${user:="$(conf_get user)"} + : ${user:="nobody"} + : ${group:="$(conf_get group)"} + fi + command_args="--nodaemonize --fpm-config $fpm_config" + start_stop_daemon_args="$start_stop_daemon_args + --user $user ${group:+"--group $group"}" +} + +start_pre() { + checkconfig || return 1 + + # If unix socket is used (instead of TCP/IP), then ensure that the + # directory exists and has correct privileges. + local listen="$(conf_get listen)" + if [ "${listen:0:1}" = "/" ]; then + checkpath -d -o $user:$group "$(dirname "$listen")" + fi + + checkpath -d "$(dirname "$pidfile")" +} + +reload() { + ebegin "Reloading $name" + start-stop-daemon --signal USR2 --pidfile "$pidfile" + eend $? +} + +reopen() { + ebegin "Reopening $name log files" + start-stop-daemon --signal USR1 --pidfile "$pidfile" + eend $? +} + +checkconfig() { + init_vars + ebegin "Checking $fpm_config" + + local out + out="$(su -s /bin/sh -c "$command --test --fpm-config $fpm_config" $user 2>&1)" || { + printf "%s\n" "$out" + eend 1 "failed, please correct errors above" + return 1 + } +} + +configtest() { + ewarn "configtest is deprecated, use checkconfig instead" + checkconfig +} + +conf_get() { + local key="$1" + sed -nE "s/^${key}\s*=\s*\"?([^\";]+).*/\1/p" "$fpm_config" | head -n 1 +} diff --git a/repo/php8/php8-fpm.logrotate b/repo/php8/php8-fpm.logrotate new file mode 100644 index 0000000..10b5bf3 --- /dev/null +++ b/repo/php8/php8-fpm.logrotate @@ -0,0 +1,13 @@ +/var/log/php8/*.log { + rotate 7 + daily + missingok + notifempty + delaycompress + compress + dateext + sharedscripts + postrotate + /etc/init.d/php-fpm8 --ifstarted --quiet reopen + endscript +} diff --git a/repo/php8/php8-module.conf b/repo/php8/php8-module.conf new file mode 100644 index 0000000..2ffe005 --- /dev/null +++ b/repo/php8/php8-module.conf @@ -0,0 +1,13 @@ +LoadModule php_module modules/mod_php8.so + +DirectoryIndex index.php index.html + +<FilesMatch \.php$> + SetHandler application/x-httpd-php +</FilesMatch> + +# Uncomment the following to allow .phps files to be handled by the php source filter, +# and displayed as syntax-highlighted source code +#<FilesMatch "\.phps$"> +# SetHandler application/x-httpd-php-source +#</FilesMatch> diff --git a/repo/php8/php8.xibuild b/repo/php8/php8.xibuild new file mode 100644 index 0000000..fd93e2a --- /dev/null +++ b/repo/php8/php8.xibuild @@ -0,0 +1,215 @@ +#!/bin/sh + +NAME="php8" +DESC="The PHP8 language runtime engine" + +MAKEDEPS="autoconf pcre2 re2c apache2 argon2 aspell bison bzip2 curl enchant2 freetds freetype gdbm gettext gmp icu imap krb5 libedit libical libjpeg-turbo libpng libpq lmdb oniguruma libsodium libwebp libxml2 libxpm libxslt libzip net-snmp openldap sqlite tidyhtml unixodbc zlib" + +PKG_VER=8.0.17 +suffix=8 +SOURCE="https://php.net/distributions/php-$PKG_VER.tar.xz" + +ADDITIONAL=" +atomic-lsapi.patch +disabled-tests.list +fix-tests-devserver.patch +includedir.patch +install-pear.patch +php8-fpm-version-suffix.patch +php8-fpm.initd +php8-fpm.logrotate +php8-module.conf +sharedir.patch +xfail-openssl-1.1-test.patch +" + +prepare() { + apply_patches + + # https://bugs.php.net/63362 - Not needed but installed headers. + # Drop some Windows specific headers to avoid installation, + # before build to ensure they are really not needed. + rm -f TSRM/tsrm_win32.h \ + TSRM/tsrm_config.w32.h \ + Zend/zend_config.w32.h \ + ext/mysqlnd/config-win.h \ + ext/standard/winver.h + + # Fix some bogus permissions. + find . -name '*.[ch]' -exec chmod 644 {} \; + + # XXX: Delete failing tests. + sed -n '/^[^#]/p' "$BUILD_ROOT"/disabled-tests.list | while read -r item; do + rm -r $item # do it in this way to apply globbing... + done + + autoconf +} + +# Notes: +# * gd-jis-conv breaks any non-latin font rendering (vakartel). +# * libxml cannot be build as shared. +# * -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php andypost) +# * -O2 optimize for apps usage (andypost) +_build() { + export CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" + export CXXFLAGS="$CXXFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" + + local without_pcre_jit + [ "$CARCH" = "s390x" ] && without_pcre_jit="--without-pcre-jit" + + EXTENSION_DIR=$_extension_dir ./configure \ + + + --prefix=/usr \ + --program-suffix=$suffix \ + --libdir=$_libdir \ + --datadir=/usr/share/php8 \ + --sysconfdir=/etc/php8 \ + --localstatedir=/var \ + --with-layout=GNU \ + --with-pic \ + --with-config-file-path=/etc/php8 \ + --with-config-file-scan-dir=$_extension_confd \ + --disable-short-tags \ + \ + --enable-bcmath=shared \ + --with-bz2=shared \ + --enable-calendar=shared \ + --enable-ctype=shared \ + --with-curl=shared \ + --enable-dba=shared \ + --with-dbmaker=shared \ + --with-gdbm \ + --with-lmdb \ + --enable-dom=shared \ + --with-enchant=shared \ + --enable-exif=shared \ + --with-ffi=shared \ + --enable-fileinfo=shared \ + --enable-ftp=shared \ + --enable-gd=shared \ + --with-freetype \ + --with-jpeg \ + --with-webp \ + --with-xpm \ + --disable-gd-jis-conv \ + --with-gettext=shared \ + --with-gmp=shared \ + --with-iconv=shared \ + --with-imap=shared \ + --with-imap-ssl \ + --enable-intl=shared \ + --with-ldap=shared \ + --with-ldap-sasl \ + --with-libedit \ + --with-libxml \ + --enable-mbstring=shared \ + --with-mysqli=shared,mysqlnd \ + --with-mysql-sock=/run/mysqld/mysqld.sock \ + --enable-mysqlnd=shared \ + --enable-opcache=shared \ + --with-openssl=shared \ + --with-kerberos \ + --with-system-ciphers \ + --with-password-argon2 \ + --enable-pcntl=shared \ + --with-external-pcre \ + $without_pcre_jit \ + --enable-pdo=shared \ + --with-pdo-dblib=shared,/usr \ + --with-pdo-mysql=shared,mysqlnd \ + --with-pdo-odbc=shared,unixODBC,/usr \ + --with-pdo-pgsql=shared \ + --with-pdo-sqlite=shared \ + --with-pgsql=shared \ + --enable-phar=shared \ + --enable-posix=shared \ + --with-pspell=shared \ + --without-readline \ + --enable-session=shared \ + --enable-shmop=shared \ + --enable-simplexml=shared \ + --with-snmp=shared \ + --enable-soap=shared \ + --with-sodium=shared \ + --enable-sockets=shared \ + --with-sqlite3=shared \ + --enable-sysvmsg=shared \ + --enable-sysvsem=shared \ + --enable-sysvshm=shared \ + --with-tidy=shared \ + --enable-tokenizer=shared \ + --with-unixODBC=shared,/usr \ + --enable-xml=shared \ + --enable-xmlreader=shared \ + --enable-xmlwriter=shared \ + --with-xsl=shared \ + --with-zip=shared \ + --with-zlib \ + "$@" + make +} + +build() { + # build phpcgi and apache2 SAPIs first + # because not fixed https://bugs.php.net/bug.php?id=52419 + # apache2 module + _build --disable-phpdbg \ + --disable-cli \ + --with-apxs2 + mv libs/libphp.so sapi/apache2handler/mod_php$suffix.so + + _build --enable-phpdbg \ + --with-pear=/usr/share/php8 \ + --enable-fpm \ + --enable-litespeed \ + --enable-embed +} + +check() { + # PHP is so stupid that it's not able to resolve dependencies + # between extensions and load them in correct order, so we must + # help it... + # opcache is Zend extension, it's handled specially in Makefile + local php_modules=$(_extensions_by_load_order \ + | grep -vx opcache \ + | xargs -n 1 printf "'$BUILD_ROOT/modules/%s.la' ") + sed -i "/^PHP_TEST_SHARED_EXTENSIONS/,/extension=/ \ + s|in \$(PHP_MODULES)\"*|in $php_modules|" Makefile + + # XXX: Few tests fail on the named platforms. + # Ignore it for now and continue build even on test failures. + local allow_fail='no' + case "$CARCH" in + x86 | s390x ) allow_fail='yes' + esac + + TESTS="${TESTS:- --show-diff}" NO_INTERACTION=1 REPORT_EXIT_STATUS=1 \ + SKIP_SLOW_TESTS=1 SKIP_ONLINE_TESTS=1 TEST_TIMEOUT=10 \ + TZ='' LANG='' LC_ALL='' \ + TRAVIS=true SKIP_IO_CAPTURE_TESTS=1 \ + make test || [ "$allow_fail" = yes ] + + echo 'NOTE: We have skipped quite a lot tests, see disabled-tests.list.' +} + +package() { + make -j1 INSTALL_ROOT="$PKG_DEST" install + + install -Dm644 php.ini-production "$PKG_DEST"/etc/php8/php.ini + + local file; for file in pear peardev pecl; do + sed -i -e "s|/usr/bin/php|/usr/bin/php$suffix|g" \ + -e "s|PHP=php|PHP=php$suffix|" \ + "$PKG_DEST"/usr/bin/$file + done + + find "$PKG_DEST" -name '.*' -print0 | xargs -0 rm -rf + rmdir "$PKG_DEST"/var/run + + if [ "$_default_php" = yes ]; then + ln -s php$suffix "$PKG_DEST"/usr/bin/php + fi +} + diff --git a/repo/php8/sharedir.patch b/repo/php8/sharedir.patch new file mode 100644 index 0000000..7d5c104 --- /dev/null +++ b/repo/php8/sharedir.patch @@ -0,0 +1,11 @@ +--- a/php.ini-production ++++ b/php.ini-production +@@ -742,7 +742,7 @@ + ;;;;;;;;;;;;;;;;;;;;;;;;; + + ; UNIX: "/path1:/path2" +-;include_path = ".:/php/includes" ++include_path = ".:/usr/share/php8" + ; + ; Windows: "\path1;\path2" + ;include_path = ".;c:\php\includes" diff --git a/repo/php8/xfail-openssl-1.1-test.patch b/repo/php8/xfail-openssl-1.1-test.patch new file mode 100644 index 0000000..f607cc1 --- /dev/null +++ b/repo/php8/xfail-openssl-1.1-test.patch @@ -0,0 +1,13 @@ +diff --git a/ext/openssl/tests/openssl_error_string_basic.phpt b/ext/openssl/tests/openssl_error_string_basic.phpt +index e4ea264b3b..fd1f7ef9d3 100644 +--- a/ext/openssl/tests/openssl_error_string_basic.phpt ++++ b/ext/openssl/tests/openssl_error_string_basic.phpt +@@ -2,6 +2,8 @@ + openssl_error_string() tests + --SKIPIF-- + <?php if (!extension_loaded("openssl")) print "skip"; ?> ++--XFAIL-- ++Somehow unstable + --FILE-- + <?php + // helper function to check openssl errors diff --git a/repo/python-hypothesis/python-hypothesis.xibuild b/repo/python-hypothesis/python-hypothesis.xibuild index e3c3d03..358d3a9 100644 --- a/repo/python-hypothesis/python-hypothesis.xibuild +++ b/repo/python-hypothesis/python-hypothesis.xibuild @@ -1,7 +1,7 @@ #!/bin/sh MAKEDEPS="python" -DEPS="python-attrs python-sortedcontainers python-exceptiongroup python-black python-click python-django python-dpcontracts python-lark-python-parser python-libcst python-numpy python-pandas python-pytest python-python-python-dateutil python-pytz python-redis python-rich python-importlib-python-metadata python-backports.python-zoneinfo python-tzdata python-click python-black python-rich python-libcst python-python-python-dateutil python-django python-dpcontracts python-black python-lark-python-parser python-numpy python-pandas python-pytest python-pytz python-redis python-backports.python-zoneinfo python-tzdata" +DEPS="python-sortedcontainers python-exceptiongroup python-black python-click python-django python-dpcontracts python-lark-python-parser python-libcst python-numpy python-pandas python-pytest python-python-python-dateutil python-pytz python-redis python-rich python-importlib-python-metadata python-backports.python-zoneinfo python-tzdata python-click python-black python-rich python-libcst python-python-python-dateutil python-django python-dpcontracts python-black python-lark-python-parser python-numpy python-pandas python-pytest python-pytz python-redis python-backports.python-zoneinfo python-tzdata" PKG_VER=6.47.4 SOURCE=https://files.pythonhosted.org/packages/source/h/hypothesis/hypothesis-$PKG_VER.tar.gz diff --git a/repo/python-pytest/python-pytest.xibuild b/repo/python-pytest/python-pytest.xibuild index ee9b399..e5613b6 100644 --- a/repo/python-pytest/python-pytest.xibuild +++ b/repo/python-pytest/python-pytest.xibuild @@ -1,7 +1,7 @@ #!/bin/sh MAKEDEPS="python" -DEPS="python-iniconfig python-packaging python-tomli python-atomicwrites python-colorama python-argcomplete python-hypothesis python-mock python-nose python-pygments python-xmlschema" +DEPS="python-iniconfig python-packaging python-tomli python-atomicwrites python-colorama python-argcomplete python-mock python-nose python-pygments python-xmlschema" PKG_VER=7.1.2 SOURCE=https://files.pythonhosted.org/packages/source/p/pytest/pytest-$PKG_VER.tar.gz diff --git a/repo/sbase/realpath.1 b/repo/sbase/realpath.1 new file mode 100644 index 0000000..7f65668 --- /dev/null +++ b/repo/sbase/realpath.1 @@ -0,0 +1,78 @@ +.\"- +.\" Copyright (c) 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" the Institute of Electrical and Electronics Engineers, Inc. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)pwd.1 8.2 (Berkeley) 4/28/95 +.\" From: src/bin/pwd/pwd.1,v 1.11 2000/11/20 11:39:39 ru Exp +.\" $FreeBSD$ +.\" +.Dd June 21, 2011 +.Dt REALPATH 1 +.Os +.Sh NAME +.Nm realpath +.Nd return resolved physical path +.Sh SYNOPSIS +.Nm +.Op Fl q +.Op Ar path ... +.Sh DESCRIPTION +The +.Nm +utility uses the +.Xr realpath 3 +function to resolve all symbolic links, extra +.Ql / +characters and references to +.Pa /./ +and +.Pa /../ +in +.Ar path . +If +.Ar path +is absent, the current working directory +.Pq Sq Pa .\& +is assumed. +.Pp +If +.Fl q +is specified, warnings will not be printed when +.Xr realpath 3 +fails. +.Sh EXIT STATUS +.Ex -std +.Sh SEE ALSO +.Xr realpath 3 +.Sh HISTORY +The +.Nm +utility first appeared in +.Fx 4.3 . diff --git a/repo/sbase/realpath.c b/repo/sbase/realpath.c new file mode 100644 index 0000000..60218fa --- /dev/null +++ b/repo/sbase/realpath.c @@ -0,0 +1,81 @@ +/*- + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 1991, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <sys/param.h> + +#include <err.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> + +static void usage(void); + +int +main(int argc, char *argv[]) +{ + char buf[PATH_MAX]; + char *p; + const char *path; + int ch, qflag, rval; + + qflag = 0; + while ((ch = getopt(argc, argv, "q")) != -1) { + switch (ch) { + case 'q': + qflag = 1; + break; + case '?': + default: + usage(); + } + } + argc -= optind; + argv += optind; + path = *argv != NULL ? *argv++ : "."; + rval = 0; + do { + if ((p = realpath(path, buf)) == NULL) { + if (!qflag) + warn("%s", path); + rval = 1; + } else + (void)printf("%s\n", p); + } while ((path = *argv++) != NULL); + exit(rval); +} + +static void +usage(void) +{ + + (void)fprintf(stderr, "usage: realpath [-q] [path ...]\n"); + exit(1); +} diff --git a/repo/sbase/sbase-box.xibuild b/repo/sbase/sbase-box.xibuild new file mode 100644 index 0000000..f1e3c56 --- /dev/null +++ b/repo/sbase/sbase-box.xibuild @@ -0,0 +1,11 @@ +#!/bin/sh + +DESC="sbase coreutils statically linked into one executable" + +build () { + make CFLAGS="$CFLAGS -static" sbase-box +} + +package () { + make DESTDIR="$PKG_DEST" sbase-box-install +} diff --git a/repo/sbase/sbase.xibuild b/repo/sbase/sbase.xibuild index 4b62f2d..b40f38b 100644 --- a/repo/sbase/sbase.xibuild +++ b/repo/sbase/sbase.xibuild @@ -3,10 +3,10 @@ MAKEDEPS="make " DEPS="musl acl attr gmp ubase" -SOURCE=https://git.suckless.org/sbase +SOURCE=git://git.suckless.org/sbase ADDITIONAL=" - https://gitea.linfan.moe/mirror/ataraxia/raw/commit/74914d05c701919fe6aa0d63e131df8c4df420fe/stuff/sbase/realpath.1 - https://gitea.linfan.moe/mirror/ataraxia/raw/commit/74914d05c701919fe6aa0d63e131df8c4df420fe/stuff/sbase/realpath.c + realpath.1 + realpath.c " DESC="sbase from suckless.org" @@ -17,7 +17,6 @@ prepare () { sed -i "39i case 'o':" uname.c sed -i "40i sflag = 1;" uname.c sed -i "41i break;" uname.c - sed -i '182i realpath\\' Makefile } diff --git a/repo/snes9x/snes9x.xibuild b/repo/snes9x/snes9x.xibuild new file mode 100644 index 0000000..8059644 --- /dev/null +++ b/repo/snes9x/snes9x.xibuild @@ -0,0 +1,28 @@ +#!/bin/sh + +NAME="snes9x" +DESC="Super NES Emulator" + +MAKEDEPS="meson glib sdl2 gtk3 libxrandr libepoxy wayland libxv portaudio alsa-lib libpng minizip zlib" + +PKG_VER=1.60 +SOURCE="https://github.com/snes9xgit/snes9x/archive/$PKG_VER.tar.gz" + +prepare () { + cd gtk +} + +build() { + meson --prefix=/usr \ + -Dopengl=true \ + -Dgtk3=true \ + -Dpulseaudio=false \ + . output + meson compile ${JOBS:+-j ${JOBS}} -C output +} + +package() { + DESTDIR="$PKG_DEST" meson install --no-rebuild -C output + ln -s snes9x-gtk "$PKG_DEST"/usr/bin/snes9x +} + diff --git a/repo/xipkg/xipkg.xibuild b/repo/xipkg/xipkg.xibuild index e9f0fd3..ccee38a 100644 --- a/repo/xipkg/xipkg.xibuild +++ b/repo/xipkg/xipkg.xibuild @@ -3,7 +3,7 @@ MAKEDEPS="make shmk" DEPS="openssl curl dash findutils diffutils sed xichroot grep base64 sort hbar parseconf xiutils" -PKG_VER=1.7.3 +PKG_VER=1.7.4 SOURCE=https://git.davidovski.xyz/xilinux/xipkg.git BRANCH="v$PKG_VER" diff --git a/repo/xz/xz.xibuild b/repo/xz/xz.xibuild index 9c1f849..bcd5931 100644 --- a/repo/xz/xz.xibuild +++ b/repo/xz/xz.xibuild @@ -4,7 +4,7 @@ MAKEDEPS="make " DEPS="sh" PKG_VER=5.2.2 -SOURCE=https://github.com/xz-mirror/xz/releases/download/v$PKG_VER/xz-$PKG_VER.tar.xz +SOURCE=https://github.com/xz-mirror/xz/releases/download/v$PKG_VER/xz-$PKG_VER.tar.bz2 DESC="Tools for the lzma and xz compression formats" |