Skip to content

Commit

Permalink
waagent: T6475: Added waagent build instructions
Browse files Browse the repository at this point in the history
We need a version newer than in the Debian repository.

This commit adds instructions to build a version from sid.
  • Loading branch information
zdc committed Jun 12, 2024
1 parent 2618177 commit b5f85cf
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 0 deletions.
32 changes: 32 additions & 0 deletions packages/waagent/Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
// Copyright (C) 2023 VyOS maintainers and contributors
//
// This program is free software; you can redistribute it and/or modify
// in order to easy exprort images built to "external" world
// it under the terms of the GNU General Public License version 2 or later as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.

@NonCPS

// Using a version specifier library, use 'current' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@current')_

def package_name = 'waagent'
def pkgList = [
['name': "${package_name}",
'scmCommit': 'debian/2.9.1.1-2',
'scmUrl': 'https://salsa.debian.org/cloud-team/waagent.git',
'buildCmd': 'sudo mk-build-deps --install --tool "apt-get --yes --no-install-recommends"; sudo apt-get install --yes --no-install-recommends dpkg-source-gitarchive; ../build.py'],
]

// Start package build using library function from https://github.com/vyos/vyos-build
buildPackage("${package_name}", pkgList, null, true, "**/packages/waagent/**")
50 changes: 50 additions & 0 deletions packages/waagent/build.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#!/usr/bin/env python3

from pathlib import Path
from shutil import copy as copy_file
from subprocess import run


# copy patches
def apply_deb_patches() -> None:
"""Apply patches to sources directory
"""
patches_dir = Path('../patches')
current_dir: str = Path.cwd().as_posix()
if patches_dir.exists():
patches_list = list(patches_dir.iterdir())
patches_list.sort()
Path(f'{current_dir}/debian/patches').mkdir(parents=True, exist_ok=True)
series_file = Path(f'{current_dir}/debian/patches/series')
series_data = ''
for patch_file in patches_list:
print(f'Applying patch: {patch_file.name}')
copy_file(patch_file, f'{current_dir}/debian/patches/')
if series_file.exists():
series_data: str = series_file.read_text()
series_data = f'{series_data}\n{patch_file.name}'
series_file.write_text(series_data)


def build_package() -> bool:
"""Build a package
Returns:
bool: build status
"""
build_cmd: list[str] = ['dpkg-buildpackage', '-uc', '-us', '-tc', '-b']
build_status: int = run(build_cmd).returncode

if build_status:
return False
return True


# build a package
if __name__ == '__main__':
apply_deb_patches()

if not build_package():
exit(1)

exit()

0 comments on commit b5f85cf

Please sign in to comment.