# cast to strings for concatenation. If they could, we would do elegant
# refactoring like concatenating paths to templates here and only calling
# Template.substitute in the build_rpm function.
-deb_template = Template("opendaylight/opendaylight_$version_major.$version_minor."
- "$version_patch-${pkg_version}_all.deb")
+deb_template = Template("opendaylight/opendaylight_$version_major."
+ "$version_minor.$version_patch-${pkg_version}_all.deb")
src_in_dir_template = Template("opendaylight/opendaylight-$version_major."
"$version_minor.$version_patch-$pkg_version/")
cfg_in_dir_template = Template("opendaylight/opendaylight-$version_major."
deb_root,
src_in_dir_template.substitute(build),
"debian/control")
- deb = deb_template.substitute(build)
+ deb = os.path.join(deb_root, deb_template.substitute(build))
src_in_dir_path = os.path.join(
deb_root,
src_in_dir_template.substitute(build))
- # Call helper script to build the required Debian files
- build_debfiles.build_debfiles(build)
-
# Cache ODL distro and systemd unit file to package
distro_tar_path = pkg_lib.cache_distro(build)
+ distro_tar_name = os.path.basename(distro_tar_path)
+ build['tarball_name'] = distro_tar_name
unitfile_path = pkg_lib.cache_sysd(build)["unitfile_path"]
+ # Call helper script to build the required Debian files
+ build_debfiles.build_debfiles(build)
+
# Copy ODL tarball into src input directory
shutil.copy(distro_tar_path, src_in_dir_path)
# Copy ODL systemd unit file to src input directory
- shutil.copy(unitfile_path, cfg_in_dir_path)
+ shutil.copy(unitfile_path, cfg_in_dir)
# Build Debian package
os.chdir(src_in_dir_path)
CODENAME = "{{ codename }}"
VERSION = 0.$(VERSION_MAJOR).$(VERSION_MINOR)$(CODENAME)
PACKAGEVERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH)-$(PKG_VERSION)
-TARBALL = $(notdir {{ download_url }})
+TARBALL = {{ tarball_name }}
+DISTRIBUTION_PREFIX = {{ distro_name_prefix }}
%:
dh $@ --with systemd
override_dh_auto_install:
tar -xf $(TARBALL)
mkdir -p ./debian/opendaylight/opt/opendaylight/
- cp -r ./distribution-karaf-$(VERSION)/* ./debian/opendaylight/opt/opendaylight/
+ cp -r ./$(DISTRIBUTION_PREFIX)-$(VERSION)/* ./debian/opendaylight/opt/opendaylight/
override_dh_gencontrol:
dh_gencontrol -- -v$(PACKAGEVERSION)
parent_dir_html = urlopen(parent_dir_url).read().decode('utf-8')
# Get most recent minor version of the given major version
- version_minor = max(re.findall(r'>\d\.{}\.(\d)-SNAPSHOT\/'.format(version_major),
- parent_dir_html))
+ version_minor = max(re.findall(
+ r'>\d\.{}\.(\d)-SNAPSHOT\/'.format(version_major),
+ parent_dir_html))
# Dir that contains snapshot builds for the given major version
snapshot_dir_url = parent_dir_url + "0.{}.{}-SNAPSHOT/".format(
# Get the most recent file in cache dir, hopefully unzipped archive
unzipped_distro_path = max(cache_dir_ls, key=os.path.getctime)
print("Extracted: {}".format(unzipped_distro_path))
- # Remove path from unzipped distro filename, as will cd to dir below
+ # Remove path from 'unzipped_distro_path', as will cd to dir below
unzipped_distro = os.path.basename(unzipped_distro_path)
- # Using the full paths here creates those paths in the tarball, which
- # breaks the build. There's a way to change the working dir during a
- # single tar command using the system tar binary, but I don't see a
- # way to do that with Python.
- # TODO: Is there a good way to do this without changing directories?
+ # Using the full paths here creates those paths in the tarball,
+ # which breaks the build. There's a way to change the working dir
+ # during a single tar command using the system tar binary, but I
+ # don't see a way to do that with Python.
+ # TODO: Can this be done without changing directories?
# TODO: Try https://goo.gl/XMx5gb
cwd = os.getcwd()
os.chdir(cache_dir)
unitfile_path = os.path.join(cache_dir, unitfile)
unitfile_tar_path = os.path.join(cache_dir, unitfile_tar)
- # Cache appropriate version of ODL's systemd unit file as a tarball
- if not os.path.isfile(unitfile_tar_path):
- # Download ODL's systemd unit file
+ # Download ODL's systemd unit file
+ if not os.path.isfile(unitfile_path):
urllib.urlretrieve(unitfile_url, unitfile_path)
+ print("Cached: {}".format(unitfile))
+ else:
+ print("Already cached: {}".format(unitfile_path))
+ # Cache ODL's systemd unit file as a tarball
+ if not os.path.isfile(unitfile_tar_path):
# Using the full paths here creates those paths in the tarball, which
# breaks the build. There's a way to change the working dir during a
# single tar command using the system tar binary, but I don't see a
tb.add(unitfile)
os.chdir(cwd)
- # Remove the now-archived unitfile
- os.remove(unitfile_path)
print("Cached: {}".format(unitfile_tar))
else:
- print("Already cached: {}".format(unitfile_tar))
+ print("Already cached: {}".format(unitfile_tar_path))
return {"unitfile_tar_path": unitfile_tar_path,
"unitfile_path": unitfile_path}