build-doc: make work when run from subdirectories

This in particular had broken
./build --download-dependencies -aA -aa -ax all
not sure why, but there must be a change in directory somewhere then.

The only chdir we do in this repo was for ctng crap, I'm also restoring
that chdir back after we are done.
This commit is contained in:
Ciro Santilli 六四事件 法轮功
2019-06-21 00:00:00 +00:00
parent b962ed6812
commit 21e7e16808
3 changed files with 34 additions and 13 deletions

16
build
View File

@@ -525,9 +525,21 @@ Which components to build. Default: qemu-buildroot
self.sh.add_newlines(sorted(python3_pkgs))
)
if ruby_pkgs:
# TODO fails without sudo and with --local on Ubuntu 18.04.
# The right thing to do would be to use RVM and avoid sudo,
# but we felt it was too much boilerplate for now.
#
# --user-install does work here, but we still need to add
# the binary to PATH which is a pain:
# https://stackoverflow.com/questions/31596273/install-gem-in-local-folder
self.sh.run_cmd(['sudo', 'gem', 'install', 'bundler', LF])
self.sh.run_cmd(['bundle', 'install', LF])
# No ones knows how to do this without sudo:
# https://stackoverflow.com/questions/16376995/bundler-cannot-install-any-gems-without-sudo/27677094
self.sh.run_cmd([
'sudo', LF,
'bundle', LF,
'install', LF,
'--gemfile', os.path.join(self.env['root_dir'], 'Gemfile'), LF,
])
git_cmd_common = [
'git', LF,
'submodule', LF,

View File

@@ -32,9 +32,9 @@ Build crosstool-NG with Newlib for bare metal compilation
self.env['crosstool_ng_source_dir'],
self.env['crosstool_ng_source_copy_dir'],
)
os.chdir(self.env['crosstool_ng_source_copy_dir'])
self.sh.run_cmd(
[os.path.join(self.env['crosstool_ng_source_copy_dir'], 'bootstrap'), LF],
cwd=self.env['crosstool_ng_source_copy_dir'],
)
self.sh.run_cmd(
[
@@ -44,8 +44,12 @@ Build crosstool-NG with Newlib for bare metal compilation
os.path.join(os.curdir, 'configure'), LF,
'--enable-local', LF,
],
cwd=self.env['crosstool_ng_source_copy_dir'],
)
self.sh.run_cmd(
['make', '-j', str(self.env['nproc']), LF],
cwd=self.env['crosstool_ng_source_copy_dir'],
)
self.sh.run_cmd(['make', '-j', str(self.env['nproc']), LF])
# Build the toolchain.
self.sh.cp(
@@ -65,6 +69,7 @@ Build crosstool-NG with Newlib for bare metal compilation
self.env['crosstool_ng_executable'], LF,
'defconfig', LF,
],
cwd=self.env['crosstool_ng_source_copy_dir'],
)
self.sh.rmrf(defconfig_dest)
self.sh.run_cmd(
@@ -73,6 +78,7 @@ Build crosstool-NG with Newlib for bare metal compilation
'build', LF,
'CT_JOBS={}'.format(str(self.env['nproc'])), LF,
],
cwd=self.env['crosstool_ng_source_copy_dir'],
out_file=os.path.join(build_dir, self.env['repo_short_id'] + '.log'),
delete_env=['LD_LIBRARY_PATH'],
extra_paths=[self.env['ccache_dir']],

View File

@@ -40,8 +40,8 @@ https://github.com/cirosantilli/linux-kernel-module-cheat#build-the-documentatio
self.env['readme']
]).splitlines():
if not external_link_re.match(link):
if not os.path.lexists(link):
self.log_error('broken link: ' + link)
if not os.path.lexists(os.path.join(self.env['root_dir'], link)):
self.log_error('broken link to local file: ' + link)
exit_status = 1
# Check that non-README links to README IDs exit.
@@ -53,13 +53,16 @@ https://github.com/cirosantilli/linux-kernel-module-cheat#build-the-documentatio
self.env['readme']
]).splitlines():
header_ids.add(header_id)
for grep_line in self.sh.check_output([
'git',
'grep',
'--fixed-strings',
self.env['github_repo_id_url'] + '#',
LF
]).splitlines():
for grep_line in self.sh.check_output(
[
'git',
'grep',
'--fixed-strings',
self.env['github_repo_id_url'] + '#',
LF
],
cwd=self.env['root_dir']
).splitlines():
url_index = grep_line.index(self.env['github_repo_id_url'])
hash_start_index = url_index + len(self.env['github_repo_id_url'])
if len(grep_line) > hash_start_index: