tools added crystal repository for Gentoo

This repository contains tinyorm and tabulate packages. This allows to
install TinyORM project on Gentoo using: emerge -va tinyorm

[skip ci]
This commit is contained in:
silverqx
2024-04-29 14:14:59 +02:00
parent 29290724ab
commit 01eb1f60a1
17 changed files with 430 additions and 0 deletions
@@ -0,0 +1,44 @@
# Gentoo `crystal` repository
Copy `crystal/` folder to the `/var/db/repos/`
```bash
sudo cp -r crystal /var/db/repos
cd /var/db/repos/crystal
sudo chown -R root:root .
```
Enable `crystal` repository by creating the `crystal-repo.conf` at `/etc/portage/repos.conf/`
```ini
[crystal]
location = /var/db/repos/crystal
```
Repository also contains the [`tabulate`](https://github.com/p-ranav/tabulate) package because `gentoo` repository doesn't have one.
Enable unstable `~amd64` keyword for `tinyorm` and `tabulate` packages by creating `tinyorm` file at `/etc/portage/package.accept_keywords/`
```
dev-db/tinyorm ~amd64
dev-cpp/tabulate ~amd64
```
Configure `USE` flags by creating `tinyorm` file at `/etc/portage/package.use/`
```
dev-db/tinyorm mysql postgres sqlite mysql-ping tom tom-cli -qt5
#dev-db/tinyorm build-drivers mysql -sqlite -qt5
```
Check `USE` flags
```bash
equery uses tinyorm
```
Install `tinyorm` package
```bash
sudo emerge --quiet-build -va tinyorm
```
@@ -0,0 +1,11 @@
# https://editorconfig.org/
root = true
[*.{ebuild,eclass}]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = tab
indent_size = 4
trim_trailing_whitespace = true
#max_line_length = 80
@@ -0,0 +1,6 @@
# Old/new developers can be added here to map their contributions accurately
# before joining and after retiring, as well as the usual uses of .mailmap.
# See gitmailmap(5) for format details.
# Please keep this list sorted.
# Use "grep -v '^#' .mailmap | LC_ALL=en_US.utf-8 sort".
Silver Zachara <silver.zachara@gmail.com>
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE catmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<catmetadata>
<longdescription lang="en">
The dev-cpp category contains libraries and utilities relevant to the
c++ programming language.
</longdescription>
<longdescription lang="de">
Die Kategorie dev-cpp enthält Bibliotheken und Werkzeuge für die
Programmiersprache C++.
</longdescription>
<longdescription lang="es">
La categoría dev-cpp contiene librerias y utilidades referentes al
lenguaje de programación C++.
</longdescription>
<longdescription lang="ja">
dev-cpp カテゴリーにはC++プログラミング言語に関連したライブラリーと
ユーティリティが含まれます。
</longdescription>
<longdescription lang="nl">
De dev-cpp categorie bevat bibliotheken en hulpmiddelen voor het gebruik
van de programmeertaal C++.
</longdescription>
<longdescription lang="vi">
Nhóm dev-cpp chứa các thư viện và tiện ích liên quan
đến ngôn ngữ lập trình C++.
</longdescription>
<longdescription lang="it">
La categoria dev-cpp contiene librerie e utilità per illinguaggio C++.
</longdescription>
<longdescription lang="pt">
A categoria dev-cpp contém bibliotecas e utilitários para a
linguagem de programação C++.
</longdescription>
<longdescription lang="pl">
Kategoria dev-cpp zawiera biblioteki i narzędzia związane z językiem
programowania c++.
</longdescription>
</catmetadata>
@@ -0,0 +1 @@
DIST v1.5.tar.gz 2546549 BLAKE2B 9c2005c3b666d2643fb72c78c957fd52c6521cbc1249c441de55a2f8125d7298bfd37c47c439e37be2765b7b037ced4946edbccbee9ac307765584f0c93cbf9f SHA512 324c9f2427d4d0e568b63fcd7bd81f4eee6743d7106af5ead134f81d637f190f77122f28cc42b9e95f7782f5058492b1903eadb44e1c3061a636b32bb93d0ed2
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>silver.zachara@gmail.com</email>
<name>Silver Zachara</name>
<description>Primary package maintainer</description>
</maintainer>
<maintainer type="person">
<name>Pranav (p-ranav)</name>
<description>Upstream developer, CC on bugs</description>
</maintainer>
<longdescription lang="en">
Table Maker for Modern C++
</longdescription>
<upstream>
<remote-id type="github">p-ranav/tabulate</remote-id>
</upstream>
<bugs-to>https://github.com/p-ranav/tabulate/issues</bugs-to>
<doc>https://github.com/p-ranav/tabulate</doc>
</pkgmetadata>
@@ -0,0 +1,20 @@
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
DESCRIPTION="Table Maker for Modern C++"
HOMEPAGE="https://github.com/p-ranav/tabulate"
LICENSE="MIT"
SLOT="0"
if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/p-ranav/tabulate.git"
EGIT_MIN_CLONE_TYPE="single"
else
SRC_URI="https://github.com/p-ranav/tabulate/archive/refs/tags/v${PV}.tar.gz"
KEYWORDS="~amd64"
fi
@@ -0,0 +1,20 @@
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
DESCRIPTION="Table Maker for Modern C++"
HOMEPAGE="https://github.com/p-ranav/tabulate"
LICENSE="MIT"
SLOT="0"
if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/p-ranav/tabulate.git"
EGIT_MIN_CLONE_TYPE="single"
else
SRC_URI="https://github.com/p-ranav/tabulate/archive/refs/tags/v${PV}.tar.gz"
KEYWORDS="~amd64"
fi
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE catmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<catmetadata>
<longdescription lang="en">
The dev-db category contains libraries and utilities for database
related programming.
</longdescription>
<longdescription lang="de">
Die Kategorie dev-db enhält Bibliotheken und Werkzeuge für die
Datenbank-Programmierung.
</longdescription>
<longdescription lang="es">
La categoría dev-db contiene librerias y utilidades para programación
referente a bases de datos.
</longdescription>
<longdescription lang="ja">
dev-dbカテゴリーにはデータベース・プログラミングに関連したライブラリーと
ユーティリティが含まれます。
</longdescription>
<longdescription lang="nl">
De dev-db categorie bevat bibliotheken en hulpmiddelen voor het gebruik
van verschillende database-programmeertalen.
</longdescription>
<longdescription lang="vi">
Nhóm dev-db chứa các thư viện và tiện ích liên quan
đến Cơ sở dữ liệu.
</longdescription>
<longdescription lang="it">
La categoria dev-db contiene librerie ed utilità per la programmazione di basi di dati.
</longdescription>
<longdescription lang="pt">
A categoria dev-db contém bibliotecas e utilitários para a
programação relacionada a bancos de dados.
</longdescription>
<longdescription lang="pl">
Kategoria dev-db zawiera biblioteki i narzędzia związane z
programowaniem związanym z bazami danych.
</longdescription>
</catmetadata>
@@ -0,0 +1 @@
DIST tinyorm-0.37.1.tar.gz 2226512 BLAKE2B 5d143acf5be50a128950346cffccd2214cb063a7aa8990b099d56a0c561608f4b1311756502e5d9d662dc1aa9934add2dc2d099ea215023c354d53048212ba00 SHA512 1ad4f9b8b2ad0a66e76c4f0f3a72883346bae5e32aec01dcdcf918e53fa66ec776324169e6e1aa1888243fb46a8c77e5eb601c43a7387e17f636e7e6d0918eff
@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>silver.zachara@gmail.com</email>
<name>Silver Zachara</name>
<description>Upstream developer, CC on bugs</description>
</maintainer>
<longdescription lang="en">
Modern C++ ORM library for Qt framework
</longdescription>
<upstream>
<remote-id type="github">silverqx/TinyORM</remote-id>
</upstream>
<bugs-to>https://github.com/silverqx/TinyORM/issues</bugs-to>
<doc>https://www.tinyorm.org</doc>
<use>
<flag name="build-drivers">
Build TinyDrivers SQL database drivers (alternative to the QtSql module, MySQL only)
</flag>
<flag name="disable-thread-local">
Remove all thread_local storage duration specifiers (disables multi-threading support)
</flag>
<flag name="disable-thread-local">
Remove all thread_local storage duration specifiers (disables multi-threading support)
</flag>
<flag name="inline-constants">
Use inline constants instead of extern constants in shared builds
</flag>
<flag name="mysql-ping">
Install MySQL C client library (libmysql) to support the mysql_ping()
</flag>
<flag name="orm">
Enable ORM-related source code (without it only the query builder is compiled)
</flag>
<flag name="mysql">
Add support for the MySQL database
</flag>
<flag name="postgres">
Add support for the PostgreSQL database
</flag>
<flag name="qt5">
Build and link against the Qt v5 (deprecated)
</flag>
<flag name="sqlite">
Add support for the SQLite database
</flag>
<flag name="tom">
Enable Tom-related source code (command-line interface)
</flag>
<flag name="tom-cli">
Build Tom command-line application (migrations, scaffolding, enhances bash completion)
</flag>
</use>
</pkgmetadata>
@@ -0,0 +1,76 @@
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
DESCRIPTION="Modern C++ ORM library for Qt framework"
HOMEPAGE="https://www.tinyorm.org https://github.com/silverqx/TinyORM"
LICENSE="MIT"
SLOT="0"
if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/silverqx/TinyORM.git"
EGIT_MIN_CLONE_TYPE="single"
else
SRC_URI="https://github.com/silverqx/TinyORM/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
S=${WORKDIR}/TinyORM-${PV}
KEYWORDS="~amd64"
fi
IUSE="build-drivers disable-thread-local inline-constants mysql mysql-ping +orm postgres -qt5 +sqlite +tom +tom-cli"
REQUIRED_USE="
build-drivers? ( || ( mysql ) !postgres !sqlite !qt5 )
tom-cli? ( tom )
"
RDEPEND="
build-drivers? (
>=dev-qt/qtbase-6.7:6[icu]
mysql? ( dev-db/mysql-connector-c:= )
)
!build-drivers? (
!qt5? (
>=dev-qt/qtbase-6.7:6[icu]
dev-qt/qtbase:=[mysql,postgres,sqlite]
)
qt5? (
dev-qt/qtcore:5[icu]
dev-qt/qtsql:5[mysql,postgres,sqlite]
)
)
mysql-ping? ( dev-db/mysql-connector-c:= )
"
DEPEND="
${RDEPEND}
>=dev-cpp/range-v3-0.12.0
>=dev-cpp/tabulate-1.5"
DOCS=()
src_configure() {
local mycmakeargs=(
-D CMAKE_CXX_SCAN_FOR_MODULES:BOOL=OFF
-D CMAKE_EXPORT_PACKAGE_REGISTRY:BOOL=OFF
-D BUILD_TREE_DEPLOY:BOOL=OFF
-D STRICT_MODE:BOOL=OFF
-D VERBOSE_CONFIGURE:BOOL=ON
-D BUILD_TESTS:BOOL=OFF
-D BUILD_DRIVERS:BOOL=$(usex build-drivers)
-D DRIVERS_TYPE:STRING=Shared
-D DISABLE_THREAD_LOCAL:BOOL=$(usex disable-thread-local)
-D INLINE_CONSTANTS:BOOL=$(usex inline-constants)
-D MYSQL_PING:BOOL=$(usex mysql-ping)
-D ORM:BOOL=$(usex orm)
-D TOM:BOOL=$(usex tom)
-D TOM_EXAMPLE:BOOL=$(usex tom-cli)
)
use build-drivers && mycmakeargs+=(
-D BUILD_MYSQL_DRIVER:BOOL=$(usex mysql)
)
cmake_src_configure
}
@@ -0,0 +1,76 @@
# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
DESCRIPTION="Modern C++ ORM library for Qt framework"
HOMEPAGE="https://www.tinyorm.org https://github.com/silverqx/TinyORM"
LICENSE="MIT"
SLOT="0"
if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/silverqx/TinyORM.git"
EGIT_MIN_CLONE_TYPE="single"
else
SRC_URI="https://github.com/silverqx/TinyORM/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
S=${WORKDIR}/TinyORM-${PV}
KEYWORDS="~amd64"
fi
IUSE="build-drivers disable-thread-local inline-constants mysql mysql-ping +orm postgres -qt5 +sqlite +tom +tom-cli"
REQUIRED_USE="
build-drivers? ( || ( mysql ) !postgres !sqlite !qt5 )
tom-cli? ( tom )
"
RDEPEND="
build-drivers? (
>=dev-qt/qtbase-6.7:6[icu]
mysql? ( dev-db/mysql-connector-c:= )
)
!build-drivers? (
!qt5? (
>=dev-qt/qtbase-6.7:6[icu]
dev-qt/qtbase:=[mysql,postgres,sqlite]
)
qt5? (
dev-qt/qtcore:5[icu]
dev-qt/qtsql:5[mysql,postgres,sqlite]
)
)
mysql-ping? ( dev-db/mysql-connector-c:= )
"
DEPEND="
${RDEPEND}
>=dev-cpp/range-v3-0.12.0
>=dev-cpp/tabulate-1.5"
DOCS=()
src_configure() {
local mycmakeargs=(
-D CMAKE_CXX_SCAN_FOR_MODULES:BOOL=OFF
-D CMAKE_EXPORT_PACKAGE_REGISTRY:BOOL=OFF
-D BUILD_TREE_DEPLOY:BOOL=OFF
-D STRICT_MODE:BOOL=OFF
-D VERBOSE_CONFIGURE:BOOL=ON
-D BUILD_TESTS:BOOL=OFF
-D BUILD_DRIVERS:BOOL=$(usex build-drivers)
-D DRIVERS_TYPE:STRING=Shared
-D DISABLE_THREAD_LOCAL:BOOL=$(usex disable-thread-local)
-D INLINE_CONSTANTS:BOOL=$(usex inline-constants)
-D MYSQL_PING:BOOL=$(usex mysql-ping)
-D ORM:BOOL=$(usex orm)
-D TOM:BOOL=$(usex tom)
-D TOM_EXAMPLE:BOOL=$(usex tom-cli)
)
use build-drivers && mycmakeargs+=(
-D BUILD_MYSQL_DRIVER:BOOL=$(usex mysql)
)
cmake_src_configure
}
@@ -0,0 +1,16 @@
# This is a partial list of copyright holders for Gentoo packages.
# It is opt-in and manually maintained, so it will be neither complete
# nor necessarily up to date. A more exhaustive list can be obtained
# by additionally extracting author information from the commit history
# of the Gentoo CVS and git repositories.
#
# Requests to be listed below can be filed at https://bugs.gentoo.org/
# under the Gentoo Foundation product. To be considered, an entity must
# have made a legally significant contribution, as determined by the
# Board of Trustees. As a reference, the following guide can be used:
# https://www.gnu.org/prep/maintain/html_node/Legally-Significant.html
#
# Entries are single lines and contain the entity's name and an optional
# e-mail address. Keep the list sorted (use "LC_ALL=en_US.utf-8 sort").
#
Silver Zachara <silver.zachara@gmail.com>
@@ -0,0 +1,3 @@
masters = gentoo
thin-manifests = true
sign-manifests = false
@@ -0,0 +1 @@
8
@@ -0,0 +1 @@
crystal