Making sure all specs can be parsed by the check script. (#1765)

This commit is contained in:
Pawel Winogrodzki 2021-12-17 07:19:09 -08:00 коммит произвёл GitHub
Родитель b3629f57f9
Коммит ff313fa3fa
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
10 изменённых файлов: 205 добавлений и 109 удалений

29
.github/workflows/validate-cg-manifest.sh поставляемый
Просмотреть файл

@ -32,14 +32,11 @@ ignore_list=" \
patterns-ceph-containers \
python-markupsafe \
python-nocasedict \
python-nocasedict \
python-pywbem \
python-pywbem \
python-repoze-lru \
python-requests \
python-sphinxcontrib-websupport \
python-yamlloader \
python-yamlloader \
python-zope-interface \
qt5-rpm-macros \
runc \
@ -60,25 +57,29 @@ for spec in "$@"
do
echo Checking "$spec"
# Ensure spec can be parsed
name=$(rpmspec --srpm --define "with_check 0" --qf "%{NAME}" -q $spec 2>/dev/null )
if [[ -z $name ]]
# Additional macros required to parse some spec files.
spec_dir="$(dirname "$spec")"
defines=(-D "forgemeta %{nil}" -D "py3_dist X" -D "with_check 0" -D "dist .cm2" -D "__python3 python3" -D "_sourcedir $spec_dir" -D "fillup_prereq fillup")
name=$(rpmspec --srpm "${defines[@]}" --qf "%{NAME}" -q "$spec" 2>/dev/null)
if [[ -z $name ]]
then
echo " Not able to parse $spec, skipping"
echo "Failed to get name from '$spec'. Please update the spec or the macros from the 'defines' variable in this script. Error:" >> bad_registrations.txt
rpmspec --srpm "${defines[@]}" --qf "%{NAME}" -q "$spec" &>> bad_registrations.txt
continue
fi
# Some specs don't make sense to add, ignore them
if echo $ignore_list | grep -w "$name" > /dev/null
if echo "$ignore_list" | grep -w "$name" > /dev/null
then
echo " $name is being ignored, skipping"
continue
fi
version=$(rpmspec --srpm --define "with_check 0" --qf "%{VERSION}" -q $spec 2>/dev/null )
version=$(rpmspec --srpm "${defines[@]}" --qf "%{VERSION}" -q "$spec" 2>/dev/null )
# Get the source0 for the package, it apears to always occur last in the list of sources
source0=$(rpmspec --srpm --define "with_check 0" --qf "[%{SOURCE}\n]" -q $spec 2>/dev/null | tail -1)
source0=$(rpmspec --srpm "${defines[@]}" --qf "[%{SOURCE}\n]" -q "$spec" 2>/dev/null | tail -1)
if [[ -z $source0 ]]
then
echo " No source file listed for $name:$version, skipping"
@ -86,10 +87,10 @@ do
fi
# Some source files have been renamed, look for a comment and also try that (while manually substituting the name/version)
source0alt=$(grep "^#[[:blank:]]*Source0:" $spec | awk '{print $NF}' | sed "s/%\?%{name}/$name/g" | sed "s/%\?%{version}/$version/g" )
source0alt=$(grep "^#[[:blank:]]*Source0:" "$spec" | awk '{print $NF}' | sed "s/%\?%{name}/$name/g" | sed "s/%\?%{version}/$version/g" )
# Some packages define a %url as well
# Use ' ' as delimiter to avoid conflict with URL characters
specurl=$(rpmspec --srpm --define "with_check 0" --qf "%{URL}" -q $spec 2>/dev/null )
specurl=$(rpmspec --srpm "${defines[@]}" --qf "%{URL}" -q "$spec" 2>/dev/null )
[[ -z $specurl ]] || source0alt=$(echo $source0alt | sed "s %\?%{url} $specurl g" )
# Pull the current registration from the cgmanifest file. Every registration should have a url, so if we don't find one
@ -110,7 +111,7 @@ do
mkdir -p ./cgmanifest_test_dir
for _ in {1..10}
do
wget --quiet -P ./cgmanifest_test_dir $manifesturl && touch ./cgmanifest_test_dir/WORKED && break
wget --quiet -P ./cgmanifest_test_dir "$manifesturl" && touch ./cgmanifest_test_dir/WORKED && break
sleep 30
done
[[ -f ./cgmanifest_test_dir/WORKED ]] || echo "Registration for \"$name\":\"$version\" has invalid URL '$manifesturl' (could not download)" >> bad_registrations.txt
@ -122,7 +123,7 @@ done
if [[ -s bad_registrations.txt ]]
then
echo "####"
echo "cgmanifest.json may need to be updated..."
echo "Found errors while analyzing modified spec files, cgmanifest.json may need to be updated."
echo "####"
cat bad_registrations.txt
exit 1

Просмотреть файл

@ -2,7 +2,7 @@
Name: log4j
Version: 2.15.0
Release: 2%{?dist}
Release: 3%{?dist}
Summary: Java logging package
BuildArch: noarch
License: ASL 2.0
@ -269,8 +269,9 @@ mvn test
%endif
%files -f .mfiles
%license LICENSE.txt
%doc NOTICE.txt
%dir %{_javadir}/%{name}
%doc LICENSE.txt NOTICE.txt
%files slf4j -f .mfiles-slf4j
%files jcl -f .mfiles-jcl
@ -288,7 +289,10 @@ mvn test
%changelog
* Fri Dec 10 2021 Thomas Crain <thcrain@microsoft.com> - 2.15.0-2
* Fri Dec 17 2021 Pawel Winogrodzki <pawelwi@microsoft.com> - 2.15.0-3
- License verified.
* Sun Dec 12 2021 Thomas Crain <thcrain@microsoft.com> - 2.15.0-2
- Initial CBL-Mariner import from Fedora 36 (license: MIT).
* Sun Dec 12 2021 Sérgio Basto <sergio@serjux.com> - 2.15.0-1

Просмотреть файл

@ -24,7 +24,7 @@ http://readthedocs.org/docs/cliff/en/latest/
Name: python-%{modname}
Version: 2.16.0
Release: 4%{?dist}
Release: 5%{?dist}
Summary: Command Line Interface Formulation Framework
Group: Development/Libraries
@ -54,7 +54,7 @@ Requires: python%{pyver}-six
Requires: python%{pyver}-cmd2 >= 0.6.7
Requires: python%{pyver}-pyparsing
# Handle python2 exception
%if %{pyver} == 2
%if "%{pyver}" == "2"
Requires: PyYAML
Requires: python%{pyver}-unicodecsv
%else
@ -77,7 +77,7 @@ BuildRequires: python%{pyver}-testtools
BuildRequires: python%{pyver}-testscenarios
BuildRequires: python%{pyver}-testrepository
# Handle python2 exception
%if %{pyver} == 2
%if "%{pyver}" == "2"
BuildRequires: python-docutils
BuildRequires: PyYAML
BuildRequires: python%{pyver}-unicodecsv
@ -95,7 +95,7 @@ Requires: python%{pyver}-testtools
Requires: python%{pyver}-testscenarios
Requires: python%{pyver}-testrepository
# Handle python2 exception
%if %{pyver} == 2
%if "%{pyver}" == "2"
Requires: PyYAML
Requires: python%{pyver}-unicodecsv
%else
@ -135,6 +135,9 @@ PYTHON=python%{pyver} %{pyver_bin} setup.py test
%{pyver_sitelib}/%{modname}/tests
%changelog
* Fri Dec 17 2021 Pawel Winogrodzki <pawelwi@microsoft.com> - 2.16.0-5
- License verified.
* Thu Feb 04 2021 Joe Schmitt <joschmit@microsoft.com> - 2.16.0-4
- Initial CBL-Mariner import from Fedora 32 (license: MIT).
- Remove Fedora version check for python version

Просмотреть файл

@ -23,7 +23,7 @@ Name: python-%{pypi_name}
Version: 3.17.1
Vendor: Microsoft Corporation
Distribution: Mariner
Release: 3%{?dist}
Release: 4%{?dist}
Summary: Authentication Library for OpenStack Clients
License: ASL 2.0
URL: https://pypi.io/pypi/%{pypi_name}
@ -61,7 +61,7 @@ BuildRequires: python%{pyver}-iso8601
BuildRequires: python%{pyver}-requests-mock >= 1.1
# Handle python2 exception
%if %{pyver} == 2
%if "%{pyver}" == "2"
BuildRequires: PyYAML
BuildRequires: python-lxml
BuildRequires: python-requests-kerberos
@ -140,6 +140,9 @@ PYTHON=python%{pyver} stestr-%{pyver} run
%endif
%changelog
* Fri Dec 17 2021 Pawel Winogrodzki <pawelwi@microsoft.com> - 3.17.1-4
- License verified.
* Thu Jun 09 2021 Jon Slobodzian <joslobo@microsoft.com> 3.17.1-3
- Initial CBL-Mariner import from Fedora 31 (license: MIT).
- Fixed pyver_sitelib macro evaluation and minor formatting changes

Просмотреть файл

@ -18,7 +18,7 @@ Identity API.
Name: python-keystoneclient
Version: 3.21.0
Release: 5%{?dist}
Release: 6%{?dist}
Summary: Client library for OpenStack Identity API
License: ASL 2.0
URL: https://launchpad.net/python-keystoneclient
@ -35,7 +35,7 @@ BuildRequires: /usr/bin/openssl
%package -n python%{pyver}-%{sname}
Summary: Client library for OpenStack Identity API
%{?python_provide:%python_provide python%{pyver}-%{sname}}
%if %{pyver} == 3
%if "%{pyver}" == "3"
Obsoletes: python2-%{sname} < %{version}-%{release}
%endif
@ -55,7 +55,7 @@ Requires: python%{pyver}-pbr >= 2.0.0
Requires: python%{pyver}-debtcollector >= 1.2.0
Requires: python%{pyver}-keystoneauth1 >= 3.4.0
# Handle python2 exception
%if %{pyver} == 2
%if "%{pyver}" == "2"
Requires: python-keyring >= 5.5.1
%else
Requires: python%{pyver}-keyring >= 5.5.1
@ -85,7 +85,7 @@ BuildRequires: python%{pyver}-testresources
BuildRequires: python%{pyver}-testscenarios
BuildRequires: python%{pyver}-requests-mock
# Handle python2 exception
%if %{pyver} == 2
%if "%{pyver}" == "2"
BuildRequires: python-keyring >= 5.5.1
BuildRequires: python-lxml
%else
@ -104,7 +104,7 @@ Requires: python%{pyver}-testresources
Requires: python%{pyver}-testscenarios
Requires: python%{pyver}-requests-mock
# Handle python2 exception
%if %{pyver} == 2
%if "%{pyver}" == "2"
Requires: python-lxml
%else
Requires: python%{pyver}-lxml
@ -169,6 +169,9 @@ PYTHON=python%{pyver} stestr-%{pyver} --test-path=./keystoneclient/tests/unit ru
%{pyver_sitelib}/%{sname}/tests
%changelog
* Fri Dec 17 2021 Pawel Winogrodzki <pawelwi@microsoft.com> - 3.21.0-6
- License verified.
* Mon Nov 01 2021 Muhammad Falak <mwani@microsft.com> - 3.21.0-5
- Remove epoch

Просмотреть файл

@ -19,7 +19,7 @@ the OpenStack Nova API.
Name: python-novaclient
Version: 15.1.0
Release: 4%{?dist}
Release: 5%{?dist}
Summary: Python API and CLI for OpenStack Nova
License: ASL 2.0
URL: https://launchpad.net/%{name}
@ -34,7 +34,7 @@ BuildRequires: git
%package -n python%{pyver}-%{sname}
Summary: Python API and CLI for OpenStack Nova
%{?python_provide:%python_provide python%{pyver}-novaclient}
%if %{pyver} == 3
%if "%{pyver}" == "3"
Obsoletes: python2-%{sname} < %{version}-%{release}
%endif
@ -52,7 +52,7 @@ Requires: python%{pyver}-pbr >= 2.0.0
Requires: python%{pyver}-prettytable >= 0.7.2
Requires: python%{pyver}-six >= 1.10.0
# Handle python2 exception
%if %{pyver} == 2
%if "%{pyver}" == "2"
Requires: python-simplejson >= 3.5.1
%else
Requires: python%{pyver}-simplejson >= 3.5.1
@ -129,6 +129,9 @@ rm -fr doc/build/html/.doctrees doc/build/html/.buildinfo doc/build/html/.htacce
%endif
%changelog
* Fri Dec 17 2021 Pawel Winogrodzki <pawelwi@microsoft.com> - 15.1.0-5
- License verified.
* Mon Nov 01 2021 Muhammad Falak <mwani@microsft.com> - 15.1.0-4
- Remove epoch

Просмотреть файл

@ -17,7 +17,7 @@ Distribution: Mariner
Name: python-oslo-config
Version: 6.11.1
Release: 5%{?dist}
Release: 6%{?dist}
Summary: OpenStack common configuration library
Group: Development/Languages
@ -41,7 +41,7 @@ parsing library from the Oslo project.
%package -n python%{pyver}-%{pypi_name}
Summary: OpenStack common configuration library
%{?python_provide:%python_provide python%{pyver}-%{pypi_name}}
%if %{pyver} == 3
%if "%{pyver}" == "3"
Obsoletes: python2-%{pypi_name} < %{version}-%{release}
%endif
@ -53,7 +53,7 @@ Requires: python%{pyver}-six >= 1.10.0
Requires: python%{pyver}-stevedore >= 1.20.0
Requires: python%{pyver}-debtcollector >= 1.2.0
Requires: python%{pyver}-netaddr >= 0.7.18
%if %{pyver} == 2
%if "%{pyver}" == "2"
Requires: python-enum34
Requires: PyYAML >= 3.10
%else
@ -74,7 +74,7 @@ BuildRequires: python%{pyver}-oslotest
BuildRequires: python%{pyver}-requests-mock
BuildRequires: python%{pyver}-netaddr
BuildRequires: python%{pyver}-stevedore
%if %{pyver} == 2
%if "%{pyver}" == "2"
BuildRequires: python-enum34
BuildRequires: PyYAML
%else
@ -163,6 +163,9 @@ PYTHON=%{pyver_bin} stestr-%{pyver} run
%endif
%changelog
* Fri Dec 17 2021 Pawel Winogrodzki <pawelwi@microsoft.com> - 6.11.1-6
- License verified.
* Mon Nov 01 2021 Muhammad Falak <mwani@microsft.com> - 6.11.1-5
- Remove epoch

Просмотреть файл

@ -19,7 +19,7 @@ storable formats.
Name: python-%{pkg_name}
Version: 2.29.2
Release: 4%{?dist}
Release: 5%{?dist}
Summary: OpenStack oslo.serialization library
License: ASL 2.0
@ -48,7 +48,7 @@ BuildRequires: python%{pyver}-msgpack >= 0.5.2
BuildRequires: python%{pyver}-netaddr
BuildRequires: python%{pyver}-simplejson
# Handle python2 exception
%if %{pyver} == 2
%if "%{pyver}" == "2"
BuildRequires: python-ipaddress
%endif
@ -59,7 +59,7 @@ Requires: python%{pyver}-six
Requires: python%{pyver}-msgpack >= 0.5.2
Requires: python%{pyver}-pytz
# Handle python2 exception
%if %{pyver} == 2
%if "%{pyver}" == "2"
Requires: python-ipaddress
%endif
@ -135,6 +135,9 @@ PYTHON=python%{pyver} stestr-%{pyver} --test-path $OS_TEST_PATH run
%{pyver_sitelib}/oslo_serialization/tests
%changelog
* Fri Dec 17 2021 Pawel Winogrodzki <pawelwi@microsoft.com> - 2.29.2-5
- License verified.
* Fri Oct 15 2021 Pawel Winogrodzki <pawelwi@microsoft.com> - 2.29.2-4
- Initial CBL-Mariner import from Fedora 32 (license: MIT).

Просмотреть файл

@ -23,7 +23,7 @@ The OpenStack Oslo Utility library. \
Name: python-oslo-utils
Version: 3.41.1
Release: 4%{?dist}
Release: 5%{?dist}
Summary: OpenStack Oslo Utility library
License: ASL 2.0
@ -61,7 +61,7 @@ BuildRequires: python%{pyver}-netaddr
# Required to compile translation files
BuildRequires: python%{pyver}-babel
# Handle python2 exception
%if %{pyver} == 2
%if "%{pyver}" == "2"
BuildRequires: python-netifaces
BuildRequires: pytz
BuildRequires: python%{pyver}-monotonic
@ -78,7 +78,7 @@ Requires: python%{pyver}-debtcollector >= 1.2.0
Requires: python%{pyver}-pyparsing
Requires: python%{pyver}-netaddr >= 0.7.18
# Handle python2 exception
%if %{pyver} == 2
%if "%{pyver}" == "2"
Requires: pytz
Requires: python-netifaces >= 0.10.4
Requires: python%{pyver}-monotonic
@ -180,6 +180,9 @@ stestr-%{pyver} run --black-regex oslo_utils.tests.test_reflection.CallbackEqual
%license LICENSE
%changelog
* Fri Dec 17 2021 Pawel Winogrodzki <pawelwi@microsoft.com> - 3.41.1-5
- License verified.
* Fri Oct 15 2021 Pawel Winogrodzki <pawelwi@microsoft.com> - 3.41.1-4
- Initial CBL-Mariner import from Fedora 32 (license: MIT).

Просмотреть файл

@ -882,26 +882,6 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "conda",
"version": "4.10.1",
"downloadUrl": "https://github.com/conda/conda/archive/4.10.1/conda-4.10.1.tar.gz"
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "conmon",
"version": "2.0.29",
"downloadUrl": "https://github.com/containers/conmon/archive/v2.0.29.tar.gz"
}
}
},
{
"component": {
"type": "other",
@ -942,6 +922,16 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "conmon",
"version": "2.0.29",
"downloadUrl": "https://github.com/containers/conmon/archive/v2.0.29.tar.gz"
}
}
},
{
"component": {
"type": "other",
@ -1427,9 +1417,9 @@
"component": {
"type": "other",
"other": {
"name": "dwz",
"version": "0.13",
"downloadUrl": "https://sourceware.org/ftp/dwz/releases/dwz-0.13.tar.xz"
"name": "dwarves",
"version": "1.21",
"downloadUrl": "https://fedorapeople.org/~acme/dwarves/dwarves-1.21.tar.xz"
}
}
},
@ -1437,9 +1427,9 @@
"component": {
"type": "other",
"other": {
"name": "dwarves",
"version": "1.21",
"downloadUrl": "https://fedorapeople.org/~acme/dwarves/dwarves-1.21.tar.xz"
"name": "dwz",
"version": "0.13",
"downloadUrl": "https://sourceware.org/ftp/dwz/releases/dwz-0.13.tar.xz"
}
}
},
@ -1849,9 +1839,9 @@
"component": {
"type": "other",
"other": {
"name": "fuse3",
"version": "3.10.5",
"downloadUrl": "https://github.com/libfuse/libfuse/archive/fuse-3.10.5.tar.gz"
"name": "fuse-zip",
"version": "0.7.2",
"downloadUrl": "https://bitbucket.org/agalanin/fuse-zip/downloads/fuse-zip-0.7.2.tar.gz"
}
}
},
@ -1859,9 +1849,9 @@
"component": {
"type": "other",
"other": {
"name": "fuse-zip",
"version": "0.7.2",
"downloadUrl": "https://bitbucket.org/agalanin/fuse-zip/downloads/fuse-zip-0.7.2.tar.gz"
"name": "fuse3",
"version": "3.10.5",
"downloadUrl": "https://github.com/libfuse/libfuse/archive/fuse-3.10.5.tar.gz"
}
}
},
@ -3106,6 +3096,16 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "libcacard",
"version": "2.7.0",
"downloadUrl": "https://www.spice-space.org/download/libcacard/libcacard-2.7.0.tar.xz"
}
}
},
{
"component": {
"type": "other",
@ -3126,16 +3126,6 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "libcacard",
"version": "2.7.0",
"downloadUrl": "https://www.spice-space.org/download/libcacard/libcacard-2.7.0.tar.xz"
}
}
},
{
"component": {
"type": "other",
@ -4486,6 +4476,16 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "log4j",
"version": "2.15.0",
"downloadUrl": "https://www.apache.org/dist/logging/log4j/2.15.0/apache-log4j-2.15.0-src.tar.gz"
}
}
},
{
"component": {
"type": "other",
@ -5743,9 +5743,9 @@
"component": {
"type": "other",
"other": {
"name": "perl-File-HomeDir",
"version": "1.004",
"downloadUrl": "https://cpan.metacpan.org/authors/id/R/RE/REHSACK/File-HomeDir-1.004.tar.gz"
"name": "perl-Fedora-VSP",
"version": "0.001",
"downloadUrl": "https://ppisar.fedorapeople.org/Fedora-VSP/Fedora-VSP-0.001.tar.gz"
}
}
},
@ -5753,9 +5753,9 @@
"component": {
"type": "other",
"other": {
"name": "perl-Fedora-VSP",
"version": "0.001",
"downloadUrl": "https://ppisar.fedorapeople.org/Fedora-VSP/Fedora-VSP-0.001.tar.gz"
"name": "perl-File-HomeDir",
"version": "1.004",
"downloadUrl": "https://cpan.metacpan.org/authors/id/R/RE/REHSACK/File-HomeDir-1.004.tar.gz"
}
}
},
@ -6439,6 +6439,16 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "python-cliff",
"version": "2.16.0",
"downloadUrl": "https://pypi.io/packages/source/c/cliff/cliff-2.16.0.tar.gz"
}
}
},
{
"component": {
"type": "other",
@ -6779,6 +6789,26 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "python-keystoneauth1",
"version": "3.17.1",
"downloadUrl": "https://tarballs.openstack.org/keystoneauth/keystoneauth1-3.17.1.tar.gz"
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "python-keystoneclient",
"version": "3.21.0",
"downloadUrl": "https://tarballs.openstack.org/python-keystoneclient/python-keystoneclient-3.21.0.tar.gz"
}
}
},
{
"component": {
"type": "other",
@ -6909,6 +6939,16 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "python-novaclient",
"version": "15.1.0",
"downloadUrl": "https://pypi.io/packages/source/p/python-novaclient/python-novaclient-15.1.0.tar.gz"
}
}
},
{
"component": {
"type": "other",
@ -6929,6 +6969,36 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "python-oslo-config",
"version": "6.11.1",
"downloadUrl": "https://tarballs.openstack.org/oslo.config/oslo.config-6.11.1.tar.gz"
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "python-oslo-serialization",
"version": "2.29.2",
"downloadUrl": "https://tarballs.openstack.org/oslo.serialization/oslo.serialization-2.29.2.tar.gz"
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "python-oslo-utils",
"version": "3.41.1",
"downloadUrl": "https://tarballs.openstack.org/oslo.utils/oslo.utils-3.41.1.tar.gz"
}
}
},
{
"component": {
"type": "other",
@ -7349,16 +7419,6 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "python-sphinx_rtd_theme",
"version": "0.4.3",
"downloadUrl": "https://github.com/rtfd/sphinx_rtd_theme/archive/0.4.3/sphinx_rtd_theme-0.4.3.tar.gz"
}
}
},
{
"component": {
"type": "other",
@ -7379,6 +7439,16 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "python-sphinx_rtd_theme",
"version": "0.4.3",
"downloadUrl": "https://github.com/rtfd/sphinx_rtd_theme/archive/0.4.3/sphinx_rtd_theme-0.4.3.tar.gz"
}
}
},
{
"component": {
"type": "other",
@ -9142,16 +9212,6 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "ttembed",
"version": "1.1",
"downloadUrl": "https://github.com/hisdeedsaredust/ttembed/archive/v1.1.tar.gz"
}
}
},
{
"component": {
"type": "other",
@ -9222,6 +9282,16 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "ttembed",
"version": "1.1",
"downloadUrl": "https://github.com/hisdeedsaredust/ttembed/archive/v1.1.tar.gz"
}
}
},
{
"component": {
"type": "other",