Rate This Document
Findability
Accuracy
Completeness
Readability

Porting bsddb3

Procedure

  1. Create a bsddb3 build environment.
    conda create -n conda_build conda-build python=3.7.12 -c conda-forge
  2. Activate the build environment.
    conda activate conda_build
  3. Upload the conda file.
    1. Create a bsddb3 directory.
      mkdir bsddb3
    2. Use an SFTP tool to upload the meta.yaml and build.sh files to the bsddb3 directory.
      • The content of meta.yaml is as follows:
        package:
        name: bsddb3
        version: 6.2.9
        source:
        git_url: https://github.com/wchangque/bsddb3.git
        build:
        number: '1'
        string: py37_0
        requirements:
        build:
        - _libgcc_mutex 0.1
        - _openmp_mutex 4.5
        - binutils_impl_linux-aarch64
        - binutils_linux-aarch64 2.36
        - gcc_impl_linux-aarch64 9.4.0
        - gcc_linux-aarch64 9.4.0
        - kernel-headers_linux-aarch64 4.18.0
        - ld_impl_linux-aarch64 2.36.1
        - libgcc-devel_linux-aarch64 9.4.0
        - libgcc-ng 11.2.0
        - libgomp 11.2.0
        - libsanitizer 9.4.0
        - libstdcxx-ng 11.2.0
        - sysroot_linux-aarch64 2.17
        host:
        - _libgcc_mutex 0.1
        - _openmp_mutex 4.5
        - ca-certificates 2021.10.8
        - ld_impl_linux-aarch64 2.36.1
        - libdb 6.2.32
        - libffi 3.4.2
        - libgcc-ng 11.2.0
        - libgomp 11.2.0
        - libnsl 2.0.0
        - libstdcxx-ng 11.2.0
        - libzlib 1.2.11
        - ncurses 6.2
        - openssl 3.0.0
        - pip 21.3.1
        - python 3.7.12
        - python_abi 3.7
        - readline 8.1
        - setuptools 58.5.3
        - sqlite 3.36.0
        - tk 8.6.11
        - wheel 0.37.0
        - xz 5.2.5
        - zlib 1.2.11
        run:
        - libdb >=6.2.32,<6.3.0a0
        - libgcc-ng >=9.4.0
        - python >=3.7,<3.8.0a0
        - python_abi 3.7.* *_cp37m
        test:
        imports:
        - bsddb3
        about:
        description: 'This module provides a nearly complete wrapping of the Oracle/Sleepycat
        C API for the Database Environment,
        Database, Cursor, Log Cursor, Sequence and Transaction objects,
        and each of these is exposed as a Python type in the bsddb3.db module.
        The database objects can use various access methods: btree, hash, recno, and queue.
        Complete support of Berkeley DB distributed transactions.
        Complete support for Berkeley DB Replication Manager.
        Complete support for Berkeley DB Base Replication. Support for RPC.
        '
        doc_url: https://www.jcea.es/programacion/pybsddb_doc/
        home: https://www.jcea.es/programacion/pybsddb.htm
        license: BSD-3-Clause
        license_family: BSD
        license_file: LICENSE.txt
        summary: Python bindings for Oracle Berkeley DB
        extra:
        copy_test_source_files: true
        final: true
        recipe-maintainers:
        - shadowwalkersb
      • The content of build.sh is as follows:
        #!/usr/bin/env bash
        export YES_I_HAVE_THE_RIGHT_TO_USE_THIS_BERKELEY_DB_VERSION=1
        BERKELEYDB_DIR=$PREFIX $PYTHON -m pip install . --no-deps --ignore-installed
  4. Build the local conda package of bsddb3.

    Create a build directory in the same directory as bsddb3.

    mkdir build
    export CONDA_BLD_PATH=build
    conda build -c conda-forge bsddb3/

    The build is successful if the following information is displayed:

    The required package is stored in the build/linux-aarch64/ directory.