Copr build: https://copr.fedorainfracloud.org/coprs/ertzing/scratch_x64/build/3253136/ Description: uWSGI is a fast (pure C), self-healing, developer/sysadmin-friendly application container server. Born as a WSGI-only server, over time it has evolved in a complete stack for networked/clustered web applications, implementing message/object passing, caching, RPC and process management. It uses the uwsgi (all lowercase, already included by default in the Nginx and Cherokee releases) protocol for all the networking/interprocess communications. Can be run in preforking mode, threaded, asynchronous/evented and supports various form of green threads/co-routine (like uGreen and Fiber). Sysadmin will love it as it can be configured via command line, environment variables, xml, .ini and yaml files and via LDAP. Being fully modular can use tons of different technology on top of the same core. Fedora Account System Username: ertzing This is a review request to un-retire uwsgi, following the process at https://docs.fedoraproject.org/en-US/package-maintainers/Package_Retirement_Process/#claiming The package is based on the last built version for F34, https://koji.fedoraproject.org/koji/buildinfo?buildID=1695849 with the below changes: - Updated to 2.0.20 - Removal of patches upstreamed since 2.0.18 - Add patches to make it build/work cleanly with PHP8 in F35 - Some minor cleanups of more eregious rpmlint errors
Can you provide direct link to yoor spec file and a diff between your spec file and latest in Fedora?
https://download.copr.fedorainfracloud.org/results/ertzing/scratch_x64/fedora-rawhide-x86_64/03253136-uwsgi/uwsgi.spec --- uwsgi.spec.old 2022-01-26 15:39:13.334611499 +0100 +++ uwsgi.spec 2022-01-26 15:38:21.991128327 +0100 @@ -1,5 +1,5 @@ # Documentation sources: -%global commit 8d868eadfb460785a735030271afa233ac854763 +%global commit 9b4ef5fa68fe42929a5e5410165d36fcc7b2d2c7 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global docrepo uwsgi-docs @@ -130,8 +130,8 @@ %endif Name: uwsgi -Version: 2.0.18 -Release: 16%{?dist} +Version: 2.0.20 +Release: 0.3%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -155,12 +155,11 @@ Patch5: uwsgi_fix_mongodb.patch Patch6: uwsgi_v8-314_compatibility.patch Patch7: uwsgi_fix_mono.patch -# https://github.com/unbit/uwsgi/pull/1772 -Patch9: uwsgi-2.0.16-glfs.patch -# https://github.com/unbit/uwsgi/pull/2141 -Patch10: uwsgi_fix_psgi.patch -# https://github.com/unbit/uwsgi/pull/2105 -Patch11: uwsgi_fix_php74_zend.patch +# https://github.com/unbit/uwsgi/issues/2283 +Patch12: uwsgi_fix_php8.patch +Patch13: uwsgi_fix_chroot_chdir.patch +# https://github.com/unbit/uwsgi/issues/2356 +Patch14: uwsgi_fix_php_arginfo.patch BuildRequires: curl, libxml2-devel, libuuid-devel, jansson-devel BuildRequires: libyaml-devel, ruby-devel @@ -292,7 +291,8 @@ %endif %description -n python%{python3_pkgversion}-uwsgidecorators -The uwsgidecorators Python %{python3_version} module provides higher-level access to the uWSGI API. +The uwsgidecorators Python %{python3_version} module provides higher-level +access to the uWSGI API. %endif %if %{with python3_other} @@ -302,7 +302,8 @@ Requires: uwsgi-plugin-python%{python3_other_pkgversion} = %{version}-%{release} %description -n python%{python3_other_pkgversion}-uwsgidecorators -The uwsgidecorators Python %{python3_other_version} module provides higher-level access to the uWSGI API. +The uwsgidecorators Python %{python3_other_version} module provides +higher-level access to the uWSGI API. %endif %package -n uwsgi-docs @@ -363,7 +364,7 @@ %package -n uwsgi-alarm-curl Summary: uWSGI - Curl alarm plugin -Requires: uwsgi-plugin-common = %{version}-%{release}, libcurl +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-alarm-curl This package contains the alarm_curl alarm plugin for uWSGI @@ -446,7 +447,7 @@ %package -n uwsgi-logger-graylog2 Summary: uWSGI - Graylog2 logger plugin -Requires: uwsgi-plugin-common = %{version}-%{release}, zlib +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-logger-graylog2 This package contains the graylog2 logger plugin for uWSGI @@ -527,7 +528,7 @@ %package -n uwsgi-plugin-airbrake Summary: uWSGI - Plugin for AirBrake support -Requires: uwsgi-plugin-common = %{version}-%{release}, libcurl +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-airbrake This package contains the airbrake plugin for uWSGI @@ -571,14 +572,14 @@ %package -n uwsgi-plugin-cplusplus Summary: uWSGI - Plugin for C++ support -Requires: uwsgi-plugin-common = %{version}-%{release}, libstdc++ +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-cplusplus This package contains the cplusplus plugin for uWSGI %package -n uwsgi-plugin-curl-cron Summary: uWSGI - Plugin for CURL Cron support -Requires: uwsgi-plugin-common = %{version}-%{release}, libcurl +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-curl-cron This package contains the curl_cron plugin for uWSGI @@ -623,7 +624,7 @@ %if %{with python2} %package -n uwsgi-plugin-python2-gevent Summary: uWSGI - Plugin for Python 2 GEvent support -Requires: uwsgi-plugin-python2 = %{version}-%{release}, libevent +Requires: uwsgi-plugin-python2 = %{version}-%{release} Obsoletes: uwsgi-plugin-gevent < 2.0.16-4 Provides: uwsgi-plugin-gevent = %{version}-%{release} @@ -634,7 +635,7 @@ %if %{with python3} %package -n uwsgi-plugin-python%{python3_pkgversion}-gevent Summary: uWSGI - Plugin for Python %{python3_version} GEvent support -Requires: uwsgi-plugin-python%{python3_pkgversion} = %{version}-%{release}, libevent +Requires: uwsgi-plugin-python%{python3_pkgversion} = %{version}-%{release} %description -n uwsgi-plugin-python%{python3_pkgversion}-gevent This package contains the Python %{python3_version} gevent plugin for uWSGI @@ -913,21 +914,21 @@ %package -n uwsgi-plugin-webdav Summary: uWSGI - Plugin for WebDAV support -Requires: uwsgi-plugin-common = %{version}-%{release}, libattr +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-webdav This package contains the webdav plugin for uWSGI %package -n uwsgi-plugin-xattr Summary: uWSGI - Plugin for Extra Attributes support -Requires: uwsgi-plugin-common = %{version}-%{release}, libattr +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-xattr This package contains the xattr plugin for uWSGI %package -n uwsgi-plugin-xslt Summary: uWSGI - Plugin for XSLT transformation support -Requires: uwsgi-plugin-common = %{version}-%{release}, libxslt +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-xslt This package contains the xslt plugin for uWSGI @@ -1142,11 +1143,9 @@ %if %{with mono} %patch7 -p1 %endif -%patch9 -p1 -%if 0%{?fedora} >= 32 -%patch10 -p1 -%endif -%patch11 -p1 +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 #disable plug-ins %if %{without mongodblibs} @@ -1775,6 +1774,9 @@ %changelog +* Sun Jan 23 2022 Ralf Ertzinger <ralf> - 2.0.20-0.3 +- Update to 2.0.20 + * Wed Jan 27 2021 Fedora Release Engineering <releng> - 2.0.18-16 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
spec could need some clean up: - remove support for el6 and python 2. - remove legacy stuff like: %if 0%{?fedora} >= 28 - I prefer to list one BR: per line, but it's ok as - if el6 goes, remove non systemd stuff etc ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [x]: Development (unversioned) .so files in -devel subpackage, if present. Note: Unversioned so-files in private %_libdir subdirectory (see attachment). Verify they are not in ld path. [x]: Header files in -devel subpackage, if present. [x]: Package does not contain any libtool archives (.la) [x]: Rpath absent or only used for internal libs. Generic: [x]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [x]: License field in the package spec file matches the actual license. [x]: License file installed when any subpackage combination is installed. [x]: If the package is under multiple licenses, the licensing breakdown must be documented in the spec. [x]: Package must own all directories that it creates. [x]: %build honors applicable compiler flags or justifies otherwise. [x]: Package contains no bundled libraries without FPC exception. [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [-]: Package contains desktop file if it is a GUI application. [x]: Development files must be in a -devel package [x ]: Package uses nothing in %doc for runtime. [x]: Package consistently uses macros (instead of hard-coded directory names). [x]: Package is named according to the Package Naming Guidelines. [x]: Package does not generate any conflict. [x]: Package obeys FHS, except libexecdir and /usr/target. [-]: If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [x ]: Package contains systemd file(s) if in need. [x]: Useful -debuginfo package or justification otherwise. [-]: Package is not known to require an ExcludeArch tag. [x]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. [x]: If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %license. [x]: Package requires other packages for directories it uses. [x]: Package does not own files or directories owned by other packages. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: %config files are marked noreplace or the reason is justified. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Dist tag is present. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package must not depend on deprecated() packages. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: No %config files under /usr. [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Packages must not store files under /srv, /opt or /usr/local Python: [x]: Python eggs must not download any dependencies during the build process. [x]: A package which is used by another package via an egg interface should provide egg info. [-]: Package meets the Packaging Guidelines::Python [x]: Package contains BR: python2-devel or python3-devel [x]: Packages MUST NOT have dependencies (either build-time or runtime) on packages named with the unversioned python- prefix unless no properly versioned package exists. Dependencies on Python packages instead MUST use names beginning with python2- or python3- as appropriate. [x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files [x]: Binary eggs must be removed in %prep ===== SHOULD items ===== Generic: [-]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [x]: Final provides and requires are sane (see attachments). [x]: Fully versioned dependency in subpackages if applicable. [x]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [x]: Patches link to upstream bugs/comments/lists or are otherwise justified. [-]: Sources are verified with gpgverify first in %prep if upstream [x]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [x]: Package should compile and build into binary rpms on all supported architectures. [x]: %check is present and all tests pass. [x]: Packages should try to preserve timestamps of original installed files. [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [-]: Large data in /usr/share should live in a noarch subpackage if package is arched. Note: Arch-ed rpms have a total of 1648640 bytes in /usr/share [x]: Rpmlint is run on debuginfo package(s). [x]: Rpmlint is run on all installed packages. Rpmlint ------- uwsgi.x86_64: W: spelling-error %description -l en_US interprocess -> inter process, inter-process, intercession uwsgi.x86_64: W: spelling-error %description -l en_US preforking -> preforming, pitchforking uwsgi.x86_64: W: spelling-error %description -l en_US evented -> evened, vented, e vented uwsgi.x86_64: W: spelling-error %description -l en_US uGreen -> u Green, Green, green uwsgi.x86_64: W: spelling-error %description -l en_US xml -> XML, ml uwsgi.x86_64: W: spelling-error %description -l en_US ini -> uni, in, ii uwsgi.x86_64: W: spelling-error %description -l en_US yaml -> yam, yams, yawl uwsgi.x86_64: W: obsolete-not-provided uwsgi-loggers uwsgi.x86_64: W: obsolete-not-provided uwsgi-plugin-admin uwsgi.x86_64: W: obsolete-not-provided uwsgi-plugin-erlang uwsgi.x86_64: W: obsolete-not-provided uwsgi-router-access uwsgi.x86_64: W: obsolete-not-provided uwsgi-routers uwsgi.x86_64: W: crypto-policy-non-compliance-openssl /usr/sbin/uwsgi SSL_CTX_set_cipher_list uwsgi.x86_64: W: no-manual-page-for-binary uwsgi uwsgi-devel.x86_64: W: no-documentation A bit strange source is packaged as normal RPM under /usr/src, but it's ok. uwsgi-devel.x86_64: W: hidden-file-or-dir /usr/src/uwsgi/2.0.20/.github uwsgi-devel.x86_64: W: hidden-file-or-dir /usr/src/uwsgi/2.0.20/.github uwsgi-devel.x86_64: E: version-control-internal-file /usr/src/uwsgi/2.0.20/.gitignore uwsgi-devel.x86_64: E: zero-length /usr/src/uwsgi/2.0.20/INSTALL uwsgi-devel.x86_64: E: non-executable-script /usr/src/uwsgi/2.0.20/contrib/centos_init_script 644 /bin/bash uwsgi-devel.x86_64: E: non-executable-script /usr/src/uwsgi/2.0.20/contrib/securesubscribe.pl 644 /usr/bin/perl uwsgi-devel.x86_64: E: non-executable-script /usr/src/uwsgi/2.0.20/contrib/subscribe.pl 644 /usr/bin/perl uwsgi-devel.x86_64: E: non-executable-script /usr/src/uwsgi/2.0.20/contrib/upython 644 /bin/bash uwsgi-devel.x86_64: E: zero-length /usr/src/uwsgi/2.0.20/core/logging. uwsgi-devel.x86_64: E: non-executable-script /usr/src/uwsgi/2.0.20/t/core/read_body_and_send.pl 644 /usr/bin/perl uwsgi-devel.x86_64: E: non-executable-script /usr/src/uwsgi/2.0.20/t/core/url_sanitize.pl 644 /usr/bin/perl uwsgi-devel.x86_64: E: non-executable-script /usr/src/uwsgi/2.0.20/t/perl/test_input_with_offset.pl 644 /usr/bin/perl uwsgi-devel.x86_64: E: non-executable-script /usr/src/uwsgi/2.0.20/t/python/manage_script_name/test_manage_script_name.py 644 /usr/bin/env python3 uwsgi-devel.x86_64: E: version-control-internal-file /usr/src/uwsgi/2.0.20/t/spooler/spooldir/.gitignore uwsgi-devel.x86_64: E: zero-length /usr/src/uwsgi/2.0.20/t/spooler/spooldir/.gitignore python3-uwsgidecorators.x86_64: W: spelling-error %description -l en_US uWSGI -> busgirl python3-uwsgidecorators.x86_64: W: no-documentation Would be nice to fix these: uwsgi-docs.x86_64: W: wrong-file-end-of-line-encoding /usr/share/doc/uwsgi-docs/docs/PyPy.rst uwsgi-docs.x86_64: E: zero-length /usr/share/doc/uwsgi-docs/docs/examples/README.rst uwsgi-docs.x86_64: E: zero-length /usr/share/doc/uwsgi-docs/docs/tips_and_tricks/README.rst uwsgi-docs.x86_64: E: zero-length /usr/share/doc/uwsgi-docs/docs/tutorials/README.rst I guess these are plugins of some sort, ok. Unversioned so-files uwsgi-plugin-common: /usr/lib64/uwsgi/cgi_plugin.so uwsgi-plugin-common: /usr/lib64/uwsgi/http_plugin.so uwsgi-stats-pusher-file: /usr/lib64/uwsgi/stats_pusher_file_plugin.so uwsgi-stats-pusher-socket: /usr/lib64/uwsgi/stats_pusher_socket_plugin.so uwsgi-stats-pusher-statsd: /usr/lib64/uwsgi/stats_pusher_statsd_plugin.so uwsgi-stats-pusher-zabbix: /usr/lib64/uwsgi/zabbix_plugin.so uwsgi-alarm-curl: /usr/lib64/uwsgi/alarm_curl_plugin.so uwsgi-alarm-xmpp: /usr/lib64/uwsgi/alarm_xmpp_plugin.so uwsgi-transformation-chunked: /usr/lib64/uwsgi/transformation_chunked_plugin.so uwsgi-transformation-gzip: /usr/lib64/uwsgi/transformation_gzip_plugin.so uwsgi-transformation-offload: /usr/lib64/uwsgi/transformation_offload_plugin.so uwsgi-transformation-template: /usr/lib64/uwsgi/transformation_template_plugin.so uwsgi-transformation-tofile: /usr/lib64/uwsgi/transformation_tofile_plugin.so uwsgi-transformation-toupper: /usr/lib64/uwsgi/transformation_toupper_plugin.so uwsgi-log-encoder-msgpack: /usr/lib64/uwsgi/msgpack_plugin.so uwsgi-logger-crypto: /usr/lib64/uwsgi/logcrypto_plugin.so uwsgi-logger-file: /usr/lib64/uwsgi/logfile_plugin.so uwsgi-logger-graylog2: /usr/lib64/uwsgi/graylog2_plugin.so uwsgi-logger-pipe: /usr/lib64/uwsgi/logpipe_plugin.so uwsgi-logger-redis: /usr/lib64/uwsgi/redislog_plugin.so uwsgi-logger-rsyslog: /usr/lib64/uwsgi/rsyslog_plugin.so uwsgi-logger-socket: /usr/lib64/uwsgi/logsocket_plugin.so uwsgi-logger-syslog: /usr/lib64/uwsgi/syslog_plugin.so uwsgi-logger-systemd: /usr/lib64/uwsgi/systemd_logger_plugin.so uwsgi-logger-zeromq: /usr/lib64/uwsgi/logzmq_plugin.so uwsgi-plugin-airbrake: /usr/lib64/uwsgi/airbrake_plugin.so uwsgi-plugin-cache: /usr/lib64/uwsgi/cache_plugin.so uwsgi-plugin-carbon: /usr/lib64/uwsgi/carbon_plugin.so uwsgi-plugin-psgi: /usr/lib64/uwsgi/psgi_plugin.so uwsgi-plugin-coroae: /usr/lib64/uwsgi/coroae_plugin.so uwsgi-plugin-cheaper-busyness: /usr/lib64/uwsgi/cheaper_busyness_plugin.so uwsgi-plugin-cplusplus: /usr/lib64/uwsgi/cplusplus_plugin.so uwsgi-plugin-curl-cron: /usr/lib64/uwsgi/curl_cron_plugin.so uwsgi-plugin-dumbloop: /usr/lib64/uwsgi/dumbloop_plugin.so uwsgi-plugin-dummy: /usr/lib64/uwsgi/dummy_plugin.so uwsgi-plugin-fiber: /usr/lib64/uwsgi/fiber_plugin.so uwsgi-plugin-gccgo: /usr/lib64/uwsgi/gccgo_plugin.so uwsgi-plugin-geoip: /usr/lib64/uwsgi/geoip_plugin.so uwsgi-plugin-python3-gevent: /usr/lib64/uwsgi/python3_gevent_plugin.so uwsgi-plugin-glusterfs: /usr/lib64/uwsgi/glusterfs_plugin.so uwsgi-plugin-python3-greenlet: /usr/lib64/uwsgi/python3_greenlet_plugin.so uwsgi-plugin-ldap: /usr/lib64/uwsgi/ldap_plugin.so uwsgi-plugin-lua: /usr/lib64/uwsgi/lua_plugin.so uwsgi-plugin-mongrel2: /usr/lib64/uwsgi/mongrel2_plugin.so uwsgi-plugin-mono: /usr/lib64/uwsgi/mono_plugin.so uwsgi-plugin-nagios: /usr/lib64/uwsgi/nagios_plugin.so uwsgi-plugin-notfound: /usr/lib64/uwsgi/notfound_plugin.so uwsgi-plugin-pam: /usr/lib64/uwsgi/pam_plugin.so uwsgi-plugin-php: /usr/lib64/uwsgi/php_plugin.so uwsgi-plugin-pty: /usr/lib64/uwsgi/pty_plugin.so uwsgi-plugin-python3: /usr/lib64/uwsgi/python3_plugin.so uwsgi-plugin-rack: /usr/lib64/uwsgi/rack_plugin.so uwsgi-plugin-rbthreads: /usr/lib64/uwsgi/rbthreads_plugin.so uwsgi-plugin-rpc: /usr/lib64/uwsgi/rpc_plugin.so uwsgi-plugin-rrdtool: /usr/lib64/uwsgi/rrdtool_plugin.so uwsgi-plugin-ruby: /usr/lib64/uwsgi/ruby19_plugin.so uwsgi-plugin-spooler: /usr/lib64/uwsgi/spooler_plugin.so uwsgi-plugin-sqlite3: /usr/lib64/uwsgi/sqlite3_plugin.so uwsgi-plugin-ssi: /usr/lib64/uwsgi/ssi_plugin.so uwsgi-plugin-python3-tornado: /usr/lib64/uwsgi/python3_tornado_plugin.so uwsgi-plugin-ugreen: /usr/lib64/uwsgi/ugreen_plugin.so uwsgi-plugin-webdav: /usr/lib64/uwsgi/webdav_plugin.so uwsgi-plugin-xattr: /usr/lib64/uwsgi/xattr_plugin.so uwsgi-plugin-xslt: /usr/lib64/uwsgi/xslt_plugin.so uwsgi-plugin-zergpool: /usr/lib64/uwsgi/zergpool_plugin.so uwsgi-router-basicauth: /usr/lib64/uwsgi/router_basicauth_plugin.so uwsgi-router-cache: /usr/lib64/uwsgi/router_cache_plugin.so uwsgi-router-expires: /usr/lib64/uwsgi/router_expires_plugin.so uwsgi-router-fast: /usr/lib64/uwsgi/fastrouter_plugin.so uwsgi-router-forkpty: /usr/lib64/uwsgi/forkptyrouter_plugin.so uwsgi-router-hash: /usr/lib64/uwsgi/router_hash_plugin.so uwsgi-router-http: /usr/lib64/uwsgi/router_http_plugin.so uwsgi-router-memcached: /usr/lib64/uwsgi/router_memcached_plugin.so uwsgi-router-metrics: /usr/lib64/uwsgi/router_metrics_plugin.so uwsgi-router-radius: /usr/lib64/uwsgi/router_radius_plugin.so uwsgi-router-raw: /usr/lib64/uwsgi/rawrouter_plugin.so uwsgi-router-redirect: /usr/lib64/uwsgi/router_redirect_plugin.so uwsgi-router-redis: /usr/lib64/uwsgi/router_redis_plugin.so uwsgi-router-rewrite: /usr/lib64/uwsgi/router_rewrite_plugin.so uwsgi-router-spnego: /usr/lib64/uwsgi/router_spnego_plugin.so uwsgi-router-ssl: /usr/lib64/uwsgi/sslrouter_plugin.so uwsgi-router-static: /usr/lib64/uwsgi/router_static_plugin.so uwsgi-router-tuntap: /usr/lib64/uwsgi/tuntap_plugin.so uwsgi-router-uwsgi: /usr/lib64/uwsgi/router_uwsgi_plugin.so uwsgi-router-xmldir: /usr/lib64/uwsgi/router_xmldir_plugin.so All good here: Source checksums ---------------- Using local file uwsgi/uwsgi.tmpfiles as upstream file:///uwsgi/uwsgi.tmpfiles : CHECKSUM(SHA256) this package : 0b2d563704a1f1997ede3696523cbd34546797c3ada453df4649857695439cb7 CHECKSUM(SHA256) upstream package : 0b2d563704a1f1997ede3696523cbd34546797c3ada453df4649857695439cb7 Both ok fine: Requires -------- Provides -------- All in all: package is APPROVED.
Thanks for the review so far, I'll try and address some of the comments. - I removed/simplified fedora version checks, where appropriate - EL6 support is gone - I kept python2 support, as the EL7 build can still use it. EL* doesn't build at all right now for different reasons, but I'll see if I can clean that up. - non-systemd stuff is gone - I _guess_ the "source in /usr/src" stuff is related to how uwsgi works when trying to build stuff against it, it's not really meant for that and you need the actual source tree for it. - All the .so files are plugins, yes There's a new copr currently building at https://copr.fedorainfracloud.org/coprs/build/3255155 with the above changes. spec diff is below. ------------------------------- --- uwsgi.orig/uwsgi.spec 2021-01-29 06:39:14.000000000 +0100 +++ uwsgi/uwsgi.spec 2022-01-26 21:43:49.120985037 +0100 @@ -1,5 +1,5 @@ # Documentation sources: -%global commit 8d868eadfb460785a735030271afa233ac854763 +%global commit 9b4ef5fa68fe42929a5e5410165d36fcc7b2d2c7 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global docrepo uwsgi-docs @@ -8,12 +8,7 @@ # This is primarily built for fedora, make it easy right now %if 0%{?fedora} -%bcond_without systemd %bcond_without go -%if 0%{?fedora} < 31 -%bcond_without python2 -%bcond_without python2_greenlet -%endif %bcond_without python3 %bcond_without ruby19 %bcond_without tuntap @@ -45,38 +40,12 @@ #Fedora endif %endif -# Conditionally disable some things in epel6 -%if 0%{?rhel} == 6 -# javapackages-tools retired in epel (apache-ivy orphanage) -%bcond_with java -# el6 doesn't ship with systemd -%bcond_with systemd -# el6 doesn't have go -%bcond_with go -%bcond_without python2 -%bcond_without python2_greenlet -# el6 ships with ruby 1.8 but fiberloop/rbthreads needs 1.9 -%bcond_with ruby19 -# el6 doesn't have perl-PSGI -# el6 does have perl-Coro -%bcond_with perl -# el6 httpd does not include mod_proxy_uwsgi -%bcond_without mod_proxy_uwsgi -# this fails in el not sure why -%bcond_with gridfs -%bcond_with tuntap -%bcond_with mongodblibs -%global manual_py_compile 0 -%else %global manual_py_compile 1 -%endif # Conditionally enable/disable some things in epel7 %if 0%{?rhel} == 7 # el7 does have java %bcond_without java -# el7 does have systemd -%bcond_without systemd %bcond_without python2 %bcond_without python3 %bcond_without python3_other @@ -107,8 +76,8 @@ %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') %endif -# Disable router_access in fedora >= 28 because tcp_wrappers deprecation -%if 0%{?fedora} >= 28 +# Disable router_access in fedora because tcp_wrappers deprecation +%if 0%{?fedora} %bcond_with tcp_wrappers %else %bcond_without tcp_wrappers @@ -130,8 +99,8 @@ %endif Name: uwsgi -Version: 2.0.18 -Release: 16%{?dist} +Version: 2.0.20 +Release: 0.5%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -144,7 +113,6 @@ Source3: emperor.ini Source4: https://github.com/unbit/%{docrepo}/archive/%{commit}/%{docrepo}-%{shortcommit}.tar.gz Source5: README.Fedora -Source6: uwsgi.init Source7: uwsgi.tmpfiles Patch0: uwsgi_trick_chroot_rpmbuild.patch @@ -155,12 +123,11 @@ Patch5: uwsgi_fix_mongodb.patch Patch6: uwsgi_v8-314_compatibility.patch Patch7: uwsgi_fix_mono.patch -# https://github.com/unbit/uwsgi/pull/1772 -Patch9: uwsgi-2.0.16-glfs.patch -# https://github.com/unbit/uwsgi/pull/2141 -Patch10: uwsgi_fix_psgi.patch -# https://github.com/unbit/uwsgi/pull/2105 -Patch11: uwsgi_fix_php74_zend.patch +# https://github.com/unbit/uwsgi/issues/2283 +Patch12: uwsgi_fix_php8.patch +Patch13: uwsgi_fix_chroot_chdir.patch +# https://github.com/unbit/uwsgi/issues/2356 +Patch14: uwsgi_fix_php_arginfo.patch BuildRequires: curl, libxml2-devel, libuuid-devel, jansson-devel BuildRequires: libyaml-devel, ruby-devel @@ -202,28 +169,26 @@ %if %{with go} BuildRequires: gcc-go %endif -%if %{with systemd} BuildRequires: systemd-devel, systemd-units -%endif %if %{with mono} BuildRequires: mono-devel, mono-web, glib2-devel %endif %if %{with v8} -%if 0%{?fedora} >= 25 +%if 0%{?fedora} BuildRequires: v8-314-devel %else BuildRequires: v8-devel %endif %endif %if %{with mongodblibs} -%if 0%{?fedora} >= 30 +%if 0%{?fedora} BuildRequires: mongo-cxx-driver-legacy-devel %else BuildRequires: mongo-cxx-driver-devel %endif %endif -%if 0%{?fedora} >= 28 +%if 0%{?fedora} BuildRequires: libargon2-devel Obsoletes: uwsgi-router-access <= 2.0.16 %endif @@ -234,13 +199,7 @@ Obsoletes: uwsgi-plugin-admin <= 2.0.6 Requires(pre): shadow-utils -%if %{with systemd} %{?systemd_requires} -%else -Requires(post): chkconfig -Requires(preun): chkconfig -Requires(preun): initscripts -%endif %filter_requires_in %{_usrsrc} %filter_provides_in %{_usrsrc} @@ -292,7 +251,8 @@ %endif %description -n python%{python3_pkgversion}-uwsgidecorators -The uwsgidecorators Python %{python3_version} module provides higher-level access to the uWSGI API. +The uwsgidecorators Python %{python3_version} module provides higher-level +access to the uWSGI API. %endif %if %{with python3_other} @@ -302,7 +262,8 @@ Requires: uwsgi-plugin-python%{python3_other_pkgversion} = %{version}-%{release} %description -n python%{python3_other_pkgversion}-uwsgidecorators -The uwsgidecorators Python %{python3_other_version} module provides higher-level access to the uWSGI API. +The uwsgidecorators Python %{python3_other_version} module provides +higher-level access to the uWSGI API. %endif %package -n uwsgi-docs @@ -363,7 +324,7 @@ %package -n uwsgi-alarm-curl Summary: uWSGI - Curl alarm plugin -Requires: uwsgi-plugin-common = %{version}-%{release}, libcurl +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-alarm-curl This package contains the alarm_curl alarm plugin for uWSGI @@ -446,7 +407,7 @@ %package -n uwsgi-logger-graylog2 Summary: uWSGI - Graylog2 logger plugin -Requires: uwsgi-plugin-common = %{version}-%{release}, zlib +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-logger-graylog2 This package contains the graylog2 logger plugin for uWSGI @@ -505,14 +466,12 @@ %description -n uwsgi-logger-syslog This package contains the syslog logger plugin for uWSGI -%if %{with systemd} %package -n uwsgi-logger-systemd Summary: uWSGI - systemd journal logger plugin Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-logger-systemd This package contains the systemd journal logger plugin for uWSGI -%endif %if %{with zeromq} %package -n uwsgi-logger-zeromq @@ -527,7 +486,7 @@ %package -n uwsgi-plugin-airbrake Summary: uWSGI - Plugin for AirBrake support -Requires: uwsgi-plugin-common = %{version}-%{release}, libcurl +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-airbrake This package contains the airbrake plugin for uWSGI @@ -571,14 +530,14 @@ %package -n uwsgi-plugin-cplusplus Summary: uWSGI - Plugin for C++ support -Requires: uwsgi-plugin-common = %{version}-%{release}, libstdc++ +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-cplusplus This package contains the cplusplus plugin for uWSGI %package -n uwsgi-plugin-curl-cron Summary: uWSGI - Plugin for CURL Cron support -Requires: uwsgi-plugin-common = %{version}-%{release}, libcurl +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-curl-cron This package contains the curl_cron plugin for uWSGI @@ -623,7 +582,7 @@ %if %{with python2} %package -n uwsgi-plugin-python2-gevent Summary: uWSGI - Plugin for Python 2 GEvent support -Requires: uwsgi-plugin-python2 = %{version}-%{release}, libevent +Requires: uwsgi-plugin-python2 = %{version}-%{release} Obsoletes: uwsgi-plugin-gevent < 2.0.16-4 Provides: uwsgi-plugin-gevent = %{version}-%{release} @@ -634,7 +593,7 @@ %if %{with python3} %package -n uwsgi-plugin-python%{python3_pkgversion}-gevent Summary: uWSGI - Plugin for Python %{python3_version} GEvent support -Requires: uwsgi-plugin-python%{python3_pkgversion} = %{version}-%{release}, libevent +Requires: uwsgi-plugin-python%{python3_pkgversion} = %{version}-%{release} %description -n uwsgi-plugin-python%{python3_pkgversion}-gevent This package contains the Python %{python3_version} gevent plugin for uWSGI @@ -886,10 +845,6 @@ %package -n uwsgi-plugin-python%{python3_pkgversion}-tornado Summary: uWSGI - Plugin for Tornado (Python %{python3_version}) support Requires: uwsgi-plugin-common = %{version}-%{release}, python%{python3_pkgversion}-tornado -%if 0%{?fedora} && 0%{?fedora} < 29 -Obsoletes: uwsgi-plugin-tornado3 < 2.0.16-4 -Provides: uwsgi-plugin-tornado3 = %{version}-%{release} -%endif %description -n uwsgi-plugin-python%{python3_pkgversion}-tornado This package contains the tornado (Python %{python3_version}) plugin for uWSGI @@ -913,21 +868,21 @@ %package -n uwsgi-plugin-webdav Summary: uWSGI - Plugin for WebDAV support -Requires: uwsgi-plugin-common = %{version}-%{release}, libattr +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-webdav This package contains the webdav plugin for uWSGI %package -n uwsgi-plugin-xattr Summary: uWSGI - Plugin for Extra Attributes support -Requires: uwsgi-plugin-common = %{version}-%{release}, libattr +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-xattr This package contains the xattr plugin for uWSGI %package -n uwsgi-plugin-xslt Summary: uWSGI - Plugin for XSLT transformation support -Requires: uwsgi-plugin-common = %{version}-%{release}, libxslt +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-xslt This package contains the xslt plugin for uWSGI @@ -1133,20 +1088,18 @@ %patch1 -p1 %patch2 -p1 %patch3 -p1 -%if 0%{?fedora} >= 22 +%if 0%{?fedora} %patch5 -p1 %endif -%if %{with v8} && 0%{?fedora} >= 25 +%if %{with v8} && 0%{?fedora} %patch6 -p1 %endif %if %{with mono} %patch7 -p1 %endif -%patch9 -p1 -%if 0%{?fedora} >= 32 -%patch10 -p1 -%endif -%patch11 -p1 +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 #disable plug-ins %if %{without mongodblibs} @@ -1201,9 +1154,7 @@ CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --plugin plugins/fiber fedora CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --plugin plugins/rbthreads fedora %endif -%if %{with systemd} CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --plugin plugins/systemd_logger fedora -%endif %if %{with tuntap} CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --plugin plugins/tuntap fedora %endif @@ -1245,9 +1196,6 @@ install -d %{buildroot}%{_usrsrc}/uwsgi/%{version} install -d %{buildroot}%{_includedir}/uwsgi install -d %{buildroot}%{_libdir}/uwsgi -%if %{without systemd} -install -d -m 0775 %{buildroot}%{_localstatedir}/run/uwsgi -%endif %if %{with mono} install -d %{buildroot}%{_monogacdir} %endif @@ -1287,12 +1235,8 @@ gacutil -i plugins/mono/uwsgi.dll -f -package uwsgi -root %{buildroot}/usr/lib %endif install -D -p -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/uwsgi.ini -%if %{with systemd} install -D -p -m 0644 %{SOURCE2} %{buildroot}%{_unitdir}/uwsgi.service install -D -p -m 0644 %{SOURCE7} %{buildroot}%{_tmpfilesdir}/uwsgi.conf -%else -install -D -p -m 0755 %{SOURCE6} %{buildroot}%{_initddir}/uwsgi -%endif %if %{with mod_proxy_uwsgi} install -D -p -m 0755 apache2/.libs/mod_proxy_uwsgi.so %{buildroot}%{_httpd_moddir}/mod_proxy_uwsgi.so %endif @@ -1301,13 +1245,11 @@ %pre getent group uwsgi >/dev/null || groupadd -r uwsgi getent passwd uwsgi >/dev/null || \ - useradd -r -g uwsgi -d %{!?with_systemd:%{_localstatedir}}/run/uwsgi -s /sbin/nologin \ + useradd -r -g uwsgi -d /run/uwsgi -s /sbin/nologin \ -c "uWSGI daemon user" uwsgi exit 0 %post -%if %{with systemd} -echo "Executing systemd post-install tasks" %if 0%{?systemd_post:1} %systemd_post uwsgi.service %else @@ -1316,14 +1258,8 @@ /bin/systemctl daemon-reload >/dev/null 2>&1 || : fi %endif -%else -echo "Executing System V post-install tasks" -/sbin/chkconfig --add uwsgi -%endif %preun -%if %{with systemd} -echo "Executing systemd pre-uninstall tasks" %if 0%{?systemd_preun:1} %systemd_preun uwsgi.service %else @@ -1333,17 +1269,8 @@ /bin/systemctl stop uwsgi.service > /dev/null 2>&1 || : fi %endif -%else -echo "Executing System V pre-uninstall tasks" -if [ $1 -eq 0 ] ; then - /sbin/service uwsgi stop >/dev/null 2>&1 - /sbin/chkconfig --del uwsgi -fi -%endif %postun -%if %{with systemd} -echo "Executing systemd post-uninstall tasks" %if 0%{?systemd_postun:1} %systemd_postun uwsgi.service %else @@ -1353,27 +1280,14 @@ /bin/systemctl try-restart uwsgi.service >/dev/null 2>&1 || : fi %endif -%else -echo "Executing System V post-uninstall tasks" -if [ "$1" -ge "1" ] ; then - /sbin/service uwsgi condrestart >/dev/null 2>&1 || : -fi -%endif %files %{_sbindir}/uwsgi %config(noreplace) %{_sysconfdir}/uwsgi.ini -%if %{with systemd} %{_unitdir}/uwsgi.service %{_tmpfilesdir}/uwsgi.conf -%else -%{_initddir}/uwsgi -%endif %dir %{_sysconfdir}/uwsgi.d -%if %{without systemd} -%attr(0775,uwsgi,uwsgi) %dir %{_localstatedir}/run/uwsgi -%endif %doc README README.Fedora CHANGELOG %license LICENSE @@ -1487,10 +1401,8 @@ %files -n uwsgi-logger-syslog %{_libdir}/uwsgi/syslog_plugin.so -%if %{with systemd} %files -n uwsgi-logger-systemd %{_libdir}/uwsgi/systemd_logger_plugin.so -%endif %if %{with zeromq} %files -n uwsgi-logger-zeromq @@ -1775,6 +1687,9 @@ %changelog +* Sun Jan 23 2022 Ralf Ertzinger <ralf> - 2.0.20-0.5 +- Update to 2.0.20 + * Wed Jan 27 2021 Fedora Release Engineering <releng> - 2.0.18-16 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Thanks, +# Disable router_access in fedora because tcp_wrappers deprecation +%if 0%{?fedora} %bcond_with tcp_wrappers %else %bcond_without tcp_wrappers @@ -130,8 +99,8 @@ %endif Just remove tcp_wrappers support everywhere? It's gone from el8 too, leaving el7 as sole user.
Final version, probably. https://copr.fedorainfracloud.org/coprs/ertzing/scratch_x64/build/3258602/ Builds in F34, F35, EL7 and EL8, doesn't build in rawhide which I'll blame on rawhide. ------------------------ --- uwsgi.orig/uwsgi.spec 2021-01-29 06:39:14.000000000 +0100 +++ uwsgi/uwsgi.spec 2022-01-28 18:26:20.980948342 +0100 @@ -1,5 +1,5 @@ # Documentation sources: -%global commit 8d868eadfb460785a735030271afa233ac854763 +%global commit 9b4ef5fa68fe42929a5e5410165d36fcc7b2d2c7 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global docrepo uwsgi-docs @@ -8,18 +8,14 @@ # This is primarily built for fedora, make it easy right now %if 0%{?fedora} -%bcond_without systemd %bcond_without go -%if 0%{?fedora} < 31 -%bcond_without python2 -%bcond_without python2_greenlet -%endif %bcond_without python3 %bcond_without ruby19 %bcond_without tuntap %bcond_without zeromq %bcond_without perl %bcond_without glusterfs +%bcond_without php # javapackages-tools retired (apache-ivy orphanage) %bcond_with java # Fedora httpd includes mod_proxy_uwsgi @@ -45,41 +41,15 @@ #Fedora endif %endif -# Conditionally disable some things in epel6 -%if 0%{?rhel} == 6 -# javapackages-tools retired in epel (apache-ivy orphanage) -%bcond_with java -# el6 doesn't ship with systemd -%bcond_with systemd -# el6 doesn't have go -%bcond_with go -%bcond_without python2 -%bcond_without python2_greenlet -# el6 ships with ruby 1.8 but fiberloop/rbthreads needs 1.9 -%bcond_with ruby19 -# el6 doesn't have perl-PSGI -# el6 does have perl-Coro -%bcond_with perl -# el6 httpd does not include mod_proxy_uwsgi -%bcond_without mod_proxy_uwsgi -# this fails in el not sure why -%bcond_with gridfs -%bcond_with tuntap -%bcond_with mongodblibs -%global manual_py_compile 0 -%else -%global manual_py_compile 1 -%endif - # Conditionally enable/disable some things in epel7 %if 0%{?rhel} == 7 # el7 does have java %bcond_without java -# el7 does have systemd -%bcond_without systemd %bcond_without python2 %bcond_without python3 %bcond_without python3_other +# This only exists on EL7 +%bcond_without tcp_wrappers # el7 doesn't have zeromq %bcond_with zeromq # el7 does have python-greenlet, but only on x86_64 @@ -99,21 +69,53 @@ %endif # this fails in el7 not sure why %bcond_with gridfs +# EL7 PHP is too old +%bcond_with php +%endif + +# epel8 builds pretty similar to Fedora for now +%if 0%{?rhel} == 8 +%bcond_without go +%bcond_without python3 +%bcond_without ruby19 +%bcond_without tuntap +%bcond_without zeromq +%bcond_without perl +%bcond_without glusterfs +%bcond_without php +# javapackages-tools retired (apache-ivy orphanage) +%bcond_with java +# Fedora httpd includes mod_proxy_uwsgi +# https://bugzilla.redhat.com/show_bug.cgi?id=1574335 +%bcond_with mod_proxy_uwsgi +#mono +%ifarch %{mono_arches} +%bcond_without mono +%else +%bcond_with mono +%endif +# mongodblibs +# mongo-cxx-driver-legacy broken in rawhide rhbz#1675407 +%bcond_with mongodblibs +# v8-314 retired +%bcond_with v8 +#mongodblibs dependency +%if %{without mongodblibs} +%bcond_with gridfs +%else +%bcond_without gridfs +%endif +#EL8 endif %endif +%global manual_py_compile 1 + # Turn off byte compilation so it doesn't try # to auto-optimize the code in /usr/src/uwsgi %if %{manual_py_compile} == 1 %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') %endif -# Disable router_access in fedora >= 28 because tcp_wrappers deprecation -%if 0%{?fedora} >= 28 -%bcond_with tcp_wrappers -%else -%bcond_without tcp_wrappers -%endif - # Set %%__python to the newest possible version %if %{with python3} %global __python %{__python3} @@ -130,8 +132,8 @@ %endif Name: uwsgi -Version: 2.0.18 -Release: 16%{?dist} +Version: 2.0.20 +Release: 0.7%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -144,7 +146,6 @@ Source3: emperor.ini Source4: https://github.com/unbit/%{docrepo}/archive/%{commit}/%{docrepo}-%{shortcommit}.tar.gz Source5: README.Fedora -Source6: uwsgi.init Source7: uwsgi.tmpfiles Patch0: uwsgi_trick_chroot_rpmbuild.patch @@ -155,12 +156,11 @@ Patch5: uwsgi_fix_mongodb.patch Patch6: uwsgi_v8-314_compatibility.patch Patch7: uwsgi_fix_mono.patch -# https://github.com/unbit/uwsgi/pull/1772 -Patch9: uwsgi-2.0.16-glfs.patch -# https://github.com/unbit/uwsgi/pull/2141 -Patch10: uwsgi_fix_psgi.patch -# https://github.com/unbit/uwsgi/pull/2105 -Patch11: uwsgi_fix_php74_zend.patch +# https://github.com/unbit/uwsgi/issues/2283 +Patch12: uwsgi_fix_php8.patch +Patch13: uwsgi_fix_chroot_chdir.patch +# https://github.com/unbit/uwsgi/issues/2356 +Patch14: uwsgi_fix_php_arginfo.patch BuildRequires: curl, libxml2-devel, libuuid-devel, jansson-devel BuildRequires: libyaml-devel, ruby-devel @@ -184,7 +184,10 @@ BuildRequires: glusterfs-devel, glusterfs-api-devel %endif BuildRequires: lua-devel, ruby, pcre-devel -BuildRequires: php-devel, php-embedded, libedit-devel, krb5-devel +%if %{with php} +BuildRequires: php-devel, php-embedded +%endif +BuildRequires: libedit-devel, krb5-devel BuildRequires: openssl-devel BuildRequires: bzip2-devel, gmp-devel, pam-devel BuildRequires: sqlite-devel, libcap-devel @@ -202,28 +205,26 @@ %if %{with go} BuildRequires: gcc-go %endif -%if %{with systemd} BuildRequires: systemd-devel, systemd-units -%endif %if %{with mono} BuildRequires: mono-devel, mono-web, glib2-devel %endif %if %{with v8} -%if 0%{?fedora} >= 25 +%if 0%{?fedora} BuildRequires: v8-314-devel %else BuildRequires: v8-devel %endif %endif %if %{with mongodblibs} -%if 0%{?fedora} >= 30 +%if 0%{?fedora} BuildRequires: mongo-cxx-driver-legacy-devel %else BuildRequires: mongo-cxx-driver-devel %endif %endif -%if 0%{?fedora} >= 28 +%if 0%{?fedora} BuildRequires: libargon2-devel Obsoletes: uwsgi-router-access <= 2.0.16 %endif @@ -234,13 +235,7 @@ Obsoletes: uwsgi-plugin-admin <= 2.0.6 Requires(pre): shadow-utils -%if %{with systemd} %{?systemd_requires} -%else -Requires(post): chkconfig -Requires(preun): chkconfig -Requires(preun): initscripts -%endif %filter_requires_in %{_usrsrc} %filter_provides_in %{_usrsrc} @@ -292,7 +287,8 @@ %endif %description -n python%{python3_pkgversion}-uwsgidecorators -The uwsgidecorators Python %{python3_version} module provides higher-level access to the uWSGI API. +The uwsgidecorators Python %{python3_version} module provides higher-level +access to the uWSGI API. %endif %if %{with python3_other} @@ -302,7 +298,8 @@ Requires: uwsgi-plugin-python%{python3_other_pkgversion} = %{version}-%{release} %description -n python%{python3_other_pkgversion}-uwsgidecorators -The uwsgidecorators Python %{python3_other_version} module provides higher-level access to the uWSGI API. +The uwsgidecorators Python %{python3_other_version} module provides +higher-level access to the uWSGI API. %endif %package -n uwsgi-docs @@ -363,7 +360,7 @@ %package -n uwsgi-alarm-curl Summary: uWSGI - Curl alarm plugin -Requires: uwsgi-plugin-common = %{version}-%{release}, libcurl +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-alarm-curl This package contains the alarm_curl alarm plugin for uWSGI @@ -446,7 +443,7 @@ %package -n uwsgi-logger-graylog2 Summary: uWSGI - Graylog2 logger plugin -Requires: uwsgi-plugin-common = %{version}-%{release}, zlib +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-logger-graylog2 This package contains the graylog2 logger plugin for uWSGI @@ -505,14 +502,12 @@ %description -n uwsgi-logger-syslog This package contains the syslog logger plugin for uWSGI -%if %{with systemd} %package -n uwsgi-logger-systemd Summary: uWSGI - systemd journal logger plugin Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-logger-systemd This package contains the systemd journal logger plugin for uWSGI -%endif %if %{with zeromq} %package -n uwsgi-logger-zeromq @@ -527,7 +522,7 @@ %package -n uwsgi-plugin-airbrake Summary: uWSGI - Plugin for AirBrake support -Requires: uwsgi-plugin-common = %{version}-%{release}, libcurl +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-airbrake This package contains the airbrake plugin for uWSGI @@ -571,14 +566,14 @@ %package -n uwsgi-plugin-cplusplus Summary: uWSGI - Plugin for C++ support -Requires: uwsgi-plugin-common = %{version}-%{release}, libstdc++ +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-cplusplus This package contains the cplusplus plugin for uWSGI %package -n uwsgi-plugin-curl-cron Summary: uWSGI - Plugin for CURL Cron support -Requires: uwsgi-plugin-common = %{version}-%{release}, libcurl +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-curl-cron This package contains the curl_cron plugin for uWSGI @@ -623,7 +618,7 @@ %if %{with python2} %package -n uwsgi-plugin-python2-gevent Summary: uWSGI - Plugin for Python 2 GEvent support -Requires: uwsgi-plugin-python2 = %{version}-%{release}, libevent +Requires: uwsgi-plugin-python2 = %{version}-%{release} Obsoletes: uwsgi-plugin-gevent < 2.0.16-4 Provides: uwsgi-plugin-gevent = %{version}-%{release} @@ -634,7 +629,7 @@ %if %{with python3} %package -n uwsgi-plugin-python%{python3_pkgversion}-gevent Summary: uWSGI - Plugin for Python %{python3_version} GEvent support -Requires: uwsgi-plugin-python%{python3_pkgversion} = %{version}-%{release}, libevent +Requires: uwsgi-plugin-python%{python3_pkgversion} = %{version}-%{release} %description -n uwsgi-plugin-python%{python3_pkgversion}-gevent This package contains the Python %{python3_version} gevent plugin for uWSGI @@ -759,12 +754,14 @@ %description -n uwsgi-plugin-pam This package contains the PAM plugin for uWSGI +%if %{with php} %package -n uwsgi-plugin-php Summary: uWSGI - Plugin for PHP support Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-php This package contains the PHP plugin for uWSGI +%endif %package -n uwsgi-plugin-pty Summary: uWSGI - Plugin for PTY support @@ -886,10 +883,6 @@ %package -n uwsgi-plugin-python%{python3_pkgversion}-tornado Summary: uWSGI - Plugin for Tornado (Python %{python3_version}) support Requires: uwsgi-plugin-common = %{version}-%{release}, python%{python3_pkgversion}-tornado -%if 0%{?fedora} && 0%{?fedora} < 29 -Obsoletes: uwsgi-plugin-tornado3 < 2.0.16-4 -Provides: uwsgi-plugin-tornado3 = %{version}-%{release} -%endif %description -n uwsgi-plugin-python%{python3_pkgversion}-tornado This package contains the tornado (Python %{python3_version}) plugin for uWSGI @@ -913,21 +906,21 @@ %package -n uwsgi-plugin-webdav Summary: uWSGI - Plugin for WebDAV support -Requires: uwsgi-plugin-common = %{version}-%{release}, libattr +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-webdav This package contains the webdav plugin for uWSGI %package -n uwsgi-plugin-xattr Summary: uWSGI - Plugin for Extra Attributes support -Requires: uwsgi-plugin-common = %{version}-%{release}, libattr +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-xattr This package contains the xattr plugin for uWSGI %package -n uwsgi-plugin-xslt Summary: uWSGI - Plugin for XSLT transformation support -Requires: uwsgi-plugin-common = %{version}-%{release}, libxslt +Requires: uwsgi-plugin-common = %{version}-%{release} %description -n uwsgi-plugin-xslt This package contains the xslt plugin for uWSGI @@ -1133,41 +1126,23 @@ %patch1 -p1 %patch2 -p1 %patch3 -p1 -%if 0%{?fedora} >= 22 +%if 0%{?fedora} %patch5 -p1 %endif -%if %{with v8} && 0%{?fedora} >= 25 +%if %{with v8} && 0%{?fedora} %patch6 -p1 %endif %if %{with mono} %patch7 -p1 %endif -%patch9 -p1 -%if 0%{?fedora} >= 32 -%patch10 -p1 -%endif -%patch11 -p1 - -#disable plug-ins -%if %{without mongodblibs} -sed -in "s/mongodblog, //" buildconf/fedora.ini -sed -in "s/stats_pusher_mongodb, //" buildconf/fedora.ini -%endif -%if %{without v8} -sed -in "s/v8, //" buildconf/fedora.ini -%endif -%if %{without gridfs} -sed -in "s/gridfs, //" buildconf/fedora.ini -%endif -%if %{without mono} -sed -in "s/mono, //" buildconf/fedora.ini -%endif +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 %if %{with perl} && (%{with python3} || %{with python3_other}) %{__python} -m lib2to3 --write --nobackups plugins/coroae/uwsgiplugin.py %endif - %build CFLAGS="%{optflags} -Wno-error -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --build fedora.ini %if %{with python2} @@ -1191,19 +1166,22 @@ %if %{with mono} CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --plugin plugins/mono fedora %endif +%if %{with php} +CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --plugin plugins/php fedora +%endif %if %{with v8} CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --plugin plugins/v8 fedora %endif %if %{with go} -CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --plugin plugins/gccgo fedora +# In EL* distributions, the gccgo compiler needs to be explicitly used to +# compile Go code, gcc will not work. However, gccgo can compile C code, +# so use that instead +CC="gccgo" CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --plugin plugins/gccgo fedora %endif %if %{with ruby19} CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --plugin plugins/fiber fedora CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --plugin plugins/rbthreads fedora %endif -%if %{with systemd} -CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --plugin plugins/systemd_logger fedora -%endif %if %{with tuntap} CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --plugin plugins/tuntap fedora %endif @@ -1245,9 +1223,6 @@ install -d %{buildroot}%{_usrsrc}/uwsgi/%{version} install -d %{buildroot}%{_includedir}/uwsgi install -d %{buildroot}%{_libdir}/uwsgi -%if %{without systemd} -install -d -m 0775 %{buildroot}%{_localstatedir}/run/uwsgi -%endif %if %{with mono} install -d %{buildroot}%{_monogacdir} %endif @@ -1287,12 +1262,8 @@ gacutil -i plugins/mono/uwsgi.dll -f -package uwsgi -root %{buildroot}/usr/lib %endif install -D -p -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/uwsgi.ini -%if %{with systemd} install -D -p -m 0644 %{SOURCE2} %{buildroot}%{_unitdir}/uwsgi.service install -D -p -m 0644 %{SOURCE7} %{buildroot}%{_tmpfilesdir}/uwsgi.conf -%else -install -D -p -m 0755 %{SOURCE6} %{buildroot}%{_initddir}/uwsgi -%endif %if %{with mod_proxy_uwsgi} install -D -p -m 0755 apache2/.libs/mod_proxy_uwsgi.so %{buildroot}%{_httpd_moddir}/mod_proxy_uwsgi.so %endif @@ -1301,13 +1272,11 @@ %pre getent group uwsgi >/dev/null || groupadd -r uwsgi getent passwd uwsgi >/dev/null || \ - useradd -r -g uwsgi -d %{!?with_systemd:%{_localstatedir}}/run/uwsgi -s /sbin/nologin \ + useradd -r -g uwsgi -d /run/uwsgi -s /sbin/nologin \ -c "uWSGI daemon user" uwsgi exit 0 %post -%if %{with systemd} -echo "Executing systemd post-install tasks" %if 0%{?systemd_post:1} %systemd_post uwsgi.service %else @@ -1316,14 +1285,8 @@ /bin/systemctl daemon-reload >/dev/null 2>&1 || : fi %endif -%else -echo "Executing System V post-install tasks" -/sbin/chkconfig --add uwsgi -%endif %preun -%if %{with systemd} -echo "Executing systemd pre-uninstall tasks" %if 0%{?systemd_preun:1} %systemd_preun uwsgi.service %else @@ -1333,17 +1296,8 @@ /bin/systemctl stop uwsgi.service > /dev/null 2>&1 || : fi %endif -%else -echo "Executing System V pre-uninstall tasks" -if [ $1 -eq 0 ] ; then - /sbin/service uwsgi stop >/dev/null 2>&1 - /sbin/chkconfig --del uwsgi -fi -%endif %postun -%if %{with systemd} -echo "Executing systemd post-uninstall tasks" %if 0%{?systemd_postun:1} %systemd_postun uwsgi.service %else @@ -1353,27 +1307,14 @@ /bin/systemctl try-restart uwsgi.service >/dev/null 2>&1 || : fi %endif -%else -echo "Executing System V post-uninstall tasks" -if [ "$1" -ge "1" ] ; then - /sbin/service uwsgi condrestart >/dev/null 2>&1 || : -fi -%endif %files %{_sbindir}/uwsgi %config(noreplace) %{_sysconfdir}/uwsgi.ini -%if %{with systemd} %{_unitdir}/uwsgi.service %{_tmpfilesdir}/uwsgi.conf -%else -%{_initddir}/uwsgi -%endif %dir %{_sysconfdir}/uwsgi.d -%if %{without systemd} -%attr(0775,uwsgi,uwsgi) %dir %{_localstatedir}/run/uwsgi -%endif %doc README README.Fedora CHANGELOG %license LICENSE @@ -1487,10 +1428,8 @@ %files -n uwsgi-logger-syslog %{_libdir}/uwsgi/syslog_plugin.so -%if %{with systemd} %files -n uwsgi-logger-systemd %{_libdir}/uwsgi/systemd_logger_plugin.so -%endif %if %{with zeromq} %files -n uwsgi-logger-zeromq @@ -1615,8 +1554,10 @@ %files -n uwsgi-plugin-pam %{_libdir}/uwsgi/pam_plugin.so +%if %{with php} %files -n uwsgi-plugin-php %{_libdir}/uwsgi/php_plugin.so +%endif %files -n uwsgi-plugin-pty %{_libdir}/uwsgi/pty_plugin.so @@ -1775,6 +1716,9 @@ %changelog +* Sun Jan 23 2022 Ralf Ertzinger <ralf> - 2.0.20-0.7 +- Update to 2.0.20 + * Wed Jan 27 2021 Fedora Release Engineering <releng> - 2.0.18-16 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Very nice, thanks for your work! Please feel free to import! I guess Fedora 35 (which is missing the package) is most important at the moment.
Import done: https://bodhi.fedoraproject.org/updates/FEDORA-2022-db55087b8f Closing report. Thanks!