Merge remote-tracking branch 'origin/3.6' into 3.7
This commit is contained in:
commit
8e774a8bcd
@ -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. ; \
|
@ -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
|
@ -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
|
29
gn/Pkgfile
29
gn/Pkgfile
@ -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
|
||||
}
|
39
gn/foo.patch
39
gn/foo.patch
@ -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,
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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
|
||||
}
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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
@ -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)
|
@ -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);
|
@ -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/
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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'`
|
||||
|
@ -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=
|
@ -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"
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
2711
mako/92.patch
2711
mako/92.patch
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
12
mono/Pkgfile
12
mono/Pkgfile
@ -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" \)\
|
||||
|
@ -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);
|
||||
|
@ -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/
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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"
|
@ -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
|
||||
|
15
os-prober/add-CRUX-detection.patch
Normal file
15
os-prober/add-CRUX-detection.patch
Normal 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
|
511
os-prober/os-prober-1.79-btrfs-subvolume-detection.patch
Normal file
511
os-prober/os-prober-1.79-btrfs-subvolume-detection.patch
Normal 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
|
24
os-prober/os-prober-1.79-efi-chroot-blkid-fallback.patch
Normal file
24
os-prober/os-prober-1.79-efi-chroot-blkid-fallback.patch
Normal 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"
|
||||
|
21
os-prober/os-prober-1.79-fix-busy-umount-message.patch
Normal file
21
os-prober/os-prober-1.79-fix-busy-umount-message.patch
Normal 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
|
||||
+}
|
||||
+
|
17
os-prober/os-prober-1.79-mounted-boot-partition-fix.patch
Normal file
17
os-prober/os-prober-1.79-mounted-boot-partition-fix.patch
Normal 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
|
34
os-prober/os-prober-1.79-use-fstab-name.patch
Normal file
34
os-prober/os-prober-1.79-use-fstab-name.patch
Normal 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"
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
186
seatd/vt.patch
186
seatd/vt.patch
@ -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
|
||||
|
@ -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/
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user