From ee52cc168bbe485507eedcaa10052d218d03265c Mon Sep 17 00:00:00 2001 From: Kentaro Hayashi Date: Wed, 27 Apr 2022 13:25:33 +0900 Subject: [PATCH 1/5] apt: support Ubuntu 22.04 Signed-off-by: Kentaro Hayashi --- td-agent-apt-source/Rakefile | 3 +- .../apt/ubuntu-jammy/Dockerfile | 17 +++++ td-agent/Rakefile | 62 ++++++++++++++----- td-agent/apt/commonvar.sh | 2 +- td-agent/apt/install-test.sh | 5 ++ td-agent/apt/piuparts-test.sh | 5 ++ td-agent/apt/pkgsize-test.sh | 5 ++ td-agent/apt/ubuntu-jammy-arm64/from | 18 ++++++ td-agent/apt/ubuntu-jammy/Dockerfile | 57 +++++++++++++++++ td-agent/apt/ubuntu-jammy/qemu-dummy-static | 33 ++++++++++ td-agent/config.rb | 3 + 11 files changed, 192 insertions(+), 18 deletions(-) create mode 100644 td-agent-apt-source/apt/ubuntu-jammy/Dockerfile create mode 100644 td-agent/apt/ubuntu-jammy-arm64/from create mode 100644 td-agent/apt/ubuntu-jammy/Dockerfile create mode 100755 td-agent/apt/ubuntu-jammy/qemu-dummy-static diff --git a/td-agent-apt-source/Rakefile b/td-agent-apt-source/Rakefile index dc9e253ee..93589fd71 100644 --- a/td-agent-apt-source/Rakefile +++ b/td-agent-apt-source/Rakefile @@ -88,7 +88,8 @@ class TdAgentAptSourcePackageTask < PackageTask "debian-buster", "ubuntu-xenial", "ubuntu-bionic", - "ubuntu-focal" + "ubuntu-focal", + "ubuntu-jammy" ] end diff --git a/td-agent-apt-source/apt/ubuntu-jammy/Dockerfile b/td-agent-apt-source/apt/ubuntu-jammy/Dockerfile new file mode 100644 index 000000000..f1a6316c2 --- /dev/null +++ b/td-agent-apt-source/apt/ubuntu-jammy/Dockerfile @@ -0,0 +1,17 @@ +FROM ubuntu:jammy + +RUN \ + echo "debconf debconf/frontend select Noninteractive" | \ + debconf-set-selections + +ARG DEBUG + +RUN \ + quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \ + apt update ${quiet} && \ + apt install -y -V ${quiet} \ + debhelper \ + devscripts \ + gnupg && \ + apt clean && \ + rm -rf /var/lib/apt/lists/* diff --git a/td-agent/Rakefile b/td-agent/Rakefile index b12d81e8a..d626bdfda 100755 --- a/td-agent/Rakefile +++ b/td-agent/Rakefile @@ -168,11 +168,28 @@ def tar_command end end +def use_ruby3? + # Check whether ubuntu 22.04 (jammy) or not + # Basically, TD Agent adopts ruby 2.7 as default version, but on Ubuntu 22.04, + # use ruby 3.x because distribution switches to OpenSSL 3.x. + return false unless File.exist?("/etc/os-release") + os_release_entries = File.open("/etc/os-release").readlines.map(&:strip) + os_release_entries.include?("UBUNTU_CODENAME=jammy") and os_release_entries.include?("ID=ubuntu") +end + +def bundled_ruby_version + use_ruby3? ? BUNDLED_RUBY3_VERSION : BUNDLED_RUBY_VERSION +end + +def bundled_ruby_source_sha256sum + use_ruby3? ? BUNDLED_RUBY3_SOURCE_SHA256SUM : BUNDLED_RUBY_SOURCE_SHA256SUM +end + class DownloadTask include Rake::DSL attr_reader :file_jemalloc_source - attr_reader :file_ruby_source, :file_ruby_installer_x64 + attr_reader :file_ruby_source, :file_ruby3_source, :file_ruby_installer_x64 attr_reader :file_fluentd_archive attr_reader :files_ruby_gems attr_reader :file_openssl_source @@ -186,6 +203,7 @@ class DownloadTask @file_jemalloc_source, @file_openssl_source, @file_ruby_source, + @file_ruby3_source, @file_ruby_installer_x64, @file_fluentd_archive, *@files_ruby_gems @@ -204,7 +222,7 @@ class DownloadTask task :jemalloc => [@file_jemalloc_source] desc "Download Ruby source" - task :ruby => [@file_ruby_source, @file_ruby_installer_x64] + task :ruby => [@file_ruby_source, @file_ruby3_source, @file_ruby_installer_x64] desc "Clone fluentd repository and create a tarball" task :fluentd => @file_fluentd_archive @@ -273,17 +291,24 @@ class DownloadTask end def define_ruby_source_file - version = BUNDLED_RUBY_VERSION - sha256sum = BUNDLED_RUBY_SOURCE_SHA256SUM - filename = "ruby-#{version}.tar.gz" - feature_version = version.match(/^(\d+\.\d+)/)[0] - url_base = "https://cache.ruby-lang.org/pub/ruby/" - url = "#{url_base}#{feature_version}/#{filename}" - - @file_ruby_source = File.join(DOWNLOADS_DIR, filename) - - file @file_ruby_source do - download_file(url, filename, sha256sum) + [[BUNDLED_RUBY_VERSION, BUNDLED_RUBY_SOURCE_SHA256SUM], + [BUNDLED_RUBY3_VERSION, BUNDLED_RUBY3_SOURCE_SHA256SUM]].each do |version, sha256sum| + filename = "ruby-#{version}.tar.gz" + feature_version = version.match(/^(\d+\.\d+)/)[0] + url_base = "https://cache.ruby-lang.org/pub/ruby/" + url = "#{url_base}#{feature_version}/#{filename}" + + if version.start_with?("3") + @file_ruby3_source = File.join(DOWNLOADS_DIR, filename) + file @file_ruby3_source do + download_file(url, filename, sha256sum) + end + else + @file_ruby_source = File.join(DOWNLOADS_DIR, filename) + file @file_ruby_source do + download_file(url, filename, sha256sum) + end + end end end @@ -625,7 +650,7 @@ class BuildTask BUNDLED_RUBY_PATCHES.each do |patch| patch_name, version_condition = patch dependency = Gem::Dependency.new('', version_condition) - if dependency.match?('', BUNDLED_RUBY_VERSION) + if dependency.match?('', bundled_ruby_version) patch_path = File.join(__dir__, "patches", patch_name) sh("patch", "-p1", "--input=#{patch_path}") end @@ -737,7 +762,11 @@ class BuildTask end def build_ruby_from_source - tarball = @download_task.file_ruby_source + tarball = if use_ruby3? + @download_task.file_ruby3_source + else + @download_task.file_ruby_source + end ruby_source_dir = tarball.sub(/\.tar\.gz$/, '') sh(*tar_command, "xvf", tarball, "-C", DOWNLOADS_DIR) @@ -869,7 +898,7 @@ class BuildTask if windows? ruby_version = BUNDLED_RUBY_INSTALLER_X64_VERSION else - ruby_version = BUNDLED_RUBY_VERSION + ruby_version = bundled_ruby_version end rb_major, rb_minor, rb_teeny = ruby_version.split("-", 2).first.split(".", 3) "#{rb_major}.#{rb_minor}.0" # gem path's teeny version is always 0 @@ -1248,6 +1277,7 @@ EOS "ubuntu-xenial", "ubuntu-bionic", "ubuntu-focal", + "ubuntu-jammy", ] end diff --git a/td-agent/apt/commonvar.sh b/td-agent/apt/commonvar.sh index 74db0f5d3..7969d54ea 100644 --- a/td-agent/apt/commonvar.sh +++ b/td-agent/apt/commonvar.sh @@ -9,7 +9,7 @@ case ${code_name} in mirror=http://archive.ubuntu.com/ubuntu/ java_jdk=openjdk-8-jre ;; - bionic|focal|hirsute) + bionic|focal|hirsute|jammy) distribution=ubuntu channel=universe mirror=http://archive.ubuntu.com/ubuntu/ diff --git a/td-agent/apt/install-test.sh b/td-agent/apt/install-test.sh index 830bf534c..49dc883b9 100755 --- a/td-agent/apt/install-test.sh +++ b/td-agent/apt/install-test.sh @@ -34,6 +34,11 @@ if [ -e $conf_path ]; then exit 1 fi +if [ ${code_name} = "jammy" ]; then + # TODO: Remove when repository for jammy has been deployed + echo "skip to install via apt repository: <${code_name}>" + exit 0 +fi apt clean all apt_source_package=${apt_source_repositories_dir}/${distribution}/pool/${code_name}/${channel}/*/*/td-agent-apt-source*_all.deb apt install -V -y ${apt_source_package} diff --git a/td-agent/apt/piuparts-test.sh b/td-agent/apt/piuparts-test.sh index 7b95f0d39..e6ec9a36e 100755 --- a/td-agent/apt/piuparts-test.sh +++ b/td-agent/apt/piuparts-test.sh @@ -13,6 +13,11 @@ case ${code_name} in apt install -V -y piuparts mount gnupg curl eatmydata apt-transport-https gpg_command=gpg ;; + jammy) + # TODO: Remove when repository for jammy has been deployed + echo "skip piuparts test for jammy" + exit 0 + ;; *) DEBIAN_FRONTEND=noninteractive apt install -V -y piuparts mount gnupg1 curl eatmydata gpg_command=gpg1 diff --git a/td-agent/apt/pkgsize-test.sh b/td-agent/apt/pkgsize-test.sh index 73712a735..1de1e2b9a 100755 --- a/td-agent/apt/pkgsize-test.sh +++ b/td-agent/apt/pkgsize-test.sh @@ -38,6 +38,11 @@ case ${DISTRIBUTION} in done ;; ubuntu) + if [ $CODE_NAME = "jammy" ]; then + # TODO: Remove when repository for jammy has been deployed + echo "No previous ${CODE_NAME} release" + exit 0 + fi BASE_URI=http://packages.treasuredata.com.s3.amazonaws.com/4/ubuntu/${CODE_NAME} CHANNEL=universe for v in "${PREVIOUS_VERSIONS[@]}"; do diff --git a/td-agent/apt/ubuntu-jammy-arm64/from b/td-agent/apt/ubuntu-jammy-arm64/from new file mode 100644 index 000000000..fc3f0c433 --- /dev/null +++ b/td-agent/apt/ubuntu-jammy-arm64/from @@ -0,0 +1,18 @@ +# 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. + +arm64v8/ubuntu:jammy diff --git a/td-agent/apt/ubuntu-jammy/Dockerfile b/td-agent/apt/ubuntu-jammy/Dockerfile new file mode 100644 index 000000000..ebcadafcb --- /dev/null +++ b/td-agent/apt/ubuntu-jammy/Dockerfile @@ -0,0 +1,57 @@ +# 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. + +ARG FROM=ubuntu:jammy +FROM ${FROM} + +COPY qemu-* /usr/bin/ + +RUN \ + echo "debconf debconf/frontend select Noninteractive" | \ + debconf-set-selections + +ARG DEBUG + +RUN sed -i'' -e 's/^# deb-src/deb-src/g' /etc/apt/sources.list + +RUN \ + quiet=$([ "${DEBUG}" = "yes" ] || echo "-qq") && \ + apt update ${quiet} && \ + apt install -y -V ${quiet} \ + build-essential \ + debhelper \ + devscripts \ + ruby-dev \ + ruby-bundler \ + libedit2 \ + libncurses5-dev \ + libyaml-dev \ + git \ + pkg-config \ + libssl-dev \ + libpq-dev \ + tar \ + lsb-release \ + zlib1g-dev \ + cmake && \ + apt build-dep -y ruby && \ + apt clean && \ + # raise IPv4 priority + sed -i'' -e 's,#precedence ::ffff:0:0/96 100,precedence ::ffff:0:0/96 100,' /etc/gai.conf && \ + # enable multiplatform feature + gem install --no-document --install-dir /usr/share/rubygems-integration/all bundler:2.2.9 && \ + rm -rf /var/lib/apt/lists/* diff --git a/td-agent/apt/ubuntu-jammy/qemu-dummy-static b/td-agent/apt/ubuntu-jammy/qemu-dummy-static new file mode 100755 index 000000000..c42e0962d --- /dev/null +++ b/td-agent/apt/ubuntu-jammy/qemu-dummy-static @@ -0,0 +1,33 @@ +#!/bin/sh +# +# 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. + +# Do nothing. This exists only for not requiring qemu-aarch64-static copy. +# Recent Debian (buster or later) and Ubuntu (18.10 or later) on amd64 hosts or +# arm64 host don't require qemu-aarch64-static in Docker image. But old Debian +# and Ubuntu hosts on amd64 require qemu-aarch64-static in Docker image. +# +# We use "COPY qemu* /usr/bin/" in Dockerfile. If we don't put any "qemnu*", +# the "COPY" is failed. It means that we always require "qemu*" even if we +# use recent Debian/Ubuntu or arm64 host. If we have this dummy "qemu*" file, +# the "COPY" isn't failed. It means that we can copy "qemu*" only when we +# need. +# +# See also "script" in dev/tasks/linux-packages/azure.linux.arm64.yml. +# Azure Pipelines uses old Ubuntu (18.04). +# So we need to put "qemu-aarch64-static" into this directory. diff --git a/td-agent/config.rb b/td-agent/config.rb index 3ed7aa4b3..1d6c4d613 100644 --- a/td-agent/config.rb +++ b/td-agent/config.rb @@ -23,6 +23,9 @@ #BUNDLED_RUBY_VERSION = "3.1.2" #BUNDLED_RUBY_SOURCE_SHA256SUM = "61843112389f02b735428b53bb64cf988ad9fb81858b8248e22e57336f24a83e" +BUNDLED_RUBY3_VERSION = "3.1.2" +BUNDLED_RUBY3_SOURCE_SHA256SUM = "61843112389f02b735428b53bb64cf988ad9fb81858b8248e22e57336f24a83e" + BUNDLED_RUBY_PATCHES = [ ["ruby-2.7/0001-Removed-the-old-executables-of-racc.patch", ["~> 2.7.0"]], ["ruby-2.7/0002-Fixup-a6864f6d2f39bcd1ff04516591cc18d4027ab186.patch", ["~> 2.7.0"]], From f4e446ac74dd8ba26b45ea06dd23ad71c8aa87df Mon Sep 17 00:00:00 2001 From: Kentaro Hayashi Date: Wed, 27 Apr 2022 17:27:59 +0900 Subject: [PATCH 2/5] ci apt: add ci for ubuntu 22.04 Signed-off-by: Kentaro Hayashi --- .github/workflows/apt-arm.yml | 5 +++++ .github/workflows/apt.yml | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/.github/workflows/apt-arm.yml b/.github/workflows/apt-arm.yml index 22a3f2fde..61024bc03 100644 --- a/.github/workflows/apt-arm.yml +++ b/.github/workflows/apt-arm.yml @@ -14,6 +14,7 @@ jobs: - Debian GNU/Linux bullseye arm64 - Ubuntu Bionic arm64 - Ubuntu Focal arm64 + - Ubuntu Jammy arm64 include: - label: Debian GNU/Linux buster arm64 rake-job: debian-buster @@ -28,6 +29,10 @@ jobs: rake-job: ubuntu-focal rake-options: LINTIAN=no test-docker-image: arm64v8/ubuntu:focal + - label: Ubuntu Jammy arm64 + rake-job: ubuntu-jammy + rake-options: LINTIAN=no + test-docker-image: arm64v8/ubuntu:jammy runs-on: ubuntu-latest steps: - uses: actions/checkout@master diff --git a/.github/workflows/apt.yml b/.github/workflows/apt.yml index 21e825028..b32914a30 100644 --- a/.github/workflows/apt.yml +++ b/.github/workflows/apt.yml @@ -15,6 +15,7 @@ jobs: - Ubuntu Xenial amd64 - Ubuntu Bionic amd64 - Ubuntu Focal amd64 + - Ubuntu Jammy amd64 include: - label: Debian GNU/Linux buster amd64 rake-job: debian-buster @@ -31,6 +32,9 @@ jobs: - label: Ubuntu Focal amd64 rake-job: ubuntu-focal test-docker-image: ubuntu:focal + - label: Ubuntu Jammy amd64 + rake-job: ubuntu-jammy + test-docker-image: ubuntu:jammy runs-on: ubuntu-latest steps: - uses: actions/checkout@master From 3a87023b8026ea8819db4f08d2e000a8d54455aa Mon Sep 17 00:00:00 2001 From: Kentaro Hayashi Date: Wed, 27 Apr 2022 13:26:21 +0900 Subject: [PATCH 3/5] apt: fix dh_shlibdeps: error: dpkg-shlibdeps revert 6166b7cd8e7c8ecd9e788c1d2998ed7f230a5b08 Signed-off-by: Kentaro Hayashi --- td-agent/debian/rules | 3 --- 1 file changed, 3 deletions(-) diff --git a/td-agent/debian/rules b/td-agent/debian/rules index 9ac9a17f0..6bdba3da4 100755 --- a/td-agent/debian/rules +++ b/td-agent/debian/rules @@ -6,9 +6,6 @@ export DH_RUBY = --gem-install %: dh $@ -override_dh_makeshlibs: - : - override_dh_auto_install: rake build:deb_config TD_AGENT_STAGING_PATH="$(CURDIR)/debian/tmp" NO_VAR_RUN=1 rake build:all TD_AGENT_STAGING_PATH="$(CURDIR)/debian/tmp" From a6ed37c034c5ce11ef0f9f92d6c658554ef04377 Mon Sep 17 00:00:00 2001 From: Kentaro Hayashi Date: Mon, 2 May 2022 10:55:09 +0900 Subject: [PATCH 4/5] apt: add missing jammy as a new target Signed-off-by: Kentaro Hayashi --- td-agent/convert-artifacts-layout.sh | 4 ++-- td-agent/manage-fluent-repositories.sh | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/td-agent/convert-artifacts-layout.sh b/td-agent/convert-artifacts-layout.sh index 6b9a6063e..7c3729c51 100755 --- a/td-agent/convert-artifacts-layout.sh +++ b/td-agent/convert-artifacts-layout.sh @@ -15,14 +15,14 @@ case $1 in apt|deb) REPOSITORY_TYPE=apt REPOSITORY_PATH=$TD_AGENT_DIR/$REPOSITORY_TYPE/repositories - for d in buster bullseye xenial bionic focal; do + for d in buster bullseye xenial bionic focal jammy; do case $d in buster|bullseye) # e.g. mapping debian/pool/buster/main/t/td-agent/ => 4/debian/buster/pool/contrib/t/td-agent mkdir -p $ARTIFACTS_DIR/4/debian/$d/pool/contrib/t/td-agent find $REPOSITORY_PATH/debian/pool/$d -name '*.deb' -not -name '*dbgsym*' -exec cp {} $ARTIFACTS_DIR/4/debian/$d/pool/contrib/t/td-agent \; ;; - xenial|bionic|focal) + xenial|bionic|focal|jammy) # e.g. mapping ubuntu/pool/.../main/t/td-agent/ => 4/ubuntu/.../pool/contrib/t/td-agent mkdir -p $ARTIFACTS_DIR/4/ubuntu/$d/pool/contrib/t/td-agent find $REPOSITORY_PATH/ubuntu/pool/$d -name '*.deb' -exec cp {} $ARTIFACTS_DIR/4/ubuntu/$d/pool/contrib/t/td-agent \; diff --git a/td-agent/manage-fluent-repositories.sh b/td-agent/manage-fluent-repositories.sh index 5adfc22b8..8d3ad017e 100755 --- a/td-agent/manage-fluent-repositories.sh +++ b/td-agent/manage-fluent-repositories.sh @@ -59,7 +59,7 @@ case $COMMAND in $command ;; upload) - TARGETS="amazon redhat windows macosx debian/buster debian/bullseye ubuntu/focal ubuntu/xenial ubuntu/bionic" + TARGETS="amazon redhat windows macosx debian/buster debian/bullseye ubuntu/jammy ubuntu/focal ubuntu/xenial ubuntu/bionic" for target in $TARGETS; do command="aws s3 sync --delete $FLUENT_RELEASE_DIR/4/$target s3://packages.treasuredata.com/4/$target --profile $FLUENT_RELEASE_PROFILE" echo $command @@ -88,7 +88,7 @@ EOF echo "Ready to type signing passphrase? (process starts in 10 seconds, Ctrl+C to abort)" sleep 10 export GPG_TTY=$(tty) - for d in buster bullseye xenial bionic focal; do + for d in buster bullseye xenial bionic focal jammy; do aptly -config=$conf repo create -distribution=$d -component=contrib td-agent4-$d case $d in buster|bullseye) @@ -96,7 +96,7 @@ EOF aptly -config=$conf snapshot create td-agent4-$d-${FLUENT_PACKAGE_VERSION}-1 from repo td-agent4-$d aptly -config=$conf publish snapshot -component=contrib -gpg-key=$SIGNING_KEY td-agent4-$d-${FLUENT_PACKAGE_VERSION}-1 debian/$d ;; - xenial|bionic|focal) + xenial|bionic|focal|jammy) aptly -config=$conf repo add td-agent4-$d $FLUENT_RELEASE_DIR/4/ubuntu/$d/ aptly -config=$conf snapshot create td-agent4-$d-${FLUENT_PACKAGE_VERSION}-1 from repo td-agent4-$d aptly -config=$conf publish snapshot -component=contrib -gpg-key=$SIGNING_KEY td-agent4-$d-${FLUENT_PACKAGE_VERSION}-1 ubuntu/$d From 7783eacde470e60079c9dc73ffb7cd37d12113d2 Mon Sep 17 00:00:00 2001 From: Kentaro Hayashi Date: Mon, 2 May 2022 13:59:58 +0900 Subject: [PATCH 5/5] apt: use default package compression to xz Aptly 1.4.0 can't handle zstd compression yet, (supported in master, but not shipped), as a workaround, specify compression algorithm explicitly. Signed-off-by: Kentaro Hayashi --- td-agent/debian/rules | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/td-agent/debian/rules b/td-agent/debian/rules index 6bdba3da4..2f9597697 100755 --- a/td-agent/debian/rules +++ b/td-agent/debian/rules @@ -6,6 +6,11 @@ export DH_RUBY = --gem-install %: dh $@ +# As aptly doesn't support zstd yet, so as a workaround, force default +# package compression to xz +override_dh_builddeb: + dh_builddeb -- -Zxz + override_dh_auto_install: rake build:deb_config TD_AGENT_STAGING_PATH="$(CURDIR)/debian/tmp" NO_VAR_RUN=1 rake build:all TD_AGENT_STAGING_PATH="$(CURDIR)/debian/tmp"