Skip to content

yahoo/tunitas-packaging

Repository files navigation

Tunitas Packaging

The repository contains packaging and release machinery for the Tunitas projects. Specifically, the packaging is for Red Hat-sphere RPM packaging on (modern) RHEL and (modern) Fedora systems.

This repository also contains the common documentation for the project family as a whole resides here in the packaging repository. As such, this repository consists mostly of documentation and the configuration files necessary to create the RPM-based packages. This use of packaging as the default central area is also described in the summary documentation for each of the projects in the Tunitas family, The declarations and definitions of dependencies and requirements in this packaging repository are expected to be sufficient and complete. They should be interpreted as superceding any statements in an individual Tunitas project when the two are in conflict (though of course there should be no conflicting statements at all!) In certain cases, such as database choices or build tooling, more more detailed documentation may be found in the project itself. That will be clear from the context. For example Temerarious Flagship can reasonably be expected to have more detailed documentation on compiler and build toolchain dependencies whereas this packaging repository can be expected to have more authoritative documentation on package dependencies.

Current work with modern-generation tooling, e.g. circa Fedora 36+ and GCC 12+, is occurring around the thematic themed branches; e.g. 01.famous-oak, 02.towering redwood, 03.gnarled-manzanita, and so forth.

Table of Contents

Background

The Tunitas family of technologies provide reference implementations for a number of advertising-related services. Several of these are well-known capabilities for which there are no open source reference implementations. An example of this first category is Tuintas Butano which provides a reference implementation of the Interactive Advertising Bureau's (IAB) Transparency and Consent Framework (TCF). Other repositories provide reference implementations to advanced or experimental or capabilities. The project Tunitas Scarpet provides a reference implementation of the so called Self-Sovereign Identity (SSI) based upon the W3C's Distributed Identity Specification. The project Tujnitas Apanolio and Tunitas-Montara provide a reference implementation of the North-Facing Service ("Nortbound API") of the IAB's PrivacyChain specification. The other repositories in the Tunitas family provide incidental support for these and other capabilities.

Presentation

The packaging provided here is centered around RPM-based systems such as as Red Hat or Fedora. This is not a requirement of the system, but rather a convenience to establish the early releases of the project. It is (and would be) straightforward to extend this system to support DEB-based packaging systems or to modern container-based distribution mechanisms. Perhaps these features are something you could contribute in a pull request.

There are a number of delivery schemes that can be envisioned

* RPM (RHEL, CentOS & Fedora)
* DEB (Debian & Ubuntu)
* Docker (is popular these days)
* Kubernetes (is also popular)

Only rpm is implemented at this point.

Dependencies

The dependencies of the Tunitas family of projects is documented in the dependencies directory and in the per-repository PACKAGES.md file.

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.

Structure

The packaging repository is considered to be a unifying "top" of the Tunitas famiy of projects. The packaging repository incorporates each of the individual projects as a git submodule. Once the repository clone is initialized, the individual projects appear within the tree.

Submodules

In a development context, is also envisioned that this packaging repository form the top of a tree with the individual components being linked in through the git submdoules system. The documentation git submodules documentation provides more explanation than is sketched herein.

Directory Layout

The contents of the dependencies directory is described in more detail in the PACKAGES documentation.

Configuration

You may acquire this repo and its dependents by running the following command:

git clone https://github.com/yahoo/tunitas-packaging.git
git submodule init

The submodules will need to be configured (initialized). If you are using a downstream repository, then you will need to reestablish the submodules to your local replia. Instructions for doing that are beyond the scope of this introductory material, however, there is documentation available.

Configuration

There is no configuration step for this repository. The operable component in this repository is the Makefile

Build

Once configured, the rpms can be built with the following recipe:

cd ./rpms
make

The Makefile provides documentation about its use. Also

make usage
make list

Security

The packaging of the Tunitas family of technologies does not have any specific security concerns. Each repository, individually, documents its security concerns in its respective README.md file. Especially in case of operating an internet-facing service, such as Apanolio, Montara or Scarpet, care should be taken to operate the service in a secure mode with known best practices. Details can be found in each of the respective respositories.

Contribute

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.

Maintainers

You may contact us at least at tunitas@yahooinc.com

License

This project is licensed under the terms of the Apache 2.0 open source license. Please refer to LICENSE for the full terms.

Origin of the Names

The Tunitas family of projects is named after geographic names (place names) of the Tunitas area in San Mateo County, California. It is a great place for mountain biking or hiking.

The Family of Projects

In alphabetical order, an overview of the package clusters.

Tunitas Basics

Contains common libraries and utilities.

Apanolio

An implementation of the "North-Facing API" service for the Interactive Advertising Bureau's (IAB) PrivacyChain. It is themed after Apanolio Creek in San Mateo County, California.

Butano

An implementation of the IAB EU Transparency & Consent Framework. It is themed after [Butano Creek(https://en.wikipedia.org/wiki/Butano_Creek) in San Mateo County, California.

Grabtown

A standalone implementation of Yahoo DataX API Specification. It is themed after Grabtown Gulch in San Mateo County, California. It is not yet published.

Lobitos

An implementation of the audience management consisting of a user profile store, data subject telemetry (beacon) receivers, and some Recency & Frequency-type scoring algorithms. It is themed after Lobitos which is an unincorporated area within San Mateo County, California. Lobitos was originally named Tunitas. It is not yet published.

Montara

An implementation of the "North-Facing" API Service for the Interactive Advertising Bureau's (IAB) PrivacyChain. It is themed after Montara Mountain in San Mateo County, California.

Purissima

A demonstration multi-site publisher network which uses these technologies. It is themed after which is a ghost town in southwestern San Mateo County California. It is not yet published.

Rockaway

A reference implementation of the DataX Service. It is themed after Rockaway Creek is a small creek, in the Rockaway Beach neighborhood of Pacifica, California. It is not yet published.

Scarpet

A reference implementation of a resolver and identifier (document) storage service for W3C Decentralized Identifiers. It is themed after Scarpet Peak, which one of The Summits in San Mateo County, California.

Tarwater

A reference implementation of the Digi-Trust universal identity system. It is themed after Tarwater Creek in San Mateo County, California.

Temerarious Flagship

Definition:

  • temerarious: marked by temerity; rashness, recklessness, boldness, or presumptuousness.
  • flagship, the most important one out of a related group.

mnemonic: extending the autotools with yet more macros is … temerarious mnemonic: the build system of any software distribution is the … flagship

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published