--- /dev/null
--- /dev/null
++trafficserver for Debian
++------------------------
++
++Here are some configuration hints related to Traffic Server. Unless you already
++noted, configuration files are located in /etc/trafficserver. Traffic Server
++has some uncommon behaviour here: Please note, those files are generated auto-
++matically and some may not even be intended to be edited manually. Moreover it
++will rotate and synchronize configuration files if you run a cluster. Hence be
++careful when editing them, chances are Traffic Server WILL OVERWRITE them. This
++is especially true for comments which are not kept when using `traffic_line'
++(as explained below).
++
++* To get a general idea about traffic server and its architecture, read [4]. It
++ is crucial to understand the internal architecture before trying to start.
++
++* The main configuration file is `records.config'. You may either edit the main
++ configuration file by hand, but it is suggested to use the `traffic_line'
++ command instead. More on editing configuration files can be found on [1]. The
++ `traffic_line' command is used like this:
++
++ traffic_line -s proxy.config.proxy_name -v www.example.com
++
++ You might need to tell Traffic Server about your changes. If it is already
++ running use `traffic_line -x' to inform it about your changes. Please note
++ that you must restart your `traffic_server' daemon for some changes.
++
++* If you used Squid before you might find [2] helpful which lists Traffic Serv-
++ er configuration directives along their Squid equivalent. Use this as resour-
++ ce to understand Traffic Server.
++
++* To help you to get started, I am going to introduce you very briefly to Traf-
++ fic Server. Note, lines starting with `#' are remarks:
++
++ Open `records.config'.
++
++ # Configure the cluster interface
++ CONFIG proxy.config.cluster.ethernet_interface STRING eth0
++
++
++ # You may also want to bind your proxy server to a specific IP:
++ # Please note the security warning below as well
++ CONFIG proxy.local.incoming_ip_to_bind 1.2.3.4
++
++ # Next configure the listening port for incoming connections
++ CONFIG proxy.config.http.server_port INT 80
++
++ # Now tell Traffic Server how much Memory it is allowed to consume
++ # Set this value to -1 for best results which will instruct Traffic Server
++ # to consume roughly 1 MB for each GB of your disk backend storage size
++ # for memory caching. If you can afford it, go on and trash as much as
++ # you want and put here any positive value indicating the memory cache
++ # in bytes.
++ CONFIG proxy.config.cache.ram_cache.size LLONG 131072 # (128 MB)
++
++ Next edit `storage.config'. Debian ships with a default configuration poin-
++ ting to a cache file in `/var/cache/trafficserver' sized 256MB. This is fair-
++ ly ok for testing, otherwise feel free to change (value is in KB):
++
++ /var/cache/trafficserver 262144
++
++ Finally open `remap.config' where you need to tell Traffic Server about
++ your origin server(s):
++
++ map http://www.example.com/ http://www.example.com:8080/
++ # ---------------------- ----------------------------
++ # ^- This is your client This is your origin -^
++ # Host: header that server.
++ # is to be mappend
++
++* For a more comprehensive documentation about Traffic Server and its configu-
++ ration directives consult [3].
++
++ Yet the documentation on the web page can not be considered up to date for some
++ parts. Feel free to ask for help on the Apache Traffic Server mailing list:
++
++ E-Mail <users@trafficserver.apache.org>
++ URL: <http://mail-archives.apache.org/mod_mbox/trafficserver-users/>
++
++ More information may be found on either resource among those:
++ Project Website: <http://trafficserver.apache.org/>
++ IRC: #traffic-server on irc.freenode.net.
++ Project Wiki: https://cwiki.apache.org/TS/traffic-server.html
++
++* Traffic Server can basically act in two modes: As forward proxy and as a rever-
++ se proxy. Traffic Servers primary purpose is to act as reverse proxy (e.g.
++ different to Squid). Nonetheless you can Traffic Server still instruct to act
++ as forward proxy as well. If you know what you are doing, you need to set
++
++ CONFIG proxy.config.url_remap.remap_required INT 0
++
++ for that purpose.
++
++
++[1] https://docs.trafficserver.apache.org/en/latest/admin-guide/configuring-traffic-server.en.html
++[2] https://cwiki.apache.org/confluence/display/TS/SquidConfigTranslation
++[3] https://docs.trafficserver.apache.org/en/latest/admin-guide/files/records.config.en.html
++[4] https://docs.trafficserver.apache.org/en/latest/admin-guide/introduction.en.html
++
++ -- Arno Töll <debian@toell.net> Wed, 21 Mar 2012 14:10:21 +0100
--- /dev/null
--- /dev/null
++trafficserver (6.0.0-3) unstable; urgency=medium
++
++ If you are using 32-bits package, please not that upstream has
++ discontinued 32-bit support.
++ 32-bits Debian package will still be built, but is subject to removal
++ whenever 32-bit fails.
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Mon, 14 Dec 2015 10:29:12 +0100
++
++trafficserver (3.0.0-1) unstable; urgency=low
++
++ If you are upgrading from v2.1.8 or earlier to ATS 3.0 you need to migrate
++ to the new `records.config' configuration file. If possible, let Debian
++ overwrite your `records.config' configuration file.
++
++ Moreover you should clear all caches after upgrading (e.g. do "traffic_server
++ -Cclear").
++
++ The host.db data abse isn't required anymore. Therefore you can delete
++ `/etc/trafficserver/internal/hostdb.config' and `/var/cache/trafficserver/
++ host.db'.
++
++ -- Arno Töll <debian@toell.net> Wed, 15 Jun 2011 16:23:13 +0200
--- /dev/null
--- /dev/null
++trafficserver for Debian
++------------------------
++
++* ATS 8.0.0 comes with slight changes in config files.
++ Following ones has been removed:
++ - /etc/trafficserver/vaddrs.config
++ - /etc/trafficserver/metrics.config
++ - /etc/trafficserver/logging.config
++ - /etc/trafficserver/log_hosts.config
++ - /etc/trafficserver/congestion.config
++ - /etc/trafficserver/cluster.config
++ - /etc/trafficserver/body_factory/default/congestion#retryAfter
++
++* New config files have been added and now use yaml format.
++ More files will be migrated in the future:
++ - /etc/trafficserver/logging.yaml
++ - /etc/trafficserver/ssl_server_name.yaml
++
++* gzip pluging has been renamed into compress.
++ Existing configuration won't be updated
++
++* traffic_cop has been removed. Now, init and systemd files use traffic_manager
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Fri, 21 Sep 2018 09:04:07 +0200
++
++* If you are using 32-bits package, please note that upstream has
++ discontinued 32-bit support.
++ 32-bits Debian package will still be built, but is subject to removal
++ whenever 32-bit fails.
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Mon, 14 Dec 2015 10:29:12 +0100
++
++* Please read the CONFIGURATION.Debian file to get started with Traffic Server.
++
++* Currently Apache Traffic Server lacks man pages of binaries shipped along the
++ package. That's a known problem which is being worked on. Please read the
++ upstream documentation on the website instead.
++
++* If you read upstream's documentation about Traffic Server you will sometimes
++ find references to a program `/usr/bin/trafficserver`. Debian does not ship
++ this script. This is intentional. Use Debian's /etc/init.d/trafficserver
++ script instead.
++
++ -- Arno Töll <debian@toell.net> Tue, 31 Dec 2011 13:54:18 +0100
--- /dev/null
--- /dev/null
++Trafficserver-plugin-conf-remap for Debian
++-----------------------------------------
++
++* The conf_remap plug-in allows you to override configuration directives
++ dependent on actual remapping rules.
++* This plug-in replaces older legacy functionality which allowed to achieve a
++ similar behaviour previously by configuring remap rules for example with
++ switches like "@pristine_host_hdr=1" in your remap configuration.
++* If you want to achieve this behaviour now, configure a remap rule like this:
++
++ map http://cdn.example.com/ http://some-server.example.com \
++ @plugin=conf_remap.so @pparam=/etc/trafficserver/cdn.conf
++
++ where cdn.conf would look like records.config, e.g.
++
++ CONFIG proxy.config.url_remap.pristine_host_hdr INT 1
++
++ Doing this, you will override your global default configuration on a per map-
++ ping rule.
++
++* You may want to look on
++ <https://cwiki.apache.org/confluence/display/TS/conf_remap+Plug-In>
++ for a full list of options which are allowed to be overridden and perhaps
++ some updated information.
++
++ -- Arno Toell <debian@toell.net> Tue, 12 Jan 2011 19:30:18 +0100
--- /dev/null
--- /dev/null
++#! /usr/bin/perl
++
++use strict;
++
++our @config_lines;
++our %defaults = (
++ "proxy.config.alarm_email" => "trafficserver",
++ "proxy.config.admin.user_id" => "trafficserver",
++ "proxy.config.log.max_space_mb_for_logs" => 2000,
++);
++
++die("Usage: $0 <file name>") unless $#ARGV == 0;
++
++open(F, "+<", $ARGV[0]) || die("Cannot open $ARGV[0]: $!");
++while(my $line = <F>)
++{
++ if ($line =~ /^CONFIG/)
++ {
++ foreach my $pattern (keys %defaults)
++ {
++ $line =~ s/(?<=CONFIG $pattern)(\s+[A-Z]+)\s+.+$/$1 $defaults{$pattern}/;
++ }
++ }
++ push(@config_lines, $line);
++}
++seek(F, 0, 0);
++foreach my $line (@config_lines)
++{
++ print F $line;
++}
++print F "CONFIG proxy.config.admin.user_id STRING trafficserver\n";
++close(F);
--- /dev/null
--- /dev/null
++trafficserver (8.0.3+ds-4) unstable; urgency=medium
++
++ * Fix lintian warning 'skip-systemd-native-flag-missing-pre-depends'
++ * Use debhelper-compat instead of debian/compat
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Fri, 02 Aug 2019 09:07:31 +0200
++
++trafficserver (8.0.3+ds-3) unstable; urgency=medium
++
++ * Run upstream testsuite with autopkgtest.
++ * Enable CI tests on salsa (see debian/salsa-ci.yml).
++ * Set debhelper compatibility level to 12.
++ * Add myself to the Uploaders field.
++ * Set Standards-Version to 4.4.0.
++
++ -- Emanuele Rocca <ema@debian.org> Wed, 31 Jul 2019 11:11:59 +0200
++
++trafficserver (8.0.3+ds-2) unstable; urgency=medium
++
++ * Fix hardeing updating 0015-as-needed-fix.patch from Ubuntu
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Tue, 26 Mar 2019 08:44:17 +0100
++
++trafficserver (8.0.3+ds-1) unstable; urgency=medium
++
++ * Use secure URI in Homepage field.
++ * Re-export upstream signing key without extra signatures.
++ * Drop unnecessary dependency on dh-autoconf.
++ * New upstream version 8.0.3+ds
++ * Patches update for 8.0.3
++ * Add as-needed patch from Ubuntu
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Mon, 25 Mar 2019 10:29:35 +0100
++
++trafficserver (8.0.2+ds-1) unstable; urgency=medium
++
++ * Disable testing build in d/gitlab-ci.yml
++ * Update d/copyright to remove unneeded files when importing upstream release
++ * Update upstream GPG keys list
++ * New upstream version 8.0.2+ds
++ * Patches refresh for 8.0.2
++ * Update patch. Add dep3 headers
++ * Update d/control. Mark trafficserver-dev architecture all
++ * Remove signature from upstream keys. Fix lintian info
++ * Move dpkg-maintscript-helper commands to d/trafficserver.maintscript
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Wed, 30 Jan 2019 14:45:09 +0100
++
++trafficserver (8.0.1-4) unstable; urgency=medium
++
++ * Add patch and update d/control, d/rules to use system provided yaml-cpp
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Fri, 11 Jan 2019 19:07:28 +0100
++
++trafficserver (8.0.1-3) unstable; urgency=medium
++
++ * Add missed experimental plugin certifier
++ * Add man pages paths to d/not-installed to avoid too verbose dh_missing list.
++ Manpages are compressed before being install. Non-compressed version is in
++ turn erroneously detected as not installed.
++ * Update patch which has been merged upstream
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Mon, 07 Jan 2019 15:24:38 +0100
++
++trafficserver (8.0.1-2) unstable; urgency=medium
++
++ * Update Standards Version in d/control. No other changes needed
++ * Update trafficserver-experimental-plugins package descriptions
++ in d/control to fix lintian warnings
++ * Add patch 0012-fix-spelling-checks to fix spellings. Forwarded upstream
++ * Update patch 0006-fix-doc-build to include missing manpages
++ * Remove d/trafficserver.lintian-overrides
++ * Add patch 0013-fix-perl-interpreter-path. Fix lintian error which used
++ to be overridden in d/trafficserver.lintian-overrides
++ * Update d/trafficserver-dev.lintian-overrides
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Thu, 03 Jan 2019 10:52:44 +0100
++
++trafficserver (8.0.1-1) unstable; urgency=medium
++
++ * New upstream version 8.0.1
++ * Patches refresh for 8.0.1
++ * Removed patches which have been merged upstream:
++ - 0002-add-mips64-support
++ - 0004-fix_arm_build
++ - 0005-fix_build_kfreebsd
++ - 0007-fix-uri_signing
++ - 0010-fix-32bits-build
++ - 0012-fix-traffic_via
++ * Fix lintian warning public-upstream-key-not-minimal
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Mon, 03 Dec 2018 14:15:07 +0100
++
++trafficserver (8.0.0-4) unstable; urgency=medium
++
++ [ Emanuele Rocca ]
++ * Update descriptions in d/control
++
++ [ Jean Baptiste Favre ]
++ * Update patch to fix kfreebsd FTBFS
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Mon, 05 Nov 2018 10:13:03 +0100
++
++trafficserver (8.0.0-3) unstable; urgency=medium
++
++ * Remove webptransform experimental plugin
++ * Update patch to fix kfreebsd FTBFS
++ * Update d/copyright to fix lintian error
++ * Update d/rules to fix FTBFS for mips & mipsel archs
++ * Update d/rules to spare call to dpkg-parsechangelog
++ * Update d/copyright after 8.0.0 file moves
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Fri, 02 Nov 2018 14:24:38 +0100
++
++trafficserver (8.0.0-2) unstable; urgency=medium
++
++ * Add a patch to fix FTBFS with MySQL 8 (LP: #1795362)
++ * Update 0009-fix-mysql-8-build.patch which has been merged upstream
++ * Bump Standards-Version in d/control
++ * Add patch to fix 32bits arm & mips arch build
++ * Backport upstream patch to fix segmentation fault
++ * Backport upstream patch to fix traffic_via
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Wed, 17 Oct 2018 20:40:51 +0200
++
++trafficserver (8.0.0-1) unstable; urgency=medium
++
++ [ Aron Xu ]
++ * Remove .vscode directory
++ * systemd: After=network-online.target
++
++ [ Jean Baptiste Favre ]
++ * Update d/changelog for 8.0.0
++ * Update init and service file after traffic_cop removal
++ * Update d/README.Debian to reflect configuration changes
++ * Add d/gitlab-ci.yml to use Salsa CI
++ * Update d/control
++ * Add build-deps against graphviz, python3-sphinxcontrib.plantuml
++ and plantuml to build documentation & manpages
++ * Add build-deps against libcrypto++-dev, libjansson-dev, libcjose-dev to
++ build uri_signing plugin
++ * Update Breaks to manage plugins transition from experimental to stable
++ * Update postinst maintainer script, add postrm & preinst scripts to remove
++ obsolete config files
++ - /etc/trafficserver/vaddrs.config,
++ - /etc/trafficserver/metrics.config,
++ - /etc/trafficserver/logging.config,
++ - /etc/trafficserver/log_hosts.config,
++ - /etc/trafficserver/congestion.config,
++ - /etc/trafficserver/cluster.config,
++ - /etc/trafficserver/body_factory/default/congestion#retryAfter
++ * Update d/trafficserver and d/trafficserver-experimental-plugins install
++ files
++ - Stable plugin gzip renamed to compress
++ - Promoted stable plugins:
++ - cachekey,
++ - cache_promote,
++ - escalate,
++ - test_cppapi,
++ - tslua
++ - Added new experimental plugins:
++ - access_control,
++ - fq_pacing,
++ - prefetch,
++ - server_push_preload,
++ - system_stats,
++ - tls_bridge,
++ - traffic_dump,
++ - uri_signing
++ - Remove deprecated plugins collapsed_connection, epic
++ * Remove obsolete config option --enable-system-luajit from d/rules
++ * Add --with-build-version option to d/rule to have a deterministic
++ build-version
++ * Update d/copyright to remove .vscode during import at repack stage
++ * Update patches for 8.0.0
++ - Refresh patches for 8.0.0
++ - Removed patches:
++ - 0004-force-use-luajit-system*, updated upstream
++ - 0005-fix_documentation_build_option, updated upstream
++ - 0008-fix_build_lua, updated upstream
++ - 0009-fix-doc-python3, update upstream
++ - 0010-Remove-custom-memory-barriers-from-header_rewrite-an patches,
++ updated upstream
++ - Renamed remaining patches:
++ - 0006-fix_arm_build -> 0004-fix_arm_build,
++ - 0007-fix_build_kfreebsd -> 0005-fix_build_kfreebsd,
++ - 0009-fix-doc-git -> 0006-fix-doc-build
++ - Add patch to fix uri_signing experimental plugin build
++ - Add patch to fix check-unused-dependencies
++ * New upstream version 8.0.0
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Sat, 06 Oct 2018 12:43:13 +0200
++
++trafficserver (7.1.4+ds-1) unstable; urgency=medium
++
++ [ Aron Xu ]
++ * Use libunwind for mips*
++
++ [ Jean Baptiste Favre ]
++ * Update Debian standards version
++ * New upstream version 7.1.4+ds
++ * Patches refresh for 7.1.4
++ * Add lintian override for trafficserver package
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Mon, 06 Aug 2018 10:56:14 +0200
++
++trafficserver (7.1.3+ds-4) unstable; urgency=medium
++
++ * Fix FTBS on armel (Closes: #902112)
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Fri, 22 Jun 2018 17:13:53 +0200
++
++trafficserver (7.1.3+ds-3) unstable; urgency=medium
++
++ * Add systemd tmpfile support (LP: #1756207)
++ * Update Build-Depends (Closes: #887503)
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Wed, 13 Jun 2018 22:39:58 +0200
++
++trafficserver (7.1.3+ds-2) unstable; urgency=medium
++
++ * Update build-deps to libncurses6
++ * Update patch to fix arm* builds
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Fri, 18 May 2018 17:25:22 +0200
++
++trafficserver (7.1.3+ds-1) unstable; urgency=medium
++
++ * Update Vcs URLs. Replace alioth with salsa
++ * Add patch to make documentation build with python3. Fix lintian warning
++ * New upstream version 7.1.3+ds
++ * Update d/gbp.conf
++ * Patches refresh for 7.1.3
++ * Add a patch to fix doc build outside of git repository
++ * Update standards version
++ * Remove chown command from postinst script. Fix lintian warning
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Tue, 24 Apr 2018 10:17:21 +0200
++
++trafficserver (7.1.2+ds-3) unstable; urgency=medium
++
++ * Add upstream changelog file to trafficserver package
++ * Add systemd units file
++ * Fix documentation. Update links
++ * Update d/rules to remove examples binary files from package
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Fri, 16 Feb 2018 15:05:07 +0100
++
++trafficserver (7.1.2+ds-2) unstable; urgency=medium
++
++ * Drop patch for lua source code removal (Handled with repack)
++ * Drop patch for documentation build (merged upstream)
++ * Add a patch to make man pages being built
++ * Update d/compat
++ * Fix lintian warnings
++ * Update d/rule to fix lintian warning.
++ * Disable auto_test (again)
++ * Install CHANGELOG file in /usr/share/doc
++ * Enable documentation built (if not, man pages aren't either)
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Thu, 25 Jan 2018 23:38:51 +0100
++
++trafficserver (7.1.2+ds-1) unstable; urgency=medium
++
++ * New upstream version 7.1.2+ds
++ * Update d/patches for 7.1.2+ds
++ * Update build dependencies
++ * Update compilation flags
++ * Enable experimental plugin cache_key_genid
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Tue, 16 Jan 2018 18:18:40 +0100
++
++trafficserver (7.1.1-1) unstable; urgency=medium
++
++ * Fix trafficserver-dev dependencies. (Closes: #877457)
++ * Fix d/gbp.conf. Remove duplicate filter option
++ * Update standards version in d/control
++ * Fix debian-rules-sets-dpkg-architecture-variable lintian warning
++ * Fix debian-watch-uses-insecure-uri lintian info
++ * Update d/patches
++ * Update d/rules to reflect healthcheck being managed as a stable plugin
++ * Add a patch to fix kfreebsd build
++ * Add a patch to fix arm build
++ * New upstream version 7.1.0
++ * Remove broken 0008-fix_build_armel patch
++ * Patches refresh for 7.1.0
++ * Add new patch to fix build with luajit 2.1 (Closes: #873328)
++ * Update experimental modules list
++ * Update Debian Standards-Version & d/compat
++ * Update Vcs-* fields to use secure communication
++ * Lintian fix for d/NEWS
++ * Add new build option to use system luajit
++ * Update build dependencies (Closes: #859750)
++ * Fix lintian warning in d/copyright
++ * New upstream version 7.1.1
++ * Patches refresh for 7.1.1
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Tue, 02 Jan 2018 13:30:43 +0100
++
++trafficserver (7.0.0-5) unstable; urgency=medium
++
++ * Add patch to fix arm* build. (Closes: #857389)
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Wed, 22 Mar 2017 09:31:14 +0100
++
++trafficserver (7.0.0-4) unstable; urgency=medium
++
++ * Add Conflicts for file overwrites (Closes: #850775)
++
++ -- Aron Xu <aron@debian.org> Wed, 11 Jan 2017 14:49:15 +0800
++
++trafficserver (7.0.0-3) unstable; urgency=medium
++
++ * Fix documentation build for docutils >= 0.13 (Closes: #848800)
++ * Update LuaJIT patches serie to fallback using Lua if LuaJIT not found
++ * Update luajit patch.
++ - Remove hardcoded value
++ - Add luajit dynamic detection
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Wed, 04 Jan 2017 15:13:43 +0100
++
++trafficserver (7.0.0-2) unstable; urgency=medium
++
++ * Add patches to use system luajit and not the internal one any more
++ * Update d/rules to remove luajit exception.
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Fri, 25 Nov 2016 17:51:25 +0100
++
++trafficserver (7.0.0-1) unstable; urgency=medium
++
++ [ Arno Töll ]
++ * Remove myself as maintainer. Thanks to Aron and Jean Baptiste for stepping
++ in on my place and keeping the package up to date. It makes the confident
++ the package is in good hands now.
++
++ [ Jean Baptiste Favre ]
++ * New upstream release 7.0.0
++ * Patches refresh for 7.0.0
++ * Update plugins list
++ * Update build dependencies
++ * Add pkgconfig .pc file in trafficserver-dev package
++ * Enable experimental plugins webp_transform
++ * Enable traffic_top build (Closes: #836126)
++ * Remove Linux AIO support (Closes: #803661, #836124)
++ * Fix FTBFS for mips64el (Closes: #830856)
++ * Add patch to make the build reproductible (Closes: #833176)
++
++ [ Aron Xu ]
++ * Set myself as Maintainer at the moment
++ * Build-Depends on default-libmysqlclient-dev
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Wed, 16 Nov 2016 09:48:10 +0100
++
++trafficserver (6.2.0-1) unstable; urgency=medium
++
++ * Add upstream gpg keys for uscan pgpsigurlmangle option
++ * Imported Upstream version 6.2.0
++ * Patch refresh for 6.2.0
++ * Update trafficserver manpages list
++ * Update trafficserver install list
++ * Update trafficserver-experimental-plugins install list
++ * Update build dependencies (Add libmariadbclient-dev in experimental)
++ * Bump standards version
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Sat, 23 Jul 2016 19:15:58 +0200
++
++trafficserver (6.1.1-1) unstable; urgency=medium
++
++ * Imported Upstream version 6.1.1
++ * Update d/watch for gpg signature check
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Sat, 06 Feb 2016 10:37:41 +0100
++
++trafficserver (6.1.0-1) unstable; urgency=medium
++
++ * New upstream release
++ * Use -mcx16 on x86 platforms only (Closes: #805124)
++
++ -- Aron Xu <aron@debian.org> Tue, 02 Feb 2016 12:18:10 +0800
++
++trafficserver (6.0.0-3) unstable; urgency=medium
++
++ * Update d/NEWS & d/README.Debian with 32-bit upstream support drop
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Mon, 14 Dec 2015 10:48:20 +0100
++
++trafficserver (6.0.0-2) unstable; urgency=medium
++
++ * Re-enable 32-bit builds
++ * Add some optional build dependencies
++ * Use -O3 by default
++
++ -- Aron Xu <aron@debian.org> Sat, 31 Oct 2015 03:05:20 +0800
++
++trafficserver (6.0.0-1) unstable; urgency=medium
++
++ [ Aron Xu ]
++ * Avoid possible-missing-colon-in-closes
++
++ [ Jean Baptiste Favre ]
++ * Imported Upstream version 6.0.0
++ * Update experimental plugins list
++ - Remove channel_stats
++ - Add cache promote cache_promote.so
++ - Add cache ranage request cache_range_requests.so
++ - Add mp4 streaming media mp4.so
++ - Add Stream editor stream_editor.so
++
++ -- Aron Xu <aron@debian.org> Sat, 10 Oct 2015 11:19:19 +0200
++
++trafficserver (5.3.1-1) unstable; urgency=medium
++
++ [ Arno Töll ]
++ * Add proxy.config.admin.user_id setting
++
++ [ Aron Xu ]
++ * Add myself back to Uploaders
++ * Use dh compat 9
++
++ [ Jean Baptiste Favre ]
++ * Imported Upstream version 5.3.1
++ * Removed patch for TS-3632 (merged upstream)
++ * Upstream changes allow ftbfs with GCC-5 (Closes: #778148)
++
++ -- Jean Baptiste Favre <debian@jbfavre.org> Sat, 04 Jul 2015 23:20:49 +0200
++
++trafficserver (5.3.0-2) unstable; urgency=medium
++
++ * Avoid installing tslua.so on archs built without LuaJIT
++ (Closes: #770353)
++
++ -- Aron Xu <aron@debian.org> Thu, 11 Jun 2015 15:28:39 +0800
++
++trafficserver (5.3.0-1) unstable; urgency=medium
++
++ * Imported Upstream version 5.3.0
++ - CVE-2014-10022: remote DoS
++ * Remove fix_TS3316_i386_build patch
++ * Fix traffic_wccp build, missing OpenSSL symbol
++ * Add experimental plugin generator
++ * Format patch for TS-3632
++ * Update Uploader field in d/control
++
++ -- Jean Baptiste Favre <jbfavre@debian.org> Wed, 03 Jun 2015 20:06:13 +0200
++
++trafficserver (5.2.0-2) unstable; urgency=medium
++
++ * Disable LuaJIT for arm64
++
++ -- Aron Xu <aron@debian.org> Sat, 28 Feb 2015 23:51:00 +0800
++
++trafficserver (5.2.0-1) unstable; urgency=medium
++
++ [ Jean Baptiste Favre ]
++ * New upstream release.
++ * Add support for following experimental modules:
++ - epic
++ - header_normalize
++ - mysql_remap
++ - ssl_cert_loader
++ - sslheaders
++ * Remove missing file related to removed traffic_shell
++ * Backport patch for TS-3316 to solve i386 build issue
++ * Fix misconfigured call to dh_makeshlibs (used system dir instead
++ of temporary build one)
++
++ [ Aron Xu ]
++ * Enable all hardening features.
++ * Update copyright file.
++
++ -- Aron Xu <aron@debian.org> Thu, 12 Feb 2015 22:22:44 +0100
++
++trafficserver (5.1.1-1) unstable; urgency=medium
++
++ * New upstream release. This release includes fixes for these security
++ related vulnerabilities:
++ - CVE-2014-3566: Do not enable SSL3 by default
++ - CVE-2014-3624: Ensure remap requests are properly tunneled using CONNECT
++ requests to avoid an open relay
++ * Add support for ppc64el, patch merged upstream (Closes: #754134, #754808)
++ * Fix "ftbfs on kfreebsd" by conditionally building healthchecks.so on Linux
++ only. Patch supplied by Steven Chamberlain, thanks (Closes: #767287)
++
++ -- Arno Töll <arno@debian.org> Sun, 02 Nov 2014 12:40:44 -1100
++
++trafficserver (5.1.0-1) unstable; urgency=medium
++
++ * New upstream release
++ * Bump standards version to 3.9.6 (no changes needed)
++
++ [Jean Baptiste Favre]
++ * Add a debug package with debug symbols for those who need it.
++ * Split out experimental trafficserver plugins into a separate package so
++ that users are aware of their experimental character before using them.
++ * Add a libhwloc b-d so that ATS has a better idea about the underlying
++ hardware it runs at to improve the runtime performance
++
++ -- Arno Töll <arno@debian.org> Wed, 08 Oct 2014 23:50:49 -1100
++
++trafficserver (5.0.1-1) unstable; urgency=medium
++
++ * New upstream release including a fix for CVE-2014-3525 that allowed
++ attackers by special crafted packets to obtain privileges for services bound
++ to localhost
++
++ -- Arno Töll <arno@debian.org> Wed, 23 Jul 2014 04:43:00 -1100
++
++trafficserver (5.0.0-1) unstable; urgency=medium
++
++ * Acknowledge previous NMUs, thanks to Anibal Monsalve Salazar for
++ coordination.
++ * New upstream version. Patch changes:
++ + drop 0001-TS-1821.patch: released upstream in 5.0.0
++ + drop 0001-TS-2454-Fix-undefined-reference-to-__sync_fetch_and_.patch:
++ released upstream in 4.2
++ + drop add-mips-support.patch: released upstream in 5.0.0
++ + drop pthread_setname_np.patch: This was a Debian specific issue which is
++ being worked around in eglibc's commit r5460.
++ * Add "support for mips64": merged upstream (Closes: #750807)
++ * Build with dh-autoreconf to avoid build time issues with Automake 1.13
++ which is not in Debian yet.
++
++ -- Arno Töll <arno@debian.org> Sun, 06 Jul 2014 00:20:59 -1100
++
++trafficserver (4.1.2-1.2) unstable; urgency=medium
++
++ * Non-maintainer upload.
++ * Add missing prototype for pthread_setname_np()
++ Add pthread_setname_np.patch
++ Patch by Petr Salinger
++ Closes: #743584
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Fri, 04 Apr 2014 08:59:48 +0100
++
++trafficserver (4.1.2-1.1) unstable; urgency=medium
++
++ * Non-maintainer upload.
++ * Fix undefined reference to `__sync_fetch_and_sub_8' on ARM 32bit
++ Add 0001-TS-2454-Fix-undefined-reference-to-__sync_fetch_and_.patch
++ from https://issues.apache.org/jira/browse/TS-2454
++ Patch by Yunkai Zhang
++ * Add support for MIPS
++ Add add-mips-support.patch
++ Submitted: https://issues.apache.org/jira/browse/TS-2687
++ Merged: https://git-wip-us.apache.org/repos/asf?p=trafficserver.git;h=2f81790
++ Patch by Dejan Latinovic
++ Closes: 743395
++ * Build-depend on libboost-dev
++ Patch by Dejan Latinovic
++ Closes: #737510
++
++ -- Anibal Monsalve Salazar <anibal@debian.org> Thu, 03 Apr 2014 04:18:23 +0100
++
++trafficserver (4.1.2-1) unstable; urgency=medium
++
++ * Merge the experimental branch of trafficserver to unstable
++ * New upstram release (Closes: #711530, #733377)
++ + Refresh 0001-TS-1821.patch until it is fixed upstream
++ + Don't run autoreconf anymore, we do not need it anymore
++ + build depend on libaio-dev to support AIO on Linux systems
++ * Push standards version
++
++ -- Arno Töll <arno@debian.org> Wed, 29 Jan 2014 03:01:12 -1100
++
++trafficserver (3.3.2-1) experimental; urgency=low
++
++ [ Arno Töll ]
++ * Drop --with-arg-max from configure
++ * Update changelog in view of the new upstream version
++
++ [ Aron Xu ]
++ * Imported Upstream version 3.3.2
++ * Drop patch for enabling experimental plugins
++ * Add liblua5.1-dev and liboost1.53-dev to B-D
++ * Try on all archs for experimental builds
++ * Permit parallel building
++ * Fix typo in dep5 copyright file
++ * Do not install staticly linked library
++ * Enable Linux native AIO support for linux-any
++ * Enable reclaimable freelist
++
++ -- Aron Xu <aron@debian.org> Thu, 09 May 2013 01:00:04 +0800
++
++trafficserver (3.3.0+git20121208-0exp1) experimental; urgency=low
++
++ * Upstream git snapshot.
++ * Enable most of experimental plugins, install related libraries.
++ * Run dh_autoreconf.
++ * Make dh_auto_test errors non-fatal.
++
++ -- Aron Xu <aron@debian.org> Thu, 06 Dec 2012 23:32:25 +0800
++
++trafficserver (3.3.0-1) experimental; urgency=low
++
++ * Upload upstream development release to experimental.
++
++ -- Aron Xu <aron@debian.org> Thu, 29 Nov 2012 22:13:55 +0800
++
++trafficserver (3.2.5-1) unstable; urgency=low
++
++ * New upstream release
++ + Fix FTBFS on ARM (Closes: #691179)
++ + Fix FTBS with gcc 4.8 (Closes: #701427)
++ * Promote trafficserver to depend for trafficserver-dev to fix a broken
++ library symlink. The library is not required for all users, but those who
++ need it don't need to install it manually anymore (Closes: #715134)
++
++ -- Arno Töll <arno@debian.org> Sun, 21 Jul 2013 11:55:38 +0200
++
++trafficserver (3.2.4-1) unstable; urgency=low
++
++ * New upstream release
++ + Delete upstream's .gitignore file in our source tree
++ * Switch packaging repository to Git.
++ + Add gbp.conf file for those using git-buildpackage
++ * Fix "Upgrade fails if purging of cache fails" by not dying in a fire when
++ the postinst fails to purge the cache (Closes: #687698)
++ * Drop --with-arg-max from ./configure, it's not needed anymore.
++
++ -- Arno Töll <arno@debian.org> Tue, 29 Jan 2013 23:54:44 +0100
++
++trafficserver (3.2.0-1) unstable; urgency=low
++
++ * New upstream release
++ + If you are using SSL or HTTP filtering, please update your configuration.
++ proxy.config.http.quick_filter.mask and
++ proxy.config.ssl.server.cert.filename is not recognized anymore. Please
++ use ip_allow.config and ssl_multicert.config respectively instead.
++ There is no automated migration for this in Debian, as this affects your
++ site-specific configuration files.
++ + See https://cwiki.apache.org/confluence/display/TS/Upgrading+to+3.2 for
++ full upgrade instructions.
++ * Upstream decided to ship more plug-ins with the trafficserver core
++ distribution. These are all bundled into the main package now. Therefore,
++ the trafficserver-plugin-conf-remap package is not provided anymore.
++ * Update the default configuration file to ship with more moderate values
++ for the log configuration.
++ * Now do start ATS by default for fresh installations. The default
++ out-of-the box configuration is much more secure than past defaults.
++ * Purge the host and data cache on upgrades
++ * Let's welcome Aron Xu to the Uploaders of Trafficserver. Hi Aron! :)
++
++ -- Arno Töll <arno@debian.org> Fri, 14 Sep 2012 22:56:29 +0200
++
++trafficserver (3.0.5-1) unstable; urgency=low
++
++ * New upstream release.
++ * No kudos for the previous hostile NMU, but include the changelog to denote
++ this upload does not introduce a regression.
++ * Update my maintainer address
++ * Make the init script look much better when using fancy outputs.
++ * Fix "status" output of the init script
++ * Remove "DM-Upload-Allowed". I don't need that flag anymore.
++
++
++ -- Arno Töll <arno@debian.org> Sat, 09 Jun 2012 18:48:23 +0200
++
++trafficserver (3.0.4-1.1) unstable; urgency=low
++
++ * Non maintainer upload
++ * Fix build failure with GCC 4.7. Closes: #667396.
++
++ -- Matthias Klose <doko@debian.org> Wed, 30 May 2012 04:40:28 +0000
++
++trafficserver (3.0.4-1) unstable; urgency=high
++
++ * New upstream release
++ + Fix CVE-2012-0256: A request with a very large Host header caused ATS to
++ crash.
++ * Setting urgency to high because of security updates
++ * Push standards to 3.9.3 - no further changes
++ * Stilistic adaptions in debian/copyright, but not content changes
++ * Remove cluster interface warning from README.Configuration. ATS now binds on
++ lo by default
++
++ -- Arno Töll <debian@toell.net> Wed, 21 Mar 2012 12:34:35 +0100
++
++trafficserver (3.0.2-1) unstable; urgency=low
++
++ * New upstream release
++ + Includes former Debian specific patch which makes sure the upstream
++ configure script does not override any -O flags passed by the user
++ anymore.
++ * Adapt to dpkg 1.16.1 API changes regarding build flags. This enables
++ hardening build flags. This means, trafficserver is now being built with
++ -fstack-protector and other security related build flags.
++ * Add dpkg-dev (>= 1.16.1~) to build-depends to make sure our buildflags are
++ properly supported. That's guaranteed for Testing, but might be helpful to
++ know for backporters.
++ * Fix several issues in the DEP-5 syntax. Unfortunately there is no way to
++ express that a file is subject to different license agreements so far.
++ * Do not install the upstream changelog twice anymore
++ * Finally run regression checks again, now as build failures are sorted out.
++
++ -- Arno Töll <debian@toell.net> Sun, 11 Dec 2011 00:45:45 +0100
++
++trafficserver (3.0.1-2) unstable; urgency=low
++
++ * Fix "please add armhf to the arch list" - add armhf to the list of supported
++ architectures. Thanks Konstantinos Margaritis for the hint (Closes: #636338)
++ * Remove IA64 from the list of supported architectures. The upgrade to the gcc
++ 4.6 toolchain disclosed portability issues with it, which caused the resul-
++ ting binary package to produce no-op code in some functions.
++
++ -- Arno Töll <debian@toell.net> Tue, 02 Aug 2011 22:58:37 +0200
++
++trafficserver (3.0.1-1) unstable; urgency=low
++
++ * New upstream release. Fixes several important issues which caused
++ `traffic_cop' and `traffic_server' to crash.
++ * Fix "FTBFS with ld --as-needed" re-order libraries upon linkage, patch
++ committed upstream. Thanks Ilya Barygin (Closes: #632546)
++ * Fix "trafficserver: Getting rid of unneeded *.la / emptying
++ dependency_libs", remove *.la files from the installation target completely
++ (Closes: #633192)
++ * Set "DM-Upload-Allowed: yes" in agreement with Asheesh Laroia
++ <paulproteus{at}debian.org>
++
++ -- Arno Töll <debian@toell.net> Mon, 01 Aug 2011 19:29:58 +0200
++
++trafficserver (3.0.0-1) unstable; urgency=low
++
++ * New upstream release. Major changes (since 2.1.9):
++ + `traffic_server' won't crash anymore when using non-existent plugin in
++ remap rule
++ + Don't cache HTTP 401, 303 and 407 error responses anymore, when negative
++ caching is enabled.
++ * Re-enable kfreebsd support, it was accidentally not available in
++ 2.1.9-unstable-1 because of non installable dependencies, as libcap-dev is
++ installable (and required) on Linux only
++ * debian/rules:
++ + Simplify dh_auto_configure flags (upstream incorporated our build layout)
++ + Enable WCCP (Web Cache Communication Protocol; Linux only)
++ * debian/control:
++ + Add flex and bison to build dependencies, both are required for WCCP
++ (Linux only)
++
++ -- Arno Töll <debian@toell.net> Wed, 15 Jun 2011 15:56:29 +0200
++
++trafficserver (2.1.9-unstable-1) unstable; urgency=low
++
++ * New upstream release. Major features (since 2.1.8):
++ + Bring back support for $DESTDIR and "make check" which makes Debian
++ patches obsolete
++ + Allow larger working sets than 512G
++ + Disable cluster autodiscovery when cluster mode is disabled
++ + Cleanup `records.config'
++ + Disable SSLv2 by default
++ * debian/control: Add build dependency to libcap-dev, because when running
++ traffic_server standalone, it is unable to bind restricted ports otherwise
++ (Upstream: TS-804)
++ * debian/rules:
++ + Remove override for dh_clean, but put options to debian/source/options
++ instead
++ + Remove DH_OPTIONS (unused anyway)
++ * Source package: Minor change to improving package quality and usability
++ (i.e. grammar, verbosity of comments)
++ * Make the init script more robust
++ * Base the origin of the package source on the untouched upstream tarball,
++ instead of the versioned SVN branch.
++ * Bring back IA64 support, this time actually working (upstream merged my
++ patch TS-783)
++ * Remove patch `build-quirks.patch'. Changes have been committed upstream
++ by now.
++
++ -- Arno Töll <debian@toell.net> Tue, 31 May 2011 21:56:12 +0200
++
++trafficserver (2.1.8-unstable-1) unstable; urgency=low
++
++ * New upstream release. Major features (since 2.1.5):
++ + Many bug fixes (none reported in Debian's BTS)
++ + Set source address for origin Servers
++ + Major API changes for the SDK
++ + Provide traffic_logstats
++ + traffic_shell does not hang anymore on any command
++ * Fix "FTBFS on architectures not supported upstream": (Closes: #622800)
++ + Don't execute regression checks for now (fixes x86)
++ + Upstream merges a Debian patch originally for 2.1.7 which enables
++ kFreeBSD support (originally provided by myself)
++ + Restrict Architectures (drop S390, IA64, MIPS[EL], PPC, SPARC)
++ * Remove ts-ui-disable-conf.patch (applied upstream)
++ * Update `build-quirks.patch' to make TS handle $DESTDIR correctly
++ (upstream: TS-759)
++ * Remove .deps from SDK binary package examples (they were incidentally
++ included before).
++ * Fix permissions for /var/cache/trafficserver in postinst
++ * Bump standards to 3.9.2, depend on debhelper 8.0, adapt VCS links
++ * Simplify debian/rules
++
++ -- Arno Töll <debian@toell.net> Thu, 05 May 2011 21:49:52 +0200
++
++trafficserver (2.1.5-unstable-1) unstable; urgency=low
++
++ * Initial release (Closes: #609285)
++ * Added some configuration and informational hints
++ * New upstream release. Major features:
++ + Better AMD64 support
++ + Override configuration per transaction
++ + IPv6
++ + Support ARM architectures
++ + SDK-API changes
++ * Differences to upstream version:
++ + Ship some documentation. Well, really a few hints
++ + Split source into three packages (core, plug-in, SDK)
++ + Ship our own init script
++
++ -- Arno Toell <debian@toell.net> Tue, 13 Jan 2011 11:49:18 +0100
--- /dev/null
--- /dev/null
++Source: trafficserver
++Section: web
++Priority: optional
++Maintainer: Jean Baptiste Favre <debian@jbfavre.org>
++Uploaders: Aron Xu <aron@debian.org>, Emanuele Rocca <ema@debian.org>
++Build-Depends: debhelper-compat (= 12), libssl-dev, tcl-dev, libexpat1-dev,
++ libpcre3-dev, libtool, libcap-dev [linux-any], graphviz,
++ bison [linux-any], flex [linux-any], dpkg-dev (>= 1.16.1~), pkg-config, libgeoip-dev,
++ libluajit-5.1-dev, libboost-dev, libhwloc-dev, default-libmysqlclient-dev,
++ python3-sphinx [!kfreebsd-any], python-sphinx [kfreebsd-any], plantuml,
++ python3-sphinxcontrib.plantuml [!kfreebsd-any], python-sphinxcontrib.plantuml [kfreebsd-any],
++ libxml2-dev, libncurses-dev, libcurl4-openssl-dev,
++ libkyotocabinet-dev, libmemcached-dev, libbrotli-dev,
++ libcrypto++-dev, libjansson-dev, libcjose-dev, libyaml-cpp-dev (>= 0.6.2~),
++ libunwind-dev [i386 amd64 ppc64el armhf arm64 mipsel mips64el mips]
++Standards-Version: 4.4.0
++Homepage: https://trafficserver.apache.org/
++Vcs-Git: https://salsa.debian.org/debian/trafficserver.git
++Vcs-Browser: https://salsa.debian.org/debian/trafficserver
++
++Package: trafficserver
++Architecture: any
++Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base (>= 3.2-14), adduser,
++ ${perl:Depends}
++Pre-Depends: ${misc:Pre-Depends}
++Provides: trafficserver-plugin-conf-remap
++Replaces: trafficserver-plugin-conf-remap (<< 3.2~),
++ trafficserver-experimental-plugins (<< 8.0.0~)
++Suggests: trafficserver-experimental-plugins (= ${binary:Version})
++Breaks: trafficserver-plugin-conf-remap (<< 3.2~),
++ trafficserver-experimental-plugins (<< 8.0.0~)
++Description: fast, scalable and extensible HTTP/1.1 and HTTP/2.0 caching proxy server
++ This package provides the Apache Traffic Server, a fast, scalable reverse
++ proxy server which may operate as forward proxy as well. Apache Traffic Server
++ supports:
++ .
++ * Caching: improve response time while reducing server load and bandwidth
++ needs by caching and reusing frequently-requested web pages, images, and
++ web service calls.
++ * Proxying: add keep-alive, filter or anonymize content requests, or add
++ load balancing by adding a proxy layer.
++ * Scaling: handle 10s of thousands of requests per second on modern SMP
++ hardware.
++ * Extensions: use the API to do anything from modifying HTTP headers to
++ handling ESI requests to writing your own cache algorithm.
++
++Package: trafficserver-experimental-plugins
++Architecture: any
++Depends: ${shlibs:Depends}, ${misc:Depends}
++Pre-Depends: trafficserver (= ${binary:Version})
++Breaks: trafficserver (<< 8.0.0~)
++Description: experimental plugins for Apache Traffic Server
++ This package provides the Apache Traffic Server plugins marked as
++ experimental.
++ .
++ Please note that these plugins can be removed without priori notice, or
++ promoted as stable plugin. In the last case, they'll be moved from
++ trafficserver-experimental-plugins to trafficserver package.
++
++Package: trafficserver-dev
++Architecture: any
++Depends: ${misc:Depends}, trafficserver (= ${binary:Version})
++Description: Apache Traffic Server Software Developers Kit (SDK)
++ This package provides the Apache Traffic Server Software Developers Kit, which
++ consists of: a collection of development header and bindings for the C
++ programming language, the tsxs linking helper and examples to write your own
++ plug-ins for the Apache Traffic Server.
--- /dev/null
--- /dev/null
++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
++Upstream-Name: Traffic Server
++Upstream-Contact: dev@trafficserver.apache.org
++Source: http://trafficserver.apache.org/
++Files-Excluded:
++ .vscode
++ lib/yamlcpp
++Comment:
++ The upstream repository provides libraries which are also available
++ in Debian. Because we'll use libraries packaged in Debian, we don't
++ need embedded ones.
++
++Files: *
++Copyright: 2010 - 2011 The Apache Software Foundation
++ 2009 Yahoo! Inc.
++License: Apache-2.0
++
++Files: debian/*
++Copyright: 2011 Arno Töll
++License: Apache-2.0
++Comment: Packaging for Debian was done by Arno Toell, and I hereby grant
++ distribution of it under the same terms as Apache Traffic Server itself.
++
++License: Apache-2.0
++ Licensed under the Apache License, Version 2.0 (the "License");
++ you may not use this file except in compliance with the License.
++ You may obtain a copy of the License at
++ .
++ http://www.apache.org/licenses/LICENSE-2.0
++ .
++ Unless required by applicable law or agreed to in writing, software
++ distributed under the License is distributed on an "AS IS" BASIS,
++ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ See the License for the specific language governing permissions and
++ limitations under the License.
++ .
++ On Debian systems, the full text of the e Apache License, Version 2.0
++ can be found in the file `/usr/share/common-licenses/Apache-2.0'.
++
++Files: include/tscore/ink_rand.*
++Copyright: 1997 - 2002, Makoto Matsumoto and Takuji Nishimura
++License: BSD-3-clause
++
++Files: include/tscore/ink_resolver.h src/tscore/ink_res_init.cc src/tscore/ink_res_mkquery.cc
++Copyright: 1983, 1987, 1989 The Regents of the University of California
++License: BSD-3-clause
++
++License: BSD-3-clause
++ For the University of California part:
++ .
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions
++ are met:
++ 1. Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ 2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ 3. Neither the name of the University nor the names of its contributors
++ may be used to endorse or promote products derived from this software
++ without specific prior written permission.
++ .
++ THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ SUCH DAMAGE.
++ .
++ For the Internet Systems Consortium, Inc. part:
++ See Apache-2.0
++ .
++ For the Digital Equipment Corporation part:
++ Permission to use, copy, modify, and distribute this software for any
++ purpose with or without fee is hereby granted, provided that the above
++ copyright notice and this permission notice appear in all copies, and that
++ the name of Digital Equipment Corporation not be used in advertising or
++ publicity pertaining to distribution of the document or software without
++ specific, written prior permission.
++ .
++ THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
++ WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
++ OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
++ CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
++ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
++ PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
++ ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
++ SOFTWARE.
++
++Files: src/tscore/ink_string.cc
++Comment: For the strlcat, strlcpy in inktomi++/ink_string.cc
++Copyright: 1998 Todd C. Miller <Todd.Miller@courtesan.com>
++License: ISC
++ Permission to use, copy, modify, and distribute this software for any
++ purpose with or without fee is hereby granted, provided that the above
++ copyright notice and this permission notice appear in all copies.
++ .
++ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
++ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
++ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
++ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
++ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
++ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++
++Files: include/tscore/fastlz.h src/tscore/fastlz.c
++Copyright: 2005-2007 Ariya Hidayat (ariya@kde.org)
++License: Expat
++ Permission is hereby granted, free of charge, to any person obtaining a copy
++ of this software and associated documentation files (the "Software"), to deal
++ in the Software without restriction, including without limitation the rights
++ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++ copies of the Software, and to permit persons to whom the Software is
++ furnished to do so, subject to the following conditions:
++ .
++ The above copyright notice and this permission notice shall be included in
++ all copies or substantial portions of the Software.
++ .
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++ THE SOFTWARE.
--- /dev/null
--- /dev/null
++LAYOUT
++NOTICE
++STATUS
++REVIEWERS
++README
++README-EC2
++debian/README.Debian
++debian/CONFIGURATION.Debian
++debian/README.conf-remap.Debian
--- /dev/null
--- /dev/null
++[DEFAULT]
++pristine-tar = True
++builder=dpkg-buildpackage -i\.git -I.git
++#cleaner=true
++
++[import-orig]
++filter = [ '.gitignore', '.git', '.vscode' ]
++merge = True
--- /dev/null
--- /dev/null
++usr/man/man3
++usr/share/man
--- /dev/null
--- /dev/null
++From: Aron Xu <aron@debian.org>
++Date: Tue, 2 Feb 2016 12:17:24 +0800
++Subject: Use -mcx16 on x86 platforms only
++
++---
++ configure.ac | 3 +++
++ 1 file changed, 3 insertions(+)
++
++--- a/configure.ac
+++++ b/configure.ac
++@@ -1495,12 +1495,15 @@ CFLAGS="${__saved_CFLAGS}"
++ AC_LANG_POP
++ AC_SUBST(has_128bit_cas)
++
+++case "$host_cpu" in
+++ amd64|x86_64|i*86)
++ AS_IF([test "x$has_128bit_cas" = "x1"], [
++ AS_IF([test "x$ax_cv_c_compiler_vendor" != "xintel"], [
++ TS_ADDTO(AM_CFLAGS, [-mcx16])
++ TS_ADDTO(AM_CXXFLAGS, [-mcx16])
++ ])
++ ])
+++esac
++
++ # Check for POSIX capabilities library.
++ # If we don't find it, disable checking for header.
--- /dev/null
--- /dev/null
++Description: make the build reproducible
++Author: Reiner Herrmann <reiner@reiner-h.de>
++Origin: other, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833176
++Reviewed-by: Jean Baptiste Favre <debian@jbfavre.org>
++Last-Update: 2016-11-18
++---
++This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
++--- a/configure.ac
+++++ b/configure.ac
++@@ -144,9 +144,9 @@ AC_ARG_WITH([build-number],
++ #
++ # Build environment
++ #
++-build_person="`id -nu | sed -e 's/\\\\/\\\\\\\\/g'`"
++-build_group="`id -ng | sed -e 's/\\\\/\\\\\\\\/g'`"
++-build_machine="`uname -n | sed -e 's/\\\\/\\\\\\\\/g'`"
+++build_person="root"
+++build_group="root"
+++build_machine="localhost"
++ AC_SUBST([build_machine])
++ AC_SUBST([build_person])
++ AC_SUBST([build_group])
--- /dev/null
--- /dev/null
++Description: Make documentation build works outside of git repository
++ Current documentation build requires git and curl to get some stuff from the internet
++ This patch aims to delete those dependencies, forcing git branch to master,
++ and using Debian provided plantuml instead of downloading it from apache mirror
++Author: Jean Baptiste Favre <debian@jbfavre.org>
++Origin: other
++Last-Update: 2019-01-03
++---
++This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
++--- a/doc/ext/traffic-server.py
+++++ b/doc/ext/traffic-server.py
++@@ -380,7 +380,7 @@ with open('../configure.ac', 'r') as f:
++ autoconf_version = '.'.join(match.group(1).split('.', 2)[:2] + ['x'])
++
++ # get the current branch the local repository is on
++-git_branch = subprocess.check_output(['git', 'rev-parse', '--abbrev-ref', 'HEAD'])
+++git_branch = "master"
++
++
++ def make_github_link(name, rawtext, text, lineno, inliner, options={}, content=[]):
++--- a/doc/Makefile.am
+++++ b/doc/Makefile.am
++@@ -61,7 +61,7 @@ I18NSPHINXOPTS = $(SPHINXOPTS)
++ # The PAPER setting variables requires recursive make variable expansion, which automake
++ # detects as non-portable. We bounce this through a shell script and do the expansion there.
++ SBUILD = PAPEROPT_a4="$(PAPEROPT_a4)" PAPEROPT_letter="$(PAPEROPT_letter)" PAPER="$(PAPER)" \
++- PLANTUML_JAR="$(shell ext/plantuml_fetch.sh | tail -1)" \
+++ PLANTUML_JAR="/usr/share/plantuml/plantuml.jar" \
++ $(srcdir)/sbuild $(SPHINXBUILD) \
++ -c $(srcdir) \
++ $(ALLSPHINXOPTS)
++--- a/doc/uml/Makefile.am
+++++ b/doc/uml/Makefile.am
++@@ -18,7 +18,7 @@
++
++ if BUILD_DOCS
++ images := $(patsubst %.uml,images/%.svg,$(wildcard *.uml))
++-PLANTUML_JAR := $(shell ../ext/plantuml_fetch.sh | tail -1)
+++PLANTUML_JAR := /usr/share/plantuml/plantuml.jar
++
++ all-am: jar-check $(images)
++ endif
++@@ -39,7 +39,7 @@ latex: all-am
++ man: all-am
++
++ images/%.svg : %.uml
++- $(JAVA) -jar $(PLANTUML_JAR) -o images -tsvg $<
+++ $(JAVA) -jar $(PLANTUML_JAR) -graphvizdot /usr/bin/dot -o images -tsvg $<
++
++ clean-local:
++ rm -f images/*.svg
--- /dev/null
--- /dev/null
++Description: Force python3 usage, add libfakeroot-sysv to blacklist
++Author: Jean Baptiste Favre <debian@jbfavre.org>
++Origin: other
++Last-Update: 2018-09-24
++---
++This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
++--- a/tools/check-unused-dependencies
+++++ b/tools/check-unused-dependencies
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env python
+++#!/usr/bin/env python3
++
++ # Licensed to the Apache Software Foundation (ASF) under one or more
++ # contributor license agreements. See the NOTICE file distributed with
++@@ -53,7 +53,8 @@ def get_dependencies(program):
++ 'libdl.so.', # Because we add -ldl to LIBS
++ 'libgcc_s.so.',
++ 'libm.so.', # Why does Libtool call ld with -lm?
++- 'libpthread.so.' # Because we add -lpthread to LIBS
+++ 'libpthread.so.', # Because we add -lpthread to LIBS
+++ 'libfakeroot-sysv.so'
++ ])):
++ continue
++
--- /dev/null
--- /dev/null
++Description: Fix build issue with MySQL 8
++ The my_bool type is no longer used in MySQL source code.
++ Any third-party code that used this type to represent C
++ boolean variables should use the bool or int C type instead.
++Author: Jean Baptiste Favre <debian@jbfavre.org>
++Origin: other, https://bugs.launchpad.net/ubuntu/+source/trafficserver/+bug/1795362
++Forwarded: https://github.com/apache/trafficserver/pull/4360
++Applied-Upstream: https://github.com/apache/trafficserver/commit/05b30527974416768515506f69da338652c23260
++Reviewed-by: Jean Baptiste Favre <debian@jbfavre.org>
++Last-Update: 2018-10-06
++---
++This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
++--- a/plugins/experimental/mysql_remap/mysql_remap.cc
+++++ b/plugins/experimental/mysql_remap/mysql_remap.cc
++@@ -187,7 +187,7 @@ TSPluginInit(int argc, const char *argv[
++ my_data *data = (my_data *)malloc(1 * sizeof(my_data));
++
++ TSPluginRegistrationInfo info;
++- my_bool reconnect = 1;
+++ bool reconnect = 1;
++
++ info.plugin_name = const_cast<char *>(PLUGIN_NAME);
++ info.vendor_name = const_cast<char *>("Apache Software Foundation");
--- /dev/null
--- /dev/null
++Description: Fix Segmentation fault in ShowCache::handleCacheEvent
++Author: zhang <15535135608@163.com>
++Origin: upstream
++Bug: https://github.com/apache/trafficserver/issues/4328
++Applied-Upstream: https://github.com/apache/trafficserver/commit/616eb10bfc35599a2c93ff30879d584a05ddf83e
++Reviewed-by: Jean Baptiste Favre <debian@jbfavre.org>
++Last-Update: 2018-10-17
++---
++This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
++--- a/iocore/cache/CachePages.cc
+++++ b/iocore/cache/CachePages.cc
++@@ -337,6 +337,13 @@ ShowCache::handleCacheEvent(int event, E
++ CacheHTTPInfoVector *vec = &(cache_vc->vector);
++ int alt_count = vec->count();
++ if (alt_count) {
+++ // check cache_vc->first_buf is NULL, response cache lookup busy.
+++ if (cache_vc->first_buf == nullptr) {
+++ cache_vc->do_io_close(-1);
+++ CHECK_SHOW(show("<H3>Cache Lookup Busy, please try again</H3>\n"));
+++ return complete(event, e);
+++ }
+++
++ Doc *d = (Doc *)(cache_vc->first_buf->data());
++ time_t t;
++ char tmpstr[4096];
--- /dev/null
--- /dev/null
++Description: Fix various speeling issues
++Author: Jean Baptiste Favre <debian@jbfavre.org>
++Forwarded: https://github.com/apache/trafficserver/pull/4750
++Applied-Upstream: https://github.com/apache/trafficserver/commit/af0ad4a1880a21743e98331855bb78e15d5406ef
++Last-Update: 2019-01-03
++---
++This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
++--- a/doc/admin-guide/files/ip_allow.config.en.rst
+++++ b/doc/admin-guide/files/ip_allow.config.en.rst
++@@ -55,7 +55,7 @@ range with the lower and upper values eq
++ The value of ``method`` is a string which must consist of either HTTP method names separated by the
++ character '|' or the keyword literal ``ALL``. This keyword may omitted in which case it is treated
++ as if it were ``method=ALL``. Methods can also be specified by having multiple instances of the
++-``method`` keyword, each specifiying a single method. E.g., ``method=GET|HEAD`` is the same as
+++``method`` keyword, each specifying a single method. E.g., ``method=GET|HEAD`` is the same as
++ ``method=GET method=HEAD``. The method names are not validated which means non-standard method names
++ can be specified.
++
++@@ -104,7 +104,7 @@ If the entire subnet were to be denied,
++
++ src_ip=123.45.6.0/24 action=ip_deny
++
++-The following example allows to any upstream servers::
+++The following example allows one to any upstream servers::
++
++ dest_ip=0.0.0.0-255.255.255.255 action=ip_allow
++
++--- a/doc/admin-guide/files/parent.config.en.rst
+++++ b/doc/admin-guide/files/parent.config.en.rst
++@@ -202,7 +202,7 @@ The following list shows the possible ac
++ - ``simple_retry`` - If the parent origin server returns a 404 response on a request
++ a new parent is selected and the request is retried. The number of retries is controlled
++ by ``max_simple_retries`` which is set to 1 by default.
++- - ``unavailable_server_retry`` - If the parent returns a 503 response or if the reponse matches
+++ - ``unavailable_server_retry`` - If the parent returns a 503 response or if the response matches
++ a list of http 5xx responses defined in ``unavailable_server_retry_responses``, the currently selected
++ parent is marked down and a new parent is selected to retry the request. The number of
++ retries is controlled by ``max_unavailable_server_retries`` which is set to 1 by default.
++@@ -220,7 +220,7 @@ The following list shows the possible ac
++
++ ``max_simple_retries``
++ By default the value for ``max_simple_retries`` is 1. It may be set to any value in the range 1 to 5.
++- If ``parent_retry`` is set to ``simple_retry`` or ``both`` a 404 reponse
+++ If ``parent_retry`` is set to ``simple_retry`` or ``both`` a 404 response
++ from a parent origin server will cause the request to be retried using a new parent at most 1 to 5
++ times as configured by ``max_simple_retries``.
++
++@@ -228,7 +228,7 @@ The following list shows the possible ac
++
++ ``max_unavailable_server_retries``
++ By default the value for ``max_unavailable_server_retries`` is 1. It may be set to any value in the range 1 to 5.
++- If ``parent_retry`` is set to ``unavailable_server_retries`` or ``both`` a 503 reponse
+++ If ``parent_retry`` is set to ``unavailable_server_retries`` or ``both`` a 503 response
++ by default or any http 5xx response listed in the list ``unavailable_server_retry_responses`` from a parent origin server will
++ cause the request to be retried using a new parent after first marking the current parent down. The request
++ will be retried at most 1 to 5 times as configured by ``max_unavailable_server_retries``.
++--- a/doc/admin-guide/files/records.config.en.rst
+++++ b/doc/admin-guide/files/records.config.en.rst
++@@ -802,7 +802,7 @@ ip-resolve
++ ===== ======================================================================
++ Value Description
++ ===== ======================================================================
++- ``0`` |TS| will buffer the request until the post body has been recieved and
+++ ``0`` |TS| will buffer the request until the post body has been received and
++ then send the request to the origin server.
++ ``1`` Immediately return a ``100 Continue`` from |TS| without waiting for
++ the post body.
++@@ -1603,7 +1603,7 @@ Proxy User Variables
++ connection=full Full user agent connection :ref:`protocol tags <protocol_tags>`
++ ================== ===============================================================
++
++- Each paramater in the list must be separated by ``|`` or ``:``. For example, ``for|by=uuid|proto`` is
+++ Each parameter in the list must be separated by ``|`` or ``:``. For example, ``for|by=uuid|proto`` is
++ a valid value for this variable. Note that the ``connection`` parameter is a non-standard extension to
++ RFC 7239. Also note that, while Traffic Server allows multiple ``by`` parameters for the same proxy, this
++ is prohibited by RFC 7239. Currently, for the ``host`` parameter to provide the original host from the
++@@ -1631,7 +1631,7 @@ Proxy User Variables
++ information.
++ See :ts:cv:`proxy.config.http.server_ports` for information on how to enable Proxy Protocol on a port.
++
++- See :ref:`proxy-protocol` for more discussion on how |TS| tranforms the `Forwarded: header.
+++ See :ref:`proxy-protocol` for more discussion on how |TS| transforms the `Forwarded: header.
++
++ .. ts:cv:: CONFIG proxy.config.http.normalize_ae INT 1
++ :reloadable:
++@@ -2332,7 +2332,7 @@ DNS
++
++ .. ts:cv:: CONFIG proxy.config.dns.resolv_conf STRING /etc/resolv.conf
++
++- Allows to specify which ``resolv.conf`` file to use for finding resolvers. While the format of this file must be the same as the
+++ Allows one to specify which ``resolv.conf`` file to use for finding resolvers. While the format of this file must be the same as the
++ standard ``resolv.conf`` file, this option allows an administrator to manage the set of resolvers in an external configuration file,
++ without affecting how the rest of the operating system uses DNS.
++
++@@ -2350,7 +2350,7 @@ DNS
++ :reloadable:
++ :overridable:
++
++- Indicates whether to use SRV records for orgin server lookup.
+++ Indicates whether to use SRV records for origin server lookup.
++
++ .. ts:cv:: CONFIG proxy.config.dns.dedicated_thread INT 0
++
++@@ -2583,7 +2583,7 @@ HostDB
++ Set the frequency (in seconds) to sync hostdb to disk.
++
++ Note: hostdb is syncd to disk on a per-partition basis (of which there are 64).
++- This means that the minumum time to sync all data to disk is :ts:cv:`proxy.config.cache.hostdb.sync_frequency` * 64
+++ This means that the minimum time to sync all data to disk is :ts:cv:`proxy.config.cache.hostdb.sync_frequency` * 64
++
++ Logging Configuration
++ =====================
++@@ -2897,7 +2897,7 @@ Diagnostic Logging Configuration
++
++ .. ts:cv:: CONFIG proxy.config.diags.debug.tags STRING http|dns
++
++- Each |TS| `diag` and `debug` level message is annotated with a subsytem tag. This configuration
+++ Each |TS| `diag` and `debug` level message is annotated with a subsystem tag. This configuration
++ contains an anchored regular expression that filters the messages based on the tag. The
++ expressions are prefix matched which creates an implicit ``.*`` at the end. Therefore the default
++ value ``http|dns`` will match tags such as ``http``, ``http_hdrs``, ``dns``, and ``dns_recv``.
++@@ -2905,7 +2905,7 @@ Diagnostic Logging Configuration
++ Some commonly used debug tags are:
++
++ ============ =====================================================
++- Tag Subsytem usage
+++ Tag Subsystem usage
++ ============ =====================================================
++ dns DNS query resolution
++ http_hdrs Logs the headers for HTTP requests and responses
++@@ -3061,7 +3061,7 @@ SSL Termination
++ .. ts:cv:: CONFIG proxy.config.ssl.client.groups_list STRING <See notes under proxy.config.ssl.server.groups_list.>
++
++ Configures the list of supported groups provided by OpenSSL which
++- |TS| will use for the "key_share" and "supported groups" extention
+++ |TS| will use for the "key_share" and "supported groups" extension
++ of TLSv1.3 connections. The value is a colon separated list of
++ group NIDs or names, for example "P-521:P-384:P-256". For
++ instructions, see "Groups" section of `TLS1.3 - OpenSSLWiki <https://wiki.openssl.org/index.php/TLS1.3#Groups>`_.
++@@ -3204,7 +3204,7 @@ SSL Termination
++ ``0`` Disables the session cache entirely.
++ ``1`` Enables the session cache using OpenSSL's implementation.
++ ``2`` Default. Enables the session cache using |TS|'s implementation. This
++- implentation should perform much better than the OpenSSL
+++ implementation should perform much better than the OpenSSL
++ implementation.
++ ===== ======================================================================
++
++--- a/doc/admin-guide/files/remap.config.en.rst
+++++ b/doc/admin-guide/files/remap.config.en.rst
++@@ -415,7 +415,7 @@ Acl Filters
++
++ Acl filters can be created to control access of specific remap lines. The markup
++ is very similar to that of :file:`ip_allow.config`, with slight changes to
++-accomodate remap markup
+++accommodate remap markup
++
++ Examples
++ --------
++--- a/doc/admin-guide/files/storage.config.en.rst
+++++ b/doc/admin-guide/files/storage.config.en.rst
++@@ -92,7 +92,7 @@ which will effectively clear most of the
++ reboot causes the path names to change.
++
++ The :arg:`id` option can be used to create a fixed string that an administrator can use to keep the
++-assignment table consistent by maintaing the mapping from physical device to base string even in the presence of hardware changes and failures.
+++assignment table consistent by maintaining the mapping from physical device to base string even in the presence of hardware changes and failures.
++
++ Examples
++ ========
++--- a/doc/appendices/command-line/traffic_ctl.en.rst
+++++ b/doc/appendices/command-line/traffic_ctl.en.rst
++@@ -255,7 +255,7 @@ traffic_ctl host
++ .. program:: traffic_ctl host
++ .. option:: status HOSTNAME [HOSTNAME ...]
++
++- Get the current status of the hosts used in parent.config as a next hop in a multi-tiered cache heirarchy. The value 0 or 1 is returned indicating that the host is marked as down '0' or marked as up '1'. If a host is marked as down, it will not be used as the next hop parent, another host marked as up will be chosen.
+++ Get the current status of the hosts used in parent.config as a next hop in a multi-tiered cache hierarchy. The value 0 or 1 is returned indicating that the host is marked as down '0' or marked as up '1'. If a host is marked as down, it will not be used as the next hop parent, another host marked as up will be chosen.
++
++ .. program:: traffic_ctl host
++ .. option:: down --time seconds HOSTNAME [HOSTNAME ...]
++--- a/doc/developer-guide/api/functions/TSCacheRemove.en.rst
+++++ b/doc/developer-guide/api/functions/TSCacheRemove.en.rst
++@@ -41,4 +41,4 @@ the cache calls :arg:`contp` back with t
++ In both of these callbacks, the user (:arg:`contp`) does not have to do
++ anything. The user does not get any vconnection from the cache, since
++ no data needs to be transferred. When the cache calls :arg:`contp` back with
++-:data:`TS_EVENT_CACHE_REMOVE`, the remove has already been commited.
+++:data:`TS_EVENT_CACHE_REMOVE`, the remove has already been committed.
++--- a/doc/developer-guide/api/functions/TSContSchedule.en.rst
+++++ b/doc/developer-guide/api/functions/TSContSchedule.en.rst
++@@ -32,7 +32,7 @@ Description
++ ===========
++
++ Schedules :arg:`contp` to run :arg:`delay` milliseconds in the future. This is approximate. The delay
++-will be at least :arg:`delay` but possibly more. Resultions finer than roughly 5 milliseconds will
+++will be at least :arg:`delay` but possibly more. Resolutions finer than roughly 5 milliseconds will
++ not be effective. :arg:`contp` is required to have a mutex, which is provided to
++ :func:`TSContCreate`.
++
++--- a/doc/developer-guide/api/functions/TSHttpConnectWithPluginId.en.rst
+++++ b/doc/developer-guide/api/functions/TSHttpConnectWithPluginId.en.rst
++@@ -79,7 +79,7 @@ virtual connection.
++
++ The combination of :arg:`tag` and :arg:`id` is intended to enable correlation
++ in log post processing. The :arg:`tag` identifies the connection as related
++-to the plugin and the :arg:`id` can be used in conjuction with plugin
+++to the plugin and the :arg:`id` can be used in conjunction with plugin
++ generated logs to correlate the log records.
++
++ Notes
++--- a/doc/developer-guide/api/functions/TSHttpOverridableConfig.en.rst
+++++ b/doc/developer-guide/api/functions/TSHttpOverridableConfig.en.rst
++@@ -43,7 +43,7 @@ Description
++
++ Some of the values that are set in :file:`records.config` can be changed for a
++ specific transaction. It is important to note that these functions change the
++-configuration values stored for the transation, which is not quite the same as
+++configuration values stored for the transaction, which is not quite the same as
++ changing the actual operating values of the transaction. The critical effect is
++ the value must be changed before it is used by the transaction - after that,
++ changes will not have any effect.
++--- a/doc/developer-guide/api/functions/TSHttpTxnErrorBodySet.en.rst
+++++ b/doc/developer-guide/api/functions/TSHttpTxnErrorBodySet.en.rst
++@@ -36,4 +36,4 @@ Description
++ Note that both string arguments must be allocated with :c:func:`TSmalloc` or
++ :c:func:`TSstrdup`. The :arg:`mimetype` is optional, and if not provided it
++ defaults to :literal:`text/html`. Sending an empty string would prevent setting
++-a content type header (but that is not adviced).
+++a content type header (but that is not advised).
++--- a/doc/developer-guide/api/functions/TSHttpTxnMilestoneGet.en.rst
+++++ b/doc/developer-guide/api/functions/TSHttpTxnMilestoneGet.en.rst
++@@ -138,7 +138,7 @@ is successful.
++
++ .. macro:: TS_MILESTONE_LAST_ENTRY
++
++- A psuedo index which is set to be one more than the last valid index. This is useful for looping over the data.
+++ A pseudo index which is set to be one more than the last valid index. This is useful for looping over the data.
++
++
++ * The server connect times predate the transmission of the :literal:`SYN`
++--- a/doc/developer-guide/api/functions/TSHttpTxnServerIntercept.en.rst
+++++ b/doc/developer-guide/api/functions/TSHttpTxnServerIntercept.en.rst
++@@ -53,7 +53,7 @@ The response from the plugin is cached s
++ caching rules. Should the plugin wish the response not be cached, the plugin
++ must use appropriate HTTP response headers to prevent caching. The primary
++ purpose of :func:`TSHttpTxnServerIntercept` is allow plugins to provide gateways
++-to other protocols or to allow to plugin to its own transport for the next hop
+++to other protocols or to allow one to plugin to its own transport for the next hop
++ to the server. :func:`TSHttpTxnServerIntercept` overrides parent cache
++ configuration.
++
++--- a/doc/developer-guide/api/functions/TSIOBufferReader.en.rst
+++++ b/doc/developer-guide/api/functions/TSIOBufferReader.en.rst
++@@ -59,7 +59,7 @@ has two very important consequences --
++ * Conversely keeping a reader around unused will pin the buffer data in memory. This can be useful or harmful.
++
++ A buffer has a fixed amount of possible readers (currently 5) which is determined at compile
++-time. Reader allocation is fast and cheap until this maxium is reached at which point it fails.
+++time. Reader allocation is fast and cheap until this maximum is reached at which point it fails.
++
++ :func:`TSIOBufferReaderAlloc` allocates a reader for the IO buffer :arg:`bufp`. This should only be
++ called on a newly allocated buffer. If not the location of the reader in the buffer will be
++--- a/doc/developer-guide/api/functions/TSSslContext.en.rst
+++++ b/doc/developer-guide/api/functions/TSSslContext.en.rst
++@@ -36,11 +36,11 @@ Description
++ ===========
++
++ :func:`TSSslContextFindByName` searches for a SSL server context
++-created from :file:`ssl_multicert.config`, matching against the
+++created from :file:`ssl_multicert.config`, matchingg against the
++ server :arg:`name`.
++
++ :func:`TSSslContextFindByAddr` searches for a SSL server context
++-created from :file:`ssl_multicert.config` matchin against the server
+++created from :file:`ssl_multicert.config` matching against the server
++ :arg:`address`.
++
++
++--- a/doc/developer-guide/api/functions/TSSslSession.en.rst
+++++ b/doc/developer-guide/api/functions/TSSslSession.en.rst
++@@ -46,7 +46,7 @@ The functions also work with the :type:`
++
++ These functions perform the appropriate locking on the session cache to avoid errors.
++
++-The :func:`TSSslSessionGet` and :func:`TSSslSessionGetBuffer` functions retreive the :type:`TSSslSession` object that is identifed by the
+++The :func:`TSSslSessionGet` and :func:`TSSslSessionGetBuffer` functions retrieve the :type:`TSSslSession` object that is identifed by the
++ :type:`TSSslSessionID` object. If there is no matching sesion object, :func:`TSSslSessionGet` returns NULL and :func:`TSSslSessionGetBuffer`
++ returns 0.
++
++--- a/doc/developer-guide/api/functions/TSStat.en.rst
+++++ b/doc/developer-guide/api/functions/TSStat.en.rst
++@@ -46,9 +46,9 @@ Description
++
++ A plugin statistic is created by :func:`TSStatCreate`. The :arg:`name` must be globally unique and
++ should follow the standard dotted tag form. To avoid collisions and for easy of use the first tag
++-should be the plugin name or something easily derived from it. Currently only integers are suppored
+++should be the plugin name or something easily derived from it. Currently only integers are supported
++ therefore :arg:`type` must be :macro:`TS_RECORDDATATYPE_INT`. The return value is the index of the
++-statistic. In general thsi should work but if it doesn't it will :code:`assert`. In particular,
+++statistic. In general this should work but if it doesn't it will :code:`assert`. In particular,
++ creating the same statistic twice will fail in this way, which can happen if statistics are created
++ as part of or based on configuration files and |TS| is reloaded.
++
++--- a/doc/developer-guide/api/functions/TSVConnReenable.en.rst
+++++ b/doc/developer-guide/api/functions/TSVConnReenable.en.rst
++@@ -32,7 +32,7 @@ Description
++ ===========
++
++ Reenable the SSL connection :arg:`svc`. If a plugin hook is called, ATS
++-processing on that connnection will not resume until this is invoked for that
+++processing on that connection will not resume until this is invoked for that
++ connection.
++
++ If the server is running OpenSSL 1.0.1 with the appropraite patch installed or
++--- a/doc/developer-guide/api/functions/TSfwrite.en.rst
+++++ b/doc/developer-guide/api/functions/TSfwrite.en.rst
++@@ -44,4 +44,4 @@ The behavior is undefined if length is g
++ Return Value
++ ============
++
++-Returns the number of bytes actually written, or -1 if an error occured.
+++Returns the number of bytes actually written, or -1 if an error occurred.
++--- a/iocore/cache/CacheHosting.cc
+++++ b/iocore/cache/CacheHosting.cc
++@@ -715,7 +715,7 @@ ConfigVolumes::BuildListFromString(char
++ // added by YTS Team, yamsat for bug id 59632
++ total += size;
++ if (size > 100 || total > 100) {
++- err = "Total volume size added upto more than 100 percent, No volumes created";
+++ err = "Total volume size added up to more than 100 percent, No volumes created";
++ break;
++ }
++ // ends here
++--- a/iocore/eventsystem/IOBuffer.cc
+++++ b/iocore/eventsystem/IOBuffer.cc
++@@ -179,7 +179,7 @@ MIOBuffer::puts(char *s, int64_t len)
++ }
++ if (!*pb || *pb == '\n') {
++ int64_t n = (int64_t)(pb - s);
++- memcpy(end(), s, n + 1); // Upto and including '\n'
+++ memcpy(end(), s, n + 1); // Up to and including '\n'
++ end()[n + 1] = 0;
++ fill(n + 1);
++ return n + 1;
++--- a/plugins/esi/lib/EsiProcessor.cc
+++++ b/plugins/esi/lib/EsiProcessor.cc
++@@ -305,7 +305,7 @@ EsiProcessor::process(const char *&data,
++
++ /* FAILURE CACHE */
++ FailureData *data = static_cast<FailureData *>(pthread_getspecific(threadKey));
++- _debugLog("plugin_esi_failureInfo", "[%s]Fetched data related to thread specfic %p", __FUNCTION__, data);
+++ _debugLog("plugin_esi_failureInfo", "[%s]Fetched data related to thread specific %p", __FUNCTION__, data);
++
++ for (iter = try_iter->attempt_nodes.begin(); iter != try_iter->attempt_nodes.end(); ++iter) {
++ if ((iter->type == DocNode::TYPE_INCLUDE) || iter->type == DocNode::TYPE_SPECIAL_INCLUDE) {
++@@ -342,7 +342,7 @@ EsiProcessor::process(const char *&data,
++ }
++ }
++ if (attempt_succeeded) {
++- _debugLog(_debug_tag, "[%s] attempt section succeded; using attempt section", __FUNCTION__);
+++ _debugLog(_debug_tag, "[%s] attempt section succeeded; using attempt section", __FUNCTION__);
++ _node_list.splice(try_iter->pos, try_iter->attempt_nodes);
++ } else {
++ _debugLog(_debug_tag, "[%s] attempt section errored; trying except section", __FUNCTION__);
++@@ -436,7 +436,7 @@ EsiProcessor::flush(string &data, int &o
++
++ /* FAILURE CACHE */
++ FailureData *fdata = static_cast<FailureData *>(pthread_getspecific(threadKey));
++- _debugLog("plugin_esi_failureInfo", "[%s]Fetched data related to thread specfic %p", __FUNCTION__, fdata);
+++ _debugLog("plugin_esi_failureInfo", "[%s]Fetched data related to thread specific %p", __FUNCTION__, fdata);
++
++ for (iter = try_iter->attempt_nodes.begin(); iter != try_iter->attempt_nodes.end(); ++iter) {
++ if ((iter->type == DocNode::TYPE_INCLUDE) || iter->type == DocNode::TYPE_SPECIAL_INCLUDE) {
++@@ -473,7 +473,7 @@ EsiProcessor::flush(string &data, int &o
++ }
++ }
++ if (attempt_succeeded) {
++- _debugLog(_debug_tag, "[%s] attempt section succeded; using attempt section", __FUNCTION__);
+++ _debugLog(_debug_tag, "[%s] attempt section succeeded; using attempt section", __FUNCTION__);
++ _n_prescanned_nodes = _n_prescanned_nodes + try_iter->attempt_nodes.size();
++ _node_list.splice(try_iter->pos, try_iter->attempt_nodes);
++ } else {
++--- a/plugins/esi/lib/Variables.cc
+++++ b/plugins/esi/lib/Variables.cc
++@@ -437,18 +437,18 @@ Variables::_parseDictVariable(const std:
++ for (int i = 0; i < (var_size - 1); ++i) {
++ if (variable[i] == '{') {
++ if (paranth_index != -1) {
++- _debugLog(_debug_tag, "[%s] Cannot have multiple paranthesis in dict variable [%.*s]", __FUNCTION__, var_size, var_ptr);
+++ _debugLog(_debug_tag, "[%s] Cannot have multiple parenthesis in dict variable [%.*s]", __FUNCTION__, var_size, var_ptr);
++ return false;
++ }
++ paranth_index = i;
++ }
++ if (variable[i] == '}') {
++- _debugLog(_debug_tag, "[%s] Cannot have multiple paranthesis in dict variable [%.*s]", __FUNCTION__, var_size, var_ptr);
+++ _debugLog(_debug_tag, "[%s] Cannot have multiple parenthesis in dict variable [%.*s]", __FUNCTION__, var_size, var_ptr);
++ return false;
++ }
++ }
++ if (paranth_index == -1) {
++- _debugLog(_debug_tag, "[%s] Could not find opening paranthesis in variable [%.*s]", __FUNCTION__, var_size, var_ptr);
+++ _debugLog(_debug_tag, "[%s] Could not find opening parenthesis in variable [%.*s]", __FUNCTION__, var_size, var_ptr);
++ return false;
++ }
++ if (paranth_index == 0) {
++--- a/plugins/experimental/collapsed_forwarding/collapsed_forwarding.cc
+++++ b/plugins/experimental/collapsed_forwarding/collapsed_forwarding.cc
++@@ -353,7 +353,7 @@ TSRemapInit(TSRemapInterface * /* api_in
++ TSError("Cannot initialize %s as both global and remap plugin", DEBUG_TAG);
++ return TS_ERROR;
++ } else {
++- TSDebug(DEBUG_TAG, "plugin is succesfully initialized for remap");
+++ TSDebug(DEBUG_TAG, "plugin is successfully initialized for remap");
++ return TS_SUCCESS;
++ }
++ }
++--- a/plugins/experimental/fq_pacing/fq_pacing.c
+++++ b/plugins/experimental/fq_pacing/fq_pacing.c
++@@ -118,7 +118,7 @@ TSRemapInit(TSRemapInterface *api_info,
++ return TS_ERROR;
++ }
++
++- TSDebug(PLUGIN_NAME, "plugin is succesfully initialized");
+++ TSDebug(PLUGIN_NAME, "plugin is successfully initialized");
++ return TS_SUCCESS;
++ }
++
++--- a/plugins/experimental/header_normalize/header_normalize.cc
+++++ b/plugins/experimental/header_normalize/header_normalize.cc
++@@ -158,7 +158,7 @@ TSRemapInit(TSRemapInterface *api_info,
++ return TS_ERROR;
++ }
++ buildHdrMap();
++- TSDebug(PLUGIN_NAME, "plugin is succesfully initialized");
+++ TSDebug(PLUGIN_NAME, "plugin is successfully initialized");
++ return TS_SUCCESS;
++ }
++
++--- a/plugins/experimental/prefetch/plugin.cc
+++++ b/plugins/experimental/prefetch/plugin.cc
++@@ -202,7 +202,7 @@ evaluate(const String &v)
++ } else {
++ stmt.assign(v);
++ }
++- PrefetchDebug("statement: '%s', formating length: %zu", stmt.c_str(), len);
+++ PrefetchDebug("statement: '%s', formatting length: %zu", stmt.c_str(), len);
++
++ int result = 0;
++ pos = stmt.find_first_of("+-");
++--- a/plugins/experimental/uri_signing/parse.c
+++++ b/plugins/experimental/uri_signing/parse.c
++@@ -142,7 +142,7 @@ validate_jws(cjose_jws_t *jws, struct co
++ PluginDebug("Initial validation of JWT failed for %16p", jws);
++ goto jwt_fail;
++ }
++- TimerDebug("inital validation of jwt");
+++ TimerDebug("initial validation of jwt");
++
++ cjose_header_t *hdr = cjose_jws_get_protected(jws);
++ TimerDebug("getting header of jws");
++--- a/plugins/experimental/uri_signing/uri_signing.c
+++++ b/plugins/experimental/uri_signing/uri_signing.c
++@@ -46,7 +46,7 @@ TSRemapInit(TSRemapInterface *api_info,
++ return TS_ERROR;
++ }
++
++- TSDebug(PLUGIN_NAME, "plugin is succesfully initialized");
+++ TSDebug(PLUGIN_NAME, "plugin is successfully initialized");
++ return TS_SUCCESS;
++ }
++
++--- a/plugins/experimental/url_sig/url_sig.c
+++++ b/plugins/experimental/url_sig/url_sig.c
++@@ -98,7 +98,7 @@ TSRemapInit(TSRemapInterface *api_info,
++ return TS_ERROR;
++ }
++
++- TSDebug(PLUGIN_NAME, "plugin is succesfully initialized");
+++ TSDebug(PLUGIN_NAME, "plugin is successfully initialized");
++ return TS_SUCCESS;
++ }
++
++--- a/plugins/generator/generator.cc
+++++ b/plugins/generator/generator.cc
++@@ -609,7 +609,7 @@ GeneratorTxnHook(TSCont contp, TSEvent e
++ TSReleaseAssert(TSHttpTxnCacheLookupStatusGet(arg.txn, &status) == TS_SUCCESS);
++ if (status != TS_CACHE_LOOKUP_HIT_FRESH) {
++ // This transaction is going to be a cache miss, so intercept it.
++- VDEBUG("intercepting orgin server request for txn=%p", arg.txn);
+++ VDEBUG("intercepting origin server request for txn=%p", arg.txn);
++ TSHttpTxnServerIntercept(TSContCreate(GeneratorInterceptionHook, TSMutexCreate()), arg.txn);
++ }
++
++--- a/plugins/header_rewrite/header_rewrite.cc
+++++ b/plugins/header_rewrite/header_rewrite.cc
++@@ -330,7 +330,7 @@ TSPluginInit(int argc, const char *argv[
++ // just appended to the configurations.
++ TSDebug(PLUGIN_NAME, "Loading global configuration file %s", argv[i]);
++ if (conf->parse_config(argv[i], TS_HTTP_READ_RESPONSE_HDR_HOOK)) {
++- TSDebug(PLUGIN_NAME, "Succesfully loaded global config file %s", argv[i]);
+++ TSDebug(PLUGIN_NAME, "Successfully loaded global config file %s", argv[i]);
++ got_config = true;
++ } else {
++ TSError("[header_rewrite] failed to parse configuration file %s", argv[i]);
++@@ -401,7 +401,7 @@ TSRemapNewInstance(int argc, char *argv[
++ delete conf;
++ return TS_ERROR;
++ } else {
++- TSDebug(PLUGIN_NAME, "Succesfully loaded remap config file %s", argv[i]);
+++ TSDebug(PLUGIN_NAME, "Successfully loaded remap config file %s", argv[i]);
++ }
++ }
++
++@@ -470,6 +470,6 @@ TSRemapDoRemap(void *ih, TSHttpTxn rh, T
++ rule = rule->next;
++ }
++
++- TSDebug(PLUGIN_NAME_DBG, "Returing from TSRemapDoRemap with status: %d", rval);
+++ TSDebug(PLUGIN_NAME_DBG, "Returning from TSRemapDoRemap with status: %d", rval);
++ return rval;
++ }
++--- a/plugins/s3_auth/s3_auth.cc
+++++ b/plugins/s3_auth/s3_auth.cc
++@@ -871,7 +871,7 @@ event_handler(TSCont cont, TSEvent event
++ }
++
++ if (TS_HTTP_STATUS_OK == status) {
++- TSDebug(PLUGIN_NAME, "Succesfully signed the AWS S3 URL");
+++ TSDebug(PLUGIN_NAME, "Successfully signed the AWS S3 URL");
++ } else {
++ TSDebug(PLUGIN_NAME, "Failed to sign the AWS S3 URL, status = %d", status);
++ TSHttpTxnStatusSet(txnp, status);
++--- a/src/traffic_cache_tool/CacheTool.cc
+++++ b/src/traffic_cache_tool/CacheTool.cc
++@@ -867,7 +867,7 @@ Span::updateHeader()
++ zret.push(0, errno, "Failed to update span - ", strerror(errno));
++ }
++ } else {
++- std::cout << "Writing not enabled, no updates perfomed" << std::endl;
+++ std::cout << "Writing not enabled, no updates performed" << std::endl;
++ }
++ return zret;
++ }
++--- a/src/traffic_crashlog/traffic_crashlog.cc
+++++ b/src/traffic_crashlog/traffic_crashlog.cc
++@@ -198,7 +198,7 @@ main(int /* argc ATS_UNUSED */, const ch
++ mgmterr = TSInit(nullptr, (TSInitOptionT)(TS_MGMT_OPT_NO_EVENTS | TS_MGMT_OPT_NO_SOCK_TESTS));
++ if (mgmterr != TS_ERR_OKAY) {
++ char *msg = TSGetErrorMessage(mgmterr);
++- Warning("failed to intialize management API: %s", msg);
+++ Warning("failed to initialize management API: %s", msg);
++ TSfree(msg);
++ }
++
++--- a/src/traffic_logstats/logstats.cc
+++++ b/src/traffic_logstats/logstats.cc
++@@ -1828,7 +1828,7 @@ process_file(int in_fd, off_t offset, un
++ unsigned second_read_size = sizeof(LogBufferHeader) - first_read_size;
++ nread = read(in_fd, &buffer[first_read_size], second_read_size);
++ if (!nread || EOF == nread) {
++- Debug("logstats", "Second read of header failed (attemped %d bytes at offset %d, got nothing), errno=%d.", second_read_size,
+++ Debug("logstats", "Second read of header failed (attempted %d bytes at offset %d, got nothing), errno=%d.", second_read_size,
++ first_read_size, errno);
++ return 1;
++ }
++--- a/src/traffic_manager/traffic_manager.cc
+++++ b/src/traffic_manager/traffic_manager.cc
++@@ -142,7 +142,7 @@ rotateLogs()
++ if (kill(tspid, SIGUSR2) != 0) {
++ mgmt_log("Could not send SIGUSR2 to TS: %s", strerror(errno));
++ } else {
++- mgmt_log("Succesfully sent SIGUSR2 to TS!");
+++ mgmt_log("Successfully sent SIGUSR2 to TS!");
++ }
++ }
++ }
++--- a/src/traffic_server/CoreUtils.h
+++++ b/src/traffic_server/CoreUtils.h
++@@ -44,7 +44,7 @@
++ #define PC_REGNUM 12 /* Contains program counter EIP */
++ #define FP_REGNUM 5 /* Virtual frame pointer EBP */
++ #define NO_OF_ARGS \
++- 10 /* The argument depth upto which we would be looking into \
+++ 10 /* The argument depth up to which we would be looking into \
++ the stack */
++
++ // contains local and in registers, frame pointer, and stack base
++@@ -63,7 +63,7 @@ struct core_stack_state {
++ #include <assert.h>
++
++ #define NO_OF_ARGS \
++- 10 /* The argument depth upto which we would be looking into \
+++ 10 /* The argument depth up to which we would be looking into \
++ the stack */
++
++ // contains local and in registers, frame pointer, and stack base
++--- a/src/traffic_server/InkAPITest.cc
+++++ b/src/traffic_server/InkAPITest.cc
++@@ -4225,7 +4225,7 @@ REGRESSION_TEST(SDK_API_TSHttpHdr)(Regre
++ SDK_RPRINT(test, "TSHttpHdrUrlSet&Get", "TestCase1", TC_FAIL, "TSHttpHdrUrlSet returns TS_ERROR");
++ } else {
++ if (TSHttpHdrUrlGet(bufp1, hdr_loc1, &url_loc_Get) != TS_SUCCESS) {
++- SDK_RPRINT(test, "TSHttpHdrUrlSet&Get", "TestCase1", TC_FAIL, "TSHttpHdrUrlGet retuns TS_ERROR");
+++ SDK_RPRINT(test, "TSHttpHdrUrlSet&Get", "TestCase1", TC_FAIL, "TSHttpHdrUrlGet returns TS_ERROR");
++ } else {
++ if (url_loc == url_loc_Get) {
++ SDK_RPRINT(test, "TSHttpHdrUrlSet&Get", "TestCase1", TC_PASS, "ok");
++--- a/src/tscore/ArgParser.cc
+++++ b/src/tscore/ArgParser.cc
++@@ -154,7 +154,7 @@ ArgParser::parse(const char **argv)
++ };
++ // if there is anything left, then output usage
++ if (!args.empty()) {
++- std::string msg = "Unkown command, option or args:";
+++ std::string msg = "Unknown command, option or args:";
++ for (auto it : args) {
++ msg = msg + " '" + it + "'";
++ }
++--- a/iocore/net/Socks.cc
+++++ b/iocore/net/Socks.cc
++@@ -694,7 +694,7 @@ socks5PasswdAuthHandler(int event, unsig
++ // NEC thinks it is 5 RFC seems to indicate 1.
++ switch (p[1]) {
++ case 0:
++- Debug("Socks", "Username/Passwd succeded");
+++ Debug("Socks", "Username/Passwd succeeded");
++ *h_ptr = nullptr;
++ break;
++
++--- a/iocore/net/UnixUDPNet.cc
+++++ b/iocore/net/UnixUDPNet.cc
++@@ -628,7 +628,7 @@ UDPNetProcessor::CreateUDPSocket(int *re
++ }
++
++ if ((res = safe_getsockname(fd, &local_addr.sa, &local_addr_len)) < 0) {
++- Debug("udpnet", "CreateUdpsocket: getsockname didnt' work");
+++ Debug("udpnet", "CreateUdpsocket: getsockname didn't work");
++ goto HardError;
++ }
++ }
++--- a/mgmt/Rollback.cc
+++++ b/mgmt/Rollback.cc
++@@ -133,7 +133,7 @@ Rollback::Rollback(const char *fileName_
++ mgmt_log("[RollBack::Rollback] Automatic Rollback to prior version failed for %s : %s\n", fileName, strerror(errno));
++ needZeroLength = true;
++ } else {
++- mgmt_log("[RollBack::Rollback] Automatic Rollback to version succeded for %s\n", fileName, strerror(errno));
+++ mgmt_log("[RollBack::Rollback] Automatic Rollback to version succeeded for %s\n", fileName, strerror(errno));
++ needZeroLength = false;
++ highestSeen--;
++ // Since we've made the highestVersion active
++--- a/proxy/logging/LogBuffer.cc
+++++ b/proxy/logging/LogBuffer.cc
++@@ -270,7 +270,7 @@ LogBuffer::checkout_write(size_t *write_
++ }
++
++ if (switch_state(old_s, new_s)) {
++- // we succeded in setting the new state
+++ // we succeeded in setting the new state
++ break;
++ }
++ }
++--- a/proxy/logging/LogObject.cc
+++++ b/proxy/logging/LogObject.cc
++@@ -409,7 +409,7 @@ LogObject::_checkout_write(size_t *write
++
++ switch (result_code) {
++ case LogBuffer::LB_OK:
++- // checkout succeded
+++ // checkout succeeded
++ retry = false;
++ break;
++
++--- a/doc/admin-guide/plugins/header_rewrite.en.rst
+++++ b/doc/admin-guide/plugins/header_rewrite.en.rst
++@@ -330,7 +330,7 @@ The data that can be checked is ::
++ %{INBOUND:REMOTE-PORT} The client port for the connection.
++ %{INBOUND:TLS} The TLS protocol if the connection is over TLS, otherwise the empty string.
++ %{INBOUND:H2} The string "h2" if the connection is HTTP/2, otherwise the empty string.
++- %{INBOUND:IPV4} The string "ipv4" if the connection is IPv4, otherwise the emtpy string.
+++ %{INBOUND:IPV4} The string "ipv4" if the connection is IPv4, otherwise the empty string.
++ %{INBOUND:IPV6} The string "ipv6" if the connection is IPv6, otherwise the empty string.
++ %{INBOUND:IP-FAMILY} The IP family, either "ipv4" or "ipv6".
++ %{INBOUND:STACK} The full protocol stack separated by ','.
++@@ -827,7 +827,7 @@ Variable Description
++ %<INBOUND:TLS> The TLS protocol for the inbound connection if it is over TLS, otherwise the
++ empty string.
++ %<INBOUND:H2> The string "h2" if the inbound connection is HTTP/2, otherwise the empty string.
++-%<INBOUND:IPV4> The string "ipv4" if the inbound connection is IPv4, otherwise the emtpy string.
+++%<INBOUND:IPV4> The string "ipv4" if the inbound connection is IPv4, otherwise the empty string.
++ %<INBOUND:IPV6> The string "ipv6" if the inbound connection is IPv6, otherwise the empty string.
++ %<INBOUND:IP-FAMILY> The IP family of the inbound connection (either "ipv4" or "ipv6").
++ %<INBOUND:STACK> The full protocol stack of the inbound connection separated by ','.
++--- a/iocore/dns/SplitDNS.cc
+++++ b/iocore/dns/SplitDNS.cc
++@@ -341,7 +341,7 @@ SplitDNSRecord::ProcessDNSHosts(char *va
++ if (tmp - current > (MAXDNAME - 1)) {
++ return "DNS server name (ip) is too long";
++ } else if (tmp - current == 0) {
++- return "server string is emtpy";
+++ return "server string is empty";
++ }
++ *tmp = 0;
++ }
++--- a/lib/records/RecHttp.cc
+++++ b/lib/records/RecHttp.cc
++@@ -410,7 +410,7 @@ HttpProxyPort::processOptions(const char
++ if (in_ip_set_p && m_family != m_inbound_ip.family()) {
++ std::string_view iname{ats_ip_family_name(m_inbound_ip.family())};
++ std::string_view fname{ats_ip_family_name(m_family)};
++- Warning("Invalid port descriptor '%s' - the inbound adddress family [%.*s] is not the same type as the explicit family value "
+++ Warning("Invalid port descriptor '%s' - the inbound address family [%.*s] is not the same type as the explicit family value "
++ "[%.*s]",
++ opts, static_cast<int>(iname.size()), iname.data(), static_cast<int>(fname.size()), fname.data());
++ zret = false;
++--- a/proxy/ParentSelection.cc
+++++ b/proxy/ParentSelection.cc
++@@ -491,7 +491,7 @@ ParentRecord::ProcessParents(char *val,
++ errPtr = "Parent hostname is too long";
++ goto MERROR;
++ } else if (tmp - current == 0) {
++- errPtr = "Parent string is emtpy";
+++ errPtr = "Parent string is empty";
++ goto MERROR;
++ }
++ // Update the pRecords
++--- a/src/tscore/HostLookup.cc
+++++ b/src/tscore/HostLookup.cc
++@@ -50,7 +50,7 @@ domaincmp(const char *hostname, const ch
++ const char *host_cur = hostname + strlen(hostname);
++ const char *domain_cur = domain + strlen(domain);
++
++- // Check to see if were passed emtpy stings for either
+++ // Check to see if were passed empty stings for either
++ // argument. Empty strings do not match anything
++ //
++ if (domain_cur == domain || host_cur == hostname) {
++@@ -380,7 +380,7 @@ charIndex::Insert(const char *match_data
++
++ // Check to see if are at the level we supposed be at
++ if (*(match_data + 1) == '\0') {
++- // The slot should always be emtpy, no duplicate
+++ // The slot should always be empty, no duplicate
++ // keys are allowed
++ ink_assert(cur->branch_array[index] == nullptr);
++ cur->branch_array[index] = toInsert;
++--- a/build/pkg.m4
+++++ b/build/pkg.m4
++@@ -53,7 +53,7 @@ fi[]dnl
++ # to PKG_CHECK_MODULES(), but does not set variables or print errors.
++ #
++ # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
++-# only at the first occurence in configure.ac, so if the first place
+++# only at the first occurrence in configure.ac, so if the first place
++ # it's called might be skipped (such as if it is within an "if", you
++ # have to call PKG_CHECK_EXISTS manually
++ # --------------------------------------------------------------
++--- a/include/tscpp/util/TextView.h
+++++ b/include/tscpp/util/TextView.h
++@@ -264,7 +264,7 @@ public:
++ self_type prefix(size_t n) const;
++ /// Convenience overload to avoid ambiguity for literal numbers.
++ self_type prefix(int n) const;
++- /** Get the prefix delimited by the first occurence of the character @a c.
+++ /** Get the prefix delimited by the first occurrence of the character @a c.
++
++ If @a c is not found the entire view is returned.
++ The delimiter character is not included in the returned view.
++@@ -272,7 +272,7 @@ public:
++ @return A view of the prefix.
++ */
++ self_type prefix(char c) const;
++- /** Get the prefix delimited by the first occurence of a character in @a delimiters.
+++ /** Get the prefix delimited by the first occurrence of a character in @a delimiters.
++
++ If no such character is found the entire view is returned.
++ The delimiter character is not included in the returned view.
++--- a/iocore/cache/CacheVol.cc
+++++ b/iocore/cache/CacheVol.cc
++@@ -400,7 +400,7 @@ CacheVC::scanOpenWrite(int /* event ATS_
++ // get volume lock
++ if (writer_lock_retry > SCAN_WRITER_LOCK_MAX_RETRY) {
++ int r = _action.continuation->handleEvent(CACHE_EVENT_SCAN_OPERATION_BLOCKED, nullptr);
++- Debug("cache_scan", "still havent got the writer lock, asking user..");
+++ Debug("cache_scan", "still haven't got the writer lock, asking user..");
++ switch (r) {
++ case CACHE_SCAN_RESULT_RETRY:
++ writer_lock_retry = 0;
++--- a/iocore/eventsystem/I_IOBuffer.h
+++++ b/iocore/eventsystem/I_IOBuffer.h
++@@ -697,7 +697,7 @@ public:
++ /**
++ Perform a memchr() across the list of IOBufferBlocks. Returns the
++ offset from the current start point of the reader to the first
++- occurence of character 'c' in the buffer.
+++ occurrence of character 'c' in the buffer.
++
++ @param c character to look for.
++ @param len number of characters to check. If len exceeds the number
++--- a/iocore/net/OCSPStapling.cc
+++++ b/iocore/net/OCSPStapling.cc
++@@ -92,7 +92,7 @@ stapling_get_issuer(SSL_CTX *ssl_ctx, X5
++
++ #ifdef SSL_CTX_select_current_cert
++ if (!SSL_CTX_select_current_cert(ssl_ctx, x)) {
++- Warning("OCSP: could not select current certifcate chain %p", x);
+++ Warning("OCSP: could not select current certificate chain %p", x);
++ }
++ #endif
++
++--- a/mgmt/Alarms.cc
+++++ b/mgmt/Alarms.cc
++@@ -297,7 +297,7 @@ Alarms::signalAlarm(alarm_t a, const cha
++ (*(func))(a, ip, desc);
++ }
++
++- /* Priority 2 alarms get signalled if they are the first unsolved occurence. */
+++ /* Priority 2 alarms get signalled if they are the first unsolved occurrence. */
++ if (priority == 2 && !ip) {
++ execAlarmBin(desc);
++ }
++--- a/proxy/http/HttpSessionManager.cc
+++++ b/proxy/http/HttpSessionManager.cc
++@@ -204,7 +204,7 @@ ServerSessionPool::eventHandler(int even
++ if (connection_count_below_min) {
++ Debug("http_ss",
++ "[%" PRId64 "] [session_bucket] session received io notice [%s], "
++- "reseting timeout to maintain minimum number of connections",
+++ "resetting timeout to maintain minimum number of connections",
++ s->con_id, HttpDebugNames::get_event_name(event));
++ s->get_netvc()->set_inactivity_timeout(s->get_netvc()->get_inactivity_timeout());
++ s->get_netvc()->set_active_timeout(s->get_netvc()->get_active_timeout());
++--- a/plugins/lua/ts_lua_transform.c
+++++ b/plugins/lua/ts_lua_transform.c
++@@ -89,7 +89,7 @@ ts_lua_transform_handler(TSCont contp, t
++ empty_input = 0;
++ if (!TSVIOBufferGet(input_vio)) {
++ if (transform_ctx->output.vio) {
++- TSDebug(TS_LUA_DEBUG_TAG, "[%s] reenabling ouput VIO after input VIO does not exist", __FUNCTION__);
+++ TSDebug(TS_LUA_DEBUG_TAG, "[%s] reenabling output VIO after input VIO does not exist", __FUNCTION__);
++ TSVIONBytesSet(transform_ctx->output.vio, transform_ctx->total);
++ TSVIOReenable(transform_ctx->output.vio);
++ return 0;
++--- a/proxy/hdrs/HdrHeap.cc
+++++ b/proxy/hdrs/HdrHeap.cc
++@@ -950,7 +950,7 @@ HdrHeap::unmarshal(int buf_length, int o
++ // Nothing to do
++ break;
++ default:
++- fprintf(stderr, "WARNING: Unmarshal failed due to unknow obj type %d after %d bytes", (int)obj->m_type,
+++ fprintf(stderr, "WARNING: Unmarshal failed due to unknown obj type %d after %d bytes", (int)obj->m_type,
++ (int)(obj_data - (char *)this));
++ dump_heap(unmarshal_size);
++ return -1;
--- /dev/null
--- /dev/null
++Description: Fix Perl interpreter path
++Author: Jean Baptiste Favre <debian@jbfavre.org>
++Reviewed-by: Jean Baptiste Favre <debian@jbfavre.org>
++Last-Update: 2019-01-03
++---
++This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
++--- a/tools/tspush
+++++ b/tools/tspush
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env perl
+++#!/usr/bin/perl
++
++ #
++ # Licensed to the Apache Software Foundation (ASF) under one
--- /dev/null
--- /dev/null
++Description: Update compilation chain after embedded libyamlcpp removal
++Author: Jean Baptiste Favre <debian@jbfavre.org>
++Origin: other
++Reviewed-by: Jean Baptiste Favre <debian@jbfavre.org>
++Last-Update: 2019-01-30
++---
++This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
++--- a/CMakeLists.txt
+++++ b/CMakeLists.txt
++@@ -41,7 +41,6 @@ include_directories(lib
++ proxy/shared
++ lib/records
++ include/wccp
++- lib/yamlcpp/include
++ iocore/eventsystem
++ iocore/net
++ iocore/dns
++--- a/configure.ac
+++++ b/configure.ac
++@@ -2041,7 +2041,6 @@ AC_CONFIG_FILES([
++ include/tscore/ink_config.h
++ lib/tsconfig/Makefile
++ src/wccp/Makefile
++- lib/yamlcpp/Makefile
++ mgmt/Makefile
++ mgmt/api/Makefile
++ mgmt/api/include/Makefile
++--- a/lib/Makefile.am
+++++ b/lib/Makefile.am
++@@ -25,12 +25,6 @@ endif
++ # to prevent Clang Analyzer warning
++ LOCAL =
++
++-if BUILD_YAML_CPP
++-LOCAL += yamlcpp
++-endif
++-
++ all-local: $(LOCAL)
++- $(MAKE) -C yamlcpp
++
++ clean-local:
++- $(MAKE) -C yamlcpp clean
--- /dev/null
--- /dev/null
++Description: Fix LDFLAGS usage,
++Author: Gianfranco Costamagna <locutusofborg@debian.org>
++
++Forwarded: https://github.com/apache/trafficserver/pull/4793
++Last-Update: 2019-01-12
++
++--- trafficserver-8.0.1.orig/build/common.m4
+++++ trafficserver-8.0.1/build/common.m4
++@@ -196,17 +196,17 @@ AC_DEFUN([TS_TRY_COMPILE_NO_WARNING],
++ ])
++
++ dnl
++-dnl TS_LINK_WITH_FLAGS_IFELSE(LDFLAGS, FUNCTION-BODY,
+++dnl TS_LINK_WITH_FLAGS_IFELSE(LIBS, FUNCTION-BODY,
++ dnl [ACTIONS-IF-LINKS], [ACTIONS-IF-LINK-FAILS])
++ dnl
++ dnl Tries a link test with the provided flags.
++ dnl
++
++ AC_DEFUN([TS_LINK_WITH_FLAGS_IFELSE],
++-[ats_save_LDFLAGS=$LDFLAGS
++- LDFLAGS="$LDFLAGS $1"
+++[ats_save_LIBS=$LIBS
+++ LIBS="$LIBS $1"
++ AC_LINK_IFELSE([$2],[$3],[$4])
++- LDFLAGS=$ats_save_LDFLAGS
+++ LIBS=$ats_save_LIBS
++ ])
++
++
--- /dev/null
--- /dev/null
++0001-Use-mcx16-on-x86-platforms-only.patch
++0003-reproductible-build.patch
++0006-fix-doc-build.patch
++0008-fix-python-check-unused-dependencies.patch
++0009-fix-mysql-8-build.patch
++0011-fix-segfault.patch
++0012-fix-spelling-checks.patch
++0013-fix-perl-interpreter-path.patch
++0014-use_system_yaml-cpp.patch
++0015-as-needed-fix.patch
--- /dev/null
--- /dev/null
++#!/usr/bin/make -f
++# -*- makefile -*-
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++export DEB_BUILD_MAINT_OPTIONS = hardening=+all
++export DEB_CFLAGS_MAINT_APPEND = -O3
++export DEB_CXXFLAGS_MAINT_APPEND = -O3
++# mips & mipsel need explicit libatomic link
++ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),mips mipsel))
++ export DEB_LDFLAGS_MAINT_APPEND += -latomic
++endif
++
++# Get build architecture. ./configure is different on Linux
++include /usr/share/dpkg/architecture.mk
++# Get rid f dpkg-parsechangelog
++include /usr/share/dpkg/pkg-info.mk
++
++configure_flags = \
++ --enable-layout=Debian \
++ --sysconfdir=/etc/trafficserver --libdir=/usr/lib/trafficserver \
++ --libexecdir=/usr/lib/trafficserver/modules \
++ --with-user=root --with-group=root --disable-silent-rules \
++ --enable-experimental-plugins --enable-32bit-build \
++ --enable-mime-sanity-check --enable-docs \
++ --with-build-version=$(DEB_VERSION) \
++ --with-yaml-cpp=/usr \
++ $(shell dpkg-buildflags --export=configure)
++
++ifeq ($(DEB_HOST_ARCH_OS),linux)
++ configure_flags += --enable-wccp
++endif
++
++%:
++ dh $@
++
++override_dh_auto_configure:
++ dh_auto_configure -- $(configure_flags)
++
++override_dh_auto_install:
++ dh_auto_install -- INSTALLDIRS=vendor
++ rm -f debian/tmp/usr/bin/trafficserver # We install our own
++ # Satisfy §10.2 (http://wiki.debian.org/ReleaseGoals/LAFileRemoval)
++ rm -f debian/tmp/usr/lib/trafficserver/lib*.la
++ rm -f debian/tmp/usr/lib/trafficserver/modules/*.la
++ rm -f debian/tmp/usr/lib/trafficserver/lib*.a
++ifneq ($(DEB_HOST_ARCH_OS),linux)
++ # Remove Linux-specific plugin
++ sed -i '/\/healthchecks\.so$$/d' \
++ debian/trafficserver.install
++endif
++
++override_dh_install:
++ dh_install
++ dh_missing --list-missing
++ ./debian/change_config.pl debian/trafficserver/etc/trafficserver/records.config
++ # Lintian fixes
++ mkdir -p debian/trafficserver/usr/share/doc/trafficserver
++ cat CHANGELOG-* >> debian/trafficserver/usr/share/doc/trafficserver/changelog
++ #rm debian/trafficserver-dev/usr/share/doc/trafficserver-dev/examples/ssl-preaccept/ssl_preaccept.config
++ #(cd debian/trafficserver-dev/usr/share/doc/trafficserver-dev/examples/ssl-preaccept/; \
++ #ln -s ssl_preaccept.config ssl_sni.config)
++
++override_dh_fixperms:
++ dh_fixperms -Xvar/lib/trafficserver \
++ -Xvar/log/trafficserver \
++ -Xvar/cache/trafficserver \
++ -Xvar/run/trafficserver
++ # Fix lintian warning
++ chmod -x debian/trafficserver-dev/usr/share/doc/trafficserver-dev/examples/remap_header_add/build.txt
++
++override_dh_installexamples:
++ dh_installexamples -XMakefile -X.libs -X.dirstamp -X.deps -X.la -X.lo
++
++override_dh_makeshlibs:
++ dh_makeshlibs -Xdebian/tmp/usr/lib/trafficserver
++
++override_dh_auto_test:
++ -dh_auto_test
--- /dev/null
--- /dev/null
++---
++include: https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
++
++variables:
++ RELEASE: 'experimental'
++
++build:
++ extends: .build-package
++
++#reprotest:
++# extends: .test-reprotest
++
++lintian:
++ extends: .test-lintian
++
++autopkgtest:
++ extends: .test-autopkgtest
++
++blhc:
++ extends: .test-blhc
++
++piuparts:
++ extends: .test-piuparts
--- /dev/null
--- /dev/null
++3.0 (quilt)
--- /dev/null
--- /dev/null
++--extend-diff-ignore='examples/|diags.log|lib/perl/'
--- /dev/null
--- /dev/null
++Tests: upstream-testsuite
++Depends: trafficserver, python3-dev, python3-virtualenv, virtualenv, build-essential, curl, netcat
++Restrictions: rw-build-tree allow-stderr
--- /dev/null
--- /dev/null
++#!/bin/sh -e
++
++cd tests
++python3 bootstrap.py
++. env-test/bin/activate
++
++TESTS="redirect remap"
++
++for what in $TESTS; do
++ autest -D gold_tests --ats-bin /usr/bin/ --filter $what
++done
--- /dev/null
--- /dev/null
++example/*
--- /dev/null
--- /dev/null
++debian/tmp/usr/include/*
++debian/tmp/usr/bin/tsxs
++debian/tmp/usr/lib/trafficserver/lib*.so
++debian/tmp/usr/lib/trafficserver/pkgconfig/trafficserver.pc
--- /dev/null
--- /dev/null
++debian/tmp/usr/share/man/man1/tsxs.1
++debian/tmp/usr/share/man/man3/*
--- /dev/null
--- /dev/null
++usr/lib/trafficserver/modules/access_control.so
++usr/lib/trafficserver/modules/acme.so
++usr/lib/trafficserver/modules/balancer.so
++usr/lib/trafficserver/modules/buffer_upload.so
++usr/lib/trafficserver/modules/cache_key_genid.so
++usr/lib/trafficserver/modules/cache_range_requests.so
++usr/lib/trafficserver/modules/certifier.so
++usr/lib/trafficserver/modules/collapsed_forwarding.so
++usr/lib/trafficserver/modules/custom_redirect.so
++usr/lib/trafficserver/modules/fq_pacing.so
++usr/lib/trafficserver/modules/geoip_acl.so
++usr/lib/trafficserver/modules/header_freq.so
++usr/lib/trafficserver/modules/header_normalize.so
++usr/lib/trafficserver/modules/hipes.so
++usr/lib/trafficserver/modules/hook-trace.so
++usr/lib/trafficserver/modules/inliner.so
++usr/lib/trafficserver/modules/tsmemcache.so
++usr/lib/trafficserver/modules/memcached_remap.so
++usr/lib/trafficserver/modules/metalink.so
++usr/lib/trafficserver/modules/money_trace.so
++usr/lib/trafficserver/modules/mp4.so
++usr/lib/trafficserver/modules/multiplexer.so
++usr/lib/trafficserver/modules/mysql_remap.so
++usr/lib/trafficserver/modules/prefetch.so
++usr/lib/trafficserver/modules/remap_purge.so
++usr/lib/trafficserver/modules/remap_stats.so
++usr/lib/trafficserver/modules/server_push_preload.so
++usr/lib/trafficserver/modules/ssl_cert_loader.so
++usr/lib/trafficserver/modules/sslheaders.so
++usr/lib/trafficserver/modules/stale_while_revalidate.so
++usr/lib/trafficserver/modules/stream_editor.so
++usr/lib/trafficserver/modules/system_stats.so
++usr/lib/trafficserver/modules/tls_bridge.so
++usr/lib/trafficserver/modules/traffic_dump.so
++usr/lib/trafficserver/modules/uri_signing.so
++usr/lib/trafficserver/modules/url_sig.so
--- /dev/null
--- /dev/null
++# changelog is already provided in trafficserver main package.
++# no need to duplicate it in each package
++no-upstream-changelog
--- /dev/null
--- /dev/null
++## Defaults for trafficserver initscript
++## sourced by /etc/init.d/trafficserver
++## installed at /etc/default/trafficserver by the maintainer scripts
++
++##
++## This is a POSIX shell fragment
++##
++
++## Variable: RUNDIR
++## Default: /var/run/trafficserver
++## Description: Set this to the directory where runtime data is stored. The
++## default value should work fine for almost all users.
++# RUNDIR=/var/run/trafficserver
++
++
++## Configuration for `traffic_manager'.
++## Meaning of variables is analogous to traffic_cop above, but for the
++## `traffic_manager' binary.
++
++TM_START=yes
++# TM_DAEMON_ARGS=""
++# TM_PIDFILE=$RUNDIR/manager.lock
++
++##
++## NOTICE:
++## Typically you do not want to configure anything below. Note, generally Traffic
++## Server is started through `traffic_cop' which is a watchdog to control any local
++## Traffic Server instances. It starts both, traffic_manager and traffic_server, as
++## does it monitor these processes. While it is generally not advised, you can
++## choose to manage both processes yourself. In such cases do not set TC_START to
++## "yes" and enable any service you want below.
++##
++## Choose either alternative, but do not mix up both.
++
++## Configuration for `traffic_server'.
++## Meaning of variables is analogous to traffic_cop above, but for the
++## `traffic_server' binary.
++
++# TS_START=no
++# TS_DAEMON_ARGS=""
++# TS_PIDFILE=$RUNDIR/server.lock
--- /dev/null
--- /dev/null
++/var/cache/trafficserver
++/var/log/trafficserver
--- /dev/null
--- /dev/null
++plugins/experimental/cacheurl/*.example
++plugins/experimental/mysql_remap/sample.ini
--- /dev/null
--- /dev/null
++#! /bin/sh
++
++### BEGIN INIT INFO
++# Provides: trafficserver
++# Required-Start: $remote_fs $syslog
++# Required-Stop: $remote_fs $syslog
++# Default-Start: 2 3 4 5
++# Default-Stop: 0 1 6
++# Short-Description: init script for the Apache Traffic Server
++# Description: Apache Traffic Server is fast, scalable and extensible
++# HTTP/1.1 compliant caching proxy server.
++### END INIT INFO
++
++# Author: Arno Töll <debian@toell.net>
++#
++# This init script is derived from the source package's version shipped
++# along the source tarball as rc/trafficserver. Therefore it is a derivative
++# work and licensed as follows:
++#
++#
++# Licensed to the Apache Software Foundation (ASF) under one or more
++# contributor license agreements. See the NOTICE file distributed with
++# this work for additional information regarding copyright ownership.
++# The ASF licenses this file to You under the Apache License, Version 2.0
++# (the "License"); you may not use this file except in compliance with
++# the License. You may obtain a copy of the License at
++#
++# http://www.apache.org/licenses/LICENSE-2.0
++#
++# Unless required by applicable law or agreed to in writing, software
++# distributed under the License is distributed on an "AS IS" BASIS,
++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++# See the License for the specific language governing permissions and
++# limitations under the License.
++
++PATH=/sbin:/usr/sbin:/bin:/usr/bin
++DESC="Apache Traffic Server"
++NAME=trafficserver
++SCRIPTNAME=/etc/init.d/$NAME
++
++
++# Please do not touch TS_ROOT and TS_BASE. Traffic Server uses them
++# They are used to determine location of ATS components on the file
++# system.
++# According to DPM § 9.9 a program must not depend on the existance of
++# environment variables to work properly. Please report any errors if
++# you experience such a problem, for me it seems to work just fine with-
++# out
++ESED=/usr/bin/sed
++test -x $ESED || ESED=sed
++TS_PREFIX="/usr"
++TS_ROOT=${TS_ROOT:-$TS_PREFIX}
++
++# TS_BASE is offset inside the file system from where the layout starts
++# For standard installations TS_BASE will be empty
++eval TS_BASE="`echo $TS_ROOT | ${ESED} -e 's;/usr$;;'`"
++
++# Set some safe defaults. So not change values here, override them in
++# in /etc/default/trafficserver instead.
++# See there for a documentation as well
++
++RUNDIR=${RUNDIR:-$TS_BASE/var/run/trafficserver}
++
++TM_START=${TM_START:-no}
++TM_NAME=${TM_NAME:-traffic_manager}
++TM_DAEMON=${TM_DAEMON:-$TS_BASE/usr/bin/traffic_manager}
++TM_DAEMON_ARGS=""
++TM_PIDFILE=${TM_PIDFILE:-$RUNDIR/manager.lock}
++
++TS_START=${TS_START:-no}
++TS_NAME=${TS_NAME:-traffic_server}
++TS_DAEMON=${TS_DAEMON:-$TS_BASE/usr/bin/traffic_server}
++TS_DAEMON_ARGS=""
++TS_PIDFILE=${TS_PIDFILE:-$RUNDIR/server.lock}
++
++# Exit if the package is not installed
++[ -x "$TM_DAEMON" ] || exit 0
++
++
++# Read configuration variable file if it is present
++[ -r /etc/default/$NAME ] && . /etc/default/$NAME
++
++# Load the VERBOSE setting and other rcS variables
++. /lib/init/vars.sh
++
++# Define LSB log_* functions.
++. /lib/lsb/init-functions
++
++# Check permissions of /etc/trafficserver.
++# Traffic Server needs write permissions, so warn the user if we suppose it
++# wouldn't.
++# The sysadmin is welcome to change the user ID that ATS uses. However to do that
++# in a clean and supported way, the administrator should overwrite the `stat override'
++# Debian installs by default in Trafficserver's postinst maintainer script.
++# Print a warning only.
++# Since this can't be safely determined by this script print a warning only, but
++# don't fail.
++CONF_DIR='/etc/trafficserver'
++USER=$(dpkg-statoverride --list "$CONF_DIR" | awk '{print $1}')
++OWNER=$(env stat -c '%U' "$CONF_DIR")
++if [ -d "$CONF_DIR" ] && [ ! "x$OWNER" = "x$USER" ] ; then
++ log_warning_msg "Configuration directory '$CONF_DIR' is not owned by user '$USER'. " \
++ "However Traffic Server needs write permissions to it."
++fi
++
++
++# Make sure $RUNDIR exists as the underlying file system
++# may be volatile (see § 9.3.2 from DPM)
++install -d -o trafficserver -g trafficserver -m 0755 "$RUNDIR"
++
++
++# A helper function, its purpose is to start a daemon.
++# Arguments are interpreted in order as follows:
++# 1) The executable path
++# 2) A string containing optional daemon arguments
++# 3) A (valid) path containing the PID file for the daemon
++# Returns:
++# 0 if daemon has been started
++# 1 if daemon was already running
++# 2 if daemon could not be started
++start_cmd()
++{
++ # Args
++ DAEMON=$1
++ DAEMON_ARGS=$2
++ PID=$3
++
++ #echo "\n\n"
++ #echo "d:" $DAEMON
++ #echo "da:" $DAEMON_ARGS
++ #echo "pid:" $PID
++
++ start-stop-daemon --start --quiet --pidfile $PID --exec $DAEMON --test > /dev/null \
++ || return 1
++ start-stop-daemon --start --quiet --background --pidfile $PID --exec $DAEMON -- \
++ $DAEMON_ARGS \
++ || return 2
++
++ return 0
++}
++
++
++# A helper function, its purpose is to stop a daemon.
++# Arguments are interpreted in order as follows:
++# 1) The daemon name (i.e. the binary name)
++# 2) The executable path
++# 3) A (valid) path containing the PID file for the daemon
++# Returns:
++# 0 if daemon has been stopped
++# 1 if daemon was already stopped
++# 2 if daemon could not be stopped
++# Another value if a failure occurred
++stop_cmd()
++{
++ NAME=$1
++ DAEMON=$2
++ PID=$3
++
++ start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PID --name $NAME
++ RETVAL="$?"
++ [ "$RETVAL" = 2 ] && return 2
++
++ start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
++ [ "$?" = 2 ] && return 2
++
++ # Many daemons don't delete their pidfiles when they exit.
++ rm -f $PID
++ return "$RETVAL"
++}
++
++# The start function
++# This function does everything required to bring up the service
++# at boot time.
++# It does not accept any arguments
++do_start() {
++ if [ "x$TM_START" != "xno" ]; then
++ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $TM_NAME"
++ start_cmd "$TM_DAEMON" "$TM_DAEMON_ARGS" "$TM_PIDFILE"
++ case "$?" in
++ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
++ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
++ esac
++ fi
++
++ if [ "x$TS_START" != "xno" ]; then
++ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $TS_NAME"
++ start_cmd "$TS_DAEMON" "$TS_DAEMON_ARGS" "$TS_PIDFILE"
++ case "$?" in
++ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
++ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
++ esac
++ fi
++}
++
++
++# The stop function
++# This function does everything required to stop the service.
++# It does not accept any arguments
++do_stop() {
++ [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $TM_NAME"
++ stop_cmd "$TM_NAME" "$TM_DAEMON" "$TM_PIDFILE"
++ case "$?" in
++ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
++ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
++ esac
++
++ [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $TS_NAME"
++ stop_cmd "$TS_NAME" "$TS_DAEMON" "$TS_PIDFILE"
++ case "$?" in
++ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
++ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
++ esac
++}
++
++case "$1" in
++ start)
++ if [ "x$TM_START" = "xno" ] && [ "x$TS_START" = "xno" ]; then
++ [ "$VERBOSE" != no ] && log_warning_msg "Not starting $DESC"
++ else
++ do_start
++ fi
++ ;;
++ stop)
++ do_stop
++ ;;
++ status)
++ if [ "x$TM_START" != "xno" ] ; then
++ status_of_proc "$TM_DAEMON" "$TM_NAME" -p "$TM_PIDFILE" && exit 0 || exit $?
++ else
++ status_of_proc "$TS_DAEMON" "$TS_NAME" -p "$TS_PIDFILE" || exit $?
++ fi
++ ;;
++ restart|force-reload)
++ log_daemon_msg "Restarting $DESC" "$NAME\n"
++ do_stop
++ case "$?" in
++ 0|1)
++ do_start
++ case "$?" in
++ 0) log_end_msg 0 ;;
++ 1) log_end_msg 1 ;; # Old process is still running
++ *) log_end_msg 1 ;; # Failed to start
++ esac
++ ;;
++ *)
++ # Failed to stop
++ log_end_msg 1
++ ;;
++ esac
++ ;;
++ *)
++ echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
++ exit 3
++ ;;
++esac
++
++:
--- /dev/null
--- /dev/null
++usr/bin/traffic_*
++usr/bin/tspush
++etc/trafficserver/*
++usr/lib/trafficserver/lib*.so.*
++usr/lib/trafficserver/modules/authproxy.so
++usr/lib/trafficserver/modules/background_fetch.so
++usr/lib/trafficserver/modules/cachekey.so
++usr/lib/trafficserver/modules/cache_promote.so
++usr/lib/trafficserver/modules/combo_handler.so
++usr/lib/trafficserver/modules/compress.so
++usr/lib/trafficserver/modules/conf_remap.so
++usr/lib/trafficserver/modules/escalate.so
++usr/lib/trafficserver/modules/esi.so
++usr/lib/trafficserver/modules/generator.so
++usr/lib/trafficserver/modules/header_rewrite.so
++usr/lib/trafficserver/modules/healthchecks.so
++usr/lib/trafficserver/modules/libloader.so
++usr/lib/trafficserver/modules/regex_remap.so
++usr/lib/trafficserver/modules/regex_revalidate.so
++usr/lib/trafficserver/modules/s3_auth.so
++usr/lib/trafficserver/modules/stats_over_http.so
++usr/lib/trafficserver/modules/tcpinfo.so
++usr/lib/trafficserver/modules/test_cppapi.so
++usr/lib/trafficserver/modules/tslua.so
++usr/lib/trafficserver/modules/xdebug.so
++usr/lib/perl5/* usr/share/perl5/
--- /dev/null
--- /dev/null
++rm_conffile /etc/trafficserver/vaddrs.config 8.0.0~ trafficserver
++rm_conffile /etc/trafficserver/metrics.config 8.0.0~ trafficserver
++rm_conffile /etc/trafficserver/logging.config 8.0.0~ trafficserver
++rm_conffile /etc/trafficserver/log_hosts.config 8.0.0~ trafficserver
++rm_conffile /etc/trafficserver/congestion.config 8.0.0~ trafficserver
++rm_conffile /etc/trafficserver/cluster.config 8.0.0~ trafficserver
++rm_conffile /etc/trafficserver/body_factory/default/congestion#retryAfter 8.0.0~ trafficserver
++rm_conffile /etc/trafficserver/icp.config 8.0.0~ trafficserver
++rm_conffile /etc/trafficserver/snapshosts 8.0.0~ trafficserver
--- /dev/null
--- /dev/null
++debian/tmp/usr/share/man/man1/traffic_*
++debian/tmp/usr/share/man/man1/tspush.1
++debian/tmp/usr/share/man/man8/traffic_*
++debian/tmp/usr/share/man/man5/*
--- /dev/null
--- /dev/null
++#! /bin/sh
++# postinst script for trafficserver
++#
++# see: dh_installdeb(1)
++#
++# Copyright 2011 Arno Toell <debian@toell.net>
++#
++# Licensed under the Apache License, Version 2.0 (the "License");
++# you may not use this file except in compliance with the License.
++# You may obtain a copy of the License at
++#
++# http://www.apache.org/licenses/LICENSE-2.0
++#
++# Unless required by applicable law or agreed to in writing, software
++# distributed under the License is distributed on an "AS IS" BASIS,
++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++# See the License for the specific language governing permissions and
++# limitations under the License.
++
++
++set -e
++
++USER='trafficserver'
++GROUP='trafficserver'
++USER_HOME='/var/run/trafficserver'
++OWNER=$(env stat -c '%U' /etc/trafficserver)
++OWNER_CACHE_DIR=$(env stat -c '%U' /var/cache/trafficserver)
++
++# summary of how this script can be called:
++# * <postinst> `configure' <most-recently-configured-version>
++# * <old-postinst> `abort-upgrade' <new version>
++# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
++# <new-version>
++# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
++# <failed-install-package> <version> `removing'
++# <conflicting-package> <version>
++# for details, see /usr/share/doc/packaging-manual/
++#
++# quoting from the policy:
++# Any necessary prompting should almost always be confined to the
++# post-installation script, and should be protected with a conditional
++# so that unnecessary prompting doesn't happen if a package's
++# installation fails and the `postinst' is called with `abort-upgrade',
++# `abort-remove' or `abort-deconfigure'.
++
++case "$1" in
++configure)
++
++ if ! getent passwd -- "$USER" >/dev/null 2>&1 ; then
++ adduser --home "$USER_HOME" \
++ --group \
++ --system \
++ --disabled-password \
++ --no-create-home \
++ --gecos "Debian Traffic Server user" \
++ $USER
++ fi
++
++ if [ -d /etc/trafficserver ] && [ "x$OWNER" = "xroot" ] ; then
++ # Ok, I admit I am lazy. I don't check every permission
++ # the user may have changed. If he didn't for /etc I can
++ # safely assume he neither has for other directories (I
++ # hope, since /etc requires write permissions by ATS).
++ echo 'Fixing permissions ...'
++
++ if ! dpkg-statoverride --list /etc/trafficserver >/dev/null 2>&1; then
++ dpkg-statoverride --update --add "$USER" "$GROUP" 0755 /etc/trafficserver
++ fi
++
++ if ! dpkg-statoverride --list /var/log/trafficserver >/dev/null 2>&1; then
++ dpkg-statoverride --update --add "$USER" adm 0750 /var/log/trafficserver
++ fi
++
++ if [ -d /var/cache/trafficserver ] && [ "x$OWNER_CACHE_DIR" = "xroot" ] ; then
++ if ! dpkg-statoverride --list /var/cache/trafficserver >/dev/null 2>&1; then
++ dpkg-statoverride --update --add "$USER" adm 0750 /var/cache/trafficserver
++ fi
++ fi
++ fi
++
++ if [ -n "$2" ] && dpkg --compare-versions "$2" 'le' '3.2~' ; then
++ RET=0
++ invoke-rc.d trafficserver status > /dev/null 2>&1 || RET=$?
++ # 0 => ATS is running
++ # 4 => Status is unknown
++ # 1,2,3 => ATS is not running
++
++ # using /bin/echo to make sure -e is supported
++ ECHO=`which echo`
++ if [ "$RET" -gt 0 ] && [ "$RET" -ne 4 ] && [ -f /var/cache/trafficserver/host.db ] ; then
++ echo "Purging TrafficServer cache upon upgrade."
++ RET=0
++ traffic_server -Cclear > /dev/null 2>&1 || RET=$?
++ if [ "$RET" -ne 0 ] ; then
++ $ECHO "======================================================================="
++ $ECHO -e "WARNING: Apache TrafficServer's cache couldn't be purged during the upgrade.\n" \
++ "Please inspect the situation manually and call 'traffic_server -Cclear'\n" \
++ "afterwards to purge the caches."
++ $ECHO "======================================================================="
++ fi
++ else
++ $ECHO "======================================================================="
++ $ECHO -e "WARNING: Apache TrafficServer is not running or its state couldn't be\n" \
++ "determined. Please inspect the situation manually and call\n" \
++ "'traffic_server -Cclear' afterwards to purge the caches.\n"
++ $ECHO "======================================================================="
++
++ fi
++ fi
++;;
++
++abort-upgrade|abort-remove|abort-deconfigure)
++
++;;
++
++*)
++echo "postinst called with unknown argument \`$1'" >&2
++exit 0
++;;
++esac
++
++# dh_installdeb will replace this with shell code automatically
++# generated by other debhelper scripts.
++
++#DEBHELPER#
++
++exit 0
--- /dev/null
--- /dev/null
++#
++# Licensed to the Apache Software Foundation (ASF) under one
++# or more contributor license agreements. See the NOTICE file
++# distributed with this work for additional information
++# regarding copyright ownership. The ASF licenses this file
++# to you under the Apache License, Version 2.0 (the
++# "License"); you may not use this file except in compliance
++# with the License. You may obtain a copy of the License at
++#
++# http://www.apache.org/licenses/LICENSE-2.0
++#
++# Unless required by applicable law or agreed to in writing, software
++# distributed under the License is distributed on an "AS IS" BASIS,
++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++# See the License for the specific language governing permissions and
++# limitations under the License.
++#
++[Unit]
++Description=Apache Traffic Server is a fast, scalable and extensible caching proxy server.
++Documentation=man:traffic_server(8)
++After=network-online.target
++
++[Service]
++Type=simple
++EnvironmentFile=-/etc/default/trafficserver
++PIDFile=/run/trafficserver/manager.lock
++ExecStart=/usr/bin/traffic_manager $TM_DAEMON_ARGS
++ExecReload=/usr/bin/traffic_ctl config reload
++
++[Install]
++WantedBy=multi-user.target
--- /dev/null
--- /dev/null
++d /run/trafficserver 0755 trafficserver trafficserver
--- /dev/null
--- /dev/null
++-----BEGIN PGP PUBLIC KEY BLOCK-----
++
++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
++rqtn4+pVz4Omas1nYQ5o9xq2NUMouI6b0RjAA/E+atoI3Eo7zPNuKVDAAqnhCjV0
++NTO60wdYQqOappyFbyyuHrEXhwQvmf0Rli9VkrBseEAmIjtk8EuNLqv/Q8CW7Coz
++3LgcsKNvwEkDJvZ/n9oxvUB9dHhC9NelZgrFyVZqKcNeI0T1KVvwTxJo82Lfj9wf
++3kfBVdy7rUqk0y8VscGPT+isTbUfPJd6DczKlf0Sn+PIHyfw/Ci6mprqkpjo78qL
++unFTncjjjlma+gf6EGes7S8Pt0R0no067MNMGE83imf38oOzdACK+wcwjBuX9REL
++HQAv96R1aDeOMSDlNKV95+Kc8yAzBv7OMFQtS14WZh88GFgoSSkXH4wpTbEJOnKO
++iTu9Gk3Z1pVesfrdvZk6EtWwuWaBvrU9s2j8tm0K7jmA1CSJDd2/6L5ACQy/hqnd
++XuqZGGsptOG9WQj2rQPDFSlTlkgZcr1LfUc3QZ/IWlYxSU2E415G9oBrFVLvno8a
++DfgAjaH9u39enpfomqdnKshlqHnrhK5io3Dn66e3+uBrgHcTGGmkUyATGolyjkB7
++cFJMazIxJ0Z3ry8qMXljSs+gGrK0M1N0ZWZhbm8gWmFjY2hpcm9saSA8emFja0Bw
++cHMudW5pdi1wYXJpcy1kaWRlcm90LmZyPokCbAQwAQgAVhYhBEkAcH3cXAfy3ssC
++g5wxUDxthmOWBQJae3M+OB0gbWlncmF0ZWQgdG8gemFja0BpcmlmLmZyIGZvciB1
++bml2ZXJzaXR5IHJlbGF0ZWQgZW1haWxzAAoJEJwxUDxthmOWPNEP/23ReI8Rqod6
++bDqzFNqsm27RJRhvF+0GpPa4L01tn+Jnyw/fJPGonizsazszmmiHjYU4mQyTFI6G
++Ud+QxhJNlbqQTlMCDygpS3ch2dCDMcpf0sttJRfh4sazFWxiYopWQJrE8WMHqpaI
++EewDTZ7LurqIVJVyMVvhtHtXhRAjJZKL62fD2PhTrHXqc5pQsu31h6HCOozreHYe
++NhRYnIpuKT7tiL0pVYVyJIbEQDPOBgHKQVkOqrq16Ug2XNmItRWw8o5pqXrCdwfY
++KYqF3Y6SP0/YkfNow0Q5vSKEk2AutvAuPvzKGqPPhKRlXjyvXc8nH0y/A4tsA7Pe
++3avpuZcqZqIqIlNM9kn+FmELvVhHJ8kFFLoUZtLPNxEUWefsmkGA/TxNySLlKAlM
++GpUlU2DijxbqgpWEJr/d1BKpcjmSwEUOOrPEmucwqgIK6rMhErEBUGrImQLzNhrQ
++xhEu9zkoGC29jtyEqaNXVmxRusht6ssQ2F24n4S/3s11ruENF5sQ29AjJvF4tZia
++uZzGW8oJdPdTQuY/NRSs7b8IgbTifl3CutmidBXC7N+mMiK97woTr8wTzJTYWzW2
++FjDn364QH0p+DazFVEQb3KHPAActd+PE7l0cLfowfKi+hBaXNaAZFvvHMXl6M4s/
++AQdIKz50lNdjvgaZ9KVT/1t6UAHvlLi0tD5TdGVmYW5vIFphY2NoaXJvbGkgKERl
++YmlhbiBQcm9qZWN0IExlYWRlcikgPGxlYWRlckBkZWJpYW4ub3JnPokCUAQwAQgA
++OgUCUW2q/TMdAHN0YXJ0aW5nIEFwcmlsIDE3dGgsIDIwMTMgSSB3aWxsIG5vIGxv
++bmdlciBiZSBEUEwACgkQnDFQPG2GY5Zkgw/7BATwsLhvgpxOaXq79ivO4AC5xjsm
++gB0MowCC45+I1FHLgGeaK1BSRF/WJlgNbmo01wjFOLdcF1mE3adRg8MrVpRlS0RW
++v5Q1WnTNjfVI7WYvxWQJpPSRRFtSTfcDBCcjFhgTjL2oF/512ih8mHK9t11E+0HN
++diEJsYcnrWyUwecrPTfrxAbZob5FtHfULzPW+bEwXnjk+thnc/6dXbiPepeKjYdO
++UCAHoXC1dRaBtg64bUrflJLtDPVXc9Je0fvZcDmockivonhz3L1xej4oDE7brb9d
++jlmjd5hSvCHdM69qbP8w+ifCzpZ+WYwPFLZcA8Hh0T2KBf7V6CEyWlrX8vFItg8H
++oO7FLyUkaBtnMZCliQpgboCzvBPMJEHqsfWBOsRBbId2Y1BZjInFpinEebRZHODb
++pwWCBxS5QAIeM6EZB1nlG7vbX4wVa1XZCZvE90dKNdxLsJ3urB5YQ8d2tO7ID2yu
++yGoN8A1xqNAKfBRvNeQAVH3rm5nNdYFOtxAvqilrczthOgh7Pah3mVqqirdLKCok
++jg58ps7iatJqt4cd2CtMmQZ6kuZgLinqlFGbs9ITHlABcf106RSKSsY+hxh97RRV
++Dt9d0ZH4c2mItBfv4leOEN/pau6hpUU7UNH9smE1VNSJtAZpi903ld0G5iZ+Ckyn
++uab7F8gxP2qagS60LlN0ZWZhbm8gWmFjY2hpcm9saSA8emFja0Bzb2Z0d2FyZWhl
++cml0YWdlLm9yZz6JAlQEEwEIAD4CGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AW
++IQRJAHB93FwH8t7LAoOcMVA8bYZjlgUCWntyygUJEZ0GQQAKCRCcMVA8bYZjlgFz
++D/9C1bls7ZUEIlR6RWQ3MaKD0BqKCcXpyw//JKSrtqlD+561RmL6Bb8fRrc1FUdt
++TMwdN3HLiWm4a1alllnArhAkQmWTUPVBSfdvj/j/WXEh63W2TTddly6rPTqSsvGk
++zb6OIwvcAdhp6Ou5eDr8b29HoOgN0Z29HIpuK6BSrpkrocr4irqzqZulpNYzx4m1
++j6jl1a+3COoVPt2l7Tgf4CeLWWOOqq579zEhfRA5k0rLnUmvQatGTYNpf97Uw9kq
++u4FqgxQ0DUHHlXgQhB4jaPmnXJEt0u8zU+s4Tfnv5UH0RtNJ3CQwENQUYoi1ALG1
++KpGKAt/EtgjkVzU8ZldoQXvwBmuuhDfYMyNcTuJ5KFQBaW6oI9RKJI0t14mAB36W
++UxCBrxM0VHfYyb5pcqYTbSBVx63EE9nELGTSB3RWiBkGac02xAUh97Is7JazN74s
++Mzg3rU8zLQFXz15zKLlCKg5WJwp3Hi3y1C/SBimrXhP51KBUyU+oH9yOVh7fFDTq
++tkItvUMacTHPJEyzH14pjzFlVjB3rhzJG9nBqfdRjqNEQKaKPPPCQu1DPYNvVuNK
++Kz/nJ4yvz2ktPVNryxnukyCtLZC2UT59nhc4t+N/GlGulvbZkv0aKLcRu2OYP4Nx
++RMvpKzqys59hwpaf1ngKpQyhcdl2stkWiHxLe9WYItx6kbQwU3RlZmFubyBaYWNj
++aGlyb2xpIDxzdGVmYW5vLnphY2NoaXJvbGlAaW5yaWEuZnI+iQJUBBMBCAA+AhsD
++BQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAFiEESQBwfdxcB/LeywKDnDFQPG2GY5YF
++Alp7csoFCRGdBkEACgkQnDFQPG2GY5aBHA/9Gp+nPRv6vIpioTtx9ZGi5O4iw4zJ
++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
++dEuHDoaa1wqYSiOTSqTTaDMrxYktdMPmDnDJgdqIjQQgEQgATQUCUlGK5UYdAXN1
++cGVyc2VkZWQgYnkga2V5IDQ5MDAgNzA3RCBEQzVDIDA3RjIgREVDQiAgMDI4MyA5
++QzMxIDUwM0MgNkQ4NiA2Mzk2AAoJENXKmwTyxCO8o9cAoNBQqBVx20bPxFeOnAjt
+++QoPYH0vAJ9myvI2iTQgGgwRl56vjnkBCmcFzbQkU3RlZmFubyBaYWNjaGlyb2xp
++IDx6YWNrQGJvbm9uaWEuaXQ+iJUEMBECAFUFAknM3FdOHSBJIGRvbid0IHVzZSB0
++aGUgQGJvbm9uaWEuaXQgYWRkcmVzcyBhbnltb3JlLCBhbmQgaXQgd2lsbCBib3Vu
++Y2UgYW55dGltZSBzb29uAAoJENXKmwTyxCO8YloAnisuy2Ne97Dv0IIoASMt9gOa
++WRJdAJ9fzb/rMfUiSb+QAlm+F2uk2DCTjrQkU3RlZmFubyBaYWNjaGlyb2xpIDx6
++YWNrQGRlYmlhbi5vcmc+iF8EExECABcFAjrDQJUFCwcKAwQDFQMCAxYCAQIXgAAS
++CRDVypsE8sQjvAdlR1BHAAEBWz4AoNQJ4LUXvlM+c1Vu9hI57gGFta+iAJ9vzBmC
++6CoT4B8W88/ePa0BvI+kjLQkU3RlZmFubyBaYWNjaGlyb2xpIDx6YWNrQHVwc2ls
++b24uY2M+iGMEExECACMCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAUCR3dhLwIZ
++AQAKCRDVypsE8sQjvJVOAKDTnUiaVSGGW9lTsBNNTvygF8bz2gCgsUIq2hukM+nt
++FF/Oxtphtk8Z2Dm0JVN0ZWZhbm8gWmFjY2hpcm9saSA8emFja0Bjcy51bmliby5p
++dD6IYAQTEQIAIAUCSIHbvgIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJENXK
++mwTyxCO8sTUAn3yzqqYsd8tHsuBeb5zWZisJeV2bAKCNWNsPFYx1EWziduUZ/Asw
++K70uT7QoU3RlZmFubyBaYWNjaGlyb2xpIDx6YWNrQHBwcy5qdXNzaWV1LmZyPohg
++BBMRAgAgBQJIgdvKAhsDBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQ1cqbBPLE
++I7zZfQCgugxdBRIxw4ZepdY+4Wp3Dx5ZEVMAoL1mHkgljsetcgU7N1/zhSva/+ic
++tCxTdGVmYW5vIFphY2NoaXJvbGkgKFphY2spIDx6YWNrQGNzLnVuaWJvLml0Pohy
++BDARAgAyBQJJZjKkKx0AZ2V0dGluZyByaWQgb2YgdGhlIGJvZ3VzICIoWmFjayki
++IGNvbW1lbnQACgkQ1cqbBPLEI7z2bACgwAgXxecnwItoAH/k8fSropyeAgQAoLYJ
++Q6Qm0f86B9MzLtSgWEQtnrcctDBTdGVmYW5vIFphY2NoaXJvbGkgKFphY2spIDx6
++YWNjaGlyb0Bjcy51bmliby5pdD6IcgQwEQIAMgUCSWYyqCsdAGdldHRpbmcgcmlk
++IG9mIHRoZSBib2d1cyAiKFphY2spIiBjb21tZW50AAoJENXKmwTyxCO8LrcAoKci
++BoAKsP0DJp679/VooJFAU/J+AKDYaZqOQG2GouT4her7KuH8K6ypibkBDQQ4w+7p
++EAQAp5lFz2clHZKYHHT6qUmy5N04UA/XcaIsrFzRhf0aatM31qo7gAtgNsLY+Nt6
++eAO6s1JITjEkKU/4HLMGq6A31qyjcMWARQp8+0Us4p1uEbppmHT8m0z/9VNrSvNb
++xnyvF3PxmnpuE/coXYC8ATAt7ICW8gS3vJzkHiiQTqWT3oMAAwUD/2dzT0t1ONFz
++JD0eilBp2eupmepFJUuhkopNcL9Xgs+8l4OYHi4ToRTCHvDlm3vqoZlkBstOaZPh
++oQA7wF+GjL+Nxm1pBLzb2Gv9C4WG8UNMyXJIxAOVzoRSBylx3lBBpzYsJXg3Yqpm
++6uPM7f6EtaawnRH42RrgXwTtCxFpCx0CiE4EGBECAAYFAjjD7ukAEgkQ1cqbBPLE
++I7wHZUdQRwABAdAyAJ4oPktYs3kmmzBwwEBYW0L2S/b1mgCeMD9qH4ym8EpQKhj8
++AdNMQQoRN3GIsQQoEQIAcQUCSIHmXmodAUkndmUgc3dpdGNoZWQgdG8gYSBsb25n
++ZXIgc3Via2V5IGZvciBlbmNyeXB0aW9uOwp0aGUgSUQgb2YgdGhlIG5ldyBrZXkg
++aXMgRTVCNTdEMTMsIGl0IGlzIDQwOTYgYml0IGxvbmcuAAoJENXKmwTyxCO8OTIA
++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
++mbRqY8A=
++=O0g9
++-----END PGP PUBLIC KEY BLOCK-----
--- /dev/null
--- /dev/null
++version=4
++opts="pgpsigurlmangle=s/$/.asc/,dversionmangle=s/\+ds\d*$//,repacksuffix=+ds,repack,compression=xz" \
++ https://www.apache.org/dist/trafficserver \
++ trafficserver-(\d+\.\d+.\d+)\.tar\.bz2 \
++ debian uupdate