Compare commits
3 Commits
260f9562d8
...
7d03ce6d1c
Author | SHA1 | Date | |
---|---|---|---|
7d03ce6d1c | |||
4e5473baec | |||
f803d7ca8e |
169
base/gi-docgen/fix-broken-since-obsoletes.patch
Normal file
169
base/gi-docgen/fix-broken-since-obsoletes.patch
Normal file
@ -0,0 +1,169 @@
|
||||
From fc0d2b5f15f58dae817816ba02e20ebf7017b842 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Catanzaro <mcatanzaro@redhat.com>
|
||||
Date: Mon, 18 Dec 2023 10:14:30 -0600
|
||||
Subject: [PATCH] Revert "generate: Add fallback for missing "since""
|
||||
|
||||
This reverts commit 4fa286d504df8dd970a175db806a7f9156cdf527.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gi-docgen/-/issues/179
|
||||
---
|
||||
gidocgen/gdgenerate.py | 38 ++++++++++++++++----------------------
|
||||
1 file changed, 16 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/gidocgen/gdgenerate.py b/gidocgen/gdgenerate.py
|
||||
index 75175a5..21095c6 100644
|
||||
--- a/gidocgen/gdgenerate.py
|
||||
+++ b/gidocgen/gdgenerate.py
|
||||
@@ -146,7 +146,7 @@ def gen_index_func(func, namespace, md=None):
|
||||
if func.available_since is not None:
|
||||
available_since = func.available_since
|
||||
else:
|
||||
- available_since = namespace.version
|
||||
+ available_since = None
|
||||
if func.deprecated:
|
||||
(version, msg) = func.deprecated_since
|
||||
deprecated_since = version
|
||||
@@ -170,7 +170,7 @@ def gen_index_property(prop, namespace, md=None):
|
||||
if prop.available_since is not None:
|
||||
available_since = prop.available_since
|
||||
else:
|
||||
- available_since = namespace.version
|
||||
+ available_since = None
|
||||
if prop.deprecated:
|
||||
(version, msg) = prop.deprecated_since
|
||||
deprecated_since = version
|
||||
@@ -193,7 +193,7 @@ def gen_index_signal(signal, namespace, md=None):
|
||||
if signal.available_since is not None:
|
||||
available_since = signal.available_since
|
||||
else:
|
||||
- available_since = namespace.version
|
||||
+ available_since = None
|
||||
if signal.deprecated:
|
||||
(version, msg) = signal.deprecated_since
|
||||
deprecated_since = version
|
||||
@@ -394,7 +394,7 @@ class TemplateConstant:
|
||||
|
||||
self.stability = const.stability
|
||||
self.attributes = const.attributes
|
||||
- self.available_since = const.available_since or namespace.version
|
||||
+ self.available_since = const.available_since
|
||||
if const.deprecated:
|
||||
(version, msg) = const.deprecated_since
|
||||
self.deprecated_since = {
|
||||
@@ -455,7 +455,7 @@ class TemplateProperty:
|
||||
self.description = MISSING_DESCRIPTION
|
||||
|
||||
self.stability = prop.stability
|
||||
- self.available_since = prop.available_since or namespace.version
|
||||
+ self.available_since = prop.available_since
|
||||
if prop.deprecated:
|
||||
(version, msg) = prop.deprecated_since
|
||||
self.deprecated_since = {
|
||||
@@ -800,7 +800,7 @@ class TemplateSignal:
|
||||
|
||||
self.stability = signal.stability
|
||||
self.attributes = signal.attributes
|
||||
- self.available_since = signal.available_since or namespace.version
|
||||
+ self.available_since = signal.available_since
|
||||
if signal.deprecated:
|
||||
(version, msg) = signal.deprecated_since
|
||||
self.deprecated_since = {
|
||||
@@ -857,7 +857,7 @@ class TemplateMethod:
|
||||
self.return_value = TemplateReturnValue(namespace, method, method.return_value)
|
||||
|
||||
self.stability = method.stability
|
||||
- self.available_since = method.available_since or type_.available_since
|
||||
+ self.available_since = method.available_since
|
||||
if method.deprecated:
|
||||
(version, msg) = method.deprecated_since
|
||||
self.deprecated_since = {
|
||||
@@ -1006,7 +1006,7 @@ class TemplateClassMethod:
|
||||
|
||||
self.stability = method.stability
|
||||
self.attributes = method.attributes
|
||||
- self.available_since = method.available_since or cls.available_since
|
||||
+ self.available_since = method.available_since
|
||||
if method.deprecated:
|
||||
(version, msg) = method.deprecated_since
|
||||
self.deprecated_since = {
|
||||
@@ -1080,13 +1080,7 @@ class TemplateFunction:
|
||||
|
||||
self.stability = func.stability
|
||||
self.attributes = func.attributes
|
||||
- if func.available_since is None:
|
||||
- if type_ is None:
|
||||
- self.available_since = namespace.version
|
||||
- else:
|
||||
- self.available_since = type_.available_since
|
||||
- else:
|
||||
- self.available_since = func.available_since
|
||||
+ self.available_since = func.available_since
|
||||
if func.deprecated:
|
||||
(version, msg) = func.deprecated_since
|
||||
self.deprecated_since = {
|
||||
@@ -1171,7 +1165,7 @@ class TemplateCallback:
|
||||
|
||||
self.stability = cb.stability
|
||||
self.attributes = cb.attributes
|
||||
- self.available_since = cb.available_since or namespace.version
|
||||
+ self.available_since = cb.available_since
|
||||
if cb.deprecated:
|
||||
(version, msg) = cb.deprecated_since
|
||||
self.deprecated_since = {
|
||||
@@ -1315,7 +1309,7 @@ class TemplateInterface:
|
||||
|
||||
self.stability = interface.stability
|
||||
self.attributes = interface.attributes
|
||||
- self.available_since = interface.available_since or namespace.version
|
||||
+ self.available_since = interface.available_since
|
||||
if interface.deprecated:
|
||||
(version, msg) = interface.deprecated_since
|
||||
self.deprecated_since = {
|
||||
@@ -1471,7 +1465,7 @@ class TemplateClass:
|
||||
|
||||
self.stability = cls.stability
|
||||
self.attributes = cls.attributes
|
||||
- self.available_since = cls.available_since or namespace.version
|
||||
+ self.available_since = cls.available_since
|
||||
if cls.deprecated:
|
||||
(version, msg) = cls.deprecated_since
|
||||
self.deprecated_since = {
|
||||
@@ -1693,7 +1687,7 @@ class TemplateRecord:
|
||||
|
||||
self.stability = record.stability
|
||||
self.attributes = record.attributes
|
||||
- self.available_since = record.available_since or namespace.version
|
||||
+ self.available_since = record.available_since
|
||||
if record.deprecated:
|
||||
(version, msg) = record.deprecated_since
|
||||
self.deprecated_since = {
|
||||
@@ -1772,7 +1766,7 @@ class TemplateUnion:
|
||||
|
||||
self.stability = union.stability
|
||||
self.attributes = union.attributes
|
||||
- self.available_since = union.available_since or namespace.version
|
||||
+ self.available_since = union.available_since
|
||||
if union.deprecated:
|
||||
(version, msg) = union.deprecated_since
|
||||
self.deprecated_since = {
|
||||
@@ -1849,7 +1843,7 @@ class TemplateAlias:
|
||||
|
||||
self.stability = alias.stability
|
||||
self.attributes = alias.attributes
|
||||
- self.available_since = alias.available_since or namespace.version
|
||||
+ self.available_since = alias.available_since
|
||||
if alias.deprecated:
|
||||
(version, msg) = alias.deprecated_since
|
||||
self.deprecated_since = {
|
||||
@@ -1912,7 +1906,7 @@ class TemplateEnum:
|
||||
|
||||
self.stability = enum.stability
|
||||
self.attributes = enum.attributes
|
||||
- self.available_since = enum.available_since or namespace.version
|
||||
+ self.available_since = enum.available_since
|
||||
if enum.deprecated:
|
||||
(version, msg) = enum.deprecated_since
|
||||
self.deprecated_since = {
|
||||
--
|
||||
2.43.0
|
||||
|
239
base/gi-docgen/gi-docgen-2022.2-no-web-fonts.patch
Normal file
239
base/gi-docgen/gi-docgen-2022.2-no-web-fonts.patch
Normal file
@ -0,0 +1,239 @@
|
||||
diff -Naur gi-docgen-2022.2-original/gidocgen/templates/basic/basic.toml gi-docgen-2022.2/gidocgen/templates/basic/basic.toml
|
||||
--- gi-docgen-2022.2-original/gidocgen/templates/basic/basic.toml 2022-11-07 09:50:06.000000000 -0500
|
||||
+++ gi-docgen-2022.2/gidocgen/templates/basic/basic.toml 2022-11-11 08:23:51.069820380 -0500
|
||||
@@ -42,35 +42,4 @@
|
||||
"solarized-light.css",
|
||||
"solarized-dark.css",
|
||||
"search.js",
|
||||
- "RedHatDisplay-Black.woff",
|
||||
- "RedHatDisplay-Black.woff2",
|
||||
- "RedHatDisplay-BlackItalic.woff",
|
||||
- "RedHatDisplay-BlackItalic.woff2",
|
||||
- "RedHatDisplay-Bold.woff",
|
||||
- "RedHatDisplay-Bold.woff2",
|
||||
- "RedHatDisplay-BoldItalic.woff",
|
||||
- "RedHatDisplay-BoldItalic.woff2",
|
||||
- "RedHatDisplay-Italic.woff",
|
||||
- "RedHatDisplay-Italic.woff2",
|
||||
- "RedHatDisplay-Medium.woff",
|
||||
- "RedHatDisplay-Medium.woff2",
|
||||
- "RedHatDisplay-MediumItalic.woff",
|
||||
- "RedHatDisplay-MediumItalic.woff2",
|
||||
- "RedHatDisplay-Regular.woff",
|
||||
- "RedHatDisplay-Regular.woff2",
|
||||
- "RedHatText-Bold.woff",
|
||||
- "RedHatText-Bold.woff2",
|
||||
- "RedHatText-BoldItalic.woff",
|
||||
- "RedHatText-BoldItalic.woff2",
|
||||
- "RedHatText-Italic.woff",
|
||||
- "RedHatText-Italic.woff2",
|
||||
- "RedHatText-Medium.woff",
|
||||
- "RedHatText-Medium.woff2",
|
||||
- "RedHatText-MediumItalic.woff",
|
||||
- "RedHatText-MediumItalic.woff2",
|
||||
- "RedHatText-Regular.woff",
|
||||
- "RedHatText-Regular.woff2",
|
||||
- "SourceCodePro-It.ttf.woff",
|
||||
- "SourceCodePro-Regular.ttf.woff",
|
||||
- "SourceCodePro-Semibold.ttf.woff",
|
||||
]
|
||||
diff -Naur gi-docgen-2022.2-original/gidocgen/templates/basic/fonts.css gi-docgen-2022.2/gidocgen/templates/basic/fonts.css
|
||||
--- gi-docgen-2022.2-original/gidocgen/templates/basic/fonts.css 2022-11-07 09:50:06.000000000 -0500
|
||||
+++ gi-docgen-2022.2/gidocgen/templates/basic/fonts.css 2022-11-11 08:23:51.069820380 -0500
|
||||
@@ -14,9 +14,7 @@
|
||||
|
||||
@font-face {
|
||||
font-family: "Red Hat Display";
|
||||
- src: local('RedHatDisplayWeb'),
|
||||
- url("RedHatDisplay-Regular.woff2") format("woff2"),
|
||||
- url("RedHatDisplay-Regular.woff") format("woff");
|
||||
+ src: local('RedHatDisplay-Regular');
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: fallback;
|
||||
@@ -24,9 +22,7 @@
|
||||
|
||||
@font-face {
|
||||
font-family: "Red Hat Display";
|
||||
- src: local('RedHatDisplayWeb'),
|
||||
- url("RedHatDisplay-RegularItalic.woff2") format("woff2"),
|
||||
- url("RedHatDisplay-RegularItalic.woff") format("woff");
|
||||
+ src: local('RedHatDisplay-RegularItalic');
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-display: fallback;
|
||||
@@ -34,9 +30,7 @@
|
||||
|
||||
@font-face {
|
||||
font-family: "Red Hat Display";
|
||||
- src: local('RedHatDisplayWeb'),
|
||||
- url("RedHatDisplay-Medium.woff2") format("woff2"),
|
||||
- url("RedHatDisplay-Medium.woff") format("woff");
|
||||
+ src: local('RedHatDisplay-Medium');
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: fallback;
|
||||
@@ -44,9 +38,7 @@
|
||||
|
||||
@font-face {
|
||||
font-family: "Red Hat Display";
|
||||
- src: local('RedHatDisplayWeb'),
|
||||
- url("RedHatDisplay-MediumItalic.woff2") format("woff2"),
|
||||
- url("RedHatDisplay-MediumItalic.woff") format("woff");
|
||||
+ src: local('RedHatDisplay-MediumItalic');
|
||||
font-style: italic;
|
||||
font-weight: 500;
|
||||
font-display: fallback;
|
||||
@@ -54,9 +46,7 @@
|
||||
|
||||
@font-face {
|
||||
font-family: "Red Hat Display";
|
||||
- src: local('RedHatDisplayWeb'),
|
||||
- url("RedHatDisplay-Bold.woff2") format("woff2"),
|
||||
- url("RedHatDisplay-Bold.woff") format("woff");
|
||||
+ src: local('RedHatDisplay-Bold');
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: fallback;
|
||||
@@ -64,9 +54,7 @@
|
||||
|
||||
@font-face {
|
||||
font-family: "Red Hat Display";
|
||||
- src: local('RedHatDisplayWeb'),
|
||||
- url("RedHatDisplay-BoldItalic.woff2") format("woff2"),
|
||||
- url("RedHatDisplay-BoldItalic.woff") format("woff");
|
||||
+ src: local('RedHatDisplay-BoldItalic');
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
font-display: fallback;
|
||||
@@ -75,9 +63,7 @@
|
||||
|
||||
@font-face {
|
||||
font-family: "Red Hat Display";
|
||||
- src: local('RedHatDisplayWeb'),
|
||||
- url("RedHatDisplay-Black.woff2") format("woff2"),
|
||||
- url("RedHatDisplay-Black.woff") format("woff");
|
||||
+ src: local('RedHatDisplay-Black');
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
font-display: fallback;
|
||||
@@ -85,9 +71,7 @@
|
||||
|
||||
@font-face {
|
||||
font-family: "Red Hat Display";
|
||||
- src: local('RedHatDisplayWeb'),
|
||||
- url("RedHatDisplay-BlackItalic.woff2") format("woff2"),
|
||||
- url("RedHatDisplay-BlackItalic.woff") format("woff");
|
||||
+ src: local('RedHatDisplay-BlackItalic');
|
||||
font-style: italic;
|
||||
font-weight: 900;
|
||||
font-display: fallback;
|
||||
@@ -95,9 +79,7 @@
|
||||
|
||||
@font-face {
|
||||
font-family: "Red Hat Text";
|
||||
- src: local('RedHatTextWeb'),
|
||||
- url("RedHatText-Regular.woff2") format("woff2"),
|
||||
- url("RedHatText-Regular.woff") format("woff");
|
||||
+ src: local('RedHatText-Regular');
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: fallback;
|
||||
@@ -105,9 +87,7 @@
|
||||
|
||||
@font-face {
|
||||
font-family: "Red Hat Text";
|
||||
- src: local('RedHatTextWeb'),
|
||||
- url("RedHatText-Italic.woff2") format("woff2"),
|
||||
- url("RedHatText-Italic.woff") format("woff");
|
||||
+ src: local('RedHatText-Italic');
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-display: fallback;
|
||||
@@ -115,9 +95,7 @@
|
||||
|
||||
@font-face {
|
||||
font-family: "Red Hat Text";
|
||||
- src: local('RedHatTextWeb'),
|
||||
- url("RedHatText-Medium.woff2") format("woff2"),
|
||||
- url("RedHatText-Medium.woff") format("woff");
|
||||
+ src: local('RedHatText-Medium');
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: fallback;
|
||||
@@ -125,9 +103,7 @@
|
||||
|
||||
@font-face {
|
||||
font-family: "Red Hat Text";
|
||||
- src: local('RedHatTextWeb'),
|
||||
- url("RedHatText-MediumItalic.woff2") format("woff2"),
|
||||
- url("RedHatText-MediumItalic.woff") format("woff");
|
||||
+ src: local('RedHatText-MediumItalic');
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
font-display: fallback;
|
||||
@@ -135,9 +111,7 @@
|
||||
|
||||
@font-face {
|
||||
font-family: "Red Hat Text";
|
||||
- src: local('RedHatTextWeb'),
|
||||
- url("RedHatText-Bold.woff2") format("woff2"),
|
||||
- url("RedHatText-Bold.woff") format("woff");
|
||||
+ src: local('RedHatText-Bold');
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
font-display: fallback;
|
||||
@@ -145,22 +119,17 @@
|
||||
|
||||
@font-face {
|
||||
font-family: "Red Hat Text";
|
||||
- src: local('RedHatTextWeb'),
|
||||
- url("RedHatText-BoldItalic.woff2") format("woff2"),
|
||||
- url("RedHatText-BoldItalic.woff") format("woff");
|
||||
+ src: local('RedHatText-BoldItalic');
|
||||
font-style: italic;
|
||||
font-weight: 900;
|
||||
font-display: fallback;
|
||||
}
|
||||
|
||||
-/* Do not fall back to locally installed SourceCodePro, as there are
|
||||
- * known bad copies being distributed to this day
|
||||
- */
|
||||
@font-face {
|
||||
font-family: 'Source Code Pro';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
- src: url("SourceCodePro-Regular.ttf.woff") format('woff');
|
||||
+ src: local('SourceCodePro-Regular');
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@@ -168,7 +137,7 @@
|
||||
font-family: 'Source Code Pro';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
- src: url("SourceCodePro-It.ttf.woff") format('woff');
|
||||
+ src: local('SourceCodePro-It');
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@@ -176,6 +145,6 @@
|
||||
font-family: 'Source Code Pro';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
- src: url("SourceCodePro-Semibold.ttf.woff") format('woff');
|
||||
+ src: local('SourceCodePro-Semibold');
|
||||
font-display: swap;
|
||||
}
|
||||
diff -Naur gi-docgen-2022.2-original/setup.cfg gi-docgen-2022.2/setup.cfg
|
||||
--- gi-docgen-2022.2-original/setup.cfg 2022-11-07 09:50:06.000000000 -0500
|
||||
+++ gi-docgen-2022.2/setup.cfg 2022-11-11 08:24:25.200224213 -0500
|
||||
@@ -74,8 +74,6 @@
|
||||
templates/basic/*.html
|
||||
templates/basic/*.js
|
||||
templates/basic/*.png
|
||||
- templates/basic/*.woff2
|
||||
- templates/basic/*.woff
|
||||
py.typed
|
||||
|
||||
[bdist_wheel]
|
346
base/gi-docgen/gi-docgen.spec
Normal file
346
base/gi-docgen/gi-docgen.spec
Normal file
@ -0,0 +1,346 @@
|
||||
## START: Set by rpmautospec
|
||||
## (rpmautospec version 0.3.5)
|
||||
## RPMAUTOSPEC: autorelease, autochangelog
|
||||
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
|
||||
release_number = 2;
|
||||
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
|
||||
print(release_number + base_release_number - 1);
|
||||
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
|
||||
## END: Set by rpmautospec
|
||||
|
||||
# Sphinx-generated HTML documentation is not suitable for packaging; see
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2006555 for discussion.
|
||||
#
|
||||
# We can generate PDF documentation as a substitute.
|
||||
%bcond_with doc_pdf
|
||||
|
||||
Name: gi-docgen
|
||||
Version: 2023.3
|
||||
Release: %autorelease
|
||||
Summary: Documentation tool for GObject-based libraries
|
||||
|
||||
# Based on the “Copyright and Licensing terms” in README.md, on the contents of
|
||||
# .reuse/dep5, and on inspection of SPDX headers or other file contents with
|
||||
# assistance from licensecheck.
|
||||
#
|
||||
# The entire source is (Apache-2.0 OR GPL-3.0-or-later) except the following files that are
|
||||
# packaged or are used to generate packaged files:
|
||||
#
|
||||
# (Apache-2.0 OR GPL-3.0-or-later) AND BSD-2-Clause:
|
||||
# - gidocgen/mdext.py
|
||||
#
|
||||
# MIT:
|
||||
# - gidocgen/templates/basic/fzy.js
|
||||
# - gidocgen/templates/basic/solarized-{dark,light}.js
|
||||
#
|
||||
# CC0-1.0:
|
||||
# - gi-docgen.pc.in (from which gi-docgen.pc is generated)
|
||||
# - gidocgen/templates/basic/*.png
|
||||
# - docs/CODEOWNERS (-doc subpackage)
|
||||
# - examples/*.toml (-doc subpackage)
|
||||
#
|
||||
# Note that CC0-1.0 is allowed in Fedora for content only; all of the above
|
||||
# files may reasonably be called content.
|
||||
#
|
||||
# Additionally, CC0-1.0 appears in certain sample configuration snippets within
|
||||
# the following files, which are otherwise (Apache-2.0 OR GPL-3.0-or-later):
|
||||
# - docs/project-configuration.rst
|
||||
# - docs/tutorial.rst
|
||||
# On one hand, these are copied from real projects; on the other hand, they are
|
||||
# very trivial. It’s not obvious whether they should be considered “real”
|
||||
# CC0-1.0 content or not.
|
||||
#
|
||||
# The identifier LGPL-2.1-or-later also appears in a sample configuration
|
||||
# template in docs/tutorial.rst, but the configuration in question is filled
|
||||
# with placeholder values and is not copied from a real project, so it’s
|
||||
# reasonable to consider LGPL-2.1-or-later a placeholder rather than a real
|
||||
# license as well.
|
||||
#
|
||||
# -----
|
||||
#
|
||||
# Additionally, the following sources are under licenses other than (Apache-2.0
|
||||
# OR GPL-3.0-or-later), but are not packaged in any of the binary RPMs:
|
||||
#
|
||||
# CC0-1.0:
|
||||
# - .editorconfig (not installed)
|
||||
# - .gitlab-ci.yml (not installed)
|
||||
# - gi-docgen.doap (not installed)
|
||||
# - MANIFEST.in (not installed)
|
||||
# - pytest.ini (not installed; test only)
|
||||
# - tests/data/config/*.toml (not installed; test only)
|
||||
#
|
||||
# CC-BY-SA-3.0:
|
||||
# - docs/gi-docgen.{png,svg} (for HTML docs; not currently packaged)
|
||||
# - code-of-conduct.md (not installed)
|
||||
#
|
||||
# OFL-1.1:
|
||||
# - gidocgen/templates/basic/*.{woff,woff2} (removed in prep)
|
||||
#
|
||||
# GPL-2.0-or-later:
|
||||
# - tests/data/gir/{Utility-1.0,Regress-1.0}.gir (not installed; test only)
|
||||
#
|
||||
# LGPL-2.0-or-later:
|
||||
# - tests/data/gir/{GLib,GObject,Gio}-2.0.gir (not installed; test only)
|
||||
#
|
||||
# LGPL-2.0-or-later OR MPL-1.1:
|
||||
# - tests/data/gir/cairo-1.0.gir (not installed; test only)
|
||||
License: %{shrink:
|
||||
(Apache-2.0 OR GPL-3.0-or-later) AND
|
||||
BSD-2-Clause AND
|
||||
MIT AND
|
||||
CC0-1.0
|
||||
}
|
||||
URL: https://gitlab.gnome.org/GNOME/gi-docgen
|
||||
Source: %{url}/-/archive/%{version}/gi-docgen-%{version}.tar.bz2
|
||||
|
||||
# We are prohibited from bundling fonts, and we are prohibited from shipping
|
||||
# fonts in web font formats; see
|
||||
# https://docs.fedoraproject.org/en-US/packaging-guidelines/FontsPolicy/#_web_fonts.
|
||||
#
|
||||
# Since upstream uses *only* web fonts, we need a patch. We haven’t offered it
|
||||
# upstream since upstream has no reason NOT to use web fonts.
|
||||
#
|
||||
# This patch removes all references to WOFF/WOFF2 font files (which we still
|
||||
# must remove in %%prep) and ensures the CSS correctly references corresponding
|
||||
# local system fonts.
|
||||
Patch0: gi-docgen-2022.2-no-web-fonts.patch
|
||||
|
||||
# https://gitlab.gnome.org/GNOME/gi-docgen/-/issues/179
|
||||
Patch1: fix-broken-since-obsoletes.patch
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
BuildRequires: python3-devel
|
||||
|
||||
BuildRequires: python3dist(pytest)
|
||||
|
||||
# Documentation
|
||||
%if %{with doc_pdf}
|
||||
BuildRequires: make
|
||||
BuildRequires: python3dist(sphinx)
|
||||
BuildRequires: python3dist(sphinx-rtd-theme)
|
||||
BuildRequires: python3-sphinx-latex
|
||||
BuildRequires: latexmk
|
||||
%endif
|
||||
|
||||
# Unbundling fonts:
|
||||
BuildRequires: font(redhatdisplay)
|
||||
BuildRequires: font(redhatdisplayblack)
|
||||
BuildRequires: font(redhatdisplaymedium)
|
||||
BuildRequires: font(redhattext)
|
||||
BuildRequires: font(redhattextmedium)
|
||||
BuildRequires: font(sourcecodepro)
|
||||
BuildRequires: font(sourcecodeprosemibold)
|
||||
|
||||
# Unbundling fonts:
|
||||
Requires: gi-docgen-fonts = %{version}-%{release}
|
||||
|
||||
# Trivial fork of https://github.com/jhawthorn/fzy.js (looks like it was
|
||||
# basically just wrapped in an IIFE). Given that modification, it’s not clear
|
||||
# how we could unbundle it, either downstream or with some kind of upstream
|
||||
# support.
|
||||
#
|
||||
# It’s not clear what version was used for the fork.
|
||||
Provides: bundled(js-fzy)
|
||||
|
||||
%description
|
||||
GI-DocGen is a document generator for GObject-based libraries. GObject is the
|
||||
base type system of the GNOME project. GI-Docgen reuses the introspection data
|
||||
generated by GObject-based libraries to generate the API reference of these
|
||||
libraries, as well as other ancillary documentation.
|
||||
|
||||
GI-DocGen is not a general purpose documentation tool for C libraries.
|
||||
|
||||
While GI-DocGen can be used to generate API references for most GObject/C
|
||||
libraries that expose introspection data, its main goal is to generate the
|
||||
reference for GTK and its immediate dependencies. Any and all attempts at
|
||||
making this tool more generic, or to cover more use cases, will be weighted
|
||||
heavily against its primary goal.
|
||||
|
||||
GI-DocGen is still in development. The recommended use of GI-DocGen is to add
|
||||
it as a sub-project to your Meson build system, and vendor it when releasing
|
||||
dist archives.
|
||||
|
||||
You should not depend on a system-wide installation until GI-DocGen is declared
|
||||
stable.
|
||||
|
||||
|
||||
%package fonts
|
||||
Summary: Metapackage providing fonts for gi-docgen output
|
||||
# Really, there is nothing copyrightable in this metapackage, so we give it the
|
||||
# overall license of the project.
|
||||
License: Apache-2.0 OR GPL-3.0-or-later
|
||||
|
||||
Requires: font(redhatdisplay)
|
||||
Requires: font(redhatdisplayblack)
|
||||
Requires: font(redhatdisplaymedium)
|
||||
Requires: font(redhattext)
|
||||
Requires: font(redhattextmedium)
|
||||
Requires: font(sourcecodepro)
|
||||
Requires: font(sourcecodeprosemibold)
|
||||
|
||||
%description fonts
|
||||
Because web fonts from upstream are not bundled in the gi-docgen package,
|
||||
documentation packages generated with gi-docgen must depend on this metapackage
|
||||
to ensure the proper system fonts are present.
|
||||
|
||||
|
||||
%package doc
|
||||
Summary: Documentation for gi-docgen
|
||||
License: (Apache-2.0 OR GPL-3.0-or-later) AND CC0-1.0
|
||||
|
||||
%description doc
|
||||
Documentation for gi-docgen.
|
||||
|
||||
|
||||
%generate_buildrequires
|
||||
%pyproject_buildrequires
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
||||
# Remove all bundled fonts. See gi-docgen-*-no-web-fonts.patch.
|
||||
find . -type f \( -name '*.woff' -o -name '*.woff2' \) -print -delete
|
||||
|
||||
|
||||
%build
|
||||
%pyproject_wheel
|
||||
|
||||
%if %{with doc_pdf}
|
||||
sphinx-build -b latex -j%{?_smp_build_ncpus} docs %{_vpath_builddir}/_latex
|
||||
%make_build -C %{_vpath_builddir}/_latex LATEXMKOPTS='-quiet'
|
||||
%endif
|
||||
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
%pyproject_save_files gidocgen
|
||||
|
||||
install -t '%{buildroot}%{_pkgdocdir}' -D -m 0644 -p \
|
||||
CHANGES.md \
|
||||
CONTRIBUTING.md \
|
||||
docs/CODEOWNERS \
|
||||
README.md
|
||||
%if %{with doc_pdf}
|
||||
install -t '%{buildroot}%{_pkgdocdir}' -p -m 0644 \
|
||||
'%{_vpath_builddir}/_latex/gi-docgen.pdf'
|
||||
%endif
|
||||
cp -rp examples '%{buildroot}%{_pkgdocdir}/'
|
||||
|
||||
|
||||
%check
|
||||
%pytest
|
||||
|
||||
|
||||
%files -f %{pyproject_files}
|
||||
%license LICENSES/ .reuse/dep5
|
||||
|
||||
%{_bindir}/gi-docgen
|
||||
%{_mandir}/man1/gi-docgen.1*
|
||||
# Normally, this would go in a -devel package, but there is little point in
|
||||
# providing a -devel package for *just* the .pc file when there are no
|
||||
# libraries or headers.
|
||||
%{_datadir}/pkgconfig/gi-docgen.pc
|
||||
|
||||
|
||||
%files fonts
|
||||
# Empty; this is a metapackage
|
||||
|
||||
|
||||
%files doc
|
||||
%license LICENSES/ .reuse/dep5
|
||||
%doc %{_pkgdocdir}/
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Dec 18 2023 Michael Catanzaro <mcatanzaro@redhat.com> - 2023.3-2
|
||||
- Add patch to fix broken Since/Obsoletes
|
||||
|
||||
* Sun Nov 26 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 2023.3-1
|
||||
- Update to 2023.3 (close RHBZ#2251397)
|
||||
|
||||
* Sun Nov 26 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 2023.1-6
|
||||
- Package LICENSES/ as a directory
|
||||
|
||||
* Sun Nov 26 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 2023.1-2
|
||||
- Don’t assume %%_smp_mflags is -j%%_smp_build_ncpus
|
||||
|
||||
* Sat Jan 07 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 2023.1-1
|
||||
- Update to 2023.1 (close RHBZ#2158850)
|
||||
|
||||
* Sat Jan 07 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 2022.2-4
|
||||
- Revert "Temporarily add explicit BR on pyproject-rpm-macros"
|
||||
|
||||
* Sat Jan 07 2023 Miro Hrončok <miro@hroncok.cz> - 2022.2-3
|
||||
- Use tomllib (tomli) instated of deprecated python3-toml
|
||||
|
||||
* Sat Jan 07 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 2022.2-2
|
||||
- Update License to SPDX
|
||||
|
||||
* Sat Jan 07 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 2022.2-1
|
||||
- Update to 2022.2 (close RHBZ#2140725)
|
||||
|
||||
* Sat Jan 07 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 2022.1-11
|
||||
- Drop explicit -r for pyproject_buildrequires; no longer needed
|
||||
|
||||
* Sat Jan 07 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 2022.1-10
|
||||
- Drop code-of-conduct.md from the -doc subpackage
|
||||
|
||||
* Wed Nov 16 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 2022.1-9
|
||||
- Initial package for EPEL9 (close RHBZ#2072649)
|
||||
|
||||
* Thu Nov 03 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 2022.1-8
|
||||
- Temporarily add explicit BR on pyproject-rpm-macros
|
||||
|
||||
* Tue Aug 23 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 2022.1-7
|
||||
- Parallelize sphinx-build
|
||||
|
||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2022.1-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 2022.1-5
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
* Wed Apr 20 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 2022.1-4
|
||||
- Drop “forge” macros, which are not doing much here
|
||||
|
||||
* Sat Apr 16 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 2022.1-3
|
||||
- Update spec file comment
|
||||
|
||||
* Sat Apr 16 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 2022.1-2
|
||||
- Stop numbering patches
|
||||
|
||||
* Wed Feb 16 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 2022.1-1
|
||||
- Update to 2022.1 (close RHBZ#2053858)
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2021.8-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Sat Nov 27 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2021.8-2
|
||||
- Reduce LaTeX PDF build verbosity
|
||||
|
||||
* Thu Oct 21 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2021.8-1
|
||||
- Update to 2021.8 (close RHBZ#2016447)
|
||||
|
||||
* Thu Oct 21 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2021.7-5
|
||||
- Reduce macro indirection in the spec file
|
||||
|
||||
* Wed Sep 29 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2021.7-4
|
||||
- Improve comments about test availability
|
||||
|
||||
* Mon Sep 27 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2021.7-3
|
||||
- Build PDF docs instead of HTML
|
||||
|
||||
* Sun Sep 12 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2021.7-2
|
||||
- Drop BR on pyproject-rpm-macros, now implied by python3-devel
|
||||
|
||||
* Mon Aug 16 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2021.7-1
|
||||
- Update to 2021.7
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2021.6-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Fri Jun 25 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 2021.6-1
|
||||
- Initial package
|
||||
|
23
base/libheif/50aa08176e44178eeffcb7a66f37d7cad074f51b.patch
Normal file
23
base/libheif/50aa08176e44178eeffcb7a66f37d7cad074f51b.patch
Normal file
@ -0,0 +1,23 @@
|
||||
From 50aa08176e44178eeffcb7a66f37d7cad074f51b Mon Sep 17 00:00:00 2001
|
||||
From: zhubo <zhubo.z@bytedance.com>
|
||||
Date: Fri, 29 Dec 2023 23:16:57 +0800
|
||||
Subject: [PATCH] Add kvazaar to REQUIRES_PRIVATE
|
||||
|
||||
---
|
||||
CMakeLists.txt | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index d996845e39..3a3f51d86f 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -234,6 +234,9 @@ endif()
|
||||
if (X265_FOUND AND NOT (PLUGIN_LOADING_SUPPORTED_AND_ENABLED AND WITH_X265_PLUGIN))
|
||||
list(APPEND REQUIRES_PRIVATE "x265")
|
||||
endif()
|
||||
+if (KVAZAAR_FOUND AND NOT (PLUGIN_LOADING_SUPPORTED_AND_ENABLED AND WITH_KVAZAAR_PLUGIN))
|
||||
+ list(APPEND REQUIRES_PRIVATE "kvazaar")
|
||||
+endif()
|
||||
if ((AOM_DECODER_FOUND AND NOT (PLUGIN_LOADING_SUPPORTED_AND_ENABLED AND WITH_AOM_DECODER_PLUGIN))
|
||||
OR (AOM_ENCODER_FOUND AND NOT (PLUGIN_LOADING_SUPPORTED_AND_ENABLED AND WITH_AOM_ENCODER_PLUGIN)))
|
||||
list(APPEND REQUIRES_PRIVATE "aom")
|
42
base/libheif/877de6b398198bca387df791b9232922c5721c80.patch
Normal file
42
base/libheif/877de6b398198bca387df791b9232922c5721c80.patch
Normal file
@ -0,0 +1,42 @@
|
||||
From 877de6b398198bca387df791b9232922c5721c80 Mon Sep 17 00:00:00 2001
|
||||
From: zhailiangliang <zhailiangliang@loongson.cn>
|
||||
Date: Thu, 21 Dec 2023 15:45:29 +0800
|
||||
Subject: [PATCH] fix memory leaks in function JpegEncoder::Encode
|
||||
|
||||
---
|
||||
examples/encoder_jpeg.cc | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/examples/encoder_jpeg.cc b/examples/encoder_jpeg.cc
|
||||
index 6a8bae163a..b82f8aa39b 100644
|
||||
--- a/examples/encoder_jpeg.cc
|
||||
+++ b/examples/encoder_jpeg.cc
|
||||
@@ -179,6 +179,9 @@ bool JpegEncoder::Encode(const struct heif_image_handle* handle,
|
||||
uint32_t skip = (exifdata[0]<<24) | (exifdata[1]<<16) | (exifdata[2]<<8) | exifdata[3];
|
||||
if (skip > (exifsize - 4)) {
|
||||
fprintf(stderr, "Invalid EXIF data (offset too large)\n");
|
||||
+ free(exifdata);
|
||||
+ jpeg_destroy_compress(&cinfo);
|
||||
+ fclose(fp);
|
||||
return false;
|
||||
}
|
||||
skip += 4;
|
||||
@@ -188,6 +191,9 @@ bool JpegEncoder::Encode(const struct heif_image_handle* handle,
|
||||
|
||||
if (size > std::numeric_limits<uint32_t>::max()) {
|
||||
fprintf(stderr, "EXIF larger than 4GB is not supported");
|
||||
+ free(exifdata);
|
||||
+ jpeg_destroy_compress(&cinfo);
|
||||
+ fclose(fp);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -258,6 +264,8 @@ bool JpegEncoder::Encode(const struct heif_image_handle* handle,
|
||||
|
||||
if (heif_image_get_bits_per_pixel(image, heif_channel_Y) != 8) {
|
||||
fprintf(stderr, "JPEG writer cannot handle image with >8 bpp.\n");
|
||||
+ jpeg_destroy_compress(&cinfo);
|
||||
+ fclose(fp);
|
||||
return false;
|
||||
}
|
||||
|
21
base/libheif/90955e3118d687fa8c36747a7b349caebc82707d.patch
Normal file
21
base/libheif/90955e3118d687fa8c36747a7b349caebc82707d.patch
Normal file
@ -0,0 +1,21 @@
|
||||
From 90955e3118d687fa8c36747a7b349caebc82707d Mon Sep 17 00:00:00 2001
|
||||
From: zhailiangliang <zhailiangliang@loongson.cn>
|
||||
Date: Thu, 11 Jan 2024 17:48:52 +0800
|
||||
Subject: [PATCH] Fix potential memory leak in file heif_convert.cc
|
||||
|
||||
---
|
||||
examples/heif_convert.cc | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/examples/heif_convert.cc b/examples/heif_convert.cc
|
||||
index 0e3cb4d2de..e57573235c 100644
|
||||
--- a/examples/heif_convert.cc
|
||||
+++ b/examples/heif_convert.cc
|
||||
@@ -609,6 +609,7 @@ int main(int argc, char** argv)
|
||||
const char* auxTypeC = nullptr;
|
||||
err = heif_image_handle_get_auxiliary_type(aux_handle, &auxTypeC);
|
||||
if (err.code) {
|
||||
+ heif_image_release(aux_image);
|
||||
heif_image_handle_release(aux_handle);
|
||||
heif_image_handle_release(handle);
|
||||
std::cerr << "Could not get type of auxiliary image: " << err.message << "\n";
|
141
base/libheif/9598ddeb3dff4e51a9989067e912baf502410cee.patch
Normal file
141
base/libheif/9598ddeb3dff4e51a9989067e912baf502410cee.patch
Normal file
@ -0,0 +1,141 @@
|
||||
From 9598ddeb3dff4e51a9989067e912baf502410cee Mon Sep 17 00:00:00 2001
|
||||
From: Heiko Lewin <hlewin@worldiety.de>
|
||||
Date: Sun, 10 Mar 2024 13:32:18 +0100
|
||||
Subject: [PATCH] encoder_kvazaar.cc: Fix some memory leaks
|
||||
|
||||
---
|
||||
libheif/plugins/encoder_kvazaar.cc | 50 +++++++++++++-----------------
|
||||
1 file changed, 22 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/libheif/plugins/encoder_kvazaar.cc b/libheif/plugins/encoder_kvazaar.cc
|
||||
index eada77f9fe..158f174b04 100644
|
||||
--- a/libheif/plugins/encoder_kvazaar.cc
|
||||
+++ b/libheif/plugins/encoder_kvazaar.cc
|
||||
@@ -361,6 +361,11 @@ static void copy_plane(kvz_pixel* out_p,
|
||||
}
|
||||
|
||||
|
||||
+template<typename T, typename D>
|
||||
+std::unique_ptr<T, D> make_guard(T* ptr, D&& deleter) {
|
||||
+ return std::unique_ptr<T, D>(ptr, deleter);
|
||||
+}
|
||||
+
|
||||
static struct heif_error kvazaar_encode_image(void* encoder_raw, const struct heif_image* image,
|
||||
heif_image_input_class input_class)
|
||||
{
|
||||
@@ -380,7 +385,8 @@ static struct heif_error kvazaar_encode_
|
||||
return err;
|
||||
}
|
||||
|
||||
- kvz_config* config = api->config_alloc();
|
||||
+ auto uconfig = make_guard(api->config_alloc(), [api](kvz_config* cfg) { api->config_destroy(cfg); });
|
||||
+ kvz_config* config = uconfig.get();
|
||||
api->config_init(config); // param, encoder->preset.c_str(), encoder->tune.c_str());
|
||||
#if HAVE_KVAZAAR_ENABLE_LOGGING
|
||||
config->enable_logging_output = 0;
|
||||
@@ -541,9 +547,9 @@ static struct heif_error kvazaar_encode_
|
||||
}
|
||||
*/
|
||||
|
||||
- kvz_picture* pic = api->picture_alloc_csp(kvzChroma, encoded_width, encoded_height);
|
||||
+ auto upic = make_guard(api->picture_alloc_csp(kvzChroma, encoded_width, encoded_height), [api](kvz_picture* pic) { api->picture_free(pic); });
|
||||
+ kvz_picture* pic = upic.get();
|
||||
if (!pic) {
|
||||
- api->config_destroy(config);
|
||||
return heif_error{
|
||||
heif_error_Encoder_plugin_error,
|
||||
heif_suberror_Encoder_encoding,
|
||||
@@ -573,11 +579,9 @@ static struct heif_error kvazaar_encode_
|
||||
encoded_width >> chroma_stride_shift, encoded_height >> chroma_height_shift);
|
||||
}
|
||||
|
||||
- kvz_encoder* kvzencoder = api->encoder_open(config);
|
||||
+ auto uencoder = make_guard(api->encoder_open(config), [api](kvz_encoder* e) { api->encoder_close(e); });
|
||||
+ kvz_encoder* kvzencoder = uencoder.get();
|
||||
if (!kvzencoder) {
|
||||
- api->picture_free(pic);
|
||||
- api->config_destroy(config);
|
||||
-
|
||||
return heif_error{
|
||||
heif_error_Encoder_plugin_error,
|
||||
heif_suberror_Encoder_encoding,
|
||||
@@ -586,14 +590,18 @@ static struct heif_error kvazaar_encode_
|
||||
}
|
||||
|
||||
kvz_data_chunk* data = nullptr;
|
||||
+ auto free_data = [api](kvz_data_chunk** data){
|
||||
+ if(*data) {
|
||||
+ api->chunk_free(*data);
|
||||
+ *data = nullptr;
|
||||
+ }
|
||||
+ };
|
||||
+ auto data_deleter = std::unique_ptr<kvz_data_chunk*, decltype(free_data)>(&data, free_data);
|
||||
+
|
||||
uint32_t data_len;
|
||||
int success;
|
||||
success = api->encoder_headers(kvzencoder, &data, &data_len);
|
||||
if (!success) {
|
||||
- api->picture_free(pic);
|
||||
- api->config_destroy(config);
|
||||
- api->encoder_close(kvzencoder);
|
||||
-
|
||||
return heif_error{
|
||||
heif_error_Encoder_plugin_error,
|
||||
heif_suberror_Encoder_encoding,
|
||||
@@ -602,17 +610,13 @@ static struct heif_error kvazaar_encode_
|
||||
}
|
||||
|
||||
append_chunk_data(data, encoder->output_data);
|
||||
+ free_data(&data);
|
||||
|
||||
success = api->encoder_encode(kvzencoder,
|
||||
pic,
|
||||
&data, &data_len,
|
||||
nullptr, nullptr, nullptr);
|
||||
if (!success) {
|
||||
- api->chunk_free(data);
|
||||
- api->picture_free(pic);
|
||||
- api->config_destroy(config);
|
||||
- api->encoder_close(kvzencoder);
|
||||
-
|
||||
return heif_error{
|
||||
heif_error_Encoder_plugin_error,
|
||||
heif_suberror_Encoder_encoding,
|
||||
@@ -621,6 +625,7 @@ static struct heif_error kvazaar_encode_
|
||||
}
|
||||
|
||||
append_chunk_data(data, encoder->output_data);
|
||||
+ free_data(&data);
|
||||
|
||||
for (;;) {
|
||||
success = api->encoder_encode(kvzencoder,
|
||||
@@ -628,11 +633,6 @@ static struct heif_error kvazaar_encode_
|
||||
&data, &data_len,
|
||||
nullptr, nullptr, nullptr);
|
||||
if (!success) {
|
||||
- api->chunk_free(data);
|
||||
- api->picture_free(pic);
|
||||
- api->config_destroy(config);
|
||||
- api->encoder_close(kvzencoder);
|
||||
-
|
||||
return heif_error{
|
||||
heif_error_Encoder_plugin_error,
|
||||
heif_suberror_Encoder_encoding,
|
||||
@@ -645,16 +645,10 @@ static struct heif_error kvazaar_encode_
|
||||
}
|
||||
|
||||
append_chunk_data(data, encoder->output_data);
|
||||
+ free_data(&data);
|
||||
}
|
||||
|
||||
(void) success;
|
||||
-
|
||||
- api->chunk_free(data);
|
||||
-
|
||||
- api->encoder_close(kvzencoder);
|
||||
- api->picture_free(pic);
|
||||
- api->config_destroy(config);
|
||||
-
|
||||
return heif_error_ok;
|
||||
}
|
||||
|
22
base/libheif/a911b26a902c5f89fee2dc20ac4dfaafcb8144ec.patch
Normal file
22
base/libheif/a911b26a902c5f89fee2dc20ac4dfaafcb8144ec.patch
Normal file
@ -0,0 +1,22 @@
|
||||
From a911b26a902c5f89fee2dc20ac4dfaafcb8144ec Mon Sep 17 00:00:00 2001
|
||||
From: Andrey Semashev <Lastique@users.noreply.github.com>
|
||||
Date: Fri, 15 Mar 2024 17:46:48 +0300
|
||||
Subject: [PATCH] Fix compilation with libsvtav1 2.0.0.
|
||||
|
||||
---
|
||||
libheif/plugins/encoder_svt.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libheif/plugins/encoder_svt.cc b/libheif/plugins/encoder_svt.cc
|
||||
index 4597d7b8fc..1ff3bce2d5 100644
|
||||
--- a/libheif/plugins/encoder_svt.cc
|
||||
+++ b/libheif/plugins/encoder_svt.cc
|
||||
@@ -646,7 +646,7 @@ struct heif_error svt_encode_image(void* encoder_raw, const struct heif_image* i
|
||||
|
||||
if (nclx) {
|
||||
svt_config.color_description_present_flag = true;
|
||||
-#if SVT_AV1_VERSION_MAJOR == 1
|
||||
+#if SVT_AV1_VERSION_MAJOR >= 1
|
||||
svt_config.color_primaries = static_cast<EbColorPrimaries>(nclx->color_primaries);
|
||||
svt_config.transfer_characteristics = static_cast<EbTransferCharacteristics>(nclx->transfer_characteristics);
|
||||
svt_config.matrix_coefficients = static_cast<EbMatrixCoefficients>(nclx->matrix_coefficients);
|
36
base/libheif/bef5f0f49f9024957189b5b465cd4d07078cd06f.patch
Normal file
36
base/libheif/bef5f0f49f9024957189b5b465cd4d07078cd06f.patch
Normal file
@ -0,0 +1,36 @@
|
||||
From bef5f0f49f9024957189b5b465cd4d07078cd06f Mon Sep 17 00:00:00 2001
|
||||
From: Brad Hards <bradh@frogmouth.net>
|
||||
Date: Sat, 6 Jan 2024 13:59:21 +1100
|
||||
Subject: [PATCH] kvazaar: protect against unexpected chroma values
|
||||
|
||||
Resolves #1089
|
||||
---
|
||||
libheif/plugins/encoder_kvazaar.cc | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/libheif/plugins/encoder_kvazaar.cc b/libheif/plugins/encoder_kvazaar.cc
|
||||
index 408f1bf84d..eada77f9fe 100644
|
||||
--- a/libheif/plugins/encoder_kvazaar.cc
|
||||
+++ b/libheif/plugins/encoder_kvazaar.cc
|
||||
@@ -35,6 +35,7 @@ extern "C" {
|
||||
|
||||
static const char* kError_unspecified_error = "Unspecified encoder error";
|
||||
static const char* kError_unsupported_bit_depth = "Bit depth not supported by kvazaar";
|
||||
+static const char* kError_unsupported_chroma = "Unsupported chroma type";
|
||||
//static const char* kError_unsupported_image_size = "Images smaller than 16 pixels are not supported";
|
||||
|
||||
|
||||
@@ -492,6 +493,13 @@ static struct heif_error kvazaar_encode_image(void* encoder_raw, const struct he
|
||||
input_chroma_width = input_width;
|
||||
input_chroma_height = input_height;
|
||||
}
|
||||
+ else {
|
||||
+ return heif_error{
|
||||
+ heif_error_Encoder_plugin_error,
|
||||
+ heif_suberror_Unsupported_image_type,
|
||||
+ kError_unsupported_chroma
|
||||
+ };
|
||||
+ }
|
||||
|
||||
if (chroma != heif_chroma_monochrome) {
|
||||
int w = heif_image_get_width(image, heif_channel_Y);
|
22
base/libheif/dfd88deb1d80b4195ef16cddad256f33b46fbe29.patch
Normal file
22
base/libheif/dfd88deb1d80b4195ef16cddad256f33b46fbe29.patch
Normal file
@ -0,0 +1,22 @@
|
||||
From dfd88deb1d80b4195ef16cddad256f33b46fbe29 Mon Sep 17 00:00:00 2001
|
||||
From: Brad Hards <bradh@frogmouth.net>
|
||||
Date: Wed, 17 Jan 2024 11:47:15 +1100
|
||||
Subject: [PATCH] examples: fix leak in PNG decoder
|
||||
|
||||
This shows up with heif-enc (e.g. with --avif) under valgrind
|
||||
---
|
||||
examples/decoder_png.cc | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/examples/decoder_png.cc b/examples/decoder_png.cc
|
||||
index 5742f02653..c3eeed88a8 100644
|
||||
--- a/examples/decoder_png.cc
|
||||
+++ b/examples/decoder_png.cc
|
||||
@@ -419,6 +419,7 @@ InputImage loadPNG(const char* filename, int output_bit_depth)
|
||||
} // for
|
||||
|
||||
delete[] row_pointers;
|
||||
+ fclose(fh);
|
||||
|
||||
input_image.image = std::shared_ptr<heif_image>(image,
|
||||
[](heif_image* img) { heif_image_release(img); });
|
17
base/libheif/libheif-no-hevc-tests.patch
Normal file
17
base/libheif/libheif-no-hevc-tests.patch
Normal file
@ -0,0 +1,17 @@
|
||||
diff -up libheif-1.16.2/tests/encode.cc.no-hevc libheif-1.16.2/tests/encode.cc
|
||||
--- libheif-1.16.2/tests/encode.cc.no-hevc 2023-05-22 21:00:47.000000000 +0200
|
||||
+++ libheif-1.16.2/tests/encode.cc 2023-09-08 14:22:08.408234336 +0200
|
||||
@@ -148,11 +148,13 @@ static void test_ispe_size(heif_compress
|
||||
|
||||
TEST_CASE( "ispe odd size", "[heif_context]" ) {
|
||||
|
||||
+#if 0
|
||||
// HEVC encoders typically encode with even dimensions only
|
||||
test_ispe_size(heif_compression_HEVC, heif_orientation_normal, 121,99, 122,100);
|
||||
test_ispe_size(heif_compression_HEVC, heif_orientation_rotate_180, 121,99, 122,100);
|
||||
test_ispe_size(heif_compression_HEVC, heif_orientation_rotate_90_cw, 121,99, 122,100);
|
||||
test_ispe_size(heif_compression_HEVC, heif_orientation_rotate_90_cw, 120,100, 120,100);
|
||||
+#endif
|
||||
|
||||
// AVIF encoders typically encode with odd dimensions
|
||||
test_ispe_size(heif_compression_AV1, heif_orientation_normal, 121,99, 121,99);
|
338
base/libheif/libheif.spec
Normal file
338
base/libheif/libheif.spec
Normal file
@ -0,0 +1,338 @@
|
||||
%global somajor 1
|
||||
|
||||
# Unable to ship this in Fedora
|
||||
%bcond_with hevc
|
||||
|
||||
%bcond_with check
|
||||
|
||||
Name: libheif
|
||||
Version: 1.17.6
|
||||
Release: 1%{?dist}
|
||||
Summary: HEIF and AVIF file format decoder and encoder
|
||||
|
||||
License: LGPL-3.0-or-later and MIT
|
||||
URL: https://github.com/strukturag/libheif
|
||||
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
|
||||
Patch0: libheif-no-hevc-tests.patch
|
||||
|
||||
# Fix for CVE-2024-25269 (https://github.com/strukturag/libheif/issues/1073)
|
||||
Patch1: https://github.com/strukturag/libheif/commit/877de6b398198bca387df791b9232922c5721c80.patch
|
||||
# Fix compilation with libsvtav1 2.0.0.
|
||||
Patch2: https://github.com/strukturag/libheif/commit/a911b26a902c5f89fee2dc20ac4dfaafcb8144ec.patch
|
||||
# Backport memory leaks fix from master
|
||||
Patch3: https://github.com/strukturag/libheif/commit/9598ddeb3dff4e51a9989067e912baf502410cee.patch
|
||||
Patch4: https://github.com/strukturag/libheif/commit/dfd88deb1d80b4195ef16cddad256f33b46fbe29.patch
|
||||
Patch5: https://github.com/strukturag/libheif/commit/90955e3118d687fa8c36747a7b349caebc82707d.patch
|
||||
Patch6: https://github.com/strukturag/libheif/commit/bef5f0f49f9024957189b5b465cd4d07078cd06f.patch
|
||||
Patch7: https://github.com/strukturag/libheif/commit/50aa08176e44178eeffcb7a66f37d7cad074f51b.patch
|
||||
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: pkgconfig(aom)
|
||||
BuildRequires: pkgconfig(dav1d)
|
||||
BuildRequires: pkgconfig(libjpeg)
|
||||
BuildRequires: pkgconfig(libopenjp2)
|
||||
BuildRequires: pkgconfig(libpng)
|
||||
%if ! (0%{?rhel} && 0%{?rhel} <= 9)
|
||||
BuildRequires: pkgconfig(libsharpyuv)
|
||||
BuildRequires: pkgconfig(rav1e)
|
||||
BuildRequires: pkgconfig(SvtAv1Enc)
|
||||
%endif
|
||||
|
||||
%description
|
||||
libheif is an ISO/IEC 23008-12:2017 HEIF and AVIF (AV1 Image File Format)
|
||||
file format decoder and encoder.
|
||||
|
||||
%files
|
||||
%license COPYING
|
||||
%doc README.md
|
||||
%{_libdir}/*.so.%{somajor}{,.*}
|
||||
%dir %{_libdir}/%{name}
|
||||
%if ! (0%{?rhel} && 0%{?rhel} <= 9)
|
||||
%{_libdir}/%{name}/%{name}-rav1e.so
|
||||
%{_libdir}/%{name}/%{name}-svtenc.so
|
||||
%endif
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
%package -n heif-pixbuf-loader
|
||||
Summary: HEIF image loader for GTK+ applications
|
||||
BuildRequires: pkgconfig(gdk-pixbuf-2.0)
|
||||
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Requires: gdk-pixbuf2%{?_isa}
|
||||
|
||||
%description -n heif-pixbuf-loader
|
||||
This package provides a plugin to load HEIF files in GTK+ applications.
|
||||
|
||||
%files -n heif-pixbuf-loader
|
||||
%{_libdir}/gdk-pixbuf-2.0/*/loaders/libpixbufloader-heif.so
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
%package tools
|
||||
Summary: Tools for manipulating HEIF files
|
||||
License: MIT
|
||||
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Requires: shared-mime-info
|
||||
|
||||
%description tools
|
||||
This package provides tools for manipulating HEIF files.
|
||||
|
||||
%files tools
|
||||
%{_bindir}/heif-*
|
||||
%{_mandir}/man1/heif-*
|
||||
%{_datadir}/thumbnailers/heif.thumbnailer
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
%if %{with hevc}
|
||||
%package hevc
|
||||
Summary: HEVC codec support for HEIC files
|
||||
BuildRequires: pkgconfig(libde265)
|
||||
BuildRequires: pkgconfig(x265)
|
||||
Supplements: %{name}
|
||||
|
||||
%description hevc
|
||||
This package adds support for HEVC-encoded HEIC files to applications
|
||||
that use %{name} to read HEIF image files.
|
||||
|
||||
%files hevc
|
||||
%{_libdir}/%{name}/%{name}-libde265.so
|
||||
%{_libdir}/%{name}/%{name}-x265.so
|
||||
%endif
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
%package devel
|
||||
Summary: Development files for %{name}
|
||||
Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description devel
|
||||
The %{name}-devel package contains libraries and header files for
|
||||
developing applications that use %{name}.
|
||||
|
||||
%files devel
|
||||
%{_includedir}/%{name}/
|
||||
%{_libdir}/cmake/%{name}/
|
||||
%{_libdir}/pkgconfig/%{name}.pc
|
||||
%{_libdir}/*.so
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%if %{without hevc}
|
||||
%patch0 -p1
|
||||
%endif
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
rm -rf third-party/
|
||||
|
||||
|
||||
%build
|
||||
%cmake \
|
||||
-GNinja \
|
||||
-DPLUGIN_DIRECTORY=%{_libdir}/%{name} \
|
||||
-DWITH_DAV1D=ON \
|
||||
-DWITH_DAV1D_PLUGIN=OFF \
|
||||
-DWITH_JPEG_DECODER=ON \
|
||||
-DWITH_JPEG_ENCODER=ON \
|
||||
-DWITH_OpenJPEG_DECODER=ON \
|
||||
-DWITH_OpenJPEG_DECODER_PLUGIN=OFF \
|
||||
-DWITH_OpenJPEG_ENCODER=ON \
|
||||
-DWITH_OpenJPEG_ENCODER_PLUGIN=OFF \
|
||||
%if ! (0%{?rhel} && 0%{?rhel} <= 9)
|
||||
-DWITH_RAV1E=ON \
|
||||
-DWITH_SvtEnc=ON \
|
||||
%endif
|
||||
-DWITH_UNCOMPRESSED_CODEC=ON \
|
||||
%{?with_check:-DBUILD_TESTING=ON -DWITH_REDUCED_VISIBILITY=OFF} \
|
||||
%{?with_hevc:-DWITH_LIBDE265_PLUGIN:BOOL=ON -DWITH_X265_PLUGIN:BOOL=ON} \
|
||||
-Wno-dev
|
||||
|
||||
%cmake_build
|
||||
|
||||
|
||||
%install
|
||||
%cmake_install
|
||||
|
||||
|
||||
%if %{with check}
|
||||
%check
|
||||
# Tests are not yet ported to CMake
|
||||
%ctest
|
||||
%endif
|
||||
|
||||
|
||||
%changelog
|
||||
* Sat Apr 13 2024 Robert-André Mauchin <zebob.m@gmail.com> - 1.17.6-`1
|
||||
- Update to 1.17.6
|
||||
- Security fix for CVE-2024-25269
|
||||
- Close: rhbz#2255512
|
||||
- Fix: rhbz#2267897
|
||||
|
||||
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.17.5-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.17.5-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Jan 12 2024 Fabio Valentini <decathorpe@gmail.com> - 1.17.5-2
|
||||
- Rebuild for dav1d 1.3.0
|
||||
|
||||
* Fri Dec 15 2023 Dominik Mierzejewski <dominik@greysector.net> - 1.17.5-2
|
||||
- Update to 1.17.5 (rhbz#2244583)
|
||||
- Backport fixes for: CVE-2023-49460 (rhbz#2253575, rhbz#2253576)
|
||||
CVE-2023-49462 (rhbz#2253567, rhbz#2253568)
|
||||
CVE-2023-49463 (rhbz#2253565, rhbz#2253566)
|
||||
CVE-2023-49464 (rhbz#2253562, rhbz#2253563)
|
||||
- Simplify conditionals for rav1e and svt-av1 encoders
|
||||
- Enable JPEG2000 and dav1d decoders/encoders
|
||||
|
||||
* Fri Sep 08 2023 Dominik Mierzejewski <dominik@greysector.net> - 1.16.2-2
|
||||
- Enable uncompressed codec (rhbz#2237849)
|
||||
- Run tests conditionally (requires making all symbols visible)
|
||||
- Disable HEVC tests when building without HEVC codec
|
||||
|
||||
* Fri Jul 28 2023 Orion Poplawski <orion@nwra.com> - 1.16.2-1
|
||||
- Update to 1.16.2
|
||||
|
||||
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.16.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Fri May 05 2023 Neal Gompa <ngompa@fedoraproject.org> - 1.16.1-1
|
||||
- Update to 1.16.1
|
||||
|
||||
* Sun Apr 30 2023 Dominik Mierzejewski <dominik@greysector.net> - 1.15.2-2
|
||||
- backport fix for issue#590
|
||||
|
||||
* Tue Apr 11 2023 Sandro <devel@penguinpee.nl> - 1.15.2-1
|
||||
- Update to 1.15.2 (RHBZ#2183664)
|
||||
- Drop patch
|
||||
|
||||
* Fri Mar 17 2023 Neal Gompa <ngompa@fedoraproject.org> - 1.15.1-2
|
||||
- Adapt for Fedora
|
||||
|
||||
* Fri Feb 17 2023 Leigh Scott <leigh123linux@gmail.com> - 1.15.1-1
|
||||
- Update to 1.15.1
|
||||
|
||||
* Sat Jan 07 2023 Leigh Scott <leigh123linux@gmail.com> - 1.14.2-1
|
||||
- Update to 1.14.2
|
||||
- Switch back to autotools to build due to cmake issues (rfbz#6550}
|
||||
|
||||
* Thu Jan 05 2023 Leigh Scott <leigh123linux@gmail.com> - 1.14.1-1
|
||||
- Update to 1.14.1
|
||||
|
||||
* Mon Dec 19 2022 Leigh Scott <leigh123linux@gmail.com> - 1.14.0-4
|
||||
- Don't build rav1e and SVT-AV1 as plugins (rfbz#6532)
|
||||
|
||||
* Mon Dec 05 2022 Nicolas Chauvet <kwizart@gmail.com> - 1.14.0-3
|
||||
- Fix for SvtAv1Enc in devel - rfbz#6521
|
||||
|
||||
* Wed Nov 23 2022 Nicolas Chauvet <kwizart@gmail.com> - 1.14.0-2
|
||||
- Enable svt-av1 on el9
|
||||
|
||||
* Tue Nov 15 2022 Leigh Scott <leigh123linux@gmail.com> - 1.14.0-1
|
||||
- Update to 1.14.0
|
||||
|
||||
* Fri Sep 02 2022 Leigh Scott <leigh123linux@gmail.com> - 1.13.0-1
|
||||
- Update to 1.13.0
|
||||
|
||||
* Sun Aug 07 2022 RPM Fusion Release Engineering <sergiomb@rpmfusion.org> - 1.12.0-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg
|
||||
5.1
|
||||
|
||||
* Thu Jun 23 2022 Robert-André Mauchin <zebob.m@gmail.com> - 1.12.0-5
|
||||
- Rebuilt for new dav1d, rav1e and jpegxl
|
||||
|
||||
* Wed Feb 09 2022 RPM Fusion Release Engineering <sergiomb@rpmfusion.org> - 1.12.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Thu Nov 25 2021 Nicolas Chauvet <kwizart@gmail.com> - 1.12.0-3
|
||||
- Rebuilt
|
||||
|
||||
* Tue Aug 03 2021 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 1.12.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Mon Jun 14 2021 Leigh Scott <leigh123linux@gmail.com> - 1.12.0-1
|
||||
- Update to 1.12.0
|
||||
|
||||
* Sun Jun 13 2021 Robert-André Mauchin <zebob.m@gmail.com> - 1.11.0-3
|
||||
- Rebuild for new aom
|
||||
|
||||
* Wed Apr 14 2021 Leigh Scott <leigh123linux@gmail.com> - 1.11.0-2
|
||||
- Rebuild for new x265
|
||||
|
||||
* Sat Feb 20 2021 Leigh Scott <leigh123linux@gmail.com> - 1.11.0-1
|
||||
- Update to 1.11.0
|
||||
|
||||
* Wed Feb 03 2021 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 1.10.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Sat Dec 19 2020 Leigh Scott <leigh123linux@gmail.com> - 1.10.0-1
|
||||
- Update to 1.10.0
|
||||
|
||||
* Mon Dec 14 2020 Leigh Scott <leigh123linux@gmail.com> - 1.9.1-3
|
||||
- Actually do the dav1d rebuild
|
||||
|
||||
* Mon Dec 14 2020 Robert-André Mauchin <zebob.m@gmail.com> - 1.9.1-2
|
||||
- Rebuild for dav1d SONAME bump
|
||||
|
||||
* Tue Oct 27 2020 Leigh Scott <leigh123linux@gmail.com> - 1.9.1-1
|
||||
- Update to 1.9.1
|
||||
|
||||
* Fri Aug 28 2020 Leigh Scott <leigh123linux@gmail.com> - 1.8.0-1
|
||||
- Update to 1.8.0
|
||||
|
||||
* Tue Aug 18 2020 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 1.7.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Wed Jul 08 2020 Leigh Scott <leigh123linux@gmail.com> - 1.7.0-2
|
||||
- Rebuilt
|
||||
|
||||
* Thu Jun 04 2020 Leigh Scott <leigh123linux@gmail.com> - 1.7.0-1
|
||||
- Update to 1.7.0
|
||||
|
||||
* Sun May 31 2020 Leigh Scott <leigh123linux@gmail.com> - 1.6.2-3
|
||||
- Rebuild for new x265 version
|
||||
|
||||
* Sun Feb 23 2020 RPM Fusion Release Engineering <leigh123linux@googlemail.com> - 1.6.2-2
|
||||
- Rebuild for x265
|
||||
|
||||
* Mon Feb 10 2020 Leigh Scott <leigh123linux@gmail.com> - 1.6.2-1
|
||||
- Update to 1.6.2
|
||||
|
||||
* Tue Feb 04 2020 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 1.6.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Thu Nov 28 2019 Leigh Scott <leigh123linux@googlemail.com> - 1.6.0-1
|
||||
- Update to 1.6.0
|
||||
- Rebuilt for x265
|
||||
|
||||
* Sun Nov 03 2019 Leigh Scott <leigh123linux@googlemail.com> - 1.5.1-1
|
||||
- Update to 1.5.1
|
||||
|
||||
* Fri Aug 09 2019 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 1.4.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Tue Jul 02 2019 Nicolas Chauvet <kwizart@gmail.com> - 1.4.0-3
|
||||
- Rebuilt for x265
|
||||
|
||||
* Mon Mar 04 2019 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 1.4.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Thu Feb 28 2019 Leigh Scott <leigh123linux@googlemail.com> - 1.4.0-1
|
||||
- Update to 1.4.0
|
||||
|
||||
* Thu Jan 03 2019 Leigh Scott <leigh123linux@googlemail.com> - 1.3.2-2
|
||||
- Rebuild for new x265 for el7
|
||||
|
||||
* Thu Nov 29 2018 Leigh Scott <leigh123linux@googlemail.com> - 1.3.2-1
|
||||
- First build
|
65
base/python-markdown/python-markdown.spec
Normal file
65
base/python-markdown/python-markdown.spec
Normal file
@ -0,0 +1,65 @@
|
||||
%define oname Markdown
|
||||
%global pkgname markdown
|
||||
|
||||
Summary: Python implementation of the markdown text-to-HTML conversion tool
|
||||
Name: python-markdown
|
||||
Version: 3.5.1
|
||||
Release: 1%{dist}
|
||||
Source: https://files.pythonhosted.org/packages/source/M/Markdown/%oname-%version.tar.gz
|
||||
License: BSD
|
||||
Group: Development/Python
|
||||
BuildRequires: python%{python3_pkgversion}-devel
|
||||
#BuildRequires: python-pkg-resources
|
||||
BuildRequires: python%{python3_pkgversion}-setuptools
|
||||
BuildRequires: python%{python3_pkgversion}-wheel
|
||||
BuildRequires: python%{python3_pkgversion}-nose
|
||||
BuildRequires: python%{python3_pkgversion}-yaml
|
||||
BuildRequires: pyproject-rpm-macros
|
||||
Url: http://www.freewisdom.org/projects/python-markdown/
|
||||
|
||||
|
||||
%global _description %{expand:
|
||||
This is a Python implementation of John Gruber's Markdown. It is almost
|
||||
completely compliant with the reference implementation, though there
|
||||
are a few known issues
|
||||
|
||||
Markdown is a text-to-HTML conversion tool for web writers. Markdown
|
||||
allows you to write using an easy-to-read, easy-to-write plain text format,
|
||||
then convert it to structurally valid XHTML (or HTML).}
|
||||
|
||||
%description
|
||||
%_description
|
||||
|
||||
%package -n python%{python3_pkgversion}-%{pkgname}
|
||||
Summary: %{summary}
|
||||
BuildArch: noarch
|
||||
%{?python_provide:%python_provide python%{python3_pkgversion}-%{pkgname}}
|
||||
|
||||
%description -n python%{python3_pkgversion}-%{pkgname} %_description
|
||||
|
||||
%prep
|
||||
%setup -q -n %oname-%version
|
||||
# remove shebangs
|
||||
find markdown -type f -name '*.py' \
|
||||
-exec sed -i -e '/^#!/{1D}' {} \;
|
||||
|
||||
# fix line-ending
|
||||
find docs -type f \
|
||||
-exec sed -i 's/\r//' {} \;
|
||||
|
||||
sed -i '/importlib-metadata>=4.4/d' pyproject.toml
|
||||
sed -i '/importlib-metadata>=4.4/d' Markdown.egg-info/requires.txt
|
||||
|
||||
%build
|
||||
%pyproject_wheel
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
|
||||
# rename binary
|
||||
mv %{buildroot}%{_bindir}/markdown_py{,-%{python3_version}}
|
||||
|
||||
%files -n python%{python3_pkgversion}-%{pkgname}
|
||||
%{python3_sitelib}/*
|
||||
%{_bindir}/markdown_py-%{python3_version}
|
||||
|
@ -11,6 +11,7 @@ BuildRequires: pyproject-rpm-macros
|
||||
BuildRequires: python%{python3_pkgversion}-devel
|
||||
BuildRequires: python%{python3_pkgversion}-setuptools
|
||||
BuildRequires: python%{python3_pkgversion}-wheel
|
||||
BuildRequires: python%{python3_pkgversion}-pip
|
||||
BuildRequires: python%{python3_pkgversion}-pytest
|
||||
|
||||
%global _description %{expand:
|
||||
|
71
base/python-pygdbmi/python-pygdbmi.spec
Normal file
71
base/python-pygdbmi/python-pygdbmi.spec
Normal file
@ -0,0 +1,71 @@
|
||||
## START: Set by rpmautospec
|
||||
## (rpmautospec version 0.3.5)
|
||||
## RPMAUTOSPEC: autorelease, autochangelog
|
||||
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
|
||||
release_number = 1;
|
||||
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
|
||||
print(release_number + base_release_number - 1);
|
||||
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
|
||||
## END: Set by rpmautospec
|
||||
|
||||
Name: python-pygdbmi
|
||||
Version: 0.11.0.0
|
||||
Release: %autorelease
|
||||
Summary: Get Structured Output from GDB's Machine Interface
|
||||
License: MIT
|
||||
URL: https://github.com/cs01/pygdbmi
|
||||
Source0: %{url}/archive/v%{version}/%{name}-v%{version}.tar.gz
|
||||
|
||||
BuildArch: noarch
|
||||
BuildRequires: python%{python3_pkgversion}-devel
|
||||
BuildRequires: python%{python3_pkgversion}-wheel
|
||||
BuildRequires: python%{python3_pkgversion}-pip
|
||||
BuildRequires: python%{python3_pkgversion}-setuptools
|
||||
BuildRequires: make
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gdb
|
||||
|
||||
%global _description \
|
||||
GDB/MI is a line based machine oriented \
|
||||
text interface to GDB and is activated by \
|
||||
specifying using the --interpreter command \
|
||||
line option (see Mode Options). It is\
|
||||
specifically intended to support the development\
|
||||
of systems which use the debugger as just one\
|
||||
small component of a larger system.
|
||||
|
||||
|
||||
%description %{_description}
|
||||
|
||||
|
||||
%package -n python%{python3_pkgversion}-pygdbmi
|
||||
Summary: %{summary}
|
||||
|
||||
|
||||
%description -n python%{python3_pkgversion}-pygdbmi %{_description}
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -n pygdbmi-%{version}
|
||||
|
||||
|
||||
%build
|
||||
%pyproject_wheel
|
||||
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
%pyproject_save_files pygdbmi
|
||||
|
||||
%check
|
||||
%pytest
|
||||
|
||||
%files -n python%{python3_pkgversion}-pygdbmi
|
||||
%doc README.md
|
||||
%license LICENSE
|
||||
%{python3_sitelib}/pygdbmi
|
||||
%{python3_sitelib}/pygdbmi-%{version}.dist-info
|
||||
|
||||
%changelog
|
||||
* Sun Sep 24 2023 Steve Cossette <farchord@gmail.com> - 0.11.0.0-1
|
||||
- Initial import (fedora#2239637).
|
39
base/python-sentry-sdk/python-sentry-sdk.spec
Normal file
39
base/python-sentry-sdk/python-sentry-sdk.spec
Normal file
@ -0,0 +1,39 @@
|
||||
%define pypi_name sentry_sdk
|
||||
|
||||
Name: python-sentry-sdk
|
||||
Version: 1.45.0
|
||||
Release: 1%{dist}
|
||||
Summary: Python client for Sentry (https://sentry.io)
|
||||
License: MIT
|
||||
Group: Development/Python
|
||||
URL: https://pypi.org/project/sentry-sdk/
|
||||
Source0: https://files.pythonhosted.org/packages/source/s/sentry-sdk/sentry-sdk-%{version}.tar.gz
|
||||
BuildArch: noarch
|
||||
|
||||
BuildRequires: python%{python3_pkgversion}-devel
|
||||
BuildRequires: python%{python3_pkgversion}dist(pip)
|
||||
|
||||
%description
|
||||
Python client for Sentry (https://sentry.io).
|
||||
|
||||
%package -n python%{python3_pkgversion}-sentry-sdk
|
||||
Summary: Python3 client for Sentry (https://sentry.io)
|
||||
Group: Development/Python
|
||||
|
||||
%description -n python%{python3_pkgversion}-sentry-sdk
|
||||
Python 3 client for Sentry (https://sentry.io).
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n sentry-sdk-%{version}
|
||||
|
||||
%build
|
||||
%pyproject_wheel
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
%pyproject_save_files %{pypi_name}
|
||||
|
||||
%files -n python%{python3_pkgversion}-sentry-sdk -f %{pyproject_files}
|
||||
%doc README.md
|
||||
%license LICENSE
|
@ -0,0 +1,32 @@
|
||||
From 7b9f460346a259862189f84a30fedd96ca70e1c6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= <zebob.m@gmail.com>
|
||||
Date: Wed, 22 May 2019 18:13:32 +0200
|
||||
Subject: [PATCH 1/4] Import gobject from gi.repository in Python 3
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Robert-André Mauchin <zebob.m@gmail.com>
|
||||
---
|
||||
src/twisted/internet/gtk2reactor.py | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/twisted/internet/gtk2reactor.py b/src/twisted/internet/gtk2reactor.py
|
||||
index faf1234645..19d97445c4 100644
|
||||
--- a/src/twisted/internet/gtk2reactor.py
|
||||
+++ b/src/twisted/internet/gtk2reactor.py
|
||||
@@ -42,7 +42,10 @@ try:
|
||||
except (ImportError, AttributeError):
|
||||
pass # maybe we're using pygtk before this hack existed.
|
||||
|
||||
-import gobject
|
||||
+try:
|
||||
+ import gobject
|
||||
+except ImportError:
|
||||
+ from gi.repository import GObject as gobject
|
||||
if hasattr(gobject, "threads_init"):
|
||||
# recent versions of python-gtk expose this. python-gtk=2.4.1
|
||||
# (wrapping glib-2.4.7) does. python-gtk=2.0.0 (wrapping
|
||||
--
|
||||
2.39.2
|
||||
|
@ -0,0 +1,393 @@
|
||||
From f62266fdd5feeec45d2037411fa0c83964e751a7 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Most <twm@freecog.net>
|
||||
Date: Mon, 3 Jun 2019 22:03:22 -0700
|
||||
Subject: [PATCH 2/4] Fix CVE-2020-10108 and CVE-2020-10109
|
||||
|
||||
Refactor to reduce duplication
|
||||
|
||||
(cherry picked from commit d2f6dd9b3766509f40c980aac67ca8475da67c6f)
|
||||
|
||||
Fix several request smuggling attacks.
|
||||
|
||||
1. Requests with multiple Content-Length headers were allowed (thanks
|
||||
to Jake Miller from Bishop Fox and ZeddYu Lu) and now fail with a 400;
|
||||
|
||||
2. Requests with a Content-Length header and a Transfer-Encoding
|
||||
header honored the first header (thanks to Jake Miller from Bishop
|
||||
Fox) and now fail with a 400;
|
||||
|
||||
3. Requests whose Transfer-Encoding header had a value other than
|
||||
"chunked" and "identity" (thanks to ZeddYu Lu) were allowed and now fail
|
||||
with a 400.
|
||||
|
||||
(cherry picked from commit 4a7d22e490bb8ff836892cc99a1f54b85ccb0281)
|
||||
---
|
||||
src/twisted/web/http.py | 64 +++++--
|
||||
src/twisted/web/newsfragments/9770.bugfix | 1 +
|
||||
src/twisted/web/test/test_http.py | 215 +++++++++++++++++-----
|
||||
3 files changed, 223 insertions(+), 57 deletions(-)
|
||||
create mode 100644 src/twisted/web/newsfragments/9770.bugfix
|
||||
|
||||
diff --git a/src/twisted/web/http.py b/src/twisted/web/http.py
|
||||
index fe88d33739..71188a8d50 100644
|
||||
--- a/src/twisted/web/http.py
|
||||
+++ b/src/twisted/web/http.py
|
||||
@@ -2170,6 +2170,51 @@ class HTTPChannel(basic.LineReceiver, policies.TimeoutMixin):
|
||||
self.allContentReceived()
|
||||
self._dataBuffer.append(data)
|
||||
|
||||
+ def _maybeChooseTransferDecoder(self, header, data):
|
||||
+ """
|
||||
+ If the provided header is C{content-length} or
|
||||
+ C{transfer-encoding}, choose the appropriate decoder if any.
|
||||
+
|
||||
+ Returns L{True} if the request can proceed and L{False} if not.
|
||||
+ """
|
||||
+
|
||||
+ def fail():
|
||||
+ self._respondToBadRequestAndDisconnect()
|
||||
+ self.length = None
|
||||
+
|
||||
+ # Can this header determine the length?
|
||||
+ if header == b'content-length':
|
||||
+ try:
|
||||
+ length = int(data)
|
||||
+ except ValueError:
|
||||
+ fail()
|
||||
+ return False
|
||||
+ newTransferDecoder = _IdentityTransferDecoder(
|
||||
+ length, self.requests[-1].handleContentChunk, self._finishRequestBody)
|
||||
+ elif header == b'transfer-encoding':
|
||||
+ # XXX Rather poorly tested code block, apparently only exercised by
|
||||
+ # test_chunkedEncoding
|
||||
+ if data.lower() == b'chunked':
|
||||
+ length = None
|
||||
+ newTransferDecoder = _ChunkedTransferDecoder(
|
||||
+ self.requests[-1].handleContentChunk, self._finishRequestBody)
|
||||
+ elif data.lower() == b'identity':
|
||||
+ return True
|
||||
+ else:
|
||||
+ fail()
|
||||
+ return False
|
||||
+ else:
|
||||
+ # It's not a length related header, so exit
|
||||
+ return True
|
||||
+
|
||||
+ if self._transferDecoder is not None:
|
||||
+ fail()
|
||||
+ return False
|
||||
+ else:
|
||||
+ self.length = length
|
||||
+ self._transferDecoder = newTransferDecoder
|
||||
+ return True
|
||||
+
|
||||
|
||||
def headerReceived(self, line):
|
||||
"""
|
||||
@@ -2191,21 +2236,10 @@ class HTTPChannel(basic.LineReceiver, policies.TimeoutMixin):
|
||||
|
||||
header = header.lower()
|
||||
data = data.strip()
|
||||
- if header == b'content-length':
|
||||
- try:
|
||||
- self.length = int(data)
|
||||
- except ValueError:
|
||||
- self._respondToBadRequestAndDisconnect()
|
||||
- self.length = None
|
||||
- return False
|
||||
- self._transferDecoder = _IdentityTransferDecoder(
|
||||
- self.length, self.requests[-1].handleContentChunk, self._finishRequestBody)
|
||||
- elif header == b'transfer-encoding' and data.lower() == b'chunked':
|
||||
- # XXX Rather poorly tested code block, apparently only exercised by
|
||||
- # test_chunkedEncoding
|
||||
- self.length = None
|
||||
- self._transferDecoder = _ChunkedTransferDecoder(
|
||||
- self.requests[-1].handleContentChunk, self._finishRequestBody)
|
||||
+
|
||||
+ if not self._maybeChooseTransferDecoder(header, data):
|
||||
+ return False
|
||||
+
|
||||
reqHeaders = self.requests[-1].requestHeaders
|
||||
values = reqHeaders.getRawHeaders(header)
|
||||
if values is not None:
|
||||
diff --git a/src/twisted/web/newsfragments/9770.bugfix b/src/twisted/web/newsfragments/9770.bugfix
|
||||
new file mode 100644
|
||||
index 0000000000..4f1be97de8
|
||||
--- /dev/null
|
||||
+++ b/src/twisted/web/newsfragments/9770.bugfix
|
||||
@@ -0,0 +1 @@
|
||||
+Fix several request smuggling attacks: requests with multiple Content-Length headers were allowed (thanks to Jake Miller from Bishop Fox and ZeddYu Lu) and now fail with a 400; requests with a Content-Length header and a Transfer-Encoding header honored the first header (thanks to Jake Miller from Bishop Fox) and now fail with a 400; requests whose Transfer-Encoding header had a value other than "chunked" and "identity" (thanks to ZeddYu Lu) were allowed and now fail a 400.
|
||||
\ No newline at end of file
|
||||
diff --git a/src/twisted/web/test/test_http.py b/src/twisted/web/test/test_http.py
|
||||
index 6001d1e40d..8f2c1bac21 100644
|
||||
--- a/src/twisted/web/test/test_http.py
|
||||
+++ b/src/twisted/web/test/test_http.py
|
||||
@@ -1441,7 +1441,8 @@ class ParsingTests(unittest.TestCase):
|
||||
"""
|
||||
Execute a web request based on plain text content.
|
||||
|
||||
- @param httpRequest: Content for the request which is processed.
|
||||
+ @param httpRequest: Content for the request which is processed. Each
|
||||
+ L{"\n"} will be replaced with L{"\r\n"}.
|
||||
@type httpRequest: C{bytes}
|
||||
|
||||
@param requestFactory: 2-argument callable returning a Request.
|
||||
@@ -1480,6 +1481,32 @@ class ParsingTests(unittest.TestCase):
|
||||
return channel
|
||||
|
||||
|
||||
+ def assertRequestRejected(self, requestLines):
|
||||
+ """
|
||||
+ Execute a HTTP request and assert that it is rejected with a 400 Bad
|
||||
+ Response and disconnection.
|
||||
+
|
||||
+ @param requestLines: Plain text lines of the request. These lines will
|
||||
+ be joined with newlines to form the HTTP request that is processed.
|
||||
+ @type requestLines: C{list} of C{bytes}
|
||||
+ """
|
||||
+ httpRequest = b"\n".join(requestLines)
|
||||
+ processed = []
|
||||
+
|
||||
+ class MyRequest(http.Request):
|
||||
+ def process(self):
|
||||
+ processed.append(self)
|
||||
+ self.finish()
|
||||
+
|
||||
+ channel = self.runRequest(httpRequest, MyRequest, success=False)
|
||||
+ self.assertEqual(
|
||||
+ channel.transport.value(),
|
||||
+ b"HTTP/1.1 400 Bad Request\r\n\r\n",
|
||||
+ )
|
||||
+ self.assertTrue(channel.transport.disconnecting)
|
||||
+ self.assertEqual(processed, [])
|
||||
+
|
||||
+
|
||||
def test_invalidNonAsciiMethod(self):
|
||||
"""
|
||||
When client sends invalid HTTP method containing
|
||||
@@ -1603,45 +1630,24 @@ class ParsingTests(unittest.TestCase):
|
||||
|
||||
def test_tooManyHeaders(self):
|
||||
"""
|
||||
- L{HTTPChannel} enforces a limit of C{HTTPChannel.maxHeaders} on the
|
||||
+ C{HTTPChannel} enforces a limit of C{HTTPChannel.maxHeaders} on the
|
||||
number of headers received per request.
|
||||
"""
|
||||
- processed = []
|
||||
- class MyRequest(http.Request):
|
||||
- def process(self):
|
||||
- processed.append(self)
|
||||
-
|
||||
requestLines = [b"GET / HTTP/1.0"]
|
||||
for i in range(http.HTTPChannel.maxHeaders + 2):
|
||||
requestLines.append(networkString("%s: foo" % (i,)))
|
||||
requestLines.extend([b"", b""])
|
||||
|
||||
- channel = self.runRequest(b"\n".join(requestLines), MyRequest, 0)
|
||||
- self.assertEqual(processed, [])
|
||||
- self.assertEqual(
|
||||
- channel.transport.value(),
|
||||
- b"HTTP/1.1 400 Bad Request\r\n\r\n")
|
||||
+ self.assertRequestRejected(requestLines)
|
||||
|
||||
|
||||
def test_invalidContentLengthHeader(self):
|
||||
"""
|
||||
- If a Content-Length header with a non-integer value is received, a 400
|
||||
- (Bad Request) response is sent to the client and the connection is
|
||||
- closed.
|
||||
+ If a I{Content-Length} header with a non-integer value is received,
|
||||
+ a 400 (Bad Request) response is sent to the client and the connection
|
||||
+ is closed.
|
||||
"""
|
||||
- processed = []
|
||||
- class MyRequest(http.Request):
|
||||
- def process(self):
|
||||
- processed.append(self)
|
||||
- self.finish()
|
||||
-
|
||||
- requestLines = [b"GET / HTTP/1.0", b"Content-Length: x", b"", b""]
|
||||
- channel = self.runRequest(b"\n".join(requestLines), MyRequest, 0)
|
||||
- self.assertEqual(
|
||||
- channel.transport.value(),
|
||||
- b"HTTP/1.1 400 Bad Request\r\n\r\n")
|
||||
- self.assertTrue(channel.transport.disconnecting)
|
||||
- self.assertEqual(processed, [])
|
||||
+ self.assertRequestRejected([b"GET / HTTP/1.0", b"Content-Length: x", b"", b""])
|
||||
|
||||
|
||||
def test_invalidHeaderNoColon(self):
|
||||
@@ -1649,24 +1655,12 @@ class ParsingTests(unittest.TestCase):
|
||||
If a header without colon is received a 400 (Bad Request) response
|
||||
is sent to the client and the connection is closed.
|
||||
"""
|
||||
- processed = []
|
||||
- class MyRequest(http.Request):
|
||||
- def process(self):
|
||||
- processed.append(self)
|
||||
- self.finish()
|
||||
-
|
||||
- requestLines = [b"GET / HTTP/1.0", b"HeaderName ", b"", b""]
|
||||
- channel = self.runRequest(b"\n".join(requestLines), MyRequest, 0)
|
||||
- self.assertEqual(
|
||||
- channel.transport.value(),
|
||||
- b"HTTP/1.1 400 Bad Request\r\n\r\n")
|
||||
- self.assertTrue(channel.transport.disconnecting)
|
||||
- self.assertEqual(processed, [])
|
||||
+ self.assertRequestRejected([b"GET / HTTP/1.0", b"HeaderName ", b"", b""])
|
||||
|
||||
|
||||
def test_headerLimitPerRequest(self):
|
||||
"""
|
||||
- L{HTTPChannel} enforces the limit of C{HTTPChannel.maxHeaders} per
|
||||
+ C{HTTPChannel} enforces the limit of C{HTTPChannel.maxHeaders} per
|
||||
request so that headers received in an earlier request do not count
|
||||
towards the limit when processing a later request.
|
||||
"""
|
||||
@@ -2152,6 +2146,143 @@ Hello,
|
||||
self.flushLoggedErrors(AttributeError)
|
||||
|
||||
|
||||
+ def assertDisconnectingBadRequest(self, request):
|
||||
+ """
|
||||
+ Assert that the given request bytes fail with a 400 bad
|
||||
+ request without calling L{Request.process}.
|
||||
+
|
||||
+ @param request: A raw HTTP request
|
||||
+ @type request: L{bytes}
|
||||
+ """
|
||||
+ class FailedRequest(http.Request):
|
||||
+ processed = False
|
||||
+ def process(self):
|
||||
+ FailedRequest.processed = True
|
||||
+
|
||||
+ channel = self.runRequest(request, FailedRequest, success=False)
|
||||
+ self.assertFalse(FailedRequest.processed, "Request.process called")
|
||||
+ self.assertEqual(
|
||||
+ channel.transport.value(),
|
||||
+ b"HTTP/1.1 400 Bad Request\r\n\r\n")
|
||||
+ self.assertTrue(channel.transport.disconnecting)
|
||||
+
|
||||
+
|
||||
+ def test_duplicateContentLengths(self):
|
||||
+ """
|
||||
+ A request which includes multiple C{content-length} headers
|
||||
+ fails with a 400 response without calling L{Request.process}.
|
||||
+ """
|
||||
+ self.assertRequestRejected([
|
||||
+ b'GET /a HTTP/1.1',
|
||||
+ b'Content-Length: 56',
|
||||
+ b'Content-Length: 0',
|
||||
+ b'Host: host.invalid',
|
||||
+ b'',
|
||||
+ b'',
|
||||
+ ])
|
||||
+
|
||||
+
|
||||
+ def test_duplicateContentLengthsWithPipelinedRequests(self):
|
||||
+ """
|
||||
+ Two pipelined requests, the first of which includes multiple
|
||||
+ C{content-length} headers, trigger a 400 response without
|
||||
+ calling L{Request.process}.
|
||||
+ """
|
||||
+ self.assertRequestRejected([
|
||||
+ b'GET /a HTTP/1.1',
|
||||
+ b'Content-Length: 56',
|
||||
+ b'Content-Length: 0',
|
||||
+ b'Host: host.invalid',
|
||||
+ b'',
|
||||
+ b'',
|
||||
+ b'GET /a HTTP/1.1',
|
||||
+ b'Host: host.invalid',
|
||||
+ b'',
|
||||
+ b'',
|
||||
+ ])
|
||||
+
|
||||
+
|
||||
+ def test_contentLengthAndTransferEncoding(self):
|
||||
+ """
|
||||
+ A request that includes both C{content-length} and
|
||||
+ C{transfer-encoding} headers fails with a 400 response without
|
||||
+ calling L{Request.process}.
|
||||
+ """
|
||||
+ self.assertRequestRejected([
|
||||
+ b'GET /a HTTP/1.1',
|
||||
+ b'Transfer-Encoding: chunked',
|
||||
+ b'Content-Length: 0',
|
||||
+ b'Host: host.invalid',
|
||||
+ b'',
|
||||
+ b'',
|
||||
+ ])
|
||||
+
|
||||
+
|
||||
+ def test_contentLengthAndTransferEncodingWithPipelinedRequests(self):
|
||||
+ """
|
||||
+ Two pipelined requests, the first of which includes both
|
||||
+ C{content-length} and C{transfer-encoding} headers, triggers a
|
||||
+ 400 response without calling L{Request.process}.
|
||||
+ """
|
||||
+ self.assertRequestRejected([
|
||||
+ b'GET /a HTTP/1.1',
|
||||
+ b'Transfer-Encoding: chunked',
|
||||
+ b'Content-Length: 0',
|
||||
+ b'Host: host.invalid',
|
||||
+ b'',
|
||||
+ b'',
|
||||
+ b'GET /a HTTP/1.1',
|
||||
+ b'Host: host.invalid',
|
||||
+ b'',
|
||||
+ b'',
|
||||
+ ])
|
||||
+
|
||||
+
|
||||
+ def test_unknownTransferEncoding(self):
|
||||
+ """
|
||||
+ A request whose C{transfer-encoding} header includes a value
|
||||
+ other than C{chunked} or C{identity} fails with a 400 response
|
||||
+ without calling L{Request.process}.
|
||||
+ """
|
||||
+ self.assertRequestRejected([
|
||||
+ b'GET /a HTTP/1.1',
|
||||
+ b'Transfer-Encoding: unknown',
|
||||
+ b'Host: host.invalid',
|
||||
+ b'',
|
||||
+ b'',
|
||||
+ ])
|
||||
+
|
||||
+
|
||||
+ def test_transferEncodingIdentity(self):
|
||||
+ """
|
||||
+ A request with a valid C{content-length} and a
|
||||
+ C{transfer-encoding} whose value is C{identity} succeeds.
|
||||
+ """
|
||||
+ body = []
|
||||
+
|
||||
+ class SuccessfulRequest(http.Request):
|
||||
+ processed = False
|
||||
+ def process(self):
|
||||
+ body.append(self.content.read())
|
||||
+ self.setHeader(b'content-length', b'0')
|
||||
+ self.finish()
|
||||
+
|
||||
+ request = b'''\
|
||||
+GET / HTTP/1.1
|
||||
+Host: host.invalid
|
||||
+Content-Length: 2
|
||||
+Transfer-Encoding: identity
|
||||
+
|
||||
+ok
|
||||
+'''
|
||||
+ channel = self.runRequest(request, SuccessfulRequest, False)
|
||||
+ self.assertEqual(body, [b'ok'])
|
||||
+ self.assertEqual(
|
||||
+ channel.transport.value(),
|
||||
+ b'HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n',
|
||||
+ )
|
||||
+
|
||||
+
|
||||
|
||||
class QueryArgumentsTests(unittest.TestCase):
|
||||
def testParseqs(self):
|
||||
--
|
||||
2.39.2
|
||||
|
86
base/python-twisted/0003-Fix-CVE-2022-21716.patch
Normal file
86
base/python-twisted/0003-Fix-CVE-2022-21716.patch
Normal file
@ -0,0 +1,86 @@
|
||||
From 2552b2e8c9f73b5cdef8842e4e3701bac19c12c6 Mon Sep 17 00:00:00 2001
|
||||
From: Adi Roiban <adi.roiban@chevah.com>
|
||||
Date: Mon, 24 Jan 2022 19:09:04 +0000
|
||||
Subject: [PATCH 3/4] Fix CVE-2022-21716
|
||||
|
||||
Initial fix for Twisted version string DoS.
|
||||
|
||||
(cherry picked from commit de90dfe1519e996dd150de751c670f8e03daa089)
|
||||
|
||||
Update after review.
|
||||
|
||||
(cherry picked from commit 9b98116372f5d211ddb9f68916d4ae73bf3c8da7)
|
||||
|
||||
Fix typo.
|
||||
|
||||
(cherry picked from commit a4523b444760f07e609636264a61a2a07ca0bde5)
|
||||
---
|
||||
src/twisted/conch/ssh/transport.py | 9 +++++++++
|
||||
src/twisted/conch/test/test_transport.py | 21 +++++++++++++++++++++
|
||||
src/twisted/newsfragments/10284.bugfix | 2 ++
|
||||
3 files changed, 32 insertions(+)
|
||||
create mode 100644 src/twisted/newsfragments/10284.bugfix
|
||||
|
||||
diff --git a/src/twisted/conch/ssh/transport.py b/src/twisted/conch/ssh/transport.py
|
||||
index bd76b0a845..6d02df52dd 100644
|
||||
--- a/src/twisted/conch/ssh/transport.py
|
||||
+++ b/src/twisted/conch/ssh/transport.py
|
||||
@@ -677,6 +677,15 @@ class SSHTransportBase(protocol.Protocol):
|
||||
"""
|
||||
self.buf = self.buf + data
|
||||
if not self.gotVersion:
|
||||
+
|
||||
+ if len(self.buf) > 4096:
|
||||
+ self.sendDisconnect(
|
||||
+ DISCONNECT_CONNECTION_LOST,
|
||||
+ b"Peer version string longer than 4KB. "
|
||||
+ b"Preventing a denial of service attack.",
|
||||
+ )
|
||||
+ return
|
||||
+
|
||||
if self.buf.find(b'\n', self.buf.find(b'SSH-')) == -1:
|
||||
return
|
||||
|
||||
diff --git a/src/twisted/conch/test/test_transport.py b/src/twisted/conch/test/test_transport.py
|
||||
index 98a3515a75..449dd3f8df 100644
|
||||
--- a/src/twisted/conch/test/test_transport.py
|
||||
+++ b/src/twisted/conch/test/test_transport.py
|
||||
@@ -522,6 +522,27 @@ class BaseSSHTransportTests(BaseSSHTransportBaseCase, TransportTestCase):
|
||||
r')*$')
|
||||
self.assertRegex(softwareVersion, softwareVersionRegex)
|
||||
|
||||
+ def test_dataReceiveVersionNotSentMemoryDOS(self):
|
||||
+ """
|
||||
+ When the peer is not sending its SSH version but keeps sending data,
|
||||
+ the connection is disconnected after 4KB to prevent buffering too
|
||||
+ much and running our of memory.
|
||||
+ """
|
||||
+ sut = MockTransportBase()
|
||||
+ sut.makeConnection(self.transport)
|
||||
+
|
||||
+ # Data can be received over multiple chunks.
|
||||
+ sut.dataReceived(b"SSH-2-Server-Identifier")
|
||||
+ sut.dataReceived(b"1234567890" * 406)
|
||||
+ sut.dataReceived(b"1235678")
|
||||
+ self.assertFalse(self.transport.disconnecting)
|
||||
+
|
||||
+ # Here we are going over the limit.
|
||||
+ sut.dataReceived(b"1234567")
|
||||
+ # Once a lot of data is received without an SSH version string,
|
||||
+ # the transport is disconnected.
|
||||
+ self.assertTrue(self.transport.disconnecting)
|
||||
+ self.assertIn(b"Preventing a denial of service attack", self.transport.value())
|
||||
|
||||
def test_sendPacketPlain(self):
|
||||
"""
|
||||
diff --git a/src/twisted/newsfragments/10284.bugfix b/src/twisted/newsfragments/10284.bugfix
|
||||
new file mode 100644
|
||||
index 0000000000..b2316f1e68
|
||||
--- /dev/null
|
||||
+++ b/src/twisted/newsfragments/10284.bugfix
|
||||
@@ -0,0 +1,2 @@
|
||||
+twisted.conch.ssh.transport.SSHTransportBase now disconnects the remote peer if the
|
||||
+SSH version string is not sent in the first 4096 bytes.
|
||||
--
|
||||
2.39.2
|
||||
|
437
base/python-twisted/0004-Fix-CVE-2022-24801.patch
Normal file
437
base/python-twisted/0004-Fix-CVE-2022-24801.patch
Normal file
@ -0,0 +1,437 @@
|
||||
From c26f9865d02ac6cf43a560a25a6201439c33640d Mon Sep 17 00:00:00 2001
|
||||
From: Tom Most <twm@freecog.net>
|
||||
Date: Sat, 5 Mar 2022 23:26:55 -0800
|
||||
Subject: [PATCH 4/4] Fix CVE-2022-24801
|
||||
|
||||
Some tests for GHSA-c2jg-hw38-jrqq
|
||||
|
||||
(cherry picked from commit 22b067793cbcd0fb5dee04cfd9115fa85a7ca110)
|
||||
|
||||
Replace obs-fold with a single space
|
||||
|
||||
(cherry picked from commit 79ee8c564ca0d4c2910c8859e0a6014d2dc40005)
|
||||
|
||||
Strip only spaces and tabs from header values
|
||||
|
||||
(cherry picked from commit c3a4e1d015740c1d87a3ec7d57570257e75b0062)
|
||||
|
||||
Reject non-digit Content-Length
|
||||
|
||||
(cherry picked from commit 8ebfa8f6577431226e109ff98ba48f5152a2c416)
|
||||
|
||||
Test for malformed chunk size and extensions
|
||||
|
||||
(cherry picked from commit f22d0d9c889822adb7eaf84b42a20ff5f7c4d421)
|
||||
|
||||
Reject malformed chunk sizes
|
||||
|
||||
(cherry picked from commit 0275152f147506c82868ff1dabd9bf655ab67946)
|
||||
|
||||
We should deprecate http.fromChunk
|
||||
|
||||
(cherry picked from commit 2a5763d5b168372abb591c0eb6323ed4dfe8a4fc)
|
||||
|
||||
Correct chunk extension byte validation
|
||||
|
||||
Go back to the RFC to figure out the correct allowed ranges.
|
||||
|
||||
(cherry picked from commit fa9caa54d63399b4ccdfbf0429ba1b504ccc7c89)
|
||||
|
||||
Address review feedback
|
||||
|
||||
(cherry picked from commit 2bbd6c89110f0d44d2bb109c14d787f65bca9df8)
|
||||
---
|
||||
src/twisted/web/http.py | 83 ++++++++++++-
|
||||
src/twisted/web/test/test_http.py | 193 +++++++++++++++++++++++++++++-
|
||||
2 files changed, 268 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/twisted/web/http.py b/src/twisted/web/http.py
|
||||
index 71188a8d50..e988601789 100644
|
||||
--- a/src/twisted/web/http.py
|
||||
+++ b/src/twisted/web/http.py
|
||||
@@ -340,10 +340,39 @@ def toChunk(data):
|
||||
|
||||
|
||||
|
||||
+def _ishexdigits(b):
|
||||
+ """
|
||||
+ Is the string case-insensitively hexidecimal?
|
||||
+
|
||||
+ It must be composed of one or more characters in the ranges a-f, A-F
|
||||
+ and 0-9.
|
||||
+ """
|
||||
+ for c in b:
|
||||
+ if c not in b"0123456789abcdefABCDEF":
|
||||
+ return False
|
||||
+ return b != b""
|
||||
+
|
||||
+
|
||||
+def _hexint(b):
|
||||
+ """
|
||||
+ Decode a hexadecimal integer.
|
||||
+
|
||||
+ Unlike L{int(b, 16)}, this raises L{ValueError} when the integer has
|
||||
+ a prefix like C{b'0x'}, C{b'+'}, or C{b'-'}, which is desirable when
|
||||
+ parsing network protocols.
|
||||
+ """
|
||||
+ if not _ishexdigits(b):
|
||||
+ raise ValueError(b)
|
||||
+ return int(b, 16)
|
||||
+
|
||||
+
|
||||
def fromChunk(data):
|
||||
"""
|
||||
Convert chunk to string.
|
||||
|
||||
+ Note that this function is not specification compliant: it doesn't handle
|
||||
+ chunk extensions.
|
||||
+
|
||||
@type data: C{bytes}
|
||||
|
||||
@return: tuple of (result, remaining) - both C{bytes}.
|
||||
@@ -352,7 +381,7 @@ def fromChunk(data):
|
||||
byte string.
|
||||
"""
|
||||
prefix, rest = data.split(b'\r\n', 1)
|
||||
- length = int(prefix, 16)
|
||||
+ length = _hexint(prefix)
|
||||
if length < 0:
|
||||
raise ValueError("Chunk length must be >= 0, not %d" % (length,))
|
||||
if rest[length:length + 2] != b'\r\n':
|
||||
@@ -1774,6 +1803,46 @@ class _IdentityTransferDecoder(object):
|
||||
raise _DataLoss()
|
||||
|
||||
|
||||
+_chunkExtChars = (
|
||||
+ b"\t !\"#$%&'()*+,-./0123456789:;<=>?@"
|
||||
+ b"ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`"
|
||||
+ b"abcdefghijklmnopqrstuvwxyz{|}~"
|
||||
+ b"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"
|
||||
+ b"\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f"
|
||||
+ b"\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf"
|
||||
+ b"\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf"
|
||||
+ b"\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf"
|
||||
+ b"\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf"
|
||||
+ b"\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef"
|
||||
+ b"\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"
|
||||
+)
|
||||
+"""
|
||||
+Characters that are valid in a chunk extension.
|
||||
+
|
||||
+See RFC 7230 section 4.1.1::
|
||||
+
|
||||
+ chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
|
||||
+
|
||||
+ chunk-ext-name = token
|
||||
+ chunk-ext-val = token / quoted-string
|
||||
+
|
||||
+And section 3.2.6::
|
||||
+
|
||||
+ token = 1*tchar
|
||||
+
|
||||
+ tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*"
|
||||
+ / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
|
||||
+ / DIGIT / ALPHA
|
||||
+ ; any VCHAR, except delimiters
|
||||
+
|
||||
+ quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE
|
||||
+ qdtext = HTAB / SP /%x21 / %x23-5B / %x5D-7E / obs-text
|
||||
+ obs-text = %x80-FF
|
||||
+
|
||||
+We don't check if chunk extensions are well-formed beyond validating that they
|
||||
+don't contain characters outside this range.
|
||||
+"""
|
||||
+
|
||||
|
||||
class _ChunkedTransferDecoder(object):
|
||||
"""
|
||||
@@ -1826,10 +1895,14 @@ class _ChunkedTransferDecoder(object):
|
||||
line, rest = data.split(b'\r\n', 1)
|
||||
parts = line.split(b';')
|
||||
try:
|
||||
- self.length = int(parts[0], 16)
|
||||
+ self.length = _hexint(parts[0])
|
||||
except ValueError:
|
||||
raise _MalformedChunkedDataError(
|
||||
"Chunk-size must be an integer.")
|
||||
+ if len(parts) > 1 and parts[1].translate(None, _chunkExtChars) != b"":
|
||||
+ raise _MalformedChunkedDataError(
|
||||
+ "Invalid characters in chunk extensions: %r." % parts[1]
|
||||
+ )
|
||||
if self.length == 0:
|
||||
self.state = 'TRAILER'
|
||||
else:
|
||||
@@ -2156,7 +2229,7 @@ class HTTPChannel(basic.LineReceiver, policies.TimeoutMixin):
|
||||
self.setRawMode()
|
||||
elif line[0] in b' \t':
|
||||
# Continuation of a multi line header.
|
||||
- self.__header = self.__header + b'\n' + line
|
||||
+ self.__header += b" " + line.lstrip(b" \t")
|
||||
# Regular header line.
|
||||
# Processing of header line is delayed to allow accumulating multi
|
||||
# line headers.
|
||||
@@ -2184,6 +2257,8 @@ class HTTPChannel(basic.LineReceiver, policies.TimeoutMixin):
|
||||
|
||||
# Can this header determine the length?
|
||||
if header == b'content-length':
|
||||
+ if not data.isdigit():
|
||||
+ return fail()
|
||||
try:
|
||||
length = int(data)
|
||||
except ValueError:
|
||||
@@ -2235,7 +2310,7 @@ class HTTPChannel(basic.LineReceiver, policies.TimeoutMixin):
|
||||
return False
|
||||
|
||||
header = header.lower()
|
||||
- data = data.strip()
|
||||
+ data = data.strip(b" \t")
|
||||
|
||||
if not self._maybeChooseTransferDecoder(header, data):
|
||||
return False
|
||||
diff --git a/src/twisted/web/test/test_http.py b/src/twisted/web/test/test_http.py
|
||||
index 8f2c1bac21..d6f1fc0673 100644
|
||||
--- a/src/twisted/web/test/test_http.py
|
||||
+++ b/src/twisted/web/test/test_http.py
|
||||
@@ -1300,6 +1300,43 @@ class ChunkedTransferEncodingTests(unittest.TestCase):
|
||||
p.dataReceived(b'3; x-foo=bar\r\nabc\r\n')
|
||||
self.assertEqual(L, [b'abc'])
|
||||
|
||||
+ def test_extensionsMalformed(self):
|
||||
+ """
|
||||
+ L{_ChunkedTransferDecoder.dataReceived} raises
|
||||
+ L{_MalformedChunkedDataError} when the chunk extension fields contain
|
||||
+ invalid characters.
|
||||
+
|
||||
+ This is a potential request smuggling vector: see GHSA-c2jg-hw38-jrqq.
|
||||
+ """
|
||||
+ invalidControl = (
|
||||
+ b"\x00\x01\x02\x03\x04\x05\x06\x07\x08\n\x0b\x0c\r\x0e\x0f"
|
||||
+ b"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"
|
||||
+ )
|
||||
+ invalidDelimiter = b"\\"
|
||||
+ invalidDel = b"\x7f"
|
||||
+ for b in invalidControl + invalidDelimiter + invalidDel:
|
||||
+ data = b"3; " + bytes((b,)) + b"\r\nabc\r\n"
|
||||
+ p = http._ChunkedTransferDecoder(
|
||||
+ lambda b: None, # pragma: nocov
|
||||
+ lambda b: None, # pragma: nocov
|
||||
+ )
|
||||
+ self.assertRaises(http._MalformedChunkedDataError, p.dataReceived, data)
|
||||
+
|
||||
+ def test_malformedChunkSizeHex(self):
|
||||
+ """
|
||||
+ L{_ChunkedTransferDecoder.dataReceived} raises
|
||||
+ L{_MalformedChunkedDataError} when the chunk size is prefixed with
|
||||
+ "0x", as if it were a Python integer literal.
|
||||
+
|
||||
+ This is a potential request smuggling vector: see GHSA-c2jg-hw38-jrqq.
|
||||
+ """
|
||||
+ p = http._ChunkedTransferDecoder(
|
||||
+ lambda b: None, # pragma: nocov
|
||||
+ lambda b: None, # pragma: nocov
|
||||
+ )
|
||||
+ self.assertRaises(
|
||||
+ http._MalformedChunkedDataError, p.dataReceived, b"0x3\r\nabc\r\n"
|
||||
+ )
|
||||
|
||||
def test_finish(self):
|
||||
"""
|
||||
@@ -1389,6 +1426,8 @@ class ChunkingTests(unittest.TestCase, ResponseTestMixin):
|
||||
chunked = b''.join(http.toChunk(s))
|
||||
self.assertEqual((s, b''), http.fromChunk(chunked))
|
||||
self.assertRaises(ValueError, http.fromChunk, b'-5\r\nmalformed!\r\n')
|
||||
+ self.assertRaises(ValueError, http.fromChunk, b"0xa\r\nmalformed!\r\n")
|
||||
+ self.assertRaises(ValueError, http.fromChunk, b"0XA\r\nmalformed!\r\n")
|
||||
|
||||
def testConcatenatedChunks(self):
|
||||
chunked = b''.join([b''.join(http.toChunk(t)) for t in self.strings])
|
||||
@@ -1579,7 +1618,12 @@ class ParsingTests(unittest.TestCase):
|
||||
Line folded headers are handled by L{HTTPChannel} by replacing each
|
||||
fold with a single space by the time they are made available to the
|
||||
L{Request}. Any leading whitespace in the folded lines of the header
|
||||
- value is preserved.
|
||||
+ value is replaced with a single space, per:
|
||||
+
|
||||
+ A server that receives an obs-fold in a request message ... MUST
|
||||
+ ... replace each received obs-fold with one or more SP octets prior
|
||||
+ to interpreting the field value or forwarding the message
|
||||
+ downstream.
|
||||
|
||||
See RFC 7230 section 3.2.4.
|
||||
"""
|
||||
@@ -1616,17 +1660,66 @@ class ParsingTests(unittest.TestCase):
|
||||
)
|
||||
self.assertEqual(
|
||||
request.requestHeaders.getRawHeaders(b"space"),
|
||||
- [b"space space"],
|
||||
+ [b"space space"],
|
||||
)
|
||||
self.assertEqual(
|
||||
request.requestHeaders.getRawHeaders(b"spaces"),
|
||||
- [b"spaces spaces spaces"],
|
||||
+ [b"spaces spaces spaces"],
|
||||
)
|
||||
self.assertEqual(
|
||||
request.requestHeaders.getRawHeaders(b"tab"),
|
||||
- [b"t \ta \tb"],
|
||||
+ [b"t a b"],
|
||||
)
|
||||
|
||||
+ def test_headerStripWhitespace(self):
|
||||
+ """
|
||||
+ Leading and trailing space and tab characters are stripped from
|
||||
+ headers. Other forms of whitespace are preserved.
|
||||
+
|
||||
+ See RFC 7230 section 3.2.3 and 3.2.4.
|
||||
+ """
|
||||
+ processed = []
|
||||
+
|
||||
+ class MyRequest(http.Request):
|
||||
+ def process(self):
|
||||
+ processed.append(self)
|
||||
+ self.finish()
|
||||
+
|
||||
+ requestLines = [
|
||||
+ b"GET / HTTP/1.0",
|
||||
+ b"spaces: spaces were stripped ",
|
||||
+ b"tabs: \t\ttabs were stripped\t\t",
|
||||
+ b"spaces-and-tabs: \t \t spaces and tabs were stripped\t \t",
|
||||
+ b"line-tab: \v vertical tab was preserved\v\t",
|
||||
+ b"form-feed: \f form feed was preserved \f ",
|
||||
+ b"",
|
||||
+ b"",
|
||||
+ ]
|
||||
+
|
||||
+ self.runRequest(b"\n".join(requestLines), MyRequest, 0)
|
||||
+ [request] = processed
|
||||
+ # All leading and trailing whitespace is stripped from the
|
||||
+ # header-value.
|
||||
+ self.assertEqual(
|
||||
+ request.requestHeaders.getRawHeaders(b"spaces"),
|
||||
+ [b"spaces were stripped"],
|
||||
+ )
|
||||
+ self.assertEqual(
|
||||
+ request.requestHeaders.getRawHeaders(b"tabs"),
|
||||
+ [b"tabs were stripped"],
|
||||
+ )
|
||||
+ self.assertEqual(
|
||||
+ request.requestHeaders.getRawHeaders(b"spaces-and-tabs"),
|
||||
+ [b"spaces and tabs were stripped"],
|
||||
+ )
|
||||
+ self.assertEqual(
|
||||
+ request.requestHeaders.getRawHeaders(b"line-tab"),
|
||||
+ [b"\v vertical tab was preserved\v"],
|
||||
+ )
|
||||
+ self.assertEqual(
|
||||
+ request.requestHeaders.getRawHeaders(b"form-feed"),
|
||||
+ [b"\f form feed was preserved \f"],
|
||||
+ )
|
||||
|
||||
def test_tooManyHeaders(self):
|
||||
"""
|
||||
@@ -2182,6 +2275,58 @@ Hello,
|
||||
])
|
||||
|
||||
|
||||
+ def test_contentLengthMalformed(self):
|
||||
+ """
|
||||
+ A request with a non-integer C{Content-Length} header fails with a 400
|
||||
+ response without calling L{Request.process}.
|
||||
+ """
|
||||
+ self.assertRequestRejected(
|
||||
+ [
|
||||
+ b"GET /a HTTP/1.1",
|
||||
+ b"Content-Length: MORE THAN NINE THOUSAND!",
|
||||
+ b"Host: host.invalid",
|
||||
+ b"",
|
||||
+ b"",
|
||||
+ b"x" * 9001,
|
||||
+ ]
|
||||
+ )
|
||||
+
|
||||
+ def test_contentLengthTooPositive(self):
|
||||
+ """
|
||||
+ A request with a C{Content-Length} header that begins with a L{+} fails
|
||||
+ with a 400 response without calling L{Request.process}.
|
||||
+
|
||||
+ This is a potential request smuggling vector: see GHSA-c2jg-hw38-jrqq.
|
||||
+ """
|
||||
+ self.assertRequestRejected(
|
||||
+ [
|
||||
+ b"GET /a HTTP/1.1",
|
||||
+ b"Content-Length: +100",
|
||||
+ b"Host: host.invalid",
|
||||
+ b"",
|
||||
+ b"",
|
||||
+ b"x" * 100,
|
||||
+ ]
|
||||
+ )
|
||||
+
|
||||
+ def test_contentLengthNegative(self):
|
||||
+ """
|
||||
+ A request with a C{Content-Length} header that is negative fails with
|
||||
+ a 400 response without calling L{Request.process}.
|
||||
+
|
||||
+ This is a potential request smuggling vector: see GHSA-c2jg-hw38-jrqq.
|
||||
+ """
|
||||
+ self.assertRequestRejected(
|
||||
+ [
|
||||
+ b"GET /a HTTP/1.1",
|
||||
+ b"Content-Length: -100",
|
||||
+ b"Host: host.invalid",
|
||||
+ b"",
|
||||
+ b"",
|
||||
+ b"x" * 200,
|
||||
+ ]
|
||||
+ )
|
||||
+
|
||||
def test_duplicateContentLengthsWithPipelinedRequests(self):
|
||||
"""
|
||||
Two pipelined requests, the first of which includes multiple
|
||||
@@ -4140,3 +4285,43 @@ class HTTPClientSanitizationTests(unittest.SynchronousTestCase):
|
||||
transport.value().splitlines(),
|
||||
[b": ".join([sanitizedBytes, sanitizedBytes])]
|
||||
)
|
||||
+
|
||||
+
|
||||
+class HexHelperTests(unittest.SynchronousTestCase):
|
||||
+ """
|
||||
+ Test the L{http._hexint} and L{http._ishexdigits} helper functions.
|
||||
+ """
|
||||
+
|
||||
+ badStrings = (b"", b"0x1234", b"feds", b"-123" b"+123")
|
||||
+
|
||||
+ def test_isHex(self):
|
||||
+ """
|
||||
+ L{_ishexdigits()} returns L{True} for nonempy bytestrings containing
|
||||
+ hexadecimal digits.
|
||||
+ """
|
||||
+ for s in (b"10", b"abcdef", b"AB1234", b"fed", b"123467890"):
|
||||
+ self.assertIs(True, http._ishexdigits(s))
|
||||
+
|
||||
+ def test_decodes(self):
|
||||
+ """
|
||||
+ L{_hexint()} returns the integer equivalent of the input.
|
||||
+ """
|
||||
+ self.assertEqual(10, http._hexint(b"a"))
|
||||
+ self.assertEqual(0x10, http._hexint(b"10"))
|
||||
+ self.assertEqual(0xABCD123, http._hexint(b"abCD123"))
|
||||
+
|
||||
+ def test_isNotHex(self):
|
||||
+ """
|
||||
+ L{_ishexdigits()} returns L{False} for bytestrings that don't contain
|
||||
+ hexadecimal digits, including the empty string.
|
||||
+ """
|
||||
+ for s in self.badStrings:
|
||||
+ self.assertIs(False, http._ishexdigits(s))
|
||||
+
|
||||
+ def test_decodeNotHex(self):
|
||||
+ """
|
||||
+ L{_hexint()} raises L{ValueError} for bytestrings that can't
|
||||
+ be decoded.
|
||||
+ """
|
||||
+ for s in self.badStrings:
|
||||
+ self.assertRaises(ValueError, http._hexint, s)
|
||||
--
|
||||
2.39.2
|
||||
|
428
base/python-twisted/python-twisted.spec
Normal file
428
base/python-twisted/python-twisted.spec
Normal file
@ -0,0 +1,428 @@
|
||||
%global pypi_name twisted
|
||||
|
||||
%global common_description %{expand:
|
||||
Twisted is a networking engine written in Python, supporting numerous protocols.
|
||||
It contains a web server, numerous chat clients, chat servers, mail servers
|
||||
and more.}
|
||||
|
||||
Name: python-%{pypi_name}
|
||||
Version: 19.10.0
|
||||
Release: 4%{?dist}
|
||||
Summary: Twisted is a networking engine written in Python
|
||||
|
||||
License: MIT
|
||||
URL: http://twistedmatrix.com/
|
||||
Source0: %{pypi_source Twisted %{version} tar.bz2}
|
||||
# Import gobject from gi.repository for Python 3
|
||||
# https://twistedmatrix.com/trac/ticket/9642
|
||||
Patch1: 0001-Import-gobject-from-gi.repository-in-Python-3.patch
|
||||
# https://github.com/twisted/twisted/commit/d2f6dd9b3766509f40c980aac67ca8475da67c6f
|
||||
# https://github.com/twisted/twisted/commit/4a7d22e490bb8ff836892cc99a1f54b85ccb0281
|
||||
Patch2: 0002-Fix-CVE-2020-10108-and-CVE-2020-10109.patch
|
||||
# https://github.com/twisted/twisted/commit/de90dfe1519e996dd150de751c670f8e03daa089
|
||||
# https://github.com/twisted/twisted/commit/9b98116372f5d211ddb9f68916d4ae73bf3c8da7
|
||||
# https://github.com/twisted/twisted/commit/a4523b444760f07e609636264a61a2a07ca0bde5
|
||||
Patch3: 0003-Fix-CVE-2022-21716.patch
|
||||
# https://github.com/twisted/twisted/commit/22b067793cbcd0fb5dee04cfd9115fa85a7ca110
|
||||
# https://github.com/twisted/twisted/commit/79ee8c564ca0d4c2910c8859e0a6014d2dc40005
|
||||
# https://github.com/twisted/twisted/commit/c3a4e1d015740c1d87a3ec7d57570257e75b0062
|
||||
# https://github.com/twisted/twisted/commit/8ebfa8f6577431226e109ff98ba48f5152a2c416
|
||||
# https://github.com/twisted/twisted/commit/f22d0d9c889822adb7eaf84b42a20ff5f7c4d421
|
||||
# https://github.com/twisted/twisted/commit/0275152f147506c82868ff1dabd9bf655ab67946
|
||||
# https://github.com/twisted/twisted/commit/2a5763d5b168372abb591c0eb6323ed4dfe8a4fc
|
||||
# https://github.com/twisted/twisted/commit/fa9caa54d63399b4ccdfbf0429ba1b504ccc7c89
|
||||
# https://github.com/twisted/twisted/commit/2bbd6c89110f0d44d2bb109c14d787f65bca9df8
|
||||
Patch4: 0004-Fix-CVE-2022-24801.patch
|
||||
|
||||
%description
|
||||
%{common_description}
|
||||
|
||||
%package -n python%{python3_pkgversion}-%{pypi_name}
|
||||
Summary: %{summary}
|
||||
%{?python_provide:%python_provide python%{python3_pkgversion}-%{pypi_name}}
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: python%{python3_pkgversion}-devel >= 3.3
|
||||
BuildRequires: python%{python3_pkgversion}dist(appdirs) >= 1.4.0
|
||||
BuildRequires: python%{python3_pkgversion}dist(automat) >= 0.3.0
|
||||
BuildRequires: python%{python3_pkgversion}dist(attrs) >= 17.4.0
|
||||
BuildRequires: python%{python3_pkgversion}dist(constantly) >= 15.1
|
||||
BuildRequires: python%{python3_pkgversion}dist(cryptography) >= 2.3
|
||||
BuildRequires: (python%{python3_pkgversion}dist(h2) >= 3.0 with python%{python3_pkgversion}dist(h2) < 4.0)
|
||||
BuildRequires: python%{python3_pkgversion}dist(hyperlink) >= 17.1.1
|
||||
BuildRequires: python%{python3_pkgversion}dist(idna) >= 2.5
|
||||
BuildRequires: python%{python3_pkgversion}dist(incremental) >= 16.10.1
|
||||
BuildRequires: (python%{python3_pkgversion}dist(priority) >= 1.1.0 with python%{python3_pkgversion}dist(priority) < 2.0)
|
||||
BuildRequires: python%{python3_pkgversion}dist(pyasn1)
|
||||
BuildRequires: python%{python3_pkgversion}dist(pyopenssl) >= 16.0.0
|
||||
BuildRequires: python%{python3_pkgversion}dist(pyserial) >= 3.0
|
||||
BuildRequires: python%{python3_pkgversion}dist(service-identity) >= 18.1.0
|
||||
BuildRequires: python%{python3_pkgversion}dist(setuptools)
|
||||
BuildRequires: python3dist(sphinx) >= 1.3.1
|
||||
BuildRequires: python%{python3_pkgversion}dist(zope.interface) >= 4.4.2
|
||||
BuildRequires: python%{python3_pkgversion}dist(pyhamcrest) >= 1.9.0
|
||||
|
||||
Recommends: python%{python3_pkgversion}dist(service-identity) >= 18.1.0
|
||||
|
||||
%description -n python%{python3_pkgversion}-%{pypi_name}
|
||||
%{common_description}
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n Twisted-%{version}
|
||||
|
||||
%build
|
||||
find -name '*.pyx' -exec cython {} \;
|
||||
%py3_build
|
||||
|
||||
# generate html docs
|
||||
PYTHONPATH=${PWD}/src/ sphinx-build-3 docs html
|
||||
# remove the sphinx-build leftovers
|
||||
rm -rf html/.{doctrees,buildinfo}
|
||||
|
||||
%install
|
||||
# no-manual-page-for-binary
|
||||
mkdir -p %{buildroot}%{_mandir}/man1/
|
||||
for s in conch core mail; do
|
||||
cp -a docs/$s/man/*.1 %{buildroot}%{_mandir}/man1/
|
||||
done
|
||||
|
||||
%py3_install
|
||||
|
||||
# Packages that install arch-independent twisted plugins install here.
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1252140
|
||||
mkdir -p %{buildroot}%{python3_sitelib}/twisted/plugins
|
||||
|
||||
# Move and symlink python3 scripts
|
||||
# no-manual-page-for-binary: man page is trial and twistd
|
||||
mv %{buildroot}%{_bindir}/trial %{buildroot}%{_bindir}/trial-%{python3_version}
|
||||
ln -s ./trial-%{python3_version} %{buildroot}%{_bindir}/trial-3
|
||||
ln -s ./trial-%{python3_version} %{buildroot}%{_bindir}/trial
|
||||
|
||||
mv %{buildroot}%{_bindir}/twistd %{buildroot}%{_bindir}/twistd-%{python3_version}
|
||||
ln -s ./twistd-%{python3_version} %{buildroot}%{_bindir}/twistd-3
|
||||
ln -s ./twistd-%{python3_version} %{buildroot}%{_bindir}/twistd
|
||||
|
||||
# non-executable-script
|
||||
# pop3testserver.py: applies to py2.4 and that is the current default
|
||||
# scripttest.py: is noop
|
||||
chmod +x %{buildroot}%{python3_sitearch}/twisted/mail/test/pop3testserver.py
|
||||
chmod +x %{buildroot}%{python3_sitearch}/twisted/trial/test/scripttest.py
|
||||
|
||||
# ambiguous shebangs
|
||||
pathfix.py -pn -i %{__python3} %{buildroot}%{python3_sitelib} %{buildroot}%{python3_sitearch}
|
||||
|
||||
|
||||
%check
|
||||
# can't get this to work within the buildroot yet due to multicast
|
||||
# https://twistedmatrix.com/trac/ticket/7494
|
||||
PATH=%{buildroot}%{_bindir}:$PATH PYTHONPATH=%{buildroot}%{python3_sitearch} %{buildroot}%{_bindir}/trial twisted ||:
|
||||
|
||||
|
||||
%files -n python%{python3_pkgversion}-twisted
|
||||
%doc CONTRIBUTING NEWS.rst README.rst html
|
||||
%license LICENSE
|
||||
%{_bindir}/trial-3*
|
||||
%{_bindir}/twistd-3*
|
||||
%{python3_sitearch}/twisted
|
||||
%{python3_sitearch}/Twisted-%{version}-py%{python3_version}.egg-info
|
||||
%dir %{python3_sitelib}/twisted/
|
||||
%dir %{python3_sitelib}/twisted/plugins/
|
||||
%{_bindir}/cftp
|
||||
%{_bindir}/ckeygen
|
||||
%{_bindir}/conch
|
||||
%{_bindir}/mailmail
|
||||
%{_bindir}/pyhtmlizer
|
||||
%{_bindir}/tkconch
|
||||
%{_bindir}/trial
|
||||
%{_bindir}/twist
|
||||
%{_bindir}/twistd
|
||||
%{_mandir}/man1/cftp.1*
|
||||
%{_mandir}/man1/ckeygen.1*
|
||||
%{_mandir}/man1/conch.1*
|
||||
%{_mandir}/man1/mailmail.1*
|
||||
%{_mandir}/man1/pyhtmlizer.1*
|
||||
%{_mandir}/man1/tkconch.1*
|
||||
%{_mandir}/man1/trial.1*
|
||||
%{_mandir}/man1/twistd.1*
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Apr 12 2023 Carl George <carl@george.computer> - 19.10.0-4
|
||||
- Backport fix for CVE-2022-24801, resolves: rhbz#2073116
|
||||
|
||||
* Mon Nov 28 17:45:05 CLT 2022 Diego Herrera <dherrera@redhat.com> - 19.10.0-3
|
||||
- Backported CVE-2022-21716 fix from upstream
|
||||
|
||||
* Tue Mar 17 16:31:05 CET 2020 Robert-André Mauchin <zebob.m@gmail.com> - 19.10.0-2
|
||||
- Security fix for CVE-2020-10108 (#1813439, #1813442)
|
||||
- Security fix for CVE-2020-10109 (#1813447, #1813450)
|
||||
|
||||
* Tue Mar 17 15:15:48 CET 2020 Robert-André Mauchin <zebob.m@gmail.com> - 19.10.0-1
|
||||
- Update to 19.10.0
|
||||
- Revert removal of %%{python3_sitelib}/twisted/plugins/
|
||||
|
||||
* Sun Oct 13 23:35:33 CEST 2019 Robert-André Mauchin <zebob.m@gmail.com> - 19.7.0-2
|
||||
- Drop Python 2 support (#1761204)
|
||||
|
||||
* Wed Jul 24 2019 Stephen Smoogen <smooge@fedoraproject.org> - 19.2.1-1.1
|
||||
- Cut down python-cryptography to the version shipped in RHEL and see if that works.
|
||||
|
||||
* Mon Jun 24 2019 Troy Dawson <tdawson@redhat.com> - 1.0.2-9.1
|
||||
- Make python2 optional
|
||||
- Do not build python2 for RHEL8
|
||||
|
||||
* Sun Jun 09 18:40:31 CEST 2019 Robert-André Mauchin <zebob.m@gmail.com> - 19.2.1-1
|
||||
- Release 19.2.1
|
||||
|
||||
* Wed May 22 18:26:29 CEST 2019 Robert-André Mauchin <zebob.m@gmail.com> - 19.2.0-3
|
||||
- Add patch to import gobject from gi.repository for Python 3
|
||||
- Fix #1712748
|
||||
|
||||
* Tue May 14 16:00:42 CEST 2019 Robert-André Mauchin <zebob.m@gmail.com> - 19.2.0-2
|
||||
- Add patch regenerating raiser.c to use with Python 3.8a4
|
||||
- Fix #11709817
|
||||
|
||||
* Wed Apr 10 17:38:50 CET 2019 Robert-André Mauchin <zebob.m@gmail.com> - 19.2.0-1
|
||||
- Release 19.2.0 (#1698490)
|
||||
|
||||
* Thu Mar 07 2019 Robert-André Mauchin <zebob.m@gmail.com> - 18.9.0-1
|
||||
- Release 18.9.0
|
||||
- Run tests
|
||||
|
||||
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 18.7.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Mon Oct 22 2018 Miro Hrončok <mhroncok@redhat.com> - 18.7.0-3
|
||||
- Recommend pythonX-service-identity
|
||||
|
||||
* Sat Jul 21 2018 Robert-André Mauchin <zebob.m@gmail.com> - 18.7.0-2
|
||||
- Remove erroneous symlink to binaries
|
||||
|
||||
* Sun Jul 15 2018 Robert-André Mauchin <zebob.m@gmail.com> - 18.7.0-1
|
||||
- Update to 18.7.0
|
||||
|
||||
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 18.4.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Wed Jun 27 2018 Robert-André Mauchin <zebob.m@gmail.com> - 18.4.0-1
|
||||
- Update to 18.4.0
|
||||
- Default binaries to Python 3
|
||||
- Drop old Obsoletes/Provides
|
||||
- Refresh BR
|
||||
- Remove useless macros
|
||||
- Use python_enable_dependency_generator
|
||||
|
||||
* Mon Jun 18 2018 Miro Hrončok <mhroncok@redhat.com> - 16.4.1-11
|
||||
- Rebuilt for Python 3.7
|
||||
|
||||
* Wed May 23 2018 Miro Hrončok <mhroncok@redhat.com> - 16.4.1-10
|
||||
- Fix ambiguous shebangs
|
||||
|
||||
* Fri Apr 27 2018 Petr Viktorin <pviktori@redhat.com> - 16.4.1-9
|
||||
- No longer require python-crypto
|
||||
|
||||
* Mon Mar 26 2018 Iryna Shcherbina <ishcherb@redhat.com> - 16.4.1-8
|
||||
- Update Python 2 dependency declarations to new packaging standards
|
||||
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
|
||||
|
||||
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 16.4.1-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Fri Sep 29 2017 Troy Dawson <tdawson@redhat.com> - 16.4.1-6
|
||||
- Cleanup spec file conditionals
|
||||
|
||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 16.4.1-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 16.4.1-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 16.4.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Tue Dec 13 2016 Stratakis Charalampos <cstratak@redhat.com> - 16.4.1-2
|
||||
- rebuilt
|
||||
|
||||
* Wed Oct 26 2016 Jonathan Steffan <jsteffan@fedoraproject.org> - 16.4.1-1
|
||||
- Update to 16.4.1
|
||||
|
||||
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 16.3.0-2
|
||||
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
|
||||
|
||||
* Fri Jul 8 2016 Jonathan Steffan <jsteffan@fedoraproject.org> - 16.3.0-1
|
||||
- Update to 16.3.0
|
||||
- mahole, tap2deb, tap2rpm are removed upstream
|
||||
|
||||
* Sun Jun 26 2016 Jonathan Steffan <jsteffan@fedoraproject.org> - 16.2.0-2
|
||||
- Add rpmlint notes
|
||||
- Fix unneeded py3 conditional for py2 script chmod
|
||||
|
||||
* Sun Jun 26 2016 Jonathan Steffan <jsteffan@fedoraproject.org> - 16.2.0-1
|
||||
- Update to 16.2.0
|
||||
- Update upstream source location
|
||||
|
||||
* Thu Jun 2 2016 Haïkel Guémar <hguemar@fedoraproject.org> - 16.1.1-3
|
||||
- Drop tkinter dependency (only required for tkconch)
|
||||
- Use python3 conditionals
|
||||
- Move BR under the proper subpackage
|
||||
|
||||
* Tue May 10 2016 Petr Viktorin <pviktori@redhat.com> - 16.1.1-2
|
||||
- Update to better conform to Python packaging guidelines
|
||||
|
||||
* Thu May 05 2016 Julien Enselme <jujens@jujens.eu> - 16.1.1-1
|
||||
- Update to 16.1.1 (#1287381)
|
||||
|
||||
* Thu Mar 10 2016 Julien Enselme <jujens@jujens.eu> - 15.5.0-2
|
||||
- Add python3 support
|
||||
|
||||
* Thu Mar 10 2016 Julien Enselme <jujens@jujens.eu> - 15.5.0-1
|
||||
- Update to 15.5.0 (#1287381)
|
||||
- Use new python macros
|
||||
- Remove deprecated %%clean section
|
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 15.4.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Fri Nov 27 2015 Tom Prince <tom.prince@twistedmatrix.com> - 15.4.0-2
|
||||
- Add arch-independent plugin directory to package. (RHBZ#1252140)
|
||||
|
||||
* Thu Oct 29 2015 Tom Prince <tom.prince@twistedmatrix.com> - 15.4.0-1
|
||||
- Update to 15.4.0
|
||||
- Include test certificates.
|
||||
|
||||
* Mon Jul 20 2015 Jonathan Steffan <jsteffan@fedoraproject.org> - 15.2.1-1
|
||||
- Update to 15.2.1
|
||||
|
||||
* Sat May 09 2015 Jonathan Steffan <jsteffan@fedoraproject.org> - 15.1.0-1
|
||||
- Update to 15.1.0 (RHBZ#1187921,RHBZ#1192707)
|
||||
- Require python-service-identity (RHBZ#1119067)
|
||||
- Obsolete python-twisted-core-doc (RHBZ#1187025)
|
||||
|
||||
* Sat Nov 22 2014 Jonathan Steffan <jsteffan@fedoraproject.org> - 14.0.2-1
|
||||
- Update to 14.0.2 (RHBZ#1143002)
|
||||
|
||||
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 14.0.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Sat Jun 07 2014 Jonathan Steffan <jsteffan@fedoraproject.org> - 14.0.0-1
|
||||
- Update to 14.0.0
|
||||
- Ship Twisted as a fully featured package without subpackages on the advice
|
||||
of upstream and to mirror what pypi provides
|
||||
- Explictly build for python2 with new macros
|
||||
|
||||
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 12.2.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 12.2.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 12.2.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Mon Sep 03 2012 Julian Sikorski <belegdol@fedoraproject.org> - 12.2.0-1
|
||||
- Updated to 12.2.0
|
||||
|
||||
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 12.1.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Sun Jun 17 2012 Julian Sikorski <belegdol@fedoraproject.org> - 12.1.0-1
|
||||
- Updated to 12.1.0
|
||||
|
||||
* Sun Feb 12 2012 Julian Sikorski <belegdol@fedoraproject.org> - 12.0.0-1
|
||||
- Updated to 12.0.0
|
||||
|
||||
* Sat Jan 07 2012 Julian Sikorski <belegdol@fedoraproject.org> - 11.1.0-2
|
||||
- Rebuilt for gcc-4.7
|
||||
|
||||
* Fri Nov 18 2011 Julian Sikorski <belegdol@fedoraproject.org> - 11.1.0-1
|
||||
- Updated to 11.1.0
|
||||
- Dropped obsolete Group, Buildroot, %%clean and %%defattr
|
||||
|
||||
* Sat Apr 30 2011 Julian Sikorski <belegdol@fedoraproject.org> - 11.0.0-1
|
||||
- Updated to 11.0.0
|
||||
- Added comment on how to obtain the PKG-INFO file
|
||||
|
||||
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 10.2.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||
|
||||
* Sat Jan 15 2011 Julian Sikorski <belegdol@fedoraproject.org> - 10.2.0-1
|
||||
- Updated to 10.2.0
|
||||
|
||||
* Mon Nov 08 2010 Julian Sikorski <belegdol@fedoraproject.org> - 10.1.0-3
|
||||
- Use python_sitelib instead of python-sitearch
|
||||
- The aforementioned macros are defined in Fedora 13 and above
|
||||
|
||||
* Sun Nov 07 2010 Julian Sikorski <belegdol@fedoraproject.org> - 10.1.0-2
|
||||
- Added egg-info file
|
||||
|
||||
* Tue Sep 21 2010 Julian Sikorski <belegdol@fedoraproject.org> - 10.1.0-1
|
||||
- Updated to 10.1.0
|
||||
- Switched to macros for versioned dependencies
|
||||
|
||||
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.2.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||
|
||||
* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.2.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
||||
|
||||
* Mon Dec 29 2008 Matthias Saou <http://freshrpms.net/> 8.2.0-1
|
||||
- Update to 8.2.0.
|
||||
- Change back spec cosmetic details from Paul's to Thomas' preference.
|
||||
|
||||
* Wed Jul 16 2008 Matthias Saou <http://freshrpms.net/> 8.1.0-2
|
||||
- Update to 8.1.0.
|
||||
- Minor spec file cleanups.
|
||||
- Merge back changes from Paul Howarth.
|
||||
|
||||
* Wed May 21 2008 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
- 2.5.0-1
|
||||
- update to 2.5.0 release (only the umbrella package was missing)
|
||||
|
||||
* Tue Jan 16 2007 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
- 2.4.0-3
|
||||
- list packages in README.fedora
|
||||
|
||||
* Wed Jan 03 2007 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
- 2.4.0-2
|
||||
- add a README.fedora
|
||||
- made noarch, since it doesn't actually install any python twisted/ module
|
||||
code
|
||||
- fixed provides/obsoletes
|
||||
|
||||
* Wed Jun 07 2006 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
- 2.4.0-1
|
||||
- this is now a pure umbrella package
|
||||
|
||||
* Mon Oct 10 2005 Jeff Pitman <symbiont+pyvault@berlios.de> 2.1.0-1
|
||||
- upstream release
|
||||
|
||||
* Tue Aug 23 2005 Jeff Pitman <symbiont+pyvault@berlios.de> 2.0.1-1
|
||||
- upstream release
|
||||
|
||||
* Mon Apr 04 2005 Jeff Pitman <symbiont+pyvault@berlios.de> 2.0.0-2
|
||||
- add zsh support
|
||||
|
||||
* Fri Mar 25 2005 Jeff Pitman <symbiont+pyvault@berlios.de> 2.0.0-1
|
||||
- final release
|
||||
|
||||
* Thu Mar 17 2005 Jeff Pitman <symbiont+pyvault@berlios.de> 2.0.0-0.2.a3
|
||||
- dropped web2
|
||||
|
||||
* Wed Mar 16 2005 Jeff Pitman <symbiont+pyvault@berlios.de> 2.0.0-0.1.a3
|
||||
- upstream release
|
||||
|
||||
* Sat Mar 12 2005 Jeff Pitman <symbiont+pyvault@berlios.de> 2.0.0-0.1.a2
|
||||
- new prerelease; FE versioning
|
||||
|
||||
* Mon Feb 07 2005 Jeff Pitman <symbiont+pyvault@berlios.de> 2.0.0a1-1
|
||||
- prep for split
|
||||
|
||||
* Fri Aug 20 2004 Jeff Pitman <symbiont+pyvault@berlios.de> 1.3.0-1
|
||||
- new version
|
||||
|
||||
* Mon Apr 19 2004 Jeff Pitman <symbiont+pyvault@berlios.de> 1.2.0-3
|
||||
- vaultize
|
||||
|
||||
* Mon Apr 12 2004 Jeff Pitman <symbiont+pyvault@berlios.de> 1.2.0-2
|
||||
- require pyOpenSSL, SOAPpy, openssh-clients, crypto, dia so trial can run
|
||||
|
44
base/qwt/qwt-libsuffix.patch
Normal file
44
base/qwt/qwt-libsuffix.patch
Normal file
@ -0,0 +1,44 @@
|
||||
diff -rupN --no-dereference qwt-6.2.0/qwtfunctions.pri qwt-6.2.0-new/qwtfunctions.pri
|
||||
--- qwt-6.2.0/qwtfunctions.pri 2021-07-18 13:19:33.644367625 +0200
|
||||
+++ qwt-6.2.0-new/qwtfunctions.pri 2022-11-29 15:38:14.943070118 +0100
|
||||
@@ -12,7 +12,12 @@
|
||||
defineReplace(qwtLibraryTarget) {
|
||||
|
||||
unset(LIBRARY_NAME)
|
||||
+
|
||||
+ greaterThan(QT_MAJOR_VERSION, 4) {
|
||||
+ LIBRARY_NAME = $${1}-qt$${QT_MAJOR_VERSION}
|
||||
+ } else {
|
||||
LIBRARY_NAME = $$1
|
||||
+ }
|
||||
|
||||
mac:contains(QWT_CONFIG, QwtFramework) {
|
||||
|
||||
@@ -36,7 +41,11 @@ defineReplace(qwtLibraryTarget) {
|
||||
defineTest(qwtAddLibrary) {
|
||||
|
||||
LIB_PATH = $$1
|
||||
+ greaterThan(QT_MAJOR_VERSION, 4) {
|
||||
+ LIB_NAME = $${2}-qt$${QT_MAJOR_VERSION}
|
||||
+ } else {
|
||||
LIB_NAME = $$2
|
||||
+ }
|
||||
|
||||
mac:contains(QWT_CONFIG, QwtFramework) {
|
||||
|
||||
diff -rupN qwt-6.2.0/src/src.pro qwt-6.2.0-new/src/src.pro
|
||||
--- qwt-6.2.0/src/src.pro 2022-11-29 15:38:15.365070601 +0100
|
||||
+++ qwt-6.2.0-new/src/src.pro 2022-11-29 15:45:42.295600411 +0100
|
||||
@@ -31,7 +31,11 @@ contains(QWT_CONFIG, QwtDll) {
|
||||
|
||||
# we increase the SONAME for every minor number
|
||||
|
||||
- QWT_SONAME=libqwt.so.$${VER_MAJ}.$${VER_MIN}
|
||||
+ greaterThan(QT_MAJOR_VERSION, 4) {
|
||||
+ QWT_SONAME=libqwt-qt$${QT_MAJOR_VERSION}.so.$${VER_MAJ}.$${VER_MIN}
|
||||
+ } else {
|
||||
+ QWT_SONAME=libqwt.so.$${VER_MAJ}.$${VER_MIN}
|
||||
+ }
|
||||
QMAKE_LFLAGS *= $${QMAKE_LFLAGS_SONAME}$${QWT_SONAME}
|
||||
QMAKE_LFLAGS_SONAME=
|
||||
}
|
12
base/qwt/qwt-no_rpath.patch
Normal file
12
base/qwt/qwt-no_rpath.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -rupN --no-dereference qwt-6.2.0/designer/designer.pro qwt-6.2.0-new/designer/designer.pro
|
||||
--- qwt-6.2.0/designer/designer.pro 2021-07-18 13:19:33.632367371 +0200
|
||||
+++ qwt-6.2.0-new/designer/designer.pro 2022-11-29 15:38:15.087070282 +0100
|
||||
@@ -98,7 +98,7 @@ contains(QWT_CONFIG, QwtDesigner) {
|
||||
# compile the path for finding the Qwt library
|
||||
# into the plugin. Not supported on Windows !
|
||||
|
||||
- QMAKE_RPATHDIR *= $${QWT_INSTALL_LIBS}
|
||||
+ #QMAKE_RPATHDIR *= $${QWT_INSTALL_LIBS}
|
||||
qwtAddLibrary($${QWT_OUT_ROOT}/lib, qwt)
|
||||
|
||||
contains(QWT_CONFIG, QwtDll) {
|
12
base/qwt/qwt-pkgconfig.patch
Normal file
12
base/qwt/qwt-pkgconfig.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -rupN --no-dereference qwt-6.2.0/src/src.pro qwt-6.2.0-new/src/src.pro
|
||||
--- qwt-6.2.0/src/src.pro 2021-07-18 13:19:33.628367286 +0200
|
||||
+++ qwt-6.2.0-new/src/src.pro 2022-11-29 15:38:15.226070441 +0100
|
||||
@@ -82,7 +82,7 @@ contains(QWT_CONFIG, QwtPkgConfig) {
|
||||
greaterThan(QT_MAJOR_VERSION, 4) {
|
||||
|
||||
QMAKE_PKGCONFIG_FILE = Qt$${QT_MAJOR_VERSION}$${QMAKE_PKGCONFIG_NAME}
|
||||
- QMAKE_PKGCONFIG_REQUIRES = Qt5Widgets Qt5Concurrent Qt5PrintSupport
|
||||
+ QMAKE_PKGCONFIG_REQUIRES = Qt$${QT_MAJOR_VERSION}Widgets Qt$${QT_MAJOR_VERSION}Concurrent Qt$${QT_MAJOR_VERSION}PrintSupport
|
||||
|
||||
contains(QWT_CONFIG, QwtSvg) {
|
||||
QMAKE_PKGCONFIG_REQUIRES += Qt5Svg
|
58
base/qwt/qwt-qt_install_paths.patch
Normal file
58
base/qwt/qwt-qt_install_paths.patch
Normal file
@ -0,0 +1,58 @@
|
||||
diff -rupN --no-dereference qwt-6.2.0/qwtbuild.pri qwt-6.2.0-new/qwtbuild.pri
|
||||
--- qwt-6.2.0/qwtbuild.pri 2021-07-18 13:19:33.656367878 +0200
|
||||
+++ qwt-6.2.0-new/qwtbuild.pri 2022-11-29 15:38:14.786069938 +0100
|
||||
@@ -14,7 +14,7 @@
|
||||
CONFIG += qt
|
||||
CONFIG += warn_on
|
||||
CONFIG += no_keywords
|
||||
-CONFIG += silent
|
||||
+# CONFIG += silent
|
||||
CONFIG -= depend_includepath
|
||||
|
||||
# CONFIG += sanitize
|
||||
diff -rupN --no-dereference qwt-6.2.0/qwtconfig.pri qwt-6.2.0-new/qwtconfig.pri
|
||||
--- qwt-6.2.0/qwtconfig.pri 2021-07-18 13:19:33.656367878 +0200
|
||||
+++ qwt-6.2.0-new/qwtconfig.pri 2022-11-29 15:38:14.787069939 +0100
|
||||
@@ -19,7 +19,7 @@ QWT_VERSION = $${QWT_VER_MAJ}.$${QW
|
||||
QWT_INSTALL_PREFIX = $$[QT_INSTALL_PREFIX]
|
||||
|
||||
unix {
|
||||
- QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION
|
||||
+ # QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION
|
||||
# QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION-qt-$$QT_VERSION
|
||||
}
|
||||
|
||||
@@ -28,9 +28,9 @@ win32 {
|
||||
# QWT_INSTALL_PREFIX = C:/Qwt-$$QWT_VERSION-qt-$$QT_VERSION
|
||||
}
|
||||
|
||||
-QWT_INSTALL_DOCS = $${QWT_INSTALL_PREFIX}/doc
|
||||
-QWT_INSTALL_HEADERS = $${QWT_INSTALL_PREFIX}/include
|
||||
-QWT_INSTALL_LIBS = $${QWT_INSTALL_PREFIX}/lib
|
||||
+QWT_INSTALL_DOCS = $$[QT_INSTALL_DOCS]/html
|
||||
+QWT_INSTALL_HEADERS = $$[QT_INSTALL_HEADERS]/qwt
|
||||
+QWT_INSTALL_LIBS = $$[QT_INSTALL_LIBS]
|
||||
|
||||
######################################################################
|
||||
# Designer plugin
|
||||
@@ -42,7 +42,8 @@ QWT_INSTALL_LIBS = $${QWT_INSTALL_P
|
||||
# runtime environment of designer/creator.
|
||||
######################################################################
|
||||
|
||||
-QWT_INSTALL_PLUGINS = $${QWT_INSTALL_PREFIX}/plugins/designer
|
||||
+#QWT_INSTALL_PLUGINS = $${QWT_INSTALL_PREFIX}/plugins/designer
|
||||
+QWT_INSTALL_PLUGINS = $$[QT_INSTALL_PLUGINS]/designer
|
||||
|
||||
# linux distributors often organize the Qt installation
|
||||
# their way and QT_INSTALL_PREFIX doesn't offer a good
|
||||
@@ -63,8 +64,8 @@ QWT_INSTALL_PLUGINS = $${QWT_INSTALL_P
|
||||
# with every Qt upgrade.
|
||||
######################################################################
|
||||
|
||||
-QWT_INSTALL_FEATURES = $${QWT_INSTALL_PREFIX}/features
|
||||
-# QWT_INSTALL_FEATURES = $$[QT_INSTALL_PREFIX]/features
|
||||
+#QWT_INSTALL_FEATURES = $${QWT_INSTALL_PREFIX}/features
|
||||
+QWT_INSTALL_FEATURES = $$[QMAKE_MKSPECS]/features
|
||||
|
||||
######################################################################
|
||||
# Build the static/shared libraries.
|
369
base/qwt/qwt.spec
Normal file
369
base/qwt/qwt.spec
Normal file
@ -0,0 +1,369 @@
|
||||
# trim changelog included in binary rpms
|
||||
%global _changelog_trimtime %(date +%s -d "1 year ago")
|
||||
|
||||
%bcond_without qt5
|
||||
%bcond_without qt6
|
||||
|
||||
Name: qwt
|
||||
Summary: Qt Widgets for Technical Applications
|
||||
Version: 6.2.0
|
||||
Release: 6%{?dist}
|
||||
|
||||
License: LGPLv2 with exceptions
|
||||
URL: http://qwt.sourceforge.net
|
||||
Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.bz2
|
||||
|
||||
## upstream patches
|
||||
|
||||
## upstreamable patches
|
||||
# Use QT_INSTALL_ paths instead of custom prefix
|
||||
Patch51: qwt-qt_install_paths.patch
|
||||
# Add qt suffix to libraries to make them parallel-installable
|
||||
Patch52: qwt-libsuffix.patch
|
||||
# Kill rpath
|
||||
Patch53: qwt-no_rpath.patch
|
||||
# Fix incorrect requires in pkgconfig files
|
||||
Patch54: qwt-pkgconfig.patch
|
||||
|
||||
BuildRequires: make
|
||||
|
||||
%description
|
||||
The Qwt library contains GUI Components and utility classes which are primarily
|
||||
useful for programs with a technical background.
|
||||
Besides a 2D plot widget it provides scales, sliders, dials, compasses,
|
||||
thermometers, wheels and knobs to control or display values, arrays
|
||||
or ranges of type double.
|
||||
|
||||
|
||||
%package doc
|
||||
Summary: Developer documentation for %{name}
|
||||
BuildArch: noarch
|
||||
%description doc
|
||||
%{summary}.
|
||||
|
||||
%if %{with qt5}
|
||||
%package qt5
|
||||
Summary: Qt5 Widgets for Technical Applications
|
||||
BuildRequires: pkgconfig(Qt5Concurrent) pkgconfig(Qt5PrintSupport) pkgconfig(Qt5Widgets)
|
||||
BuildRequires: pkgconfig(Qt5OpenGL) pkgconfig(Qt5Svg)
|
||||
BuildRequires: pkgconfig(Qt5Designer)
|
||||
Provides: qwt6-qt5 = %{version}-%{release}
|
||||
Provides: qwt6-qt5%{_isa} = %{version}-%{release}
|
||||
%description qt5
|
||||
%{summary}.
|
||||
|
||||
%package qt5-devel
|
||||
Summary: Development files for %{name}-qt5
|
||||
Provides: qwt6-qt5-devel = %{version}-%{release}
|
||||
Provides: qwt6-qt5-devel%{_isa} = %{version}-%{release}
|
||||
Requires: %{name}-qt5%{?_isa} = %{version}-%{release}
|
||||
%description qt5-devel
|
||||
%{summary}.
|
||||
%endif
|
||||
|
||||
%if %{with qt6}
|
||||
%package qt6
|
||||
Summary: Qt6 Widgets for Technical Applications
|
||||
BuildRequires: pkgconfig(Qt6Concurrent) pkgconfig(Qt6PrintSupport) pkgconfig(Qt6Widgets)
|
||||
BuildRequires: pkgconfig(Qt6OpenGL) pkgconfig(Qt6Svg)
|
||||
BuildRequires: pkgconfig(Qt6Designer)
|
||||
Provides: qwt6-qt6 = %{version}-%{release}
|
||||
Provides: qwt6-qt6%{_isa} = %{version}-%{release}
|
||||
%description qt6
|
||||
%{summary}.
|
||||
|
||||
%package qt6-devel
|
||||
Summary: Development files for %{name}-qt6
|
||||
Provides: qwt6-qt6-devel = %{version}-%{release}
|
||||
Provides: qwt6-qt6-devel%{_isa} = %{version}-%{release}
|
||||
Requires: %{name}-qt6%{?_isa} = %{version}-%{release}
|
||||
%description qt6-devel
|
||||
%{summary}.
|
||||
%endif
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
||||
|
||||
%build
|
||||
%if %{with qt5}
|
||||
mkdir %{_target_platform}-qt5
|
||||
pushd %{_target_platform}-qt5
|
||||
%{qmake_qt5} QWT_CONFIG+=QwtPkgConfig ..
|
||||
|
||||
%make_build
|
||||
popd
|
||||
%endif
|
||||
|
||||
%if %{with qt6}
|
||||
mkdir %{_target_platform}-qt6
|
||||
pushd %{_target_platform}-qt6
|
||||
%{qmake_qt6} QWT_CONFIG+=QwtPkgConfig ..
|
||||
|
||||
%make_build
|
||||
popd
|
||||
%endif
|
||||
|
||||
|
||||
%install
|
||||
%if %{with qt5}
|
||||
make install INSTALL_ROOT=%{buildroot} -C %{_target_platform}-qt5
|
||||
%endif
|
||||
%if %{with qt6}
|
||||
make install INSTALL_ROOT=%{buildroot} -C %{_target_platform}-qt6
|
||||
%endif
|
||||
|
||||
mkdir -p %{buildroot}%{_defaultdocdir}/%{name}
|
||||
mkdir -p %{buildroot}%{_mandir}
|
||||
|
||||
# Move docs to proper dirs
|
||||
%if %{with qt5}
|
||||
# Last build "wins"
|
||||
rm -rf %{buildroot}%{_defaultdocdir}/%{name}/html %{buildroot}%{_mandir}/*
|
||||
mv %{buildroot}%{_qt5_docdir}/html/html %{buildroot}%{_defaultdocdir}/%{name}/html
|
||||
mv %{buildroot}%{_qt5_docdir}/html/man/man3 %{buildroot}%{_mandir}/
|
||||
|
||||
%if %{with qt6}
|
||||
# Last build "wins"
|
||||
rm -rf %{buildroot}%{_defaultdocdir}/%{name}/html %{buildroot}%{_mandir}/*
|
||||
mv %{buildroot}%{_qt6_docdir}/html/html %{buildroot}%{_defaultdocdir}/%{name}/html
|
||||
mv %{buildroot}%{_qt6_docdir}/html/man/man3 %{buildroot}%{_mandir}/
|
||||
%endif
|
||||
%endif
|
||||
|
||||
|
||||
%files doc
|
||||
%doc %{_defaultdocdir}/%{name}/
|
||||
%{_mandir}/man3/*
|
||||
|
||||
%if %{with qt5}
|
||||
%files qt5
|
||||
%license COPYING
|
||||
%doc README
|
||||
%{_qt5_libdir}/libqwt-qt5.so.6*
|
||||
%{_qt5_plugindir}/designer/libqwt_designer_plugin.so
|
||||
|
||||
%files qt5-devel
|
||||
%{_qt5_headerdir}/qwt/
|
||||
%{_qt5_libdir}/libqwt-qt5.so
|
||||
%{_qt5_archdatadir}/mkspecs/features/qwt*
|
||||
%{_qt5_libdir}/pkgconfig/Qt5Qwt6.pc
|
||||
%endif
|
||||
|
||||
%if %{with qt6}
|
||||
%files qt6
|
||||
%license COPYING
|
||||
%doc README
|
||||
%{_qt6_libdir}/libqwt-qt6.so.6*
|
||||
%{_qt6_plugindir}/designer/libqwt_designer_plugin.so
|
||||
|
||||
%files qt6-devel
|
||||
%{_qt6_headerdir}/qwt/
|
||||
%{_qt6_libdir}/libqwt-qt6.so
|
||||
%{_qt6_archdatadir}/mkspecs/features/qwt*
|
||||
%{_qt6_libdir}/pkgconfig/Qt6Qwt6.pc
|
||||
%endif
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 6.2.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Tue Nov 29 2022 Sandro Mani <manisandro@gmail.com> - 6.2.0-1
|
||||
- Update to 6.2.0
|
||||
- Add qt6 build
|
||||
|
||||
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.5-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.5-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.5-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.5-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.5-3
|
||||
- Second attempt - Rebuilt for
|
||||
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.5-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Mon Jul 13 2020 Marie Loise Nolden <loise@kde.org - 6.1.5-1
|
||||
- Update to 6.1.5 (compatibility to Qt 5.15)
|
||||
|
||||
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.4-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Mon Jan 06 2020 Sandro Mani <manisandro@gmail.com> - 6.1.4-1
|
||||
- Update to 6.1.4
|
||||
|
||||
* Sat Nov 30 2019 Rex Dieter <rdieter@fedoraproject.org> - 6.1.3-12
|
||||
- make qt4 conditional, no on el8+ (#1773581)
|
||||
|
||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.3-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.3-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Tue Jul 24 2018 Rex Dieter <rdieter@fedoraproject.org> - 6.1.3-9
|
||||
- use %%_qt5_archdatadir/mkspecs
|
||||
|
||||
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.3-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Wed Mar 07 2018 Rex Dieter <rdieter@fedoraproject.org> - 6.1.3-7
|
||||
- use %%make_build %%license %%ldconfig_scriptlets
|
||||
|
||||
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.3-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.3-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.3-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Thu Mar 09 2017 Rex Dieter <rdieter@fedoraproject.org> - 6.1.3-3
|
||||
- changelog cosmetics (whitespace mostly)
|
||||
|
||||
* Wed Mar 08 2017 Rex Dieter <rdieter@fedoraproject.org> - 6.1.3-2
|
||||
- no_rpath.patch
|
||||
|
||||
* Wed Mar 08 2017 Rex Dieter <rdieter@fedoraproject.org> - 6.1.3-1
|
||||
- qwt-6.1.3 (#1430378)
|
||||
|
||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.2-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 6.1.2-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.1.2-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 6.1.2-3
|
||||
- Rebuilt for GCC 5 C++11 ABI change
|
||||
|
||||
* Thu Feb 19 2015 Rex Dieter <rdieter@fedoraproject.org> - 6.1.2-2
|
||||
- rebuild (gcc5)
|
||||
|
||||
* Fri Dec 12 2014 Rex Dieter <rdieter@fedoraproject.org> 6.1.2-1
|
||||
- qwt-6.1.2
|
||||
|
||||
* Mon Dec 01 2014 Rex Dieter <rdieter@fedoraproject.org> - 6.1.1-3
|
||||
- %%build: use %%qmake-qt? macro variant
|
||||
- RFE: Qwt build for Qt5 (#1164515)
|
||||
|
||||
* Tue Oct 28 2014 Rex Dieter <rdieter@fedoraproject.org> 6.1.1-2
|
||||
- do out-of-src build (prep for qt5 build maybe coming someday)
|
||||
|
||||
* Sat Sep 20 2014 Rex Dieter <rdieter@fedoraproject.org> 6.1.1-1
|
||||
- qwt-6.1.1
|
||||
|
||||
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.1.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||
|
||||
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.1.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||
|
||||
* Tue Oct 29 2013 Rex Dieter <rdieter@fedoraproject.org> - 6.1.0-1
|
||||
- qwt-6.1.0
|
||||
- QtDesigner plugin doesn't link to the proper header directory path (#824447)
|
||||
|
||||
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.0.1-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.0.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
* Mon Nov 26 2012 Rex Dieter <rdieter@fedoraproject.org> 6.0.1-2
|
||||
- qwtbuild.pri: drop CONFIG+=silent
|
||||
|
||||
* Tue Aug 14 2012 Rex Dieter <rdieter@fedoraproject.org> - 6.0.1-1
|
||||
- qwt-6.0.1 (#697168)
|
||||
- add pkgconfig support
|
||||
|
||||
* Fri Aug 03 2012 Rex Dieter <rdieter@fedoraproject.org> 5.2.2-6
|
||||
- qwt*.pc : +Requires: QtGui QtSvg
|
||||
|
||||
* Thu Aug 02 2012 Rex Dieter <rdieter@fedoraproject.org> 5.2.2-5
|
||||
- pkgconfig support
|
||||
|
||||
* Tue Jul 31 2012 Rex Dieter <rdieter@fedoraproject.org> - 5.2.2-4
|
||||
- Provides: qwt5-qt4(-devel)
|
||||
- pkgconfig-style deps
|
||||
|
||||
- * Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.2.2-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||
|
||||
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.2.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||
|
||||
* Sun Aug 07 2011 Rex Dieter <rdieter@fedoraproject.org> 5.2.2-1
|
||||
- 5.2.2
|
||||
|
||||
* Thu Jul 14 2011 Rex Dieter <rdieter@fedoraproject.org> 5.2.1-3
|
||||
- .spec cosmetics
|
||||
- use %%_qt4_ macros
|
||||
- -doc subpkg here (instead of separately built)
|
||||
|
||||
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.2.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||
|
||||
* Fri Apr 16 2010 Frank Büttner <frank-buettner@gmx.net> - 5.2.1-1
|
||||
- update to 5.2.1
|
||||
|
||||
* Fri Feb 05 2010 Frank Büttner <frank-buettner@gmx.net> - 5.2.0-1
|
||||
- fix wrong lib names
|
||||
|
||||
* Fri Feb 05 2010 Frank Büttner <frank-buettner@gmx.net> - 5.2.0-0
|
||||
- update to 5.2.0
|
||||
|
||||
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.1.1-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||
|
||||
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.1.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
||||
|
||||
* Sun Jan 04 2009 Frank Büttner <frank-buettner@gmx.net> - 5.1.1-2
|
||||
- modify path patch
|
||||
|
||||
* Sun Jan 04 2009 Frank Büttner <frank-buettner@gmx.net> - 5.1.1-1
|
||||
- update to 5.1.1
|
||||
|
||||
* Mon Feb 18 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 5.0.2-6
|
||||
- Autorebuild for GCC 4.3
|
||||
|
||||
* Sat Sep 29 2007 Frank Büttner <frank-buettner@gmx.net> - 5.0.2-5
|
||||
- add EPEL support
|
||||
|
||||
* Sat Sep 29 2007 Frank Büttner <frank-buettner@gmx.net> - 5.0.2-4
|
||||
- remove parallel build, because it will fail sometimes
|
||||
|
||||
* Fri Sep 28 2007 Frank Büttner <frank-buettner@gmx.net> - 5.0.2-3
|
||||
- fix some errors in the spec file
|
||||
|
||||
* Fri Jul 06 2007 Frank Büttner <frank-buettner@gmx.net> - 5.0.2-2
|
||||
- fix some errors in the spec file
|
||||
|
||||
* Mon Jun 11 2007 Frank Büttner <frank-buettner@gmx.net> - 5.0.2-1
|
||||
- update to 5.0.2
|
||||
- split doc
|
||||
|
||||
* Tue May 15 2007 Frank Büttner <frank-buettner@gmx.net> - 5.0.1-1
|
||||
- start
|
@ -1,6 +1,6 @@
|
||||
Name: bluedevil
|
||||
Summary: Bluetooth stack for KDE
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: GPL-2.0-or-later
|
||||
@ -92,6 +92,9 @@ desktop-file-validate %{buildroot}%{_kf6_datadir}/applications/org.kde.bluedevil
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: breeze-gtk
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Breeze widget theme for GTK
|
||||
|
||||
@ -101,6 +101,9 @@ Supplements: (plasma-breeze and gtk4)
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: flatpak-kcm
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
License: BSD-2-Clause and BSD-3-Clause and CC0-1.0 and GPL-2.0-or-later
|
||||
Summary: Flatpak Permissions Management KCM
|
||||
@ -41,6 +41,9 @@ BuildRequires: pkgconfig(flatpak)
|
||||
%{_qt6_plugindir}/plasma/kcms/systemsettings/kcm_flatpak.so
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
%global base_name breeze-grub
|
||||
|
||||
Name: grub2-breeze-theme
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Breeze theme for GRUB
|
||||
|
||||
@ -59,6 +59,9 @@ find breeze/ -type f -and -not -iname \*.license -print0 \
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: kactivitymanagerd
|
||||
Summary: Plasma service to manage user's activities
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.1-only AND LGPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only)
|
||||
@ -68,6 +68,9 @@ Provides: kactivities = %{version}-%{release}
|
||||
%{_qt6_plugindir}/kactivitymanagerd1/
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: kcm_wacomtablet
|
||||
Summary: KDE Control module for Wacom Graphictablets
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: GPLv2+
|
||||
@ -82,6 +82,9 @@ with profile support to handle different button/pen layouts per profile.
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: kde-cli-tools
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Tools based on KDE Frameworks 5 to better interact with the system
|
||||
|
||||
@ -106,6 +106,9 @@ ln -s %{_kf6_libexecdir}/kdesu %{buildroot}%{_bindir}/kdesu
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: kde-gtk-config
|
||||
Summary: Configure the appearance of GTK apps in KDE
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only)
|
||||
@ -84,6 +84,9 @@ export CFLAGS="-I%{_includedir}/atk-1.0/ -I%{_includedir}/gtk-3.0 -I%{_includedi
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: kdecoration
|
||||
Summary: A plugin-based library to create window decorations
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: LGPLv2
|
||||
@ -56,6 +56,9 @@ mkdir -p %{buildroot}%{_kf6_qtplugindir}/org.kde.kdecoration2/
|
||||
%{_includedir}/KDecoration2
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: kdeplasma-addons
|
||||
Summary: Additional Plasmoids for Plasma 6
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND GPL-3.0-or-later AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-only AND LGPL-3.0-or-later AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only) AND MIT
|
||||
@ -148,6 +148,9 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.appdata.xml
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
Name: kgamma
|
||||
Summary: A monitor calibration tool
|
||||
Epoch: 1
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: CC0-1.0 AND GPL-2.0-or-later
|
||||
@ -61,6 +61,9 @@ Conflicts: kdegraphics < 7:4.6.95-10
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: kglobalacceld
|
||||
Summary: Daemon providing Global Keyboard Shortcut functionality
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: CC0-1.0 AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-3.0-only AND (LGPL-2.1-only OR LGPL-3.0-only)
|
||||
@ -72,6 +72,9 @@ Requires: qt6-qtbase-devel
|
||||
%{_libdir}/cmake/KGlobalAccelD/
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: kinfocenter
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: KDE Info Center
|
||||
|
||||
@ -107,6 +107,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/kcm_energyinfo.deskto
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: kmenuedit
|
||||
Summary: KDE menu editor
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later
|
||||
@ -57,6 +57,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.kde.kmenuedit.des
|
||||
%{_kf6_datadir}/metainfo/org.kde.kmenuedit.appdata.xml
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: kpipewire
|
||||
Summary: Set of convenient classes to use PipeWire in Qt projects
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-3-Clause AND CC0-1.0 AND LGPL-2.1-only AND LGPL-3.0-only
|
||||
@ -108,6 +108,9 @@ export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PA
|
||||
%{_libdir}/cmake/KPipeWire/*.cmake
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: kscreen
|
||||
Epoch: 1
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: KDE Display Management software
|
||||
|
||||
@ -73,6 +73,9 @@ KCM and KDED modules for managing displays in KDE.
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: kscreenlocker
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Library and components for secure lock screen architecture
|
||||
|
||||
@ -99,6 +99,9 @@ export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PA
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: ksshaskpass
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: A ssh-add helper that uses kwallet and kpassworddialog
|
||||
|
||||
@ -53,6 +53,9 @@ EOF
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: ksystemstats
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: KSystemStats is a daemon that collects statistics about the running system.
|
||||
|
||||
@ -67,6 +67,9 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
%{_qt6_plugindir}/ksystemstats/
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: kwayland-integration
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Provides integration plugins for various KDE Frameworks for Wayland
|
||||
|
||||
@ -61,6 +61,9 @@ export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PA
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: kwayland
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Qt-style API to interact with the wayland-client API
|
||||
|
||||
@ -91,6 +91,9 @@ export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PA
|
||||
%{_qt6_docdir}/*.qch
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: kwin-x11
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: KDE Window manager with X11 support
|
||||
|
||||
@ -178,6 +178,9 @@ export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PA
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
%bcond_without x11
|
||||
|
||||
Name: kwin
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: KDE Window manager
|
||||
|
||||
@ -305,6 +305,9 @@ rm -v %{buildroot}%{_kf6_bindir}/kwin_x11 %{buildroot}%{_userunitdir}/plasma-kwi
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: kwrited
|
||||
Summary: KDE Write Daemon
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: CC0-1.0 AND GPL-2.0-or-later
|
||||
@ -44,6 +44,9 @@ Conflicts: kde-workspace < 5.0.0-1
|
||||
%{_kf6_datadir}/knotifications6/kwrited.notifyrc
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: layer-shell-qt
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Library to easily use clients based on wlr-layer-shell
|
||||
|
||||
@ -73,6 +73,9 @@ export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PA
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: libkscreen
|
||||
Summary: KDE display configuration library
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: GPL-2.0-or-later
|
||||
@ -97,6 +97,9 @@ export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PA
|
||||
%{_qt6_docdir}/*.qch
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: libksysguard
|
||||
Summary: Library for managing processes running on the system
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only)
|
||||
@ -124,6 +124,9 @@ developing applications that use %{name}.
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: libplasma
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Plasma is the foundation of the KDE user interface (v6)
|
||||
|
||||
@ -138,6 +138,9 @@ mkdir -p %{buildroot}%{_kf6_qmldir}/org/kde/private
|
||||
%{_qt6_docdir}/*.qch
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: ocean-sound-theme
|
||||
Summary: Ocean Sound Theme for Plasma
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
BuildArch: noarch
|
||||
|
||||
@ -38,6 +38,9 @@ Requires: kf6-filesystem
|
||||
%{_datadir}/sounds/ocean/
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
## END: Set by rpmautospec
|
||||
|
||||
Name: oxygen-sounds
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: The Oxygen Sound Theme
|
||||
|
||||
@ -45,6 +45,9 @@ BuildArch: noarch
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -0,0 +1,102 @@
|
||||
diff -Naur a/cmake/modules/FindLibGcrypt.cmake b/cmake/modules/FindLibGcrypt.cmake
|
||||
--- a/cmake/modules/FindLibGcrypt.cmake 1970-01-01 06:00:00.000000000 +0600
|
||||
+++ b/cmake/modules/FindLibGcrypt.cmake 2024-07-08 16:40:41.713254022 +0600
|
||||
@@ -0,0 +1,68 @@
|
||||
+
|
||||
+# - Try to find the Gcrypt library
|
||||
+# Once run this will define
|
||||
+#
|
||||
+# LIBGCRYPT_FOUND - set if the system has the gcrypt library
|
||||
+# LIBGCRYPT_INCLUDE_DIR - the path to find the gcrypt header
|
||||
+# LIBGCRYPT_CFLAGS - the required gcrypt compilation flags
|
||||
+# LIBGCRYPT_LIBRARIES - the linker libraries needed to use the gcrypt library
|
||||
+#
|
||||
+# libgcrypt is moving to pkg-config, but earlier version don't have it
|
||||
+#
|
||||
+# SPDX-FileCopyrightText: 2006 Brad Hards <bradh@kde.org>
|
||||
+#
|
||||
+# SPDX-License-Identifier: BSD-3-Clause
|
||||
+
|
||||
+if(NOT LibGcrypt_FIND_VERSION)
|
||||
+ set(LibGcrypt_FIND_VERSION "1.6.1")
|
||||
+endif()
|
||||
+
|
||||
+#search in typical paths for libgcrypt-config
|
||||
+FIND_PROGRAM(LIBGCRYPTCONFIG_EXECUTABLE NAMES libgcrypt-config)
|
||||
+
|
||||
+#reset variables
|
||||
+set(LIBGCRYPT_LIBRARIES)
|
||||
+set(LIBGCRYPT_INCLUDE_DIR)
|
||||
+set(LIBGCRYPT_CFLAGS)
|
||||
+
|
||||
+# if libgcrypt-config has been found
|
||||
+IF(LIBGCRYPTCONFIG_EXECUTABLE)
|
||||
+
|
||||
+ # workaround for MinGW/MSYS
|
||||
+ # CMake can't starts shell scripts on windows so it need to use sh.exe
|
||||
+ EXECUTE_PROCESS(COMMAND sh ${LIBGCRYPTCONFIG_EXECUTABLE} --libs RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE LIBGCRYPT_LIBRARIES OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
+ EXECUTE_PROCESS(COMMAND sh ${LIBGCRYPTCONFIG_EXECUTABLE} --prefix RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE LIBGCRYPT_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
+ EXECUTE_PROCESS(COMMAND sh ${LIBGCRYPTCONFIG_EXECUTABLE} --cflags RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE LIBGCRYPT_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
+ EXECUTE_PROCESS(COMMAND sh ${LIBGCRYPTCONFIG_EXECUTABLE} --version RESULT_VARIABLE _return_VALUEVersion OUTPUT_VARIABLE LIBGCRYPT_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
+
|
||||
+ IF(NOT LIBGCRYPT_CFLAGS AND NOT _return_VALUE)
|
||||
+ SET(LIBGCRYPT_CFLAGS " ")
|
||||
+ ENDIF(NOT LIBGCRYPT_CFLAGS AND NOT _return_VALUE)
|
||||
+
|
||||
+ IF(LIBGCRYPT_PREFIX)
|
||||
+ SET(LIBGCRYPT_INCLUDE_DIR "${LIBGCRYPT_PREFIX}/include")
|
||||
+ ENDIF(LIBGCRYPT_PREFIX)
|
||||
+
|
||||
+ IF(LIBGCRYPT_LIBRARIES AND LIBGCRYPT_CFLAGS)
|
||||
+ SET(LIBGCRYPT_FOUND TRUE)
|
||||
+ ENDIF(LIBGCRYPT_LIBRARIES AND LIBGCRYPT_CFLAGS)
|
||||
+
|
||||
+ if(LIBGCRYPT_VERSION VERSION_LESS ${LibGcrypt_FIND_VERSION})
|
||||
+ message(WARNING "libgcrypt found but version is less than required, Found ${LIBGCRYPT_VERSION} Required ${LibGcrypt_FIND_VERSION}")
|
||||
+ SET(LIBGCRYPT_FOUND FALSE)
|
||||
+ endif()
|
||||
+
|
||||
+ENDIF(LIBGCRYPTCONFIG_EXECUTABLE)
|
||||
+
|
||||
+if (LIBGCRYPT_FOUND)
|
||||
+ if (NOT LibGcrypt_FIND_QUIETLY)
|
||||
+ message(STATUS "Found libgcrypt: ${LIBGCRYPT_LIBRARIES}")
|
||||
+ endif (NOT LibGcrypt_FIND_QUIETLY)
|
||||
+else (LIBGCRYPT_FOUND)
|
||||
+ if (LibGcrypt_FIND_REQUIRED)
|
||||
+ message(WARNING "Could not find libgcrypt libraries")
|
||||
+ endif (LibGcrypt_FIND_REQUIRED)
|
||||
+endif (LIBGCRYPT_FOUND)
|
||||
+
|
||||
+MARK_AS_ADVANCED(LIBGCRYPT_CFLAGS LIBGCRYPT_LIBRARIES)
|
||||
+
|
||||
diff -Naur a/CMakeLists.txt b/CMakeLists.txt
|
||||
--- a/CMakeLists.txt 2024-07-02 15:12:56.000000000 +0600
|
||||
+++ b/CMakeLists.txt 2024-07-08 16:42:46.060511781 +0600
|
||||
@@ -18,8 +18,7 @@
|
||||
include(KDEGitCommitHooks)
|
||||
|
||||
find_package(PAM REQUIRED)
|
||||
-find_package(PkgConfig REQUIRED)
|
||||
-pkg_check_modules(LIBGCRYPT REQUIRED IMPORTED_TARGET libgcrypt)
|
||||
+find_package(LibGcrypt 1.5.0 REQUIRED)
|
||||
|
||||
find_program(SOCAT_EXECUTABLE socat)
|
||||
|
||||
@@ -33,6 +32,7 @@
|
||||
${PAM_INCLUDE_DIR}
|
||||
${CMAKE_BINARY_DIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
+ ${LIBGCRYPT_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050c00)
|
||||
@@ -84,7 +84,7 @@
|
||||
set_target_properties (${library_name} PROPERTIES PREFIX "")
|
||||
target_link_libraries (${library_name}
|
||||
${PAM_LIBRARIES}
|
||||
- PkgConfig::LIBGCRYPT
|
||||
+ ${LIBGCRYPT_LIBRARIES}
|
||||
)
|
||||
|
||||
# add clang-format target for all our real source files
|
@ -3,7 +3,7 @@
|
||||
|
||||
Name: pam-kwallet
|
||||
Summary: PAM module for KWallet
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
License: LGPL-2.0-or-later
|
||||
URL: https://invent.kde.org/plasma/%{base_name}.git
|
||||
@ -14,6 +14,8 @@ Source0: https://download.kde.org/stable/plasma/%{version}/%{base_name}-%{versio
|
||||
|
||||
## upstreamable patches
|
||||
|
||||
Patch0: kwallet-pam-use-internal-loader-for-libgcrypt.patch
|
||||
|
||||
Provides: %{base_name} = %{version}-%{release}
|
||||
|
||||
BuildRequires: extra-cmake-modules
|
||||
@ -54,6 +56,9 @@ Requires: kf6-kwallet
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: plasma-activities-stats
|
||||
Summary: Library to access the usage statistics data collected by the KDE activity manager
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: CC0-1.0, GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only)
|
||||
@ -76,6 +76,9 @@ Developer Documentation files for %{name} for use with KDevelop or QtCreator.
|
||||
%{_qt6_docdir}/*.qch
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: plasma-activities
|
||||
Summary: Core components for the KDE Activity concept
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: CC0-1.0 AND GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-3.0-only AND (LGPL-2.1-only OR LGPL-3.0-only) AND MIT
|
||||
@ -81,6 +81,9 @@ Developer Documentation files for %{name} for use with KDevelop or QtCreator.
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
%bcond_without kf5
|
||||
|
||||
Name: plasma-breeze
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Artwork, styles and assets for the Breeze visual style for the Plasma Desktop
|
||||
|
||||
@ -163,6 +163,9 @@ popd
|
||||
%{_kf6_datadir}/icons/breeze_cursors/index.theme
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: plasma-browser-integration
|
||||
Summary: %{name} provides components necessary to integrate browsers into the Plasma Desktop
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: CC0-1.0 AND GPL-2.0-or-later AND GPL-3.0-or-later AND MIT
|
||||
@ -76,6 +76,9 @@ https://community.kde.org/Plasma/Browser_Integration
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
Name: plasma-desktop
|
||||
Summary: Plasma Desktop shell
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only)
|
||||
@ -352,6 +352,9 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/kaccess.desktop
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: plasma-disks
|
||||
Summary: Hard disk health monitoring for KDE Plasma
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-3-Clause AND CC0-1.0 AND FSFAP AND GPL-2.0-only AND GPL-3.0-only AND LGPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only)
|
||||
@ -69,6 +69,9 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/kcm_disks.desktop
|
||||
%{_kf6_datadir}/polkit-1/actions/org.kde.kded.smart.policy
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
Name: plasma-drkonqi
|
||||
Summary: DrKonqi crash handler for KF6/Plasma6
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
License: BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.1-only AND LGPL-3.0-only AND LGPL-3.0-or-later AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only)
|
||||
URL: https://invent.kde.org/plasma/%{base_name}
|
||||
@ -118,6 +118,9 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/org.kde.{drkonqi.cor
|
||||
%{_kf6_datadir}/polkit-1/actions/org.kde.drkonqi.policy
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
|
||||
Name: plasma-firewall
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Control Panel for your system firewall
|
||||
|
||||
@ -98,6 +98,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/kcm_firewall.desktop
|
||||
%{_datadir}/polkit-1/actions/org.kde.ufw.policy
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: plasma-integration
|
||||
Summary: Qt Platform Theme integration plugin for Plasma
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-3.0-only AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND LGPL-3.0-only AND (LGPL-2.1-only OR LGPL-3.0-only)
|
||||
@ -117,6 +117,9 @@ export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PA
|
||||
%{_qt5_plugindir}/platformthemes/KDEPlasmaPlatformTheme5.so
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
%define base_name milou
|
||||
|
||||
Name: plasma-%{base_name}
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: A dedicated KDE search application built on top of Baloo
|
||||
|
||||
@ -57,6 +57,9 @@ Provides: kde-plasma-milou = %{version}-%{release}
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
%global orig_name org.kde.plasma.nano
|
||||
|
||||
Name: plasma-nano
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
License: CC0-1.0 AND GPL-2.0-or-later AND LGPL-2.0-or-later AND MIT
|
||||
URL: https://invent.kde.org/plasma/plasma-nano
|
||||
@ -80,6 +80,9 @@ appstream-util validate-relax --nonet %{buildroot}%{_kf6_metainfodir}/%{orig_nam
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: plasma-nm
|
||||
Summary: Plasma for managing network connections
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only)
|
||||
@ -282,6 +282,9 @@ rm -f %{buildroot}/usr/share/locale/*/LC_MESSAGES/plasmanetworkmanagement_openco
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
%global base_name oxygen
|
||||
|
||||
Name: plasma-%{base_name}
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Plasma and Qt widget style and window decorations for Plasma
|
||||
|
||||
@ -155,6 +155,9 @@ popd
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: plasma-pa
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Plasma applet for audio volume management using PulseAudio
|
||||
|
||||
@ -73,6 +73,9 @@ rm -fv %{buildroot}%{_kf6_libdir}/libplasma-volume.so
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
Name: plasma-print-manager
|
||||
Summary: Printer management for KDE
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-3.0-only AND (LGPL-2.1-only OR LGPL-3.0-only)
|
||||
@ -117,6 +117,9 @@ desktop-file-validate %{buildroot}%{_kf6_datadir}/applications/org.kde.PrintQueu
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: plasma-sdk
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Development tools for Plasma 6
|
||||
|
||||
@ -105,6 +105,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.kde.plasmoidviewe
|
||||
%{_mandir}/man1/kqml.1.gz
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: plasma-systemmonitor
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: An application for monitoring system resources
|
||||
|
||||
@ -69,6 +69,9 @@ resources.
|
||||
%{_libdir}/libPlasmaSystemMonitorTable.so
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
Name: plasma-%{base_name}
|
||||
Summary: KDE System Settings application
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-2-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-only AND LGPL-2.1-or-later AND (GPL-2.0-only OR GPL-3.0-only)
|
||||
@ -90,6 +90,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/systemsettings.deskto
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
Name: plasma-thunderbolt
|
||||
Summary: Plasma integration for controlling Thunderbolt devices
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only)
|
||||
@ -60,6 +60,9 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/kcm_bolt.desktop
|
||||
%{_kf6_datadir}/applications/kcm_bolt.desktop
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: plasma-vault
|
||||
Summary: Plasma Vault offers strong encryption features in a user-friendly way
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: CC0-1.0 AND GPL-2.0-only AND GPL-3.0-only AND LGPL-2.1-only AND LGPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only)
|
||||
@ -61,6 +61,9 @@ prying eyes even when the user is logged in.
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: plasma-workspace-wallpapers
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Additional wallpapers for Plasma workspace
|
||||
License: LGPLv3
|
||||
@ -73,6 +73,9 @@ Obsoletes: plasma-workspace-wallpapers < 5.2.0-2
|
||||
%{_datadir}/wallpapers/Volna/
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: plasma-workspace-x11
|
||||
Summary: Xorg support for Plasma
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-only AND LGPL-3.0-or-later AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only) AND MIT
|
||||
@ -213,6 +213,9 @@ export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PA
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
Name: plasma-workspace
|
||||
Summary: Plasma workspace, applications and applets
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-only AND LGPL-3.0-or-later AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only) AND MIT
|
||||
@ -228,6 +228,9 @@ Requires: socat
|
||||
Requires: xmessage
|
||||
Requires: qt6-qttools
|
||||
|
||||
# kconf_update
|
||||
Requires: /usr/bin/qtpaths-qt6
|
||||
|
||||
Requires: iceauth xrdb xprop
|
||||
|
||||
Requires: kde-settings-plasma
|
||||
@ -311,8 +314,8 @@ Obsoletes: plasma-workspace < 5.4.2-2
|
||||
Requires: %{name}-common = %{version}-%{release}
|
||||
# consider splitting out plasma_packagestructure content later
|
||||
Provides: plasma-packagestructure = %{version}-%{release}
|
||||
Requires: (rx-libwayland-client or libwayland-client >= 1.22)
|
||||
Requires: (rx-libwayland-cursor or libwayland-cursor >= 1.22)
|
||||
Requires: (libwayland-client >= 1.22 or rx-libwayland-client)
|
||||
Requires: (libwayland-cursor >= 1.22 or rx-libwayland-cursor)
|
||||
|
||||
%description libs
|
||||
%{summary}.
|
||||
@ -707,6 +710,9 @@ fi
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: plasma5support
|
||||
Summary: Support components for porting from KF5/Qt5 to KF6/Qt6
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: CC0-1.0 AND GPL-2.0-or-later AND LGPL-2.0-or-later
|
||||
@ -89,6 +89,9 @@ Developer Documentation files for %{name} for use with KDevelop or QtCreator.
|
||||
%{_qt6_docdir}/*.qch
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
Name: plymouth-kcm
|
||||
Summary: Plymouth configuration module for systemsettings
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-2-Clause AND CC0-1.0 AND GPL-2.0-or-later
|
||||
@ -64,6 +64,9 @@ plymouth splash screen.
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
%global base_name breeze-plymouth
|
||||
|
||||
Name: plymouth-theme-breeze
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Breeze theme for Plymouth
|
||||
|
||||
@ -53,6 +53,9 @@ install -D -m644 -p %{SOURCE10} \
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
Name: polkit-kde
|
||||
Summary: PolicyKit integration for KDE Desktop
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: GPL-2.0-or-later AND CC0-1.0
|
||||
@ -71,6 +71,9 @@ Provides Policy Kit Authentication Agent that nicely fits to KDE.
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: powerdevil
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: Manages the power consumption settings of a Plasma Shell
|
||||
|
||||
@ -111,6 +111,9 @@ rm -fv %{buildroot}/%{_libdir}/libpowerdevil{configcommonprivate,core,ui}.so
|
||||
%{_userunitdir}/plasma-powerprofile-osd.service
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: qqc2-breeze-style
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: QtQuickControls2 breeze style
|
||||
|
||||
@ -53,6 +53,9 @@ This is a pure Qt Quick/Kirigami Qt Quick Controls style.
|
||||
%{_kf6_libdir}/cmake/QQC2BreezeStyle/
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
Name: sddm-kcm
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
Summary: SDDM KDE configuration module
|
||||
|
||||
@ -64,6 +64,9 @@ SDDM Display Manager
|
||||
%{_qt6_plugindir}/plasma/kcms/systemsettings/kcm_sddm.so
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: xdg-desktop-portal-kde
|
||||
Summary: Backend implementation for xdg-desktop-portal using Qt/KF5
|
||||
Version: 6.1.1
|
||||
Version: 6.1.2
|
||||
Release: 1%{?dist}
|
||||
|
||||
License: BSD-2-Clause AND CC0-1.0 AND GPL-2.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-3.0-only AND (LGPL-2.1-only OR LGPL-3.0-only)
|
||||
@ -88,6 +88,9 @@ export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PA
|
||||
%{_userunitdir}/plasma-xdg-desktop-portal-kde.service
|
||||
|
||||
%changelog
|
||||
* Mon Jul 8 2024 Raven <raven@sysadmins.ws> - 6.1.2-1
|
||||
- 6.1.2
|
||||
|
||||
* Fri Jun 28 2024 Raven <raven@sysadmins.ws> - 6.1.1-1
|
||||
- 6.1.1
|
||||
|
||||
|
@ -0,0 +1,40 @@
|
||||
From b673271710047acb1976002e4b84d06b7cefd3d7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= <jexposit@redhat.com>
|
||||
Date: Wed, 17 Jan 2024 13:20:49 +0100
|
||||
Subject: [PATCH 1/2] Revert "egl: add automatic zink fallback loading between
|
||||
hw and sw drivers"
|
||||
|
||||
This reverts commit 8cd44b8843877a2f7d559d123eb3694841f16fdc.
|
||||
---
|
||||
src/egl/main/eglapi.c | 15 ++++-----------
|
||||
1 file changed, 4 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
|
||||
index d50be23e871..b1a48668b76 100644
|
||||
--- a/src/egl/main/eglapi.c
|
||||
+++ b/src/egl/main/eglapi.c
|
||||
@@ -695,17 +695,10 @@ eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
|
||||
if (disp->Options.ForceSoftware)
|
||||
RETURN_EGL_ERROR(disp, EGL_NOT_INITIALIZED, EGL_FALSE);
|
||||
else {
|
||||
- bool success = false;
|
||||
- if (!disp->Options.Zink && !getenv("GALLIUM_DRIVER")) {
|
||||
- disp->Options.Zink = EGL_TRUE;
|
||||
- success = _eglDriver.Initialize(disp);
|
||||
- }
|
||||
- if (!success) {
|
||||
- disp->Options.Zink = EGL_FALSE;
|
||||
- disp->Options.ForceSoftware = EGL_TRUE;
|
||||
- if (!_eglDriver.Initialize(disp))
|
||||
- RETURN_EGL_ERROR(disp, EGL_NOT_INITIALIZED, EGL_FALSE);
|
||||
- }
|
||||
+ disp->Options.Zink = EGL_FALSE;
|
||||
+ disp->Options.ForceSoftware = EGL_TRUE;
|
||||
+ if (!_eglDriver.Initialize(disp))
|
||||
+ RETURN_EGL_ERROR(disp, EGL_NOT_INITIALIZED, EGL_FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.43.0
|
||||
|
@ -0,0 +1,41 @@
|
||||
From d3ab117c837e537fe0b7077bb9e4c3f018153945 Mon Sep 17 00:00:00 2001
|
||||
Message-ID: <d3ab117c837e537fe0b7077bb9e4c3f018153945.1700681619.git.kai@dev.carbon-project.org>
|
||||
From: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= <kai@dev.carbon-project.org>
|
||||
Date: Wed, 22 Nov 2023 20:21:11 +0100
|
||||
Subject: [PATCH] fix: ac/llvm: LLVM 18_ do not use llvm::createLoopSinkPass(),
|
||||
removed upstream
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
There is no alternative named in upstream commit
|
||||
<https://github.com/llvm/llvm-project/commit/b9975cec0ea0a2f10d65b7bd1197d9e1706cbd3d>,
|
||||
that removes the legacy pass, therefore this commit should be considered
|
||||
a workaround.
|
||||
|
||||
Workaround-for: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10192
|
||||
Reference: https://github.com/llvm/llvm-project/pull/72811
|
||||
Reference: https://github.com/llvm/llvm-project/commit/b9975cec0ea0a2f10d65b7bd1197d9e1706cbd3d
|
||||
Signed-off-by: Kai Wasserbäch <kai@dev.carbon-project.org>
|
||||
---
|
||||
src/amd/llvm/ac_llvm_helper.cpp | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/amd/llvm/ac_llvm_helper.cpp b/src/amd/llvm/ac_llvm_helper.cpp
|
||||
index 40a4399e705..b995152ee36 100644
|
||||
--- a/src/amd/llvm/ac_llvm_helper.cpp
|
||||
+++ b/src/amd/llvm/ac_llvm_helper.cpp
|
||||
@@ -307,8 +307,9 @@ LLVMPassManagerRef ac_create_passmgr(LLVMTargetLibraryInfoRef target_library_inf
|
||||
unwrap(passmgr)->add(createSROAPass());
|
||||
#endif
|
||||
/* TODO: restore IPSCCP */
|
||||
- if (LLVM_VERSION_MAJOR >= 16)
|
||||
+ #if LLVM_VERSION_MAJOR >= 16 && LLVM_VERSION_MAJOR < 18
|
||||
unwrap(passmgr)->add(createLoopSinkPass());
|
||||
+ #endif
|
||||
/* TODO: restore IPSCCP */
|
||||
unwrap(passmgr)->add(createLICMPass());
|
||||
unwrap(passmgr)->add(createCFGSimplificationPass());
|
||||
--
|
||||
2.42.0
|
||||
|
@ -0,0 +1,103 @@
|
||||
From 9b9d225931b69532aa1b43abdaf29c826bc47b26 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= <jexposit@redhat.com>
|
||||
Date: Wed, 17 Jan 2024 13:21:08 +0100
|
||||
Subject: [PATCH 2/2] Revert "glx: add automatic zink fallback loading between
|
||||
hw and sw drivers"
|
||||
|
||||
This reverts commit 7d9ea77b4598e23d4415b529924f1cbdca6e33bd.
|
||||
---
|
||||
src/glx/glxext.c | 33 ++++++++-------------------------
|
||||
1 file changed, 8 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/src/glx/glxext.c b/src/glx/glxext.c
|
||||
index 39d5f08bdcf..5036fd137c1 100644
|
||||
--- a/src/glx/glxext.c
|
||||
+++ b/src/glx/glxext.c
|
||||
@@ -763,11 +763,10 @@ glx_screen_cleanup(struct glx_screen *psc)
|
||||
** If that works then fetch the per screen configs data.
|
||||
*/
|
||||
static Bool
|
||||
-AllocAndFetchScreenConfigs(Display * dpy, struct glx_display * priv, Bool zink)
|
||||
+AllocAndFetchScreenConfigs(Display * dpy, struct glx_display * priv)
|
||||
{
|
||||
struct glx_screen *psc;
|
||||
GLint i, screens;
|
||||
- unsigned screen_count = 0;
|
||||
|
||||
/*
|
||||
** First allocate memory for the array of per screen configs.
|
||||
@@ -804,21 +803,17 @@ AllocAndFetchScreenConfigs(Display * dpy, struct glx_display * priv, Bool zink)
|
||||
if (psc == NULL)
|
||||
psc = applegl_create_screen(i, priv);
|
||||
#else
|
||||
- if (psc == NULL && !zink)
|
||||
+ if (psc == NULL)
|
||||
{
|
||||
psc = indirect_create_screen(i, priv);
|
||||
indirect = true;
|
||||
}
|
||||
#endif
|
||||
priv->screens[i] = psc;
|
||||
- if (psc)
|
||||
- screen_count++;
|
||||
|
||||
if(indirect) /* Load extensions required only for indirect glx */
|
||||
glxSendClientInfo(priv, i);
|
||||
}
|
||||
- if (zink && !screen_count)
|
||||
- return GL_FALSE;
|
||||
SyncHandle();
|
||||
return GL_TRUE;
|
||||
}
|
||||
@@ -880,9 +875,9 @@ __glXInitialize(Display * dpy)
|
||||
#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
|
||||
Bool glx_direct = !debug_get_bool_option("LIBGL_ALWAYS_INDIRECT", false);
|
||||
Bool glx_accel = !debug_get_bool_option("LIBGL_ALWAYS_SOFTWARE", false);
|
||||
+ Bool zink;
|
||||
const char *env = getenv("MESA_LOADER_DRIVER_OVERRIDE");
|
||||
- Bool zink = env && !strcmp(env, "zink");
|
||||
- Bool try_zink = False;
|
||||
+ zink = env && !strcmp(env, "zink");
|
||||
|
||||
dpyPriv->drawHash = __glxHashCreate();
|
||||
|
||||
@@ -904,13 +899,10 @@ __glXInitialize(Display * dpy)
|
||||
#endif /* HAVE_DRI3 */
|
||||
if (!debug_get_bool_option("LIBGL_DRI2_DISABLE", false))
|
||||
dpyPriv->dri2Display = dri2CreateDisplay(dpy);
|
||||
- if (!dpyPriv->dri3Display && !dpyPriv->dri2Display)
|
||||
- try_zink = !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false) &&
|
||||
- !getenv("GALLIUM_DRIVER");
|
||||
}
|
||||
#endif /* GLX_USE_DRM */
|
||||
if (glx_direct)
|
||||
- dpyPriv->driswDisplay = driswCreateDisplay(dpy, zink | try_zink);
|
||||
+ dpyPriv->driswDisplay = driswCreateDisplay(dpy, zink);
|
||||
|
||||
#ifdef GLX_USE_WINDOWSGL
|
||||
if (glx_direct && glx_accel)
|
||||
@@ -925,18 +917,9 @@ __glXInitialize(Display * dpy)
|
||||
}
|
||||
#endif
|
||||
|
||||
- if (!AllocAndFetchScreenConfigs(dpy, dpyPriv, zink | try_zink)) {
|
||||
- Bool fail = True;
|
||||
- if (try_zink) {
|
||||
- free(dpyPriv->screens);
|
||||
- dpyPriv->driswDisplay->destroyDisplay(dpyPriv->driswDisplay);
|
||||
- dpyPriv->driswDisplay = driswCreateDisplay(dpy, false);
|
||||
- fail = !AllocAndFetchScreenConfigs(dpy, dpyPriv, False);
|
||||
- }
|
||||
- if (fail) {
|
||||
- free(dpyPriv);
|
||||
- return NULL;
|
||||
- }
|
||||
+ if (!AllocAndFetchScreenConfigs(dpy, dpyPriv)) {
|
||||
+ free(dpyPriv);
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
glxSendClientInfo(dpyPriv, -1);
|
||||
--
|
||||
2.43.0
|
||||
|
117
extras/mesa/Mesa-MLAA-License-Clarification-Email.txt
Normal file
117
extras/mesa/Mesa-MLAA-License-Clarification-Email.txt
Normal file
@ -0,0 +1,117 @@
|
||||
|
||||
Subject: RE: Question about Mesa MLAA license
|
||||
From: Jorge Jimenez <iryoku@gmail.com>
|
||||
Date: 01/08/2013 12:50 PM
|
||||
To: Tom Callaway <tcallawa@redhat.com>
|
||||
CC: "jorge@iryoku.com" <jorge@iryoku.com>
|
||||
|
||||
Yes to both questions.
|
||||
|
||||
Thanks,
|
||||
Jorge
|
||||
|
||||
From: Tom Callaway <tcallawa@redhat.com>
|
||||
Sent: January 8, 2013 6:49 PM
|
||||
To: Jorge Jimenez <iryoku@gmail.com>
|
||||
CC: jorge@iryoku.com
|
||||
Subject: Re: Question about Mesa MLAA license
|
||||
|
||||
On 01/08/2013 12:39 PM, Jorge Jimenez wrote:
|
||||
> Hi Tom,
|
||||
>
|
||||
> What we meant with that is that we made an exception for clause 2.
|
||||
> Instead of clause 2, in the case of the Mesa project, you have to name
|
||||
> the technique Jimenez's MLAA in the config options of Mesa. We did that
|
||||
> just to allow them to solve license issues. This exception should be for
|
||||
> the Mesa project, and any project using Mesa, like Fedora.
|
||||
>
|
||||
> We want to widespread usage of our MLAA, so we want to avoid any kind of
|
||||
> license complications. Hope current one is good for Fedora, if not
|
||||
> please tell, and we'll see what we can do!
|
||||
|
||||
Okay, a few more questions:
|
||||
|
||||
* If Fedora decides to simply reproduce the quoted statement:
|
||||
"Uses Jimenez's MLAA. Copyright (C) 2010 by Jorge Jimenez, Belen Masia,
|
||||
Jose I. Echevarria, Fernando Navarro and Diego Gutierrez."
|
||||
|
||||
Specifically, if this is done as part of documentation included with
|
||||
Mesa, is that sufficient to meet clause 2 even if the Mesa config option
|
||||
is not set as described in your exception?
|
||||
|
||||
* Currently, the Mesa config option for MLAA says: "Morphological
|
||||
anti-aliasing based on Jimenez\' MLAA. 0 to disable, 8 for default
|
||||
quality". Is this in compliance with your exception?
|
||||
|
||||
Thanks again,
|
||||
|
||||
~tom
|
||||
|
||||
==
|
||||
Fedora Project
|
||||
|
||||
Subject: RE: Question about Mesa MLAA license
|
||||
From: Jorge Jimenez <iryoku@gmail.com>
|
||||
Date: 01/08/2013 12:39 PM
|
||||
To: "jorge@iryoku.com" <jorge@iryoku.com>, Tom Callaway <tcallawa@redhat.com>
|
||||
|
||||
Hi Tom,
|
||||
|
||||
What we meant with that is that we made an exception for clause 2.
|
||||
Instead of clause 2, in the case of the Mesa project, you have to name
|
||||
the technique Jimenez's MLAA in the config options of Mesa. We did that
|
||||
just to allow them to solve license issues. This exception should be for
|
||||
the Mesa project, and any project using Mesa, like Fedora.
|
||||
|
||||
We want to widespread usage of our MLAA, so we want to avoid any kind of
|
||||
license complications. Hope current one is good for Fedora, if not
|
||||
please tell, and we'll see what we can do!
|
||||
|
||||
Cheers,
|
||||
Jorge
|
||||
|
||||
From: Tom Callaway <tcallawa@redhat.com>
|
||||
Sent: January 8, 2013 6:30 PM
|
||||
To: jorge@iryoku.com
|
||||
Subject: Question about Mesa MLAA license
|
||||
|
||||
Jorge,
|
||||
|
||||
Thanks for all of your fantastic graphics work! I have been auditing
|
||||
Fedora (a popular distribution of Linux) for license compliance and I
|
||||
came across your MLAA code in Mesa.
|
||||
|
||||
The license says:
|
||||
|
||||
* 2. Redistributions in binary form must reproduce the following
|
||||
statement:
|
||||
*
|
||||
* "Uses Jimenez's MLAA. Copyright (C) 2010 by Jorge Jimenez, Belen Masia,
|
||||
* Jose I. Echevarria, Fernando Navarro and Diego Gutierrez."
|
||||
*
|
||||
* Only for use in the Mesa project, this point 2 is filled by naming the
|
||||
* technique Jimenez's MLAA in the Mesa config options.
|
||||
|
||||
That wording is unclear. When you say "Only for use in the Mesa
|
||||
project...", it seems like you could either be saying:
|
||||
|
||||
- This code may only be used as part of Mesa.
|
||||
|
||||
OR
|
||||
|
||||
- In Mesa, you can comply with clause 2 by simply selecting "Jimenez's
|
||||
MLAA" in the Mesa config options.
|
||||
|
||||
*****
|
||||
|
||||
If the first item is true, then we may have to remove the MLAA code from
|
||||
Fedora's copy of Mesa. However, looking at the license on your SMAA
|
||||
code, I do not believe it to be the case. Please let me know either way!
|
||||
|
||||
Thanks in advance,
|
||||
|
||||
Tom Callaway
|
||||
Fedora Legal
|
||||
|
||||
==
|
||||
Fedora Project
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user