* add various missing patches

This commit is contained in:
Alexander Baldeck 2022-04-25 09:21:37 +02:00
parent 3470cfe83c
commit bbd4c91bad
70 changed files with 2712 additions and 2084 deletions

29
amf-headers/PKGBUILD Normal file
View File

@ -0,0 +1,29 @@
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
# Contributor: Daniel Bermond <dbermond@archlinux.org>
pkgname=amf-headers
pkgver=1.4.23
pkgrel=2
pkgdesc='Header files for AMD Advanced Media Framework'
arch=(any)
url=https://github.com/GPUOpen-LibrariesAndSDKs/AMF/
license=(MIT)
makedepends=(git)
_tag=55e4d844b77885cc3f7832bdb3cf41a1f16950ef
source=(git+https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git#tag=${_tag})
b2sums=(SKIP)
pkgver() {
cd AMF
git describe --tags | sed 's/^v//'
}
package() {
install -dm 755 "${pkgdir}"/usr/include
cp -dr --no-preserve=ownership AMF/amf/public/include "${pkgdir}"/usr/include/AMF
install -Dm 644 AMF/LICENSE.txt -t "${pkgdir}"/usr/share/licenses/amf-headers/
}
# vim: ts=2 sw=2 et:

43
avisynthplus/PKGBUILD Normal file
View File

@ -0,0 +1,43 @@
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Daniel Bermond <dbermond@archlinux.org>
pkgname=avisynthplus
pkgver=3.7.2
pkgrel=1
pkgdesc='An improved version of the AviSynth frameserver'
arch=(x86_64 powerpc64le powerpc riscv64)
url='https://avs-plus.net/'
license=('GPL')
depends=('gcc-libs' 'hicolor-icon-theme')
optdepends=('devil: for ImageSeq plugin')
makedepends=('cmake' 'devil')
source=("https://github.com/AviSynth/AviSynthPlus/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz"
'avisynthplus.xml')
sha256sums=('6159fd976dffa62d5db5277cbb0b3b7f7a4ee92fc8667edd32da9840a669ccc1'
'c4b270a3df7fbe1c153400215169c4ae4cae3b7a8710c843393e3a6ed0fd8a3e')
build() {
case "${CARCH}" in
powerpc|riscv64) _cmake_options+=(-DCMAKE_CXX_FLAGS="-latomic") ;;
esac
cmake -B build -S "AviSynthPlus-${pkgver}" \
-DCMAKE_BUILD_TYPE:STRING='None' \
-DCMAKE_INSTALL_PREFIX:PATH='/usr' \
-Wno-dev ${_cmake_options[@]}
make -C build
}
package() {
make -C build DESTDIR="$pkgdir" install
install -D -m644 avisynthplus.xml -t "${pkgdir}/usr/share/mime/packages"
local _icon
local _res
while read -r -d '' _icon
do
_res="$(sed 's/[[:alpha:]]*\([0-9]\+\)\.png/\1/' <<< "${_icon##*/}")"
[ -n "$_res" ] && install -D -m644 "$_icon" \
"${pkgdir}/usr/share/icons/hicolor/${_res}x${_res}/mimetypes/avisynthplus-script.png"
done < <(find "AviSynthPlus-${pkgver}/distrib/Icons/Rastered" -type f -name 'AvsPlusIcon*.png' -print0)
}

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="text/x-avs">
<glob pattern="*.avs"/>
<glob pattern="*.avsi"/>
<icon name="avisynthplus-script"/>
<comment>AviSynthPlus script</comment>
</mime-type>
</mime-info>

View File

@ -8,9 +8,10 @@
pkgname=binutils
pkgver=2.38
pkgrel=3.3
pkgrel=3.6
pkgdesc='A set of programs to assemble and manipulate binary and object files'
arch=(x86_64 powerpc64le powerpc riscv64)
arch=(riscv64)
url='https://www.gnu.org/software/binutils/'
license=('GPL3' 'GPL' 'FDL1.3' 'custom:FSFAP')
groups=(base-devel)
@ -118,6 +119,10 @@ package() {
cd binutils-build
make prefix="$pkgdir/usr" tooldir="$pkgdir/usr" install
for _bin in bin addr2line ar as c++filt elfedit gprof ld ld.bfd nm objcopy objdump ranlib readelf size strings strip; do
ln -s ${_bin} ${pkgdir}/usr/bin/${CHOST}-${_bin}
done
# install PIC version of libiberty
install -m644 libiberty/pic/libiberty.a "$pkgdir/usr/lib"
@ -131,4 +136,6 @@ package() {
# install FSF All Permissive License
install -Dm644 -t "${pkgdir}"/usr/share/licenses/${pkgname}/ FSFAP
}

View File

@ -13,7 +13,7 @@ makedepends=('imake')
conflicts=('cdrkit')
provides=('cdrkit')
replaces=('cdrkit')
options=(!makeflags)
options=(!distcc !makeflags !ccache)
backup=('etc/default/cdrecord' 'etc/default/rscsi')
source=(https://downloads.sourceforge.net/cdrtools/cdrtools-$pkgver.tar.bz2)
sha256sums=('aa28438f458ef3f314b79f2029db27679dae1d5ffe1569b6de57742511915e81')
@ -26,11 +26,16 @@ build() {
# install rscsi to /usr/bin instead of /usr/sbin
sed -i 's|INSDIR=.*|INSDIR=bin|' rscsi/Makefile
[ "${CARCH}" = 'riscv64' ] && \
ln -s RULES/i586-linux-cc.rul RULES/riscv64-linux-cc.rul
case "${CARCH}" in
riscv64)
ln -s RULES/i586-linux-cc.rul RULES/riscv-linux-cc.rul
ln -s RULES/i586-linux-cc.rul RULES/riscv64-linux-cc.rul
export CC=gcc
;;
esac
export GMAKE_NOWARN=true
make INS_BASE=/usr INS_RBASE=/ VERSION_OS="_ArchPOWER" LDOPTX="$LDFLAGS"
make INS_BASE=/usr INS_RBASE=/ VERSION_OS="_ArchPOWER" CCOPTX="${CFLAGS}" LDOPTX="$LDFLAGS"
}
check() {

View File

@ -2,21 +2,20 @@
# Maintainer: Antonio Rojas <arojas@archlinux.org>
pkgname=coin-or-osi
pkgver=0.108.6
pkgver=0.108.7
pkgrel=1
pkgdesc="COIN-OR Open Solver Interface"
arch=(x86_64 powerpc64le)
url="https://projects.coin-or.org/Osi"
pkgdesc='COIN-OR Open Solver Interface'
arch=(x86_64 powerpc64le powerpc)
url='https://github.com/coin-or/Osi'
license=(EPL)
groups=(coin-or)
depends=(coin-or-coinutils)
makedepends=(gcc-fortran)
source=("https://www.coin-or.org/download/source/Osi/Osi-${pkgver}.tgz")
sha256sums=('57ef3f0c97995bac647504aee0ed34d31f79033ece04cd2cb86b4645f0a552d8')
source=($pkgname-$pkgver.tar.gz::https://github.com/coin-or/Osi/archive/refs/tags/releases/$pkgver.tar.gz)
sha256sums=('f1bc53a498585f508d3f8d74792440a30a83c8bc934d0c8ecf8cd8bc0e486228')
build() {
cd Osi-$pkgver
COIN_SKIP_PROJECTS="Sample" \
cd Osi-releases-$pkgver
./configure --prefix=/usr --enable-dependency-linking \
--with-coinutils-lib="$(pkg-config --libs coinutils)" \
--with-coinutils-incdir="/usr/include/coin/" \
@ -25,7 +24,6 @@ build() {
}
package() {
cd Osi-$pkgver
PKG_CONFIG_LIBDIR="${pkgdir}/usr/lib/pkgconfig/" \
cd Osi-releases-$pkgver
make DESTDIR="$pkgdir" install
}

View File

@ -0,0 +1,21 @@
From 62e53f1cdb9c1e12a01ee7814c92cd937d50328d Mon Sep 17 00:00:00 2001
From: w30023233 <wangyuhang27@huawei.com>
Date: Wed, 23 Mar 2022 15:40:01 +0800
Subject: Fix regression in handling 1-5 crontab entries
---
src/entry.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/entry.c b/src/entry.c
index e9e258b..bb7cb62 100644
--- a/src/entry.c
+++ b/src/entry.c
@@ -595,6 +595,7 @@ get_range(bitstr_t * bits, int low, int high, const char *names[],
return (EOF);
case R_RANGE:
+ unget_char(ch, file);
if (get_number(&num2, low, names, file) != EOF) {
state = R_RANGE_NUM2;
break;

View File

@ -7,7 +7,7 @@
pkgbase=dbus
pkgname=(dbus dbus-docs)
pkgver=1.14.0
pkgrel=1
pkgrel=1.1
pkgdesc="Freedesktop.org message bus system"
url="https://wiki.freedesktop.org/www/Software/dbus/"
arch=(x86_64 powerpc64le powerpc riscv64)

19
devil/FS70085.patch Normal file
View File

@ -0,0 +1,19 @@
diff -ru DevIL/DevIL/src-IL/src/il_jp2.cpp DevILb/DevIL/src-IL/src/il_jp2.cpp
--- DevIL/DevIL/src-IL/src/il_jp2.cpp 2017-01-02 01:03:56.000000000 +0100
+++ DevILb/DevIL/src-IL/src/il_jp2.cpp 2021-03-20 09:25:11.500686387 +0100
@@ -314,13 +314,13 @@
-static int iJp2_file_read(jas_stream_obj_t *obj, char *buf, int cnt)
+static int iJp2_file_read(jas_stream_obj_t *obj, char *buf, unsigned int cnt)
{
obj;
return iread(buf, 1, cnt);
}
-static int iJp2_file_write(jas_stream_obj_t *obj, char *buf, int cnt)
+static int iJp2_file_write(jas_stream_obj_t *obj, const char *buf, unsigned int cnt)
{
obj;
return iwrite(buf, 1, cnt);

48
devil/PKGBUILD Normal file
View File

@ -0,0 +1,48 @@
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Laurent Carlier <lordheavym@gmail.org>
# Contributor: damir <damir@archlinux.org>
# Contributor: TheHoff <forums>
pkgname=devil
pkgver=1.8.0
pkgrel=5
pkgdesc="Library for reading several different image formats"
arch=(x86_64 powerpc64le powerpc riscv64)
url="https://sourceforge.net/projects/openil/"
depends=('libpng' 'jasper' 'lcms2' 'libjpeg-turbo')
makedepends=('cmake')
options=('!docs' '!emptydirs')
license=('GPL')
source=(https://downloads.sourceforge.net/openil/DevIL-$pkgver.tar.gz
soversion.patch
FS70085.patch)
sha256sums=('0075973ee7dd89f0507873e2580ac78336452d29d34a07134b208f44e2feb709'
'f6ef4b428fd68f0fb837af548d20ffa5ca96f3e8e4f57faca8f5a90dc48b0377'
'8cc6dedc65d46b2afd6364c55bdb29e259ad6df32529f2cb515998051fd8f35a')
prepare() {
cd "${srcdir}/DevIL"
# Add solib version number to CMakeLists.txt
# https://github.com/DentonW/DevIL/pull/50
patch -Np1 -i "${srcdir}/soversion.patch"
patch -Np1 -i "${srcdir}/FS70085.patch"
}
build() {
cd "${srcdir}/DevIL/DevIL"
rm -rf build && mkdir build
cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
make
}
package() {
cd "${srcdir}/DevIL/DevIL/build"
make DESTDIR="$pkgdir" install
}

47
devil/soversion.patch Normal file
View File

@ -0,0 +1,47 @@
From 1763633e5f7a8b86c293bd9a2f030961e77b0067 Mon Sep 17 00:00:00 2001
From: Juergen Buchmueller <pullmoll@t-online.de>
Date: Mon, 2 Jan 2017 16:48:55 +0100
Subject: [PATCH] Add solib version number to CMakeLists.txt
---
DevIL/src-IL/CMakeLists.txt | 1 +
DevIL/src-ILU/CMakeLists.txt | 1 +
DevIL/src-ILUT/CMakeLists.txt | 1 +
3 files changed, 3 insertions(+)
diff --git a/DevIL/src-IL/CMakeLists.txt b/DevIL/src-IL/CMakeLists.txt
index 02e4f033..095f43e7 100644
--- a/DevIL/src-IL/CMakeLists.txt
+++ b/DevIL/src-IL/CMakeLists.txt
@@ -58,6 +58,7 @@ source_group("Text Files" FILES ${DevIL_TXT} )
if(BUILD_SHARED_LIBS)
add_library(IL SHARED ${DevIL_SRCS} ${DevIL_INC} ${DevIL_RSRC} ${DevIL_TXT})
+ set_target_properties(IL PROPERTIES SOVERSION 1)
else(BUILD_SHARED_LIBS)
add_library(IL ${DevIL_SRCS} ${DevIL_INC} ${DevIL_RSRC} ${DevIL_TXT})
endif(BUILD_SHARED_LIBS)
diff --git a/DevIL/src-ILU/CMakeLists.txt b/DevIL/src-ILU/CMakeLists.txt
index 17a3afe7..44b9531b 100644
--- a/DevIL/src-ILU/CMakeLists.txt
+++ b/DevIL/src-ILU/CMakeLists.txt
@@ -44,6 +44,7 @@ source_group("Resource Files" FILES ${ILU_RSRC} )
# Remove SHARED to create a static library
add_library(ILU SHARED ${ILU_SRCS} ${ILU_INC} ${ILU_RSRC})
+set_target_properties(ILU PROPERTIES SOVERSION 1)
## ILU requires IL
diff --git a/DevIL/src-ILUT/CMakeLists.txt b/DevIL/src-ILUT/CMakeLists.txt
index 21470cbc..296f9955 100644
--- a/DevIL/src-ILUT/CMakeLists.txt
+++ b/DevIL/src-ILUT/CMakeLists.txt
@@ -44,6 +44,7 @@ source_group("Resource Files" FILES ${ILUT_RSRC} )
# Remove SHARED to create a static library
add_library(ILUT SHARED ${ILUT_SRCS} ${ILUT_INC} ${ILUT_RSRC})
+set_target_properties(ILUT PROPERTIES SOVERSION 1)
## add link sub library info
target_link_libraries(ILUT

15
distcc/python-3.10.patch Normal file
View File

@ -0,0 +1,15 @@
diff --git a/include_server/c_extensions/distcc_pump_c_extensions_module.c b/include_server/c_extensions/distcc_pump_c_extensions_module.c
index 763dd42..b00ffec 100644
--- a/include_server/c_extensions/distcc_pump_c_extensions_module.c
+++ b/include_server/c_extensions/distcc_pump_c_extensions_module.c
@@ -33,6 +33,10 @@ const char *rs_program_name = "distcc_include_server";
#include "distcc.h"
#include "rpc.h"
+#ifndef PY_SSIZE_T_CLEAN
+#define PY_SSIZE_T_CLEAN
+#endif /* PY_SSIZE_T_CLEAN */
+
static PyObject *distcc_pump_c_extensionsError;
void initdistcc_pump_c_extensions(void);

View File

@ -5,9 +5,10 @@
pkgbase=e2fsprogs
pkgname=('e2fsprogs' 'fuse2fs')
pkgver=1.46.5
pkgrel=3
pkgrel=3.1
pkgdesc='Ext2/3/4 filesystem utilities'
arch=(x86_64 powerpc64le powerpc riscv64)
arch=(powerpc)
license=('GPL' 'LGPL' 'MIT')
url='http://e2fsprogs.sourceforge.net'
options=('debug')
@ -30,6 +31,8 @@ prepare() {
build() {
cd "${srcdir}/${pkgbase}-${pkgver}"
[ "${CARCH}" = 'powerpc' ] && PLATFORM_FLAGS="--enable-static"
./configure \
--prefix=/usr \
--with-root-prefix='' \
@ -39,7 +42,7 @@ build() {
--disable-fsck \
--disable-uuidd \
--disable-libuuid \
--disable-libblkid
--disable-libblkid ${PLATFORM_FLAGS}
make
# regenerate locale files
@ -69,7 +72,10 @@ package_e2fsprogs() {
sed -i -e 's#^ET_DIR=.*#ET_DIR="/usr/share/et"#' "${pkgdir}/usr/bin/compile_et"
# remove static libraries with a shared counterpart
rm "${pkgdir}"/usr/lib/lib{com_err,e2p,ext2fs,ss}.a
rm -v "${pkgdir}"/usr/lib/lib{com_err,e2p,ss}.a
# yaboot needs this
[ "${CARCH}" != 'powerpc' ] && rm "${pkgdir}"/usr/lib/libext2fs.a
# remove fuse2fs which will be packaged separately
rm "${pkgdir}"/usr/{bin/fuse2fs,share/man/man1/fuse2fs.1}

View File

@ -6,9 +6,9 @@
pkgname=editorconfig-core-c
pkgver=0.12.5
pkgrel=1
pkgrel=1.1
pkgdesc='EditorConfig core code written in C (for use by plugins supporting EditorConfig parsing)'
arch=(x86_64 powerpc64le powerpc)
arch=(x86_64 powerpc64le powerpc riscv64)
url='https://github.com/editorconfig/editorconfig-core-c'
license=(BSD)
depends=(pcre2)
@ -18,7 +18,8 @@ sha256sums=('b2b212e52e7ea6245e21eaf818ee458ba1c16117811a41e4998f3f2a1df298d2')
build() {
cmake -B build -S $pkgname-$pkgver \
-DCMAKE_INSTALL_PREFIX=/usr
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_C_FLAGS="$CFLAGS -ffat-lto-objects"
cmake --build build
}

39
emacs/glibc-2.34.patch Normal file
View File

@ -0,0 +1,39 @@
From f97e07ea807cc6d38774a3888a15091b20645ac6 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Tue, 9 Mar 2021 11:22:59 -0800
Subject: [PATCH] Port alternate signal stack to upcoming glibc 2.34
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* src/sysdep.c (sigsegv_stack): Increase size to 64 KiB and align
it to max_align_t. This copies from Gnulib’s c-stack.c, and works
around a portability bug in draft glibc 2.34, which no longer
defines SIGSTKSZ when _GNU_SOURCE is defined.
---
src/sysdep.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/sysdep.c b/src/sysdep.c
index 941b4e2fa2..24d8832b2f 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -1785,7 +1785,15 @@ handle_arith_signal (int sig)
/* Alternate stack used by SIGSEGV handler below. */
-static unsigned char sigsegv_stack[SIGSTKSZ];
+/* Storage for the alternate signal stack.
+ 64 KiB is not too large for Emacs, and is large enough
+ for all known platforms. Smaller sizes may run into trouble.
+ For example, libsigsegv 2.6 through 2.8 have a bug where some
+ architectures use more than the Linux default of an 8 KiB alternate
+ stack when deciding if a fault was caused by stack overflow. */
+static max_align_t sigsegv_stack[(64 * 1024
+ + sizeof (max_align_t) - 1)
+ / sizeof (max_align_t)];
/* Return true if SIGINFO indicates a stack overflow. */
--
2.29.2

955
ffmpeg/ffmpeg-vmaf2.x.patch Normal file
View File

@ -0,0 +1,955 @@
diff --git a/configure b/configure
index 94f513288a..493493b4c5 100755
--- a/configure
+++ b/configure
@@ -3751,7 +3751,7 @@ vaguedenoiser_filter_deps="gpl"
vflip_vulkan_filter_deps="vulkan spirv_compiler"
vidstabdetect_filter_deps="libvidstab"
vidstabtransform_filter_deps="libvidstab"
-libvmaf_filter_deps="libvmaf pthreads"
+libvmaf_filter_deps="libvmaf"
zmq_filter_deps="libzmq"
zoompan_filter_deps="swscale"
zscale_filter_deps="libzimg const_nan"
@@ -6626,7 +6626,7 @@ enabled libtwolame && require libtwolame twolame.h twolame_init -ltwolame
enabled libuavs3d && require_pkg_config libuavs3d "uavs3d >= 1.1.41" uavs3d.h uavs3d_decode
enabled libv4l2 && require_pkg_config libv4l2 libv4l2 libv4l2.h v4l2_ioctl
enabled libvidstab && require_pkg_config libvidstab "vidstab >= 0.98" vid.stab/libvidstab.h vsMotionDetectInit
-enabled libvmaf && require_pkg_config libvmaf "libvmaf >= 1.5.2" libvmaf.h compute_vmaf
+enabled libvmaf && require_pkg_config libvmaf "libvmaf >= 2.0.0" libvmaf.h vmaf_init
enabled libvo_amrwbenc && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_init -lvo-amrwbenc
enabled libvorbis && require_pkg_config libvorbis vorbis vorbis/codec.h vorbis_info_init &&
require_pkg_config libvorbisenc vorbisenc vorbis/vorbisenc.h vorbis_encode_init
diff --git a/doc/filters.texi b/doc/filters.texi
index 248c09caf8..9a890d1555 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -14666,68 +14666,60 @@ ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Ca
@section libvmaf
-Obtain the VMAF (Video Multi-Method Assessment Fusion)
-score between two input videos.
+Calulate the VMAF (Video Multi-Method Assessment Fusion) score for a
+reference/distorted pair of input videos.
-The first input is the encoded video, and the second input is the reference video.
+The first input is the distorted video, and the second input is the reference video.
The obtained VMAF score is printed through the logging system.
It requires Netflix's vmaf library (libvmaf) as a pre-requisite.
After installing the library it can be enabled using:
@code{./configure --enable-libvmaf}.
-If no model path is specified it uses the default model: @code{vmaf_v0.6.1.pkl}.
The filter has following options:
@table @option
-@item model_path
-Set the model path which is to be used for SVM.
-Default value: @code{"/usr/local/share/model/vmaf_v0.6.1.pkl"}
-
-@item log_path
-Set the file path to be used to store logs.
+@item model
+A `|` delimited list of vmaf models. Each model can be configured with a number of parameters.
+Default value: @code{"version=vmaf_v0.6.1"}
-@item log_fmt
-Set the format of the log file (csv, json or xml).
+@item model_path
+Deprecated, use model='path=...'.
@item enable_transform
-This option can enable/disable the @code{score_transform} applied to the final predicted VMAF score,
-if you have specified score_transform option in the input parameter file passed to @code{run_vmaf_training.py}
-Default value: @code{false}
+Deprecated, use model='enable_transform=true'.
@item phone_model
-Invokes the phone model which will generate VMAF scores higher than in the
-regular model, which is more suitable for laptop, TV, etc. viewing conditions.
-Default value: @code{false}
+Deprecated, use model='enable_transform=true'.
+
+@item enable_conf_interval
+Deprecated, use model='enable_conf_interval=true'.
+
+@item feature
+A `|` delimited list of features. Each feature can be configured with a number of parameters.
@item psnr
-Enables computing psnr along with vmaf.
-Default value: @code{false}
+Deprecated, use feature='name=psnr'.
@item ssim
-Enables computing ssim along with vmaf.
-Default value: @code{false}
+Deprecated, use feature='name=ssim'.
@item ms_ssim
-Enables computing ms_ssim along with vmaf.
-Default value: @code{false}
+Deprecated, use feature='name=ms_ssim'.
-@item pool
-Set the pool method to be used for computing vmaf.
-Options are @code{min}, @code{harmonic_mean} or @code{mean} (default).
+@item log_path
+Set the file path to be used to store log files.
+
+@item log_fmt
+Set the format of the log file (xml, json, csv, or sub).
@item n_threads
-Set number of threads to be used when computing vmaf.
-Default value: @code{0}, which makes use of all available logical processors.
+Set number of threads to be used when initializing libvmaf.
+Default value: @code{0}, no threads.
@item n_subsample
-Set interval for frame subsampling used when computing vmaf.
-Default value: @code{1}
-
-@item enable_conf_interval
-Enables confidence interval.
-Default value: @code{false}
+Set frame subsampling interval to be used.
@end table
This filter also supports the @ref{framesync} options.
@@ -14735,23 +14727,31 @@ This filter also supports the @ref{framesync} options.
@subsection Examples
@itemize
@item
-On the below examples the input file @file{main.mpg} being processed is
-compared with the reference file @file{ref.mpg}.
+In the examples below, a distorted video @file{distorted.mpg} is
+compared with a reference file @file{reference.mpg}.
+@item
+Basic usage:
+@example
+ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null -
+@end example
+
+@item
+Example with multiple models:
@example
-ffmpeg -i main.mpg -i ref.mpg -lavfi libvmaf -f null -
+ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='model=version=vmaf_v0.6.1\\:name=vmaf|version=vmaf_v0.6.1neg\\:name=vmaf_neg' -f null -
@end example
@item
-Example with options:
+Example with multiple addtional features:
@example
-ffmpeg -i main.mpg -i ref.mpg -lavfi libvmaf="psnr=1:log_fmt=json" -f null -
+ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null -
@end example
@item
Example with options and different containers:
@example
-ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=psnr=1:log_fmt=json" -f null -
+ffmpeg -i distorted.mpg -i reference.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=log_fmt=json:log_path=output.json" -f null -
@end example
@end itemize
diff --git a/libavfilter/vf_libvmaf.c b/libavfilter/vf_libvmaf.c
index 5d492126eb..eee1c280ef 100644
--- a/libavfilter/vf_libvmaf.c
+++ b/libavfilter/vf_libvmaf.c
@@ -24,8 +24,8 @@
* Calculate the VMAF between two input videos.
*/
-#include <pthread.h>
#include <libvmaf.h>
+
#include "libavutil/avstring.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
@@ -39,23 +39,9 @@
typedef struct LIBVMAFContext {
const AVClass *class;
FFFrameSync fs;
- const AVPixFmtDescriptor *desc;
- int width;
- int height;
- double vmaf_score;
- int vmaf_thread_created;
- pthread_t vmaf_thread;
- pthread_mutex_t lock;
- pthread_cond_t cond;
- int eof;
- AVFrame *gmain;
- AVFrame *gref;
- int frame_set;
char *model_path;
char *log_path;
char *log_fmt;
- int disable_clip;
- int disable_avx;
int enable_transform;
int phone_model;
int psnr;
@@ -65,184 +51,487 @@ typedef struct LIBVMAFContext {
int n_threads;
int n_subsample;
int enable_conf_interval;
- int error;
+ char *model_cfg;
+ char *feature_cfg;
+ VmafContext *vmaf;
+ VmafModel **model;
+ unsigned model_cnt;
+ unsigned frame_cnt;
+ unsigned bpc;
} LIBVMAFContext;
#define OFFSET(x) offsetof(LIBVMAFContext, x)
#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
static const AVOption libvmaf_options[] = {
- {"model_path", "Set the model to be used for computing vmaf.", OFFSET(model_path), AV_OPT_TYPE_STRING, {.str="/usr/local/share/model/vmaf_v0.6.1.pkl"}, 0, 1, FLAGS},
- {"log_path", "Set the file path to be used to store logs.", OFFSET(log_path), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS},
- {"log_fmt", "Set the format of the log (csv, json or xml).", OFFSET(log_fmt), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS},
- {"enable_transform", "Enables transform for computing vmaf.", OFFSET(enable_transform), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
- {"phone_model", "Invokes the phone model that will generate higher VMAF scores.", OFFSET(phone_model), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
- {"psnr", "Enables computing psnr along with vmaf.", OFFSET(psnr), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
- {"ssim", "Enables computing ssim along with vmaf.", OFFSET(ssim), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
- {"ms_ssim", "Enables computing ms-ssim along with vmaf.", OFFSET(ms_ssim), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
+ {"model_path", "use model='path=...'.", OFFSET(model_path), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS|AV_OPT_FLAG_DEPRECATED},
+ {"log_path", "Set the file path to be used to write log.", OFFSET(log_path), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS},
+ {"log_fmt", "Set the format of the log (csv, json, xml, or sub).", OFFSET(log_fmt), AV_OPT_TYPE_STRING, {.str="xml"}, 0, 1, FLAGS},
+ {"enable_transform", "use model='enable_transform=true'.", OFFSET(enable_transform), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS|AV_OPT_FLAG_DEPRECATED},
+ {"phone_model", "use model='enable_transform=true'.", OFFSET(phone_model), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS|AV_OPT_FLAG_DEPRECATED},
+ {"psnr", "use feature='name=psnr'.", OFFSET(psnr), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS|AV_OPT_FLAG_DEPRECATED},
+ {"ssim", "use feature='name=ssim'.", OFFSET(ssim), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS|AV_OPT_FLAG_DEPRECATED},
+ {"ms_ssim", "use feature='name=ms_ssim'.", OFFSET(ms_ssim), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS|AV_OPT_FLAG_DEPRECATED},
{"pool", "Set the pool method to be used for computing vmaf.", OFFSET(pool), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS},
{"n_threads", "Set number of threads to be used when computing vmaf.", OFFSET(n_threads), AV_OPT_TYPE_INT, {.i64=0}, 0, UINT_MAX, FLAGS},
{"n_subsample", "Set interval for frame subsampling used when computing vmaf.", OFFSET(n_subsample), AV_OPT_TYPE_INT, {.i64=1}, 1, UINT_MAX, FLAGS},
- {"enable_conf_interval", "Enables confidence interval.", OFFSET(enable_conf_interval), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
+ {"enable_conf_interval", "model='enable_conf_interval=true'.", OFFSET(enable_conf_interval), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS|AV_OPT_FLAG_DEPRECATED},
+ {"model", "Set the model to be used for computing vmaf.", OFFSET(model_cfg), AV_OPT_TYPE_STRING, {.str="version=vmaf_v0.6.1"}, 0, 1, FLAGS},
+ {"feature", "Set the feature to be used for computing vmaf.", OFFSET(feature_cfg), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS},
{ NULL }
};
FRAMESYNC_DEFINE_CLASS(libvmaf, LIBVMAFContext, fs);
-#define read_frame_fn(type, bits) \
- static int read_frame_##bits##bit(float *ref_data, float *main_data, \
- float *temp_data, int stride, void *ctx) \
-{ \
- LIBVMAFContext *s = (LIBVMAFContext *) ctx; \
- int ret; \
- \
- pthread_mutex_lock(&s->lock); \
- \
- while (!s->frame_set && !s->eof) { \
- pthread_cond_wait(&s->cond, &s->lock); \
- } \
- \
- if (s->frame_set) { \
- int ref_stride = s->gref->linesize[0]; \
- int main_stride = s->gmain->linesize[0]; \
- \
- const type *ref_ptr = (const type *) s->gref->data[0]; \
- const type *main_ptr = (const type *) s->gmain->data[0]; \
- \
- float *ptr = ref_data; \
- float factor = 1.f / (1 << (bits - 8)); \
- \
- int h = s->height; \
- int w = s->width; \
- \
- int i,j; \
- \
- for (i = 0; i < h; i++) { \
- for ( j = 0; j < w; j++) { \
- ptr[j] = ref_ptr[j] * factor; \
- } \
- ref_ptr += ref_stride / sizeof(*ref_ptr); \
- ptr += stride / sizeof(*ptr); \
- } \
- \
- ptr = main_data; \
- \
- for (i = 0; i < h; i++) { \
- for (j = 0; j < w; j++) { \
- ptr[j] = main_ptr[j] * factor; \
- } \
- main_ptr += main_stride / sizeof(*main_ptr); \
- ptr += stride / sizeof(*ptr); \
- } \
- } \
- \
- ret = !s->frame_set; \
- \
- av_frame_unref(s->gref); \
- av_frame_unref(s->gmain); \
- s->frame_set = 0; \
- \
- pthread_cond_signal(&s->cond); \
- pthread_mutex_unlock(&s->lock); \
- \
- if (ret) { \
- return 2; \
- } \
- \
- return 0; \
+static enum VmafPixelFormat pix_fmt_map(enum AVPixelFormat av_pix_fmt)
+{
+ switch (av_pix_fmt) {
+ case AV_PIX_FMT_YUV420P:
+ case AV_PIX_FMT_YUV420P10LE:
+ case AV_PIX_FMT_YUV420P12LE:
+ case AV_PIX_FMT_YUV420P16LE:
+ return VMAF_PIX_FMT_YUV420P;
+ case AV_PIX_FMT_YUV422P:
+ case AV_PIX_FMT_YUV422P10LE:
+ case AV_PIX_FMT_YUV422P12LE:
+ case AV_PIX_FMT_YUV422P16LE:
+ return VMAF_PIX_FMT_YUV422P;
+ case AV_PIX_FMT_YUV444P:
+ case AV_PIX_FMT_YUV444P10LE:
+ case AV_PIX_FMT_YUV444P12LE:
+ case AV_PIX_FMT_YUV444P16LE:
+ return VMAF_PIX_FMT_YUV444P;
+ default:
+ return VMAF_PIX_FMT_UNKNOWN;
+ }
}
-read_frame_fn(uint8_t, 8);
-read_frame_fn(uint16_t, 10);
+static int copy_picture_data(AVFrame *src, VmafPicture *dst, unsigned bpc)
+{
+ int err = vmaf_picture_alloc(dst, pix_fmt_map(src->format), bpc,
+ src->width, src->height);
+ if (err)
+ return AVERROR(ENOMEM);
+
+ for (unsigned i = 0; i < 3; i++) {
+ uint8_t *src_data = src->data[i];
+ uint8_t *dst_data = dst->data[i];
+ for (unsigned j = 0; j < dst->h[i]; j++) {
+ memcpy(dst_data, src_data, sizeof(*dst_data) * dst->w[i]);
+ src_data += src->linesize[i];
+ dst_data += dst->stride[i];
+ }
+ }
+
+ return 0;
+}
-static void compute_vmaf_score(LIBVMAFContext *s)
+static int do_vmaf(FFFrameSync *fs)
{
- int (*read_frame)(float *ref_data, float *main_data, float *temp_data,
- int stride, void *ctx);
- char *format;
+ AVFilterContext *ctx = fs->parent;
+ LIBVMAFContext *s = ctx->priv;
+ VmafPicture pic_ref, pic_dist;
+ AVFrame *ref, *dist;
+ int err = 0;
- if (s->desc->comp[0].depth <= 8) {
- read_frame = read_frame_8bit;
- } else {
- read_frame = read_frame_10bit;
+ int ret = ff_framesync_dualinput_get(fs, &dist, &ref);
+ if (ret < 0)
+ return ret;
+ if (ctx->is_disabled || !ref)
+ return ff_filter_frame(ctx->outputs[0], dist);
+
+ err = copy_picture_data(ref, &pic_ref, s->bpc);
+ if (err) {
+ av_log(s, AV_LOG_ERROR, "problem during vmaf_picture_alloc.\n");
+ return AVERROR(ENOMEM);
+ }
+
+ err = copy_picture_data(dist, &pic_dist, s->bpc);
+ if (err) {
+ av_log(s, AV_LOG_ERROR, "problem during vmaf_picture_alloc.\n");
+ vmaf_picture_unref(&pic_ref);
+ return AVERROR(ENOMEM);
}
- format = (char *) s->desc->name;
+ err = vmaf_read_pictures(s->vmaf, &pic_ref, &pic_dist, s->frame_cnt++);
+ if (err) {
+ av_log(s, AV_LOG_ERROR, "problem during vmaf_read_pictures.\n");
+ return AVERROR(EINVAL);
+ }
- s->error = compute_vmaf(&s->vmaf_score, format, s->width, s->height,
- read_frame, s, s->model_path, s->log_path,
- s->log_fmt, 0, 0, s->enable_transform,
- s->phone_model, s->psnr, s->ssim,
- s->ms_ssim, s->pool,
- s->n_threads, s->n_subsample, s->enable_conf_interval);
+ return ff_filter_frame(ctx->outputs[0], dist);
}
-static void *call_vmaf(void *ctx)
+
+static AVDictionary **delimited_dict_parse(char *str, unsigned *cnt)
{
- LIBVMAFContext *s = (LIBVMAFContext *) ctx;
- compute_vmaf_score(s);
- if (!s->error) {
- av_log(ctx, AV_LOG_INFO, "VMAF score: %f\n",s->vmaf_score);
- } else {
- pthread_mutex_lock(&s->lock);
- pthread_cond_signal(&s->cond);
- pthread_mutex_unlock(&s->lock);
+ AVDictionary **dict = NULL;
+ char *str_copy = NULL;
+ char *saveptr = NULL;
+ unsigned cnt2;
+ int err = 0;
+
+ if (!str)
+ return NULL;
+
+ cnt2 = 1;
+ for (char *p = str; *p; p++) {
+ if (*p == '|')
+ cnt2++;
+ }
+
+ dict = av_calloc(cnt2, sizeof(*dict));
+ if (!dict)
+ goto fail;
+
+ str_copy = av_strdup(str);
+ if (!str_copy)
+ goto fail;
+
+ *cnt = 0;
+ for (unsigned i = 0; i < cnt2; i++) {
+ char *s = av_strtok(i == 0 ? str_copy : NULL, "|", &saveptr);
+ if (!s)
+ continue;
+ err = av_dict_parse_string(&dict[(*cnt)++], s, "=", ":", 0);
+ if (err)
+ goto fail;
+ }
+
+ av_free(str_copy);
+ return dict;
+
+fail:
+ if (dict) {
+ for (unsigned i = 0; i < *cnt; i++) {
+ if (dict[i])
+ av_dict_free(&dict[i]);
+ }
+ av_free(dict);
}
- pthread_exit(NULL);
+
+ av_free(str_copy);
+ *cnt = 0;
return NULL;
}
-static int do_vmaf(FFFrameSync *fs)
+static int parse_features(AVFilterContext *ctx)
{
- AVFilterContext *ctx = fs->parent;
LIBVMAFContext *s = ctx->priv;
- AVFrame *master, *ref;
- int ret;
+ AVDictionary **dict = NULL;
+ unsigned dict_cnt;
+ int err = 0;
- ret = ff_framesync_dualinput_get(fs, &master, &ref);
- if (ret < 0)
- return ret;
- if (!ref)
- return ff_filter_frame(ctx->outputs[0], master);
+ if (!s->feature_cfg)
+ return 0;
+
+ dict = delimited_dict_parse(s->feature_cfg, &dict_cnt);
+ if (!dict) {
+ av_log(ctx, AV_LOG_ERROR,
+ "could not parse feature config: %s\n", s->feature_cfg);
+ return AVERROR(EINVAL);
+ }
- pthread_mutex_lock(&s->lock);
+ for (unsigned i = 0; i < dict_cnt; i++) {
+ char *feature_name = NULL;
+ VmafFeatureDictionary *feature_opts_dict = NULL;
+ AVDictionaryEntry *e = NULL;
+
+ while (e = av_dict_get(dict[i], "", e, AV_DICT_IGNORE_SUFFIX)) {
+ if (av_stristr(e->key, "name")) {
+ feature_name = e->value;
+ continue;
+ }
+
+ err = vmaf_feature_dictionary_set(&feature_opts_dict, e->key,
+ e->value);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "could not set feature option: %s.%s=%s\n",
+ feature_name, e->key, e->value);
+ goto exit;
+ }
+ }
+
+ err = vmaf_use_feature(s->vmaf, feature_name, feature_opts_dict);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "problem during vmaf_use_feature: %s\n", feature_name);
+ goto exit;
+ }
+ }
- while (s->frame_set && !s->error) {
- pthread_cond_wait(&s->cond, &s->lock);
+exit:
+ for (unsigned i = 0; i < dict_cnt; i++) {
+ if (dict[i])
+ av_dict_free(&dict[i]);
}
+ av_free(dict);
+ return err;
+}
+
+static int parse_models(AVFilterContext *ctx)
+{
+ LIBVMAFContext *s = ctx->priv;
+ AVDictionary **dict;
+ unsigned dict_cnt;
+ int err = 0;
+
+ if (!s->model_cfg) return 0;
- if (s->error) {
+ dict_cnt = 0;
+ dict = delimited_dict_parse(s->model_cfg, &dict_cnt);
+ if (!dict) {
av_log(ctx, AV_LOG_ERROR,
- "libvmaf encountered an error, check log for details\n");
- pthread_mutex_unlock(&s->lock);
+ "could not parse model config: %s\n", s->model_cfg);
return AVERROR(EINVAL);
}
- av_frame_ref(s->gref, ref);
- av_frame_ref(s->gmain, master);
+ s->model_cnt = dict_cnt;
+ s->model = av_calloc(s->model_cnt, sizeof(*s->model));
+ if (!s->model)
+ return AVERROR(ENOMEM);
+
+ for (unsigned i = 0; i < dict_cnt; i++) {
+ VmafModelConfig model_cfg = { 0 };
+ AVDictionaryEntry *e = NULL;
+ char *version = NULL;
+ char *path = NULL;
+
+ while (e = av_dict_get(dict[i], "", e, AV_DICT_IGNORE_SUFFIX)) {
+ if (av_stristr(e->key, "disable_clip")) {
+ model_cfg.flags |= av_stristr(e->value, "true") ?
+ VMAF_MODEL_FLAG_DISABLE_CLIP : 0;
+ continue;
+ }
+
+ if (av_stristr(e->key, "enable_transform")) {
+ model_cfg.flags |= av_stristr(e->value, "true") ?
+ VMAF_MODEL_FLAG_ENABLE_TRANSFORM : 0;
+ continue;
+ }
+
+ if (av_stristr(e->key, "name")) {
+ model_cfg.name = e->value;
+ continue;
+ }
+
+ if (av_stristr(e->key, "version")) {
+ version = e->value;
+ continue;
+ }
+
+ if (av_stristr(e->key, "path")) {
+ path = e->value;
+ continue;
+ }
+ }
+
+ if (version) {
+ err = vmaf_model_load(&s->model[i], &model_cfg, version);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "could not load libvmaf model with version: %s\n",
+ version);
+ goto exit;
+ }
+ }
+
+ if (path && !s->model[i]) {
+ err = vmaf_model_load_from_path(&s->model[i], &model_cfg, path);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "could not load libvmaf model with path: %s\n",
+ path);
+ goto exit;
+ }
+ }
+
+ if (!s->model[i]) {
+ av_log(ctx, AV_LOG_ERROR,
+ "could not load libvmaf model with config: %s\n",
+ s->model_cfg);
+ goto exit;
+ }
+
+ while (e = av_dict_get(dict[i], "", e, AV_DICT_IGNORE_SUFFIX)) {
+ VmafFeatureDictionary *feature_opts_dict = NULL;
+ char *feature_opt = NULL;
+
+ char *feature_name = av_strtok(e->key, ".", &feature_opt);
+ if (!feature_opt)
+ continue;
+
+ err = vmaf_feature_dictionary_set(&feature_opts_dict,
+ feature_opt, e->value);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "could not set feature option: %s.%s=%s\n",
+ feature_name, feature_opt, e->value);
+ err = AVERROR(EINVAL);
+ goto exit;
+ }
+
+ err = vmaf_model_feature_overload(s->model[i], feature_name,
+ feature_opts_dict);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "could not overload feature: %s\n", feature_name);
+ err = AVERROR(EINVAL);
+ goto exit;
+ }
+ }
+ }
+
+ for (unsigned i = 0; i < s->model_cnt; i++) {
+ err = vmaf_use_features_from_model(s->vmaf, s->model[i]);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "problem during vmaf_use_features_from_model\n");
+ err = AVERROR(EINVAL);
+ goto exit;
+ }
+ }
+
+exit:
+ for (unsigned i = 0; i < dict_cnt; i++) {
+ if (dict[i])
+ av_dict_free(&dict[i]);
+ }
+ av_free(dict);
+ return err;
+}
+
+static enum VmafLogLevel log_level_map(int log_level)
+{
+ switch (log_level) {
+ case AV_LOG_QUIET:
+ return VMAF_LOG_LEVEL_NONE;
+ case AV_LOG_ERROR:
+ return VMAF_LOG_LEVEL_ERROR;
+ case AV_LOG_WARNING:
+ return VMAF_LOG_LEVEL_WARNING;
+ case AV_LOG_INFO:
+ return VMAF_LOG_LEVEL_INFO;
+ case AV_LOG_DEBUG:
+ return VMAF_LOG_LEVEL_DEBUG;
+ default:
+ return VMAF_LOG_LEVEL_INFO;
+ }
+}
+
+static int parse_deprecated_options(AVFilterContext *ctx)
+{
+ LIBVMAFContext *s = ctx->priv;
+ VmafModel *model = NULL;
+ VmafModelCollection *model_collection = NULL;
+ enum VmafModelFlags flags = VMAF_MODEL_FLAGS_DEFAULT;
+ int err = 0;
+
+ VmafModelConfig model_cfg = {
+ .name = "vmaf",
+ .flags = flags,
+ };
+
+ if (s->enable_transform || s->phone_model)
+ flags |= VMAF_MODEL_FLAG_ENABLE_TRANSFORM;
+
+ if (!s->model_path)
+ goto extra_metrics_only;
+
+ if (s->enable_conf_interval) {
+ err = vmaf_model_collection_load_from_path(&model, &model_collection,
+ &model_cfg, s->model_path);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "problem loading model file: %s\n", s->model_path);
+ goto exit;
+ }
+
+ err = vmaf_use_features_from_model_collection(s->vmaf, model_collection);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "problem loading feature extractors from model file: %s\n",
+ s->model_path);
+ goto exit;
+ }
+ } else {
+ err = vmaf_model_load_from_path(&model, &model_cfg, s->model_path);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "problem loading model file: %s\n", s->model_path);
+ goto exit;
+ }
+ err = vmaf_use_features_from_model(s->vmaf, model);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "problem loading feature extractors from model file: %s\n",
+ s->model_path);
+ goto exit;
+ }
+ }
+
+extra_metrics_only:
+ if (s->psnr) {
+ VmafFeatureDictionary *d = NULL;
+ vmaf_feature_dictionary_set(&d, "enable_chroma", "false");
+
+ err = vmaf_use_feature(s->vmaf, "psnr", d);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "problem loading feature extractor: psnr\n");
+ goto exit;
+ }
+ }
- s->frame_set = 1;
+ if (s->ssim) {
+ err = vmaf_use_feature(s->vmaf, "float_ssim", NULL);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "problem loading feature extractor: ssim\n");
+ goto exit;
+ }
+ }
- pthread_cond_signal(&s->cond);
- pthread_mutex_unlock(&s->lock);
+ if (s->ms_ssim) {
+ err = vmaf_use_feature(s->vmaf, "float_ms_ssim", NULL);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "problem loading feature extractor: ms_ssim\n");
+ goto exit;
+ }
+ }
- return ff_filter_frame(ctx->outputs[0], master);
+exit:
+ return err;
}
static av_cold int init(AVFilterContext *ctx)
{
LIBVMAFContext *s = ctx->priv;
+ int err = 0;
- s->gref = av_frame_alloc();
- s->gmain = av_frame_alloc();
- if (!s->gref || !s->gmain)
- return AVERROR(ENOMEM);
+ VmafConfiguration cfg = {
+ .log_level = log_level_map(av_log_get_level()),
+ .n_subsample = s->n_subsample,
+ .n_threads = s->n_threads,
+ };
+
+ err = vmaf_init(&s->vmaf, cfg);
+ if (err)
+ return AVERROR(EINVAL);
+
+ err = parse_deprecated_options(ctx);
+ if (err)
+ return err;
- s->error = 0;
+ err = parse_models(ctx);
+ if (err)
+ return err;
- s->vmaf_thread_created = 0;
- pthread_mutex_init(&s->lock, NULL);
- pthread_cond_init (&s->cond, NULL);
+ err = parse_features(ctx);
+ if (err)
+ return err;
s->fs.on_event = do_vmaf;
return 0;
@@ -256,26 +545,31 @@ static const enum AVPixelFormat pix_fmts[] = {
static int config_input_ref(AVFilterLink *inlink)
{
- AVFilterContext *ctx = inlink->dst;
+ AVFilterContext *ctx = inlink->dst;
LIBVMAFContext *s = ctx->priv;
- int th;
+ const AVPixFmtDescriptor *desc;
+ int err = 0;
- if (ctx->inputs[0]->w != ctx->inputs[1]->w ||
- ctx->inputs[0]->h != ctx->inputs[1]->h) {
- av_log(ctx, AV_LOG_ERROR, "Width and height of input videos must be same.\n");
- return AVERROR(EINVAL);
+ if (ctx->inputs[0]->w != ctx->inputs[1]->w) {
+ av_log(ctx, AV_LOG_ERROR, "input width must match.\n");
+ err |= AVERROR(EINVAL);
}
- s->desc = av_pix_fmt_desc_get(inlink->format);
- s->width = ctx->inputs[0]->w;
- s->height = ctx->inputs[0]->h;
+ if (ctx->inputs[0]->h != ctx->inputs[1]->h) {
+ av_log(ctx, AV_LOG_ERROR, "input height must match.\n");
+ err |= AVERROR(EINVAL);
+ }
- th = pthread_create(&s->vmaf_thread, NULL, call_vmaf, (void *) s);
- if (th) {
- av_log(ctx, AV_LOG_ERROR, "Thread creation failed.\n");
- return AVERROR(EINVAL);
+ if (ctx->inputs[0]->format != ctx->inputs[1]->format) {
+ av_log(ctx, AV_LOG_ERROR, "input pix_fmt must match.\n");
+ err |= AVERROR(EINVAL);
}
- s->vmaf_thread_created = 1;
+
+ if (err)
+ return err;
+
+ desc = av_pix_fmt_desc_get(inlink->format);
+ s->bpc = desc->comp[0].depth;
return 0;
}
@@ -307,28 +601,80 @@ static int activate(AVFilterContext *ctx)
return ff_framesync_activate(&s->fs);
}
+static enum VmafOutputFormat log_fmt_map(const char *log_fmt)
+{
+ if (log_fmt) {
+ if (av_stristr(log_fmt, "xml"))
+ return VMAF_OUTPUT_FORMAT_XML;
+ if (av_stristr(log_fmt, "json"))
+ return VMAF_OUTPUT_FORMAT_JSON;
+ if (av_stristr(log_fmt, "csv"))
+ return VMAF_OUTPUT_FORMAT_CSV;
+ if (av_stristr(log_fmt, "sub"))
+ return VMAF_OUTPUT_FORMAT_SUB;
+ }
+
+ return VMAF_OUTPUT_FORMAT_XML;
+}
+
+static enum VmafPoolingMethod pool_method_map(const char *pool_method)
+{
+ if (pool_method) {
+ if (av_stristr(pool_method, "min"))
+ return VMAF_POOL_METHOD_MIN;
+ if (av_stristr(pool_method, "mean"))
+ return VMAF_POOL_METHOD_MEAN;
+ if (av_stristr(pool_method, "harmonic_mean"))
+ return VMAF_POOL_METHOD_HARMONIC_MEAN;
+ }
+
+ return VMAF_POOL_METHOD_MEAN;
+}
+
static av_cold void uninit(AVFilterContext *ctx)
{
LIBVMAFContext *s = ctx->priv;
+ int err = 0;
ff_framesync_uninit(&s->fs);
- pthread_mutex_lock(&s->lock);
- s->eof = 1;
- pthread_cond_signal(&s->cond);
- pthread_mutex_unlock(&s->lock);
+ if (!s->frame_cnt)
+ goto clean_up;
- if (s->vmaf_thread_created)
- {
- pthread_join(s->vmaf_thread, NULL);
- s->vmaf_thread_created = 0;
+ err = vmaf_read_pictures(s->vmaf, NULL, NULL, 0);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "problem flushing libvmaf context.\n");
}
- av_frame_free(&s->gref);
- av_frame_free(&s->gmain);
+ for (unsigned i = 0; i < s->model_cnt; i++) {
+ double vmaf_score;
+ err = vmaf_score_pooled(s->vmaf, s->model[i], pool_method_map(s->pool),
+ &vmaf_score, 0, s->frame_cnt - 1);
+ if (err) {
+ av_log(ctx, AV_LOG_ERROR,
+ "problem getting pooled vmaf score.\n");
+ }
+
+ av_log(ctx, AV_LOG_INFO, "VMAF score: %f\n", vmaf_score);
+ }
+
+ if (s->vmaf) {
+ if (s->log_path && !err)
+ vmaf_write_output(s->vmaf, s->log_path, log_fmt_map(s->log_fmt));
+ }
+
+clean_up:
+ if (s->model) {
+ for (unsigned i = 0; i < s->model_cnt; i++) {
+ if (s->model[i])
+ vmaf_model_destroy(s->model[i]);
+ }
+ av_free(s->model);
+ }
- pthread_mutex_destroy(&s->lock);
- pthread_cond_destroy(&s->cond);
+ if (s->vmaf)
+ vmaf_close(s->vmaf);
}
static const AVFilterPad libvmaf_inputs[] = {
--
2.20.1

View File

@ -3,19 +3,20 @@
# Contributor: Ionut Biru <ibiru@archlinux.org>
pkgname=gjs
pkgver=1.70.1
pkgrel=2
pkgver=1.72.0
pkgrel=1
epoch=2
pkgdesc="Javascript Bindings for GNOME"
url="https://wiki.gnome.org/Projects/Gjs"
arch=(x86_64 powerpc64le powerpc riscv64)
license=(GPL)
depends=(cairo gobject-introspection-runtime js78 dconf readline
depends=(cairo gobject-introspection-runtime js91 dconf readline
libsysprof-capture)
makedepends=(gobject-introspection git meson dbus)
checkdepends=(xorg-server-xvfb gtk3 gtk4)
provides=(libgjs.so)
_commit=f17afbffec385030c1b47dab992f7e08232fea50 # tags/1.70.1^0
options=(debug)
_commit=f0341aaa64318752272c4c6a3aef335401f1b3c9 # tags/1.72.0^0
source=("git+https://gitlab.gnome.org/GNOME/gjs.git#commit=$_commit")
sha256sums=('SKIP')

View File

@ -4,15 +4,15 @@
pkgbase=glib2
pkgname=(glib2 glib2-docs)
pkgver=2.72.0
pkgrel=1.1
pkgver=2.72.1
pkgrel=1
pkgdesc="Low level core library"
url="https://wiki.gnome.org/Projects/GLib"
license=(LGPL)
arch=(x86_64 powerpc64le powerpc riscv64)
depends=(pcre libffi util-linux-libs zlib libsysprof-capture)
makedepends=(gettext gtk-doc shared-mime-info python libelf git util-linux
meson )
meson dbus)
checkdepends=(desktop-file-utils)
options=(debug)
source=("git+https://gitlab.gnome.org/GNOME/glib.git?signed#tag=$pkgver"

View File

@ -1,167 +0,0 @@
==> Skipping x86_64, no available buildbot for this architecture.
[?25l:: Synchronizing package databases...
repo-local
 repo-local is up to date testing
 testing 3.4 KiB 0.00 B/s --:-- [#---------------------] 5% testing 56.8 KiB 237 KiB/s 00:00 [######################] 100%  base
 base 20.3 KiB 0.00 B/s --:-- [----------------------] 1% base 1762.4 KiB 21.5 MiB/s 00:00 [######################] 100% :: Starting full system upgrade...
there is nothing to do
[?25h==> Making package: podman 3.2.2-2 (Fri Aug 6 06:52:32 2021)
==> Retrieving sources...
-> Updating libpod git repo...
Fetching origin
==> Validating source files with sha256sums...
==> Verifying source file signatures with gpg...
==> Making package: podman 3.2.2-2 (Fri 06 Aug 2021 06:53:04 AM UTC)
==> Checking runtime dependencies...
==> Installing missing dependencies...
error: target not found: conmon
error: target not found: crun
error: target not found: slirp4netns
error: target not found: fuse-overlayfs
[?25l[?25h==> ERROR: 'pacman' failed to install missing dependencies.
==> Missing dependencies:
 -> cni-plugins
 -> conmon
 -> containers-common
 -> device-mapper
 -> iptables
 -> crun
 -> slirp4netns
 -> fuse-overlayfs
==> Checking buildtime dependencies...
==> Installing missing dependencies...
[?25lresolving dependencies...
looking for conflicting packages...
Packages (21) argon2-20190702-3 cryptsetup-2.3.6-1 dbus-1.12.20-1
device-mapper-2.03.12-1 hwids-20210613-1 iptables-1:1.8.7-1
json-c-0.15-1 kbd-2.4.0-2 kmod-29-1 libmnl-1.0.4-4
libnetfilter_conntrack-1.0.8-1 libnfnetlink-1.0.1-4
libnftnl-1.2.0-1 libnl-3.5.0-3 libpcap-1.10.1-1 lzo-2.10-4
popt-1.18-1 btrfs-progs-5.13-1 go-2:1.16.6-1 go-md2man-2.0.1-1
systemd-249.2-1
Total Installed Size: 665.30 MiB
:: Proceed with installation? [Y/n]
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
checking available disk space...
:: Processing package changes...
installing lzo...
installing btrfs-progs...
Optional dependencies for btrfs-progs
python: libbtrfsutil python bindings
e2fsprogs: btrfs-convert [installed]
reiserfsprogs: btrfs-convert
installing go...
installing go-md2man...
installing device-mapper...
installing popt...
installing json-c...
installing argon2...
installing cryptsetup...
installing dbus...
installing libmnl...
installing libnftnl...
installing libnl...
installing libpcap...
installing libnfnetlink...
installing libnetfilter_conntrack...
installing iptables...
installing kbd...
installing kmod...
installing hwids...
installing systemd...
warning: directory permissions differ on /var/log/journal/
filesystem: 755 package: 2755
Creating group sys with gid 3.
Creating group mem with gid 8.
Creating group ftp with gid 11.
Creating group mail with gid 12.
Creating group log with gid 19.
Creating group smmsp with gid 25.
Creating group proc with gid 26.
Creating group games with gid 50.
Creating group lock with gid 54.
Creating group network with gid 90.
Creating group floppy with gid 94.
Creating group scanner with gid 96.
Creating group power with gid 98.
Creating group adm with gid 999.
Creating group wheel with gid 998.
Creating group utmp with gid 997.
Creating group audio with gid 996.
Creating group disk with gid 995.
Creating group input with gid 994.
Creating group kmem with gid 993.
Creating group kvm with gid 992.
Creating group lp with gid 991.
Creating group optical with gid 990.
Creating group render with gid 989.
Creating group sgx with gid 988.
Creating group storage with gid 987.
Creating group tty with gid 5.
Creating group uucp with gid 986.
Creating group video with gid 985.
Creating group users with gid 984.
Creating group systemd-journal with gid 983.
Creating group rfkill with gid 982.
Creating group bin with gid 1.
Creating user bin (n/a) with uid 1 and gid 1.
Creating group daemon with gid 2.
Creating user daemon (n/a) with uid 2 and gid 2.
Creating user mail (n/a) with uid 8 and gid 12.
Creating user ftp (n/a) with uid 14 and gid 11.
Creating group http with gid 33.
Creating user http (n/a) with uid 33 and gid 33.
Creating group nobody with gid 65534.
Creating user nobody (Nobody) with uid 65534 and gid 65534.
Creating group dbus with gid 81.
Creating user dbus (System Message Bus) with uid 81 and gid 81.
Creating group git with gid 981.
Creating user git (git daemon user) with uid 981 and gid 981.
Creating group systemd-journal-remote with gid 980.
Creating user systemd-journal-remote (systemd Journal Remote) with uid 980 and gid 980.
Creating group systemd-network with gid 979.
Creating user systemd-network (systemd Network Management) with uid 979 and gid 979.
Creating group systemd-oom with gid 978.
Creating user systemd-oom (systemd Userspace OOM Killer) with uid 978 and gid 978.
Creating group systemd-resolve with gid 977.
Creating user systemd-resolve (systemd Resolver) with uid 977 and gid 977.
Creating group systemd-timesync with gid 976.
Creating user systemd-timesync (systemd Time Synchronization) with uid 976 and gid 976.
Creating group systemd-coredump with gid 975.
Creating user systemd-coredump (systemd Core Dumper) with uid 975 and gid 975.
Creating group uuidd with gid 68.
Creating user uuidd (n/a) with uid 68 and gid 68.
Created symlink /etc/systemd/system/getty.target.wants/getty@tty1.service → /usr/lib/systemd/system/getty@.service.
Created symlink /etc/systemd/system/multi-user.target.wants/remote-fs.target → /usr/lib/systemd/system/remote-fs.target.
Created symlink /etc/systemd/system/dbus-org.freedesktop.resolve1.service → /usr/lib/systemd/system/systemd-resolved.service.
Created symlink /etc/systemd/system/multi-user.target.wants/systemd-resolved.service → /usr/lib/systemd/system/systemd-resolved.service.
:: Append 'init=/usr/lib/systemd/systemd' to your kernel command line in your
bootloader to replace sysvinit with systemd, or install systemd-sysvcompat
Optional dependencies for systemd
libmicrohttpd: remote journald capabilities [installed]
quota-tools: kernel-level quota management
systemd-sysvcompat: symlink package to provide sysvinit binaries
polkit: allow administration as unprivileged user
curl: machinectl pull-tar and pull-raw [installed]
libfido2: unlocking LUKS2 volumes with FIDO2 token
:: Running post-transaction hooks...
(1/9) Creating system user accounts...
(2/9) Updating journal message catalog...
(3/9) Reloading system manager configuration...
Skipped: Current root is not booted.
(4/9) Updating udev hardware database...
(5/9) Applying kernel sysctl settings...
Skipped: Current root is not booted.
(6/9) Creating temporary files...
(7/9) Reloading device manager configuration...
Skipped: Device manager is not running.
(8/9) Arming ConditionNeedsUpdate...
(9/9) Reloading system bus configuration...
Skipped: Current root is not booted.
[?25h==> ERROR: Could not resolve all dependencies.

View File

@ -0,0 +1,15 @@
diff --git i/tests/meson.build w/tests/meson.build
index 0a6a355..0120c29 100644
--- i/tests/meson.build
+++ w/tests/meson.build
@@ -67,7 +67,9 @@ src_build_path = meson.current_build_dir() / '../src'
if build_gir and host_system == 'linux' and not meson.is_cross_build()
foreach unit: ['introspection.py']
- install_data(unit, install_dir: installed_test_bindir)
+ if get_option('installed_tests')
+ install_data(unit, install_dir: installed_test_bindir)
+ endif
wrapper = '@0@.test'.format(unit)
custom_target(wrapper,

View File

@ -87,7 +87,8 @@ source=("git+https://git.savannah.gnu.org/git/grub.git#tag=${_tag}?signed"
'0001-00_header-add-GRUB_COLOR_-variables.patch'
'0002-10_linux-detect-archlinux-initramfs.patch'
'grub.default'
'sbat.csv')
'sbat.csv'
'default.cfg')
sha256sums=('SKIP'
'SKIP'
'391d194f6307fcd0915daafd360509a734e26f3e4013e63d47deb2530d59e66e'
@ -316,6 +317,8 @@ _package_grub-efi() {
rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/{kernel.exec,gdb_grub,gmodule.pl} || true
sed -e "s/%PKGVER%/${pkgver}/" < "${srcdir}/sbat.csv" > "${pkgdir}/usr/share/grub/sbat.csv"
install -m644 "${srcdir}/default.cfg" "${pkgdir}/usr/share/grub/default.cfg"
}
_package_grub-emu() {

3
grub/default.cfg Normal file
View File

@ -0,0 +1,3 @@
search -f /grub/grub.cfg -s root
set prefix=($root)
configfile ($root)/grub/grub.cfg

View File

@ -13,9 +13,7 @@ mongo-c-driver
qt5-base
qt5-webengine
qt5-webkit
qt5-location
xerces-c
gdal
m17n-lib
libe-book
vte3

View File

@ -0,0 +1,90 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tanguy Ortolo <tanguy+debian@ortolo.eu>
Date: Fri, 7 Dec 2018 00:00:00 +0000
Subject: [PATCH] Fix the crash from #912099
ITS Tool 2.0.4 crashes when building some documentation, as reported in #912099.
This comes from translations with invalid XML markup, which ITS Tool fails to
merge (which is not abnormal), and to report these issues, needlessly encodes
the original msgstr from unicode to bytes, causing it to be recoded using the
default ascii codec, which fails when the msgstr contains anything out of ascii.
This patch removes the useless decoding, avoiding the failing subsequent
recoding. It also explicitly encodes the output strings to be able to print them
in all cases, even when the output encoding cannot be detected.
Bug: https://github.com/itstool/itstool/issues/25
Bug-Debian: https://bugs.debian.org/912099
Forwarded: https://github.com/itstool/itstool/issues/25
---
itstool.in | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/itstool.in b/itstool.in
index c21ad4bfeb86..f34673581c88 100755
--- a/itstool.in
+++ b/itstool.in
@@ -44,9 +44,22 @@ if PY3:
else:
return str(s)
ustr_type = str
+ def pr_str(s):
+ """Return a string that can be safely print()ed"""
+ # Since print works on both bytes and unicode, just return the argument
+ return s
else:
string_types = basestring,
ustr = ustr_type = unicode
+ def pr_str(s):
+ """Return a string that can be safely print()ed"""
+ if isinstance(s, str):
+ # Since print works on str, just return the argument
+ return s
+ else:
+ # print may not work on unicode if the output encoding cannot be
+ # detected, so just encode with UTF-8
+ return unicode.encode(s, 'utf-8')
NS_ITS = 'http://www.w3.org/2005/11/its'
NS_ITST = 'http://itstool.org/extensions/'
@@ -1077,36 +1090,36 @@ class Document (object):
if strict:
raise
else:
- sys.stderr.write('Warning: Could not merge %stranslation for msgid:\n%s\n' % (
+ sys.stderr.write(pr_str('Warning: Could not merge %stranslation for msgid:\n%s\n' % (
(lang + ' ') if lang is not None else '',
- msgstr.encode('utf-8')))
+ msgstr)))
self._xml_err = ''
return node
def scan_node(node):
children = [child for child in xml_child_iter(node)]
for child in children:
if child.type != 'element':
continue
if child.ns() is not None and child.ns().content == NS_BLANK:
ph_node = msg.get_placeholder(child.name).node
if self.has_child_elements(ph_node):
self.merge_translations(translations, None, ph_node, strict=strict)
newnode = ph_node.copyNode(1)
newnode.setTreeDoc(self._doc)
child.replaceNode(newnode)
else:
repl = self.get_translated(ph_node, translations, strict=strict, lang=lang)
child.replaceNode(repl)
scan_node(child)
try:
scan_node(trnode)
except:
if strict:
raise
else:
- sys.stderr.write('Warning: Could not merge %stranslation for msgid:\n%s\n' % (
+ sys.stderr.write(pr_str('Warning: Could not merge %stranslation for msgid:\n%s\n' % (
(lang + ' ') if lang is not None else '',
- msgstr.encode('utf-8')))
+ msgstr)))
self._xml_err = ''
ctxt.doc().freeDoc()
return node

View File

@ -13,7 +13,7 @@ _securityver=3
_updatever=3
pkgver=${_majorver}.${_minorver}.${_securityver}.u${_updatever}
#pkgver=${_majorver}.u${_updatever}
pkgrel=1
pkgrel=1.1
pkgver=${_majorver}.${_minorver}.${_securityver}.u${_updatever}
_git_tag=jdk-${_majorver}.${_minorver}.${_securityver}+${_updatever}
arch=(x86_64 powerpc64le powerpc riscv64)

View File

@ -1,4 +1,4 @@
THIS_JDK='java-16-openjdk'
THIS_JDK='java-18-openjdk'
fix_default() {
if [ ! -x /usr/bin/java ]; then

View File

@ -1,4 +1,4 @@
THIS_JRE='java-16-openjdk'
THIS_JRE='java-18-openjdk'
fix_default() {
if [ ! -x /usr/bin/java ]; then

View File

@ -1,4 +1,4 @@
THIS_JRE='java-16-openjdk'
THIS_JRE='java-18-openjdk'
fix_default() {
if [ ! -x /usr/bin/java ]; then

View File

@ -4,10 +4,10 @@
# Contributor: Andrea Scarpino <andrea@archlinux.org>
pkgname=ark
pkgver=21.12.1
pkgver=21.12.3
pkgrel=1
pkgdesc='Archiving Tool'
arch=(x86_64 powerpc64le powerpc)
arch=(x86_64 powerpc64le powerpc riscv64)
url='https://apps.kde.org/ark/'
license=(GPL)
depends=(kparts kpty libarchive libzip kitemmodels hicolor-icon-theme)
@ -16,11 +16,12 @@ optdepends=('p7zip: 7Z format support' 'unrar: RAR decompression support' 'unarc
'lzop: LZO format support' 'lrzip: LRZ format support')
groups=(kde-applications kde-utilities)
source=(https://download.kde.org/stable/release-service/$pkgver/src/$pkgname-$pkgver.tar.xz{,.sig})
sha256sums=('a07654af5a3d7714a485027765ea29a94f62b3aef670cb78532a1561afb978d6'
sha256sums=('4817458000a8f0c241cc59aed1c52ae4338c9d3c5f4f65a57080abb1ec5b60dc'
'SKIP')
validpgpkeys=(CA262C6C83DE4D2FB28A332A3A6A4DB839EAA6D7 # Albert Astals Cid <aacid@kde.org>
F23275E4BF10AFC1DF6914A6DBD2CE893E2D1C87 # Christoph Feck <cfeck@kde.org>
D81C0CB38EB725EF6691C385BB463350D6EF31EF) # Heiko Becker <heiko.becker@kde.org>
options=(debug)
build() {
cmake -B build -S $pkgname-$pkgver \

View File

@ -4,21 +4,22 @@
# Contributor: Andrea Scarpino <andrea@archlinux.org>
pkgname=dragon
pkgver=21.12.1
pkgver=21.12.3
pkgrel=1
pkgdesc='A multimedia player where the focus is on simplicity, instead of features'
arch=(x86_64 powerpc64le powerpc)
arch=(x86_64 powerpc64le powerpc riscv64)
url='https://apps.kde.org/dragonplayer/'
license=(GPL)
depends=(hicolor-icon-theme kparts phonon-qt5)
makedepends=(extra-cmake-modules kdoctools)
groups=(kde-applications kde-multimedia)
source=(https://download.kde.org/stable/release-service/$pkgver/src/$pkgname-$pkgver.tar.xz{,.sig})
sha256sums=('3f94ceaf4560b1d5fdf58c2a10daf6a4d94924470f08fd2df1387f65ea0d3f13'
sha256sums=('e1bae79adf88ae980a41ff475260c4d6e9f0b04b1f88df44d2bd4ab217e53c26'
'SKIP')
validpgpkeys=(CA262C6C83DE4D2FB28A332A3A6A4DB839EAA6D7 # Albert Astals Cid <aacid@kde.org>
F23275E4BF10AFC1DF6914A6DBD2CE893E2D1C87 # Christoph Feck <cfeck@kde.org>
D81C0CB38EB725EF6691C385BB463350D6EF31EF) # Heiko Becker <heiko.becker@kde.org>
options=(debug)
build() {
cmake -B build -S $pkgname-$pkgver \

View File

@ -10,20 +10,21 @@ ksmtp
akonadi
kmime
akonadi-mime
grantleetheme
kpimtextedit
libkleo
akonadi-contacts
libkgapi
kmailtransport
kpimtextedit
kidentitymanagement
kcalutils
akonadi-calendar
libkleo
akonadi-search
kldap
libkdepim
kimap
grantleetheme
pimcommon
akonadi-notes
calendarsupport
akonadi-calendar-tools
mailimporter
@ -32,7 +33,6 @@ kmbox
messagelib
mailcommon
akonadi-import-wizard
akonadi-notes
analitza
artikulate
cantor
@ -154,6 +154,8 @@ kdevelop
umbrello
yakuake
zeroconf-ioslave
telepathy-glib
telepathy-farstream
telepathy-kde-accounts-kcm
telepathy-kde-approver
telepathy-kde-common-internals

View File

@ -4,21 +4,22 @@
# Contributor: Andrea Scarpino <andrea@archlinux.org>
pkgname=kgpg
pkgver=21.12.1
pkgver=21.12.3
pkgrel=1
pkgdesc='A GnuPG frontend'
url='https://apps.kde.org/kgpg/'
arch=(x86_64 powerpc64le powerpc)
arch=(x86_64 powerpc64le powerpc riscv64)
license=(GPL LGPL FDL)
depends=(akonadi-contacts)
makedepends=(extra-cmake-modules kdoctools boost)
groups=(kde-applications kde-utilities)
source=(https://download.kde.org/stable/release-service/$pkgver/src/$pkgname-$pkgver.tar.xz{,.sig})
sha256sums=('1178d8637f1bfa9228b99164d2c515bae3e9cb04d2806d583fa33b52dd0dad63'
sha256sums=('632bcf685fc9604ecc09933d0257533fd208177abba75bc14c853cdec91bf8d7'
'SKIP')
validpgpkeys=(CA262C6C83DE4D2FB28A332A3A6A4DB839EAA6D7 # Albert Astals Cid <aacid@kde.org>
F23275E4BF10AFC1DF6914A6DBD2CE893E2D1C87 # Christoph Feck <cfeck@kde.org>
D81C0CB38EB725EF6691C385BB463350D6EF31EF) # Heiko Becker <heiko.becker@kde.org>
options=(debug)
build() {
cmake -B build -S $pkgname-$pkgver \

View File

@ -1,18 +1,20 @@
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
pkgname=libcanberra
pkgver=0.30+2+gc0620e4
pkgrel=5
pkgver=0.30+r2+gc0620e4
pkgrel=1
epoch=1
pkgdesc="A small and lightweight implementation of the XDG Sound Theme Specification"
url="http://0pointer.de/lennart/projects/libcanberra"
arch=(x86_64 powerpc64le powerpc riscv64)
license=(LGPL)
depends=(libvorbis libltdl alsa-lib libpulse tdb sound-theme-freedesktop)
makedepends=(gtk-doc gtk2 gtk3 git)
provides=("libcanberra-pulse=$pkgver-$pkgrel" libcanberra{,-gtk,-gtk3}.so)
provides=(libcanberra-pulse libcanberra{,-gtk,-gtk3}.so)
replaces=("libcanberra-pulse<0.30+2+gc0620e4-4")
options=(libtool)
options=(libtool debug)
_commit=c0620e432650e81062c1967cc669829dbd29b310 # master
source=("git+http://git.0pointer.net/clone/libcanberra.git#commit=$_commit"
40-libcanberra-gtk-module.sh
@ -23,7 +25,7 @@ sha256sums=('SKIP'
pkgver() {
cd libcanberra
git describe --tags | sed 's/^v//;s/-/+/g'
git describe --tags | sed 's/^v//;s/[^-]*-g/r&/;s/-/+/g'
}
prepare() {
@ -31,7 +33,7 @@ prepare() {
# https://bugs.archlinux.org/task/71341
# https://bugs.freedesktop.org/show_bug.cgi?id=51662
patch -Np1 -i ../libcanberra-multi-backend.patch
git apply -3 ../libcanberra-multi-backend.patch
./autogen.sh
}

View File

@ -1,56 +0,0 @@
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
# Contributor: Piotr Balcerowski <piotr@balcerowski.org>
pkgname=libcurl-compat
pkgver=7.78.0
pkgrel=1
pkgdesc='An URL retrieval library (without versioned symbols)'
arch=(x86_64 powerpc64le powerpc)
url='https://curl.haxx.se'
license=('MIT')
depends=('curl' 'glibc' 'libidn2' 'libidn2.so' 'krb5' 'openssl' 'libnghttp2'
'libpsl' 'libpsl.so' 'libssh' 'libssh2.so' 'zlib' 'zstd')
options=('strip')
source=("https://curl.haxx.se/download/curl-${pkgver}.tar.gz"{,.asc})
sha512sums=('3d74343e06dd3d699f4c883758775554956f7f27de470b71f4af0d7f56ff5e4d7c534ab958c8926fae69cd0ded90c173ac3d5a6ad5518d88c2f39f31f8bba2f3'
'SKIP')
validpgpkeys=('27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2') # Daniel Stenberg
build() {
cd curl-${pkgver}
./configure \
--prefix='/usr' \
--disable-ldap \
--disable-ldaps \
--disable-manual \
--disable-versioned-symbols \
--enable-ipv6 \
--enable-threaded-resolver \
--with-gssapi \
--with-libssh2 \
--with-openssl \
--with-random='/dev/urandom' \
--with-ca-bundle='/etc/ssl/certs/ca-certificates.crt'
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
make -C lib
}
package() {
cd curl-${pkgver}
make -C lib DESTDIR="${pkgdir}" install
mv "${pkgdir}"/usr/lib/libcurl{,-compat}.so.4.7.0
rm "${pkgdir}"/usr/lib/libcurl.{a,so}*
for version in 3 4.0.0 4.1.0 4.2.0 4.3.0 4.4.0 4.5.0 4.6.0; do
ln -s libcurl-compat.so.4.7.0 "${pkgdir}"/usr/lib/libcurl.so.${version}
done
install -dm 755 "${pkgdir}"/usr/share/licenses
ln -s curl "${pkgdir}"/usr/share/licenses/libcurl-compat
}
# vim: ts=2 sw=2 et:

View File

@ -4,9 +4,9 @@
pkgname=libe-book
pkgver=0.1.3
pkgrel=10
pkgrel=11
pkgdesc="Library for import of reflowable e-book formats."
arch=(x86_64 powerpc64le powerpc)
arch=(x86_64 powerpc64le powerpc riscv64)
url="https://sourceforge.net/projects/libebook/"
license=('LGPL2.1' 'MPL')
depends=('librevenge' 'libxml2' 'liblangtag')

View File

@ -0,0 +1,24 @@
diff --git a/src/EbmlString.cpp b/src/EbmlString.cpp
index 27e55fd..4c05fcf 100644
--- a/src/EbmlString.cpp
+++ b/src/EbmlString.cpp
@@ -34,6 +34,7 @@
\author Steve Lhomme <robux4 @ users.sf.net>
*/
#include <cassert>
+#include <limits>
#include "ebml/EbmlString.h"
diff --git a/src/EbmlUnicodeString.cpp b/src/EbmlUnicodeString.cpp
index 496a16a..99fc073 100644
--- a/src/EbmlUnicodeString.cpp
+++ b/src/EbmlUnicodeString.cpp
@@ -36,6 +36,7 @@
*/
#include <cassert>
+#include <limits>
#include "ebml/EbmlUnicodeString.h"

View File

@ -5,66 +5,51 @@
# Contributor: Jon Kristian Nilsen <jokr.nilsen@gmail.com>
pkgname=libffado
pkgver=2.4.4
pkgrel=4
pkgver=2.4.5
pkgrel=1
pkgdesc="Driver for FireWire audio devices"
arch=(x86_64 powerpc64le powerpc riscv64)
url="http://www.ffado.org/"
license=('GPL3')
depends=('gcc-libs' 'glibc' 'glibmm' 'hicolor-icon-theme' 'libavc1394'
'libiec61883' 'libxml++' 'python-dbus')
makedepends=('alsa-lib' 'dbus-c++' 'jack' 'libconfig' 'scons')
makedepends_powerpc=('python-pyqt5')
makedepends_powerpc64le=('python-pyqt5')
makedepends_x86_64=('python-pyqt5')
optdepends_powerpc=('python-pyqt5: ffado-mixer')
optdepends_powerpc64le=('python-pyqt5: ffado-mixer')
optdepends_x86_64=('python-pyqt5: ffado-mixer')
provides=('libffado.so')
source=("http://www.ffado.org/files/${pkgname}-${pkgver}.tgz")
sha512sums=('065b7f9ce9bf58320c02353b63ed17b3610d0ee8a2de58de27159b2190e39c779094b01ae1123c087387e6077375e646b564b9e7717b192865b2f1f22a3acc80')
b2sums=('70d3b17f7d7317acc63351faaefb27fa850664015134887f0508b4a76aabbf6e9573f87eb2dd9792ac5f4f4b06ac7c872afa33af6af0341e6cceeb43e7a79526')
license=(GPL3)
depends=(gcc-libs glibc glibmm hicolor-icon-theme libavc1394
libiec61883 libxml++ python-dbus)
makedepends=(alsa-lib dbus-c++ jack libconfig python-pyqt5 scons)
optdepends=('python-pyqt5: ffado-mixer')
provides=(libffado.so)
options=(debug)
source=(http://www.ffado.org/files/$pkgname-$pkgver.tgz)
sha512sums=('a2c1d0515e14015b7803c4d52d67605afec27ae2569888dec085375ed4a488f4885b5033369e52305e668a35289d3bd749a9babb5778df339fa93553c23af30f')
b2sums=('18c260b782c9a97e3f2c8689a218f7a4925158c3e3cb14987182bf04043438d1325a9ababfe29860f6769a5eeabb49a843a8d15072b24b914334c447b5c7238d')
prepare() {
cd "${pkgname}-${pkgver}"
cd $pkgname-$pkgver
# fix icon name, so it's coherent with XDG desktop file name
sed -e 's/hi64-apps-ffado/ffado-mixer/g' \
-i support/xdg/ffado.org-ffadomixer.desktop
sed -e 's/hi64-apps-ffado/ffado-mixer/g' -i support/xdg/ffado.org-ffadomixer.desktop
# fix id, so it's coherent with XDG desktop file name
sed -e 's/ffado.org-ffadomixer.desktop/ffado-mixer.desktop/g' \
-i support/xdg/ffado-mixer.appdata.xml
sed -e 's/ffado.org-ffadomixer.desktop/ffado-mixer.desktop/g' -i support/xdg/ffado-mixer.appdata.xml
}
build() {
local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))')
cd "${pkgname}-${pkgver}"
case "${CARCH}" in
powerpc64le) SCONS_FLAGS="DETECT_USERSPACE_ENV=false" ;;
esac
cd $pkgname-$pkgver
scons PREFIX=/usr \
DEBUG=no \
CUSTOM_ENV=True \
MANDIR='/usr/share/man' \
PYTHON_INTERPRETER='/usr/bin/python3' \
PYPKGDIR="/usr/lib/python${python_version}/site-packages" \
UDEVDIR='/usr/lib/udev/rules.d' ${SCONS_FLAGS}
MANDIR=/usr/share/man \
PYTHON_INTERPRETER=/usr/bin/python3 \
PYPKGDIR=/usr/lib/python$python_version/site-packages \
UDEVDIR=/usr/lib/udev/rules.d
}
package() {
depends+=('libasound.so' 'libconfig++.so' 'libdbus-c++-1.so' )
cd "${pkgname}-${pkgver}"
scons DESTDIR="${pkgdir}" WILL_DEAL_WITH_XDG_MYSELF="True" install
depends+=(libasound.so libconfig++.so libdbus-c++-1.so)
# XDG
install -vDm 644 support/xdg/ffado.org-ffadomixer.desktop \
"${pkgdir}/usr/share/applications/ffado-mixer.desktop"
install -vDm 644 support/xdg/hi64-apps-ffado.png \
"${pkgdir}/usr/share/icons/hicolor/64x64/apps/ffado-mixer.png"
# docs
install -t "${pkgdir}/usr/share/doc/${pkgname}" -vDm 644 {AUTHORS,README}
cd $pkgname-$pkgver
scons DESTDIR="$pkgdir" WILL_DEAL_WITH_XDG_MYSELF=True install
install -vDm 644 support/xdg/ffado.org-ffadomixer.desktop "$pkgdir/usr/share/applications/ffado-mixer.desktop"
install -vDm 644 support/xdg/hi64-apps-ffado.png "$pkgdir/usr/share/icons/hicolor/64x64/apps/ffado-mixer.png"
install -vDm 644 {AUTHORS,README} -t "$pkgdir/usr/share/doc/$pkgname/"
}
# vim:set ts=2 sw=2 et:

83
libphonenumber/absl.diff Normal file
View File

@ -0,0 +1,83 @@
diff --git i/cpp/CMakeLists.txt w/cpp/CMakeLists.txt
index 588b97177..e3231825f 100644
--- i/cpp/CMakeLists.txt
+++ w/cpp/CMakeLists.txt
@@ -18,7 +18,7 @@ cmake_minimum_required (VERSION 3.11)
# Pick the C++ standard to compile with.
# Abseil currently supports C++11, C++14, and C++17.
-set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
project (libphonenumber)
@@ -126,6 +126,8 @@ if (${USE_BOOST} STREQUAL "OFF" AND ${USE_STDMUTEX} STREQUAL "OFF")
find_package (Threads)
endif()
+find_package (absl REQUIRED)
+
find_or_build_gtest ()
if (${USE_RE2} STREQUAL "ON")
@@ -477,7 +479,7 @@ endif ()
# Safeguarding against any potential link errors as mentioned in
# https://github.com/abseil/abseil-cpp/issues/225
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
-list (APPEND LIBRARY_DEPS absl::strings)
+list (APPEND LIBRARY_DEPS absl::strings absl::node_hash_set)
list (APPEND COMMON_DEPS absl::synchronization)
if (APPLE)
@@ -570,7 +572,7 @@ if (NOT WIN32)
list (APPEND TEST_LIBS pthread)
endif ()
-target_link_libraries (libphonenumber_test ${TEST_LIBS} absl::node_hash_set)
+target_link_libraries (libphonenumber_test ${TEST_LIBS})
# Unfortunately add_custom_target() can't accept a single command provided as a
# list of commands.
@@ -677,7 +679,7 @@ if (${BUILD_GEOCODER} STREQUAL "ON")
geocoding_test_program
"test/phonenumbers/geocoding/geocoding_test_program.cc"
)
- target_link_libraries (geocoding_test_program geocoding phonenumber absl::node_hash_set)
+ target_link_libraries (geocoding_test_program geocoding phonenumber)
endif ()
# Build an RPM
diff --git i/tools/cpp/CMakeLists.txt w/tools/cpp/CMakeLists.txt
index b09416569..58a9b3ba0 100644
--- i/tools/cpp/CMakeLists.txt
+++ w/tools/cpp/CMakeLists.txt
@@ -26,29 +26,6 @@ project (generate_geocoding_data)
# Helper functions dealing with finding libraries and programs this library
# depends on.
include (gtest.cmake)
-include (FetchContent)
-
-# Downloading the abseil sources.
-FetchContent_Declare(
- abseil-cpp
- GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
- GIT_TAG origin/master
-)
-
-# Building the abseil binaries
-FetchContent_GetProperties(abseil-cpp)
-if (NOT abseil-cpp_POPULATED)
- FetchContent_Populate(abseil-cpp)
-endif ()
-
-if (NOT abseil-cpp_POPULATED)
- message (FATAL_ERROR "Could not build abseil-cpp binaries.")
-endif ()
-
-# Safeguarding against any potential link errors as mentioned in
-# https://github.com/abseil/abseil-cpp/issues/225
-set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
-add_subdirectory(${abseil-cpp_SOURCE_DIR} ${abseil-cpp_BINARY_DIR})
find_or_build_gtest ()
set (

View File

@ -11,10 +11,10 @@ _google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4
pkgbase=libreoffice-fresh
pkgname=('libreoffice-fresh-sdk' 'libreoffice-fresh')
_LOver=7.2.5.2
pkgver=7.2.5
pkgrel=4
arch=(x86_64 powerpc64le)
_LOver=7.3.2.2
pkgver=7.3.2
pkgrel=2
arch=(x86_64 powerpc64le powerpc)
license=('LGPL3')
url="https://www.libreoffice.org/"
makedepends=('curl>=7.20.0' 'hunspell>=1.2.8' 'python>=3.7' 'libwpd>=0.9.2' 'libwps'
@ -33,6 +33,7 @@ makedepends=('curl>=7.20.0' 'hunspell>=1.2.8' 'python>=3.7' 'libwpd>=0.9.2' 'lib
'libexttextcat' 'gobject-introspection' # 'libfbclient'
'libtommath' 'libzmf' 'gpgme' 'xmlsec' 'rxvt-unicode'
'libepubgen' 'libfreehand' 'libqxp' 'libstaroffice' 'boost' 'libnumbertext'
'libcuckoo' 'abseil-cpp' 'zxing-cpp' 'clang'
'libffi' 'box2d' 'git'
)
options=('!lto') # using --enable-lto (for parallel link-time optimization)
@ -49,17 +50,17 @@ source=(${_mirror}/libreoffice{,-help,-translations}-${_LOver}.tar.xz{,.asc}
${_additional_source_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
${_additional_source_url}/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
${_additional_source_url}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
${_additional_source_url}/pdfium-4500.tar.bz2
${_additional_source_url}/pdfium-4699.tar.bz2
${_additional_source_url}/dtoa-20180411.tgz
${_additional_source_url}/lxml-4.1.1.tgz
${_additional_source_url}/Firebird-3.0.7.33374-0.tar.bz2
${_additional_source_url}/zxing-cpp-1.1.1.tar.gz
${_additional_source_url}/skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz
${_additional_source_url}/skia-m97-a7230803d64ae9d44f4e1282444801119a3ae967.tar.xz
${_additional_source_url}/libcmis-0.5.2.tar.xz
${_additional_source_url2}/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar # for test suite
${_additional_source_url2}/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar # for test suite
${_additional_source_url2}/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
${_additional_source_url2}/185d60944ea767075d27247c3162b3bc-unowinreg.dll
poppler-22.03.0.patch
make-pyuno-work-with-system-wide-module-install.diff
soffice-template.desktop.in
libreoffice-fresh.sh libreoffice-fresh.csh)
@ -71,12 +72,11 @@ noextract=(35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
pdfium-4500.tar.bz2
pdfium-4699.tar.bz2
dtoa-20180411.tgz
lxml-4.1.1.tgz
Firebird-3.0.7.33374-0.tar.bz2
zxing-cpp-1.1.1.tar.gz
skia-m90-45c57e116ee0ce214bdf78405a4762722e4507d9.tar.xz
skia-m97-a7230803d64ae9d44f4e1282444801119a3ae967.tar.xz
libcmis-0.5.2.tar.xz
8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar # for test suite
odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar # for test suite
@ -84,11 +84,11 @@ noextract=(35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
185d60944ea767075d27247c3162b3bc-unowinreg.dll
)
validpgpkeys=('C2839ECAD9408FBE9531C3E9F434A1EFAFEEAEA3') # LibreOffice Build Team (CODE SIGNING KEY) <build@documentfoundation.org>
sha256sums=('67c1bfb059d433286b0252a915627b33af63bb5f4b6ec9509d13b9dd475512a7'
sha256sums=('be96b0c9c7af7e24564729281ca6cef4eadfb06c9b30131a6fc94fa3e43b46a8'
'SKIP'
'eaf1112d68747e441c491902dfb7f0d8706ac55b5bafd90f1213b25978ccadf3'
'addb19304e3330f49614eb979541cf1bdf93b481dcce22fdee20fbb193066aec'
'SKIP'
'f6b9ee4627ec117ed101476c5fa555c3fc504ba759792dd16ca9e80b7f6e31df'
'c2588507b425bc7047b6325fcde8a2fcc9a927cee5b76065f42ddb68bad0fd71'
'SKIP'
'64585ac36a81291a58269ec5347e7e3e2e8596dbacb9221015c208191333c6e1'
'1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753'
@ -98,17 +98,17 @@ sha256sums=('67c1bfb059d433286b0252a915627b33af63bb5f4b6ec9509d13b9dd475512a7'
'd30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370'
'1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133'
'233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd'
'26a03dd60e5ed0979cdaba9cc848242895110ddfdf347d40989ce2f14020f304'
'ee80fe0a3b20ef5c5babc494cd655d1b1a0bdec710acb04524789df500c563bf'
'0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4'
'940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e'
'acb85cedafa10ce106b1823fb236b1b3e5d942a5741e8f8435cc8ccfec0afe76'
'e595b3fa2ec320beb0b28f6af56b1141853257c2611686685639cebb3b248c86'
'abe0b94d54edb717c58d74263f4ed3d27824d2ce9e9f2ce85a21ab38d993f94d'
'97e859e8467eca9d2441cd23079b61c2c3863b5687620f18cc31a9f966740177'
'd7b18d9602190e10d437f8a964a32e983afd57e2db316a07d87477a79f5000a2'
'f2443f27561af52324eee03a1892d9f569adc8db9e7bca55614898bc2a13a770'
'984f2a479df79e27e7b01a5815ac53ae64e07746b882262d8a64566494515504'
'f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140'
'eafde646a7dbe46d20c291685b0beac2382174d78d66ee990e229a1bf6e6cec6'
'e61e2a266c7a4374377475254a2f095c1ce2376980b301955a4e5a0d32d3c25b'
'c463654a73ecfbc242ff109726fb4faecdbfb3d91affafe919b24bea65afb563'
'd0be8099cbee3c9dfda694a828149b881c345b204ab68826f317580aafb50879'
'cd1b25ff390e436c6bffa65c6e12382236e3ccbf8d3aae51b1b59bcaed79fd8a'
@ -130,6 +130,8 @@ prepare() {
rm "${srcdir}"/ext_sources/185d60944ea767075d27247c3162b3bc-unowinreg.dll
cp -f "${srcdir}"/185d60944ea767075d27247c3162b3bc-unowinreg.dll "${srcdir}"/ext_sources
patch -Np1 -i "${srcdir}"/poppler-22.03.0.patch
# fix not upstreamable pyuno paths - FS#54250
patch -Np1 -i "${srcdir}"/make-pyuno-work-with-system-wide-module-install.diff
@ -152,7 +154,7 @@ build() {
CPPFLAGS+=' -DU_USING_ICU_NAMESPACE=1'
./autogen.sh --with-extra-buildid="${pkgver}-${pkgrel}" \
--with-vendor="Arch Linux" \
--with-vendor="Arch POWER" \
--enable-split-app-modules \
--with-parallelism=${_MAKEFLAGS/-j/} \
--with-external-tar="${srcdir}/ext_sources" \
@ -197,7 +199,7 @@ build() {
--with-system-libetonyek \
--with-system-libfreehand \
--without-system-firebird \
--without-system-zxing \
--with-system-zxing \
--with-system-libtommath \
--with-system-libatomic-ops \
--with-system-libebook \
@ -218,6 +220,7 @@ build() {
--with-system-libzmf \
--with-system-gpgmepp \
--with-system-libstaroffice \
--with-system-cuckoo \
--with-system-serf \
--with-jdk-home="/usr/lib/jvm/default" \
--with-ant-home="/usr/share/ant"\
@ -286,6 +289,7 @@ package_libreoffice-fresh() {
'liblangtag' 'libexttextcat' 'liborcus' # 'libfbclient'
'libtommath' 'libzmf' 'libatomic_ops' 'xmlsec' 'gpgme' 'libnumbertext'
'libfreehand' 'libstaroffice' 'libepubgen' 'libqxp' 'libepoxy' 'box2d'
'zxing-cpp'
'xdg-utils')
optdepends=('java-runtime: adds java support'
'java-environment: required by extension-wiki-publisher and extension-nlpsolver'

View File

@ -1,70 +0,0 @@
From 701008631ee257b4c7714ac9e2689c5ecc45bff8 Mon Sep 17 00:00:00 2001
From: Eike Rathke <erack@redhat.com>
Date: Tue, 13 Oct 2020 23:56:28 +0200
Subject: Resolves: tdf#137248 Fix wrong condition breaking non-group interpret
Regression from
commit 4f36f2ccab6286ec09480caea602c0fa19195736
CommitDate: Thu Sep 10 11:15:47 2020 +0200
detect if a cell still needs interpreting after Interpret()
The bool return from ScFormulaCell::Interpret() does not indicate
if it was succesful but whether a group interpret was done. As
both calls here happen in a non-group context bailing out on that
if false (no group interpret) is wrong. Instead, ask the cell if
it still needs to be interpreted after having been interpreted.
Change-Id: I40eeeef65e1da3d729cb3fef550620b1ea0a5741
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104261
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
(cherry picked from commit 59f86333f3fce091177d1cfb9363aa81686aa497)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104289
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
---
sc/source/core/data/column4.cxx | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/sc/source/core/data/column4.cxx b/sc/source/core/data/column4.cxx
index 73adaf72dd71..950b38766c44 100644
--- a/sc/source/core/data/column4.cxx
+++ b/sc/source/core/data/column4.cxx
@@ -1690,14 +1690,14 @@ static bool lcl_InterpretSpan(sc::formula_block::const_iterator& rSpanIter, SCRO
++itSpanStart;
for (SCROW nIdx = nSpanStart+1; nIdx <= nSpanEnd; ++nIdx, ++itSpanStart)
{
- if( !(*itSpanStart)->Interpret()) // We know for sure that this cell is dirty so directly call Interpret().
+ (*itSpanStart)->Interpret(); // We know for sure that this cell is dirty so directly call Interpret().
+ if ((*itSpanStart)->NeedsInterpret())
{
SAL_WARN("sc.core.formulagroup", "Internal error, cell " << (*itSpanStart)->aPos
<< " failed running Interpret(), not allowing threading");
bAllowThreading = false;
return bAnyDirty;
}
- assert(!(*itSpanStart)->NeedsInterpret());
// Allow early exit like above.
if ((mxParentGroup && mxParentGroup->mbPartOfCycle) || !rRecursionHelper.AreGroupsIndependent())
@@ -1804,14 +1804,14 @@ static void lcl_EvalDirty(sc::CellStoreType& rCells, SCROW nRow1, SCROW nRow2, S
if( (*itCell)->NeedsInterpret())
{
bDirtyFlag = true;
- if(!(*itCell)->Interpret())
+ (*itCell)->Interpret();
+ if ((*itCell)->NeedsInterpret())
{
SAL_WARN("sc.core.formulagroup", "Internal error, cell " << (*itCell)->aPos
<< " failed running Interpret(), not allowing threading");
bAllowThreading = false;
return;
}
- assert(!(*itCell)->NeedsInterpret());
}
bIsDirty = bIsDirty || bDirtyFlag;
--
cgit v1.2.1

View File

@ -1,79 +0,0 @@
From f0b74640137f07ed74027f98fbf6d1c0d98939bf Mon Sep 17 00:00:00 2001
From: Stephan Bergmann <sbergman@redhat.com>
Date: Mon, 20 Apr 2020 11:40:24 +0200
Subject: Add --with-latest-c++ to explicitly opt in for
-std=c++20/-std:c++latest
Adaptation of this change to this branch. The point is to avoid
compiling as C++2a as the code for externals has not been patched
properly for that here. Here is the original commit message even if I
assume it is a bit misleading in this branch:
cd472d1d8489f30797f47d3f6dafede28c1feb90 "Compile as C++2a, where available" had
started to unconditionally check for support of -std=c++2a (and later also
-std=c++20) for Clang and GCC, but that can cause occasional issues especially
for Linux distros, see e.g. 55c724b93dfd4c9a1afb10d60fbc2d7a9a66cf61 "replace
boost::bimap in sdext pdfimport" or
<https://bugzilla.redhat.com/show_bug.cgi?id=1818723>
"/usr/include/boost/format/alt_sstream_impl.hpp incompatible with -std=c++20
(std::allocator::allocate hint argument)" (where
677c8de4fa79cd9b278b142013ba7f1c9e4e41c3 "external/boost: Adapt to
std::allocator parts removed in C++20" is not picked up due to
--with-system-boost).
So better require an explicit opt-in via a new --with-latest-c++. And while at
it, also make that enable -std:c++latest for MSVC.
Change-Id: I2d1f03144fad9a7884562e56b1b76cab5eb8f080
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92555
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93204
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93692
Tested-by: Tor Lillqvist <tml@collabora.com>
---
configure.ac | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 78080305f3d6..8364138bdc96 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2143,6 +2143,12 @@ libo_FUZZ_ARG_WITH(lxml,
report widget classes and ids.]),
,)
+libo_FUZZ_ARG_WITH(latest-c++,
+ AS_HELP_STRING([--with-latest-c++],
+ [Try to enable the latest features of the C++ compiler, even if they are not yet part of a
+ published standard.]),,
+ [$with_latest_c__=no])
+
dnl ===================================================================
dnl Branding
dnl ===================================================================
@@ -6456,9 +6462,17 @@ dnl ===================================================================
AC_MSG_CHECKING([whether $CXX_BASE supports C++17])
CXXFLAGS_CXX11=
if test "$COM" = MSC -a "$COM_IS_CLANG" != TRUE; then
- CXXFLAGS_CXX11='-std:c++17 -Zc:__cplusplus'
+ if test "$with_latest_c__" = yes; then
+ CXXFLAGS_CXX11=-std:c++latest
+ else
+ CXXFLAGS_CXX11=-std:c++17
+ fi
+ CXXFLAGS_CXX11="$CXXFLAGS_CXX11 -Zc:__cplusplus"
elif test "$GCC" = "yes" -o "$COM_IS_CLANG" = TRUE; then
- my_flags='-std=c++2a -std=c++17 -std=c++1z'
+ my_flags='-std=c++17 -std=c++1z'
+ if test "$with_latest_c__" = yes; then
+ my_flags="-std=gnu++2a -std=c++2a $my_flags"
+ fi
for flag in $my_flags; do
if test "$COM" = MSC; then
flag="-Xclang $flag"
--
cgit v1.2.1

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +0,0 @@
--- libreoffice-7.0.3.1/i18npool/source/calendar/calendar_gregorian.cxx.orig 2020-11-07 13:11:35.764453207 +0100
+++ libreoffice-7.0.3.1/i18npool/source/calendar/calendar_gregorian.cxx 2020-11-07 13:11:56.125401559 +0100
@@ -347,7 +347,7 @@
"Calendar_gregorian::setLocalDateTime: " << std::fixed << fM << " rounded to " << fR);
int32_t nZoneOffset, nDSTOffset;
UErrorCode status = U_ZERO_ERROR;
- body->getTimeZone().getOffset( fR, TRUE, nZoneOffset, nDSTOffset, status );
+ body->getTimeZone().getOffset( fR, true, nZoneOffset, nDSTOffset, status );
if ( !U_SUCCESS(status) ) throw ERROR;
status = U_ZERO_ERROR;
body->setTime( fR - (nZoneOffset + nDSTOffset), status );

View File

@ -1,15 +0,0 @@
diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
index e9c2a407c279..16ad04bf660a 100644
--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
@@ -563,7 +563,9 @@ void PDFOutDev::processLink(Link* link, Catalog*)
if (!(pAction && pAction->getKind() == actionURI))
return;
-#if POPPLER_CHECK_VERSION(0, 72, 0)
+#if POPPLER_CHECK_VERSION(0, 86, 0)
+ const char* pURI = static_cast<LinkURI*>(pAction)->getURI().c_str();
+#elif POPPLER_CHECK_VERSION(0, 72, 0)
const char* pURI = static_cast<LinkURI*>(pAction)->getURI()->c_str();
#else
const char* pURI = static_cast<LinkURI*>(pAction)->getURI()->getCString();

View File

@ -0,0 +1,28 @@
diff --git a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx
index ad6320139..e5f6d9c68 100644
--- a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx
+++ b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx
@@ -138,6 +138,15 @@ int main(int argc, char **argv)
_setmode( _fileno( g_binary_out ), _O_BINARY );
#endif
+#if POPPLER_CHECK_VERSION(22, 3, 0)
+ PDFDoc aDoc( std::make_unique<GooString>(pFileName),
+ GooString(pOwnerPasswordStr),
+ GooString(pUserPasswordStr) );
+
+ PDFDoc aErrDoc( std::make_unique<GooString>(pErrFileName),
+ GooString(pOwnerPasswordStr),
+ GooString(pUserPasswordStr) );
+#else
PDFDoc aDoc( pFileName,
pOwnerPasswordStr,
pUserPasswordStr );
@@ -145,6 +154,7 @@ int main(int argc, char **argv)
PDFDoc aErrDoc( pErrFileName,
pOwnerPasswordStr,
pUserPasswordStr );
+#endif
// Check various permissions for aDoc.
PDFDoc &rDoc = aDoc.isOk()? aDoc: aErrDoc;

View File

@ -1,19 +1,22 @@
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Sven-Hendrik Haase <svenstaro@archlinux.org>
# Maintainer: Robin Broda <robin@broda.me>
# Contributor: Christian Rebischke <chris.rebischke@archlinux.org>
# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Jonathan Wiersma <archaur at jonw dot org>
pkgname=(libvirt libvirt-storage-gluster libvirt-storage-iscsi-direct)
[ "${CARCH}" != 'powerpc' ] && pkgname+=(libvirt-storage-rbd)
case "${CARCH}" in
powerpc64le|x86_64) pkgname+=(libvirt-storage-rbd) ;;
esac
epoch=1
pkgver=8.1.0
pkgrel=1.1
pkgver=8.2.0
pkgrel=4
pkgdesc="API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)"
arch=(x86_64 powerpc64le powerpc)
arch=(x86_64 powerpc64le powerpc riscv64)
url="https://libvirt.org/"
license=('LGPL' 'GPL3') #libvirt_parthelper links to libparted which is GPL3 only
depends=('libpciaccess' 'yajl' 'fuse2' 'gnutls' 'parted' 'libssh' 'libxml2' 'numactl' 'polkit')
depends=('libpciaccess' 'yajl' 'fuse3' 'gnutls' 'parted' 'libssh' 'libxml2' 'numactl' 'polkit')
makedepends=('meson' 'libxslt' 'python-docutils' 'lvm2' 'open-iscsi' 'libiscsi' 'glusterfs'
'bash-completion' 'rpcsvc-proto' 'dnsmasq' 'iproute2' 'qemu-headless')
makedepends_powerpc64le=('ceph-libs')
@ -28,25 +31,12 @@ optdepends=('libvirt-storage-gluster: Gluster storage backend'
'ebtables: required for default NAT networking'
'qemu: QEMU/KVM support'
'lvm2: Logical Volume Manager support'
'open-iscsi: iSCSI support via iscsiadm')
'open-iscsi: iSCSI support via iscsiadm'
'swtpm: TPM emulator support')
optdepends_powerpc64le=('libvirt-storage-rbd: RBD storage backend')
optdepends_x86_64=('libvirt-storage-rbd: RBD storage backend')
backup=(
'etc/conf.d/libvirtd'
'etc/conf.d/libvirt-guests'
'etc/conf.d/virtchd'
'etc/conf.d/virtinterfaced'
'etc/conf.d/virtlockd'
'etc/conf.d/virtlogd'
'etc/conf.d/virtlxcd'
'etc/conf.d/virtnetworkd'
'etc/conf.d/virtnodedevd'
'etc/conf.d/virtnwfilterd'
'etc/conf.d/virtproxyd'
'etc/conf.d/virtqemud'
'etc/conf.d/virtsecretd'
'etc/conf.d/virtstoraged'
'etc/conf.d/virtvboxd'
'etc/libvirt/libvirt-admin.conf'
'etc/libvirt/libvirt.conf'
'etc/libvirt/libvirtd.conf'
@ -97,8 +87,9 @@ backup=(
'etc/logrotate.d/libvirtd.qemu'
'etc/sasl2/libvirt.conf'
)
options=(debug)
source=("https://libvirt.org/sources/$pkgname-$pkgver.tar.xz"{,.asc})
sha256sums=('3c6c43becffeb34a3f397c616206aa69a893ff8bf5e8208393c84e8e75352934'
sha256sums=('0ecd9c7dd52db7a2d124155ffa5e11de2fbd05014eceffbd1972b022d21becba'
'SKIP')
validpgpkeys=('453B65310595562855471199CA68BE8010084C9C') # Jiří Denemark <jdenemar@redhat.com>
@ -126,8 +117,8 @@ build() {
arch-meson build \
--libexecdir=lib/libvirt \
-Drunstatedir=/run \
-Dqemu_user=kvm \
-Dqemu_group=kvm \
-Dqemu_user=libvirt-qemu \
-Dqemu_group=libvirt-qemu \
-Dnetcf=disabled \
-Dopenwsman=disabled \
-Dapparmor=disabled \
@ -145,7 +136,7 @@ build() {
-Dstorage_vstorage=disabled \
-Ddtrace=disabled \
-Dnumad=disabled \
-Dstorage_zfs=enabled ${EXTRA_MESON_FLAGS}
-Dstorage_zfs=enabled ${EXTRA_MESON_FLAGS}
ninja -C build
}
@ -162,13 +153,16 @@ package_libvirt() {
DESTDIR="$pkgdir" ninja -C build install
mkdir "$pkgdir"/usr/lib/{sysusers,tmpfiles}.d
echo "g libvirt - -" > "$pkgdir/usr/lib/sysusers.d/libvirt.conf"
echo "z /var/lib/libvirt/qemu 0751" > "$pkgdir/usr/lib/tmpfiles.d/libvirt.conf"
echo 'g libvirt - -' > "$pkgdir/usr/lib/sysusers.d/libvirt.conf"
echo 'u libvirt-qemu /var/lib/libvirt "Libvirt QEMU user"' >> "$pkgdir/usr/lib/sysusers.d/libvirt.conf"
echo 'm libvirt-qemu kvm' >> "$pkgdir/usr/lib/sysusers.d/libvirt.conf"
echo 'z /var/lib/libvirt/qemu 0751' > "$pkgdir/usr/lib/tmpfiles.d/libvirt.conf"
chown 0:102 "$pkgdir/usr/share/polkit-1/rules.d"
chmod 0750 "$pkgdir/usr/share/polkit-1/rules.d"
chmod 600 "$pkgdir"/etc/libvirt/nwfilter/*.xml \
"$pkgdir/etc/libvirt/qemu/networks/default.xml"
chmod 700 "$pkgdir"/etc/libvirt/secrets
rm -rf \
"$pkgdir/run" \
@ -180,7 +174,9 @@ package_libvirt() {
# move split modules
mv "$pkgdir"/usr/lib/libvirt/storage-backend/libvirt_storage_backend_gluster.so "$pkgdir/../"
[ "${CARCH}" != 'powerpc' ] && mv "$pkgdir"/usr/lib/libvirt/storage-backend/libvirt_storage_backend_rbd.so "$pkgdir/../"
case "${CARCH}" in
powerpc64le|x86_64) mv "$pkgdir"/usr/lib/libvirt/storage-backend/libvirt_storage_backend_rbd.so "$pkgdir/../" ;;
esac
mv "$pkgdir/usr/lib/libvirt/storage-backend/libvirt_storage_backend_iscsi-direct.so" "$pkgdir/../"
mv "$pkgdir/usr/lib/libvirt/storage-file/libvirt_storage_file_gluster.so" "$pkgdir/../"
}

View File

@ -3,7 +3,7 @@
pkgname=libwpe
pkgver=1.12.0
pkgrel=1
pkgrel=2
pkgdesc="General-purpose library for WPE WebKit"
url="https://wpewebkit.org"
arch=(x86_64 powerpc64le powerpc riscv64)
@ -11,22 +11,23 @@ license=(custom)
depends=(libxkbcommon gcc-libs)
makedepends=(mesa git meson)
provides=(libwpe-1.0.so)
options=(debug)
_commit=c785ad5fad51c20bd47f648a05279ec34b08848d # tags/1.12.0^0
source=("git+https://github.com/WebPlatformForEmbedded/libwpe?signed#commit=$_commit")
sha256sums=('SKIP')
validpgpkeys=('5AA3BC334FD7E3369E7C77B291C559DBE4C9123B') # Adrián Pérez de Castro <aperez@igalia.com>
pkgver() {
cd $pkgname
git describe --tags | sed 's/-/+/g'
cd libwpe
git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g'
}
prepare() {
cd $pkgname
cd libwpe
}
build() {
arch-meson $pkgname build
arch-meson libwpe build
meson compile -C build
}
@ -36,7 +37,7 @@ check() {
package() {
meson install -C build --destdir "$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 $pkgname/COPYING
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 libwpe/COPYING
}
# vim:set sw=2 et:

78
lirc/python-yaml-6.patch Normal file
View File

@ -0,0 +1,78 @@
From bb6a390633f32942ac10f9b7b7fc01dfbd395a48 Mon Sep 17 00:00:00 2001
From: Alec Leamas <leamas.alec@nowhere.net>
Date: Fri, 21 Jan 2022 14:00:54 +0100
Subject: [PATCH] database.py: Handle new PyYAML interface.
---
python-pkg/lirc/database.py | 12 ++++++++----
tools/check_configs.py | 4 ++++
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/python-pkg/lirc/database.py b/python-pkg/lirc/database.py
index d464c2ab..d1f42c64 100644
--- a/python-pkg/lirc/database.py
+++ b/python-pkg/lirc/database.py
@@ -44,6 +44,10 @@ import sys
try:
import yaml
+ try:
+ from yaml import CLoader as Loader, CDumper as Dumper
+ except ImportError:
+ from yaml import Loader, Dumper
except ImportError:
_YAML_MSG = '''
"Cannot import the yaml library. Please install the python3
@@ -66,7 +70,7 @@ def _load_kerneldrivers(configdir):
'''
with open(os.path.join(configdir, "kernel-drivers.yaml")) as f:
- cf = yaml.load(f.read())
+ cf = yaml.load(f.read(), Loader = Loader)
drivers = cf['drivers'].copy()
for driver in cf['drivers']:
if driver == 'default':
@@ -132,14 +136,14 @@ class Database(object):
yamlpath = configdir
db = {}
with open(os.path.join(yamlpath, "confs_by_driver.yaml")) as f:
- cf = yaml.load(f.read())
+ cf = yaml.load(f.read(), Loader = Loader)
db['lircd_by_driver'] = cf['lircd_by_driver'].copy()
db['lircmd_by_driver'] = cf['lircmd_by_driver'].copy()
db['kernel-drivers'] = _load_kerneldrivers(configdir)
db['drivers'] = db['kernel-drivers'].copy()
with open(os.path.join(yamlpath, "drivers.yaml")) as f:
- cf = yaml.load(f.read())
+ cf = yaml.load(f.read(), Loader = Loader)
db['drivers'].update(cf['drivers'].copy())
for key, d in db['drivers'].items():
d['id'] = key
@@ -158,7 +162,7 @@ class Database(object):
configs = {}
for path in glob.glob(configdir + '/*.conf'):
with open(path) as f:
- cf = yaml.load(f.read())
+ cf = yaml.load(f.read(), Loader = Loader)
configs[cf['config']['id']] = cf['config']
db['configs'] = configs
self.db = db
diff --git a/tools/check_configs.py b/tools/check_configs.py
index 1e0d831b..5e458de7 100755
--- a/tools/check_configs.py
+++ b/tools/check_configs.py
@@ -4,6 +4,10 @@
import glob
import yaml
+try:
+ from yaml import CLoader as Loader, CDumper as Dumper
+except ImportError:
+ from yaml import Loader, Dumper
def main():
configs = {}
--
2.34.1

View File

@ -0,0 +1,91 @@
From e7c9a6cae09d99388d8384ca7c0fb5b24b353975 Mon Sep 17 00:00:00 2001
From: Nikita Popov <npopov@redhat.com>
Date: Mon, 17 Jan 2022 15:48:01 +0100
Subject: [PATCH] [SDAG] Don't move DBG_VALUE instructions after insertion
point during scheduling (PR53243)
EmitSchedule() shouldn't be touching instructions after the provided
insertion point. The change introduced in D83561 performs a scan to
the end of the block, and thus may move unrelated instructions. In
particular, this ends up moving instructions that have been produced
by FastISel and will later be deleted. Moving them means that more
instructions than intended are removed.
Fix this by stopping the iteration when the insertion point is
reached.
Fixes https://github.com/llvm/llvm-project/issues/53243.
Differential Revision: https://reviews.llvm.org/D117489
---
.../SelectionDAG/ScheduleDAGSDNodes.cpp | 7 ++--
.../CodeGen/X86/pr53243-tail-call-fastisel.ll | 39 +++++++++++++++++++
2 files changed, 43 insertions(+), 3 deletions(-)
create mode 100644 llvm/test/CodeGen/X86/pr53243-tail-call-fastisel.ll
diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
index bec240d6c4d4..403f34573899 100644
--- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
@@ -1057,12 +1057,13 @@ EmitSchedule(MachineBasicBlock::iterator &InsertPos) {
"first terminator cannot be a debug value");
for (MachineInstr &MI : make_early_inc_range(
make_range(std::next(FirstTerm), InsertBB->end()))) {
+ // Only scan up to insertion point.
+ if (&MI == InsertPos)
+ break;
+
if (!MI.isDebugValue())
continue;
- if (&MI == InsertPos)
- InsertPos = std::prev(InsertPos->getIterator());
-
// The DBG_VALUE was referencing a value produced by a terminator. By
// moving the DBG_VALUE, the referenced value also needs invalidating.
MI.getOperand(0).ChangeToRegister(0, false);
diff --git a/llvm/test/CodeGen/X86/pr53243-tail-call-fastisel.ll b/llvm/test/CodeGen/X86/pr53243-tail-call-fastisel.ll
new file mode 100644
index 000000000000..333eff8fb008
--- /dev/null
+++ b/llvm/test/CodeGen/X86/pr53243-tail-call-fastisel.ll
@@ -0,0 +1,39 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc -O0 -fast-isel -mtriple=x86_64-- < %s | FileCheck %s
+
+define void @test() {
+; CHECK-LABEL: test:
+; CHECK: # %bb.0:
+; CHECK-NEXT: jmp set_state@PLT # TAILCALL
+ tail call void @set_state()
+ call void @llvm.dbg.value(metadata i64 0, metadata !10, metadata !DIExpression()), !dbg !16
+ ret void
+}
+
+declare void @set_state()
+
+; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
+declare void @llvm.dbg.value(metadata, metadata, metadata) #0
+
+attributes #0 = { nofree nosync nounwind readnone speculatable willreturn }
+
+!llvm.module.flags = !{!0}
+!llvm.dbg.cu = !{!1}
+
+!0 = !{i32 2, !"Debug Info Version", i32 3}
+!1 = distinct !DICompileUnit(language: DW_LANG_Rust, file: !2, producer: "clang LLVM (rustc version 1.60.0-nightly (ec4bcaac4 2022-01-15))", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !3)
+!2 = !DIFile(filename: "src/lib.rs/@/bug.63e521cd-cgu.0", directory: "/tmp/rust-bug")
+!3 = !{!4}
+!4 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "Option", file: !5, baseType: !6, size: 8, align: 8, flags: DIFlagEnumClass, elements: !7)
+!5 = !DIFile(filename: "<unknown>", directory: "")
+!6 = !DIBasicType(name: "u8", size: 8, encoding: DW_ATE_unsigned)
+!7 = !{!8, !9}
+!8 = !DIEnumerator(name: "None", value: 0)
+!9 = !DIEnumerator(name: "Some", value: 1)
+!10 = !DILocalVariable(name: "msg", arg: 2, scope: !11, file: !12, line: 689, type: !6)
+!11 = distinct !DISubprogram(name: "expect<()>", linkageName: "_ZN4core6option15Option$LT$T$GT$6expect17h9a574c18f194c213E", scope: !4, file: !12, line: 689, type: !13, scopeLine: 689, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !1, templateParams: !15, retainedNodes: !15)
+!12 = !DIFile(filename: "/rustc/ec4bcaac450279b029f3480b8b8f1b82ab36a5eb/library/core/src/option.rs", directory: "", checksumkind: CSK_MD5, checksum: "4120c8557937a0772190a676ec193800")
+!13 = !DISubroutineType(types: !14)
+!14 = !{null, !4}
+!15 = !{}
+!16 = !DILocation(line: 0, scope: !11)

View File

@ -0,0 +1,6 @@
post_upgrade() {
if [ "`vercmp $2 8.4.0-5`" -lt 0 ]; then
echo ">>> glxinfo, eglinfo and glxgears are now part of"
echo ">>> the new \"mesa-utils\" package."
fi
}

View File

@ -4,7 +4,7 @@
pkgname=monero
pkgver=0.17.3.0
_commit=ab18fea3500841fc312630d49ed6840b3aedb34d
pkgrel=3
pkgrel=4
pkgdesc="Monero: the secure, private, untraceable peer-to-peer currency"
license=('BSD')
arch=(x86_64 powerpc64le powerpc)

View File

@ -8,7 +8,7 @@
pkgbase=networkmanager
pkgname=(networkmanager libnm nm-cloud-setup)
pkgver=1.36.2
pkgver=1.36.4
pkgrel=1
pkgdesc="Network connection manager and user applications"
url="https://networkmanager.dev/"
@ -21,7 +21,8 @@ makedepends=(intltool dhclient dhcpcd iptables-nft gobject-introspection gtk-doc
python-gobject git vala jansson bluez-libs glib2-docs iwd dnsmasq
openresolv libpsl audit meson)
checkdepends=(libx11 python-dbus)
_commit=ae06ec5207cec126ca767020238c32598b8bfc5d # tags/1.36.2^0
options=(debug)
_commit=4e8e5bdfc2ab6b51b9f8626512089a1f0c94cce6 # tags/1.36.4^0
source=("git+https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git#commit=$_commit")
b2sums=('SKIP')
@ -69,6 +70,13 @@ build() {
-D qt=false
)
# drastically reduce build-time on slow systems
if [ check_option check n ]; then
echo ":: Checks disabled"
meson_options+=(-D tests=no)
exit 1
fi
arch-meson NetworkManager build "${meson_options[@]}"
meson compile -C build
}

View File

@ -0,0 +1,249 @@
From 86379195b835eae2dee93bcbcad47028ba440560 Mon Sep 17 00:00:00 2001
From: "Carsten Haitzler (Rasterman)" <raster@rasterman.com>
Date: Sat, 22 May 2021 16:30:33 +0100
Subject: [PATCH 1/1] build - fix overall sysconfdir handling so it can work
out of the box
sysconfdir is "etc" by default in meson, this means paths are like
"etc/PackageKit/xxxx" ... which is not a path. missing a / to begin
with. not to mention packagekit installs its own etc files in prefix/etc
(eg /usr/local/etc) by default. so differentiate files installed by
pkgkit (pk_sysconfdir)) and other system files (sysconfdir) and use
approplriately in the build. if the default etc is used then fix it to be
/etc for system and prefix/etc for pk installed files. at least things can
work out of the box then when you ninja install and dont provide a
custom sysconfidr on the cmdline.
---
backends/alpm/meson.build | 8 ++++----
backends/aptcc/meson.build | 2 +-
backends/slack/meson.build | 5 +++--
backends/slack/pk-backend-slack.cc | 2 +-
backends/slack/tests/meson.build | 3 ++-
contrib/command-not-found/meson.build | 7 ++++---
contrib/command-not-found/pk-command-not-found.c | 2 +-
contrib/cron/meson.build | 4 ++--
data/meson.build | 2 +-
etc/meson.build | 2 +-
meson.build | 10 +++++++++-
src/meson.build | 3 ++-
src/pk-shared.c | 2 +-
13 files changed, 32 insertions(+), 20 deletions(-)
diff --git a/backends/alpm/meson.build b/backends/alpm/meson.build
index eb4d5b373..fc7972128 100644
--- a/backends/alpm/meson.build
+++ b/backends/alpm/meson.build
@@ -34,9 +34,9 @@ shared_module(
c_args: [
'-DPK_LOG_PREFIX="PACKAGEKIT"',
'-DG_LOG_DOMAIN="PackageKit-alpm"',
- '-DPK_BACKEND_CONFIG_FILE="@0@"'.format(join_paths(get_option('sysconfdir'), 'PackageKit', 'alpm.d', 'pacman.conf')),
- '-DPK_BACKEND_GROUP_FILE="@0@"'.format(join_paths(get_option('sysconfdir'), 'PackageKit', 'alpm.d', 'groups.list')),
- '-DPK_BACKEND_REPO_FILE="@0@"'.format(join_paths(get_option('sysconfdir'), 'PackageKit', 'alpm.d', 'repos.list')),
+ '-DPK_BACKEND_CONFIG_FILE="@0@"'.format(join_paths(pk_sysconfdir, 'PackageKit', 'alpm.d', 'pacman.conf')),
+ '-DPK_BACKEND_GROUP_FILE="@0@"'.format(join_paths(pk_sysconfdir, 'PackageKit', 'alpm.d', 'groups.list')),
+ '-DPK_BACKEND_REPO_FILE="@0@"'.format(join_paths(pk_sysconfdir, 'PackageKit', 'alpm.d', 'repos.list')),
'-DPK_BACKEND_DEFAULT_PATH="/bin:/usr/bin:/sbin:/usr/sbin"',
],
install: true,
@@ -52,5 +52,5 @@ install_data(
'groups.list',
'pacman.conf',
'repos.list',
- install_dir: join_paths(get_option('sysconfdir'), 'PackageKit', 'alpm.d')
+ install_dir: join_paths(pk_sysconfdir, 'PackageKit', 'alpm.d')
)
diff --git a/backends/aptcc/meson.build b/backends/aptcc/meson.build
index 5df8f29e2..b29af882b 100644
--- a/backends/aptcc/meson.build
+++ b/backends/aptcc/meson.build
@@ -75,7 +75,7 @@ shared_module(
install_data(
'20packagekit',
- install_dir: join_paths(get_option('sysconfdir'), 'apt', 'apt.conf.d'),
+ install_dir: join_paths(sysconfdir, 'apt', 'apt.conf.d'),
)
install_data(
diff --git a/backends/slack/meson.build b/backends/slack/meson.build
index f44eea193..c6fdee49f 100644
--- a/backends/slack/meson.build
+++ b/backends/slack/meson.build
@@ -24,7 +24,8 @@ packagekit_backend_slack_module = shared_module(
'-DPK_COMPILATION=1',
'-DLOCALSTATEDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('localstatedir'))),
'-DLIBDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('libdir'))),
- '-DSYSCONFDIR="@0@"'.format(get_option('sysconfdir')),
+ '-DSYSCONFDIR="@0@"'.format(sysconfdir),
+ '-DPK_SYSCONFDIR="@0@"'.format(pk_sysconfdir),
],
override_options: ['c_std=c14', 'cpp_std=c++14'],
install: true,
@@ -45,7 +46,7 @@ configure_file(
output: 'Slackware.conf',
configuration: slackware_config_data,
install: true,
- install_dir: join_paths(get_option('sysconfdir'), 'PackageKit'),
+ install_dir: join_paths(sysconfdir, 'PackageKit'),
)
install_data(
diff --git a/backends/slack/pk-backend-slack.cc b/backends/slack/pk-backend-slack.cc
index 46e233d9a..4dbce8a50 100644
--- a/backends/slack/pk-backend-slack.cc
+++ b/backends/slack/pk-backend-slack.cc
@@ -44,7 +44,7 @@ void pk_backend_initialize(GKeyFile *conf, PkBackend *backend)
/* Read the configuration file */
key_conf = g_key_file_new();
- path = g_build_filename(SYSCONFDIR, "PackageKit", "Slackware.conf", NULL);
+ path = g_build_filename(PK_SYSCONFDIR, "PackageKit", "Slackware.conf", NULL);
g_key_file_load_from_file(key_conf, path, G_KEY_FILE_NONE, &err);
if (err)
{
diff --git a/backends/slack/tests/meson.build b/backends/slack/tests/meson.build
index c5235227c..49e6161e1 100644
--- a/backends/slack/tests/meson.build
+++ b/backends/slack/tests/meson.build
@@ -13,7 +13,8 @@ pk_slack_test_cpp_args = [
'-DPK_COMPILATION=1',
'-DLOCALSTATEDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('localstatedir'))),
'-DLIBDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('libdir'))),
- '-DSYSCONFDIR="@0@"'.format(get_option('sysconfdir')),
+ '-DSYSCONFDIR="@0@"'.format(sysconfdir),
+ '-DPK_SYSCONFDIR="@0@"'.format(pk_sysconfdir),
'-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()),
'-DLIBEXECDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('libexecdir'))),
'-DPK_DB_DIR="."',
diff --git a/contrib/command-not-found/meson.build b/contrib/command-not-found/meson.build
index c1fba7a95..b1f0e88d8 100644
--- a/contrib/command-not-found/meson.build
+++ b/contrib/command-not-found/meson.build
@@ -8,7 +8,8 @@ executable(
'-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()),
'-DG_LOG_DOMAIN="PackageKit"',
'-DPACKAGE_LOCALE_DIR="@0@"'.format(join_paths(get_option('prefix'), get_option('localedir'))),
- '-DSYSCONFDIR="@0@"'.format(get_option('sysconfdir')),
+ '-DSYSCONFDIR="@0@"'.format(sysconfdir),
+ '-DPK_SYSCONFDIR="@0@"'.format(pk_sysconfdir),
]
)
@@ -19,10 +20,10 @@ configure_file(
output: 'PackageKit.sh',
configuration: bashprofile_config_data,
install: true,
- install_dir: join_paths(get_option('sysconfdir'), 'profile.d'),
+ install_dir: join_paths(sysconfdir, 'profile.d'),
)
install_data(
'CommandNotFound.conf',
- install_dir: join_paths(get_option('sysconfdir'), 'PackageKit'),
+ install_dir: join_paths(pk_sysconfdir, 'PackageKit'),
)
diff --git a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c
index 8bedb081c..f7c5005b7 100644
--- a/contrib/command-not-found/pk-command-not-found.c
+++ b/contrib/command-not-found/pk-command-not-found.c
@@ -591,7 +591,7 @@ pk_cnf_get_config (void)
/* load file */
file = g_key_file_new ();
- path = g_build_filename (SYSCONFDIR, "PackageKit", "CommandNotFound.conf", NULL);
+ path = g_build_filename (PK_SYSCONFDIR, "PackageKit", "CommandNotFound.conf", NULL);
ret = g_key_file_load_from_file (file, path, G_KEY_FILE_NONE, &error);
if (!ret) {
g_printerr ("failed to load config file: %s\n", error->message);
diff --git a/contrib/cron/meson.build b/contrib/cron/meson.build
index bff5eec27..5c1926e4b 100644
--- a/contrib/cron/meson.build
+++ b/contrib/cron/meson.build
@@ -1,9 +1,9 @@
install_data(
'packagekit-background.cron',
- install_dir: join_paths(get_option('sysconfdir'), 'cron.daily')
+ install_dir: join_paths(sysconfdir, 'cron.daily')
)
install_data(
'packagekit-background',
- install_dir: join_paths(get_option('sysconfdir'), 'sysconfig')
+ install_dir: join_paths(sysconfdir, 'sysconfig')
)
diff --git a/data/meson.build b/data/meson.build
index a953f6280..11d115204 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -9,7 +9,7 @@ dbus_config_data.set('libexecdir', join_paths(get_option('prefix'), get_option('
dbus_sys_dir = get_option('dbus_sys')
if dbus_sys_dir == ''
- dbus_sys_dir = join_paths(get_option('sysconfdir'), 'dbus-1', 'system.d')
+ dbus_sys_dir = join_paths(sysconfdir, 'dbus-1', 'system.d')
endif
configure_file(
diff --git a/etc/meson.build b/etc/meson.build
index d3687f820..5094d93b3 100644
--- a/etc/meson.build
+++ b/etc/meson.build
@@ -1,5 +1,5 @@
install_data(
'PackageKit.conf',
'Vendor.conf',
- install_dir: join_paths(get_option('sysconfdir'), 'PackageKit')
+ install_dir: join_paths(pk_sysconfdir, 'PackageKit')
)
diff --git a/meson.build b/meson.build
index 98587c6ec..8eba1544f 100644
--- a/meson.build
+++ b/meson.build
@@ -73,7 +73,15 @@ add_project_arguments ('-DPK_COMPILATION', language: 'c')
conf = configuration_data()
conf.set_quoted('DATADIR', join_paths(get_option('prefix'), get_option('datadir')))
conf.set_quoted('LIBDIR', join_paths(get_option('prefix'), get_option('libdir')))
-conf.set_quoted('SYSCONFDIR', get_option('sysconfdir'))
+if get_option('sysconfdir') == 'etc'
+ pk_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir'))
+ sysconfdir = '/etc'
+else
+ pk_sysconfdir = get_option('sysconfdir')
+ sysconfdir = get_option('sysconfdir')
+endif
+conf.set_quoted('SYSCONFDIR', sysconfdir)
+conf.set_quoted('PK_SYSCONFDIR', pk_sysconfdir)
conf.set_quoted('PROJECT_NAME', meson.project_name())
conf.set_quoted('PROJECT_VERSION', meson.project_version())
diff --git a/src/meson.build b/src/meson.build
index cae73380e..505e9491d 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -54,7 +54,8 @@ packagekit_direct_exec = executable(
c_args: [
'-DG_LOG_DOMAIN="PackageKit"',
'-DLIBDIR="@0@"'.format(join_paths(get_option('prefix'), get_option('libdir'))),
- '-DSYSCONFDIR="@0@"'.format(get_option('sysconfdir')),
+ '-DSYSCONFDIR="@0@"'.format(sysconfdir),
+ '-DPK_SYSCONFDIR="@0@"'.format(pk_sysconfdir),
'-DVERSION="@0@"'.format(meson.project_version()),
'-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()),
'-DPACKAGE_LOCALE_DIR="@0@"'.format(package_locale_dir),
diff --git a/src/pk-shared.c b/src/pk-shared.c
index ca825dee9..a9fc623f4 100644
--- a/src/pk-shared.c
+++ b/src/pk-shared.c
@@ -326,7 +326,7 @@ pk_util_get_config_filename (void)
g_free (path);
#endif
/* check the prefix path */
- path = g_build_filename (SYSCONFDIR, "PackageKit", "PackageKit.conf", NULL);
+ path = g_build_filename (PK_SYSCONFDIR, "PackageKit", "PackageKit.conf", NULL);
if (g_file_test (path, G_FILE_TEST_EXISTS))
goto out;
--
2.35.1

View File

@ -6,7 +6,7 @@
pkgbase=qca
pkgname=(qca-qt5 qca-qt6)
pkgver=2.3.4
pkgrel=1
pkgrel=3
pkgdesc='Qt Cryptographic Architecture'
arch=(x86_64 powerpc64le powerpc riscv64)
url='https://userbase.kde.org/QCA'
@ -17,6 +17,7 @@ source=(https://download.kde.org/stable/$pkgbase/$pkgver/$pkgbase-$pkgver.tar.xz
sha256sums=('6b695881a7e3fd95f73aaee6eaeab96f6ad17e515e9c2b3d4b3272d7862ff5c4'
'SKIP')
validpgpkeys=(CB9387521E1EE0127DA804843FDBB55084CC5D84) # Harald Sitter <sitter@kde.org>
options=(debug)
build() {
cmake -B build-qt5 -S $pkgbase-$pkgver \

View File

@ -14,8 +14,8 @@ pkgname=(
)
[ "${CARCH}" != 'powerpc' ] && pkgname+=(qemu-block-rbd)
pkgdesc="A generic and open source machine emulator and virtualizer"
pkgver=6.2.0
pkgrel=4
pkgver=7.0.0
pkgrel=1
arch=(x86_64 powerpc64le powerpc riscv64)
license=(GPL2 LGPL2.1)
url="https://wiki.qemu.org/"
@ -83,12 +83,10 @@ makedepends_powerpc64le=(ceph)
makedepends_x86_64=(ceph)
options=(debug)
source=(https://download.qemu.org/qemu-$pkgver.tar.xz{,.sig}
virtiofsd-glibc235.patch::https://github.com/qemu/qemu/commit/7b223e38603de3a75602e14914d26f9d4baf52eb.patch
qemu-guest-agent.service
65-kvm.rules)
sha512sums=('e9f8231c9e1cfcc41cb47f10a55d63f6b8aee307af00cf6acf64acb7aa4f49fa7e9d6330703a2abea15d8b7bbaba7d3cb08c83edd98d82642367b527df730817'
'SKIP'
'3b8b1e346d02516195c8ba4a1e88a2f0d69639b75cdd5e57185db624ba514f49b6d373a7fb2ec77133fb75cd43a11ce0e96b7a948ec9fc7140ae7ef26c203cb6'
'269c0f0bacbd06a3d817fde02dce26c99d9f55c9e3b74bb710bd7e5cdde7a66b904d2eb794c8a605bf9305e4e3dee261a6e7d4ec9d9134144754914039f176e4'
'bdf05f99407491e27a03aaf845b7cc8acfa2e0e59968236f10ffc905e5e3d5e8569df496fd71c887da2b5b8d1902494520c7da2d3a8258f7fd93a881dd610c99')
validpgpkeys=('CEACC9E15534EBABB82D3FA03353C9CEF108B584') # Michael Roth <flukshun@gmail.com>
@ -104,9 +102,6 @@ esac
prepare() {
mkdir build-{full,headless}
mkdir -p extra-arch-{full,headless}/usr/{bin,share/qemu}
cd ${pkgname}-${pkgver}
patch -p1 < ../virtiofsd-glibc235.patch # FS#73856
}
build() {
@ -138,7 +133,6 @@ _build() (
--enable-modules \
--enable-sdl \
--enable-slirp=system \
--enable-xfsctl \
"${@:2}"
ninja
@ -440,3 +434,7 @@ package_qemu-guest-agent() {
}
# vim:set ts=2 sw=2 et:
sha512sums=('44ecd10c018a3763e1bc87d1d35b98890d0d5636acd69fe9b5cadf5024d5af6a31684d60cbe1c3370e02986434c1fb0ad99224e0e6f6fe7eda169992508157b1'
'SKIP'
'269c0f0bacbd06a3d817fde02dce26c99d9f55c9e3b74bb710bd7e5cdde7a66b904d2eb794c8a605bf9305e4e3dee261a6e7d4ec9d9134144754914039f176e4'
'bdf05f99407491e27a03aaf845b7cc8acfa2e0e59968236f10ffc905e5e3d5e8569df496fd71c887da2b5b8d1902494520c7da2d3a8258f7fd93a881dd610c99')

View File

@ -1,9 +1,10 @@
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
pkgbase=linux-visionfive
pkgver=5.17.0.rc8
pkgver=5.17
pkgrel=1
epoch=1
pkgdesc='Linux kernel for the StarFive VisionFive V1'
_commit="ab93b1bae004d1d7f4c795e15ea6ed6478d2789c"
_commit="243ce759ed5821edf38bf93ce7325e232b805547"
url="https://git.archlinux.org/linux.git/log/?h=$_srctag"
arch=(any)
license=(GPL2)
@ -23,14 +24,13 @@ validpgpkeys=(
'C7E7849466FE2358343588377258734B41C31549' # David Runge <dvzrv@archlinux.org>
)
sha256sums=('SKIP'
'48b0e9c91d475073d6884a2390ecf7dcdb36393e3af79887235fc09fe325b5f5')
'011ade0cbc4303fc669aee384a559d3f5d62b13f6dfdb9aa9508fe188fe133c0')
export KBUILD_BUILD_HOST=archpower
export KBUILD_BUILD_USER=$pkgbase
export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
export MYARCH="riscv"
export CFLAGS="-O2 -pipe"
prepare() {
cd $pkgbase

View File

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/riscv 5.17.0-rc8 Kernel Configuration
# Linux/riscv 5.17.0 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (Arch POWER) 11.2.0"
CONFIG_CC_IS_GCC=y
@ -1307,6 +1307,7 @@ CONFIG_HAVE_PCI=y
#
# Generic Driver Options
#
CONFIG_AUXILIARY_BUS=y
# CONFIG_UEVENT_HELPER is not set
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
@ -2524,6 +2525,7 @@ CONFIG_POWER_SUPPLY_HWMON=y
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_MAX77976 is not set
# CONFIG_CHARGER_BQ2415X is not set
# CONFIG_CHARGER_BQ24190 is not set
# CONFIG_CHARGER_BQ24257 is not set
# CONFIG_CHARGER_BQ24735 is not set
# CONFIG_CHARGER_BQ2515X is not set
@ -3189,7 +3191,6 @@ CONFIG_VIDEO_CX25840=m
# CONFIG_VIDEO_ADV7175 is not set
# CONFIG_VIDEO_ADV7343 is not set
# CONFIG_VIDEO_ADV7393 is not set
# CONFIG_VIDEO_ADV7511 is not set
# CONFIG_VIDEO_AD9389B is not set
# CONFIG_VIDEO_AK881X is not set
# CONFIG_VIDEO_THS8200 is not set
@ -3536,7 +3537,9 @@ CONFIG_DVB_SP2=m
# Graphics support
#
CONFIG_DRM=y
CONFIG_DRM_MIPI_DBI=m
CONFIG_DRM_MIPI_DSI=y
CONFIG_DRM_DP_AUX_BUS=m
# CONFIG_DRM_DP_AUX_CHARDEV is not set
# CONFIG_DRM_DEBUG_MM is not set
# CONFIG_DRM_DEBUG_SELFTEST is not set
@ -3549,6 +3552,7 @@ CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_DP_CEC=y
CONFIG_DRM_GEM_CMA_HELPER=y
CONFIG_DRM_GEM_SHMEM_HELPER=m
#
# I2C encoder or helper chips
@ -3577,21 +3581,71 @@ CONFIG_DRM_PANEL=y
#
# Display Panels
#
# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set
# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set
# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set
CONFIG_DRM_PANEL_ABT_Y030XX067A=m
CONFIG_DRM_PANEL_ARM_VERSATILE=m
# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set
# CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0 is not set
# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set
# CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set
# CONFIG_DRM_PANEL_DSI_CM is not set
# CONFIG_DRM_PANEL_LVDS is not set
# CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set
# CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set
# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
CONFIG_DRM_PANEL_ILITEK_IL9322=m
# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
CONFIG_DRM_PANEL_INNOLUX_EJ030NA=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_JDI_R63452 is not set
# CONFIG_DRM_PANEL_KHADAS_TS050 is not set
# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set
# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set
CONFIG_DRM_PANEL_SAMSUNG_LD9040=m
CONFIG_DRM_PANEL_LG_LB035Q02=m
CONFIG_DRM_PANEL_LG_LG4573=m
CONFIG_DRM_PANEL_NEC_NL8048HL11=m
# CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set
# CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set
# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set
# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
# CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set
CONFIG_DRM_PANEL_SAMSUNG_S6D16D0=m
CONFIG_DRM_PANEL_SAMSUNG_S6D27A1=m
# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
# CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set
# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SHARP_LS060T1SX01 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
# CONFIG_DRM_PANEL_SONY_ACX424AKP is not set
# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
# CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521 is not set
# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set
# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
# CONFIG_DRM_PANEL_TPO_TPG110 is not set
CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
CONFIG_DRM_PANEL_VISIONOX_RM69299=m
# CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set
# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set
# end of Display Panels
CONFIG_DRM_BRIDGE=y
@ -3600,46 +3654,49 @@ CONFIG_DRM_PANEL_BRIDGE=y
#
# Display Interface Bridges
#
# CONFIG_DRM_CDNS_DSI is not set
# CONFIG_DRM_CHIPONE_ICN6211 is not set
# CONFIG_DRM_CHRONTEL_CH7033 is not set
# CONFIG_DRM_DISPLAY_CONNECTOR is not set
# CONFIG_DRM_LONTIUM_LT8912B is not set
# CONFIG_DRM_LONTIUM_LT9611 is not set
# CONFIG_DRM_LONTIUM_LT9611UXC is not set
# CONFIG_DRM_ITE_IT66121 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
# CONFIG_DRM_NWL_MIPI_DSI is not set
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PARADE_PS8622 is not set
# CONFIG_DRM_PARADE_PS8640 is not set
# CONFIG_DRM_SIL_SII8620 is not set
# CONFIG_DRM_SII902X is not set
# CONFIG_DRM_SII9234 is not set
# CONFIG_DRM_SIMPLE_BRIDGE is not set
# CONFIG_DRM_THINE_THC63LVD1024 is not set
# CONFIG_DRM_TOSHIBA_TC358762 is not set
# CONFIG_DRM_TOSHIBA_TC358764 is not set
# CONFIG_DRM_TOSHIBA_TC358767 is not set
# CONFIG_DRM_TOSHIBA_TC358768 is not set
# CONFIG_DRM_TOSHIBA_TC358775 is not set
# CONFIG_DRM_TI_TFP410 is not set
# CONFIG_DRM_TI_SN65DSI83 is not set
# CONFIG_DRM_TI_SN65DSI86 is not set
# CONFIG_DRM_TI_TPD12S015 is not set
# CONFIG_DRM_ANALOGIX_ANX6345 is not set
# CONFIG_DRM_ANALOGIX_ANX78XX is not set
# CONFIG_DRM_ANALOGIX_ANX7625 is not set
# CONFIG_DRM_I2C_ADV7511 is not set
# CONFIG_DRM_CDNS_MHDP8546 is not set
CONFIG_DRM_CDNS_DSI=m
CONFIG_DRM_CHIPONE_ICN6211=m
CONFIG_DRM_CHRONTEL_CH7033=m
CONFIG_DRM_DISPLAY_CONNECTOR=m
CONFIG_DRM_LONTIUM_LT8912B=m
CONFIG_DRM_LONTIUM_LT9611=m
CONFIG_DRM_LONTIUM_LT9611UXC=m
CONFIG_DRM_ITE_IT66121=m
CONFIG_DRM_LVDS_CODEC=m
CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW=m
CONFIG_DRM_NWL_MIPI_DSI=m
CONFIG_DRM_NXP_PTN3460=m
CONFIG_DRM_PARADE_PS8622=m
CONFIG_DRM_PARADE_PS8640=m
CONFIG_DRM_SIL_SII8620=m
CONFIG_DRM_SII902X=m
CONFIG_DRM_SII9234=m
CONFIG_DRM_SIMPLE_BRIDGE=m
CONFIG_DRM_THINE_THC63LVD1024=m
CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
CONFIG_DRM_TOSHIBA_TC358767=m
CONFIG_DRM_TOSHIBA_TC358768=m
CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_SN65DSI83=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TPD12S015=m
CONFIG_DRM_ANALOGIX_ANX6345=m
CONFIG_DRM_ANALOGIX_ANX78XX=m
CONFIG_DRM_ANALOGIX_DP=m
CONFIG_DRM_ANALOGIX_ANX7625=m
CONFIG_DRM_I2C_ADV7511=m
CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_I2C_ADV7511_CEC=y
CONFIG_DRM_CDNS_MHDP8546=m
# end of Display Interface Bridges
# CONFIG_DRM_ETNAVIV is not set
# CONFIG_DRM_MXSFB is not set
# CONFIG_DRM_ARCPGU is not set
# CONFIG_DRM_GM12U320 is not set
# CONFIG_DRM_SIMPLEDRM is not set
CONFIG_DRM_GM12U320=m
CONFIG_DRM_SIMPLEDRM=m
# CONFIG_TINYDRM_HX8357D is not set
# CONFIG_TINYDRM_ILI9163 is not set
# CONFIG_TINYDRM_ILI9225 is not set
@ -3677,7 +3734,7 @@ CONFIG_FB_TILEBLITTING=y
# Frame buffer hardware drivers
#
# CONFIG_FB_UVESA is not set
# CONFIG_FB_EFI is not set
CONFIG_FB_EFI=y
# CONFIG_FB_OPENCORES is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_SMSCUFX is not set
@ -3685,17 +3742,43 @@ CONFIG_FB_UDL=m
# CONFIG_FB_IBM_GXT4500 is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_SIMPLE is not set
CONFIG_FB_SIMPLE=m
# CONFIG_FB_SSD1307 is not set
# end of Frame buffer Devices
#
# Backlight & LCD device support
#
# CONFIG_LCD_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_LCD_L4F00242T03=m
CONFIG_LCD_LMS283GF05=m
CONFIG_LCD_LTV350QV=m
CONFIG_LCD_ILI922X=m
CONFIG_LCD_ILI9320=m
CONFIG_LCD_TDO24M=m
CONFIG_LCD_VGG2432A4=m
CONFIG_LCD_PLATFORM=m
CONFIG_LCD_AMS369FG06=m
CONFIG_LCD_LMS501KF03=m
CONFIG_LCD_HX8357=m
CONFIG_LCD_OTM3225A=m
CONFIG_BACKLIGHT_CLASS_DEVICE=m
CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_QCOM_WLED=m
CONFIG_BACKLIGHT_ADP8860=m
CONFIG_BACKLIGHT_ADP8870=m
CONFIG_BACKLIGHT_LM3630A=m
CONFIG_BACKLIGHT_LM3639=m
CONFIG_BACKLIGHT_LP855X=m
CONFIG_BACKLIGHT_GPIO=m
CONFIG_BACKLIGHT_LV5207LP=m
CONFIG_BACKLIGHT_BD6107=m
CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_BACKLIGHT_LED=m
# end of Backlight & LCD device support
CONFIG_VIDEOMODE_HELPERS=y
CONFIG_HDMI=y
#
@ -4074,6 +4157,8 @@ CONFIG_HID_PENMOUNT=m
CONFIG_HID_PETALYNX=m
CONFIG_HID_PICOLCD=m
CONFIG_HID_PICOLCD_FB=y
# CONFIG_HID_PICOLCD_BACKLIGHT is not set
# CONFIG_HID_PICOLCD_LCD is not set
CONFIG_HID_PICOLCD_LEDS=y
CONFIG_HID_PLANTRONICS=m
CONFIG_HID_PRIMAX=m
@ -4559,7 +4644,19 @@ CONFIG_SIFIVE_L2_IRQ_DISABLE=y
# end of SOC (System On Chip) specific Drivers
# CONFIG_PM_DEVFREQ is not set
# CONFIG_EXTCON is not set
CONFIG_EXTCON=m
#
# Extcon Device Drivers
#
# CONFIG_EXTCON_FSA9480 is not set
# CONFIG_EXTCON_GPIO is not set
# CONFIG_EXTCON_MAX3355 is not set
# CONFIG_EXTCON_PTN5150 is not set
# CONFIG_EXTCON_RT8973A is not set
# CONFIG_EXTCON_SM5502 is not set
# CONFIG_EXTCON_USB_GPIO is not set
# CONFIG_EXTCON_USBC_TUSB320 is not set
# CONFIG_MEMORY is not set
# CONFIG_IIO is not set
CONFIG_PWM=y
@ -4590,6 +4687,7 @@ CONFIG_RESET_STARFIVE_JH7100_AUDIO=y
# PHY Subsystem
#
# CONFIG_GENERIC_PHY is not set
CONFIG_GENERIC_PHY_MIPI_DPHY=y
# CONFIG_PHY_CAN_TRANSCEIVER is not set
#

View File

@ -8,10 +8,10 @@ Subject: [PATCH] bootstrap: Change libexec dir
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
index d4875cfe1b06..798c45506373 100644
index f5ae8103cb05..a41a80a6c359 100644
--- a/src/bootstrap/dist.rs
+++ b/src/bootstrap/dist.rs
@@ -1004,7 +1004,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
@@ -981,7 +981,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
for dirent in fs::read_dir(cargo.parent().unwrap()).expect("read_dir") {
let dirent = dirent.expect("read dir entry");
if dirent.file_name().to_str().expect("utf8").starts_with("cargo-credential-") {

View File

@ -24,10 +24,10 @@ targets, as things break when this is done:
4 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/compiler/rustc_session/src/config.rs b/compiler/rustc_session/src/config.rs
index fdedb7e6a4af..c12568e77d83 100644
index 7a0d9a212c9d..a53bd70b224a 100644
--- a/compiler/rustc_session/src/config.rs
+++ b/compiler/rustc_session/src/config.rs
@@ -1512,7 +1512,7 @@ pub fn parse_target_triple(
@@ -1741,7 +1741,7 @@ pub fn parse_target_triple(
early_error(error_format, &format!("target file {:?} does not exist", path))
})
}
@ -50,10 +50,10 @@ index 165505ee7313..00a7f5c2f8c1 100644
data_layout: "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-\
f64:32:64-f80:32-n8:16:32-S128"
diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs
index 273221360b8b..4bbfad8441f3 100644
index 92678aed5b1a..52714d175dcc 100644
--- a/compiler/rustc_target/src/spec/mod.rs
+++ b/compiler/rustc_target/src/spec/mod.rs
@@ -2296,6 +2296,15 @@ pub fn from_path(path: &Path) -> Result<Self, io::Error> {
@@ -2392,6 +2392,15 @@ pub fn from_path(path: &Path) -> Result<Self, io::Error> {
Ok(TargetTriple::TargetPath(canonicalized_path))
}
@ -70,11 +70,11 @@ index 273221360b8b..4bbfad8441f3 100644
///
/// If this target is a path, the file name (without extension) is returned.
diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs
index 085079e06e57..2dfa6a040b10 100644
index aefbb398286a..6d902647eeea 100644
--- a/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs
+++ b/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs
@@ -11,7 +11,7 @@ pub fn target() -> Target {
SanitizerSet::ADDRESS | SanitizerSet::LEAK | SanitizerSet::MEMORY | SanitizerSet::THREAD;
@@ -15,7 +15,7 @@ pub fn target() -> Target {
| SanitizerSet::THREAD;
Target {
- llvm_target: "x86_64-unknown-linux-gnu".to_string(),

View File

@ -9,7 +9,7 @@ We don't ship rust-lld.
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/compiler/rustc_target/src/spec/wasm_base.rs b/compiler/rustc_target/src/spec/wasm_base.rs
index 4c954a1e567c..f1d5fbf83748 100644
index 71aa279144bb..6ea5b5fa602c 100644
--- a/compiler/rustc_target/src/spec/wasm_base.rs
+++ b/compiler/rustc_target/src/spec/wasm_base.rs
@@ -99,8 +99,7 @@ pub fn options() -> TargetOptions {

View File

@ -1,52 +1,73 @@
# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Johannes Löthberg <johannes@kyriasis.com>
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Alexander F Rødseth <xyproto@archlinux.org>
# Contributor: Daniel Micay <danielmicay@gmail.com>
# Contributor: userwithuid <userwithuid@gmail.com>
pkgname=('rust' 'rust-docs')
pkgbase=rust
pkgname=(rust rust-wasm rust-src)
[ "${CARCH}" = 'x86_64' ] && pkgname+=(lib32-rust-libs rust-musl)
epoch=1
pkgver=1.59.0
pkgver=1.60.0
pkgrel=1
pkgdesc="Systems programming language focused on safety, speed and concurrency"
url=https://www.rust-lang.org/
arch=(x86_64 powerpc64le powerpc riscv64)
license=(MIT Apache)
options=(!emptydirs !strip !lto)
_llvm_ver=13.0.1
pkgdesc='Systems programming language focused on safety, speed and concurrency'
url='https://www.rust-lang.org/'
arch=(powerpc64le powerpc)
license=('MIT' 'Apache')
makedepends=("llvm=$_llvm_ver" 'libffi' 'perl' 'python'
'curl' 'cmake' 'ninja' 'rust')
makedepends_powerpc64le=('rust')
makedepends_x86_64=('rust')
checkdepends=('procps-ng' 'gdb')
options=('!emptydirs' '!strip')
depends=(gcc-libs llvm-libs curl libssh2 gcc)
makedepends=(rust "llvm=$_llvm_ver" libffi perl python cmake ninja wasi-libc lld)
makedepends_x86_64=(lib32-gcc-libs musl)
checkdepends=(procps-ng gdb)
source=(
"https://static.rust-lang.org/dist/rustc-$pkgver-src.tar.gz"{,.asc}
"https://github.com/llvm/llvm-project/releases/download/llvmorg-$_llvm_ver/compiler-rt-$_llvm_ver.src.tar.xz"{,.sig}
0001-bootstrap-Change-libexec-dir.patch
0001-cargo-Change-libexec-dir.patch
0001-bootstrap-Change-libexec-dir.patch
0002-compiler-Change-LLVM-targets.patch
0003-compiler-Use-wasm-ld-for-wasm-targets.patch
)
sha256sums=('a7c8eeaee85bfcef84c96b02b3171d1e6540d15179ff83dddd9eafba185f85f9'
sha256sums=('20ca826d1cf674daf8e22c4f8c4b9743af07973211c839b85839742314c838b7'
'SKIP'
'7b33955031f9a9c5d63077dedb0f99d77e4e7c996266952c1cec55626dca5dfc'
'SKIP'
'a2a8a7c6a5732f79cc92f81d3c8380589c4e2b9a996fb565bbefe42f66b62597'
'0f8cfbe0387dd62909fe9cb9523223ae1c2319494e2caf5fa4d0592198631b3e'
'977da945985dce4484ace8794cbc91241b1f3c27311c1a8b201231db6e1d19e5'
'fcf3c4442ba6a9e59415652ce8514428b2e37b80c5fe7d07fb44259ad37abafb')
validpgpkeys=('108F66205EAEB0AAA8DD5E1C85AB96E6FA1BE5FE' # Rust Language (Tag and Release Signing Key) <rust-key@rust-lang.org>
'474E22316ABF4785A88C6E8EA2C794A986419D8A' # Tom Stellard <tstellar@redhat.com>
'B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg <hans@chromium.org>
'7a69e38716957ff074c5f932a82bbea1d9a3713a3f39d9085977cdc8df336c43'
'2ef851be0562d13431c5c81df0161f92984e79845fe986182225f2dae58a9452'
'f8ea25693ba42c7e185aa8677218783fe0cd60a3370926cb6996ec898b43d691')
validpgpkeys=(108F66205EAEB0AAA8DD5E1C85AB96E6FA1BE5FE # Rust Language (Tag and Release Signing Key) <rust-key@rust-lang.org>
474E22316ABF4785A88C6E8EA2C794A986419D8A # Tom Stellard <tstellar@redhat.com>
B6C8F98282B944E3B0D5C2530FC3042E345AD05D) # Hans Wennborg <hans@chromium.org>
case "${CARCH}" in
powerpc64le)
_rust_target='powerpc64le-unknown-linux-gnu'
_config_targets='"powerpc64le-unknown-linux-gnu","wasm32-unknown-unknown","wasm32-wasi"'
_config_target_extras=''
;;
powerpc)
_rust_target='powerpc-unknown-linux-gnu'
_config_targets='"powerpc-unknown-linux-gnu","wasm32-unknown-unknown","wasm32-wasi"'
_config_target_extras=''
;;
riscv64)
_rust_target='riscv64gc-unknown-linux-gnu'
_config_targets='"riscv64gc-unknown-linux-gnu","wasm32-unknown-unknown","wasm32-wasi"'
_config_target_extras=''
;;
x86_64)
_rust_target="${CHOST}"
_config_targets='"x86_64-unknown-linux-gnu","i686-unknown-linux-gnu","x86_64-unknown-linux-musl","wasm32-unknown-unknown","wasm32-wasi"'
_config_target_extras='[target.x86_64-unknown-linux-musl]
sanitizers = false
musl-root = "/usr/lib/musl"'
;;
*) echo ":: Architecture is unsupported!"; return 1 ;;
esac
prepare() {
cd "rustc-$pkgver-src"
cd rustc-$pkgver-src
# Patch bootstrap and cargo so credential helpers
# are in /usr/lib instead of /usr/libexec
@ -59,16 +80,6 @@ prepare() {
# Use our wasm-ld
patch -Np1 -i ../0003-compiler-Use-wasm-ld-for-wasm-targets.patch
BOOTSTRAP_PATH="/usr/bin"
case "${CARCH}" in
powerpc)
BUILD_TOOLS='"cargo", "clippy", "rustfmt", "analysis", "src", "rust-demangler"'
;;
*)
BUILD_TOOLS='"cargo", "rls", "clippy", "rustfmt", "analysis", "src", "rust-demangler"'
;;
esac
cat >config.toml <<END
changelog-seen = 2
profile = "user"
@ -77,108 +88,162 @@ profile = "user"
link-shared = true
[build]
target = ["${CHOST}"]
cargo = "${BOOTSTRAP_PATH}/cargo"
rustc = "${BOOTSTRAP_PATH}/rustc"
rustfmt = "${BOOTSTRAP_PATH}/rustfmt"
target = [
${_config_targets}
]
cargo = "/usr/bin/cargo"
rustc = "/usr/bin/rustc"
rustfmt = "/usr/bin/rustfmt"
locked-deps = true
vendor = true
tools = [${BUILD_TOOLS}]
tools = ["cargo", "rls", "clippy", "rustfmt", "analysis", "src", "rust-demangler"]
sanitizers = true
profiler = true
# Generating docs fails with the wasm32-* targets
docs = false
[install]
prefix = "/usr"
[rust]
debuginfo-level-std = 2
channel = "stable"
description = "Arch POWER $pkgbase $epoch:$pkgver-$pkgrel"
rpath = false
backtrace-on-ice = true
remap-debuginfo = true
jemalloc = true
# LLVM crashes when passing an object through ThinLTO twice. This is triggered
# when using rust code in cross-language LTO if libstd was built using ThinLTO.
# http://blog.llvm.org/2019/09/closing-gap-cross-language-lto-between.html
# https://github.com/rust-lang/rust/issues/54872
codegen-units-std = 1
debuginfo-level-std = 2
channel = "stable"
rpath = false
[dist]
compression-formats = ["gz"]
[target.${CHOST}]
[target.${_rust_target}]
llvm-config = "/usr/bin/llvm-config"
${_config_target_extras}
[target.wasm32-unknown-unknown]
sanitizers = false
profiler = false
[target.wasm32-wasi]
sanitizers = false
profiler = false
wasi-root = "/usr/share/wasi-sysroot"
END
}
_pick() {
local p="$1" f d; shift
for f; do
d="$srcdir/$p/$f"
mkdir -p "$(dirname "$d")"
mv "$f" "$d"
rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
done
}
build() {
cd "rustc-$pkgver-src"
cd rustc-$pkgver-src
export RUST_BACKTRACE=1
export RUST_COMPILER_RT_ROOT="$srcdir/compiler-rt-$_llvm_ver.src"
[[ -d $RUST_COMPILER_RT_ROOT ]]
DESTDIR="$PWD"/dest-rust python ./x.py install -j "$(nproc)"
DESTDIR="$srcdir/dest-rust" python ./x.py install -j "$(nproc)"
# Remove analysis data for libs that weren't installed
# TODO: Find out where these come from
local file lib
while read -rd '' file; do
lib="${file%.json}.rlib"
lib="${lib/\/analysis\///lib/}"
if [[ ! -e $lib ]]; then
echo "missing '$lib'"
rm -v "$file"
fi
done < <(find "dest-rust/usr/lib/rustlib" -path '*/analysis/*.json' -print0)
cd ../dest-rust
# move docs and cross targets out of the way for splitting
mv dest-rust/usr/share/doc dest-doc
}
package_rust() {
depends=('gcc-libs' 'llvm-libs' 'curl' 'libssh2')
optdepends=('lldb: rust-lldb script'
'gdb: rust-gdb script')
provides=('cargo' 'rustfmt')
conflicts=('cargo' 'rustfmt')
replaces=('cargo' 'rustfmt' 'cargo-tree')
cd "rustc-$pkgver-src"
cp -a dest-rust/* "$pkgdir"
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE*
# delete unnecesary files, e.g. components and manifest files only used for the uninstall script
cd "$pkgdir"/usr/lib/rustlib
rm components install.log manifest-* rust-installer-version uninstall.sh
# delete unnecessary files, e.g. files only used for the uninstall script
rm usr/lib/rustlib/{components,install.log,rust-installer-version,uninstall.sh}
rm usr/lib/rustlib/manifest-*
# rustbuild always installs copies of the shared libraries to /usr/lib,
# overwrite them with symlinks to the per-architecture versions
ln -srft "$pkgdir"/usr/lib x86_64-unknown-linux-gnu/lib/*.so
ln -srft usr/lib usr/lib/rustlib/${_rust_target}/lib/*.so
install -d "$pkgdir"/usr/share/bash-completion/
mv "$pkgdir"/etc/bash_completion.d "$pkgdir"/usr/share/bash-completion/completions
case "${CARCH}" in
x86_64)
mkdir -p usr/lib32
ln -srft usr/lib32 usr/lib/rustlib/i686-unknown-linux-gnu/lib/*.so
;;
esac
mkdir -p usr/share/bash-completion
mv etc/bash_completion.d usr/share/bash-completion/completions
mkdir -p usr/share/licenses/rust
mv -t usr/share/licenses/rust usr/share/doc/rust/{COPYRIGHT,LICENSE*}
case "${CARCH}" in
x86_64)
_pick dest-i686 usr/lib/rustlib/i686-unknown-linux-gnu usr/lib32
_pick dest-musl usr/lib/rustlib/x86_64-unknown-linux-musl
;;
esac
_pick dest-wasm usr/lib/rustlib/wasm32-*
_pick dest-src usr/lib/rustlib/src
}
package_rust-docs() {
pkgdesc='Documentation for the Rust programming language'
package_rust() {
optdepends=('lldb: rust-lldb script'
'gdb: rust-gdb script')
provides=(cargo rustfmt)
conflicts=(cargo rustfmt 'rust-docs<1:1.56.1-3')
replaces=(cargo rustfmt cargo-tree 'rust-docs<1:1.56.1-3')
cd "rustc-$pkgver-src"
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE*
cp -a dest-rust/* "$pkgdir"
}
install -d "$pkgdir"/usr/share/
cp -a dest-doc "$pkgdir"/usr/share/doc
package_lib32-rust-libs() {
pkgdesc="32-bit target and libraries for Rust"
depends=(rust lib32-gcc-libs)
provides=(lib32-rust)
conflicts=(lib32-rust)
replaces=(lib32-rust)
cp -a dest-i686/* "$pkgdir"
mkdir -p "$pkgdir/usr/share/licenses"
ln -s rust "$pkgdir/usr/share/licenses/$pkgname"
}
package_rust-musl() {
pkgdesc="Musl target for Rust"
depends=(rust)
cp -a dest-musl/* "$pkgdir"
mkdir -p "$pkgdir/usr/share/licenses"
ln -s rust "$pkgdir/usr/share/licenses/$pkgname"
}
package_rust-wasm() {
pkgdesc="WebAssembly targets for Rust"
depends=(rust lld)
cp -a dest-wasm/* "$pkgdir"
mkdir -p "$pkgdir/usr/share/licenses"
ln -s rust "$pkgdir/usr/share/licenses/$pkgname"
}
package_rust-src() {
pkgdesc="Source code for the Rust standard library"
depends=(rust)
cp -a dest-src/* "$pkgdir"
mkdir -p "$pkgdir/usr/share/licenses"
ln -s rust "$pkgdir/usr/share/licenses/$pkgname"
}
# vim:set ts=2 sw=2 et:
sha256sums=('0ad531a32f3c2e996b9322c6b7262a9cfe557e49ff3363adea07b575106cd770'
'SKIP'
'7b33955031f9a9c5d63077dedb0f99d77e4e7c996266952c1cec55626dca5dfc'
'SKIP'
'a2a8a7c6a5732f79cc92f81d3c8380589c4e2b9a996fb565bbefe42f66b62597'
'0f8cfbe0387dd62909fe9cb9523223ae1c2319494e2caf5fa4d0592198631b3e'
'977da945985dce4484ace8794cbc91241b1f3c27311c1a8b201231db6e1d19e5'
'fcf3c4442ba6a9e59415652ce8514428b2e37b80c5fe7d07fb44259ad37abafb')
sha256sums=('a7c8eeaee85bfcef84c96b02b3171d1e6540d15179ff83dddd9eafba185f85f9'
'SKIP'
'7b33955031f9a9c5d63077dedb0f99d77e4e7c996266952c1cec55626dca5dfc'
'SKIP'
'a2a8a7c6a5732f79cc92f81d3c8380589c4e2b9a996fb565bbefe42f66b62597'
'0f8cfbe0387dd62909fe9cb9523223ae1c2319494e2caf5fa4d0592198631b3e'
'977da945985dce4484ace8794cbc91241b1f3c27311c1a8b201231db6e1d19e5'
'fcf3c4442ba6a9e59415652ce8514428b2e37b80c5fe7d07fb44259ad37abafb')

View File

@ -0,0 +1,130 @@
From 5a406b06792e26a83c7346b3c2443c0bd8d4cdb2 Mon Sep 17 00:00:00 2001
From: Eli Schwartz <eschwartz@archlinux.org>
Date: Mon, 8 Nov 2021 18:22:47 -0500
Subject: [PATCH] migrate from custom itstool to builtin msgfmt for creating
translated XML
gettext upstream has supported this for a very long time (since 0.19.7
via commit b3c2a5a242c36fbbaa0c5b17f975d6c638598a23, released in 2015),
and itstool is (mostly) a legacy of the time before gettext had proper
support for these sorts of use cases.
This is similar to the state of intltool, which is described at
https://wiki.gnome.org/MigratingFromIntltoolToGettext
During the port from autotools to meson, the legacy use of itstool was
faithfully translated to meson in the only way possible: by jumping
through hoops to run ninja inside ninja in order to generate the .mo
files for itstool, because meson's i18n module used a flawed design and
there was no "real" target to create those files, only a .PHONY
run_target which other rules cannot depend on.
Although meson 0.60.0 added support for real targets for the built .mo
files, this changed the rules for output filenames, breaking the script.
But msgfmt does not care, and anyways comes with builtin meson functions
for convenient use with XML files. So let's take this opportunity to
drop legacy dependencies and use the modern, builtin tooling, which
fixes this bug as a side effect.
Fixes #170
---
.gitlab-ci.yml | 2 --
README.md | 2 +-
data/freedesktop_generate.sh | 12 ------------
data/meson.build | 16 +++++-----------
meson.build | 1 -
5 files changed, 6 insertions(+), 27 deletions(-)
delete mode 100755 data/freedesktop_generate.sh
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 985dfe9..345e1ce 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -9,7 +9,6 @@ variables:
glib2-devel
gettext
git
- itstool
xmlto
findutils
gettext-devel
@@ -34,4 +33,3 @@ build:meson:
paths:
- _build/meson-logs/*.txt
- _build/meson-dist/*.*
-
diff --git a/README.md b/README.md
index c23d9d5..b2fb0ac 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ $ ninja -v -C _build install
```
It requires the glib development package to be installed as well as
-gettext and itstool.
+gettext.
This database is translated at Transifex.
diff --git a/data/freedesktop_generate.sh b/data/freedesktop_generate.sh
deleted file mode 100755
index 62ccffa..0000000
--- a/data/freedesktop_generate.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh -e
-
-src_root="$1"
-build_root="$2"
-
-${NINJA:-ninja} -C "${build_root}" shared-mime-info-gmo
-
-itstool \
- --its "${src_root}/data/its/shared-mime-info.its" \
- --join "${src_root}/data/freedesktop.org.xml.in" \
- -o "${build_root}/data/freedesktop.org.xml" \
- "${build_root}/po/"*".gmo"
diff --git a/data/meson.build b/data/meson.build
index 24361c9..09ed7a9 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -1,18 +1,12 @@
install_man('update-mime-database.1')
-freedesktop_org_xml = custom_target('freedesktop.org.xml',
- input : files(
- 'freedesktop.org.xml.in',
- 'its/shared-mime-info.its',
- 'its/shared-mime-info.loc',
- ),
+freedesktop_org_xml = i18n.merge_file(
+ input: 'freedesktop.org.xml.in',
output: 'freedesktop.org.xml',
- command: [
- find_program('freedesktop_generate.sh'),
- meson.source_root(),
- meson.build_root()
- ],
+ data_dirs: '.',
+ po_dir: '../po',
+ type: 'xml',
install: true,
install_dir: get_option('datadir') / 'mime' / 'packages',
)
diff --git a/meson.build b/meson.build
index 0d08c8a..60f17ae 100644
--- a/meson.build
+++ b/meson.build
@@ -20,7 +20,6 @@ config.set_quoted('VERSION', meson.project_version())
###############################################################################
# Find tools
-itstool = find_program('itstool')
xmllint = find_program('xmllint')
xmlto = find_program('xmlto', required: false)
--
GitLab

View File

@ -6,8 +6,7 @@ pkgname=spice
pkgver=0.15.0
pkgrel=1
pkgdesc="SPICE server"
arch=(x86_64 powerpc64le powerpc)
arch=(riscv64)
arch=(x86_64 powerpc64le powerpc riscv64)
url="https://www.spice-space.org"
license=('LGPL2.1')
depends=('pixman' 'opus' 'libjpeg-turbo' 'glib2' 'libsasl' 'lz4')

View File

@ -0,0 +1,34 @@
From a7b5474bf808934cf0ee1107a58d5f4d97b9afbf Mon Sep 17 00:00:00 2001
From: Frediano Ziglio <freddy77@gmail.com>
Date: Thu, 28 Oct 2021 16:45:34 +0100
Subject: build: Correctly check for Python modules
Currently using Meson the command "python -m <MODULE_NAME>" is
run. However this command instead of trying to import the module
tried to execute it as a script failing for the updated pyparsing
with:
/usr/bin/python3: No module named pyparsing.__main__; 'pyparsing' is a package and cannot be directly executed
So instead use "python -c 'import <MODULE_NAME>".
Autoconf is already using that command (see m4/ax_python_module.m4).
Signed-off-by: Frediano Ziglio <freddy77@gmail.com>
---
subprojects/spice-common/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/subprojects/spice-common/meson.build b/subprojects/spice-common/meson.build
index aff6243..eeccecd 100644
--- a/subprojects/spice-common/meson.build
+++ b/subprojects/spice-common/meson.build
@@ -132,7 +132,7 @@ if spice_common_generate_client_code or spice_common_generate_server_code
if get_option('python-checks')
foreach module : ['six', 'pyparsing']
message('Checking for python module @0@'.format(module))
- cmd = run_command(python, '-m', module)
+ cmd = run_command(python, '-c', 'import @0@'.format(module))
if cmd.returncode() != 0
error('Python module @0@ not found'.format(module))
endif
--

49
svt-av1/PKGBUILD Normal file
View File

@ -0,0 +1,49 @@
# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
# Contributor: Daniel Bermond <dbermond@archlinux.org>
# Contributor: Thomas Schneider <maxmusterm@gmail.com>
pkgname=svt-av1
pkgver=0.9.0
pkgrel=2
pkgdesc='Scalable Video Technology AV1 encoder and decoder'
arch=(x86_64 powerpc64le powerpc riscv64)
url=https://gitlab.com/AOMediaCodec/SVT-AV1
license=(
BSD
'custom: Alliance for Open Media Patent License 1.0'
)
depends=(glibc)
makedepends=(
cmake
git
ninja
)
makedepends_x86_64=(nasm)
_tag=fdf4f36867bba068e221965d12c5975c509845da
source=(git+https://gitlab.com/AOMediaCodec/SVT-AV1.git#tag=${_tag})
b2sums=(SKIP)
prepare() {
sed '/CMAKE_BUILD_TYPE Release/d' -i SVT-AV1/CMakeLists.txt
}
pkgver() {
cd SVT-AV1
git describe --tags | sed 's/^v//'
}
build() {
export LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"
cmake -S SVT-AV1 -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_SHARED_LIBS=ON \
-DNATIVE=OFF
ninja -C build
}
package() {
DESTDIR="${pkgdir}" ninja -C build install
install -Dm 644 SVT-AV1/{LICENSE,PATENTS}.md -t "${pkgdir}"/usr/share/licenses/svt-av1/
}
# vim: ts=2 sw=2 et:

View File

@ -1,28 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Kevin Daudt <kdaudt@alpinelinux.org>
Date: Sun, 12 Dec 2021 13:38:48 +0000
Subject: [PATCH] Bug 1745560 - Add missing stub for wl_proxy_marshal_flags,
r=stransky
Firefox fails to build against wayland 1.20 because this symbol is missing
Differential Revision: https://phabricator.services.mozilla.com/D133583
---
widget/gtk/mozwayland/mozwayland.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/widget/gtk/mozwayland/mozwayland.c b/widget/gtk/mozwayland/mozwayland.c
index 7a448e6321e2..1a86468b4f3d 100644
--- a/widget/gtk/mozwayland/mozwayland.c
+++ b/widget/gtk/mozwayland/mozwayland.c
@@ -200,3 +200,10 @@ MOZ_EXPORT int wl_list_empty(const struct wl_list* list) { return -1; }
MOZ_EXPORT void wl_list_insert_list(struct wl_list* list,
struct wl_list* other) {}
+
+MOZ_EXPORT struct wl_proxy* wl_proxy_marshal_flags(
+ struct wl_proxy* proxy, uint32_t opcode,
+ const struct wl_interface* interface, uint32_t version, uint32_t flags,
+ ...) {
+ return NULL;
+}

View File

@ -8,7 +8,7 @@
pkgbase=thunderbird
pkgname=(thunderbird)
pkgver=91.5.0
pkgver=91.8.1
pkgrel=1
pkgdesc='Standalone mail and news reader from mozilla.org'
url='https://www.mozilla.org/thunderbird/'
@ -44,8 +44,7 @@ source=(https://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/$pkgver/sou
flac-no-ffvpx.patch
skia-sucks1.patch
skia-sucks2.patch
skia-sucks3.patch
Add-missing-stub-for-wl_proxy_marshal_fl.patch)
skia-sucks3.patch)
validpgpkeys=(
14F26682D0916CDD81E37B6D61B7B526D98F0353 # Mozilla Software Releases <release@mozilla.com>
4360FE2109C49763186F8E21EBE41E90F6F12F6D # Mozilla Software Releases <release@mozilla.com>
@ -155,7 +154,7 @@ END
"$pkgdir/usr/lib/$pkgname/thunderbird-bin"
}
sha256sums=('425dacc0ae227a4209b77daf674b33295262f2ecf36022216cd07724954e9e6d'
sha256sums=('82737d29b89f39620fbdfc47e84d053edad903c72057526ff2a8215fd73e283d'
'SKIP'
'e44c55501f650a4e80b9c353b81f33e07ca65808db831eff6ca616aded233827'
'fa11b4736bbf53ec015f71cd42b1040b22d1a855c562b76927b3f0eccb925c85'
@ -171,24 +170,4 @@ sha256sums=('425dacc0ae227a4209b77daf674b33295262f2ecf36022216cd07724954e9e6d'
'944fc690a0b344ea56ff2b0880ba492ba80338a68f31d0fb205b891a5de42cee'
'9cdffb3f91e0956f4147c8556c80b97bcae448b84ce0d0a0e009a231a9915396'
'd98af26b723a8b590822a3d1ab925841b99882c158d3dec7514288c968f2428e'
'851503764a3068d36659b9231c9aaa40fe8a15680f7d0a378e9009ae1a776dae')
# vim:set sw=2 et:
sha256sums=('b89a8e1b57d5be828a7346e817120d7c763a258a2397a23393b7ceb3ce810ab2'
'SKIP'
'e44c55501f650a4e80b9c353b81f33e07ca65808db831eff6ca616aded233827'
'fa11b4736bbf53ec015f71cd42b1040b22d1a855c562b76927b3f0eccb925c85'
'bc3aae2cc00dc9806f54606f98d967366a2ba7223f6a3ad1c658a653ebff5569'
'1c5d830f2dd4e8c988fcc038121e7563a44af866d6283ee24274d16f8414d1b6'
'ace80afd8dadb000e324e400d5a8f9f2e4ad214b32844bf23236f604c5f88db1'
'd1a81bdadc6cc1b96aeb7898e986efbb132a1ce142611b7af2cf744f00cad601'
'3ebba6c6c59dbf754b522d2535c27eae3e724aab575b8e7be9658e0d33183bcf'
'0df637d44218524e213814d15d623f27724d8e405390173f6cc385e145110bfe'
'cd9baa74c6dd7e2a689b072ac039c3fe4618012dd8f11d4ca422369a842d6441'
'ad83c0c6195ab742848941be1d9c8f32c1d4a8bc019d8887b42256bafaefb541'
'958cf5016e9845b6ee6e2ed05ad96cc2fc6f74bebbb338a7b7ce29bffd2be716'
'944fc690a0b344ea56ff2b0880ba492ba80338a68f31d0fb205b891a5de42cee'
'9cdffb3f91e0956f4147c8556c80b97bcae448b84ce0d0a0e009a231a9915396'
'd98af26b723a8b590822a3d1ab925841b99882c158d3dec7514288c968f2428e'
'851503764a3068d36659b9231c9aaa40fe8a15680f7d0a378e9009ae1a776dae')
'851503764a3068d36659b9231c9aaa40fe8a15680f7d0a378e9009ae1a776dae')

View File

@ -5,67 +5,57 @@
pkgname=x265
pkgver=3.5
pkgrel=1
pkgrel=3
pkgdesc='Open Source H265/HEVC video encoder'
arch=(x86_64 powerpc64le powerpc riscv64)
url=https://bitbucket.org/multicoreware/x265
url=https://bitbucket.org/multicoreware/x265_git
license=(GPL)
depends=(gcc-libs)
makedepends=(
cmake
git
git
ninja
)
makedepends_x86_64=(nasm)
provides=(libx265.so)
_tag=f0c1022b6be121a753ff02853fbe33da71988656
source=("x265::git+https://bitbucket.org/multicoreware/x265_git#tag=${_tag}")
sha256sums=(SKIP)
source=(git+https://bitbucket.org/multicoreware/x265_git#tag=${_tag})
sha256sums=('SKIP')
prepare() {
cd x265
pkgver() {
cd x265_git
for d in 8 10 12; do
if [[ -d build-$d ]]; then
rm -rf build-$d
fi
mkdir build-$d
done
git describe --tags
}
build() {
export CFLAGS=${CFLAGS/-mabi=altivec -maltivec/}
export CXXFLAGS=${CXXFLAGS/-mabi=altivec -maltivec/}
case "${CARCH}" in
powerpc) PLATFORM_FLAGS="-DENABLE_ALTIVEC=ON" ;;
powerpc64e) PLATFORM_FLAGS="-DENABLE_ALTIVEC=ON -DENABLE_PIC=ON" ;;
*) PLATFORM_FLAGS="" ;;
esac
cd x265/build-12
cmake ../source \
cmake -S x265_git/source -B build-12 -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DHIGH_BIT_DEPTH=TRUE \
-DMAIN12=TRUE \
-DEXPORT_C_API=FALSE \
-DENABLE_CLI=FALSE \
-DENABLE_SHARED=FALSE \
-DENABLE_ALTIVEC='OFF' \
-DENABLE_PIC='ON'
make
-Wno-dev ${PLATFORM_FLAGS}
ninja -C build-12
cd ../build-10
cmake ../source \
cmake -S x265_git/source -B build-10 -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DHIGH_BIT_DEPTH=TRUE \
-DEXPORT_C_API=FALSE \
-DENABLE_CLI=FALSE \
-DENABLE_SHARED=FALSE \
-DENABLE_ALTIVEC='OFF' \
-DENABLE_PIC='ON'
make
-Wno-dev ${PLATFORM_FLAGS}
ninja -C build-10
cd ../build-8
ln -s ../build-10/libx265.a libx265_main10.a
ln -s ../build-12/libx265.a libx265_main12.a
cmake ../source \
cmake -S x265_git/source -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DENABLE_SHARED=TRUE \
-DENABLE_HDR10_PLUS=TRUE \
@ -73,15 +63,14 @@ build() {
-DEXTRA_LINK_FLAGS='-L .' \
-DLINKED_10BIT=TRUE \
-DLINKED_12BIT=TRUE \
-DENABLE_ALTIVEC='OFF' \
-DENABLE_PIC='ON'
make
-Wno-dev ${PLATFORM_FLAGS}
ln -s ../build-10/libx265.a build/libx265_main10.a
ln -s ../build-12/libx265.a build/libx265_main12.a
ninja -C build
}
package() {
cd x265/build-8
make DESTDIR="${pkgdir}" install
DESTDIR="${pkgdir}" ninja -C build install
}
# vim: ts=2 sw=2 et:

11
x265/x265-3.5-ppc64.patch Normal file
View File

@ -0,0 +1,11 @@
--- source/CMakeLists.txt.orig 2022-04-04 20:03:06.107355488 +0200
+++ source/CMakeLists.txt 2022-04-04 20:03:18.450147724 +0200
@@ -43,7 +43,7 @@
set(ARM_ALIASES armv6l armv7l aarch64)
list(FIND X86_ALIASES "${SYSPROC}" X86MATCH)
list(FIND ARM_ALIASES "${SYSPROC}" ARMMATCH)
-set(POWER_ALIASES ppc64 ppc64le)
+set(POWER_ALIASES ppc64 ppc64le powerpc64 powerpc64le)
list(FIND POWER_ALIASES "${SYSPROC}" POWERMATCH)
if("${SYSPROC}" STREQUAL "" OR X86MATCH GREATER "-1")
set(X86 1)

View File

@ -0,0 +1,44 @@
From 0f007b28a8c3d59ff227483359a37ac29aa08648 Mon Sep 17 00:00:00 2001
From: fulalas <rcd99@zipmail.com.br>
Date: Fri, 18 Feb 2022 20:19:48 +0100
Subject: [PATCH] Fixed some window buttons not appearing in the panel (Issue
#188)
---
plugins/tasklist/tasklist-widget.c | 16 ----------------
1 file changed, 16 deletions(-)
diff --git a/plugins/tasklist/tasklist-widget.c b/plugins/tasklist/tasklist-widget.c
index 83d1f09d..eb78f882 100644
--- a/plugins/tasklist/tasklist-widget.c
+++ b/plugins/tasklist/tasklist-widget.c
@@ -2872,20 +2872,6 @@ xfce_tasklist_button_geometry_changed2 (WnckWindow *window,
-static gboolean
-xfce_tasklist_button_size_allocate (GtkWidget *widget,
- GdkRectangle *allocation,
- gpointer user_data)
-{
- XfceTasklistChild *child = user_data;
- /* Make sure the icons have the correct size */
- xfce_tasklist_button_icon_changed (child->window, child);
-
- return TRUE;
-}
-
-
-
#ifdef GDK_WINDOWING_X11
static void
xfce_tasklist_button_geometry_changed (WnckWindow *window,
@@ -3561,8 +3547,6 @@ xfce_tasklist_button_new (WnckWindow *window,
G_CALLBACK (xfce_tasklist_button_button_release_event), child);
/* monitor window changes */
- g_signal_connect (G_OBJECT (child->button), "size-allocate",
- G_CALLBACK (xfce_tasklist_button_size_allocate), child);
g_signal_connect (G_OBJECT (window), "icon-changed",
G_CALLBACK (xfce_tasklist_button_icon_changed), child);
g_signal_connect (G_OBJECT (window), "name-changed",