diff --git a/www/Makefile b/www/Makefile index b82a03a159ce..1f363aaca031 100644 --- a/www/Makefile +++ b/www/Makefile @@ -1,2391 +1,2392 @@ COMMENT = Ports related to the World Wide Web SUBDIR += R-cran-RgoogleMaps SUBDIR += R-cran-Rook SUBDIR += R-cran-bslib SUBDIR += R-cran-crosstalk SUBDIR += R-cran-downloader SUBDIR += R-cran-gh SUBDIR += R-cran-htmlwidgets SUBDIR += R-cran-httpuv SUBDIR += R-cran-httr SUBDIR += R-cran-jquerylib SUBDIR += R-cran-rvest SUBDIR += R-cran-scrapeR SUBDIR += R-cran-selectr SUBDIR += R-cran-servr SUBDIR += R-cran-shiny SUBDIR += R-cran-webshot SUBDIR += Stikked SUBDIR += UniversalFeedCreator SUBDIR += adguardhome SUBDIR += adzap SUBDIR += alef-webfont SUBDIR += amfora SUBDIR += amphetadesk SUBDIR += analog SUBDIR += anyremote2html SUBDIR += anyterm SUBDIR += apache-mode.el SUBDIR += apache24 SUBDIR += apt-cacher-ng SUBDIR += aquatone SUBDIR += archiva SUBDIR += aria2 SUBDIR += asql SUBDIR += authelia SUBDIR += awffull SUBDIR += awstats SUBDIR += axis2 SUBDIR += bacula-web SUBDIR += baculum-api SUBDIR += baculum-common SUBDIR += baculum-web SUBDIR += baikal SUBDIR += bareos-webui SUBDIR += bareos18-webui SUBDIR += bareos19-webui SUBDIR += bareos20-webui SUBDIR += beehive SUBDIR += bkmrkconv SUBDIR += bluefish SUBDIR += bolt SUBDIR += bozohttpd SUBDIR += browsh SUBDIR += bugzilla2atom SUBDIR += buku SUBDIR += butterfly SUBDIR += c-icap SUBDIR += c-icap-modules SUBDIR += cadaver SUBDIR += caddy SUBDIR += calamaris SUBDIR += calamaris-devel SUBDIR += caldavzap SUBDIR += carbonapi SUBDIR += castget SUBDIR += castor SUBDIR += cgi-lib SUBDIR += cgi-lib.pl SUBDIR += cgicc SUBDIR += cgichk SUBDIR += cgiwrap SUBDIR += checkbot SUBDIR += chems SUBDIR += chisel SUBDIR += choqok SUBDIR += chpasswd SUBDIR += chrome-gnome-shell SUBDIR += chromium SUBDIR += cinny SUBDIR += civetweb SUBDIR += ckeditor SUBDIR += cl-lml SUBDIR += cl-lml-sbcl SUBDIR += clearsilver SUBDIR += closure-compiler SUBDIR += cntlm SUBDIR += codeigniter SUBDIR += colly SUBDIR += coppermine SUBDIR += cplanet SUBDIR += cpp-httplib SUBDIR += cpr SUBDIR += crawl SUBDIR += css-mode.el SUBDIR += cssed SUBDIR += csso SUBDIR += csstidy SUBDIR += ctemplate SUBDIR += cutelyst SUBDIR += darkhttpd SUBDIR += davical SUBDIR += davix SUBDIR += dddbl SUBDIR += ddgr SUBDIR += deno SUBDIR += devd SUBDIR += dfileserver SUBDIR += dhttpd SUBDIR += dillo2 SUBDIR += dojo SUBDIR += dokuwiki SUBDIR += dolibarr SUBDIR += dolibarr13 SUBDIR += domoticz SUBDIR += dooble SUBDIR += drupal7 SUBDIR += drupal7-wysiwyg SUBDIR += drupal8 SUBDIR += drupal9 SUBDIR += drush SUBDIR += dtse SUBDIR += e107 SUBDIR += e2guardian SUBDIR += edbrowse SUBDIR += eden SUBDIR += element-web SUBDIR += elgg SUBDIR += elinks SUBDIR += elixir-html_entities SUBDIR += elixir-html_sanitize_ex SUBDIR += elixir-httpoison SUBDIR += elixir-httpotion SUBDIR += elixir-joken SUBDIR += elixir-maru SUBDIR += elixir-phoenix SUBDIR += elixir-phoenix_ecto SUBDIR += elixir-phoenix_html SUBDIR += elixir-phoenix_pubsub SUBDIR += elixir-webassembly SUBDIR += emacs-w3m SUBDIR += encode-explorer SUBDIR += envoy SUBDIR += eolie SUBDIR += ephemera SUBDIR += epiphany SUBDIR += erlang-cowboy SUBDIR += erlang-cowlib SUBDIR += erlang-hackney SUBDIR += erlang-ibrowse SUBDIR += erlang-mochiweb SUBDIR += erlang-mochiweb-basho SUBDIR += erlang-webmachine SUBDIR += fabio SUBDIR += falkon SUBDIR += fancybox SUBDIR += faup SUBDIR += fcgi SUBDIR += fcgiwrap SUBDIR += ffproxy SUBDIR += ffsend SUBDIR += fgallery SUBDIR += filtron SUBDIR += firedm SUBDIR += firefox SUBDIR += firefox-esr SUBDIR += flat-frog SUBDIR += flexget SUBDIR += flickcurl SUBDIR += fnord SUBDIR += formication SUBDIR += foswiki SUBDIR += fpc-fastcgi SUBDIR += fpc-googleapi SUBDIR += fpc-httpd22 SUBDIR += fpc-httpd24 SUBDIR += fpc-libmicrohttpd SUBDIR += fpc-webidl SUBDIR += free-sa-devel SUBDIR += fswiki SUBDIR += fusionpbx SUBDIR += g-cows SUBDIR += g-gcl SUBDIR += gallery-dl SUBDIR += gallery2 SUBDIR += garage SUBDIR += gatling SUBDIR += gauche-makiki SUBDIR += gecko-mediaplayer SUBDIR += geckodriver SUBDIR += geneweb SUBDIR += geolizer SUBDIR += get_flash_videos SUBDIR += getleft SUBDIR += gist SUBDIR += gitea SUBDIR += gitlab-ce SUBDIR += gitlab-pages SUBDIR += gitlab-workhorse SUBDIR += glassfish SUBDIR += glassfish4 SUBDIR += glewlwyd SUBDIR += glpi SUBDIR += gnome-user-share SUBDIR += go-www SUBDIR += gobuffalo SUBDIR += gohugo SUBDIR += googlebook_dl SUBDIR += googler SUBDIR += goose SUBDIR += gophernicus SUBDIR += gopherus SUBDIR += gotty SUBDIR += gpx2map SUBDIR += grafana7 SUBDIR += grafana8 SUBDIR += grails SUBDIR += gregarius SUBDIR += groupoffice SUBDIR += grr SUBDIR += gstreamer1-plugins-neon SUBDIR += gtkhtml4 SUBDIR += guacamole-client SUBDIR += guile-www SUBDIR += gurl SUBDIR += gwsocket SUBDIR += h2c SUBDIR += h2o SUBDIR += h2o-devel SUBDIR += habari SUBDIR += hiawatha SUBDIR += hiawatha-monitor SUBDIR += horde-ansel SUBDIR += horde-base SUBDIR += horde-passwd SUBDIR += horde-trean SUBDIR += horde-wicked SUBDIR += hotcrp SUBDIR += hs-DAV SUBDIR += hs-hjsmin SUBDIR += hs-postgrest SUBDIR += hs-wai-app-static SUBDIR += hs-yesod-bin SUBDIR += htdigest SUBDIR += htdump SUBDIR += html2hdml SUBDIR += html2wml SUBDIR += htmlcompressor SUBDIR += htmlcxx SUBDIR += httest SUBDIR += http-parser SUBDIR += http_get SUBDIR += http_load SUBDIR += http_post SUBDIR += httpasyncclient SUBDIR += httpclient SUBDIR += httpcore SUBDIR += httptunnel SUBDIR += httrack SUBDIR += hypermail SUBDIR += igal2 SUBDIR += ikiwiki SUBDIR += ilias SUBDIR += ilias6 SUBDIR += interchange SUBDIR += iridium SUBDIR += itop SUBDIR += janus SUBDIR += jericho-html SUBDIR += jesred SUBDIR += jetty8 SUBDIR += jetty9 SUBDIR += jira-cli SUBDIR += jitsi-meet SUBDIR += jmeter SUBDIR += joomla3 SUBDIR += jwt-cli SUBDIR += kanboard SUBDIR += kannel SUBDIR += kannel-sqlbox SUBDIR += kcgi SUBDIR += kdsoap SUBDIR += kf5-kdewebkit SUBDIR += kf5-khtml SUBDIR += kf5-kjs SUBDIR += kf5-kjsembed SUBDIR += kineto SUBDIR += kiwix-tools SUBDIR += kohana SUBDIR += kristall SUBDIR += lagrange SUBDIR += larbin SUBDIR += libapreq2 SUBDIR += libdatachannel SUBDIR += libdom SUBDIR += libecap SUBDIR += libepc SUBDIR += libevhtp SUBDIR += libhsts SUBDIR += libhubbub SUBDIR += libjwt SUBDIR += libmicrohttpd SUBDIR += libnghttp2 SUBDIR += libnghttp3 SUBDIR += libresonic-standalone SUBDIR += librespeed SUBDIR += librtcdcpp SUBDIR += libwpe SUBDIR += libwww SUBDIR += lightsquid SUBDIR += lighttpd SUBDIR += lighttpd-mod_h264_streaming SUBDIR += limesurvey SUBDIR += linklint SUBDIR += links SUBDIR += links1 SUBDIR += linux-c7-qtwebkit SUBDIR += linux-opera SUBDIR += litmus SUBDIR += ljdeps SUBDIR += llhttp SUBDIR += logswan SUBDIR += logtools SUBDIR += ls-qpack SUBDIR += lua-resty-core SUBDIR += lua-resty-http SUBDIR += lua-resty-lrucache SUBDIR += luakit SUBDIR += luakit-devel SUBDIR += lux SUBDIR += lychee SUBDIR += lynx SUBDIR += lynx-current SUBDIR += madsonic SUBDIR += man2web SUBDIR += mathjax SUBDIR += mathjax3 SUBDIR += mathopd SUBDIR += matomo SUBDIR += mattermost-server SUBDIR += mattermost-webapp SUBDIR += mediawiki135 SUBDIR += mediawiki136 SUBDIR += mediawiki137 SUBDIR += mergelog SUBDIR += mhonarc SUBDIR += micro_httpd SUBDIR += middleman SUBDIR += midori SUBDIR += mimetex SUBDIR += mini_httpd SUBDIR += miniflux SUBDIR += minio SUBDIR += minio-client SUBDIR += miniserve SUBDIR += mirrorselect SUBDIR += mitmproxy SUBDIR += mknmz-wwwoffle SUBDIR += mnogosearch SUBDIR += mod_amazon_proxy SUBDIR += mod_asn SUBDIR += mod_auth_cas SUBDIR += mod_auth_cookie_mysql2 SUBDIR += mod_auth_gssapi SUBDIR += mod_auth_kerb2 SUBDIR += mod_auth_mellon SUBDIR += mod_auth_mysql2 SUBDIR += mod_auth_mysql_another SUBDIR += mod_auth_openid SUBDIR += mod_auth_openidc SUBDIR += mod_auth_pam2 SUBDIR += mod_auth_pgsql2 SUBDIR += mod_auth_pubtkt SUBDIR += mod_auth_tkt SUBDIR += mod_auth_xradius SUBDIR += mod_authnz_external24 SUBDIR += mod_cfg_ldap SUBDIR += mod_cloudflare SUBDIR += mod_dav_svn SUBDIR += mod_defensible SUBDIR += mod_dnssd SUBDIR += mod_evasive SUBDIR += mod_fastcgi SUBDIR += mod_fcgid SUBDIR += mod_fileiri SUBDIR += mod_gnutls SUBDIR += mod_h264_streaming SUBDIR += mod_http2 SUBDIR += mod_jk SUBDIR += mod_limitipconn2 SUBDIR += mod_log_sql SUBDIR += mod_maxminddb SUBDIR += mod_memcache SUBDIR += mod_memcache_block SUBDIR += mod_mono SUBDIR += mod_mpm_itk SUBDIR += mod_perl2 SUBDIR += mod_php74 SUBDIR += mod_php80 SUBDIR += mod_php81 SUBDIR += mod_proctitle SUBDIR += mod_qos SUBDIR += mod_realdoc SUBDIR += mod_reproxy SUBDIR += mod_rivet SUBDIR += mod_rpaf2 SUBDIR += mod_scgi SUBDIR += mod_security SUBDIR += mod_setenvifplus SUBDIR += mod_tidy SUBDIR += mod_umask SUBDIR += mod_webauth SUBDIR += mod_webkit SUBDIR += mod_wsgi4 SUBDIR += mod_xsendfile SUBDIR += mohawk SUBDIR += moinmoin SUBDIR += moinmoincli SUBDIR += mongoose SUBDIR += mongrel2 SUBDIR += monolith SUBDIR += moodle310 SUBDIR += moodle311 SUBDIR += moodle39 SUBDIR += morty SUBDIR += mozplugger SUBDIR += multisort SUBDIR += multiwatch SUBDIR += mybb SUBDIR += mysqlphp2postgres SUBDIR += mythplugin-mythweb SUBDIR += nanoblogger SUBDIR += nanoblogger-extra SUBDIR += neon SUBDIR += netrik SUBDIR += netstiff SUBDIR += netsurf SUBDIR += newsboat SUBDIR += nextcloud SUBDIR += nextcloud-appointments SUBDIR += nextcloud-calendar SUBDIR += nextcloud-contacts SUBDIR += nextcloud-deck SUBDIR += nextcloud-forms SUBDIR += nextcloud-groupfolders SUBDIR += nextcloud-notes SUBDIR += nextcloud-tasks SUBDIR += nghttp2 SUBDIR += nginx SUBDIR += nginx-devel SUBDIR += nginx-full SUBDIR += nginx-lite SUBDIR += nginx-naxsi SUBDIR += nginx-prometheus-exporter SUBDIR += nginx-ultimate-bad-bot-blocker SUBDIR += nginx-vts-exporter SUBDIR += nibbleblog SUBDIR += nift SUBDIR += node SUBDIR += node14 SUBDIR += node16 SUBDIR += nostromo SUBDIR += novnc SUBDIR += novnc-websockify SUBDIR += npapi-xine SUBDIR += npc SUBDIR += npm SUBDIR += npm-node14 SUBDIR += npm-node16 SUBDIR += npm-node17 SUBDIR += nspluginwrapper SUBDIR += oauth2-proxy SUBDIR += obhttpd SUBDIR += oneshot SUBDIR += onionbalance SUBDIR += onionshare SUBDIR += onlyoffice-documentserver SUBDIR += openarc SUBDIR += opencart SUBDIR += openresty SUBDIR += orangehrm SUBDIR += osrm-backend SUBDIR += osticket SUBDIR += ot-recorder SUBDIR += otrs SUBDIR += otter-browser SUBDIR += owncast SUBDIR += owncloud SUBDIR += p5-AMF-Perl SUBDIR += p5-Acme-Monta SUBDIR += p5-Amon2 SUBDIR += p5-Amon2-Lite SUBDIR += p5-Amon2-Plugin-LogDispatch SUBDIR += p5-Amon2-Plugin-Web-CSRFDefender SUBDIR += p5-Amon2-Plugin-Web-MobileAgent SUBDIR += p5-Any-Template SUBDIR += p5-Any-URI-Escape SUBDIR += p5-AnyEvent-HTTP SUBDIR += p5-AnyEvent-HTTP-LWP-UserAgent SUBDIR += p5-AnyEvent-HTTPD SUBDIR += p5-AnyEvent-ReverseHTTP SUBDIR += p5-AnyEvent-SCGI SUBDIR += p5-AnyEvent-WebSocket-Client SUBDIR += p5-Apache-ASP SUBDIR += p5-Apache-Admin-Config SUBDIR += p5-Apache-AuthCookie SUBDIR += p5-Apache-AuthTicket SUBDIR += p5-Apache-Clean2 SUBDIR += p5-Apache-Config-Preproc SUBDIR += p5-Apache-ConfigFile SUBDIR += p5-Apache-ConfigParser SUBDIR += p5-Apache-DB SUBDIR += p5-Apache-DBI SUBDIR += p5-Apache-Defaults SUBDIR += p5-Apache-Htgroup SUBDIR += p5-Apache-LogFormat-Compiler SUBDIR += p5-Apache-MP3 SUBDIR += p5-Apache-ParseFormData SUBDIR += p5-Apache-Profiler SUBDIR += p5-Apache-Session SUBDIR += p5-Apache-Session-PHP SUBDIR += p5-Apache-Session-SQLite3 SUBDIR += p5-Apache-Session-SharedMem SUBDIR += p5-Apache-Session-Wrapper SUBDIR += p5-Apache-SessionX SUBDIR += p5-Apache-Singleton SUBDIR += p5-Apache2-SiteControl SUBDIR += p5-ApacheBench SUBDIR += p5-App-Nopaste SUBDIR += p5-App-gist SUBDIR += p5-Ark SUBDIR += p5-Bigtop SUBDIR += p5-Blog-Spam SUBDIR += p5-Browser-Open SUBDIR += p5-Business-PayPal SUBDIR += p5-CGI SUBDIR += p5-CGI-Ajax SUBDIR += p5-CGI-Application SUBDIR += p5-CGI-Application-Dispatch SUBDIR += p5-CGI-Application-Dispatch-Server SUBDIR += p5-CGI-Application-PSGI SUBDIR += p5-CGI-Application-Plugin-AnyTemplate SUBDIR += p5-CGI-Application-Plugin-Apache SUBDIR += p5-CGI-Application-Plugin-Authentication SUBDIR += p5-CGI-Application-Plugin-Authorization SUBDIR += p5-CGI-Application-Plugin-AutoRunmode SUBDIR += p5-CGI-Application-Plugin-Config-YAML SUBDIR += p5-CGI-Application-Plugin-ConfigAuto SUBDIR += p5-CGI-Application-Plugin-DBH SUBDIR += p5-CGI-Application-Plugin-DebugScreen SUBDIR += p5-CGI-Application-Plugin-DevPopup SUBDIR += p5-CGI-Application-Plugin-Forward SUBDIR += p5-CGI-Application-Plugin-HTDot SUBDIR += p5-CGI-Application-Plugin-HTMLPrototype SUBDIR += p5-CGI-Application-Plugin-HtmlTidy SUBDIR += p5-CGI-Application-Plugin-JSON SUBDIR += p5-CGI-Application-Plugin-LinkIntegrity SUBDIR += p5-CGI-Application-Plugin-LogDispatch SUBDIR += p5-CGI-Application-Plugin-MessageStack SUBDIR += p5-CGI-Application-Plugin-Redirect SUBDIR += p5-CGI-Application-Plugin-Session SUBDIR += p5-CGI-Application-Plugin-Stream SUBDIR += p5-CGI-Application-Plugin-TT SUBDIR += p5-CGI-Application-Plugin-ValidateRM SUBDIR += p5-CGI-Application-Plugin-ViewCode SUBDIR += p5-CGI-Application-Server SUBDIR += p5-CGI-ArgChecker SUBDIR += p5-CGI-Builder SUBDIR += p5-CGI-Builder-TT2 SUBDIR += p5-CGI-Cache SUBDIR += p5-CGI-Compile SUBDIR += p5-CGI-Compress-Gzip SUBDIR += p5-CGI-Cookie-Splitter SUBDIR += p5-CGI-Cookie-XS SUBDIR += p5-CGI-Deurl-XS SUBDIR += p5-CGI-Emulate-PSGI SUBDIR += p5-CGI-EncryptForm SUBDIR += p5-CGI-Enurl SUBDIR += p5-CGI-Ex SUBDIR += p5-CGI-Expand SUBDIR += p5-CGI-ExtDirect SUBDIR += p5-CGI-FCKeditor SUBDIR += p5-CGI-Fast SUBDIR += p5-CGI-FastTemplate SUBDIR += p5-CGI-FormBuilder SUBDIR += p5-CGI-Framework SUBDIR += p5-CGI-Kwiki SUBDIR += p5-CGI-Lite SUBDIR += p5-CGI-Minimal SUBDIR += p5-CGI-PSGI SUBDIR += p5-CGI-Pager SUBDIR += p5-CGI-Prototype SUBDIR += p5-CGI-Response SUBDIR += p5-CGI-SSI SUBDIR += p5-CGI-Session SUBDIR += p5-CGI-Session-ExpireSessions SUBDIR += p5-CGI-Simple SUBDIR += p5-CGI-SpeedyCGI SUBDIR += p5-CGI-Struct SUBDIR += p5-CGI-Thin SUBDIR += p5-CGI-Tiny SUBDIR += p5-CGI-Untaint SUBDIR += p5-CGI-Untaint-date SUBDIR += p5-CGI-Untaint-email SUBDIR += p5-CGI-Upload SUBDIR += p5-CGI-Utils SUBDIR += p5-CGI-XMLApplication SUBDIR += p5-CIF-Client SUBDIR += p5-CSS-DOM SUBDIR += p5-CSS-Inliner SUBDIR += p5-Catalyst-Action-REST SUBDIR += p5-Catalyst-Action-RenderView SUBDIR += p5-Catalyst-Action-Serialize-XML-Hash-LX SUBDIR += p5-Catalyst-ActionRole-ACL SUBDIR += p5-Catalyst-Authentication-Credential-HTTP SUBDIR += p5-Catalyst-Authentication-Credential-OpenID SUBDIR += p5-Catalyst-Authentication-Store-DBIx-Class SUBDIR += p5-Catalyst-Authentication-Store-LDAP SUBDIR += p5-Catalyst-Component-ACCEPT_CONTEXT SUBDIR += p5-Catalyst-Component-InstancePerContext SUBDIR += p5-Catalyst-Controller-ActionRole SUBDIR += p5-Catalyst-Controller-BindLex SUBDIR += p5-Catalyst-Controller-FormBuilder SUBDIR += p5-Catalyst-Controller-HTML-FormFu SUBDIR += p5-Catalyst-Controller-RateLimit SUBDIR += p5-Catalyst-Controller-RequestToken SUBDIR += p5-Catalyst-Controller-SOAP SUBDIR += p5-Catalyst-Devel SUBDIR += p5-Catalyst-DispatchType-Regex SUBDIR += p5-Catalyst-Engine-Apache SUBDIR += p5-Catalyst-Engine-HTTP-Prefork SUBDIR += p5-Catalyst-Engine-PSGI SUBDIR += p5-Catalyst-Enzyme SUBDIR += p5-Catalyst-Helper-Controller-Scaffold SUBDIR += p5-Catalyst-Manual SUBDIR += p5-Catalyst-Model-Adaptor SUBDIR += p5-Catalyst-Model-CDBI SUBDIR += p5-Catalyst-Model-CDBI-Plain SUBDIR += p5-Catalyst-Model-CDBI-Sweet SUBDIR += p5-Catalyst-Model-DBIC-Plain SUBDIR += p5-Catalyst-Model-DBIC-Schema SUBDIR += p5-Catalyst-Model-DynamicAdaptor SUBDIR += p5-Catalyst-Model-LDAP SUBDIR += p5-Catalyst-Model-Memcached SUBDIR += p5-Catalyst-Model-Oryx SUBDIR += p5-Catalyst-Model-Tarantool SUBDIR += p5-Catalyst-Model-XML-Feed SUBDIR += p5-Catalyst-Model-Xapian SUBDIR += p5-Catalyst-Plugin-AtomServer SUBDIR += p5-Catalyst-Plugin-Authentication SUBDIR += p5-Catalyst-Plugin-Authentication-CDBI SUBDIR += p5-Catalyst-Plugin-Authentication-OpenID SUBDIR += p5-Catalyst-Plugin-Authentication-Store-Htpasswd SUBDIR += p5-Catalyst-Plugin-Authorization-ACL SUBDIR += p5-Catalyst-Plugin-Authorization-Roles SUBDIR += p5-Catalyst-Plugin-AutoCRUD SUBDIR += p5-Catalyst-Plugin-Browser SUBDIR += p5-Catalyst-Plugin-C3 SUBDIR += p5-Catalyst-Plugin-Cache SUBDIR += p5-Catalyst-Plugin-Cache-FastMmap SUBDIR += p5-Catalyst-Plugin-Cache-Memcached SUBDIR += p5-Catalyst-Plugin-Cache-Memcached-Fast SUBDIR += p5-Catalyst-Plugin-Captcha SUBDIR += p5-Catalyst-Plugin-ConfigLoader SUBDIR += p5-Catalyst-Plugin-ConfigLoader-Environment SUBDIR += p5-Catalyst-Plugin-CookiedSession SUBDIR += p5-Catalyst-Plugin-DateTime SUBDIR += p5-Catalyst-Plugin-DefaultEnd SUBDIR += p5-Catalyst-Plugin-Email SUBDIR += p5-Catalyst-Plugin-ErrorCatcher SUBDIR += p5-Catalyst-Plugin-FillInForm SUBDIR += p5-Catalyst-Plugin-FormBuilder SUBDIR += p5-Catalyst-Plugin-FormValidator SUBDIR += p5-Catalyst-Plugin-I18N SUBDIR += p5-Catalyst-Plugin-Log-Dispatch SUBDIR += p5-Catalyst-Plugin-Log-Handler SUBDIR += p5-Catalyst-Plugin-LogWarnings SUBDIR += p5-Catalyst-Plugin-PageCache SUBDIR += p5-Catalyst-Plugin-Params-Nested SUBDIR += p5-Catalyst-Plugin-Pluggable SUBDIR += p5-Catalyst-Plugin-Prototype SUBDIR += p5-Catalyst-Plugin-RunAfterRequest SUBDIR += p5-Catalyst-Plugin-Scheduler SUBDIR += p5-Catalyst-Plugin-Server SUBDIR += p5-Catalyst-Plugin-Session SUBDIR += p5-Catalyst-Plugin-Session-FastMmap SUBDIR += p5-Catalyst-Plugin-Session-PerUser SUBDIR += p5-Catalyst-Plugin-Session-State-Cookie SUBDIR += p5-Catalyst-Plugin-Session-State-URI SUBDIR += p5-Catalyst-Plugin-Session-Store-Cache SUBDIR += p5-Catalyst-Plugin-Session-Store-DBI SUBDIR += p5-Catalyst-Plugin-Session-Store-DBIC SUBDIR += p5-Catalyst-Plugin-Session-Store-Delegate SUBDIR += p5-Catalyst-Plugin-Session-Store-FastMmap SUBDIR += p5-Catalyst-Plugin-Session-Store-File SUBDIR += p5-Catalyst-Plugin-Session-Store-Memcached SUBDIR += p5-Catalyst-Plugin-Session-Store-Memcached-Fast SUBDIR += p5-Catalyst-Plugin-Setenv SUBDIR += p5-Catalyst-Plugin-SmartURI SUBDIR += p5-Catalyst-Plugin-StackTrace SUBDIR += p5-Catalyst-Plugin-Static SUBDIR += p5-Catalyst-Plugin-Static-Simple SUBDIR += p5-Catalyst-Plugin-StatusMessage SUBDIR += p5-Catalyst-Plugin-SubRequest SUBDIR += p5-Catalyst-Plugin-Textile SUBDIR += p5-Catalyst-Plugin-Unicode SUBDIR += p5-Catalyst-Plugin-XMLRPC SUBDIR += p5-Catalyst-Runtime SUBDIR += p5-Catalyst-TraitFor-Controller-DBIC-DoesPaging SUBDIR += p5-Catalyst-TraitFor-Request-BrowserDetect SUBDIR += p5-Catalyst-View-ClearSilver SUBDIR += p5-Catalyst-View-Email SUBDIR += p5-Catalyst-View-GraphViz SUBDIR += p5-Catalyst-View-HTML-Template SUBDIR += p5-Catalyst-View-HTML-Template-Compiled SUBDIR += p5-Catalyst-View-JSON SUBDIR += p5-Catalyst-View-Jemplate SUBDIR += p5-Catalyst-View-Mason SUBDIR += p5-Catalyst-View-REST-XML SUBDIR += p5-Catalyst-View-RRDGraph SUBDIR += p5-Catalyst-View-TT SUBDIR += p5-Catalyst-View-TT-Alloy SUBDIR += p5-Catalyst-View-TT-ControllerLocal SUBDIR += p5-Catalyst-View-Template-Declare SUBDIR += p5-Catalyst-View-Templated SUBDIR += p5-Catalyst-View-XML-Feed SUBDIR += p5-Catalyst-View-XML-Simple SUBDIR += p5-Catalyst-View-XSLT SUBDIR += p5-Catalyst-View-vCard SUBDIR += p5-CatalystX-AppBuilder SUBDIR += p5-CatalystX-Component-Traits SUBDIR += p5-CatalystX-InjectComponent SUBDIR += p5-CatalystX-LeakChecker SUBDIR += p5-CatalystX-Profile SUBDIR += p5-CatalystX-REPL SUBDIR += p5-CatalystX-RoleApplicator SUBDIR += p5-CatalystX-SimpleLogin SUBDIR += p5-CatalystX-VirtualComponents SUBDIR += p5-Class-DBI-FromForm SUBDIR += p5-ClearSilver SUBDIR += p5-Compress-LeadingBlankSpaces SUBDIR += p5-Continuity SUBDIR += p5-Cookie-Baker SUBDIR += p5-Corona SUBDIR += p5-Dancer SUBDIR += p5-Dancer-Logger-Log4perl SUBDIR += p5-Dancer-Plugin-CORS SUBDIR += p5-Dancer-Plugin-ExtDirect SUBDIR += p5-Dancer-Plugin-Feed SUBDIR += p5-Dancer-Plugin-FlashMessage SUBDIR += p5-Dancer-Plugin-Lexicon SUBDIR += p5-Dancer-Plugin-Memcached SUBDIR += p5-Dancer-Plugin-REST SUBDIR += p5-Dancer-Plugin-RPC SUBDIR += p5-Dancer-Plugin-SiteMap SUBDIR += p5-Dancer-Plugin-Swagger SUBDIR += p5-Dancer-Plugin-ValidationClass SUBDIR += p5-Dancer-Session-Cookie SUBDIR += p5-Dancer-Template-Xslate SUBDIR += p5-Dancer2 SUBDIR += p5-Dancer2-Plugin-Ajax SUBDIR += p5-Dancer2-Plugin-Deferred SUBDIR += p5-Dancer2-Plugin-FormValidator SUBDIR += p5-Dancer2-Plugin-Interchange6 SUBDIR += p5-Dancer2-Plugin-Path-Class SUBDIR += p5-Data-TreeDumper-Renderer-DHTML SUBDIR += p5-Data-Validate-URI SUBDIR += p5-Emplacken SUBDIR += p5-FAQ-OMatic SUBDIR += p5-FCGI SUBDIR += p5-FCGI-Async SUBDIR += p5-FCGI-Client SUBDIR += p5-FCGI-Engine SUBDIR += p5-FCGI-ProcManager SUBDIR += p5-FCGI-Spawn SUBDIR += p5-FEAR-API SUBDIR += p5-Facebook-Graph SUBDIR += p5-Feed-Find SUBDIR += p5-Feersum SUBDIR += p5-File-Mork SUBDIR += p5-Firefox-Marionette SUBDIR += p5-Flea SUBDIR += p5-Flickr-API SUBDIR += p5-Flickr-Upload SUBDIR += p5-Fliggy SUBDIR += p5-Furl SUBDIR += p5-FurlX-Coro SUBDIR += p5-Gantry SUBDIR += p5-Gazelle SUBDIR += p5-Geo-Caching SUBDIR += p5-Google-Search SUBDIR += p5-Gungho SUBDIR += p5-GunghoX-FollowLinks SUBDIR += p5-HTML-Adsense SUBDIR += p5-HTML-Breadcrumbs SUBDIR += p5-HTML-CalendarMonthSimple SUBDIR += p5-HTML-Chunks SUBDIR += p5-HTML-Clean SUBDIR += p5-HTML-ContentExtractor SUBDIR += p5-HTML-DOM SUBDIR += p5-HTML-Declare SUBDIR += p5-HTML-Defaultify SUBDIR += p5-HTML-Diff SUBDIR += p5-HTML-Display SUBDIR += p5-HTML-Element-Extended SUBDIR += p5-HTML-Element-Library SUBDIR += p5-HTML-Element-Replacer SUBDIR += p5-HTML-Encoding SUBDIR += p5-HTML-Escape SUBDIR += p5-HTML-ExtractContent SUBDIR += p5-HTML-ExtractMain SUBDIR += p5-HTML-Field SUBDIR += p5-HTML-FillInForm SUBDIR += p5-HTML-FillInForm-ForceUTF8 SUBDIR += p5-HTML-FillInForm-Lite SUBDIR += p5-HTML-Form SUBDIR += p5-HTML-FormFu SUBDIR += p5-HTML-FormFu-Imager SUBDIR += p5-HTML-FormFu-Model-DBIC SUBDIR += p5-HTML-FormFu-MultiForm SUBDIR += p5-HTML-FormHandler SUBDIR += p5-HTML-FromANSI SUBDIR += p5-HTML-FromText SUBDIR += p5-HTML-GenToc SUBDIR += p5-HTML-GenerateUtil SUBDIR += p5-HTML-GoogleMaps SUBDIR += p5-HTML-Gumbo SUBDIR += p5-HTML-Highlight SUBDIR += p5-HTML-LinkExtractor SUBDIR += p5-HTML-LinkList SUBDIR += p5-HTML-Lint SUBDIR += p5-HTML-Location SUBDIR += p5-HTML-Macro SUBDIR += p5-HTML-Mason SUBDIR += p5-HTML-Mason-PSGIHandler SUBDIR += p5-HTML-MobileConverter SUBDIR += p5-HTML-Pager SUBDIR += p5-HTML-Parser SUBDIR += p5-HTML-Parser-Simple SUBDIR += p5-HTML-Perlinfo SUBDIR += p5-HTML-PrettyPrinter SUBDIR += p5-HTML-Prototype SUBDIR += p5-HTML-Query SUBDIR += p5-HTML-QuickCheck SUBDIR += p5-HTML-RSSAutodiscovery SUBDIR += p5-HTML-ResolveLink SUBDIR += p5-HTML-Restrict SUBDIR += p5-HTML-RobotsMETA SUBDIR += p5-HTML-Scrubber SUBDIR += p5-HTML-Seamstress SUBDIR += p5-HTML-Selector-XPath SUBDIR += p5-HTML-Shakan SUBDIR += p5-HTML-SimpleLinkExtor SUBDIR += p5-HTML-SimpleParse SUBDIR += p5-HTML-StickyQuery SUBDIR += p5-HTML-StickyQuery-DoCoMoGUID SUBDIR += p5-HTML-Stream SUBDIR += p5-HTML-Strip SUBDIR += p5-HTML-StripScripts SUBDIR += p5-HTML-StripScripts-Parser SUBDIR += p5-HTML-Summary SUBDIR += p5-HTML-Table SUBDIR += p5-HTML-TableContentParser SUBDIR += p5-HTML-TableExtract SUBDIR += p5-HTML-TableLayout SUBDIR += p5-HTML-TableParser SUBDIR += p5-HTML-TableTiler SUBDIR += p5-HTML-TagCloud SUBDIR += p5-HTML-TagCloud-Extended SUBDIR += p5-HTML-TagParser SUBDIR += p5-HTML-Tagset SUBDIR += p5-HTML-Template SUBDIR += p5-HTML-Template-Associate SUBDIR += p5-HTML-Template-Compiled SUBDIR += p5-HTML-Template-Expr SUBDIR += p5-HTML-Template-HashWrapper SUBDIR += p5-HTML-Template-JIT SUBDIR += p5-HTML-Template-Pluggable SUBDIR += p5-HTML-Template-Pro SUBDIR += p5-HTML-Toc SUBDIR += p5-HTML-TokeParser-Simple SUBDIR += p5-HTML-Tree SUBDIR += p5-HTML-TreeBuilder-LibXML SUBDIR += p5-HTML-TreeBuilder-XPath SUBDIR += p5-HTML-Widgets-SelectLayers SUBDIR += p5-HTML-WikiConverter SUBDIR += p5-HTML-WikiConverter-DokuWiki SUBDIR += p5-HTML-WikiConverter-GoogleCode SUBDIR += p5-HTML-WikiConverter-Kwiki SUBDIR += p5-HTML-WikiConverter-Markdown SUBDIR += p5-HTML-WikiConverter-MediaWiki SUBDIR += p5-HTML-WikiConverter-MoinMoin SUBDIR += p5-HTML-WikiConverter-Oddmuse SUBDIR += p5-HTML-WikiConverter-PbWiki SUBDIR += p5-HTML-WikiConverter-PhpWiki SUBDIR += p5-HTML-WikiConverter-PmWiki SUBDIR += p5-HTML-WikiConverter-SnipSnap SUBDIR += p5-HTML-WikiConverter-Socialtext SUBDIR += p5-HTML-WikiConverter-TikiWiki SUBDIR += p5-HTML-WikiConverter-UseMod SUBDIR += p5-HTML-WikiConverter-WakkaWiki SUBDIR += p5-HTML-WikiConverter-WikkaWiki SUBDIR += p5-HTML5-DOM SUBDIR += p5-HTTP-AnyUA SUBDIR += p5-HTTP-Async SUBDIR += p5-HTTP-Body SUBDIR += p5-HTTP-BrowserDetect SUBDIR += p5-HTTP-Cache-Transparent SUBDIR += p5-HTTP-CookieJar SUBDIR += p5-HTTP-Cookies SUBDIR += p5-HTTP-Cookies-Mozilla SUBDIR += p5-HTTP-Cookies-iCab SUBDIR += p5-HTTP-Cookies-w3m SUBDIR += p5-HTTP-DAV SUBDIR += p5-HTTP-Daemon SUBDIR += p5-HTTP-Daemon-SSL SUBDIR += p5-HTTP-Date SUBDIR += p5-HTTP-Engine SUBDIR += p5-HTTP-Engine-Middleware SUBDIR += p5-HTTP-Entity-Parser SUBDIR += p5-HTTP-Exception SUBDIR += p5-HTTP-HeaderParser-XS SUBDIR += p5-HTTP-Headers-ActionPack SUBDIR += p5-HTTP-Headers-Fast SUBDIR += p5-HTTP-Link-Parser SUBDIR += p5-HTTP-Lite SUBDIR += p5-HTTP-MHTTP SUBDIR += p5-HTTP-Message SUBDIR += p5-HTTP-MobileAgent SUBDIR += p5-HTTP-MobileAgent-Plugin-Charset SUBDIR += p5-HTTP-MobileAgent-Plugin-Locator SUBDIR += p5-HTTP-MultiPartParser SUBDIR += p5-HTTP-Negotiate SUBDIR += p5-HTTP-Parser SUBDIR += p5-HTTP-Parser-XS SUBDIR += p5-HTTP-Proxy SUBDIR += p5-HTTP-ProxyPAC SUBDIR += p5-HTTP-Recorder SUBDIR += p5-HTTP-Request-AsCGI SUBDIR += p5-HTTP-Request-Params SUBDIR += p5-HTTP-Response-Encoding SUBDIR += p5-HTTP-Router SUBDIR += p5-HTTP-Server-Simple SUBDIR += p5-HTTP-Server-Simple-Authen SUBDIR += p5-HTTP-Server-Simple-Mason SUBDIR += p5-HTTP-Server-Simple-PSGI SUBDIR += p5-HTTP-Server-Simple-Recorder SUBDIR += p5-HTTP-Server-Simple-Static SUBDIR += p5-HTTP-Session SUBDIR += p5-HTTP-Session-State-MobileAgentID SUBDIR += p5-HTTP-Session-Store-DBI SUBDIR += p5-HTTP-Session2 SUBDIR += p5-HTTP-Simple SUBDIR += p5-HTTP-SimpleLinkChecker SUBDIR += p5-HTTP-Size SUBDIR += p5-HTTP-Thin SUBDIR += p5-HTTP-Throwable SUBDIR += p5-HTTP-Tiny SUBDIR += p5-HTTP-Tiny-Multipart SUBDIR += p5-HTTP-Tiny-SPDY SUBDIR += p5-HTTP-Tiny-UA SUBDIR += p5-HTTP-Tiny-UNIX SUBDIR += p5-HTTP-WebTest SUBDIR += p5-HTTP-XSCookies SUBDIR += p5-HTTPD-Log-Filter SUBDIR += p5-HTTPD-User-Manage SUBDIR += p5-Hijk SUBDIR += p5-I18N-AcceptLanguage SUBDIR += p5-IMDB-Film SUBDIR += p5-Image-Delivery SUBDIR += p5-Interchange6 SUBDIR += p5-JE SUBDIR += p5-JSON-API SUBDIR += p5-JSON-WebToken SUBDIR += p5-Jemplate SUBDIR += p5-Jifty SUBDIR += p5-LWP-Authen-Negotiate SUBDIR += p5-LWP-Authen-OAuth SUBDIR += p5-LWP-Authen-OAuth2 SUBDIR += p5-LWP-Authen-Wsse SUBDIR += p5-LWP-ConnCache-MaxKeepAliveRequests SUBDIR += p5-LWP-MediaTypes SUBDIR += p5-LWP-Online SUBDIR += p5-LWP-Protocol-PSGI SUBDIR += p5-LWP-Protocol-connect SUBDIR += p5-LWP-Protocol-http10 SUBDIR += p5-LWP-Protocol-https SUBDIR += p5-LWP-Protocol-socks SUBDIR += p5-LWP-UserAgent-Determined SUBDIR += p5-LWP-UserAgent-POE SUBDIR += p5-LWP-UserAgent-WithCache SUBDIR += p5-LWPx-ParanoidAgent SUBDIR += p5-LWPx-TimedHTTP SUBDIR += p5-Markup-Perl SUBDIR += p5-Mason SUBDIR += p5-MasonX-Interp-WithCallbacks SUBDIR += p5-MasonX-Profiler SUBDIR += p5-MasonX-Request-WithApacheSession SUBDIR += p5-MasonX-WebApp SUBDIR += p5-Maypole SUBDIR += p5-Maypole-Authentication-UserSessionCookie SUBDIR += p5-Maypole-Component SUBDIR += p5-McBain SUBDIR += p5-McBain-WithPSGI SUBDIR += p5-MediaWiki SUBDIR += p5-MediaWiki-API SUBDIR += p5-Mobile-UserAgent SUBDIR += p5-ModPerl-VersionUtil SUBDIR += p5-Mojo-IOLoop-Delay SUBDIR += p5-Mojo-IOLoop-ForkCall SUBDIR += p5-Mojo-Server-FastCGI SUBDIR += p5-Mojo-Weixin SUBDIR += p5-MojoMojo SUBDIR += p5-MojoX-Log-Dispatch-Simple SUBDIR += p5-MojoX-Renderer-Xslate SUBDIR += p5-Mojolicious SUBDIR += p5-Mojolicious-Plugin-Authentication SUBDIR += p5-Mojolicious-Plugin-Database SUBDIR += p5-Mojolicious-Plugin-HamlRenderer SUBDIR += p5-Mojolicious-Plugin-Mongodb SUBDIR += p5-Mojolicious-Plugin-SetUserGroup SUBDIR += p5-Mojolicious-Plugin-TtRenderer SUBDIR += p5-Mojolicious-Plugin-YamlConfig SUBDIR += p5-Monoceros SUBDIR += p5-Mozilla-CA SUBDIR += p5-Net-Akismet SUBDIR += p5-Net-Amazon-AWIS SUBDIR += p5-Net-Async-FastCGI SUBDIR += p5-Net-Async-HTTP SUBDIR += p5-Net-Curl SUBDIR += p5-Net-FastCGI SUBDIR += p5-Net-FireEagle SUBDIR += p5-Net-Flickr-API SUBDIR += p5-Net-Flickr-Backup SUBDIR += p5-Net-Flickr-RDF SUBDIR += p5-Net-FreshBooks-API SUBDIR += p5-Net-GeoPlanet SUBDIR += p5-Net-Plurk SUBDIR += p5-Net-STF-Client SUBDIR += p5-Net-Trac SUBDIR += p5-Net-UPS SUBDIR += p5-Net-YAP SUBDIR += p5-Net-eBay SUBDIR += p5-Newsletter SUBDIR += p5-Nginx-ReadBody SUBDIR += p5-Nginx-Simple SUBDIR += p5-PHP-Session SUBDIR += p5-POE-Component-Client-HTTP SUBDIR += p5-POE-Component-Client-UserAgent SUBDIR += p5-POE-Component-Server-HTTP SUBDIR += p5-POE-Component-Server-HTTPServer SUBDIR += p5-POE-Component-Server-PSGI SUBDIR += p5-POE-Component-Server-SOAP SUBDIR += p5-POE-Component-Server-SimpleHTTP SUBDIR += p5-POE-Filter-HTTP-Parser SUBDIR += p5-POEx-Role-PSGIServer SUBDIR += p5-PSGI SUBDIR += p5-ParallelUserAgent SUBDIR += p5-Parse-HTTP-UserAgent SUBDIR += p5-Path-Class-URI SUBDIR += p5-Perlanet SUBDIR += p5-Perlbal-Plugin-PSGI SUBDIR += p5-Plack SUBDIR += p5-Plack-App-Proxy SUBDIR += p5-Plack-Builder-Conditionals SUBDIR += p5-Plack-Handler-AnyEvent-HTTPD SUBDIR += p5-Plack-Handler-AnyEvent-ReverseHTTP SUBDIR += p5-Plack-Handler-AnyEvent-SCGI SUBDIR += p5-Plack-Handler-CLI SUBDIR += p5-Plack-Handler-SCGI SUBDIR += p5-Plack-Middleware-AMF SUBDIR += p5-Plack-Middleware-AddDefaultCharset SUBDIR += p5-Plack-Middleware-Auth-Digest SUBDIR += p5-Plack-Middleware-AutoRefresh SUBDIR += p5-Plack-Middleware-ConsoleLogger SUBDIR += p5-Plack-Middleware-CrossOrigin SUBDIR += p5-Plack-Middleware-DBIx-DisconnectAll SUBDIR += p5-Plack-Middleware-Debug SUBDIR += p5-Plack-Middleware-Deflater SUBDIR += p5-Plack-Middleware-Expires SUBDIR += p5-Plack-Middleware-ExtDirect SUBDIR += p5-Plack-Middleware-File-Sass SUBDIR += p5-Plack-Middleware-FixMissingBodyInRedirect SUBDIR += p5-Plack-Middleware-ForceEnv SUBDIR += p5-Plack-Middleware-Header SUBDIR += p5-Plack-Middleware-IEnosniff SUBDIR += p5-Plack-Middleware-InteractiveDebugger SUBDIR += p5-Plack-Middleware-JSConcat SUBDIR += p5-Plack-Middleware-MemoryUsage SUBDIR += p5-Plack-Middleware-MethodOverride SUBDIR += p5-Plack-Middleware-NoMultipleSlashes SUBDIR += p5-Plack-Middleware-Precompressed SUBDIR += p5-Plack-Middleware-RemoveRedundantBody SUBDIR += p5-Plack-Middleware-Reproxy SUBDIR += p5-Plack-Middleware-ReverseProxy SUBDIR += p5-Plack-Middleware-Rewrite SUBDIR += p5-Plack-Middleware-ServerStatus-Lite SUBDIR += p5-Plack-Middleware-Session SUBDIR += p5-Plack-Middleware-SocketIO SUBDIR += p5-Plack-Middleware-Status SUBDIR += p5-Plack-Middleware-Test-StashWarnings SUBDIR += p5-Plack-Middleware-Throttle SUBDIR += p5-Plack-Middleware-XForwardedFor SUBDIR += p5-Plack-Server-Coro SUBDIR += p5-Plack-Server-POE SUBDIR += p5-Plack-Server-ReverseHTTP SUBDIR += p5-Plack-Test-ExternalServer SUBDIR += p5-PocketIO SUBDIR += p5-Pod-Site SUBDIR += p5-PodToHTML SUBDIR += p5-Protocol-HTTP2 SUBDIR += p5-Protocol-SocketIO SUBDIR += p5-Protocol-WebSocket SUBDIR += p5-Protocol-XMLRPC SUBDIR += p5-REST-Client SUBDIR += p5-REST-Google-Apps-Provisioning SUBDIR += p5-RPC-ExtDirect SUBDIR += p5-RT-Client-REST SUBDIR += p5-RT-Extension-CommandByMail SUBDIR += p5-RT-Extension-Gravatar SUBDIR += p5-RT-Extension-LDAPImport SUBDIR += p5-RT-Extension-MandatoryOnTransition SUBDIR += p5-RT-Extension-RepeatTicket SUBDIR += p5-RT-Extension-RepeatTicket2 SUBDIR += p5-RTx-Calendar SUBDIR += p5-Reaction SUBDIR += p5-Reddit SUBDIR += p5-Reddit-Client SUBDIR += p5-Role-REST-Client SUBDIR += p5-Rose-HTML-Objects SUBDIR += p5-Router-Boom SUBDIR += p5-Router-Simple SUBDIR += p5-Router-Simple-Sinatraish SUBDIR += p5-SCGI SUBDIR += p5-SOAP-Transport-HTTP-Plack SUBDIR += p5-SRU SUBDIR += p5-STF-Dispatcher-PSGI SUBDIR += p5-SWF-Chart SUBDIR += p5-Scrappy SUBDIR += p5-Selenium-Remote-Driver SUBDIR += p5-Session-Storage-Secure SUBDIR += p5-Squatting SUBDIR += p5-Squatting-On-PSGI SUBDIR += p5-Starlet SUBDIR += p5-Starman SUBDIR += p5-Syntax-Highlight-HTML SUBDIR += p5-Syntax-Highlight-Shell SUBDIR += p5-Task-Catalyst SUBDIR += p5-Task-Plack SUBDIR += p5-Tatsumaki SUBDIR += p5-Template-Alloy SUBDIR += p5-Template-GD SUBDIR += p5-Template-Iterator-AlzaboWrapperCursor SUBDIR += p5-Template-Multilingual SUBDIR += p5-Template-Mustache SUBDIR += p5-Template-Plugin-Class SUBDIR += p5-Template-Plugin-Clickable SUBDIR += p5-Template-Plugin-Clickable-Email SUBDIR += p5-Template-Plugin-Comma SUBDIR += p5-Template-Plugin-FillInForm SUBDIR += p5-Template-Plugin-Gettext SUBDIR += p5-Template-Plugin-JSON SUBDIR += p5-Template-Plugin-JavaScript SUBDIR += p5-Template-Plugin-MP3 SUBDIR += p5-Template-Plugin-Markdown SUBDIR += p5-Template-Plugin-Monta SUBDIR += p5-Template-Plugin-Number-Format SUBDIR += p5-Template-Plugin-StripScripts SUBDIR += p5-Template-Plugin-Subst SUBDIR += p5-Template-Plugin-VMethods SUBDIR += p5-Template-Provider-Encoding SUBDIR += p5-Template-Provider-FromDATA SUBDIR += p5-Template-Simple SUBDIR += p5-Template-Stash-AutoEscape SUBDIR += p5-Template-Timer SUBDIR += p5-Template-Toolkit SUBDIR += p5-Template-Toolkit-Simple SUBDIR += p5-Tenjin SUBDIR += p5-Test-HTTP SUBDIR += p5-Test-HTTP-LocalServer SUBDIR += p5-Test-HTTP-Server-Simple SUBDIR += p5-Test-LWP-UserAgent SUBDIR += p5-Test-Nginx SUBDIR += p5-TestGen4Web-Runner SUBDIR += p5-Text-MultiMarkdown-ApacheHandler SUBDIR += p5-Tie-TinyURL SUBDIR += p5-Toader SUBDIR += p5-Toadfarm SUBDIR += p5-Twiggy SUBDIR += p5-Twiggy-TLS SUBDIR += p5-URI-Encode SUBDIR += p5-URI-Escape-JavaScript SUBDIR += p5-URI-Escape-XS SUBDIR += p5-URI-Fetch SUBDIR += p5-URI-ParseSearchString SUBDIR += p5-URI-Sequin SUBDIR += p5-URI-Title SUBDIR += p5-URI-ToDisk SUBDIR += p5-URL-Encode SUBDIR += p5-URL-Encode-XS SUBDIR += p5-VUser-Google-ProvisioningAPI SUBDIR += p5-W3C-LinkChecker SUBDIR += p5-W3C-LogValidator SUBDIR += p5-WWW-AtMovies-TV SUBDIR += p5-WWW-Babelfish SUBDIR += p5-WWW-Baseball-NPB SUBDIR += p5-WWW-Comic SUBDIR += p5-WWW-Contact SUBDIR += p5-WWW-Curl SUBDIR += p5-WWW-DHL SUBDIR += p5-WWW-Dilbert SUBDIR += p5-WWW-Facebook-API SUBDIR += p5-WWW-Form-UrlEncoded SUBDIR += p5-WWW-FreeProxy SUBDIR += p5-WWW-GitHub-Gist SUBDIR += p5-WWW-Google-Calculator SUBDIR += p5-WWW-Google-News SUBDIR += p5-WWW-Google-News-TW SUBDIR += p5-WWW-Google-PageRank SUBDIR += p5-WWW-HatenaDiary SUBDIR += p5-WWW-HatenaLogin SUBDIR += p5-WWW-HatenaStar SUBDIR += p5-WWW-IMDb SUBDIR += p5-WWW-Instapaper-Client SUBDIR += p5-WWW-LongURL SUBDIR += p5-WWW-Mechanize SUBDIR += p5-WWW-Mechanize-CGI SUBDIR += p5-WWW-Mechanize-DecodedContent SUBDIR += p5-WWW-Mechanize-FormFiller SUBDIR += p5-WWW-Mechanize-GZip SUBDIR += p5-WWW-Mechanize-Meta SUBDIR += p5-WWW-Mechanize-Pluggable SUBDIR += p5-WWW-Mechanize-Plugin-phpBB SUBDIR += p5-WWW-Mechanize-Shell SUBDIR += p5-WWW-Mechanize-SpamCop SUBDIR += p5-WWW-Mechanize-TreeBuilder SUBDIR += p5-WWW-Mediawiki-Client SUBDIR += p5-WWW-Mixi SUBDIR += p5-WWW-Mixi-Scraper SUBDIR += p5-WWW-Myspace SUBDIR += p5-WWW-NicoVideo-Download SUBDIR += p5-WWW-NioTV SUBDIR += p5-WWW-OAuth SUBDIR += p5-WWW-OpenSVN SUBDIR += p5-WWW-OpenSearch SUBDIR += p5-WWW-Pastebin-PastebinCom-Create SUBDIR += p5-WWW-Plurk SUBDIR += p5-WWW-Robot SUBDIR += p5-WWW-RobotRules SUBDIR += p5-WWW-RobotRules-Parser SUBDIR += p5-WWW-Salesforce SUBDIR += p5-WWW-Scraper-ISBN SUBDIR += p5-WWW-Scraper-ISBN-Amazon_Driver SUBDIR += p5-WWW-Scraper-ISBN-ORA_Driver SUBDIR += p5-WWW-Scripter SUBDIR += p5-WWW-Scripter-Plugin-Ajax SUBDIR += p5-WWW-Scripter-Plugin-JavaScript SUBDIR += p5-WWW-Search SUBDIR += p5-WWW-Search-AltaVista SUBDIR += p5-WWW-Search-Google SUBDIR += p5-WWW-Search-MSN SUBDIR += p5-WWW-Shorten SUBDIR += p5-WWW-Shorten-0rz SUBDIR += p5-WWW-Shorten-Bitly SUBDIR += p5-WWW-Shorten-Googl SUBDIR += p5-WWW-Shorten-Yourls SUBDIR += p5-WWW-SourceForge SUBDIR += p5-WWW-Spinn3r SUBDIR += p5-WWW-TV SUBDIR += p5-WWW-TWSMS SUBDIR += p5-WWW-Telegram-BotAPI SUBDIR += p5-WWW-TinySong SUBDIR += p5-WWW-Tumblr SUBDIR += p5-WWW-VenusEnvy SUBDIR += p5-WWW-WebArchive SUBDIR += p5-WWW-Wikipedia SUBDIR += p5-WWW-Yandex-TIC SUBDIR += p5-WWW-iTunesConnect SUBDIR += p5-Web-Machine SUBDIR += p5-Web-Query SUBDIR += p5-Web-Scraper SUBDIR += p5-Web-Scraper-Config SUBDIR += p5-Web-Simple SUBDIR += p5-Web-oEmbed SUBDIR += p5-WebDAO SUBDIR += p5-WebDriver-Tiny SUBDIR += p5-WebService-Basecamp SUBDIR += p5-WebService-Bloglines SUBDIR += p5-WebService-BuzzurlAPI SUBDIR += p5-WebService-CIA SUBDIR += p5-WebService-GData SUBDIR += p5-WebService-Google-Reader SUBDIR += p5-WebService-Google-Sets SUBDIR += p5-WebService-IMDB SUBDIR += p5-WebService-ISBNDB SUBDIR += p5-WebService-Linode SUBDIR += p5-WebService-MoviePosterDB SUBDIR += p5-WebService-MusicBrainz SUBDIR += p5-WebService-NoPaste SUBDIR += p5-WebService-Pushover SUBDIR += p5-WebService-Rakuten SUBDIR += p5-WebService-Redmine SUBDIR += p5-WebService-Simple SUBDIR += p5-WebService-Technorati SUBDIR += p5-WebService-YouTube SUBDIR += p5-Woothee SUBDIR += p5-WordPress-XMLRPC SUBDIR += p5-Yahoo-Search SUBDIR += p5-chklinks SUBDIR += p5-jQuery-File-Upload SUBDIR += p5-libapreq2 SUBDIR += p5-libservlet SUBDIR += p5-libwww SUBDIR += p5-pQuery SUBDIR += p5-webservice-validator-css-w3c SUBDIR += p5-webservice-validator-html-w3c SUBDIR += payara SUBDIR += pear-HTML_AJAX SUBDIR += pear-HTML_TagCloud SUBDIR += pear-HTTP SUBDIR += pear-HTTP_Client SUBDIR += pear-HTTP_Download SUBDIR += pear-HTTP_FloodControl SUBDIR += pear-HTTP_Header SUBDIR += pear-HTTP_Request SUBDIR += pear-HTTP_Request2 SUBDIR += pear-HTTP_Server SUBDIR += pear-HTTP_Session2 SUBDIR += pear-HTTP_Upload SUBDIR += pear-HTTP_WebDAV_Client SUBDIR += pear-HTTP_WebDAV_Server SUBDIR += pear-Horde_Browser SUBDIR += pear-Horde_Css_Parser SUBDIR += pear-Horde_Dav SUBDIR += pear-Horde_Editor SUBDIR += pear-Horde_Feed SUBDIR += pear-Horde_Form SUBDIR += pear-Horde_Http SUBDIR += pear-Horde_Routes SUBDIR += pear-Horde_Service_Facebook SUBDIR += pear-Horde_Service_Gravatar SUBDIR += pear-Horde_Service_Twitter SUBDIR += pear-Horde_Service_UrlShortener SUBDIR += pear-Horde_Service_Weather SUBDIR += pear-Horde_SessionHandler SUBDIR += pear-Horde_Template SUBDIR += pear-Services_Amazon SUBDIR += pear-Services_Amazon_S3 SUBDIR += pear-Services_Blogging SUBDIR += pear-Services_Compete SUBDIR += pear-Services_Delicious SUBDIR += pear-Services_Digg SUBDIR += pear-Services_Facebook SUBDIR += pear-Services_GeoNames SUBDIR += pear-Services_Google SUBDIR += pear-Services_OpenSearch SUBDIR += pear-Services_ShortURL SUBDIR += pear-Services_TinyURL SUBDIR += pear-Services_TwitPic SUBDIR += pear-Services_W3C_CSSValidator SUBDIR += pear-Services_W3C_HTMLValidator SUBDIR += pear-Services_Yadis SUBDIR += pear-Services_Yahoo SUBDIR += pear-Services_urlTea SUBDIR += pear-Structures_DataGrid_Renderer_Flexy SUBDIR += pear-Structures_DataGrid_Renderer_Pager SUBDIR += pear-Structures_DataGrid_Renderer_Smarty SUBDIR += pear-Text_Wiki SUBDIR += pear-UDDI SUBDIR += pear-XML_GRDDL SUBDIR += pear-twig SUBDIR += pecl-http SUBDIR += pecl-solr SUBDIR += pecl-yaf SUBDIR += pecl-yar SUBDIR += perlbal SUBDIR += persepolis SUBDIR += pglogd SUBDIR += phalcon SUBDIR += phalcon4 SUBDIR += php74-opcache SUBDIR += php74-session SUBDIR += php74-tidy SUBDIR += php80-opcache SUBDIR += php80-session SUBDIR += php80-tidy SUBDIR += php81-opcache SUBDIR += php81-session SUBDIR += php81-tidy SUBDIR += phpbb SUBDIR += phpbb3 SUBDIR += phpgroupware SUBDIR += phpmustache SUBDIR += phpmyfaq SUBDIR += phprecipebook SUBDIR += phpsysinfo SUBDIR += phpvirtualbox SUBDIR += phpvirtualbox-legacy SUBDIR += piwigo SUBDIR += plasma5-plasma-browser-integration SUBDIR += pmwiki SUBDIR += pnews SUBDIR += podcastamatic SUBDIR += polipo SUBDIR += pomerium SUBDIR += pound SUBDIR += privatebin SUBDIR += privoxy SUBDIR += protovis SUBDIR += proxygen SUBDIR += pserv SUBDIR += publicfile SUBDIR += punbb SUBDIR += py-Tenjin SUBDIR += py-WebError SUBDIR += py-WebFlash SUBDIR += py-WebTest SUBDIR += py-adblock SUBDIR += py-aioh2 SUBDIR += py-aiohttp SUBDIR += py-aiohttp-middlewares SUBDIR += py-aiohttp-wsgi SUBDIR += py-aiohttp_cors SUBDIR += py-aioquic SUBDIR += py-arxiv SUBDIR += py-asgiref SUBDIR += py-autobahn SUBDIR += py-azure-common SUBDIR += py-azure-storage SUBDIR += py-beaker SUBDIR += py-beautifulsoup + SUBDIR += py-beautifulsoup449 SUBDIR += py-betamax SUBDIR += py-biscuits SUBDIR += py-bjoern SUBDIR += py-bleach SUBDIR += py-bokeh SUBDIR += py-boto3 SUBDIR += py-bottle SUBDIR += py-bottle-cork SUBDIR += py-branca SUBDIR += py-cachecontrol SUBDIR += py-cachelib SUBDIR += py-caldav SUBDIR += py-cheroot SUBDIR += py-cherrypy SUBDIR += py-cookies SUBDIR += py-crossplane SUBDIR += py-css-parser SUBDIR += py-csscompressor SUBDIR += py-cssmin SUBDIR += py-cssselect SUBDIR += py-cssutils SUBDIR += py-dj-database-url SUBDIR += py-dj32-django-auth-ldap SUBDIR += py-dj32-django-cacheops SUBDIR += py-dj32-django-cors-headers SUBDIR += py-dj32-django-debug-toolbar SUBDIR += py-dj32-django-filter SUBDIR += py-dj32-django-graphiql-debug-toolbar SUBDIR += py-dj32-django-js-asset SUBDIR += py-dj32-django-modelcluster SUBDIR += py-dj32-django-mptt SUBDIR += py-dj32-django-prometheus SUBDIR += py-dj32-django-redis SUBDIR += py-dj32-django-tables2 SUBDIR += py-dj32-django-taggit SUBDIR += py-dj32-django-timezone-field SUBDIR += py-dj32-django-treebeard SUBDIR += py-dj32-djangorestframework SUBDIR += py-dj32-drf-yasg SUBDIR += py-django SUBDIR += py-django-admin-rangefilter SUBDIR += py-django-advanced-filters SUBDIR += py-django-allauth SUBDIR += py-django-annoying SUBDIR += py-django-appconf SUBDIR += py-django-assets SUBDIR += py-django-auth-ldap SUBDIR += py-django-autocomplete-light SUBDIR += py-django-babel SUBDIR += py-django-bakery SUBDIR += py-django-bitfield SUBDIR += py-django-bootstrap-form SUBDIR += py-django-bootstrap-pagination SUBDIR += py-django-bootstrap3 SUBDIR += py-django-bootstrap4 SUBDIR += py-django-braces SUBDIR += py-django-bulk-update SUBDIR += py-django-cacheops SUBDIR += py-django-ckeditor-5 SUBDIR += py-django-classy-tags SUBDIR += py-django-cms SUBDIR += py-django-common-helpers SUBDIR += py-django-compat SUBDIR += py-django-configurations SUBDIR += py-django-constance SUBDIR += py-django-contact-form SUBDIR += py-django-context-decorator SUBDIR += py-django-contrib-comments SUBDIR += py-django-cors-headers SUBDIR += py-django-countries SUBDIR += py-django-crispy-forms SUBDIR += py-django-cron SUBDIR += py-django-csp SUBDIR += py-django-debreach SUBDIR += py-django-debug-toolbar SUBDIR += py-django-dpaste SUBDIR += py-django-extensions SUBDIR += py-django-filer SUBDIR += py-django-filter SUBDIR += py-django-formset-js-improved SUBDIR += py-django-formtools SUBDIR += py-django-graphiql-debug-toolbar SUBDIR += py-django-gravatar2 SUBDIR += py-django-guardian SUBDIR += py-django-happenings-update SUBDIR += py-django-hashid-field SUBDIR += py-django-haystack SUBDIR += py-django-hierarkey SUBDIR += py-django-hijack SUBDIR += py-django-htmlmin SUBDIR += py-django-i18nfield SUBDIR += py-django-jquery-js SUBDIR += py-django-js-asset SUBDIR += py-django-jsonview SUBDIR += py-django-ldapdb SUBDIR += py-django-libsass SUBDIR += py-django-markdownx SUBDIR += py-django-markwhat SUBDIR += py-django-mezzanine-filebrowser SUBDIR += py-django-mezzanine-grappelli SUBDIR += py-django-model-utils SUBDIR += py-django-modelcluster SUBDIR += py-django-modern-rpc SUBDIR += py-django-mptt SUBDIR += py-django-netfields SUBDIR += py-django-object-actions SUBDIR += py-django-otp SUBDIR += py-django-otp-yubikey SUBDIR += py-django-pglocks SUBDIR += py-django-photologue SUBDIR += py-django-picklefield SUBDIR += py-django-pipeline SUBDIR += py-django-polymorphic SUBDIR += py-django-post_office SUBDIR += py-django-prometheus SUBDIR += py-django-pyscss SUBDIR += py-django-radius SUBDIR += py-django-ranged-response SUBDIR += py-django-recaptcha SUBDIR += py-django-redis SUBDIR += py-django-registration SUBDIR += py-django-registration-redux SUBDIR += py-django-reversion SUBDIR += py-django-reversion-compare SUBDIR += py-django-sekizai SUBDIR += py-django-simple-captcha SUBDIR += py-django-simple-history SUBDIR += py-django-smart-selects SUBDIR += py-django-solo SUBDIR += py-django-sortedm2m SUBDIR += py-django-star-ratings SUBDIR += py-django-statici18n SUBDIR += py-django-staticinline SUBDIR += py-django-storages SUBDIR += py-django-sudo SUBDIR += py-django-tables2 SUBDIR += py-django-tagging SUBDIR += py-django-taggit SUBDIR += py-django-tastypie SUBDIR += py-django-templatetag-sugar SUBDIR += py-django-timezone-field SUBDIR += py-django-tinymce SUBDIR += py-django-treebeard SUBDIR += py-django-voting SUBDIR += py-django-webpack-loader SUBDIR += py-django-widget-tweaks SUBDIR += py-django22 SUBDIR += py-django32 SUBDIR += py-django40 SUBDIR += py-django_compressor SUBDIR += py-djangocms-admin-style SUBDIR += py-djangoql SUBDIR += py-djangorestframework SUBDIR += py-djangorestframework-csv SUBDIR += py-djangorestframework-filters SUBDIR += py-djangorestframework-xml SUBDIR += py-draftjs-exporter SUBDIR += py-drf-yasg SUBDIR += py-dtflickr SUBDIR += py-enmerkar SUBDIR += py-fake-useragent SUBDIR += py-falcon SUBDIR += py-fastapi SUBDIR += py-fastapi-users SUBDIR += py-feedgenerator SUBDIR += py-flask SUBDIR += py-flask-admin SUBDIR += py-flask-api SUBDIR += py-flask-apscheduler SUBDIR += py-flask-assets SUBDIR += py-flask-babelex SUBDIR += py-flask-bootstrap SUBDIR += py-flask-cache SUBDIR += py-flask-caching SUBDIR += py-flask-collect SUBDIR += py-flask-compress SUBDIR += py-flask-cors SUBDIR += py-flask-flatpages SUBDIR += py-flask-json SUBDIR += py-flask-jwt-extended SUBDIR += py-flask-login SUBDIR += py-flask-marshmallow SUBDIR += py-flask-migrate SUBDIR += py-flask-moment SUBDIR += py-flask-mongoengine SUBDIR += py-flask-oauthlib SUBDIR += py-flask-peewee SUBDIR += py-flask-principal SUBDIR += py-flask-restful SUBDIR += py-flask-restx SUBDIR += py-flask-script SUBDIR += py-flask-security SUBDIR += py-flask-smorest SUBDIR += py-flask-socketio SUBDIR += py-flask-sockets SUBDIR += py-flask-uploads SUBDIR += py-flask-wtf SUBDIR += py-flup6 SUBDIR += py-folium SUBDIR += py-forcediphttpsadapter SUBDIR += py-formencode SUBDIR += py-fqdn SUBDIR += py-freenit SUBDIR += py-frozen-flask SUBDIR += py-gandi.cli SUBDIR += py-gevent-websocket SUBDIR += py-ghp-import SUBDIR += py-google SUBDIR += py-google-api-core SUBDIR += py-google-api-python-client SUBDIR += py-google-cloud-appengine-logging SUBDIR += py-google-cloud-audit-log SUBDIR += py-google-cloud-bigtable SUBDIR += py-google-cloud-core SUBDIR += py-google-cloud-datastore SUBDIR += py-google-cloud-dlp SUBDIR += py-google-cloud-logging SUBDIR += py-google-cloud-speech SUBDIR += py-google-cloud-storage SUBDIR += py-google-cloud-translate SUBDIR += py-google-cloud-vision SUBDIR += py-google-resumable-media SUBDIR += py-grafana-dashboard-manager SUBDIR += py-graphite-api SUBDIR += py-graphite-web SUBDIR += py-grequests SUBDIR += py-grip SUBDIR += py-gunicorn SUBDIR += py-h2 SUBDIR += py-habanero SUBDIR += py-horizon SUBDIR += py-hpack SUBDIR += py-hstspreload SUBDIR += py-html3 SUBDIR += py-html5-parser SUBDIR += py-html5lib SUBDIR += py-httmock SUBDIR += py-http-parser SUBDIR += py-httpbin SUBDIR += py-httpcore SUBDIR += py-httpie SUBDIR += py-httplib2 SUBDIR += py-httpretty SUBDIR += py-httptools SUBDIR += py-httpx SUBDIR += py-httpx-oauth SUBDIR += py-httpx-socks SUBDIR += py-httpx013 SUBDIR += py-hyper SUBDIR += py-hypercorn SUBDIR += py-hyperframe SUBDIR += py-hyperlink SUBDIR += py-imdbpy SUBDIR += py-inlinestyler SUBDIR += py-instabot SUBDIR += py-internetarchive SUBDIR += py-jonpy SUBDIR += py-jsonfield SUBDIR += py-jsonfield2 SUBDIR += py-lektor SUBDIR += py-lesscpy SUBDIR += py-libsass SUBDIR += py-livereload SUBDIR += py-mechanicalsoup SUBDIR += py-mechanize SUBDIR += py-multidict SUBDIR += py-mwoauth SUBDIR += py-nevow SUBDIR += py-notebook SUBDIR += py-openbrokerapi SUBDIR += py-pafy SUBDIR += py-paste SUBDIR += py-pastedeploy SUBDIR += py-path-and-address SUBDIR += py-pecan SUBDIR += py-pelican SUBDIR += py-planet SUBDIR += py-postorius SUBDIR += py-praw SUBDIR += py-prawcore SUBDIR += py-priority SUBDIR += py-priority1 SUBDIR += py-protego SUBDIR += py-puppetboard SUBDIR += py-py-restclient SUBDIR += py-pygsheets SUBDIR += py-pyjwt SUBDIR += py-pyjwt1 SUBDIR += py-pylsqpack SUBDIR += py-pyocclient SUBDIR += py-pyramid SUBDIR += py-pyramid-mako SUBDIR += py-pyramid_rpc SUBDIR += py-pysmartdl SUBDIR += py-python-digitalocean SUBDIR += py-python-dotenv SUBDIR += py-python-multipart SUBDIR += py-pyweblib SUBDIR += py-pywikibot SUBDIR += py-qt5-webengine SUBDIR += py-quilt3 SUBDIR += py-rackspace-monitoring SUBDIR += py-recaptcha SUBDIR += py-requests SUBDIR += py-requests-aws4auth SUBDIR += py-requests-cache SUBDIR += py-requests-file SUBDIR += py-requests-futures SUBDIR += py-requests-mock SUBDIR += py-requests-oauthlib SUBDIR += py-requests-toolbelt SUBDIR += py-requests-unixsocket SUBDIR += py-requests_ntlm SUBDIR += py-respx SUBDIR += py-restclient SUBDIR += py-rfc3986 SUBDIR += py-rfc3987 SUBDIR += py-rollbar SUBDIR += py-routes SUBDIR += py-rules SUBDIR += py-scgi SUBDIR += py-scrapy SUBDIR += py-seafdav SUBDIR += py-seafobj SUBDIR += py-secure-cookie SUBDIR += py-selector SUBDIR += py-selenium SUBDIR += py-sentinelhub SUBDIR += py-slimit SUBDIR += py-slumber SUBDIR += py-social-auth-app-django SUBDIR += py-sockjs-tornado SUBDIR += py-soupsieve SUBDIR += py-splinter SUBDIR += py-spyne SUBDIR += py-sseclient SUBDIR += py-starlette SUBDIR += py-swapper SUBDIR += py-textile SUBDIR += py-tornado SUBDIR += py-tornado4 SUBDIR += py-tornado5 SUBDIR += py-treq SUBDIR += py-ttrv SUBDIR += py-tuir SUBDIR += py-turbogears2 SUBDIR += py-tvdb_api SUBDIR += py-txrequests SUBDIR += py-urlgrabber SUBDIR += py-urlman SUBDIR += py-urlobject SUBDIR += py-urlwatch SUBDIR += py-user_agent SUBDIR += py-utidylib SUBDIR += py-uvicorn SUBDIR += py-w3lib SUBDIR += py-wagtail SUBDIR += py-waitress SUBDIR += py-webargs SUBDIR += py-webassets SUBDIR += py-webob SUBDIR += py-websocket-client SUBDIR += py-webunit SUBDIR += py-werkzeug SUBDIR += py-wfuzz SUBDIR += py-whitenoise SUBDIR += py-wikipedia SUBDIR += py-wikitools SUBDIR += py-woob SUBDIR += py-woob-qt SUBDIR += py-ws4py SUBDIR += py-wsaccel SUBDIR += py-wsgidav SUBDIR += py-yarl SUBDIR += pydio-cells SUBDIR += qdecoder SUBDIR += qhttpengine SUBDIR += qt5-webchannel SUBDIR += qt5-webengine SUBDIR += qt5-webglplugin SUBDIR += qt5-webkit SUBDIR += qt5-websockets SUBDIR += qt5-websockets-qml SUBDIR += qt5-webview SUBDIR += quark SUBDIR += qutebrowser SUBDIR += radicale SUBDIR += rearx SUBDIR += redmine4 SUBDIR += redmine42 SUBDIR += rejik SUBDIR += reportmagic SUBDIR += repos-style SUBDIR += reproxy SUBDIR += resin3 SUBDIR += restbed SUBDIR += retawq SUBDIR += rss-bridge SUBDIR += rsskit SUBDIR += rssroll SUBDIR += rsstail SUBDIR += rsstool SUBDIR += rt44 SUBDIR += rt50 SUBDIR += rubygem-ace-rails-ap SUBDIR += rubygem-actioncable5 SUBDIR += rubygem-actioncable50 SUBDIR += rubygem-actioncable52 SUBDIR += rubygem-actioncable60 SUBDIR += rubygem-actioncable61 SUBDIR += rubygem-actioncable70 SUBDIR += rubygem-actionpack4 SUBDIR += rubygem-actionpack5 SUBDIR += rubygem-actionpack50 SUBDIR += rubygem-actionpack52 SUBDIR += rubygem-actionpack60 SUBDIR += rubygem-actionpack61 SUBDIR += rubygem-actionpack70 SUBDIR += rubygem-activeresource SUBDIR += rubygem-activeresource4 SUBDIR += rubygem-acts-as-taggable-on SUBDIR += rubygem-acts_as_taggable SUBDIR += rubygem-addressable SUBDIR += rubygem-adsf SUBDIR += rubygem-akami SUBDIR += rubygem-amazon-ecs SUBDIR += rubygem-anemone SUBDIR += rubygem-asana SUBDIR += rubygem-async-http SUBDIR += rubygem-async-pool SUBDIR += rubygem-async-rest SUBDIR += rubygem-async-websocket SUBDIR += rubygem-async_sinatra SUBDIR += rubygem-atlassian-jwt SUBDIR += rubygem-best_in_place SUBDIR += rubygem-best_in_place-rails5 SUBDIR += rubygem-bluecloth SUBDIR += rubygem-bootstrap-sass SUBDIR += rubygem-browser SUBDIR += rubygem-cal-heatmap-rails SUBDIR += rubygem-cal-heatmap-rails-rails4 SUBDIR += rubygem-carrierwave SUBDIR += rubygem-cgi SUBDIR += rubygem-cgi_multipart_eof_fix SUBDIR += rubygem-chosen-rails SUBDIR += rubygem-chromedriver-helper SUBDIR += rubygem-cookiejar SUBDIR += rubygem-crass SUBDIR += rubygem-cssbundling-rails SUBDIR += rubygem-cuba SUBDIR += rubygem-d3_rails SUBDIR += rubygem-d3_rails-rails4 SUBDIR += rubygem-davclient SUBDIR += rubygem-deckar01-task_list SUBDIR += rubygem-domainatrix SUBDIR += rubygem-dropzonejs-rails SUBDIR += rubygem-em-http-request SUBDIR += rubygem-em-socksify SUBDIR += rubygem-em-twitter SUBDIR += rubygem-em-websocket SUBDIR += rubygem-emk-sinatra-url-for SUBDIR += rubygem-erubi SUBDIR += rubygem-erubi19 SUBDIR += rubygem-erubis SUBDIR += rubygem-ethon SUBDIR += rubygem-eventmachine_httpserver SUBDIR += rubygem-faraday SUBDIR += rubygem-faraday-em_http SUBDIR += rubygem-faraday-em_synchrony SUBDIR += rubygem-faraday-httpclient SUBDIR += rubygem-faraday-multipart SUBDIR += rubygem-faraday-net_http SUBDIR += rubygem-faraday-net_http_persistent SUBDIR += rubygem-faraday-patron SUBDIR += rubygem-faraday-rack SUBDIR += rubygem-faraday-retry SUBDIR += rubygem-faraday0 SUBDIR += rubygem-faraday14 SUBDIR += rubygem-faraday_middleware SUBDIR += rubygem-faraday_middleware0 SUBDIR += rubygem-faye SUBDIR += rubygem-faye-websocket SUBDIR += rubygem-fcgi SUBDIR += rubygem-feed-normalizer SUBDIR += rubygem-feedjira SUBDIR += rubygem-flowdock SUBDIR += rubygem-fuzzyurl SUBDIR += rubygem-geminabox SUBDIR += rubygem-gitlab-flowdock-git-hook SUBDIR += rubygem-gitlab-gollum-lib SUBDIR += rubygem-gitlab-gollum-rugged_adapter SUBDIR += rubygem-gitlab-turbolinks-classic SUBDIR += rubygem-goldfinger SUBDIR += rubygem-gollum SUBDIR += rubygem-gollum-grit_adapter SUBDIR += rubygem-gollum-grit_adapter10 SUBDIR += rubygem-gollum-lib SUBDIR += rubygem-gollum-rugged_adapter SUBDIR += rubygem-gon-rails5 SUBDIR += rubygem-gon-rails50 SUBDIR += rubygem-gon-rails60 SUBDIR += rubygem-gon-rails61 SUBDIR += rubygem-hackpad-cli SUBDIR += rubygem-haml SUBDIR += rubygem-haml-coderay SUBDIR += rubygem-haml-contrib SUBDIR += rubygem-haml-rails-rails4 SUBDIR += rubygem-hamlit SUBDIR += rubygem-hamlit-rails SUBDIR += rubygem-hamlit-rails-rails5 SUBDIR += rubygem-hamlit-rails-rails50 SUBDIR += rubygem-hashicorp-checkpoint SUBDIR += rubygem-heroics SUBDIR += rubygem-heroku-api SUBDIR += rubygem-heroku-nav SUBDIR += rubygem-hpricot SUBDIR += rubygem-html2haml SUBDIR += rubygem-http SUBDIR += rubygem-http-accept SUBDIR += rubygem-http-cookie SUBDIR += rubygem-http-form_data SUBDIR += rubygem-http3 SUBDIR += rubygem-http4 SUBDIR += rubygem-http_router SUBDIR += rubygem-httparty SUBDIR += rubygem-httpclient SUBDIR += rubygem-httpi SUBDIR += rubygem-hurley SUBDIR += rubygem-importmap-rails SUBDIR += rubygem-innate SUBDIR += rubygem-jekyll SUBDIR += rubygem-jekyll-sanity SUBDIR += rubygem-jekyll-seo-tag SUBDIR += rubygem-jekyll-watch SUBDIR += rubygem-jekyll3 SUBDIR += rubygem-journey SUBDIR += rubygem-jquery-atwho-rails SUBDIR += rubygem-jquery-rails SUBDIR += rubygem-jquery-rails-rails5 SUBDIR += rubygem-jquery-rails-rails50 SUBDIR += rubygem-jquery-scrollto-rails SUBDIR += rubygem-jquery-turbolinks SUBDIR += rubygem-jquery-ui-rails-rails4 SUBDIR += rubygem-jruby-rack SUBDIR += rubygem-jsbundling-rails SUBDIR += rubygem-jsobfu SUBDIR += rubygem-json-jwt SUBDIR += rubygem-jwt SUBDIR += rubygem-jwt21 SUBDIR += rubygem-kaminari SUBDIR += rubygem-kaminari-actionview SUBDIR += rubygem-kaminari-actionview-rails5 SUBDIR += rubygem-kaminari-actionview-rails50 SUBDIR += rubygem-kaminari-actionview-rails52 SUBDIR += rubygem-kaminari-actionview-rails60 SUBDIR += rubygem-kaminari-actionview-rails61 SUBDIR += rubygem-kaminari-activerecord SUBDIR += rubygem-kaminari-activerecord-rails5 SUBDIR += rubygem-kaminari-activerecord-rails50 SUBDIR += rubygem-kaminari-activerecord-rails52 SUBDIR += rubygem-kaminari-activerecord-rails60 SUBDIR += rubygem-kaminari-activerecord-rails61 SUBDIR += rubygem-kaminari-core SUBDIR += rubygem-kaminari-rails4 SUBDIR += rubygem-kaminari-rails5 SUBDIR += rubygem-kaminari-rails50 SUBDIR += rubygem-kaminari-rails52 SUBDIR += rubygem-kaminari-rails60 SUBDIR += rubygem-kaminari-rails61 SUBDIR += rubygem-kubeclient SUBDIR += rubygem-layout_yullio_generator SUBDIR += rubygem-less SUBDIR += rubygem-lighthouse-api SUBDIR += rubygem-link_header SUBDIR += rubygem-llhttp-ffi SUBDIR += rubygem-lograge SUBDIR += rubygem-lograge-rails5 SUBDIR += rubygem-lograge-rails52 SUBDIR += rubygem-lograge-rails60 SUBDIR += rubygem-lograge-rails61 SUBDIR += rubygem-maruku SUBDIR += rubygem-mechanize SUBDIR += rubygem-merb-assets SUBDIR += rubygem-merb-core SUBDIR += rubygem-merb-haml SUBDIR += rubygem-merb-helpers SUBDIR += rubygem-merb-param-protection SUBDIR += rubygem-mousetrap-rails SUBDIR += rubygem-multipart-post SUBDIR += rubygem-nanoc SUBDIR += rubygem-nanoc-checking SUBDIR += rubygem-nanoc-cli SUBDIR += rubygem-nanoc-core SUBDIR += rubygem-nanoc-deploying SUBDIR += rubygem-nested_form SUBDIR += rubygem-net-http SUBDIR += rubygem-net-http-digest_auth SUBDIR += rubygem-net-http-persistent SUBDIR += rubygem-net-http-persistent2 SUBDIR += rubygem-net-http-pipeline SUBDIR += rubygem-nicovideo SUBDIR += rubygem-ntlm-http SUBDIR += rubygem-octopress SUBDIR += rubygem-oembed SUBDIR += rubygem-ostatus2 SUBDIR += rubygem-pagerduty SUBDIR += rubygem-passenger SUBDIR += rubygem-patron SUBDIR += rubygem-platform-api SUBDIR += rubygem-propshaft SUBDIR += rubygem-protocol-hpack SUBDIR += rubygem-protocol-http SUBDIR += rubygem-protocol-http1 SUBDIR += rubygem-protocol-http2 SUBDIR += rubygem-protocol-websocket SUBDIR += rubygem-puma SUBDIR += rubygem-puma_worker_killer SUBDIR += rubygem-pusher-client SUBDIR += rubygem-rabbirack SUBDIR += rubygem-rack SUBDIR += rubygem-rack-accept SUBDIR += rubygem-rack-attack SUBDIR += rubygem-rack-cache SUBDIR += rubygem-rack-contrib SUBDIR += rubygem-rack-cors SUBDIR += rubygem-rack-mount SUBDIR += rubygem-rack-openid SUBDIR += rubygem-rack-protection SUBDIR += rubygem-rack-protection1 SUBDIR += rubygem-rack-proxy SUBDIR += rubygem-rack-proxy06 SUBDIR += rubygem-rack-ssl SUBDIR += rubygem-rack-test SUBDIR += rubygem-rack-timeout SUBDIR += rubygem-rack16 SUBDIR += rubygem-rack_csrf SUBDIR += rubygem-rails-settings-cached SUBDIR += rubygem-rails-settings-cached-rails5 SUBDIR += rubygem-rails-settings-cached-rails50 SUBDIR += rubygem-rails4 SUBDIR += rubygem-rails5 SUBDIR += rubygem-rails50 SUBDIR += rubygem-rails52 SUBDIR += rubygem-rails60 SUBDIR += rubygem-rails61 SUBDIR += rubygem-rails61-node16 SUBDIR += rubygem-rails70 SUBDIR += rubygem-rails_12factor SUBDIR += rubygem-rails_autolink SUBDIR += rubygem-rails_serve_static_assets SUBDIR += rubygem-rails_stdout_logging SUBDIR += rubygem-railties4 SUBDIR += rubygem-railties5 SUBDIR += rubygem-railties50 SUBDIR += rubygem-railties52 SUBDIR += rubygem-railties60 SUBDIR += rubygem-railties61 SUBDIR += rubygem-railties70 SUBDIR += rubygem-raindrops SUBDIR += rubygem-ramaze SUBDIR += rubygem-raphael-rails SUBDIR += rubygem-rate_throttle_client SUBDIR += rubygem-rbovirt SUBDIR += rubygem-rdf SUBDIR += rubygem-rdf-normalize SUBDIR += rubygem-redcloth SUBDIR += rubygem-redis-rack SUBDIR += rubygem-redis-rails SUBDIR += rubygem-redis-rails-rails5 SUBDIR += rubygem-redis-rails-rails50 SUBDIR += rubygem-redis-rails-rails52 SUBDIR += rubygem-redis-rails-rails60 SUBDIR += rubygem-redis-rails-rails61 SUBDIR += rubygem-responders SUBDIR += rubygem-responders-rails5 SUBDIR += rubygem-responders-rails52 SUBDIR += rubygem-responders-rails60 SUBDIR += rubygem-responders-rails61 SUBDIR += rubygem-rest-client SUBDIR += rubygem-rfacebook SUBDIR += rubygem-rfeedfinder SUBDIR += rubygem-rinku SUBDIR += rubygem-rkelly-remix SUBDIR += rubygem-robotex SUBDIR += rubygem-robots SUBDIR += rubygem-roda SUBDIR += rubygem-rqrcode SUBDIR += rubygem-rqrcode-rails3 SUBDIR += rubygem-rss SUBDIR += rubygem-rtlit SUBDIR += rubygem-ruby-oembed SUBDIR += rubygem-ruby-readability SUBDIR += rubygem-savon SUBDIR += rubygem-sawyer SUBDIR += rubygem-select2-rails SUBDIR += rubygem-selenium-webdriver SUBDIR += rubygem-semantic-ui-sass SUBDIR += rubygem-simple-rss SUBDIR += rubygem-sinatra SUBDIR += rubygem-sinatra-contrib SUBDIR += rubygem-sinatra-contrib1 SUBDIR += rubygem-sinatra-r18n SUBDIR += rubygem-sinatra-respond_to SUBDIR += rubygem-sinatra1 SUBDIR += rubygem-smashing SUBDIR += rubygem-socksify SUBDIR += rubygem-stimulus-rails SUBDIR += rubygem-swd SUBDIR += rubygem-tailwindcss-rails SUBDIR += rubygem-task_list SUBDIR += rubygem-thin SUBDIR += rubygem-tinyatom SUBDIR += rubygem-tinymce-rails SUBDIR += rubygem-toml-rb SUBDIR += rubygem-totoridipjp SUBDIR += rubygem-tumblr_client SUBDIR += rubygem-turbo-rails SUBDIR += rubygem-turbolinks SUBDIR += rubygem-turbolinks-source SUBDIR += rubygem-typhoeus SUBDIR += rubygem-uglifier SUBDIR += rubygem-uglifier-node16 SUBDIR += rubygem-underscore-rails SUBDIR += rubygem-unicorn SUBDIR += rubygem-unicorn-worker-killer SUBDIR += rubygem-url_escape SUBDIR += rubygem-url_mount SUBDIR += rubygem-vcr SUBDIR += rubygem-vegas SUBDIR += rubygem-wasabi SUBDIR += rubygem-webdrivers SUBDIR += rubygem-webmock SUBDIR += rubygem-webrick SUBDIR += rubygem-webrobots SUBDIR += rubygem-websocket SUBDIR += rubygem-websocket-client-simple SUBDIR += rubygem-websocket-driver SUBDIR += rubygem-websocket-extensions SUBDIR += rubygem-yapra SUBDIR += s SUBDIR += sabredav SUBDIR += sahi SUBDIR += samdruckerserver SUBDIR += sarg SUBDIR += scloader SUBDIR += screego SUBDIR += script4rss SUBDIR += seahub SUBDIR += searx SUBDIR += selenium SUBDIR += serendipity SUBDIR += serf SUBDIR += servlet-api SUBDIR += sfeed SUBDIR += sfnt2woff SUBDIR += shellinabox SUBDIR += shttpd SUBDIR += silicon SUBDIR += simple-web-server SUBDIR += sitecopy SUBDIR += slowcgi SUBDIR += slowhttptest SUBDIR += smarty2 SUBDIR += smarty3 SUBDIR += smb_auth SUBDIR += snarf SUBDIR += sogo SUBDIR += sogo-activesync SUBDIR += sogo2 SUBDIR += sogo2-activesync SUBDIR += spawn-fcgi SUBDIR += spreadlogd SUBDIR += sqstat SUBDIR += squid SUBDIR += squid-devel SUBDIR += squid_radius_auth SUBDIR += squidanalyzer SUBDIR += squidclamav SUBDIR += squidguard SUBDIR += squidpurge SUBDIR += squidview SUBDIR += srg SUBDIR += srt SUBDIR += stagit SUBDIR += subsonic-standalone SUBDIR += suphp SUBDIR += surf SUBDIR += swiggle SUBDIR += tclhttpd SUBDIR += tclwebtest SUBDIR += tdiary SUBDIR += tdom SUBDIR += template_ SUBDIR += templatelite SUBDIR += thirtybees SUBDIR += threejs SUBDIR += threema-web SUBDIR += thttpd SUBDIR += thumbnail_index SUBDIR += thundercache SUBDIR += thundersnarf SUBDIR += tidy SUBDIR += tidy-devel SUBDIR += tidy-html5 SUBDIR += tidy-lib SUBDIR += tikiwiki SUBDIR += tinymce SUBDIR += tinyproxy SUBDIR += tivoka SUBDIR += tntnet SUBDIR += tokyopromenade SUBDIR += tomcat-devel SUBDIR += tomcat-native SUBDIR += tomcat10 SUBDIR += tomcat85 SUBDIR += tomcat9 SUBDIR += tomee SUBDIR += trac-devel SUBDIR += trafficserver SUBDIR += transmission-web SUBDIR += transproxy SUBDIR += tt-rss SUBDIR += ttf2eot SUBDIR += tusc SUBDIR += tusd SUBDIR += twiki SUBDIR += twiki-BehaviourContrib SUBDIR += twiki-BlogAddOn SUBDIR += twiki-BugzillaLinkPlugin SUBDIR += twiki-ClassicSkin SUBDIR += twiki-CommentPlugin SUBDIR += twiki-EditTablePlugin SUBDIR += twiki-EmptyPlugin SUBDIR += twiki-GluePlugin SUBDIR += twiki-InterwikiPlugin SUBDIR += twiki-JSCalendarContrib SUBDIR += twiki-LDAPPasswordChangerPlugin SUBDIR += twiki-LdapContrib SUBDIR += twiki-LdapNgPlugin SUBDIR += twiki-MailerContrib SUBDIR += twiki-MathModePlugin SUBDIR += twiki-NewUserPlugin SUBDIR += twiki-PatternSkin SUBDIR += twiki-PreferencesPlugin SUBDIR += twiki-RenderListPlugin SUBDIR += twiki-SlideShowPlugin SUBDIR += twiki-SmiliesPlugin SUBDIR += twiki-SpreadSheetPlugin SUBDIR += twiki-SubscribePlugin SUBDIR += twiki-TWikiUserMappingContrib SUBDIR += twiki-TablePlugin SUBDIR += twiki-TagMePlugin SUBDIR += twiki-TinyMCEPlugin SUBDIR += twiki-TipsContrib SUBDIR += twiki-TopicVarsPlugin SUBDIR += twiki-TwistyContrib SUBDIR += twiki-TwistyPlugin SUBDIR += twiki-WysiwygPlugin SUBDIR += twms SUBDIR += typo3-10 SUBDIR += typo3-11 SUBDIR += uchiwa SUBDIR += ufdbguard SUBDIR += ulfius SUBDIR += unit SUBDIR += unit-java SUBDIR += unit-perl SUBDIR += unit-php SUBDIR += unit-python SUBDIR += unit-ruby SUBDIR += uwebsockets SUBDIR += uwsgi SUBDIR += uwsgitop SUBDIR += validator SUBDIR += varnish-ip2location SUBDIR += varnish-ip2proxy SUBDIR += varnish-libvmod-digest SUBDIR += varnish-libvmod-dynamic SUBDIR += varnish-libvmod-geoip2 SUBDIR += varnish-libvmod-maxminddb SUBDIR += varnish-libvmod-querystring SUBDIR += varnish-libvmod-redis SUBDIR += varnish-modules SUBDIR += varnish-nagios SUBDIR += varnish4 SUBDIR += varnish6 SUBDIR += varnish7 SUBDIR += varnish_exporter SUBDIR += vdr-plugin-live SUBDIR += vdradmin-am SUBDIR += vertx SUBDIR += vger SUBDIR += vimb SUBDIR += visitors SUBDIR += volta SUBDIR += vultr-cli SUBDIR += w3m SUBDIR += w3m-img SUBDIR += w3mir SUBDIR += web2ldap SUBDIR += webalizer SUBDIR += webbrowser SUBDIR += webcopy SUBDIR += webcrawl SUBDIR += webfs SUBDIR += webgrind SUBDIR += webhook SUBDIR += webinject SUBDIR += webkit2-gtk3 SUBDIR += weblint++ SUBDIR += webpy SUBDIR += webresolve SUBDIR += websh SUBDIR += websocat SUBDIR += websocketd SUBDIR += webstone SUBDIR += webstone-ssl SUBDIR += webtrees SUBDIR += webtrees20 SUBDIR += wget2 SUBDIR += wgetpaste SUBDIR += wikicalc SUBDIR += wordpress SUBDIR += wpebackend-fdo SUBDIR += writeas-cli SUBDIR += writefreely SUBDIR += wsdlpull SUBDIR += wslay SUBDIR += wsmake SUBDIR += wt SUBDIR += wuzz SUBDIR += wwwoffle SUBDIR += xapian-omega SUBDIR += xapian-omega12 SUBDIR += xcaddy SUBDIR += xfce4-smartbookmark-plugin SUBDIR += xh SUBDIR += xist SUBDIR += xoops SUBDIR += xsp SUBDIR += yabb SUBDIR += yanopaste SUBDIR += yarn SUBDIR += yarn-node14 SUBDIR += yarn-node16 SUBDIR += yarn-node17 SUBDIR += yarr SUBDIR += yaws SUBDIR += you-get SUBDIR += yourls SUBDIR += youtube_dl SUBDIR += yt-dlp SUBDIR += ytdl SUBDIR += yuicompressor SUBDIR += zend-framework SUBDIR += zenphoto SUBDIR += zerowait-httpd SUBDIR += zola .include diff --git a/www/py-beautifulsoup449/Makefile b/www/py-beautifulsoup449/Makefile new file mode 100644 index 000000000000..0cc1d0e4d413 --- /dev/null +++ b/www/py-beautifulsoup449/Makefile @@ -0,0 +1,25 @@ +# Created by: Mike Meyer + +PORTNAME= beautifulsoup4 +PORTVERSION= 4.9.3 +CATEGORIES= www python +MASTER_SITES= CHEESESHOP +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +PKGNAMESUFFIX= 49 + +MAINTAINER= sunpoet@FreeBSD.org +COMMENT= HTML/XML Parser for Python + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/COPYING.txt + +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}soupsieve>=1.2:www/py-soupsieve@${PY_FLAVOR} + +USES= python:3.7+ +USE_PYTHON= autoplist concurrent distutils + +NO_ARCH= yes + +PORTSCOUT= limit:^4\.9\. + +.include diff --git a/www/py-beautifulsoup449/distinfo b/www/py-beautifulsoup449/distinfo new file mode 100644 index 000000000000..3a02c621b6cd --- /dev/null +++ b/www/py-beautifulsoup449/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1650228654 +SHA256 (beautifulsoup4-4.9.3.tar.gz) = 84729e322ad1d5b4d25f805bfa05b902dd96450f43842c4e99067d5e1369eb25 +SIZE (beautifulsoup4-4.9.3.tar.gz) = 376031 diff --git a/www/py-beautifulsoup449/files/patch-2to3 b/www/py-beautifulsoup449/files/patch-2to3 new file mode 100644 index 000000000000..a3249a90c527 --- /dev/null +++ b/www/py-beautifulsoup449/files/patch-2to3 @@ -0,0 +1,901 @@ +--- bs4/__init__.py.orig 2020-10-03 15:30:53 UTC ++++ bs4/__init__.py +@@ -51,7 +51,7 @@ from .element import ( + + # The very first thing we do is give a useful error if someone is + # running this code under Python 3 without converting it. +-'You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work.'<>'You need to convert the code, either by installing it (`python setup.py install`) or by running 2to3 (`2to3 -w bs4`).' ++'You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work.'!='You need to convert the code, either by installing it (`python setup.py install`) or by running 2to3 (`2to3 -w bs4`).' + + # Define some custom warnings. + class GuessedAtParserWarning(UserWarning): +@@ -100,7 +100,7 @@ class BeautifulSoup(Tag): + # Since BeautifulSoup subclasses Tag, it's possible to treat it as + # a Tag with a .name. This name makes it clear the BeautifulSoup + # object isn't a real markup tag. +- ROOT_TAG_NAME = u'[document]' ++ ROOT_TAG_NAME = '[document]' + + # If the end-user gives no indication which tree builder they + # want, look for one with these features. +@@ -217,7 +217,7 @@ class BeautifulSoup(Tag): + from_encoding = from_encoding or deprecated_argument( + "fromEncoding", "from_encoding") + +- if from_encoding and isinstance(markup, unicode): ++ if from_encoding and isinstance(markup, str): + warnings.warn("You provided Unicode markup but also provided a value for from_encoding. Your from_encoding will be ignored.") + from_encoding = None + +@@ -234,7 +234,7 @@ class BeautifulSoup(Tag): + builder_class = builder + builder = None + elif builder is None: +- if isinstance(features, basestring): ++ if isinstance(features, str): + features = [features] + if features is None or len(features) == 0: + features = self.DEFAULT_BUILDER_FEATURES +@@ -309,13 +309,13 @@ class BeautifulSoup(Tag): + markup = markup.read() + elif len(markup) <= 256 and ( + (isinstance(markup, bytes) and not b'<' in markup) +- or (isinstance(markup, unicode) and not u'<' in markup) ++ or (isinstance(markup, str) and not '<' in markup) + ): + # Print out warnings for a couple beginner problems + # involving passing non-markup to Beautiful Soup. + # Beautiful Soup will still parse the input as markup, + # just in case that's what the user really wants. +- if (isinstance(markup, unicode) ++ if (isinstance(markup, str) + and not os.path.supports_unicode_filenames): + possible_filename = markup.encode("utf8") + else: +@@ -323,7 +323,7 @@ class BeautifulSoup(Tag): + is_file = False + try: + is_file = os.path.exists(possible_filename) +- except Exception, e: ++ except Exception as e: + # This is almost certainly a problem involving + # characters not valid in filenames on this + # system. Just let it go. +@@ -353,9 +353,9 @@ class BeautifulSoup(Tag): + pass + + if not success: +- other_exceptions = [unicode(e) for e in rejections] ++ other_exceptions = [str(e) for e in rejections] + raise ParserRejectedMarkup( +- u"The markup you provided was rejected by the parser. Trying a different parser or a different encoding may help.\n\nOriginal exception(s) from parser:\n " + "\n ".join(other_exceptions) ++ "The markup you provided was rejected by the parser. Trying a different parser or a different encoding may help.\n\nOriginal exception(s) from parser:\n " + "\n ".join(other_exceptions) + ) + + # Clear out the markup and remove the builder's circular +@@ -406,9 +406,9 @@ class BeautifulSoup(Tag): + if isinstance(markup, bytes): + space = b' ' + cant_start_with = (b"http:", b"https:") +- elif isinstance(markup, unicode): +- space = u' ' +- cant_start_with = (u"http:", u"https:") ++ elif isinstance(markup, str): ++ space = ' ' ++ cant_start_with = ("http:", "https:") + else: + return + +@@ -545,7 +545,7 @@ class BeautifulSoup(Tag): + containerClass = self.string_container(containerClass) + + if self.current_data: +- current_data = u''.join(self.current_data) ++ current_data = ''.join(self.current_data) + # If whitespace is not preserved, and this string contains + # nothing but ASCII spaces, replace it with a single space + # or newline. +@@ -748,9 +748,9 @@ class BeautifulSoup(Tag): + eventual_encoding = None + if eventual_encoding != None: + encoding_part = ' encoding="%s"' % eventual_encoding +- prefix = u'\n' % encoding_part ++ prefix = '\n' % encoding_part + else: +- prefix = u'' ++ prefix = '' + if not pretty_print: + indent_level = None + else: +@@ -788,4 +788,4 @@ class FeatureNotFound(ValueError): + if __name__ == '__main__': + import sys + soup = BeautifulSoup(sys.stdin) +- print(soup.prettify()) ++ print((soup.prettify())) +--- bs4/builder/_html5lib.py.orig 2020-09-26 14:36:10 UTC ++++ bs4/builder/_html5lib.py +@@ -33,7 +33,7 @@ try: + # Pre-0.99999999 + from html5lib.treebuilders import _base as treebuilder_base + new_html5lib = False +-except ImportError, e: ++except ImportError as e: + # 0.99999999 and up + from html5lib.treebuilders import base as treebuilder_base + new_html5lib = True +@@ -79,7 +79,7 @@ class HTML5TreeBuilder(HTMLTreeBuilder): + parser = html5lib.HTMLParser(tree=self.create_treebuilder) + self.underlying_builder.parser = parser + extra_kwargs = dict() +- if not isinstance(markup, unicode): ++ if not isinstance(markup, str): + if new_html5lib: + extra_kwargs['override_encoding'] = self.user_specified_encoding + else: +@@ -87,13 +87,13 @@ class HTML5TreeBuilder(HTMLTreeBuilder): + doc = parser.parse(markup, **extra_kwargs) + + # Set the character encoding detected by the tokenizer. +- if isinstance(markup, unicode): ++ if isinstance(markup, str): + # We need to special-case this because html5lib sets + # charEncoding to UTF-8 if it gets Unicode input. + doc.original_encoding = None + else: + original_encoding = parser.tokenizer.stream.charEncoding[0] +- if not isinstance(original_encoding, basestring): ++ if not isinstance(original_encoding, str): + # In 0.99999999 and up, the encoding is an html5lib + # Encoding object. We want to use a string for compatibility + # with other tree builders. +@@ -110,7 +110,7 @@ class HTML5TreeBuilder(HTMLTreeBuilder): + + def test_fragment_to_document(self, fragment): + """See `TreeBuilder`.""" +- return u'%s' % fragment ++ return '%s' % fragment + + + class TreeBuilderForHtml5lib(treebuilder_base.TreeBuilder): +@@ -217,7 +217,7 @@ class TreeBuilderForHtml5lib(treebuilder_base.TreeBuil + rv.append("|%s<%s>" % (' ' * indent, name)) + if element.attrs: + attributes = [] +- for name, value in element.attrs.items(): ++ for name, value in list(element.attrs.items()): + if isinstance(name, NamespacedAttribute): + name = "%s %s" % (prefixes[name.namespace], name.name) + if isinstance(value, list): +@@ -272,7 +272,7 @@ class Element(treebuilder_base.Node): + + def appendChild(self, node): + string_child = child = None +- if isinstance(node, basestring): ++ if isinstance(node, str): + # Some other piece of code decided to pass in a string + # instead of creating a TextElement object to contain the + # string. +@@ -289,7 +289,7 @@ class Element(treebuilder_base.Node): + child = node.element + node.parent = self + +- if not isinstance(child, basestring) and child.parent is not None: ++ if not isinstance(child, str) and child.parent is not None: + node.element.extract() + + if (string_child is not None and self.element.contents +@@ -302,7 +302,7 @@ class Element(treebuilder_base.Node): + old_element.replace_with(new_element) + self.soup._most_recent_element = new_element + else: +- if isinstance(node, basestring): ++ if isinstance(node, str): + # Create a brand new NavigableString from this string. + child = self.soup.new_string(node) + +@@ -340,7 +340,7 @@ class Element(treebuilder_base.Node): + + self.soup.builder._replace_cdata_list_attribute_values( + self.name, attributes) +- for name, value in attributes.items(): ++ for name, value in list(attributes.items()): + self.element[name] = value + + # The attributes may contain variables that need substitution. +--- bs4/builder/_htmlparser.py.orig 2020-09-26 14:36:05 UTC ++++ bs4/builder/_htmlparser.py +@@ -8,11 +8,11 @@ __all__ = [ + 'HTMLParserTreeBuilder', + ] + +-from HTMLParser import HTMLParser ++from html.parser import HTMLParser + + try: +- from HTMLParser import HTMLParseError +-except ImportError, e: ++ from html.parser import HTMLParseError ++except ImportError as e: + # HTMLParseError is removed in Python 3.5. Since it can never be + # thrown in 3.5, we can just define our own class as a placeholder. + class HTMLParseError(Exception): +@@ -219,14 +219,14 @@ class BeautifulSoupHTMLParser(HTMLParser): + continue + try: + data = bytearray([real_name]).decode(encoding) +- except UnicodeDecodeError, e: ++ except UnicodeDecodeError as e: + pass + if not data: + try: +- data = unichr(real_name) +- except (ValueError, OverflowError), e: ++ data = chr(real_name) ++ except (ValueError, OverflowError) as e: + pass +- data = data or u"\N{REPLACEMENT CHARACTER}" ++ data = data or "\N{REPLACEMENT CHARACTER}" + self.handle_data(data) + + def handle_entityref(self, name): +@@ -353,7 +353,7 @@ class HTMLParserTreeBuilder(HTMLTreeBuilder): + document to Unicode and parsing it. Each strategy will be tried + in turn. + """ +- if isinstance(markup, unicode): ++ if isinstance(markup, str): + # Parse Unicode as-is. + yield (markup, None, None, False) + return +@@ -376,7 +376,7 @@ class HTMLParserTreeBuilder(HTMLTreeBuilder): + try: + parser.feed(markup) + parser.close() +- except HTMLParseError, e: ++ except HTMLParseError as e: + warnings.warn(RuntimeWarning( + "Python's built-in HTMLParser cannot parse the given document. This is not a bug in Beautiful Soup. The best solution is to install an external parser (lxml or html5lib), and use Beautiful Soup with that parser. See http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser for help.")) + raise e +--- bs4/builder/_lxml.py.orig 2020-09-07 11:13:41 UTC ++++ bs4/builder/_lxml.py +@@ -8,11 +8,11 @@ __all__ = [ + + try: + from collections.abc import Callable # Python 3.6 +-except ImportError , e: ++except ImportError as e: + from collections import Callable + + from io import BytesIO +-from StringIO import StringIO ++from io import StringIO + from lxml import etree + from bs4.element import ( + Comment, +@@ -35,7 +35,7 @@ LXML = 'lxml' + + def _invert(d): + "Invert a dictionary." +- return dict((v,k) for k, v in d.items()) ++ return dict((v,k) for k, v in list(d.items())) + + class LXMLTreeBuilderForXML(TreeBuilder): + DEFAULT_PARSER_CLASS = etree.XMLParser +@@ -81,7 +81,7 @@ class LXMLTreeBuilderForXML(TreeBuilder): + + :param mapping: A dictionary mapping namespace prefixes to URIs. + """ +- for key, value in mapping.items(): ++ for key, value in list(mapping.items()): + if key and key not in self.soup._namespaces: + # Let the BeautifulSoup object know about a new namespace. + # If there are multiple namespaces defined with the same +@@ -169,12 +169,12 @@ class LXMLTreeBuilderForXML(TreeBuilder): + else: + self.processing_instruction_class = XMLProcessingInstruction + +- if isinstance(markup, unicode): ++ if isinstance(markup, str): + # We were given Unicode. Maybe lxml can parse Unicode on + # this system? + yield markup, None, document_declared_encoding, False + +- if isinstance(markup, unicode): ++ if isinstance(markup, str): + # No, apparently not. Convert the Unicode to UTF-8 and + # tell lxml to parse it as UTF-8. + yield (markup.encode("utf8"), "utf8", +@@ -189,7 +189,7 @@ class LXMLTreeBuilderForXML(TreeBuilder): + def feed(self, markup): + if isinstance(markup, bytes): + markup = BytesIO(markup) +- elif isinstance(markup, unicode): ++ elif isinstance(markup, str): + markup = StringIO(markup) + + # Call feed() at least once, even if the markup is empty, +@@ -204,7 +204,7 @@ class LXMLTreeBuilderForXML(TreeBuilder): + if len(data) != 0: + self.parser.feed(data) + self.parser.close() +- except (UnicodeDecodeError, LookupError, etree.ParserError), e: ++ except (UnicodeDecodeError, LookupError, etree.ParserError) as e: + raise ParserRejectedMarkup(e) + + def close(self): +@@ -233,7 +233,7 @@ class LXMLTreeBuilderForXML(TreeBuilder): + # Also treat the namespace mapping as a set of attributes on the + # tag, so we can recreate it later. + attrs = attrs.copy() +- for prefix, namespace in nsmap.items(): ++ for prefix, namespace in list(nsmap.items()): + attribute = NamespacedAttribute( + "xmlns", prefix, "http://www.w3.org/2000/xmlns/") + attrs[attribute] = namespace +@@ -242,7 +242,7 @@ class LXMLTreeBuilderForXML(TreeBuilder): + # from lxml with namespaces attached to their names, and + # turn then into NamespacedAttribute objects. + new_attrs = {} +- for attr, value in attrs.items(): ++ for attr, value in list(attrs.items()): + namespace, attr = self._getNsTag(attr) + if namespace is None: + new_attrs[attr] = value +@@ -302,7 +302,7 @@ class LXMLTreeBuilderForXML(TreeBuilder): + + def test_fragment_to_document(self, fragment): + """See `TreeBuilder`.""" +- return u'\n%s' % fragment ++ return '\n%s' % fragment + + + class LXMLTreeBuilder(HTMLTreeBuilder, LXMLTreeBuilderForXML): +@@ -323,10 +323,10 @@ class LXMLTreeBuilder(HTMLTreeBuilder, LXMLTreeBuilder + self.parser = self.parser_for(encoding) + self.parser.feed(markup) + self.parser.close() +- except (UnicodeDecodeError, LookupError, etree.ParserError), e: ++ except (UnicodeDecodeError, LookupError, etree.ParserError) as e: + raise ParserRejectedMarkup(e) + + + def test_fragment_to_document(self, fragment): + """See `TreeBuilder`.""" +- return u'%s' % fragment ++ return '%s' % fragment +--- bs4/diagnose.py.orig 2020-05-17 17:55:43 UTC ++++ bs4/diagnose.py +@@ -4,8 +4,8 @@ + __license__ = "MIT" + + import cProfile +-from StringIO import StringIO +-from HTMLParser import HTMLParser ++from io import StringIO ++from html.parser import HTMLParser + import bs4 + from bs4 import BeautifulSoup, __version__ + from bs4.builder import builder_registry +@@ -25,8 +25,8 @@ def diagnose(data): + :param data: A string containing markup that needs to be explained. + :return: None; diagnostics are printed to standard output. + """ +- print("Diagnostic running on Beautiful Soup %s" % __version__) +- print("Python version %s" % sys.version) ++ print(("Diagnostic running on Beautiful Soup %s" % __version__)) ++ print(("Python version %s" % sys.version)) + + basic_parsers = ["html.parser", "html5lib", "lxml"] + for name in basic_parsers: +@@ -35,16 +35,16 @@ def diagnose(data): + break + else: + basic_parsers.remove(name) +- print( ++ print(( + "I noticed that %s is not installed. Installing it may help." % +- name) ++ name)) + + if 'lxml' in basic_parsers: + basic_parsers.append("lxml-xml") + try: + from lxml import etree +- print("Found lxml version %s" % ".".join(map(str,etree.LXML_VERSION))) +- except ImportError, e: ++ print(("Found lxml version %s" % ".".join(map(str,etree.LXML_VERSION)))) ++ except ImportError as e: + print( + "lxml is not installed or couldn't be imported.") + +@@ -52,21 +52,21 @@ def diagnose(data): + if 'html5lib' in basic_parsers: + try: + import html5lib +- print("Found html5lib version %s" % html5lib.__version__) +- except ImportError, e: ++ print(("Found html5lib version %s" % html5lib.__version__)) ++ except ImportError as e: + print( + "html5lib is not installed or couldn't be imported.") + + if hasattr(data, 'read'): + data = data.read() + elif data.startswith("http:") or data.startswith("https:"): +- print('"%s" looks like a URL. Beautiful Soup is not an HTTP client.' % data) ++ print(('"%s" looks like a URL. Beautiful Soup is not an HTTP client.' % data)) + print("You need to use some other library to get the document behind the URL, and feed that document to Beautiful Soup.") + return + else: + try: + if os.path.exists(data): +- print('"%s" looks like a filename. Reading data from the file.' % data) ++ print(('"%s" looks like a filename. Reading data from the file.' % data)) + with open(data) as fp: + data = fp.read() + except ValueError: +@@ -76,19 +76,19 @@ def diagnose(data): + print("") + + for parser in basic_parsers: +- print("Trying to parse your markup with %s" % parser) ++ print(("Trying to parse your markup with %s" % parser)) + success = False + try: + soup = BeautifulSoup(data, features=parser) + success = True +- except Exception, e: +- print("%s could not parse the markup." % parser) ++ except Exception as e: ++ print(("%s could not parse the markup." % parser)) + traceback.print_exc() + if success: +- print("Here's what %s did with the markup:" % parser) +- print(soup.prettify()) ++ print(("Here's what %s did with the markup:" % parser)) ++ print((soup.prettify())) + +- print("-" * 80) ++ print(("-" * 80)) + + def lxml_trace(data, html=True, **kwargs): + """Print out the lxml events that occur during parsing. +@@ -104,7 +104,7 @@ def lxml_trace(data, html=True, **kwargs): + """ + from lxml import etree + for event, element in etree.iterparse(StringIO(data), html=html, **kwargs): +- print("%s, %4s, %s" % (event, element.tag, element.text)) ++ print(("%s, %4s, %s" % (event, element.tag, element.text))) + + class AnnouncingParser(HTMLParser): + """Subclass of HTMLParser that announces parse events, without doing +@@ -193,9 +193,9 @@ def rdoc(num_elements=1000): + + def benchmark_parsers(num_elements=100000): + """Very basic head-to-head performance benchmark.""" +- print("Comparative parser benchmark on Beautiful Soup %s" % __version__) ++ print(("Comparative parser benchmark on Beautiful Soup %s" % __version__)) + data = rdoc(num_elements) +- print("Generated a large invalid HTML document (%d bytes)." % len(data)) ++ print(("Generated a large invalid HTML document (%d bytes)." % len(data))) + + for parser in ["lxml", ["lxml", "html"], "html5lib", "html.parser"]: + success = False +@@ -204,24 +204,24 @@ def benchmark_parsers(num_elements=100000): + soup = BeautifulSoup(data, parser) + b = time.time() + success = True +- except Exception, e: +- print("%s could not parse the markup." % parser) ++ except Exception as e: ++ print(("%s could not parse the markup." % parser)) + traceback.print_exc() + if success: +- print("BS4+%s parsed the markup in %.2fs." % (parser, b-a)) ++ print(("BS4+%s parsed the markup in %.2fs." % (parser, b-a))) + + from lxml import etree + a = time.time() + etree.HTML(data) + b = time.time() +- print("Raw lxml parsed the markup in %.2fs." % (b-a)) ++ print(("Raw lxml parsed the markup in %.2fs." % (b-a))) + + import html5lib + parser = html5lib.HTMLParser() + a = time.time() + parser.parse(data) + b = time.time() +- print("Raw html5lib parsed the markup in %.2fs." % (b-a)) ++ print(("Raw html5lib parsed the markup in %.2fs." % (b-a))) + + def profile(num_elements=100000, parser="lxml"): + """Use Python's profiler on a randomly generated document.""" +--- bs4/element.py.orig 2020-10-02 22:19:12 UTC ++++ bs4/element.py +@@ -3,14 +3,14 @@ __license__ = "MIT" + + try: + from collections.abc import Callable # Python 3.6 +-except ImportError , e: ++except ImportError as e: + from collections import Callable + import re + import sys + import warnings + try: + import soupsieve +-except ImportError, e: ++except ImportError as e: + soupsieve = None + warnings.warn( + 'The soupsieve package is not installed. CSS selectors cannot be used.' +@@ -57,22 +57,22 @@ def _alias(attr): + # Source: + # https://docs.python.org/3/library/codecs.html#python-specific-encodings + PYTHON_SPECIFIC_ENCODINGS = set([ +- u"idna", +- u"mbcs", +- u"oem", +- u"palmos", +- u"punycode", +- u"raw_unicode_escape", +- u"undefined", +- u"unicode_escape", +- u"raw-unicode-escape", +- u"unicode-escape", +- u"string-escape", +- u"string_escape", ++ "idna", ++ "mbcs", ++ "oem", ++ "palmos", ++ "punycode", ++ "raw_unicode_escape", ++ "undefined", ++ "unicode_escape", ++ "raw-unicode-escape", ++ "unicode-escape", ++ "string-escape", ++ "string_escape", + ]) + + +-class NamespacedAttribute(unicode): ++class NamespacedAttribute(str): + """A namespaced string (e.g. 'xml:lang') that remembers the namespace + ('xml') and the name ('lang') that were used to create it. + """ +@@ -84,18 +84,18 @@ class NamespacedAttribute(unicode): + name = None + + if name is None: +- obj = unicode.__new__(cls, prefix) ++ obj = str.__new__(cls, prefix) + elif prefix is None: + # Not really namespaced. +- obj = unicode.__new__(cls, name) ++ obj = str.__new__(cls, name) + else: +- obj = unicode.__new__(cls, prefix + ":" + name) ++ obj = str.__new__(cls, prefix + ":" + name) + obj.prefix = prefix + obj.name = name + obj.namespace = namespace + return obj + +-class AttributeValueWithCharsetSubstitution(unicode): ++class AttributeValueWithCharsetSubstitution(str): + """A stand-in object for a character encoding specified in HTML.""" + + class CharsetMetaAttributeValue(AttributeValueWithCharsetSubstitution): +@@ -106,7 +106,7 @@ class CharsetMetaAttributeValue(AttributeValueWithChar + """ + + def __new__(cls, original_value): +- obj = unicode.__new__(cls, original_value) ++ obj = str.__new__(cls, original_value) + obj.original_value = original_value + return obj + +@@ -134,9 +134,9 @@ class ContentMetaAttributeValue(AttributeValueWithChar + match = cls.CHARSET_RE.search(original_value) + if match is None: + # No substitution necessary. +- return unicode.__new__(unicode, original_value) ++ return str.__new__(str, original_value) + +- obj = unicode.__new__(cls, original_value) ++ obj = str.__new__(cls, original_value) + obj.original_value = original_value + return obj + +@@ -376,7 +376,7 @@ class PageElement(object): + raise ValueError("Cannot insert None into a tag.") + if new_child is self: + raise ValueError("Cannot insert a tag into itself.") +- if (isinstance(new_child, basestring) ++ if (isinstance(new_child, str) + and not isinstance(new_child, NavigableString)): + new_child = NavigableString(new_child) + +@@ -753,7 +753,7 @@ class PageElement(object): + result = (element for element in generator + if isinstance(element, Tag)) + return ResultSet(strainer, result) +- elif isinstance(name, basestring): ++ elif isinstance(name, str): + # Optimization to find all tags with a given name. + if name.count(':') == 1: + # This is a name with a prefix. If this is a namespace-aware document, +@@ -872,7 +872,7 @@ class PageElement(object): + return self.parents + + +-class NavigableString(unicode, PageElement): ++class NavigableString(str, PageElement): + """A Python Unicode string that is part of a parse tree. + + When Beautiful Soup parses the markup penguin, it will +@@ -895,10 +895,10 @@ class NavigableString(unicode, PageElement): + passed in to the superclass's __new__ or the superclass won't know + how to handle non-ASCII characters. + """ +- if isinstance(value, unicode): +- u = unicode.__new__(cls, value) ++ if isinstance(value, str): ++ u = str.__new__(cls, value) + else: +- u = unicode.__new__(cls, value, DEFAULT_OUTPUT_ENCODING) ++ u = str.__new__(cls, value, DEFAULT_OUTPUT_ENCODING) + u.setup() + return u + +@@ -909,7 +909,7 @@ class NavigableString(unicode, PageElement): + return type(self)(self) + + def __getnewargs__(self): +- return (unicode(self),) ++ return (str(self),) + + def __getattr__(self, attr): + """text.string gives you text. This is for backwards +@@ -975,30 +975,30 @@ class PreformattedString(NavigableString): + + class CData(PreformattedString): + """A CDATA block.""" +- PREFIX = u'' ++ PREFIX = '' + + class ProcessingInstruction(PreformattedString): + """A SGML processing instruction.""" + +- PREFIX = u'' ++ PREFIX = '' + + class XMLProcessingInstruction(ProcessingInstruction): + """An XML processing instruction.""" +- PREFIX = u'' ++ PREFIX = '' + + class Comment(PreformattedString): + """An HTML or XML comment.""" +- PREFIX = u'' ++ PREFIX = '' + + + class Declaration(PreformattedString): + """An XML declaration.""" +- PREFIX = u'' ++ PREFIX = '' + + + class Doctype(PreformattedString): +@@ -1026,8 +1026,8 @@ class Doctype(PreformattedString): + + return Doctype(value) + +- PREFIX = u'\n' ++ PREFIX = '\n' + + + class Stylesheet(NavigableString): +@@ -1263,7 +1263,7 @@ class Tag(PageElement): + for string in self._all_strings(True): + yield string + +- def get_text(self, separator=u"", strip=False, ++ def get_text(self, separator="", strip=False, + types=(NavigableString, CData)): + """Get all child strings, concatenated using the given separator. + +@@ -1416,7 +1416,7 @@ class Tag(PageElement): + def __contains__(self, x): + return x in self.contents + +- def __nonzero__(self): ++ def __bool__(self): + "A tag is non-None even if it has no contents." + return True + +@@ -1565,8 +1565,8 @@ class Tag(PageElement): + else: + if isinstance(val, list) or isinstance(val, tuple): + val = ' '.join(val) +- elif not isinstance(val, basestring): +- val = unicode(val) ++ elif not isinstance(val, str): ++ val = str(val) + elif ( + isinstance(val, AttributeValueWithCharsetSubstitution) + and eventual_encoding is not None +@@ -1575,7 +1575,7 @@ class Tag(PageElement): + + text = formatter.attribute_value(val) + decoded = ( +- unicode(key) + '=' ++ str(key) + '=' + + formatter.quoted_attribute_value(text)) + attrs.append(decoded) + close = '' +@@ -1934,7 +1934,7 @@ class SoupStrainer(object): + else: + attrs = kwargs + normalized_attrs = {} +- for key, value in attrs.items(): ++ for key, value in list(attrs.items()): + normalized_attrs[key] = self._normalize_search_value(value) + + self.attrs = normalized_attrs +@@ -1943,7 +1943,7 @@ class SoupStrainer(object): + def _normalize_search_value(self, value): + # Leave it alone if it's a Unicode string, a callable, a + # regular expression, a boolean, or None. +- if (isinstance(value, unicode) or isinstance(value, Callable) or hasattr(value, 'match') ++ if (isinstance(value, str) or isinstance(value, Callable) or hasattr(value, 'match') + or isinstance(value, bool) or value is None): + return value + +@@ -1956,7 +1956,7 @@ class SoupStrainer(object): + new_value = [] + for v in value: + if (hasattr(v, '__iter__') and not isinstance(v, bytes) +- and not isinstance(v, unicode)): ++ and not isinstance(v, str)): + # This is almost certainly the user's mistake. In the + # interests of avoiding infinite loops, we'll let + # it through as-is rather than doing a recursive call. +@@ -1968,7 +1968,7 @@ class SoupStrainer(object): + # Otherwise, convert it into a Unicode string. + # The unicode(str()) thing is so this will do the same thing on Python 2 + # and Python 3. +- return unicode(str(value)) ++ return str(str(value)) + + def __str__(self): + """A human-readable representation of this SoupStrainer.""" +@@ -1996,7 +1996,7 @@ class SoupStrainer(object): + markup = markup_name + markup_attrs = markup + +- if isinstance(self.name, basestring): ++ if isinstance(self.name, str): + # Optimization for a very common case where the user is + # searching for a tag with one specific name, and we're + # looking at a tag with a different name. +@@ -2052,7 +2052,7 @@ class SoupStrainer(object): + found = None + # If given a list of items, scan it for a text element that + # matches. +- if hasattr(markup, '__iter__') and not isinstance(markup, (Tag, basestring)): ++ if hasattr(markup, '__iter__') and not isinstance(markup, (Tag, str)): + for element in markup: + if isinstance(element, NavigableString) \ + and self.search(element): +@@ -2065,7 +2065,7 @@ class SoupStrainer(object): + found = self.search_tag(markup) + # If it's text, make sure the text matches. + elif isinstance(markup, NavigableString) or \ +- isinstance(markup, basestring): ++ isinstance(markup, str): + if not self.name and not self.attrs and self._matches(markup, self.text): + found = markup + else: +@@ -2110,7 +2110,7 @@ class SoupStrainer(object): + return not match_against + + if (hasattr(match_against, '__iter__') +- and not isinstance(match_against, basestring)): ++ and not isinstance(match_against, str)): + # We're asked to match against an iterable of items. + # The markup must be match at least one item in the + # iterable. We'll try each one in turn. +@@ -2137,7 +2137,7 @@ class SoupStrainer(object): + # the tag's name and once against its prefixed name. + match = False + +- if not match and isinstance(match_against, unicode): ++ if not match and isinstance(match_against, str): + # Exact string match + match = markup == match_against + +--- bs4/tests/test_html5lib.py.orig 2020-04-05 19:54:12 UTC ++++ bs4/tests/test_html5lib.py +@@ -5,7 +5,7 @@ import warnings + try: + from bs4.builder import HTML5TreeBuilder + HTML5LIB_PRESENT = True +-except ImportError, e: ++except ImportError as e: + HTML5LIB_PRESENT = False + from bs4.element import SoupStrainer + from bs4.testing import ( +@@ -74,14 +74,14 @@ class HTML5LibBuilderSmokeTest(SoupTest, HTML5TreeBuil + def test_reparented_markup(self): + markup = '

foo

\n

bar

' + soup = self.soup(markup) +- self.assertEqual(u"

foo

\n

bar

", soup.body.decode()) ++ self.assertEqual("

foo

\n

bar

", soup.body.decode()) + self.assertEqual(2, len(soup.find_all('p'))) + + + def test_reparented_markup_ends_with_whitespace(self): + markup = '

foo

\n

bar

\n' + soup = self.soup(markup) +- self.assertEqual(u"

foo

\n

bar

\n", soup.body.decode()) ++ self.assertEqual("

foo

\n

bar

\n", soup.body.decode()) + self.assertEqual(2, len(soup.find_all('p'))) + + def test_reparented_markup_containing_identical_whitespace_nodes(self): +@@ -127,7 +127,7 @@ class HTML5LibBuilderSmokeTest(SoupTest, HTML5TreeBuil + def test_foster_parenting(self): + markup = b"""A""" + soup = self.soup(markup) +- self.assertEqual(u"A
", soup.body.decode()) ++ self.assertEqual("A
", soup.body.decode()) + + def test_extraction(self): + """ +--- bs4/tests/test_lxml.py.orig 2020-04-05 19:54:12 UTC ++++ bs4/tests/test_lxml.py +@@ -7,7 +7,7 @@ try: + import lxml.etree + LXML_PRESENT = True + LXML_VERSION = lxml.etree.LXML_VERSION +-except ImportError, e: ++except ImportError as e: + LXML_PRESENT = False + LXML_VERSION = (0,) + +@@ -68,7 +68,7 @@ class LXMLTreeBuilderSmokeTest(SoupTest, HTMLTreeBuild + # if one is installed. + with warnings.catch_warnings(record=True) as w: + soup = BeautifulStoneSoup("") +- self.assertEqual(u"", unicode(soup.b)) ++ self.assertEqual("", str(soup.b)) + self.assertTrue("BeautifulStoneSoup class is deprecated" in str(w[0].message)) + + def test_tracking_line_numbers(self): +--- setup.py.orig 2020-10-03 15:31:00 UTC ++++ setup.py +@@ -30,7 +30,6 @@ setup( + 'lxml' : [ 'lxml'], + 'html5lib' : ['html5lib'], + }, +- use_2to3 = True, + classifiers=["Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", diff --git a/www/py-beautifulsoup449/pkg-descr b/www/py-beautifulsoup449/pkg-descr new file mode 100644 index 000000000000..8d41275bc801 --- /dev/null +++ b/www/py-beautifulsoup449/pkg-descr @@ -0,0 +1,12 @@ +Beautiful Soup parses arbitrarily invalid XML- or HTML-like substance +into a tree representation. It provides methods and Pythonic idioms +that make it easy to search and modify the tree. + +A well-formed XML/HTML document will yield a well-formed data +structure. An ill-formed XML/HTML document will yield a +correspondingly ill-formed data structure. If your document is only +locally well-formed, you can use this library to find and process the +well-formed part of it. The BeautifulSoup class has heuristics for +obtaining a sensible parse tree in the face of common HTML errors. + +WWW: https://www.crummy.com/software/BeautifulSoup/