Skip to content
Snippets Groups Projects
Commit b39267eb authored by Tiago de Freitas Pereira's avatar Tiago de Freitas Pereira
Browse files

Merge branch 'python3' into 'master'

Consolidating the hacks implemented to solve conda-build issues

See merge request !115
parents c493826d 8d1ed789
No related branches found
No related tags found
1 merge request!115Consolidating the hacks implemented to solve conda-build issues
Pipeline #34363 passed
......@@ -45,6 +45,43 @@ import logging
logger = logging.getLogger(__name__)
def do_hack(project_dir):
"""
This function is supposed to be for temporary usage.
It implements hacks for the issues: https://gitlab.idiap.ch/bob/bob.devtools/merge_requests/112
and https://github.com/conda/conda-build/issues/3767)
"""
#### HACK to avoid ripgrep ignoring bin/ directories in our checkouts
import shutil
git_ignore_file = os.path.join(project_dir, '.gitignore')
if os.path.exists(git_ignore_file):
logger.warn('Removing ".gitignore" to overcome issues with ripgrep')
logger.warn('See https://gitlab.idiap.ch/bob/bob.devtools/merge_requests/112')
os.unlink(git_ignore_file)
#### END OF HACK
#### HACK that avoids this issue: https://github.com/conda/conda-build/issues/3767
license_file = os.path.join(project_dir, 'LICENSE')
recipe_dir = os.path.join(project_dir, 'conda')
if os.path.exists(license_file) and os.path.exists(recipe_dir):
logger.warn('Copying LICENSE file to `./conda` dir to avoid issue with conda build (https://github.com/conda/conda-build/issues/3767)')
logger.warn('Replacing ../LICENSE to LICENSE (https://github.com/conda/conda-build/issues/3767)')
shutil.copyfile(license_file, os.path.join(recipe_dir,"LICENSE"))
# Checking COPYING file just in case
copying_file = os.path.join(project_dir, 'COPYING')
if(os.path.exists(copying_file)):
shutil.copyfile(copying_file, os.path.join(recipe_dir,"COPYING"))
meta_file = os.path.join(recipe_dir,"meta.yaml")
recipe = open(meta_file).readlines()
recipe = [l.replace("../COPYING","COPYING").replace("../LICENSE","LICENSE") for l in recipe]
open(meta_file, "wt").write(''.join(recipe))
#### END OF HACK
def set_environment(name, value, env=os.environ):
"""Function to setup the environment variable and print debug message.
......@@ -431,28 +468,9 @@ if __name__ == "__main__":
setup_logger(logger, args.verbose)
#### HACK to avoid ripgrep ignoring bin/ directories in our checkouts
if os.path.exists('.gitignore'):
logger.warn('Removing ".gitignore" to overcome issues with ripgrep')
logger.warn('See https://gitlab.idiap.ch/bob/bob.devtools/merge_requests/112')
os.unlink('.gitignore')
#### END OF HACK
#### HACK that avoids this issue: https://github.com/conda/conda-build/issues/3767
if os.path.exists('LICENSE') and os.path.exists('conda'):
logger.warn('Creating symlink in `./conda` to avoid issue with conda build (https://github.com/conda/conda-build/issues/3767)')
logger.warn('Replacing ../LICENSE to LICENSE (https://github.com/conda/conda-build/issues/3767)')
pwd = os.path.abspath(os.curdir)
os.symlink(f"{pwd}/LICENSE", f"{pwd}/conda/LICENSE")
if(os.path.exists('COPYING')):
os.symlink(f"{pwd}/COPYING", f"{pwd}/conda/COPYING")
recipe = open("./conda/meta.yaml").readlines()
recipe = [l.replace("../COPYING","COPYING").replace("../LICENSE","LICENSE") for l in recipe]
open("./conda/meta.yaml", "wt").write(''.join(recipe))
#### END OF HACK
# Run conda-build hacks
# TODO: Remove this hack as soon as possible
do_hack(".")
condarc = os.path.join(args.conda_root, "condarc")
......
......@@ -178,29 +178,11 @@ def build(
)
#### HACK to avoid ripgrep ignoring bin/ directories in our checkouts
# TODO: Remove this hack as soon as possible
from bob.devtools.bootstrap import do_hack
project_dir = os.path.dirname(recipe_dir[0])
import shutil
if os.path.exists(os.path.join(project_dir, '.gitignore')):
logger.warn('Removing ".gitignore" to overcome issues with ripgrep')
logger.warn('See https://gitlab.idiap.ch/bob/bob.devtools/merge_requests/112')
os.unlink(os.path.join(project_dir, '.gitignore'))
#### END OF HACK
#### HACK that avoids this issue: https://github.com/conda/conda-build/issues/3767
if os.path.exists(os.path.join(project_dir,'LICENSE')) and os.path.exists(recipe_dir[0]):
logger.warn('Creating symlink in `./conda` to avoid issue with conda build (https://github.com/conda/conda-build/issues/3767)')
logger.warn('Replacing ../LICENSE to LICENSE (https://github.com/conda/conda-build/issues/3767)')
pwd = project_dir
# WE NEED TO COPY. FOR SOME REASON SYMLINK DOESN'T WORK IN THIS CASE
shutil.copyfile(f"{pwd}/LICENSE", f"{pwd}/conda/LICENSE")
if(os.path.exists(os.path.join(project_dir,'COPYING'))):
shutil.copyfile(f"{pwd}/COPYING", f"{pwd}/conda/COPYING")
recipe = open(os.path.join(recipe_dir[0],"meta.yaml")).readlines()
recipe = [l.replace("../COPYING","COPYING").replace("../LICENSE","LICENSE") for l in recipe]
open(os.path.join(recipe_dir[0],"meta.yaml"), "wt").write(''.join(recipe))
#### END OF HACK
do_hack(project_dir)
# get potential channel upload and other auxiliary channels
channels = get_channels(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment