Merge remote-tracking branch 'origin/3.6' into 3.7

This commit is contained in:
Tim Biermann 2022-05-28 14:52:31 +02:00
commit 8e774a8bcd
75 changed files with 784 additions and 9035 deletions

View File

@ -1,24 +0,0 @@
From d1a1cf158016f24ee9d4785e3e07b82329964d0f Mon Sep 17 00:00:00 2001
From: Thomas Jensen <boxes@thomasjensen.com>
Date: Tue, 20 Apr 2021 21:27:22 +0200
Subject: [PATCH] Declare our src/Makefile as serial #79
because for some reason, make exhibits very strange behavior
when executing it in parallel jobs
---
src/Makefile | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/Makefile b/src/Makefile
index 6a6fc8f..3f61aa7 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -39,6 +39,8 @@ ORIG_FILES = $(ORIG_SRC) $(ORIG_HDR)
.PHONY: check_dir clean build debug package flags_unix flags_win32 flags_
+.NOTPARALLEL:
+
check_dir:
@if [ "$(shell pwd | sed -e 's/^.*\///')" != "out" ] ; then \
echo ERROR: Please call make from the top level directory. ; \

View File

@ -1,3 +0,0 @@
drwxr-xr-x root/root usr/
drwxr-xr-x root/root usr/bin/
-rwxr-xr-x root/root usr/bin/gn

View File

@ -1,5 +0,0 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF3+YI/28osDGIXlfa419paM3cGJ+jO/OvklVOYp0tik9nRHUAUqLENrrt6hNrAslPxgNedBjpqdFO5/V/Lvt4Bgc=
SHA256 (Pkgfile) = 0f99a656042274f5cdd0d1da7889534e5d6a2d62208195c8316ff3afeae8a619
SHA256 (.footprint) = ebe24248910a2c4d544406fe7277892ed941f4a93079fb8d0c5fb7b2036bba9e
SHA256 (gn-20200520.tar.gz) = ebf5ad8f251f75617b0269ae9fe9c72acc392ea84cb8ea486d7351b789527690

View File

@ -1,29 +0,0 @@
# Description: Meta-build system that generates build files for Ninja
# URL: https://gn.googlesource.com/gn
# Maintainer: Tim Biermann, tbier at posteo dot de
# Depends on: python3 ninja clang
name=gn
version=20200520
release=1
source=(https://nullvoid.de/crux/distfiles/$name-$version.tar.gz)
# because this ALWAYS changes it's signature! -.-
#https://gn.googlesource.com/gn/+archive/2c801de70b8ed3c8e404245d61d32a3d61b328d0.tar.gz)
build() {
[[ -e /usr/bin/clang && -e /usr/bin/clang++ ]] && export CC=clang CXX=clang++ AR=llvm-ar NM=llvm-nm RANLIB=llvm-ranlib
unset CFLAGS
/usr/bin/python3 build/gen.py --no-last-commit-position --no-strip --no-static-libstdc++
export CXXFLAGS=+" -std=c++17"
cat >out/last_commit_position.h <<-EOF
#ifndef OUT_LAST_COMMIT_POSITION_H_
#define OUT_LAST_COMMIT_POSITION_H_
#define LAST_COMMIT_POSITION_NUM ${version}
#define LAST_COMMIT_POSITION "${version}"
#endif // OUT_LAST_COMMIT_POSITION_H_
EOF
ninja -C out gn
install -D out/gn $PKG/usr/bin/gn
}

View File

@ -1,39 +0,0 @@
--- build/gen.py.orig 2019-10-24 18:38:23.121474871 +0200
+++ build/gen.py 2019-10-24 18:38:45.849743261 +0200
@@ -125,35 +125,7 @@
def GenerateLastCommitPosition(host, header):
- ROOT_TAG = 'initial-commit'
- describe_output = subprocess.check_output(
- ['git', 'describe', 'HEAD', '--match', ROOT_TAG], shell=host.is_windows(),
- cwd=REPO_ROOT)
- mo = re.match(ROOT_TAG + '-(\d+)-g([0-9a-f]+)', describe_output.decode())
- if not mo:
- raise ValueError(
- 'Unexpected output from git describe when generating version header')
-
- contents = '''// Generated by build/gen.py.
-
-#ifndef OUT_LAST_COMMIT_POSITION_H_
-#define OUT_LAST_COMMIT_POSITION_H_
-
-#define LAST_COMMIT_POSITION "%s (%s)"
-
-#endif // OUT_LAST_COMMIT_POSITION_H_
-''' % (mo.group(1), mo.group(2))
-
- # Only write/touch this file if the commit position has changed.
- old_contents = ''
- if os.path.isfile(header):
- with open(header, 'r') as f:
- old_contents = f.read()
-
- if old_contents != contents:
- with open(header, 'w') as f:
- f.write(contents)
-
+ return 0
def WriteGenericNinja(path, static_libraries, executables,
cc, cxx, ar, ld, platform, host, options,

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF33zBuHwWTRJ7qQoLDompuxQO8acMTbzbrKfbs10ElkABHLGuIFZpM/shXPu+IIFDJnT0mkOplN6JCEU/LwO0Cws=
SHA256 (Pkgfile) = 24f213f8cbe2ec09e51ad1f0e34c6285af95e813e034fc121fbd469f4ff9d2ac
RWSagIOpLGJF36vO/Xs0CVRgEgSGPme0CvAfyWhszFQaH1NTtXiA0SmzkNK+WARbD363W1au8JCNAPy67Petf3sXV4/Ooaxr5Ag=
SHA256 (Pkgfile) = 8565f31df1dd26e7ba35d9f909360b5ddc9577e7872dc4e33841e75a7db3e333
SHA256 (.footprint) = 3b2cb5ed9f367ba643ced8da5c86b375dd3b321298bec5af997dbe4886516f53
SHA256 (gpg-tui-0.8.3.tar.gz) = 64e0159c997b97fc6896ed6fb5e50d65d50e6c08c14817bea7b9be5a70335442
SHA256 (gpg-tui-0.9.0.tar.gz) = 7aab4ecaf08bc020e21405e07cac40baf5d11f91e012fdddb4bf1138092eafe0

View File

@ -4,7 +4,7 @@
# Depends on: gpgme libxkbcommon rust
name=gpg-tui
version=0.8.3
version=0.9.0
release=1
source=(https://github.com/orhun/gpg-tui/archive/v$version/$name-$version.tar.gz)

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF3w6sUHm5dGS7Iwdib+Dzog1TLWk3jiM2KHPxX3B2TAwcWOdpVHYxuI2wItuW5YtMbpEFrc63smBT9LQw0/8iEAg=
SHA256 (Pkgfile) = 23971329955fa4400da86cd3e023fc5b4795a856593045a588405e92f3ba38d9
RWSagIOpLGJF32utuTen0++X9Td3aMUKas8ROlq5QMfletXnFVo4Wz7F1PWnwhP8RN3vuDfZnGG6Awh9FN9QDVGa7ivt6SDlYQg=
SHA256 (Pkgfile) = e270cfac7b1ecafa0b1fc776ba2b02f653edcae07d37521512720c3aa7c9dbfc
SHA256 (.footprint) = ada16d8ef5fb19a07600dee14782f5675e3f4f10f150435c6deecce8f168145d
SHA256 (gsimplecal-2.2.tar.gz) = 7f5f5c9d35fcdcb653d9dd3507511d59268771f1eaa453d3a3982562402892af
SHA256 (gsimplecal-2.3.tar.gz) = 393325a16511c0fd93b3839893ae0062634d96f92761d4cfef5daae33bc59b1a

View File

@ -4,7 +4,7 @@
# Depends on: gtk3 xorg-libxcomposite xorg-libxcursor xorg-libxinerama
name=gsimplecal
version=2.2
version=2.3
release=1
source=(https://github.com/dmedvinsky/gsimplecal/archive/v$version/$name-$version.tar.gz)

View File

@ -1,17 +0,0 @@
# Description: a lightweight calendar applet written in C++ using GTK
# URL: https://github.com/dmedvinsky/gsimplecal
# Maintainer: Tim Biermann, tbier at posteo dot de
# Depends on: gdk-pixbuf gtk3 harfbuzz libffi libpng xorg-libxcomposite xorg-libxcursor xorg-libxinerama
name=gsimplecal
version=2.1
release=1
source=(https://github.com/dmedvinsky/gsimplecal/archive/v$version/$name-$version.tar.gz)
build() {
cd $name-$version
./autogen.sh
./configure --prefix=/usr
make
make DESTDIR=$PKG install
}

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF3yRbGlrk4dwuPHbwyuTIPKq2bt6BPWjBHOAbCV/Y4rgHj/igslZP9J4JjgnKFY1irOqdSxAI2kxQHKmWGJ0UwQQ=
SHA256 (Pkgfile) = 038934dbc00908330be413398f78fcd943b1e57ea4f9a6c3522d4632f9756e59
RWSagIOpLGJF37elcfHYw1pLyEX9R+0q0U4N/YJnSw8YrtxAZu/Si9EQLgJo/MwPcOA/x5Jb2DefPStBZuw/xH/8Evh24tNMYw0=
SHA256 (Pkgfile) = c097efa46067e19453d3e800d0d6417cce186749f878d12fefbba3d757a83dd4
SHA256 (.footprint) = da80712611600e6b3198b65499b9e7bda4ed3a04a6550497a185e38b9bf88f4c
SHA256 (libbytesize-2.6.tar.gz) = 4bb564e0466a002ad1bcb2da1a41cbc5bcd9982fff75570e3a6e3d4ab0bd1859
SHA256 (libbytesize-2.7.tar.gz) = 69fee652f8c582304db77f52d23876f5731478f64a6a32a3e67da142fc09a363

View File

@ -4,7 +4,7 @@
# Depends on: python3 libpcre2
name=libbytesize
version=2.6
version=2.7
release=1
source=(https://github.com/storaged-project/$name/archive/$version/$name-$version.tar.gz)

View File

@ -1,12 +0,0 @@
diff --git a/src/lib/NUM3Parser.cpp b/src/lib/NUM3Parser.cpp
index 6dc0e9a..6f8e79e 100644
--- a/src/lib/NUM3Parser.cpp
+++ b/src/lib/NUM3Parser.cpp
@@ -7,6 +7,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
+#include <algorithm>
#include <functional>
#include "NUM3Parser.h"

File diff suppressed because it is too large Load Diff

View File

@ -1,36 +0,0 @@
diff -up libsrtp-2.3.0/Makefile.in.sharedfix libsrtp-2.3.0/Makefile.in
--- libsrtp-2.3.0/Makefile.in.sharedfix 2020-01-07 09:48:36.004217062 -0500
+++ libsrtp-2.3.0/Makefile.in 2020-01-07 09:53:08.117725096 -0500
@@ -106,12 +106,14 @@ bindir = @bindir@
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libsrtp2.pc
-SHAREDLIBVERSION = 1
+SHAREDLIBMINIVER = 1
+SHAREDLIBVERSION = $(SHAREDLIBMINIVER).0.0
ifneq (,$(or $(findstring linux,@host@), $(findstring gnu,@host@)))
SHAREDLIB_DIR = $(libdir)
-SHAREDLIB_LDFLAGS = -shared -Wl,-soname,$@
SHAREDLIBSUFFIXNOVER = so
+SHAREDLIBMINISUFFIX = $(SHAREDLIBSUFFIXNOVER).$(SHAREDLIBMINIVER)
SHAREDLIBSUFFIX = $(SHAREDLIBSUFFIXNOVER).$(SHAREDLIBVERSION)
+SHAREDLIB_LDFLAGS = -shared -Wl,-soname,libsrtp2.$(SHAREDLIBMINISUFFIX)
else ifneq (,$(or $(findstring cygwin,@host@), $(findstring mingw,@host@)))
SHAREDLIB_DIR = $(bindir)
SHAREDLIB_LDFLAGS = -shared -Wl,--out-implib,libsrtp2.dll.a
@@ -166,6 +168,7 @@ libsrtp2.$(SHAREDLIBSUFFIX): $(srtpobj)
$(CC) -shared -o $@ $(SHAREDLIB_LDFLAGS) \
$^ $(LDFLAGS) $(LIBS)
if [ -n "$(SHAREDLIBVERSION)" ]; then \
+ ln -sfn $@ libsrtp2.$(SHAREDLIBMINISUFFIX); \
ln -sfn $@ libsrtp2.$(SHAREDLIBSUFFIXNOVER); \
fi
@@ -288,6 +291,7 @@ install:
cp libsrtp2.$(SHAREDLIBSUFFIXNOVER) $(DESTDIR)$(SHAREDLIB_DIR)/; \
if [ -n "$(SHAREDLIBVERSION)" ]; then \
ln -sfn libsrtp2.$(SHAREDLIBSUFFIX) $(DESTDIR)$(SHAREDLIB_DIR)/libsrtp2.$(SHAREDLIBSUFFIXNOVER); \
+ ln -sfn libsrtp2.$(SHAREDLIBSUFFIX) $(DESTDIR)$(SHAREDLIB_DIR)/libsrtp2.$(SHAREDLIBMINISUFFIX); \
fi; \
fi
$(INSTALL) -d $(DESTDIR)$(pkgconfigdir)

View File

@ -1,72 +0,0 @@
From 1c6fa92b77e34d089493fe6d3e2c6c8775858b94 Mon Sep 17 00:00:00 2001
From: Will Cosgrove <will@panic.com>
Date: Thu, 29 Aug 2019 15:24:22 -0700
Subject: [PATCH] fixed type issue, updated SSH_MSG_DISCONNECT
SSH_MSG_DISCONNECT now also uses _libssh2_get API.
---
src/packet.c | 40 +++++++++++++++-------------------------
1 file changed, 15 insertions(+), 25 deletions(-)
diff --git a/src/packet.c b/src/packet.c
index 8908b2c5ad..97f0cdd4b9 100644
--- a/src/packet.c
+++ b/src/packet.c
@@ -419,8 +419,8 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
size_t datalen, int macstate)
{
int rc = 0;
- char *message = NULL;
- char *language = NULL;
+ unsigned char *message = NULL;
+ unsigned char *language = NULL;
size_t message_len = 0;
size_t language_len = 0;
LIBSSH2_CHANNEL *channelp = NULL;
@@ -472,33 +472,23 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
case SSH_MSG_DISCONNECT:
if(datalen >= 5) {
- size_t reason = _libssh2_ntohu32(data + 1);
+ uint32_t reason = 0;
+ struct string_buf buf;
+ buf.data = (unsigned char *)data;
+ buf.dataptr = buf.data;
+ buf.len = datalen;
+ buf.dataptr++; /* advance past type */
- if(datalen >= 9) {
- message_len = _libssh2_ntohu32(data + 5);
+ _libssh2_get_u32(&buf, &reason);
+ _libssh2_get_string(&buf, &message, &message_len);
+ _libssh2_get_string(&buf, &language, &language_len);
- if(message_len < datalen-13) {
- /* 9 = packet_type(1) + reason(4) + message_len(4) */
- message = (char *) data + 9;
-
- language_len =
- _libssh2_ntohu32(data + 9 + message_len);
- language = (char *) data + 9 + message_len + 4;
-
- if(language_len > (datalen-13-message_len)) {
- /* bad input, clear info */
- language = message = NULL;
- language_len = message_len = 0;
- }
- }
- else
- /* bad size, clear it */
- message_len = 0;
- }
if(session->ssh_msg_disconnect) {
- LIBSSH2_DISCONNECT(session, reason, message,
- message_len, language, language_len);
+ LIBSSH2_DISCONNECT(session, reason, (const char *)message,
+ message_len, (const char *)language,
+ language_len);
}
+
_libssh2_debug(session, LIBSSH2_TRACE_TRANS,
"Disconnect(%d): %s(%s)", reason,
message, language);

View File

@ -11,9 +11,9 @@ drwxr-xr-x root/root usr/include/lilv-0/lilv/
-rw-r--r-- root/root usr/include/lilv-0/lilv/lilv.h
-rw-r--r-- root/root usr/include/lilv-0/lilv/lilvmm.hpp
drwxr-xr-x root/root usr/lib/
lrwxrwxrwx root/root usr/lib/liblilv-0.so -> liblilv-0.so.0.24.12
lrwxrwxrwx root/root usr/lib/liblilv-0.so.0 -> liblilv-0.so.0.24.12
-rwxr-xr-x root/root usr/lib/liblilv-0.so.0.24.12
lrwxrwxrwx root/root usr/lib/liblilv-0.so -> liblilv-0.so.0.24.14
lrwxrwxrwx root/root usr/lib/liblilv-0.so.0 -> liblilv-0.so.0.24.14
-rwxr-xr-x root/root usr/lib/liblilv-0.so.0.24.14
drwxr-xr-x root/root usr/lib/pkgconfig/
-rw-r--r-- root/root usr/lib/pkgconfig/lilv-0.pc
drwxr-xr-x root/root usr/lib/python3.10/

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF3yzm04ndYDLDubMCITYiEjX7T58CK23qqeocsCfp7lI3uW6Hx4A3TM6eo5iXDPw/XNc7Ofl5m+mHSQvvBHA7GQ4=
SHA256 (Pkgfile) = c9c951a629d8dec1c65ab5011de355edce63d5a335cd743dba944689536af7b1
SHA256 (.footprint) = a57945ce8a0210a3d2f13fb8830c613c7b790423d62ddf9bdd97b2e7d6973f96
SHA256 (lilv-0.24.12.tar.bz2) = 26a37790890c9c1f838203b47f5b2320334fe92c02a4d26ebbe2669dbd769061
RWSagIOpLGJF34WB4O8jJa1d/kEU2fsF0u+Ih4ISDcmtUzqraT4CArQmJMsCuKYOM5xAA1d1f5B/21RyuclBzdvYyfdwz8hc6Qk=
SHA256 (Pkgfile) = 9cbc15ecaf862845000718d6cbf8baf18d38407e2a48ff931cd32f335c31551b
SHA256 (.footprint) = c677817ef751fdcc6895143d5b2a9d975e560c0e445a6f5e828f98060114043c
SHA256 (lilv-0.24.14.tar.bz2) = 6399dfcbead61a143acef3a38ad078047ab225b00470ad5d33745637341d6406

View File

@ -4,7 +4,7 @@
# Depends on: sratom swig
name=lilv
version=0.24.12
version=0.24.14
release=1
source=(http://download.drobilla.net/$name-$version.tar.bz2)

View File

@ -1,25 +0,0 @@
diff -ru lp_solve_5.5.orig/lp_solve/ccc lp_solve_5.5/lp_solve/ccc
--- lp_solve_5.5.orig/lp_solve/ccc 2009-02-23 16:31:18.000000000 +0000
+++ lp_solve_5.5/lp_solve/ccc 2009-02-23 16:31:29.000000000 +0000
@@ -28,7 +28,7 @@
fi
rm /tmp/isnan.c /tmp/isnan >/dev/null 2>&1
-opts='-O3'
+opts=$CFLAGS
def=
if [ "$PLATFORM" = "SCO_UNIX" ]
diff -ru lp_solve_5.5.orig/lpsolve55/ccc lp_solve_5.5/lpsolve55/ccc
--- lp_solve_5.5.orig/lpsolve55/ccc 2009-02-23 16:31:18.000000000 +0000
+++ lp_solve_5.5/lpsolve55/ccc 2009-02-23 16:31:29.000000000 +0000
@@ -35,7 +35,7 @@
so=y
fi
-opts='-O3'
+opts=$CFLAGS
$c -s -c -I.. -I../shared -I../bfp -I../bfp/bfp_LUSOL -I../bfp/bfp_LUSOL/LUSOL -I../colamd $opts $def $NOISNAN -DYY_NEVER_INTERACTIVE -DPARSER_LP -DINVERSE_ACTIVE=INVERSE_LUSOL -DRoleIsExternalInvEngine $src
ar rv bin/$PLATFORM/liblpsolve55.a `echo $src|sed s/[.]c/.o/g|sed 's/[^ ]*\///g'`

View File

@ -1,22 +0,0 @@
--- lp_solve_5.5/lpsolve55/ccc
+++ lp_solve_5.5/lpsolve55/ccc
@@ -18,7 +18,7 @@
echo '#include <stdio.h>'>>/tmp/isnan.c
echo '#include <stdlib.h>'>>/tmp/isnan.c
echo '#include <math.h>'>>/tmp/isnan.c
-echo 'main(){isnan(0);}'>>/tmp/isnan.c
+echo 'main(){isnan(0.0);}'>>/tmp/isnan.c
$c /tmp/isnan.c -o /tmp/isnan $math >/dev/null 2>&1
if [ $? = 0 ]
then NOISNAN=
--- lp_solve_5.5/lp_solve/ccc
+++ lp_solve_5.5/lp_solve/ccc
@@ -20,7 +20,7 @@
echo '#include <stdio.h>'>>/tmp/isnan.c
echo '#include <stdlib.h>'>>/tmp/isnan.c
echo '#include <math.h>'>>/tmp/isnan.c
-echo 'main(){isnan(0);}'>>/tmp/isnan.c
+echo 'main(){isnan(0.0);}'>>/tmp/isnan.c
$c /tmp/isnan.c -o /tmp/isnan $math >/dev/null 2>&1
if [ $? = 0 ]
then NOISNAN=

View File

@ -1,11 +0,0 @@
--- lsb_release.orig 2012-11-13 05:12:02.000000000 -0800
+++ lsb_release 2013-11-24 17:13:55.943608718 -0800
@@ -216,7 +216,7 @@
TMP_DISTRIB_DESC=$DISTRIB_DESCRIPTION
fi
- if [ -z "$TMP_DISTRIB_DESC" ] # head or lsb-release init
+ if [ -z "$DISTRIB_DESCRIPTION" ] # head or lsb-release init
then # file contains no data
DISTRIB_DESCRIPTION=$MSG_NONE
NO="y"

View File

@ -1,7 +1,7 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF34CRkIoBX1zAfM0bJtFHtkid+38MpJILXHUjRvSq9wUs1W2c3u0VUjiIYN2pNR1lnbSLLbPvnxxfuyzqSub90g8=
SHA256 (Pkgfile) = 689c923dffab6a080115e9a7fd2ee571ced28edc6467789e39ff82defa42f4b7
RWSagIOpLGJF30YkZ+Uu3+O99SkdJMPiDCr8B7Bp2MlmgV9bjzJKjMWvz8w8DViTGtlTOHXfECI94Dg5qrO5wZeQmuSfnLMSDQQ=
SHA256 (Pkgfile) = 83f143194060241abfa5dc49923ccf1ed6d66c834341a6c34970c5ab8d2c2cdb
SHA256 (.footprint) = d8feb1d2a4e81ebecc9a0abeae394e7d210985ebbcbec50b47b40a0c1ed4bfbb
SHA256 (lua-language-server-3.2.3.tar.gz) = 99edb32c585758528dfc363f090e6615e7db35c4ee3bed9d23f059933c98a58b
SHA256 (lua-language-server-3.2.3-submodules.zip) = 7468fd252a37bfba48d10f9af3ec96d055441ef8c3f6ce57a82d4f4dca234d79
SHA256 (lua-language-server-3.2.4.tar.gz) = 9d644ac9b553d5c7666d99adb38bab6fb2b2fa4d44b0af7f75bef5bb7ca4d341
SHA256 (lua-language-server-3.2.4-submodules.zip) = cce786fb1f9332a545730cc164107c97046e993cf7ccb98f88519a4c05cfecc5
SHA256 (wrapper.sh) = c22dec148487ae1e170e460ab9c2de9ff06b8f0b4d19690913ccb4a0fb3bdd0e

View File

@ -4,7 +4,7 @@
# Depends on: lua ninja
name=lua-language-server
version=3.2.3
version=3.2.4
release=1
source=(https://github.com/sumneko/lua-language-server/archive/$version/$name-$version.tar.gz
https://github.com/sumneko/lua-language-server/releases/download/$version/lua-language-server-$version-submodules.zip

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF3xpNK5EgWAhVjNtfWLaoHLXoyHl0Y/BNquTZZAzFiN856iyMIy0bFkdKxtxieZsvdFs0OzSpen7gjwTaS0zgHw4=
SHA256 (Pkgfile) = 3761f2563037c23168b623e8245c864969228c7a52a705e7bea9d322faf8ea08
RWSagIOpLGJF31xoAeOvDV8MZui2CbCBBumbgmyHy4liLr9fmdqLDfTKoIrO8MLotyv94bkWn9cdP8JxHSA6VK7YZExMAQs2NQs=
SHA256 (Pkgfile) = c4ec3c0665baec1fd385fce644b452b0be7efdfea0d3f2b96f661856e90268e7
SHA256 (.footprint) = 732ce7fa58fae3425affd3bda936789153b1e01fa9fa0d9e81faf3888ca72edb
SHA256 (lv2-1.18.2.tar.bz2) = 4e891fbc744c05855beb5dfa82e822b14917dd66e98f82b8230dbd1c7ab2e05e
SHA256 (lv2-1.18.4.tar.bz2) = 4ddc0ed20579aabbaeb4df6fb42b69949c01dc7169ab0b945c709339509e6760

View File

@ -1,11 +1,10 @@
# Description: Successor to the LADSPA audio plug-in standard.
# URL: https://lv2plug.in/
# Maintainer: Tim Biermann, tbier at posteo dot de
# Packager: Danny Rawlins, crux at romster dot me
# Depends on: python3 libsndfile
# Depends on: libsndfile
name=lv2
version=1.18.2
version=1.18.4
release=1
source=(http://lv2plug.in/spec/$name-$version.tar.bz2)

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF39ucz5Uz/O1H7442bOmxPuK56uOCkDgcAXqXu8FeZRw/r5+bwRNfQ/tgZ3EMRIQRZcG+hfa1v20JY+Y1zF/u6gw=
SHA256 (Pkgfile) = bede5a28d78d989c1674eeb2422efa75e8358653a697a97416a53246879d3bd4
RWSagIOpLGJF3xU42M0Hbw5iyFzbIrr1KhNBmB3ZHCer4TmXEbzwcverdQSIenDzxHnDhLokwC6M71SFgrcXj3+fcIhw4kbSEQI=
SHA256 (Pkgfile) = 588e9f466ef2aad7774d3ce4e4024ce86ef05a3a9c6497b77badbeb94c1f9a36
SHA256 (.footprint) = baa4686c025a862bb631cb2b79fd624e0bf5824b042f6e4f7319a06d6d884821
SHA256 (mono-6.12.0.122.tar.xz) = 29c277660fc5e7513107aee1cbf8c5057c9370a4cdfeda2fc781be6986d89d23
SHA256 (mono-6.12.0.181.tar.xz) = f879bd91d6c2541d6aef5bf9329b3a5aefc0be70e37f1ceb5de05a4bdbaf5d6f

View File

@ -1,24 +1,30 @@
# Description: Cross platform, open source .NET framework
# URL: https://www.mono-project.com
# Maintainer: Tim Biermann, tbier at posteo dot de
# Depends on: cmake python3
# Depends on: cmake ninja
name=mono
version=6.12.0.122
version=6.12.0.181
release=1
source=(https://download.mono-project.com/sources/$name/$name-$version.tar.xz)
source=(https://download.mono-project.com/sources/$name/preview/$name-$version.tar.xz)
build() {
cd $name-$version
[[ -e /usr/lib/ccache ]] && PATH="$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')"
CFLAGS+=" -ffat-lto-objects" \
./configure --prefix=/usr \
--mandir=/usr/share/man \
--enable-ninja \
--with-mcs-docs=no \
--disable-crash-reporting \
--disable-nls
sed -e 's/python/python3/g' -i mono/mini/Makefile*
PYTHON=/usr/bin/python3 make
make DESTDIR=$PKG install
rm -fr $PKG/usr/share/locale
find $PKG \( -iname "*README*" \
-o -iname "*la" \)\

View File

@ -1,47 +0,0 @@
From 91444b047466d8c9e331447bb257ff6498de47a4 Mon Sep 17 00:00:00 2001
From: Jonas Witschel <git@diabonas.de>
Date: Sat, 23 Oct 2021 14:31:17 +0200
Subject: [PATCH] Fix use after free of a->mailbox due to missing strdup
Commit 87ae932bcae3f229d681af9848015ba49049a581 ("Directly add full mailbox to
GPG search hints") changed crypt_add_string_to_hints(a->mailbox, &hints) to
mutt_list_insert_tail(&hints, a->mailbox). However, there is a behavioural
difference between the two functions: crypt_add_string_to_hints() adds a copy
of the string to the list, while mutt_list_insert_tail() does not. This leads
to a crash because the original a->mailbox is freed prematurely as part of the
hints list. Fix this by adding a copy of the original to the list instead.
Note that commit 87ae932bcae3f229d681af9848015ba49049a581 originally came from
Mutt. Upstream is not affected by this however because their mutt_add_list()
functions always copies the data.
---
ncrypt/crypt_gpgme.c | 2 +-
ncrypt/pgpkey.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/ncrypt/crypt_gpgme.c b/ncrypt/crypt_gpgme.c
index 8cd70fd626..50c588a275 100644
--- a/ncrypt/crypt_gpgme.c
+++ b/ncrypt/crypt_gpgme.c
@@ -3581,7 +3581,7 @@ static struct CryptKeyInfo *crypt_getkeybyaddr(struct Address *a,
*forced_valid = 0;
if (a && a->mailbox)
- mutt_list_insert_tail(&hints, a->mailbox);
+ mutt_list_insert_tail(&hints, mutt_str_dup(a->mailbox));
if (a && a->personal)
crypt_add_string_to_hints(a->personal, &hints);
diff --git a/ncrypt/pgpkey.c b/ncrypt/pgpkey.c
index 665f9afe41..45ceb8b8ad 100644
--- a/ncrypt/pgpkey.c
+++ b/ncrypt/pgpkey.c
@@ -369,7 +369,7 @@ struct PgpKeyInfo *pgp_getkeybyaddr(struct Address *a, KeyFlags abilities,
struct PgpUid *q = NULL;
if (a->mailbox)
- mutt_list_insert_tail(&hints, a->mailbox);
+ mutt_list_insert_tail(&hints, mutt_str_dup(a->mailbox));
if (a->personal)
pgp_add_string_to_hints(a->personal, &hints);

View File

@ -996,6 +996,7 @@ drwxr-xr-x root/root usr/lib/node_modules/npm/node_modules/make-fetch-happen/lib
-rw-r--r-- root/root usr/lib/node_modules/npm/node_modules/make-fetch-happen/lib/fetch.js
-rw-r--r-- root/root usr/lib/node_modules/npm/node_modules/make-fetch-happen/lib/index.js
-rw-r--r-- root/root usr/lib/node_modules/npm/node_modules/make-fetch-happen/lib/options.js
-rw-r--r-- root/root usr/lib/node_modules/npm/node_modules/make-fetch-happen/lib/pipeline.js
-rw-r--r-- root/root usr/lib/node_modules/npm/node_modules/make-fetch-happen/lib/remote.js
-rw-r--r-- root/root usr/lib/node_modules/npm/node_modules/make-fetch-happen/package.json
drwxr-xr-x root/root usr/lib/node_modules/npm/node_modules/minimatch/

View File

@ -1,6 +1,6 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF3xj7kqbPbH24AvHNHPuP8uvs6zUopJSX3PSVJ0hyCe5BNSmDXcsqWuvkGRpbIg8JuX3+DYCX+FrnMNVeGhNKIwI=
SHA256 (Pkgfile) = 5d91b81d74dded8ae3a9eb90fe2136ed6eee1464d1f94e5dc1a80576009888e2
SHA256 (.footprint) = e3eecfd717b4d24ddb9e247c3300170af5ff6f196cb4f755e16d0961855d3cfb
SHA256 (npm-8.10.0.tar.gz) = 44379d57a076ee638ea18269113892d67039cb8f06795e88ce44c37338695d65
RWSagIOpLGJF31AAm/MZxVr+DMiakxOji22dbiMBWBc5KTlMghPDn2taRYipYMQKEhVHybpgBwXILhj5Bji2GlNVTzMsCcuBSQw=
SHA256 (Pkgfile) = b62efd606dbb8eb6b63d90d6359e49fcfa9c9a1b8730b637b73fe4e87eb53c22
SHA256 (.footprint) = f3ac66f4d438dce47d8b5a2f75f7c089600fe51936afdbe24a12d0c3a9866e1d
SHA256 (npm-8.11.0.tar.gz) = da64cae44d7f8e54fe64e312c85afd15079911f429233a1ea01ad7cfb184fb14
SHA256 (destdir.patch) = b74ee19a9412025067c9d0b5aa5946a651a7bc0dedab4ae147b3e5d1fb569462

View File

@ -4,7 +4,7 @@
# Depends on: nodejs
name=npm
version=8.10.0
version=8.11.0
release=1
source=(https://github.com/npm/cli/archive/v$version/$name-$version.tar.gz
destdir.patch)

View File

@ -1,6 +1,11 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF391d/+M2zgcjjsP3jA1RYxk1wRGz0perQ/MN82hKsunJkvBTnQsk0qg3Tohnosc9eaQL4EJ59CdK5JCWSw0kaAA=
SHA256 (Pkgfile) = edc57a2615a452245b6b52a2a0f9855924ae62a2c7178565cb9c2aa9ee7cc3d6
RWSagIOpLGJF3/ZoLwd6XMTTf9TzcAkkES65JTlOGT8z4IQaChgzF0T2sIu+DEKyNpgqkjdQI6d4AbQY2oh4dxFBWjBgkZgSzwc=
SHA256 (Pkgfile) = a20a96d8c0dfe0cabc361e63d5ee41d689bb9ea58ea7fe3e20f96404aa0d7c9a
SHA256 (.footprint) = 304a8bff621cd9e72899712ff96855b3a777f9f233dcb4820f32fba094becae7
SHA256 (os-prober_1.79.tar.xz) = abe6317d078c4e51e322e62036b6df4a698bfe80c5be110a08894841179810ee
SHA256 (Fix-CRUX-grub-menu-entry-detection.patch) = cc77faf6fa1eaf281db0c04798dd8c3f81d12722d29527c021e9dfae896ded36
SHA256 (os-prober_1.80.tar.xz) = 8063c38b9d006b94869e4127057d1189cb1adb561c2085c400b297ffa0cee38f
SHA256 (os-prober-1.79-btrfs-subvolume-detection.patch) = 15bb651eec5a0ae9bd08fc70f1cc23246cf31e7054838d162020d4806dc67810
SHA256 (os-prober-1.79-use-fstab-name.patch) = efb22d59db0c60fa1545ae8e18ac5585fda44a8a95ef8c46bca8499f79c7ad27
SHA256 (os-prober-1.79-mounted-boot-partition-fix.patch) = fc46f47cb10d25387244888780733abfc4c45a7be44e8a49935d054aa5b82749
SHA256 (os-prober-1.79-fix-busy-umount-message.patch) = 14164906bb62415769efa76f874cf236cd1c73e8e9c87e0fc8f3f5674bc85424
SHA256 (os-prober-1.79-efi-chroot-blkid-fallback.patch) = 3b6f28d91dcc0389039a14992aa197eba18c083cb9762157e32414a5e5f026ef
SHA256 (add-CRUX-detection.patch) = 7da0c45bbde226b92cf2ea7116bf084806a066ca29ff1d52bb4a7ab90f03a5f5

View File

@ -1,12 +0,0 @@
--- a/os-probes/mounted/common/90linux-distro 2017-05-04 14:57:23.197520770 +0800
+++ b/os-probes/mounted/common/90linux-distro 2017-05-04 15:09:13.848541790 +0800
@@ -137,6 +137,9 @@ if (ls "$dir"/lib*/ld*.so* && [ -d "$dir
elif [ -e "$dir/etc/devuan_version" ]; then
short="Devuan"
long="$(printf "Devuan GNU/Linux (%s)\n" "$(cat "$dir/etc/devuan_version")")"
+ elif [ -e "$dir/usr/bin/crux" ]; then
+ short="CRUX"
+ long="$(printf "CRUX GNU/Linux" "$(cat "$dir/usr/bin/crux" | grep echo | cut -b 20-22)")"
else
short="Linux"
long="unknown Linux distribution"

View File

@ -1,22 +1,37 @@
# Description: Tool to detect other OSes.
# URL: http://joey.kitenet.net/code/os-prober
# Maintainer: Tim Biermann, tbier at posteo dot de
# Depends on:
# Depends on: grub2
name=os-prober
version=1.79
version=1.80
release=1
source=(http://ftp.de.debian.org/debian/pool/main/o/$name/${name}_$version.tar.xz
Fix-CRUX-grub-menu-entry-detection.patch)
# grabbed from gentoo
os-prober-1.79-btrfs-subvolume-detection.patch
os-prober-1.79-use-fstab-name.patch
os-prober-1.79-mounted-boot-partition-fix.patch
os-prober-1.79-fix-busy-umount-message.patch
os-prober-1.79-efi-chroot-blkid-fallback.patch
add-CRUX-detection.patch)
build() {
cd $name
patch -Np1 -i $SRC/Fix-CRUX-grub-menu-entry-detection.patch
cd $name-$version
patch -Np1 -i $SRC/add-CRUX-detection.patch
patch -Np1 -i $SRC/os-prober-1.79-btrfs-subvolume-detection.patch
patch -Np1 -i $SRC/os-prober-1.79-use-fstab-name.patch
patch -Np1 -i $SRC/os-prober-1.79-mounted-boot-partition-fix.patch
patch -Np1 -i $SRC/os-prober-1.79-fix-busy-umount-message.patch
patch -Np1 -i $SRC/os-prober-1.79-efi-chroot-blkid-fallback.patch
# Adjust lib dir to allow detection of 64-bit distros
sed -i -e "s:/lib/ld\*\.so\*:/lib*/ld*.so*:g" os-probes/mounted/common/90linux-distro
rm -f Makefile
make newns
find . -iname "*.orig" -delete
install -Dm755 linux-boot-prober $PKG/usr/bin/linux-boot-prober
install -Dm755 $name $PKG/usr/bin/$name
install -Dm755 newns $PKG/usr/lib/$name/newns

View File

@ -0,0 +1,15 @@
diff -Naur os-prober-1.80.orig/os-probes/mounted/common/90linux-distro os-prober-1.80/os-probes/mounted/common/90linux-distro
--- os-prober-1.80.orig/os-probes/mounted/common/90linux-distro 2022-05-28 11:49:43.439329688 +0200
+++ os-prober-1.80/os-probes/mounted/common/90linux-distro 2022-05-28 12:05:30.890279156 +0200
@@ -27,6 +27,11 @@
elif [ -e "$dir/etc/debian_version" ]; then
short="Debian"
long="$(printf "Debian GNU/Linux (%s)\n" "$(cat "$dir/etc/debian_version")")"
+ # CRUX traditionally only supplies /usr/bin/crux with only newer versions
+ # supporting /etc/os-release, we only need name and version anyway
+ elif [ -e "$dir/usr/bin/crux" ]; then
+ short="$(awk '/echo / {gsub(/"|,/, "", $2); print $2}' $dir/usr/bin/crux)"
+ long="$(awk '/echo / {gsub(/"|,/, "", $2);gsub(/"|,/, "", $4); print $2 " " $4}' $dir/usr/bin/crux)"
# RPM derived distributions may also have a redhat-release or
# mandrake-release, so check their files first.
elif [ -e "$dir/etc/altlinux-release" ]; then

View File

@ -0,0 +1,511 @@
Fixes detection of multiple linux installations on different subvolumes of the
same partition. This patch is a combination of https://src.fedoraproject.org/rpms/os-prober/blob/a27e5121193e2222ada672db3521a7d9de70991b/f/os-prober-btrfsfix.patch and https://build.opensuse.org/package/view_file/openSUSE:Factory/os-prober/Improve-btrfs-handling-on-os-probing-for-grub2.patch?rev=56 .
Bug: https://bugs.gentoo.org/790434
https://bugs.gentoo.org/817905
https://bugs.debian.org/688336
https://bugzilla.redhat.com/888341
--- a/common.sh
+++ b/common.sh
@@ -155,6 +155,7 @@ parse_proc_mounts () {
done
}
+# add forth parameter to pickup btrfs subvol info
parsefstab () {
while read -r line; do
case "$line" in
@@ -165,12 +166,22 @@ parsefstab () {
set -f
set -- $line
set +f
- printf '%s %s %s\n' "$1" "$2" "$3"
+ printf '%s %s %s %s\n' "$1" "$2" "$3" "$4"
;;
esac
done
}
+#check_btrfs_mounted $bootsv $bootuuid)
+check_btrfs_mounted () {
+ bootsv="$1"
+ bootuuid="$2"
+ bootdev=$(blkid | grep "$bootuuid" | cut -d ':' -f 1)
+ bindfrom=$(grep " btrfs " /proc/self/mountinfo |
+ grep " $bootdev " | grep " /$bootsv " | cut -d ' ' -f 5)
+ printf "%s" "$bindfrom"
+}
+
unescape_mount () {
printf %s "$1" | \
sed 's/\\011/ /g; s/\\012/\n/g; s/\\040/ /g; s/\\134/\\/g'
--- a/linux-boot-prober
+++ b/linux-boot-prober
@@ -5,16 +5,143 @@ set -e
newns "$@"
require_tmpdir
+ERR="n"
+
+tmpmnt=/var/lib/os-prober/mount
+if [ ! -d "$tmpmnt" ]; then
+ mkdir "$tmpmnt"
+fi
+
+mounted=
+bootmnt=
+bootsv=
+bootuuid=
grep "^/dev/" /proc/mounts | parse_proc_mounts >"$OS_PROBER_TMP/mounted-map" || true
-partition="$1"
+if [ -z "$1" ]; then
+ ERR=y
+elif [ "$1" = btrfs -a -z "$2" ]; then
+ ERR=y
+elif [ "$1" = btrfs -a -z "$3" ]; then
+ ERR=y
+elif [ "$1" = btrfs ]; then
+ type=btrfs
+ echo "$2" | grep -q "^UUID=" || ERR=y
+ echo "$3" | grep -q "^subvol=" || ERR=y
+ export "$2"
+ export "$3"
+ partition=$(blkid | grep "$UUID" | cut -d ':' -f 1 | tr '\n' ' ' | cut -d ' ' -f 1)
+ debug "btrfs: partition=$partition, UUID=$UUID, subvol=$subvol"
+else
+ partition="$1"
+ type=other
+fi
-if [ -z "$partition" ]; then
+if [ "x$ERR" != xn ]; then
echo "usage: linux-boot-prober partition" >&2
+ echo " linux-boot-prober btrfs UUID=<> subvol=<>" >&2
exit 1
fi
+if [ "$type" = btrfs ]; then
+ # handle all of the btrfs stuff here
+ if [ ! -e "/proc/self/mountinfo" ]; then
+ warn "/proc/self/mountinfo does not exist, exiting"
+ umount "$tmpmnt" 2>/dev/null
+ rmdir "$tmpmnt" 2>/dev/null
+ exit 1
+ fi
+ mpoint=$(grep "btrfs" /proc/self/mountinfo | grep " /$subvol " | grep " $partition " | cut -d ' ' -f 5)
+ if [ "$mpoint" = "/" ]; then
+ warn "specifying active root not valid, exiting"
+ umount "$tmpmnt" 2>/dev/null
+ rmdir "$tmpmnt" 2>/dev/null
+ exit 1
+ fi
+ if [ "$mpoint" = "$tmpmnt" ]; then
+ warn "btrfs subvol=$subvool, UUID=$UUID, already mounted on $tmpmnt **ERROR**"
+ umount "$tmpmnt" 2>/dev/null
+ rmdir "$tmpmnt" 2>/dev/null
+ exit 1
+ fi
+ if [ -z "$mpoint" ]; then
+ # mount the btrfs root
+ if ! mount -o subvol=$subvol -t btrfs -U $UUID "$tmpmnt" 2>/dev/null; then
+ warn "error mounting btrfs subvol=$subvol UUID=$UUID"
+ umount "$tmpmnt/boot" 2>/dev/null
+ umount "$tmpmnt" 2>/dev/null
+ rmdir "$tmpmnt" 2>/dev/null
+ exit 1
+ fi
+ else
+ # bind-mount
+ if ! mount -o bind "$mpoint" "$tmpmnt" 2>/dev/null; then
+ warn "error mounting btrfs bindfrom=$mpoint subvol=$subvol UUID=$UUID"
+ umount "$tmpmnt/boot" 2>/dev/null
+ umount "$tmpmnt" 2>/dev/null
+ rmdir "$tmpmnt" 2>/dev/null
+ exit 1
+ fi
+ fi
+ debug "mounted btrfs $partition, subvol=$subvol on $tmpmnt"
+ if [ ! -e "$tmpmnt/etc/fstab" ]; then
+ warn "btrfs subvol=$subvol not root"
+ umount "$tmpmnt" 2>/dev/null
+ rmdir "$tmpmnt" 2>/dev/null
+ exit 1
+ fi
+ bootmnt=$(parsefstab < "$tmpmnt/etc/fstab" | grep " /boot ") || true
+ if [ -z "$bootmnt" ]; then
+ # /boot is part of the root
+ bootpart="$partition"
+ bootsv="$subvol"
+ elif echo "$bootmnt" | cut -d ' ' -f 3 | grep -q "btrfs"; then
+ # separate btrfs /boot subvolume
+ bootsv=$(echo "$bootmnt" | cut -d ' ' -f 4 | grep "^subvol=" | sed "s/subvol=//" )
+ bootuuid=$(echo "$bootmnt" | cut -d ' ' -f 1 | grep "^UUID=" | sed "s/UUID=//" )
+ debug "mounting btrfs $tmpmnt/boot UUID=$bootuuid subvol=$bootsv"
+ bindfrom=$(check_btrfs_mounted $bootsv $bootuuid)
+ if [ -n "$bindfrom" ]; then
+ # already mounted some place
+ if ! mount -o bind $bindfrom "$tmpmnt/boot" 2>/dev/null; then
+ warn "error bind mounting btrfs boot subvol=$bootsv, from=$bindfrom"
+ umount "$tmpmnt/boot" 2>/dev/null
+ umount "$tmpmnt" 2>/dev/null
+ rmdir "$tmpmnt" 2>/dev/null
+ exit 1
+ fi
+ elif ! mount -o subvol=$bootsv -t btrfs -U $bootuuid "$tmpmnt/boot" 2>/dev/null; then
+ warn "error mounting btrfs boot partition subvol=$bootsv, UUID=$bootuuid"
+ umount "$tmpmnt/boot" 2>/dev/null
+ umount "$tmpmnt" 2>/dev/null
+ rmdir "$tmpmnt" 2>/dev/null
+ exit 1
+ fi
+ bootpart=$(grep " btrfs " /proc/self/mountinfo | grep " /$bootsv " | cut -d ' ' -f 10)
+ else
+ # non-btrfs partition or logical volume
+ linux_mount_boot $partition $tmpmnt
+ bootpart="${mountboot%% *}"
+ bootsv=
+ fi
+
+ test="/usr/lib/linux-boot-probes/mounted/40grub2"
+ if [ -f $test ] && [ -x $test ]; then
+ debug "running $test $partition $bootpart $tmpmnt $type $subvol $bootsv"
+ if $test "$partition" "$bootpart" "$tmpmnt" "$type" "$subvol" "$bootsv"; then
+ debug "$test succeeded"
+ fi
+ fi
+ umount "$tmpmnt/boot" 2>/dev/null || true
+ if ! umount "$tmpmnt" 2>/dev/null; then
+ warn "problem umount $tmpmnt"
+ fi
+ rmdir "$tmpmnt" 2>/dev/null || true
+
+ exit 0
+fi
+
if ! mapped="$(mapdevfs "$partition")"; then
log "Device '$partition' does not exist; skipping"
continue
@@ -22,8 +149,8 @@ fi
if ! grep -q "^$mapped " "$OS_PROBER_TMP/mounted-map"; then
for test in /usr/lib/linux-boot-probes/*; do
- debug "running $test"
if [ -x $test ] && [ -f $test ]; then
+ debug "running $test"
if $test "$partition"; then
debug "linux detected by $test"
break
--- a/linux-boot-probes/mounted/common/40grub2
+++ b/linux-boot-probes/mounted/common/40grub2
@@ -2,17 +2,42 @@
. /usr/share/os-prober/common.sh
set -e
+# add support for btrfs with no separate /boot
+# that is, rootsv = bootsv
partition="$1"
bootpart="$2"
mpoint="$3"
type="$4"
+rootsv="$5"
+bootsv="$6"
found_item=0
entry_result () {
+ if [ "x$type" = "xbtrfs" ]; then
+ bsv=${bootsv:+/}${bootsv}
+ # if path is not relative to subvolume make it relative
+ kernel=${kernel#${bsv}}
+ kernelfile=$kernel
+ initrd=${initrd#${bsv}}
+ if [ "x$GRUB_FS" != "xbtrfs" ]; then
+ # absolute path needed: prepend subvolume if $kernel isn't empty
+ kernel=${kernel:+${bsv}}${kernel}
+ # handle multiple initrd paths
+ local initrd_path=
+ for path in ${initrd}; do
+ initrd_path+="${bsv}${path} "
+ done
+ initrd="${initrd_path% }"
+ fi
+ # assumed: rootsv != bootsv if rootsv isn't ancestor of bootsv
+ [ "$partition" != "$bootpart" -o "$rootsv" != "$bootsv" ] && kernelfile="/boot${kernelfile}"
+ else
+ kernelfile=$kernel
+ fi
if [ "$ignore_item" = 0 ] && \
[ -n "$kernel" ] && \
- [ -e "$mpoint/$kernel" ]; then
+ [ -e "$mpoint/$kernelfile" ]; then
result "$rootpart:$bootpart:$title:$kernel:$initrd:$parameters"
found_item=1
fi
@@ -64,7 +88,7 @@ parse_grub_menu () {
ignore_item=1
fi
;;
- linux)
+ linux|linuxefi|linux16)
# Hack alert: sed off any (hdn,n) but
# assume the kernel is on the same
# partition.
@@ -73,18 +98,18 @@ parse_grub_menu () {
parameters="$@"
# Systems with a separate /boot will not have
# the path to the kernel in grub.cfg.
- if [ "$partition" != "$bootpart" ]; then
+ if [ "$partition" != "$bootpart" -a "$type" != "btrfs" ]; then
kernel="/boot$kernel"
fi
;;
- initrd)
+ initrd|initrdefi|initrd16)
shift
initrd=""
for initrd_path in "$@"; do
# sed hack, as above
initrd_path="$(echo "$initrd_path" | sed 's/(.*)//')"
# Initrd same.
- if [ "$partition" != "$bootpart" ]; then
+ if [ "$partition" != "$bootpart" -a "$type" != "btrfs" ]; then
initrd_path="/boot$initrd_path"
fi
if [ -z "$initrd" ]; then
--- a/os-prober
+++ b/os-prober
@@ -76,9 +76,12 @@ partitions () {
# Also detect OSes on LVM volumes (assumes LVM is active)
if type lvs >/dev/null 2>&1; then
- echo "$(LVM_SUPPRESS_FD_WARNINGS=1 log_output lvs --noheadings --separator : -o vg_name,lv_name |
+ echo "$(LVM_SUPPRESS_FD_WARNINGS=1 log_output lvs --noheadings --separator : -o vg_name,lv_name 2>/dev/null |
sed "s|-|--|g;s|^[[:space:]]*\(.*\):\(.*\)$|/dev/mapper/\1-\2|")"
fi
+
+ # now lets make sure we got all of the btrfs partitions and disks
+ blkid | grep 'TYPE="btrfs"' | cut -d ':' -f 1
}
parse_proc_swaps () {
@@ -136,6 +139,8 @@ if [ -f /proc/mdstat ] ; then
grep "^md" /proc/mdstat | cut -d: -f2- | parse_proc_mdstat >"$OS_PROBER_TMP/raided-map" || true
fi
+: >"$OS_PROBER_TMP/btrfs-vols"
+
for partition in $(partitions); do
if ! mapped="$(mapdevfs "$partition")"; then
log "Device '$partition' does not exist; skipping"
@@ -154,7 +159,26 @@ for partition in $(partitions); do
continue
fi
- if ! grep -q "^$mapped " "$OS_PROBER_TMP/mounted-map" ; then
+ # do btrfs processing here; both mounted and unmounted will
+ # be handled by 50mounted-tests so we can do a subvol only once.
+ type=$(blkid -o value -s TYPE $mapped || true)
+ if [ "$type" = btrfs ]; then
+ uuid=$(blkid -o value -s UUID $mapped)
+ if grep -q "^$uuid" "$OS_PROBER_TMP/btrfs-vols" ; then
+ continue
+ fi
+ debug "btrfs volume uuid=$uuid partition=$partition"
+ echo "$uuid" >>"$OS_PROBER_TMP/btrfs-vols"
+ test="/usr/lib/os-probes/50mounted-tests"
+ if [ -f "$test" ] && [ -x "$test" ]; then
+ debug "running $test on btrfs $partition"
+ if "$test" btrfs "$uuid" "$partition"; then
+ debug "os detected by $test"
+ continue
+ fi
+ fi
+
+ elif ! grep -q "^$mapped " "$OS_PROBER_TMP/mounted-map" ; then
for test in /usr/lib/os-probes/*; do
if [ -f "$test" ] && [ -x "$test" ]; then
debug "running $test on $partition"
--- a/os-probes/common/50mounted-tests
+++ b/os-probes/common/50mounted-tests
@@ -14,19 +14,31 @@ do_unmount() {
rmdir "$tmpmnt" || true
}
-types="$(fs_type "$partition")"
+if [ "x$1" = xbtrfs ]; then
+ types=btrfs
+ if [ -z "$2" -o -z "$3" ]; then
+ debug "missing btrfs parameters, exiting"
+ exit 1
+ fi
+ UUID="$2"
+ BTRFSDEV="$3"
+else
+ partition="$1"
+ types="$(fs_type "$partition")" || types=NOT-DETECTED
+fi
+
if [ "$types" = NOT-DETECTED ]; then
debug "$1 type not recognised; skipping"
- exit 0
+ exit 1
elif [ "$types" = swap ]; then
debug "$1 is a swap partition; skipping"
- exit 0
+ exit 1
elif [ "$types" = crypto_LUKS ]; then
debug "$1 is a LUKS partition; skipping"
- exit 0
+ exit 1
elif [ "$types" = LVM2_member ]; then
debug "$1 is an LVM member; skipping"
- exit 0
+ exit 1
elif [ "$types" = ntfs ]; then
if type ntfs-3g >/dev/null 2>&1; then
types='ntfs-3g ntfs'
@@ -35,7 +47,7 @@ elif [ -z "$types" ]; then
if type cryptsetup >/dev/null 2>&1 && \
cryptsetup luksDump "$partition" >/dev/null 2>&1; then
debug "$1 is a LUKS partition; skipping"
- exit 0
+ exit 1
fi
for type in $(grep -v nodev /proc/filesystems); do
# hfsplus filesystems are mountable as hfs. Try hfs last so
@@ -58,6 +70,108 @@ if [ ! -d "$tmpmnt" ]; then
fi
mounted=
+
+# all btrfs processing here. Handle both unmounted and
+# mounted subvolumes.
+if [ "$types" = btrfs ]; then
+ partition="$BTRFSDEV"
+ debug "begin btrfs processing for $UUID"
+ # note that the btrfs volume must not be mounted ro
+ if mount -t btrfs -U "$UUID" "$tmpmnt" 2>/dev/null; then
+ debug "btrfs volume $UUID mounted"
+ else
+ warn "cannot mount btrfs volume $UUID, exiting"
+ rmdir "$tmpmnt" || true
+ exit 1
+ fi
+ # besides regular subvols, get ro and snapshot so thet can be excluded
+ subvols=$(btrfs subvolume list "$tmpmnt" | cut -d ' ' -f 9)
+ rosubvols=$(btrfs subvolume list -r "$tmpmnt" | cut -d ' ' -f 9)
+ sssubvols=$(btrfs subvolume list -s "$tmpmnt" | cut -d ' ' -f 14)
+ if ! umount "$tmpmnt"; then
+ warn "failed to umount btrfs volume on $tmpmnt"
+ rmdir "$tmpmnt" || true
+ exit 1
+ fi
+
+ found=
+ mounted=
+
+ mpoint="$(grep btrfs /proc/self/mountinfo | grep "$partition " | cut -d ' ' -f 5)"
+ if [ -n "$mpoint" -a "x$mpoint" = "x/" ]; then
+ debug "This is the root for the running system" #running system must be done elsewhere
+ else
+ #partition was not root of running system, so lets look for bootable subvols
+ if [ -n "$mpoint" ] ; then
+ mounted=1 #partition was already mounted,so lets not unmount it when done
+ else
+ # again, do not mount btrfs ro
+ mount -t btrfs -U "$UUID" "$tmpmnt"
+ mpoint="$tmpmnt"
+ fi
+
+ test="/usr/lib/os-probes/mounted/90linux-distro"
+ if [ -f "$test" ] && [ -x "$test" ]; then
+ debug "running subtest $test"
+ if "$test" "$partition" "$mpoint" btrfs "UUID=$UUID"; then
+ debug "os found by subtest $test on $partition"
+ found=1
+ fi
+ fi
+ if [ -z "$mounted" ]; then
+ if ! umount "$tmpmnt"; then
+ warn "failed to umount $tmpmnt"
+ fi
+ fi
+ fi
+
+ if [ -z "$subvols" ]; then
+ debug "no subvols found on btrfs volume $UUID"
+ else
+ found=
+ for subvol in $subvols; do
+ debug "begin btrfs processing for $UUID subvol=$subvol"
+ if echo "$rosubvols" | grep -q -x "$subvol"; then
+ continue
+ fi
+ if echo "$sssubvols" | grep -q -x "$subvol"; then
+ continue
+ fi
+ mounted=
+ mpoint="$(grep btrfs /proc/self/mountinfo | grep "$partition " | grep "/$subvol " | cut -d ' ' -f 5)"
+ if [ -n "$mpoint" ]; then
+ if [ "x$mpoint" = "x/" ]; then
+ continue # this is the root for the running system
+ fi
+ mounted=1
+ else
+ # again, do not mount btrfs ro
+ mount -t btrfs -o subvol="$subvol" -U "$UUID" "$tmpmnt"
+ mpoint="$tmpmnt"
+ fi
+ test="/usr/lib/os-probes/mounted/90linux-distro"
+ if [ -f "$test" ] && [ -x "$test" ]; then
+ debug "running subtest $test"
+ if "$test" "$partition" "$mpoint" btrfs "UUID=$UUID" "subvol=$subvol"; then
+ debug "os found by subtest $test on subvol $subvol"
+ found=1
+ fi
+ fi
+ if [ -z "$mounted" ]; then
+ if ! umount "$tmpmnt"; then
+ warn "failed to umount $tmpmnt"
+ fi
+ fi
+ done
+ fi
+ rmdir "$tmpmnt" || true
+ if [ "$found" ]; then
+ exit 0
+ else
+ exit 1
+ fi
+fi
+
if type grub-mount >/dev/null 2>&1 && \
type grub-probe >/dev/null 2>&1 && \
grub-mount "$partition" "$tmpmnt" 2>/dev/null; then
--- a/os-probes/mounted/common/90linux-distro
+++ b/os-probes/mounted/common/90linux-distro
@@ -7,6 +7,8 @@ set -e
partition="$1"
dir="$2"
type="$3"
+uuid="$4"
+subvol="$5"
# This test is inaccurate, but given separate / and /boot partitions and the
# fact that only some architectures have ld-linux.so, I can't see anything
@@ -143,7 +145,11 @@ if (ls "$dir"/lib*/ld*.so* && [ -d "$dir/boot" ] || ls "$dir"/usr/lib*/ld*.so*)
fi
label="$(count_next_label "$short")"
- result "$partition:$long:$label:linux"
+ if [ "x$type" = "xbtrfs" -a "x$uuid" != "x" -a "x$subvol" != "x" ]; then
+ result "$partition:$long:$label:linux:$type:$uuid:$subvol"
+ else
+ result "$partition:$long:$label:linux"
+ fi
exit 0
else
exit 1

View File

@ -0,0 +1,24 @@
Fixes missing entries when os-prober is run in a chroot environment by falling back
to blkid if udev isn't available or if /run/udev isn't bind mounted. Modified from
https://build.opensuse.org/package/view_file/Base:System/os-prober/os-prober-05efi-blkid.patch?rev=103
Bug: https://bugs.gentoo.org/761475
https://bugzilla.opensuse.org/1076779
--- a/os-probes/mounted/x86/05efi
+++ b/os-probes/mounted/x86/05efi
@@ -46,6 +46,14 @@ if type udevinfo > /dev/null 2>&1; then
fi
eval "$(udevinfo -q property -n "$partition" | grep -E '^ID_PART_ENTRY_(TYPE|SCHEME)=')"
+
+ # udev may not work in chroot as its db may not be there, bailout that by blkid (bsc#1076779)
+ if [ -z "$ID_PART_ENTRY_TYPE" -a -z "$ID_PART_ENTRY_SCHEME" ] &&
+ type blkid > /dev/null 2>&1; then
+ debug "fallback to blkid"
+ eval "$(blkid -p -o udev "$partition" | grep -E '^(ID_PART_ENTRY_(TYPE|SCHEME))=')"
+ fi
+
debug "$partition partition scheme is $ID_PART_ENTRY_SCHEME"
debug "$partition partition type is $ID_PART_ENTRY_TYPE"

View File

@ -0,0 +1,21 @@
Fixes errors like "umount: /var/lib/os-prober/mount: target is busy."
which can appear in some corner-cases.
Bug: https://bugzilla.redhat.com/903906
--- a/common.sh
+++ b/common.sh
@@ -336,3 +336,13 @@ linux_mount_boot () {
mountboot="$bootpart $mounted"
}
+
+umount_exec=$(which umount)
+umount() {
+ if ! $umount_exec $@ 2> /dev/null; then
+ error "umount error, retrying after 1 sec"
+ sleep 1
+ $umount_exec $@
+ fi
+}
+

View File

@ -0,0 +1,17 @@
Fixes the problem of the root partition being returned instead of the boot
partition when both are already mounted somewhere.
Bug: https://bugs.debian.org/699840
https://bugzilla.redhat.com/906886
--- a/linux-boot-prober
+++ b/linux-boot-prober
@@ -167,7 +167,7 @@ else
bootpart="${mountboot%% *}"
bootmounted="${mountboot#* }"
else
- bootpart="$partition"
+ bootpart="$(grep " $mpoint/boot " "$OS_PROBER_TMP/mounted-map" | head -n1 | cut -d " " -f 4)"
bootmounted=0
fi
for test in /usr/lib/linux-boot-probes/mounted/*; do

View File

@ -0,0 +1,34 @@
For symlinks to partions in fstab, returns the partition name from fstab instead
of the name of its resolved destination, eg., for /dev/mapper/mylvmvol in fstab,
linked to /dev/dm-2, return "mylvmvol" instead of "dm-2".
Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699839
https://bugzilla.redhat.com/show_bug.cgi?id=893472
--- a/common.sh
+++ b/common.sh
@@ -269,7 +269,7 @@ linux_mount_boot () {
if [ "$bindfrom" != "$tmpmnt/boot" ]; then
if mount --bind "$bindfrom" "$tmpmnt/boot"; then
mounted=1
- bootpart="$1"
+ bootpart="$tmppart"
else
debug "failed to bind-mount $bindfrom onto $tmpmnt/boot"
fi
@@ -277,6 +277,15 @@ linux_mount_boot () {
fi
if [ "$mounted" ]; then
:
+ elif [ -e "$tmppart" ]; then
+ bootpart="$tmppart"
+ boottomnt="$tmppart"
+ elif [ -e "$tmpmnt/$tmppart" ]; then
+ bootpart="$tmppart"
+ boottomnt="$tmpmnt/$tmppart"
+ elif [ -e "/target/$tmppart" ]; then
+ bootpart="$tmppart"
+ boottomnt="/target/$tmppart"
elif [ -e "$1" ]; then
bootpart="$1"
boottomnt="$1"

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF30Z59XYlepYhOyR46M24HlZcpR3NTqB4PINkJ1jTHfF+tTcYmiiKGw2ZZXfFce36RfxWcjW8wXrSpCn8mKE1gQo=
SHA256 (Pkgfile) = 800c96460fa0b8ee2f15edb951c11f926e2c5f791391584ab0f8c142e6e6c513
RWSagIOpLGJF3ymb4pqZnfAgG19jkavSAzfgnILM7fGvOFqLhVRouV7qdgfEcHJnP+XRkWq4etbaB5GE6/FoCwbgU2iSWgtPxg8=
SHA256 (Pkgfile) = c2a84ee8d823be8e6f6ac6306866cb6b01e9e51beacebaee0b93633e7e78d302
SHA256 (.footprint) = f4e5e870fa8c4258ab20e55cce901f7da5fd9eb8f8c816ddc462af80f2126989
SHA256 (HTTP-Daemon-6.14.tar.gz) = f0767e7f3cbb80b21313c761f07ad8ed253bce9fa2d0ba806b3fb72d309b2e1d

View File

@ -1,305 +0,0 @@
From 067faffb8e596a53c9ac2ed7e571472f7a163681 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Mon, 16 Jan 2017 16:13:08 +0100
Subject: [PATCH] Add IPv6 support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This patch ports the code from IO::Socket::INET to IO::Socket::IP in
order to support IPv6.
CPAN RT #91699, #71395.
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
Makefile.PL | 1 +
README | 24 ++++++++++++------------
lib/HTTP/Daemon.pm | 43 ++++++++++++++++++++++++++++---------------
t/chunked.t | 34 +++++++++++++++++++++++-----------
4 files changed, 64 insertions(+), 38 deletions(-)
diff --git a/Makefile.PL b/Makefile.PL
index 09c7e86..85d5712 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -14,6 +14,7 @@ WriteMakefile(
PREREQ_PM => {
'Sys::Hostname' => 0,
'IO::Socket' => 0,
+ 'IO::Socket::IP' => 0,
'HTTP::Request' => 6,
'HTTP::Response' => 6,
'HTTP::Status' => 6,
diff --git a/README b/README
index be5a20a..ddb3b6e 100644
--- a/README
+++ b/README
@@ -24,12 +24,12 @@ SYNOPSIS
DESCRIPTION
Instances of the `HTTP::Daemon' class are HTTP/1.1 servers that listen
on a socket for incoming requests. The `HTTP::Daemon' is a subclass of
- `IO::Socket::INET', so you can perform socket operations directly on it
+ `IO::Socket::IP', so you can perform socket operations directly on it
too.
The accept() method will return when a connection from a client is
available. The returned value will be an `HTTP::Daemon::ClientConn'
- object which is another `IO::Socket::INET' subclass. Calling the
+ object which is another `IO::Socket::IP' subclass. Calling the
get_request() method on this object will read data from the client and
return an `HTTP::Request' object. The ClientConn object also provide
methods to send back various responses.
@@ -40,13 +40,13 @@ DESCRIPTION
responses that conform to the HTTP/1.1 protocol.
The following methods of `HTTP::Daemon' are new (or enhanced) relative
- to the `IO::Socket::INET' base class:
+ to the `IO::Socket::IP' base class:
$d = HTTP::Daemon->new
$d = HTTP::Daemon->new( %opts )
The constructor method takes the same arguments as the
- `IO::Socket::INET' constructor, but unlike its base class it can
- also be called without any arguments. The daemon will then set up a
+ `IO::Socket::IP' constructor, but unlike its base class it can also
+ be called without any arguments. The daemon will then set up a
listen queue of 5 connections and allocate some random port number.
A server that wants to bind to some specific address on the standard
@@ -57,8 +57,8 @@ DESCRIPTION
LocalPort => 80,
);
- See IO::Socket::INET for a description of other arguments that can
- be used configure the daemon during construction.
+ See IO::Socket::IP for a description of other arguments that can be
+ used configure the daemon during construction.
$c = $d->accept
$c = $d->accept( $pkg )
@@ -71,7 +71,7 @@ DESCRIPTION
The accept method will return `undef' if timeouts have been enabled
and no connection is made within the given time. The timeout()
- method is described in IO::Socket.
+ method is described in IO::Socket::IP.
In list context both the client object and the peer address will be
returned; see the description of the accept method IO::Socket for
@@ -89,9 +89,9 @@ DESCRIPTION
The default is the string "libwww-perl-daemon/#.##" where "#.##" is
replaced with the version number of this module.
- The `HTTP::Daemon::ClientConn' is a `IO::Socket::INET' subclass.
- Instances of this class are returned by the accept() method of
- `HTTP::Daemon'. The following methods are provided:
+ The `HTTP::Daemon::ClientConn' is a `IO::Socket::IP' subclass. Instances
+ of this class are returned by the accept() method of `HTTP::Daemon'. The
+ following methods are provided:
$c->get_request
$c->get_request( $headers_only )
@@ -227,7 +227,7 @@ DESCRIPTION
SEE ALSO
RFC 2616
- IO::Socket::INET, IO::Socket
+ IO::Socket::IP, IO::Socket
COPYRIGHT
Copyright 1996-2003, Gisle Aas
diff --git a/lib/HTTP/Daemon.pm b/lib/HTTP/Daemon.pm
index 27a7bf4..0e22b77 100644
--- a/lib/HTTP/Daemon.pm
+++ b/lib/HTTP/Daemon.pm
@@ -5,8 +5,10 @@ use vars qw($VERSION @ISA $PROTO $DEBUG);
$VERSION = "6.01";
-use IO::Socket qw(AF_INET INADDR_ANY INADDR_LOOPBACK inet_ntoa);
-@ISA=qw(IO::Socket::INET);
+use Socket qw(AF_INET AF_INET6 INADDR_ANY IN6ADDR_ANY
+ INADDR_LOOPBACK IN6ADDR_LOOPBACK inet_ntop sockaddr_family);
+use IO::Socket::IP;
+@ISA=qw(IO::Socket::IP);
$PROTO = "HTTP/1.1";
@@ -40,15 +42,26 @@ sub url
my $self = shift;
my $url = $self->_default_scheme . "://";
my $addr = $self->sockaddr;
- if (!$addr || $addr eq INADDR_ANY) {
+ if (!$addr || $addr eq INADDR_ANY || $addr eq IN6ADDR_ANY) {
require Sys::Hostname;
$url .= lc Sys::Hostname::hostname();
}
elsif ($addr eq INADDR_LOOPBACK) {
- $url .= inet_ntoa($addr);
+ $url .= inet_ntop(AF_INET, $addr);
+ }
+ elsif ($addr eq IN6ADDR_LOOPBACK) {
+ $url .= '[' . inet_ntop(AF_INET6, $addr) . ']';
}
else {
- $url .= gethostbyaddr($addr, AF_INET) || inet_ntoa($addr);
+ my $host = $addr->sockhostname;
+ if (!defined $host) {
+ if (sockaddr_family($addr) eq AF_INET6) {
+ $host = '[' . inet_ntop(AF_INET6, $addr) . ']';
+ } else {
+ $host = inet_ntop(AF_INET6, $addr);
+ }
+ }
+ $url .= $host;
}
my $port = $self->sockport;
$url .= ":$port" if $port != $self->_default_port;
@@ -77,8 +90,8 @@ sub product_tokens
package HTTP::Daemon::ClientConn;
use vars qw(@ISA $DEBUG);
-use IO::Socket ();
-@ISA=qw(IO::Socket::INET);
+use IO::Socket::IP ();
+@ISA=qw(IO::Socket::IP);
*DEBUG = \$HTTP::Daemon::DEBUG;
use HTTP::Request ();
@@ -645,12 +658,12 @@ HTTP::Daemon - a simple http server class
Instances of the C<HTTP::Daemon> class are HTTP/1.1 servers that
listen on a socket for incoming requests. The C<HTTP::Daemon> is a
-subclass of C<IO::Socket::INET>, so you can perform socket operations
+subclass of C<IO::Socket::IP>, so you can perform socket operations
directly on it too.
The accept() method will return when a connection from a client is
available. The returned value will be an C<HTTP::Daemon::ClientConn>
-object which is another C<IO::Socket::INET> subclass. Calling the
+object which is another C<IO::Socket::IP> subclass. Calling the
get_request() method on this object will read data from the client and
return an C<HTTP::Request> object. The ClientConn object also provide
methods to send back various responses.
@@ -661,7 +674,7 @@ desirable. Also note that the user is responsible for generating
responses that conform to the HTTP/1.1 protocol.
The following methods of C<HTTP::Daemon> are new (or enhanced) relative
-to the C<IO::Socket::INET> base class:
+to the C<IO::Socket::IP> base class:
=over 4
@@ -670,7 +683,7 @@ to the C<IO::Socket::INET> base class:
=item $d = HTTP::Daemon->new( %opts )
The constructor method takes the same arguments as the
-C<IO::Socket::INET> constructor, but unlike its base class it can also
+C<IO::Socket::IP> constructor, but unlike its base class it can also
be called without any arguments. The daemon will then set up a listen
queue of 5 connections and allocate some random port number.
@@ -682,7 +695,7 @@ HTTP port will be constructed like this:
LocalPort => 80,
);
-See L<IO::Socket::INET> for a description of other arguments that can
+See L<IO::Socket::IP> for a description of other arguments that can
be used configure the daemon during construction.
=item $c = $d->accept
@@ -699,7 +712,7 @@ class a subclass of C<HTTP::Daemon::ClientConn>.
The accept method will return C<undef> if timeouts have been enabled
and no connection is made within the given time. The timeout() method
-is described in L<IO::Socket>.
+is described in L<IO::Socket::IP>.
In list context both the client object and the peer address will be
returned; see the description of the accept method L<IO::Socket> for
@@ -721,7 +734,7 @@ replaced with the version number of this module.
=back
-The C<HTTP::Daemon::ClientConn> is a C<IO::Socket::INET>
+The C<HTTP::Daemon::ClientConn> is a C<IO::Socket::IP>
subclass. Instances of this class are returned by the accept() method
of C<HTTP::Daemon>. The following methods are provided:
@@ -895,7 +908,7 @@ Return a reference to the corresponding C<HTTP::Daemon> object.
RFC 2616
-L<IO::Socket::INET>, L<IO::Socket>
+L<IO::Socket::IP>, L<IO::Socket>
=head1 COPYRIGHT
diff --git a/t/chunked.t b/t/chunked.t
index e11799f..c274b11 100644
--- a/t/chunked.t
+++ b/t/chunked.t
@@ -95,18 +95,30 @@ my $can_fork = $Config{d_fork} ||
my $tests = @TESTS;
my $tport = 8333;
-my $tsock = IO::Socket::INET->new(LocalAddr => '0.0.0.0',
- LocalPort => $tport,
- Listen => 1,
- ReuseAddr => 1);
+my @addresses = (
+ { server => '::', client => '::1' },
+ { server => '0.0.0.0', client => '127.0.0.1' }
+);
+my $family;
+for my $id (0..$#addresses) {
+ my $tsock = IO::Socket::IP->new(LocalAddr => $addresses[$id]->{server},
+ LocalPort => $tport,
+ Listen => 1,
+ ReuseAddr => 1);
+ if ($tsock) {
+ close $tsock;
+ $family = $id;
+ last;
+ }
+}
+
if (!$can_fork) {
plan skip_all => "This system cannot fork";
}
-elsif (!$tsock) {
- plan skip_all => "Cannot listen on 0.0.0.0:$tport";
+elsif (!defined $family) {
+ plan skip_all => "Cannot listen on unspecifed address and port $tport";
}
else {
- close $tsock;
plan tests => $tests;
}
@@ -132,9 +144,9 @@ if ($pid = fork) {
open my $fh, "| socket localhost $tport" or die;
print $fh $test;
}
- use IO::Socket::INET;
- my $sock = IO::Socket::INET->new(
- PeerAddr => "127.0.0.1",
+ use IO::Socket::IP;
+ my $sock = IO::Socket::IP->new(
+ PeerAddr => $addresses[$family]->{client},
PeerPort => $tport,
) or die;
if (0) {
@@ -158,7 +170,7 @@ if ($pid = fork) {
} else {
die "cannot fork: $!" unless defined $pid;
my $d = HTTP::Daemon->new(
- LocalAddr => '0.0.0.0',
+ LocalAddr => $addresses[$family]->{server},
LocalPort => $tport,
ReuseAddr => 1,
) or die;
--
2.7.4

View File

@ -1,48 +0,0 @@
From b54702ab21edbf1ea0dbc00d978aecc89e5764d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Mon, 18 Sep 2017 15:21:16 +0200
Subject: [PATCH] Handle undef and empty LocalAddr
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
IO::Socket::INET interprets undefined and empty string LocalAddr
arguments as an unspecified address while IO::Socket::IP returns an
error. This seems to be one of the differences between the two
Socket implementations. Recent IO::Socket::IP (0.39) accepts undefined
value, but still bail outs on an empty string.
To improve compatibility, this patch adds a special handling for these
two values to be accepted as an unspecified value. Though this should
be corrected on IO::Socket:IP side probably.
CPAN RT#91699
CPAN RT#123069
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
lib/HTTP/Daemon.pm | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/lib/HTTP/Daemon.pm b/lib/HTTP/Daemon.pm
index 0e22b77..1e9d48e 100644
--- a/lib/HTTP/Daemon.pm
+++ b/lib/HTTP/Daemon.pm
@@ -18,6 +18,14 @@ sub new
my($class, %args) = @_;
$args{Listen} ||= 5;
$args{Proto} ||= 'tcp';
+ # Handle undefined or empty local address the same way as
+ # IO::Socket::INET -- use unspecified address
+ for my $key (qw(LocalAddr LocalHost)) {
+ if (exists $args{$key} &&
+ (!defined($args{$key}) || $args{$key} eq '')) {
+ delete $args{$key};
+ }
+ }
return $class->SUPER::new(%args);
}
--
2.13.5

View File

@ -1,7 +1,7 @@
# Description: Simple http server class
# URL: https://metacpan.org/pod/HTTP::Daemon
# Maintainer: Tim Biermann, tbier at posteo dot de
# Depends on: p5-http-date p5-http-message p5-lwp-mediatypes
# Depends on: p5-http-message
name=p5-http-daemon
version=6.14

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF38gLY4H1i5AN1YZAJsX96tJa9P6+exGCvjthXDnA9xooQAmisEnhX5HGI6zBy7xHCJCw4iA9DwjWiXNtr7hOhQw=
SHA256 (Pkgfile) = 41861b393c1730d5e36e34785e57935f6d6af89f93dc8f0e07de3d6330b36b20
RWSagIOpLGJF3y5p5sHSHOw9aCsFfFtG8e+6J5unXbh87oX/jL6M4QsrRoQkzJUcHMAjeRfu7i1YRxNaBpbT9N+q8ebzRSA2fgQ=
SHA256 (Pkgfile) = 04cb2d6e239fbd150c4e2ccc6a53b386b1c829980444e98c0fea9551ea8a5037
SHA256 (.footprint) = 40bb1394cef52f6860b5655ab6a0b5c2c1d7196afc46c11a9e4ae4c6e8c70433
SHA256 (v0.8.1.tar.gz) = e1afcd8035a4c1da7f6d0fc8d5fc703dee72baa77bd0588a67d3b606e70146cb
SHA256 (pastel-0.9.0.tar.gz) = 473c805de42f6849a4bb14ec103ca007441f355552bdb6ebc80b60dac1f3a95d

View File

@ -4,16 +4,15 @@
# Depends on: rust
name=pastel
version=0.8.1
version=0.9.0
release=1
source=(https://github.com/sharkdp/pastel/archive/refs/tags/v0.8.1.tar.gz)
source=(https://github.com/sharkdp/pastel/archive/v$version/$name-$version.tar.gz)
build() {
prt-get isinst sccache && export RUSTC_WRAPPER=/usr/bin/sccache
mkdir "$PKGMK_SOURCE_DIR/rust" || true
export CARGO_HOME="$PKGMK_SOURCE_DIR/rust"
cargo update --manifest-path $name-$version/Cargo.toml
cargo build --release --locked --manifest-path $name-$version/Cargo.toml
cargo build --release --manifest-path $name-$version/Cargo.toml
install -Dt $PKG/usr/bin $name-$version/target/release/$name
}

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF3xXPHWEyRiwvlaTX7hI+sKi8qaAg44q4AXUf5+NmgnY/6M3jyHWa9NBbW/1wkRKN+TFIpx2lHpt4GWpZc92n0gI=
SHA256 (Pkgfile) = dda79de59a507f9cf0031cffdc33383b62a2b66635fdbdc058a4117f3ba93eb6
RWSagIOpLGJF3zmGdoiqaO7N+j9B4p5Kba9KaBIRDhXS2CcTRhdvi/Wvhm6RR5p1vPui/XNz4InIFyqw0sdJNoQluKx0gwYAZQg=
SHA256 (Pkgfile) = 0bcb48879330cb24989e85cea305a2211b0a511087eb98f9688c164831f09dd4
SHA256 (.footprint) = 8a8cd0fb3ec66c6849fa052ef457bc9ce37889d9a5d9f035f2c755a1c2cab2db
SHA256 (procs-0.12.2.tar.gz) = 14be8440fe85dc46e544a3f7e89b887db455a61db981d5f75b91fd89b366d84f
SHA256 (procs-0.12.3.tar.gz) = 59720db4abdff1878492929b1c015dedff7cdc0ea2352b1360084e3bb4fbff33

View File

@ -4,24 +4,22 @@
# Depends on: rust
name=procs
version=0.12.2
version=0.12.3
release=1
source=(https://github.com/dalance/procs/archive/v$version/$name-$version.tar.gz)
build() {
prt-get isinst sccache && export RUSTC_WRAPPER=/usr/bin/sccache
mkdir "$PKGMK_SOURCE_DIR/rust" || true
export CARGO_HOME="$PKGMK_SOURCE_DIR/rust"
[[ ! -e $PKGMK_SOURCE_DIR/rust ]] && mkdir $PKGMK_SOURCE_DIR/rust
export CARGO_HOME=$PKGMK_SOURCE_DIR/rust
cargo update --manifest-path $name-$version/Cargo.toml
cargo build --release --locked --manifest-path $name-$version/Cargo.toml
install -Dt $PKG/usr/bin $name-$version/target/release/$name
cargo build --release --manifest-path $name-$version/Cargo.toml
prt-get isinst bash-completion && $PKG/usr/bin/procs --completion bash && \
install -Dm644 $SRC/procs.bash \
$PKG/usr/share/bash-completion/completions/procs || true
$PKG/usr/share/bash-completion/completions/procs
prt-get isinst zsh && $PKG/usr/bin/procs --completion zsh && \
install -Dm644 $SRC/_procs $PKG/usr/share/zsh/site-functions/_procs || \
true
install -Dm644 $SRC/_procs $PKG/usr/share/zsh/site-functions/_procs
install -Dt $PKG/usr/bin $name-$version/target/release/$name
}

View File

@ -1,20 +0,0 @@
# Description: Python project management
# URL: https://github.com/dephell/dephell
# Maintainer: Tim Biermann, tbier at posteo dot de
# Depends on: python3-aiohttp python3-appdirs python3-attrs python3-bowler python3-cerberus python3-colorama python3-dephell-archive python3-dephell-argparse python3-dephell-changelogs python3-dephell-discover python3-dephell-licenses python3-dephell-links python3-dephell-markers python3-dephell-pythons python3-dephell-setuptools python3-dephell-shells python3-dephell-specifier python3-dephell-venvs python3-dephell-versioning python3-html5lib python3-jinja2 python3-packaging python3-pip python3-pygments python3-requests python3-ruamel-yaml python3-tabulate python3-tomlkit python3-yaspin python3-m2r
name=python3-dephell
version=0.8.3
release=2
source=(https://files.pythonhosted.org/packages/source/d/dephell/dephell-$version.tar.gz
0001-Do-not-override-the-system-SSL-certificates-with-the.patch)
build() {
cd dephell-$version
patch -p1 -i $SRC/0001-Do-not-override-the-system-SSL-certificates-with-the.patch
sed -i 's/pip<=19.3.1,>=18.0/pip/' setup.py
/usr/bin/python3 setup.py build
/usr/bin/python3 setup.py install --prefix=/usr \
--root=$PKG \
--skip-build
}

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF32Qlp5D9HNBlARvWFN9pjhugs+iyF3Nb2+vdLCsXQNqSdS6DQul4MIw8EYz9vcgQwMvVaQyDRQ0+uxuQF0uHpgo=
SHA256 (Pkgfile) = aa1e8298c38a6384f9fe2d7c2d72d17c88138f2ba949d578e20ad39d9f930dee
RWSagIOpLGJF3xT6vKppOfqk1T7FC2mzYjQAHKrRE2eQ7ZyJK7FUhjELJkfxcHFR3m/Z8zzyj7MIC/540brsERm5DB1uX/uGhgY=
SHA256 (Pkgfile) = c7f8cc852cef02afff8f2b04e1cfef4c3861f21a49b85d402b1305d3346f9bac
SHA256 (.footprint) = 03bd154613180f60fbbbe44d6bcbf04e18f875b14e3110cbdf0acc8371b249f0
SHA256 (python3-poetry-1.1.13.tar.gz) = c2f4691a00d82e717a5861f62c6234757852ed1cd9b662e1d2d803157e7a7018

View File

@ -1,53 +0,0 @@
From cc5b938f7f9e3c536f4a60c35cdd2085b3933618 Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz@archlinux.org>
Date: Mon, 27 Apr 2020 21:51:57 -0400
Subject: [PATCH] Fix completely broken dependencies.
poetry habitually engages in:
- dependency versions which are known to be too pessimistic
- multiple editions of dependencies per python version
The former all work just fine in reported use and should not be pinned; we
package versions in Arch which are "too new". This is what unittests are
for, anyway.
The latter tries to enforce minimum versions of dependencies, but pins
it twice, once with more relaxed pinning for older versions of python.
If an old version works, it works irrespective of the python version,
and you don't need to use minimum requirements as your mallet to force
people to upgrade to the latest version anyway.
https://github.com/dephell/dephell/issues/330
---
pyproject.toml | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
index 8c1f137..81ebc89 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -51,20 +51,13 @@ futures = { version = "^3.3.0", python = "~2.7" }
glob2 = { version = "^0.6", python = "~2.7" }
# functools32 is needed for Python 2.7
functools32 = { version = "^3.2.3", python = "~2.7" }
-keyring = [
- { version = "^18.0.1", python = "~2.7" },
- { version = "^20.0.1", python = "~3.5" },
- { version = "^21.2.0", python = "^3.6" }
-]
+keyring = "*"
# Use subprocess32 for Python 2.7
subprocess32 = { version = "^3.5", python = "~2.7" }
importlib-metadata = {version = "^1.6.0", python = "<3.8"}
[tool.poetry.dev-dependencies]
-pytest = [
- {version = "^4.1", python = "<3.5"},
- {version = "^5.4.3", python = ">=3.5"}
-]
+pytest = { version = ">=4.1" }
pytest-cov = "^2.5"
pytest-mock = "^1.9"
pre-commit = { version = "^2.6", python = "^3.6.1" }
--
2.28.0

View File

@ -1,558 +0,0 @@
From c966775dd5cce42353a32b4df67a03699aa8d445 Mon Sep 17 00:00:00 2001
From: Arun Babu Neelicattu <arun.neelicattu@gmail.com>
Date: Tue, 20 Oct 2020 18:32:36 +0200
Subject: [PATCH] tests: cleanup cache and http usage
- ensure tests rely on temporary cache directory
- remove external http call requirement for lock --no-update
Relates-to: #1645
(cherry picked from commit bf61dd56399b5d0cfadf66fed72b4d63062a827f)
# Conflicts:
# tests/console/commands/test_config.py
# tests/console/commands/test_lock.py
# tests/utils/test_env.py
---
tests/config/test_config.py | 4 +-
tests/conftest.py | 21 ++-
tests/console/commands/test_config.py | 30 ++--
tests/console/commands/test_lock.py | 37 +++--
tests/fixtures/old_lock/poetry.lock | 150 +-----------------
tests/fixtures/old_lock/pyproject.toml | 2 +-
tests/installation/test_chef.py | 7 +-
tests/installation/test_executor.py | 6 +-
.../masonry/builders/test_editable_builder.py | 8 +-
tests/utils/test_env.py | 26 ++-
10 files changed, 92 insertions(+), 199 deletions(-)
diff --git a/tests/config/test_config.py b/tests/config/test_config.py
index 4bd0cd04..f3b13f23 100644
--- a/tests/config/test_config.py
+++ b/tests/config/test_config.py
@@ -10,8 +10,8 @@ def test_config_get_default_value(config, name, value):
assert config.get(name) is value
-def test_config_get_processes_depended_on_values(config):
- assert os.path.join("/foo", "virtualenvs") == config.get("virtualenvs.path")
+def test_config_get_processes_depended_on_values(config, config_cache_dir):
+ assert str(config_cache_dir / "virtualenvs") == config.get("virtualenvs.path")
@pytest.mark.parametrize(
diff --git a/tests/conftest.py b/tests/conftest.py
index e2b73936..51128f76 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -54,9 +54,21 @@ class Config(BaseConfig):
@pytest.fixture
-def config_source():
+def config_cache_dir(tmp_dir):
+ path = Path(tmp_dir) / ".cache" / "pypoetry"
+ path.mkdir(parents=True)
+ return path
+
+
+@pytest.fixture
+def config_virtualenvs_path(config_cache_dir):
+ return config_cache_dir / "virtualenvs"
+
+
+@pytest.fixture
+def config_source(config_cache_dir):
source = DictConfigSource()
- source.add_property("cache-dir", "/foo")
+ source.add_property("cache-dir", str(config_cache_dir))
return source
@@ -226,6 +238,7 @@ def project_factory(tmp_dir, config, repo, installed, default_python):
dependencies=None,
dev_dependencies=None,
pyproject_content=None,
+ poetry_lock_content=None,
install_deps=True,
):
project_dir = workspace / "poetry-fixture-{}".format(name)
@@ -249,6 +262,10 @@ def project_factory(tmp_dir, config, repo, installed, default_python):
dev_dependencies=dev_dependencies,
).create(project_dir, with_tests=False)
+ if poetry_lock_content:
+ lock_file = project_dir / "poetry.lock"
+ lock_file.write_text(data=poetry_lock_content, encoding="utf-8")
+
poetry = Factory().create_poetry(project_dir)
locker = TestLocker(
diff --git a/tests/console/commands/test_config.py b/tests/console/commands/test_config.py
index fa0bea4a..e85fb697 100644
--- a/tests/console/commands/test_config.py
+++ b/tests/console/commands/test_config.py
@@ -25,35 +25,39 @@ def test_show_config_with_local_config_file_empty(tester, mocker):
assert "" == tester.io.fetch_output()
-def test_list_displays_default_value_if_not_set(tester, config):
+def test_list_displays_default_value_if_not_set(tester, config, config_cache_dir):
tester.execute("--list")
- expected = """cache-dir = "/foo"
+ expected = """cache-dir = {cache}
experimental.new-installer = true
installer.parallel = true
virtualenvs.create = true
virtualenvs.in-project = null
-virtualenvs.path = {path} # /foo{sep}virtualenvs
+virtualenvs.path = {path} # {virtualenvs}
""".format(
- path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), sep=os.path.sep
+ cache=json.dumps(str(config_cache_dir)),
+ path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")),
+ virtualenvs=str(config_cache_dir / "virtualenvs"),
)
assert expected == tester.io.fetch_output()
-def test_list_displays_set_get_setting(tester, config):
+def test_list_displays_set_get_setting(tester, config, config_cache_dir):
tester.execute("virtualenvs.create false")
tester.execute("--list")
- expected = """cache-dir = "/foo"
+ expected = """cache-dir = {cache}
experimental.new-installer = true
installer.parallel = true
virtualenvs.create = false
virtualenvs.in-project = null
-virtualenvs.path = {path} # /foo{sep}virtualenvs
+virtualenvs.path = {path} # {virtualenvs}
""".format(
- path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), sep=os.path.sep
+ cache=json.dumps(str(config_cache_dir)),
+ path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")),
+ virtualenvs=str(config_cache_dir / "virtualenvs"),
)
assert 0 == config.set_config_source.call_count
@@ -81,19 +85,21 @@ def test_display_single_local_setting(command_tester_factory, fixture_dir):
assert expected == tester.io.fetch_output()
-def test_list_displays_set_get_local_setting(tester, config):
+def test_list_displays_set_get_local_setting(tester, config, config_cache_dir):
tester.execute("virtualenvs.create false --local")
tester.execute("--list")
- expected = """cache-dir = "/foo"
+ expected = """cache-dir = {cache}
experimental.new-installer = true
installer.parallel = true
virtualenvs.create = false
virtualenvs.in-project = null
-virtualenvs.path = {path} # /foo{sep}virtualenvs
+virtualenvs.path = {path} # {virtualenvs}
""".format(
- path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")), sep=os.path.sep
+ cache=json.dumps(str(config_cache_dir)),
+ path=json.dumps(os.path.join("{cache-dir}", "virtualenvs")),
+ virtualenvs=str(config_cache_dir / "virtualenvs"),
)
assert 1 == config.set_config_source.call_count
diff --git a/tests/console/commands/test_lock.py b/tests/console/commands/test_lock.py
index 823a8ba4..c05ba257 100644
--- a/tests/console/commands/test_lock.py
+++ b/tests/console/commands/test_lock.py
@@ -1,11 +1,8 @@
-import shutil
-import sys
-
import pytest
-from poetry.factory import Factory
from poetry.packages import Locker
from poetry.utils._compat import Path
+from tests.helpers import get_package
@pytest.fixture
@@ -19,18 +16,26 @@ def tester(command_tester_factory):
@pytest.fixture
-def poetry_with_old_lockfile(fixture_dir, source_dir):
- project_dir = source_dir / "project"
- shutil.copytree(str(fixture_dir("old_lock")), str(project_dir))
- poetry = Factory().create_poetry(cwd=project_dir)
- return poetry
-
-
-@pytest.mark.skipif(
- sys.platform == "win32", reason="does not work on windows under ci environments"
-)
-def test_lock_no_update(command_tester_factory, poetry_with_old_lockfile, http):
- http.disable()
+def poetry_with_old_lockfile(project_factory, fixture_dir, source_dir):
+ source = fixture_dir("old_lock")
+ pyproject_content = (source / "pyproject.toml").read_text(encoding="utf-8")
+ poetry_lock_content = (source / "poetry.lock").read_text(encoding="utf-8")
+ return project_factory(
+ name="foobar",
+ pyproject_content=pyproject_content,
+ poetry_lock_content=poetry_lock_content,
+ )
+
+
+def test_lock_no_update(command_tester_factory, poetry_with_old_lockfile, repo):
+ repo.add_package(get_package("sampleproject", "1.3.1"))
+ repo.add_package(get_package("sampleproject", "2.0.0"))
+
+ locker = Locker(
+ lock=poetry_with_old_lockfile.pyproject.file.path.parent / "poetry.lock",
+ local_config=poetry_with_old_lockfile.locker._local_config,
+ )
+ poetry_with_old_lockfile.set_locker(locker)
locked_repository = poetry_with_old_lockfile.locker.locked_repository(
with_dev_reqs=True
diff --git a/tests/fixtures/old_lock/poetry.lock b/tests/fixtures/old_lock/poetry.lock
index 57d58570..498df2ed 100644
--- a/tests/fixtures/old_lock/poetry.lock
+++ b/tests/fixtures/old_lock/poetry.lock
@@ -1,153 +1,19 @@
[[package]]
category = "main"
-description = "Python package for providing Mozilla's CA Bundle."
-name = "certifi"
-optional = false
-python-versions = "*"
-version = "2020.6.20"
-
-[[package]]
-category = "main"
-description = "Universal encoding detector for Python 2 and 3"
-name = "chardet"
-optional = false
-python-versions = "*"
-version = "3.0.4"
-
-[[package]]
-category = "main"
-description = "A Python library for the Docker Engine API."
-name = "docker"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-version = "4.3.1"
-
-[package.dependencies]
-pywin32 = "227"
-requests = ">=2.14.2,<2.18.0 || >2.18.0"
-six = ">=1.4.0"
-websocket-client = ">=0.32.0"
-
-[package.extras]
-ssh = ["paramiko (>=2.4.2)"]
-tls = ["pyOpenSSL (>=17.5.0)", "cryptography (>=1.3.4)", "idna (>=2.0.0)"]
-
-[[package]]
-category = "main"
-description = "Internationalized Domain Names in Applications (IDNA)"
-name = "idna"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-version = "2.10"
-
-[[package]]
-category = "main"
-description = "Python for Window Extensions"
-marker = "sys_platform == \"win32\""
-name = "pywin32"
-optional = false
-python-versions = "*"
-version = "227"
-
-[[package]]
-category = "main"
-description = "Python HTTP for Humans."
-name = "requests"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-version = "2.24.0"
-
-[package.dependencies]
-certifi = ">=2017.4.17"
-chardet = ">=3.0.2,<4"
-idna = ">=2.5,<3"
-urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26"
-
-[package.extras]
-security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
-socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"]
-
-[[package]]
-category = "main"
-description = "Python 2 and 3 compatibility utilities"
-name = "six"
-optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
-version = "1.15.0"
-
-[[package]]
-category = "main"
-description = "HTTP library with thread-safe connection pooling, file post, and more."
-name = "urllib3"
+description = "A sample Python project"
+name = "sampleproject"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
-version = "1.25.10"
-
-[package.extras]
-brotli = ["brotlipy (>=0.6.0)"]
-secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"]
-socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"]
-
-[[package]]
-category = "main"
-description = "WebSocket client for Python. hybi13 is supported."
-name = "websocket-client"
-optional = false
-python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-version = "0.57.0"
-
-[package.dependencies]
-six = "*"
+version = "1.3.1"
[metadata]
-content-hash = "bb4c2f3c089b802c1930b6acbeed04711d93e9cdfd9a003eb17518a6d9f350c6"
+content-hash = "c8c2c9d899e47bac3972e029ef0e71b75d5df98a28eebef25a75640a19aac177"
lock-version = "1.0"
python-versions = "^3.8"
[metadata.files]
-certifi = [
- {file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"},
- {file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"},
-]
-chardet = [
- {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"},
- {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"},
-]
-docker = [
- {file = "docker-4.3.1-py2.py3-none-any.whl", hash = "sha256:13966471e8bc23b36bfb3a6fb4ab75043a5ef1dac86516274777576bed3b9828"},
- {file = "docker-4.3.1.tar.gz", hash = "sha256:bad94b8dd001a8a4af19ce4becc17f41b09f228173ffe6a4e0355389eef142f2"},
-]
-idna = [
- {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
- {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
-]
-pywin32 = [
- {file = "pywin32-227-cp27-cp27m-win32.whl", hash = "sha256:371fcc39416d736401f0274dd64c2302728c9e034808e37381b5e1b22be4a6b0"},
- {file = "pywin32-227-cp27-cp27m-win_amd64.whl", hash = "sha256:4cdad3e84191194ea6d0dd1b1b9bdda574ff563177d2adf2b4efec2a244fa116"},
- {file = "pywin32-227-cp35-cp35m-win32.whl", hash = "sha256:f4c5be1a293bae0076d93c88f37ee8da68136744588bc5e2be2f299a34ceb7aa"},
- {file = "pywin32-227-cp35-cp35m-win_amd64.whl", hash = "sha256:a929a4af626e530383a579431b70e512e736e9588106715215bf685a3ea508d4"},
- {file = "pywin32-227-cp36-cp36m-win32.whl", hash = "sha256:300a2db938e98c3e7e2093e4491439e62287d0d493fe07cce110db070b54c0be"},
- {file = "pywin32-227-cp36-cp36m-win_amd64.whl", hash = "sha256:9b31e009564fb95db160f154e2aa195ed66bcc4c058ed72850d047141b36f3a2"},
- {file = "pywin32-227-cp37-cp37m-win32.whl", hash = "sha256:47a3c7551376a865dd8d095a98deba954a98f326c6fe3c72d8726ca6e6b15507"},
- {file = "pywin32-227-cp37-cp37m-win_amd64.whl", hash = "sha256:31f88a89139cb2adc40f8f0e65ee56a8c585f629974f9e07622ba80199057511"},
- {file = "pywin32-227-cp38-cp38-win32.whl", hash = "sha256:7f18199fbf29ca99dff10e1f09451582ae9e372a892ff03a28528a24d55875bc"},
- {file = "pywin32-227-cp38-cp38-win_amd64.whl", hash = "sha256:7c1ae32c489dc012930787f06244426f8356e129184a02c25aef163917ce158e"},
- {file = "pywin32-227-cp39-cp39-win32.whl", hash = "sha256:c054c52ba46e7eb6b7d7dfae4dbd987a1bb48ee86debe3f245a2884ece46e295"},
- {file = "pywin32-227-cp39-cp39-win_amd64.whl", hash = "sha256:f27cec5e7f588c3d1051651830ecc00294f90728d19c3bf6916e6dba93ea357c"},
-]
-requests = [
- {file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"},
- {file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"},
-]
-six = [
- {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
- {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
-]
-urllib3 = [
- {file = "urllib3-1.25.10-py2.py3-none-any.whl", hash = "sha256:e7983572181f5e1522d9c98453462384ee92a0be7fac5f1413a1e35c56cc0461"},
- {file = "urllib3-1.25.10.tar.gz", hash = "sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a"},
-]
-websocket-client = [
- {file = "websocket_client-0.57.0-py2.py3-none-any.whl", hash = "sha256:0fc45c961324d79c781bab301359d5a1b00b13ad1b10415a4780229ef71a5549"},
- {file = "websocket_client-0.57.0.tar.gz", hash = "sha256:d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010"},
+sampleproject = [
+ {file = "sampleproject-1.3.1-py2.py3-none-any.whl", hash = "sha256:26c9172e08244873b0e09c574a229bf2c251c67723a05e08fd3ec0c5ee423796"},
+ {file = "sampleproject-1.3.1-py3-none-any.whl", hash = "sha256:75bb5bb4e74a1b77dc0cff25ebbacb54fe1318aaf99a86a036cefc86ed885ced"},
+ {file = "sampleproject-1.3.1.tar.gz", hash = "sha256:3593ca2f1e057279d70d6144b14472fb28035b1da213dde60906b703d6f82c55"},
]
diff --git a/tests/fixtures/old_lock/pyproject.toml b/tests/fixtures/old_lock/pyproject.toml
index 56ea6350..377aa676 100644
--- a/tests/fixtures/old_lock/pyproject.toml
+++ b/tests/fixtures/old_lock/pyproject.toml
@@ -6,7 +6,7 @@ authors = ["Poetry Developer <developer@python-poetry.org>"]
[tool.poetry.dependencies]
python = "^3.8"
-docker = "^4.3.1"
+sampleproject = ">=1.3.1"
[tool.poetry.dev-dependencies]
diff --git a/tests/installation/test_chef.py b/tests/installation/test_chef.py
index 9fcbbea1..4e59b608 100644
--- a/tests/installation/test_chef.py
+++ b/tests/installation/test_chef.py
@@ -60,7 +60,7 @@ def test_get_cached_archives_for_link(config, mocker):
}
-def test_get_cache_directory_for_link(config):
+def test_get_cache_directory_for_link(config, config_cache_dir):
chef = Chef(
config,
MockEnv(
@@ -71,8 +71,11 @@ def test_get_cache_directory_for_link(config):
directory = chef.get_cache_directory_for_link(
Link("https://files.python-poetry.org/poetry-1.1.0.tar.gz")
)
+
expected = Path(
- "/foo/artifacts/ba/63/13/283a3b3b7f95f05e9e6f84182d276f7bb0951d5b0cc24422b33f7a4648"
+ "{}/artifacts/ba/63/13/283a3b3b7f95f05e9e6f84182d276f7bb0951d5b0cc24422b33f7a4648".format(
+ config_cache_dir.as_posix()
+ )
)
assert expected == directory
diff --git a/tests/installation/test_executor.py b/tests/installation/test_executor.py
index bb659321..3dfd818b 100644
--- a/tests/installation/test_executor.py
+++ b/tests/installation/test_executor.py
@@ -126,9 +126,11 @@ Package operations: 4 installs, 1 update, 1 removal
assert 5 == len(env.executed)
-def test_execute_shows_skipped_operations_if_verbose(config, pool, io):
+def test_execute_shows_skipped_operations_if_verbose(
+ config, pool, io, config_cache_dir
+):
config = Config()
- config.merge({"cache-dir": "/foo"})
+ config.merge({"cache-dir": config_cache_dir.as_posix()})
env = MockEnv()
executor = Executor(env, pool, config, io)
diff --git a/tests/masonry/builders/test_editable_builder.py b/tests/masonry/builders/test_editable_builder.py
index daeff0e7..3bf1e59c 100644
--- a/tests/masonry/builders/test_editable_builder.py
+++ b/tests/masonry/builders/test_editable_builder.py
@@ -176,9 +176,9 @@ if __name__ == '__main__':
def test_builder_falls_back_on_setup_and_pip_for_packages_with_build_scripts(
- extended_poetry,
+ extended_poetry, tmp_dir
):
- env = MockEnv(path=Path("/foo"))
+ env = MockEnv(path=Path(tmp_dir) / "foo")
builder = EditableBuilder(extended_poetry, env, NullIO())
builder.build()
@@ -219,8 +219,8 @@ def test_builder_installs_proper_files_when_packages_configured(
assert len(paths) == len(expected)
-def test_builder_should_execute_build_scripts(extended_without_setup_poetry):
- env = MockEnv(path=Path("/foo"))
+def test_builder_should_execute_build_scripts(extended_without_setup_poetry, tmp_dir):
+ env = MockEnv(path=Path(tmp_dir) / "foo")
builder = EditableBuilder(extended_without_setup_poetry, env, NullIO())
builder.build()
diff --git a/tests/utils/test_env.py b/tests/utils/test_env.py
index cd5e1b9f..ad1e17f2 100644
--- a/tests/utils/test_env.py
+++ b/tests/utils/test_env.py
@@ -634,7 +634,7 @@ def test_run_with_input_non_zero_return(tmp_dir, tmp_venv):
def test_create_venv_tries_to_find_a_compatible_python_executable_using_generic_ones_first(
- manager, poetry, config, mocker
+ manager, poetry, config, mocker, config_virtualenvs_path
):
if "VIRTUAL_ENV" in os.environ:
del os.environ["VIRTUAL_ENV"]
@@ -654,12 +654,12 @@ def test_create_venv_tries_to_find_a_compatible_python_executable_using_generic_
manager.create_venv(NullIO())
m.assert_called_with(
- Path("/foo/virtualenvs/{}-py3.7".format(venv_name)), executable="python3"
+ config_virtualenvs_path / "{}-py3.7".format(venv_name), executable="python3"
)
def test_create_venv_tries_to_find_a_compatible_python_executable_using_specific_ones(
- manager, poetry, config, mocker
+ manager, poetry, config, mocker, config_virtualenvs_path
):
if "VIRTUAL_ENV" in os.environ:
del os.environ["VIRTUAL_ENV"]
@@ -678,7 +678,7 @@ def test_create_venv_tries_to_find_a_compatible_python_executable_using_specific
manager.create_venv(NullIO())
m.assert_called_with(
- Path("/foo/virtualenvs/{}-py3.9".format(venv_name)), executable="python3.9"
+ config_virtualenvs_path / "{}-py3.9".format(venv_name), executable="python3.9"
)
@@ -737,7 +737,7 @@ def test_create_venv_does_not_try_to_find_compatible_versions_with_executable(
def test_create_venv_uses_patch_version_to_detect_compatibility(
- manager, poetry, config, mocker
+ manager, poetry, config, mocker, config_virtualenvs_path
):
if "VIRTUAL_ENV" in os.environ:
del os.environ["VIRTUAL_ENV"]
@@ -761,17 +761,14 @@ def test_create_venv_uses_patch_version_to_detect_compatibility(
assert not check_output.called
m.assert_called_with(
- Path(
- "/foo/virtualenvs/{}-py{}.{}".format(
- venv_name, version.major, version.minor
- )
- ),
+ config_virtualenvs_path
+ / "{}-py{}.{}".format(venv_name, version.major, version.minor),
executable=None,
)
def test_create_venv_uses_patch_version_to_detect_compatibility_with_executable(
- manager, poetry, config, mocker
+ manager, poetry, config, mocker, config_virtualenvs_path
):
if "VIRTUAL_ENV" in os.environ:
del os.environ["VIRTUAL_ENV"]
@@ -798,11 +795,8 @@ def test_create_venv_uses_patch_version_to_detect_compatibility_with_executable(
assert check_output.called
m.assert_called_with(
- Path(
- "/foo/virtualenvs/{}-py{}.{}".format(
- venv_name, version.major, version.minor - 1
- )
- ),
+ config_virtualenvs_path
+ / "{}-py{}.{}".format(venv_name, version.major, version.minor - 1),
executable="python{}.{}".format(version.major, version.minor - 1),
)
--
2.30.0

View File

@ -1,7 +1,7 @@
# Description: python3 packaging and dependency management made easy
# URL: https://poetry.eustace.io/
# Maintainer: Tim Biermann, tbier at posteo dot de
# Depends on: python3-cachecontrol python3-cachy python3-cleo python3-crashtest python3-keyring python3-lockfile python3-pkginfo python3-poetry-core python3-requests-toolbelt python3-virtualenv
# Depends on: python3-cachecontrol python3-cachy python3-cleo python3-keyring python3-lockfile python3-pkginfo python3-poetry-core python3-requests-toolbelt python3-virtualenv
name=python3-poetry
version=1.1.13

View File

@ -4,10 +4,10 @@ drwxr-xr-x root/root usr/lib/python3.10/
drwxr-xr-x root/root usr/lib/python3.10/site-packages/
drwxr-xr-x root/root usr/lib/python3.10/site-packages/__pycache__/
-rw-r--r-- root/root usr/lib/python3.10/site-packages/__pycache__/webcolors.cpython-310.pyc
drwxr-xr-x root/root usr/lib/python3.10/site-packages/webcolors-1.11.1-py3.10.egg-info/
-rw-r--r-- root/root usr/lib/python3.10/site-packages/webcolors-1.11.1-py3.10.egg-info/PKG-INFO
-rw-r--r-- root/root usr/lib/python3.10/site-packages/webcolors-1.11.1-py3.10.egg-info/SOURCES.txt
-rw-r--r-- root/root usr/lib/python3.10/site-packages/webcolors-1.11.1-py3.10.egg-info/dependency_links.txt
-rw-r--r-- root/root usr/lib/python3.10/site-packages/webcolors-1.11.1-py3.10.egg-info/not-zip-safe
-rw-r--r-- root/root usr/lib/python3.10/site-packages/webcolors-1.11.1-py3.10.egg-info/top_level.txt
drwxr-xr-x root/root usr/lib/python3.10/site-packages/webcolors-1.12-py3.10.egg-info/
-rw-r--r-- root/root usr/lib/python3.10/site-packages/webcolors-1.12-py3.10.egg-info/PKG-INFO
-rw-r--r-- root/root usr/lib/python3.10/site-packages/webcolors-1.12-py3.10.egg-info/SOURCES.txt
-rw-r--r-- root/root usr/lib/python3.10/site-packages/webcolors-1.12-py3.10.egg-info/dependency_links.txt
-rw-r--r-- root/root usr/lib/python3.10/site-packages/webcolors-1.12-py3.10.egg-info/not-zip-safe
-rw-r--r-- root/root usr/lib/python3.10/site-packages/webcolors-1.12-py3.10.egg-info/top_level.txt
-rw-r--r-- root/root usr/lib/python3.10/site-packages/webcolors.py

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF3xAXmB/t9Eg4sxkYXh2f+seAAmXOEC5MmalTj5sZmgXyznkjYKsQOfi/5CNJolzMqwcUfL+M2sNhsv1ZzTOl8wI=
SHA256 (Pkgfile) = d94af1f9a55e0bfdc0ba56061f54b978eca4d1622fec3224e6e2c29724b92494
SHA256 (.footprint) = ee8967a9d84a3c5cec0a7c0e64f73d18c0bf4ed04b86a3d90a9d4f113bdb8b76
SHA256 (webcolors-1.11.1.tar.gz) = 76f360636957d1c976db7466bc71dcb713bb95ac8911944dffc55c01cb516de6
RWSagIOpLGJF30NcIP9kXFVZNC7xx0eLnqjABGU0mGWUi+UOYUqrWKeUCPJ3IiA89MpY7LEp150Y0XaF/+LNRMyvD6QXuEi60AQ=
SHA256 (Pkgfile) = 390193870672e7ed4dfce07b036836779e4a7539645d9085b76de558f961f6ba
SHA256 (.footprint) = 26eec6242f5ea3cfb38450ff7893b3aa0f067835066d062c0010b860c581f36c
SHA256 (webcolors-1.12.tar.gz) = 16d043d3a08fd6a1b1b7e3e9e62640d09790dce80d2bdd4792a175b35fe794a9

View File

@ -4,7 +4,7 @@
# Depends on: python3-setuptools
name=python3-webcolors
version=1.11.1
version=1.12
release=1
source=(https://pypi.io/packages/source/w/webcolors/webcolors-$version.tar.gz)

View File

@ -4,14 +4,14 @@ drwxr-xr-x root/root usr/bin/
drwxr-xr-x root/root usr/lib/
drwxr-xr-x root/root usr/lib/python3.9/
drwxr-xr-x root/root usr/lib/python3.9/site-packages/
drwxr-xr-x root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.0-py3.9.egg-info/
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.0-py3.9.egg-info/PKG-INFO
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.0-py3.9.egg-info/SOURCES.txt
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.0-py3.9.egg-info/dependency_links.txt
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.0-py3.9.egg-info/entry_points.txt
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.0-py3.9.egg-info/requires.txt
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.0-py3.9.egg-info/top_level.txt
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.0-py3.9.egg-info/zip-safe
drwxr-xr-x root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.1-py3.9.egg-info/
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.1-py3.9.egg-info/PKG-INFO
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.1-py3.9.egg-info/SOURCES.txt
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.1-py3.9.egg-info/dependency_links.txt
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.1-py3.9.egg-info/entry_points.txt
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.1-py3.9.egg-info/requires.txt
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.1-py3.9.egg-info/top_level.txt
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser-2.5.1-py3.9.egg-info/zip-safe
drwxr-xr-x root/root usr/lib/python3.9/site-packages/qutebrowser/
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser/__init__.py
-rw-r--r-- root/root usr/lib/python3.9/site-packages/qutebrowser/__main__.py

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF30wH6RkQl2CtiYcpgDZC0ORm7y0sif1EiM/WAyz/pzaUa9dQL1wYyIElzjUoFGtHfloEocSE7aUK/6rQuneHSwI=
SHA256 (Pkgfile) = ff93577c2f9c17e16bd9dc4360a4d3b39bb839c12f1a3c6f6477c2b49522efce
SHA256 (.footprint) = c903cca3a323ee7138d6cde772e2f72e538e6620a2eb4602ab0323b0a1d8218c
SHA256 (qutebrowser-2.5.0.tar.gz) = ed17266a339a7baa9a07fb2fd6b611e316d8daf1fff1eb924d7f22df6a73e896
RWSagIOpLGJF3x1GKjwAjB4RsDrgV9lcdb16bthUC/E7ooQACRSE8WES+hgPVi7AiTHWKl1qEJQzeO6XmtpwxBMutyonZt/z3AQ=
SHA256 (Pkgfile) = e702c8e2c449c59374221a1c1c69a4e51b387a5f3357d8b602e7b171081d762d
SHA256 (.footprint) = a657e155dda0bb32d8a52db83578bcb68871b88508969fdd25a08e4dbcbde288
SHA256 (qutebrowser-2.5.1.tar.gz) = 892915f49c6492aeb990583bc266555fa8136ccba4b890d16252b0669fbf742a

View File

@ -4,7 +4,7 @@
# Depends on: asciidoc python3-attrs python3-jinja2 python3-pygments python3-pypeg2 python3-pyqtwebengine python3-yaml
name=qutebrowser
version=2.5.0
version=2.5.1
release=1
source=(https://github.com/qutebrowser/qutebrowser/archive/v$version/$name-$version.tar.gz)

View File

@ -1,186 +0,0 @@
From 2eee9aa445e3f9dc6a7ca115489f87b10f60b9ba Mon Sep 17 00:00:00 2001
From: Kenny Levinsen <kl@kl.wtf>
Date: Mon, 20 Sep 2021 23:43:10 +0200
Subject: [PATCH] seatd: Implement ping request to wake up later
When device open or close messages are sent to seatd, libseat must read
messages from the socket until it sees the associated response message.
This means that it may drain enable/disable seat events from the socket,
queueing them internally for deferred processing.
As the socket is drained, the caller will not wake from a poll and have
no reason to dispatch libseat. To ensure that these messages would not
be left in the queue, 6fa82930d0c5660eea3102989c765dc864514e36 made it
so that open/close calls would execute all queued events just before
returning.
Unfortunately, this had the side-effect of having events fire from the
stack of libseat_open_device or libseat_close_device, which we now see
cause problems in compositors. Specifically, an issue has been observed
where libinput end up calling libseat_close_device, which in turn
dispatch a disable seat event that calls libinput_suspend. libinput does
not like this.
Instead, remove the execution from libseat_open_device and
libseat_close_device, and instead make a "ping" request to seatd if
events have been queued. The response to this will wake us up and ensure
that dispatch is called.
---
include/protocol.h | 2 ++
libseat/backend/seatd.c | 45 +++++++++++++++++++++++++++++++++++++----
seatd/client.c | 22 ++++++++++++++++++++
3 files changed, 65 insertions(+), 4 deletions(-)
diff --git a/include/protocol.h b/include/protocol.h
index b3361ba..cb994fc 100644
--- a/include/protocol.h
+++ b/include/protocol.h
@@ -15,6 +15,7 @@
#define CLIENT_CLOSE_DEVICE CLIENT_EVENT(4)
#define CLIENT_DISABLE_SEAT CLIENT_EVENT(5)
#define CLIENT_SWITCH_SESSION CLIENT_EVENT(6)
+#define CLIENT_PING CLIENT_EVENT(7)
#define SERVER_SEAT_OPENED SERVER_EVENT(1)
#define SERVER_SEAT_CLOSED SERVER_EVENT(2)
@@ -22,6 +23,7 @@
#define SERVER_DEVICE_CLOSED SERVER_EVENT(4)
#define SERVER_DISABLE_SEAT SERVER_EVENT(5)
#define SERVER_ENABLE_SEAT SERVER_EVENT(6)
+#define SERVER_PONG SERVER_EVENT(7)
#define SERVER_ERROR SERVER_EVENT(0x7FFF)
#include <stdint.h>
diff --git a/libseat/backend/seatd.c b/libseat/backend/seatd.c
index 85df9f5..26308d1 100644
--- a/libseat/backend/seatd.c
+++ b/libseat/backend/seatd.c
@@ -36,6 +36,7 @@ struct backend_seatd {
const struct libseat_seat_listener *seat_listener;
void *seat_listener_data;
struct linked_list pending_events;
+ bool awaiting_pong;
bool error;
char seat_name[MAX_SEAT_LEN];
@@ -243,6 +244,12 @@ static int dispatch_pending(struct backend_seatd *backend, int *opcode) {
while (connection_get(&backend->connection, &header, sizeof header) != -1) {
packets++;
switch (header.opcode) {
+ case SERVER_PONG:
+ // We care about whether or not the answer has been
+ // read from the connection, so handle it here instead
+ // of pushing it to the pending event list.
+ backend->awaiting_pong = false;
+ break;
case SERVER_DISABLE_SEAT:
case SERVER_ENABLE_SEAT:
if (queue_event(backend, header.opcode) == -1) {
@@ -450,6 +457,36 @@ static const char *seat_name(struct libseat *base) {
return backend->seat_name;
}
+static int send_ping(struct backend_seatd *backend) {
+ struct proto_header header = {
+ .opcode = CLIENT_PING,
+ .size = 0,
+ };
+ if (conn_put(backend, &header, sizeof header) == -1 || conn_flush(backend) == -1) {
+ return -1;
+ }
+ return 0;
+}
+
+static void check_pending_events(struct backend_seatd *backend) {
+ if (linked_list_empty(&backend->pending_events)) {
+ return;
+ }
+ if (backend->awaiting_pong) {
+ return;
+ }
+
+ // We have events pending execution, so a dispatch is required.
+ // However, we likely already drained our socket, so there will not be
+ // anything to read. Instead, send a ping request to seatd, so that the
+ // user will be woken up by its response.
+ if (send_ping(backend) == -1) {
+ log_errorf("Could not send ping request: %s", strerror(errno));
+ return;
+ }
+ backend->awaiting_pong = true;
+}
+
static int open_device(struct libseat *base, const char *path, int *fd) {
struct backend_seatd *backend = backend_seatd_from_libseat_backend(base);
if (backend->error) {
@@ -481,11 +518,11 @@ static int open_device(struct libseat *base, const char *path, int *fd) {
goto error;
}
- execute_events(backend);
+ check_pending_events(backend);
return rmsg.device_id;
error:
- execute_events(backend);
+ check_pending_events(backend);
return -1;
}
@@ -516,11 +553,11 @@ static int close_device(struct libseat *base, int device_id) {
goto error;
}
- execute_events(backend);
+ check_pending_events(backend);
return 0;
error:
- execute_events(backend);
+ check_pending_events(backend);
return -1;
}
diff --git a/seatd/client.c b/seatd/client.c
index 1bfe94a..220c5d3 100644
--- a/seatd/client.c
+++ b/seatd/client.c
@@ -309,6 +309,20 @@ error:
return client_send_error(client, errno);
}
+static int handle_ping(struct client *client) {
+ struct proto_header header = {
+ .opcode = SERVER_PONG,
+ .size = 0,
+ };
+
+ if (connection_put(&client->connection, &header, sizeof header) == -1) {
+ log_errorf("Could not write response: %s", strerror(errno));
+ return -1;
+ }
+
+ return 0;
+}
+
static int client_handle_opcode(struct client *client, uint16_t opcode, size_t size) {
int res = 0;
switch (opcode) {
@@ -372,6 +386,14 @@ static int client_handle_opcode(struct client *client, uint16_t opcode, size_t s
res = handle_disable_seat(client);
break;
}
+ case CLIENT_PING: {
+ if (size != 0) {
+ log_error("Protocol error: invalid ping message");
+ return -1;
+ }
+ res = handle_ping(client);
+ break;
+ }
default:
log_errorf("Protocol error: unknown opcode: %d", opcode);
res = -1;
--
2.32.0

View File

@ -6,9 +6,9 @@ drwxr-xr-x root/root usr/include/serd-0/
drwxr-xr-x root/root usr/include/serd-0/serd/
-rw-r--r-- root/root usr/include/serd-0/serd/serd.h
drwxr-xr-x root/root usr/lib/
lrwxrwxrwx root/root usr/lib/libserd-0.so -> libserd-0.so.0.30.10
lrwxrwxrwx root/root usr/lib/libserd-0.so.0 -> libserd-0.so.0.30.10
-rwxr-xr-x root/root usr/lib/libserd-0.so.0.30.10
lrwxrwxrwx root/root usr/lib/libserd-0.so -> libserd-0.so.0.30.12
lrwxrwxrwx root/root usr/lib/libserd-0.so.0 -> libserd-0.so.0.30.12
-rwxr-xr-x root/root usr/lib/libserd-0.so.0.30.12
drwxr-xr-x root/root usr/lib/pkgconfig/
-rw-r--r-- root/root usr/lib/pkgconfig/serd-0.pc
drwxr-xr-x root/root usr/share/

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF39mxTcuErvONK1kyBpjLExdG9ZgChmGiOuom0kVKJsPkHzkG906nTvmojlMcHk6cs1GZYhDE31FYTSD0dGmOiw4=
SHA256 (Pkgfile) = 345370517f8488d4282ed930e746c3d11f2438de81aaf2a09b0fde877e219257
SHA256 (.footprint) = 532a0e653dcd4310306f7ea05934efac413646c7b5da18c2877dc4f17cbe4aec
SHA256 (serd-0.30.10.tar.bz2) = affa80deec78921f86335e6fc3f18b80aefecf424f6a5755e9f2fa0eb0710edf
RWSagIOpLGJF3yjc0WAtbWwCkkmItZvc/3OKB+feUnKPFofcgwQ6o8ggRpMyWJxJ0zCo+d/vzcInMSBNV8wadYro4uWjYNdvywk=
SHA256 (Pkgfile) = 33cc008ba569a00261ea90d3aeafcf278c8eab26bfafa38b5233dbf48c60b5ea
SHA256 (.footprint) = bf3a3944f6d3d8dd9354bb64847a280715b5308b333a2f3b8521b5e2fe207709
SHA256 (serd-0.30.12.tar.bz2) = 9f9dab4125d88256c1f694b6638cbdbf84c15ce31003cd83cb32fb2192d3e866

View File

@ -1,11 +1,10 @@
# Description: A lightweight C library for RDF syntax which supports reading and writing Turtle and NTriples.
# URL: http://drobilla.net/software/serd
# Maintainer: Tim Biermann, tbier at posteo dot de
# Packager: Danny Rawlins, crux at romster dot me
# Depends on: python3
name=serd
version=0.30.10
version=0.30.12
release=1
source=(http://download.drobilla.net/$name-$version.tar.bz2)

View File

@ -4,8 +4,8 @@ drwxr-xr-x root/root usr/include/sratom-0/
drwxr-xr-x root/root usr/include/sratom-0/sratom/
-rw-r--r-- root/root usr/include/sratom-0/sratom/sratom.h
drwxr-xr-x root/root usr/lib/
lrwxrwxrwx root/root usr/lib/libsratom-0.so -> libsratom-0.so.0.6.8
lrwxrwxrwx root/root usr/lib/libsratom-0.so.0 -> libsratom-0.so.0.6.8
-rwxr-xr-x root/root usr/lib/libsratom-0.so.0.6.8
lrwxrwxrwx root/root usr/lib/libsratom-0.so -> libsratom-0.so.0.6.10
lrwxrwxrwx root/root usr/lib/libsratom-0.so.0 -> libsratom-0.so.0.6.10
-rwxr-xr-x root/root usr/lib/libsratom-0.so.0.6.10
drwxr-xr-x root/root usr/lib/pkgconfig/
-rw-r--r-- root/root usr/lib/pkgconfig/sratom-0.pc

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF36+XKNEXD4MtgosXLngsNsz+Bm3/whqtU1I21m8lSp3P4k38lW5zVttJg9Ta5+bOGVhGCTxdlI6oFZlYQIiwZwY=
SHA256 (Pkgfile) = 2a95a06985fe4e5784af5962e6530d667fc3bc79d79fd88ca7f30c09484d617e
SHA256 (.footprint) = 2dfd33bc52e8cb8c284494f8d8af628454e6a7fccbad3e35458cb08e2740949d
SHA256 (sratom-0.6.8.tar.bz2) = 3acb32b1adc5a2b7facdade2e0818bcd6c71f23f84a1ebc17815bb7a0d2d02df
RWSagIOpLGJF33Bbbg8muWj4Hkvb5PJ8J65a7qxOXecBNAxPcEAz+HLCIrhfxXJZXjTAzh9en6XxT39LYtWUeEeN4K4GrMdfWg0=
SHA256 (Pkgfile) = 38a8146d0cb2985c5dc5ae050adba63868781a73c5924ab5fbf3198a93dc5747
SHA256 (.footprint) = 0fff1fd4b3d75c6e8a2eaf7722813073a82e494f778b1d2622591ad97a2b7a31
SHA256 (sratom-0.6.10.tar.bz2) = e5951c0d7f0618672628295536a271d61c55ef0dab33ba9fc5767ed4db0a634d

View File

@ -5,7 +5,7 @@
# Depends on: sord lv2
name=sratom
version=0.6.8
version=0.6.10
release=1
source=(http://download.drobilla.net/$name-$version.tar.bz2)

View File

@ -1,5 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF3/qcltw5fQWPZat2z1hUez7X4YxEMVjHinhAx1P7ry3VtvGcxuB5t7cm1E0I0vu2nIMG26fYINQ49G++zY9+lgc=
SHA256 (Pkgfile) = cc0536304263db3c9792b8ca4b6803ed7d02a02e1112f3cf8dcbff42c6872524
RWSagIOpLGJF32rECaITj3g5mreS34zdS0yzYjWFtGDyuH6JQ5T/fj6UdRfRJ8cILrrhKI/IUWJExT7Yt0AdT1Cf6MzzQXvmyQk=
SHA256 (Pkgfile) = d04bb33bb3403d2b03a9e53229aed5d2cd205646e2b578fb2bfbe633c2402494
SHA256 (.footprint) = e269bf06cd399613cb5e2df75070c5210b53277a4c1478d41543e6c58a533387
SHA256 (texlab-3.3.2.tar.gz) = 380395a37ee2ece590c0db04ac4898f5f430ee37d0ab0fa0801805167fff066a
SHA256 (texlab-4.0.0.tar.gz) = 18149b8b4f79c18144eed3ae6d501e89dd5790b92ec5bf523201a8f713b353b7

View File

@ -4,16 +4,15 @@
# Depends on: rust
name=texlab
version=3.3.2
version=4.0.0
release=1
source=(https://github.com/latex-lsp/texlab/archive/v$version/$name-$version.tar.gz)
build() {
prt-get isinst sccache && export RUSTC_WRAPPER=/usr/bin/sccache
mkdir "$PKGMK_SOURCE_DIR/rust" || true
export CARGO_HOME="$PKGMK_SOURCE_DIR/rust"
[[ ! -e $PKGMK_SOURCE_DIR/rust ]] && mkdir $PKGMK_SOURCE_DIR/rust
cargo fetch --manifest-path $name-$version/Cargo.toml
cargo build --release --locked --manifest-path $name-$version/Cargo.toml
install -Dt $PKG/usr/bin $name-$version/target/release/texlab
cargo build --release --manifest-path $name-$version/Cargo.toml
install -Dt $PKG/usr/bin $name-$version/target/release/$name
}

View File

@ -1,6 +1,6 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF3wspS4Vb66s7WgQ4ykMdIuCz2LdfNPOjOxJZ6gtPccW2Kt2zaUPnFwB7FFTWIEVzaXazM9VkJQ+S4fxs3JSecw4=
SHA256 (Pkgfile) = b9d32850e27a4137fe5aba531d000d1f197912514b08a69af2e45b07f355d4ff
RWSagIOpLGJF32UXDon7M1B7kHOp/0Z8RfsFYhmTu/WUl5JKxIeE77ql461IF8VTPCBQioZCA17YHX1FdeH4XZZHZL5RUwtH4AE=
SHA256 (Pkgfile) = 5532ee4ced3a352d754ab0e5a8bffb6a6f610fd79951facad9a0492751346ba8
SHA256 (.footprint) = 923d578f9d9e0dbd81a35f85c1d0228c2c29722327104100bdd991a056632803
SHA256 (thunderbird-91.8.0.source.tar.xz) = 4a93d1773e17aa110341428165581f0176c347d55dd7f6cbed789ca8369da6fa
SHA256 (thunderbird-91.9.1.source.tar.xz) = d598f774c26b60d63bdd35535f88081b7f5897bfce6eb91ba8f9792141c492e6
SHA256 (thunderbird.desktop) = c6bc6a66f16951c4f7560d019dad48968169aef6587cef4e98380a300078299a

View File

@ -5,7 +5,7 @@
# Optional: sccache
name=thunderbird
version=91.8.0
version=91.9.1
release=1
source=(https://archive.mozilla.org/pub/thunderbird/releases/$version/source/$name-$version.source.tar.xz
$name.desktop)

View File

@ -1,7 +1,7 @@
drwxr-xr-x root/root usr/
drwxr-xr-x root/root usr/lib/
drwxr-xr-x root/root usr/lib/clang/
drwxr-xr-x root/root usr/lib/clang/14.0.3/
drwxr-xr-x root/root usr/lib/clang/14.0.3/lib/
drwxr-xr-x root/root usr/lib/clang/14.0.3/lib/wasi/
-rw-r--r-- root/root usr/lib/clang/14.0.3/lib/wasi/libclang_rt.builtins-wasm32.a
drwxr-xr-x root/root usr/lib/clang/14.0.4/
drwxr-xr-x root/root usr/lib/clang/14.0.4/lib/
drwxr-xr-x root/root usr/lib/clang/14.0.4/lib/wasi/
-rw-r--r-- root/root usr/lib/clang/14.0.4/lib/wasi/libclang_rt.builtins-wasm32.a

View File

@ -1,8 +1,8 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF3/IDo6sIhUBZ7OuLorwS3YtxSK8Rzpx4yby+lSiKGc6xoEVc/r6ETSlUAufQT6BxzuvmBukSPu0QJOvk+lXVvQA=
SHA256 (Pkgfile) = bd6594471f25984a8f866964c4bed824fc369053e14c670bac637d592cda5f0b
SHA256 (.footprint) = d9fa8ab7ff4e9c1d0122409680316ed3e1985a2acee9e2e26af7e79b65cd1a36
SHA256 (compiler-rt-14.0.3.src.tar.xz) = 26568ab40e440d54a0fe05f6055dcbe510eb723977afa39d3b56fc2a81f8d05f
SHA256 (llvm-14.0.3.src.tar.xz) = 1e09e8c26e1b67bc94a128b62e9b9c24b70c697a2436a479c9e5eedc4ae29654
RWSagIOpLGJF3/kq0DJEarCOeIevdGcj32GTWWc2Q2YIV9ajeukqZ15uEGt0Qrjkh6a9dw005killdFHpEpplmrGW4yNQ8FSmQI=
SHA256 (Pkgfile) = f6ab818a0aa850db3abbf2c65da57cd9e30aef2c8f0b3c7cb2efa030fde26731
SHA256 (.footprint) = aec52497d627f2fb256c8e9ccb1692845759fe1b90a33b6b183ce611a0cef893
SHA256 (compiler-rt-14.0.4.src.tar.xz) = 02cbb6ca3ae3ebfb77245de0866faff886b16c48a806cd2ae32ac6ccbba8285b
SHA256 (llvm-14.0.4.src.tar.xz) = eb8e90dfadae4073a7f8fc6384bacc0dda072400d82b9d25dabb5280a737ba22
SHA256 (WASI.cmake) = e9e87d4781d6a999ee73a1e2c19754de01415124d0cd9746898f5ee7726dc1e1
SHA256 (wasi-toolchain.cmake) = 52957ee81622bc22adcf0968cbb124a0595fa38e70549a355d42c6e487818edd

View File

@ -4,7 +4,7 @@
# Depends on: cmake ninja wasi-libc
name=wasi-compiler-rt
version=14.0.3
version=14.0.4
release=1
source=(https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/compiler-rt-$version.src.tar.xz
https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/llvm-$version.src.tar.xz