This repository contains library components which implement the Interactive Advertising Bureau's (IAB) Transparency and Consent Framework (TCF). The project also provides some simple command-line utilities which are useful for constructing, decoding and displaying TCF strings.
The main body of documentation for the Tunitas family of components and services can be found with the packaging and with build system. The overview and administrative declarations herein are necessarily summary in nature. The declarations and definitions in the packaging and build system areas are complete and should be interpreted as superceding these when the two are in conflict.
- Background
- Dependencies
- Installation
- Configuration
- Build
- Usage
- Components
- Security
- References
- Contribute
- License
- Origin of the Name
The Butano components are members of the Tunitas family of components and services. These components depends upon the the other core components of the Tunitas family. These are:
- Tunitas Basics package for core components.
- Temerarious Flagship, the build system
The configuration step will check for many but not all required packages and operating system features. There is a list of known package-dependencies which you will need to install beyond your base operating system.
Generally, the dependencies are among:
- Certain other components of the Tunitas system; e.g. the Basic Components.
- A modern (C++2a) development environment.
- A recent Fedora, but any recent Linux distro should suffice.
The Tunitas project was developed on Fedora 27 through Fedora 30 using GCC 7 and GCC 8 with -fconcepts
and at least -std=c++1z
. More details on the development environment and the build system can be found in temerarious-flagship.
You may install this repo and its dependents by running the following command:
git clone https://github.com/yahoo/tunitas-butano.git
This will create a directory called tunitas-butano
and download the contents of this repo to it.
Alternatively, if your organization already has made available the packaged version, then the following recipe will install the service:
sudo dnf install tunitas-butano
The build system is based upon GNU Autotools.
The configuration of the repo consists of two steps which must be done once.
./buildconf
./configure
The first step performs some crude assessments of the build environment and creates the site-specific configure'. Of course
configure --helpwill explain the build options. The general options to
configure` are widely documented.
The buildconf
component is boilerplate and can be updated from temerarious-flagship as needed. The Tunitas Build System should be available in /opt/tunitas
and the template at /opt/tunitas/share/temerarious-flagship/bc/template.autotools-buildconf
The project can be built with the following recipe:
./buildconf &&
./configure &&
make &&
make check &&
make install &&
echo OK DONE
The Butano repo produces components for a modern C++ development and runtime (specifically, C++2a). These artifacts are at least: shared and static libraries, modules and "header files" containing declarations and (inline) definitions. The stylistic and coding conventions of the Tunitas family of components is described in the documentation for the common build system used across the project, temerarious-flagship.
The major components of Tunitas Butano are outlined:
libtunitas-butano.la
, common TCF operationslibtunitas-butano-tcf.la
, the manipulations of TCF String and Objects.libtunitas-butano-generation.la
, the generation of arbitrary of TCF String and Objects.
Debugging
dump-iab
provides a report on the contents of a TCF string.random-iab
produces a random TCF string.vanity-iab
produces a vanity TCF string containing a particular message.
Testing
dump-base64
, does just that.random-base64
, produces random base64-encoded string data.
This repo has no specific security concerns. The implementation made available herein provides support for the IAB's TCF in the form of library components. Those library components manipulate string representations constitute a data subject's (a person's) consent choices. The components are expected to be made available in the form of a service offering such as Apanolio, Montara, Rockaway or Tarwater.
Please refer to the contributing.md file for information about how to get involved. We welcome issues, questions, and pull requests. Pull Requests are welcome.
- Wendell Baker [email protected]
- The Tunitas Team at Verizon Media.
You may contact us at least at [email protected]
This project is licensed under the terms of the Apache 2.0 open source license. Please refer to LICENSE for the full terms.
The project is named after Butano Creek, in San Mateo County, California. There is a mountain and a state beach which carry the name. Wikipedia.