Arch Linux repository management scripts (read-only mirror)
Go to file
Morten Linderud fe25e6b4af
ftpdir-cleanup: Remove explicit debug lock
Signed-off-by: Morten Linderud <morten@linderud.pw>
2021-12-16 19:57:05 +01:00
cron-jobs ftpdir-cleanup: Remove explicit debug lock 2021-12-16 19:57:05 +01:00
test test/common: correct grep usage 2021-12-16 19:07:10 +01:00
.editorconfig Add editor configuration 2017-04-15 15:36:55 +02:00
.gitignore Move test cases and fixtures to more meaningful directories 2017-04-23 12:19:35 +02:00
.gitlab-ci.yml Enable shellcheck in CI 2021-11-19 20:43:50 +01:00
LICENSE.md add licensing information based on discussion with primary contributors 2020-06-04 23:08:39 -04:00
LICENSE_STATUS.md Update license status 2021-10-17 14:40:34 +02:00
Makefile Allows bats arguments to be passed to tests 2021-11-20 11:49:02 +01:00
README.md Allows bats arguments to be passed to tests 2021-11-20 11:49:02 +01:00
config db-functions: Create DEBUGREPOS and DEBUGPKGPOOL 2021-11-20 16:48:07 +01:00
config.local.svn-community config: Correct DEBUGPKGPOOL 2021-12-16 19:30:40 +01:00
config.local.svn-packages config.local: Added configuration for debug package repositories 2021-12-16 17:43:00 +01:00
db-archive db-archive: check whether we are already ${ARCHIVEUSER} before sudoing. 2019-01-11 13:43:33 -05:00
db-functions db-functions: Add more (terrible) heuristics for detecting debug packages 2021-12-16 19:27:46 +01:00
db-functions-svn Finish the svn refactor by implementing helper functions to write to the VCS 2018-10-07 21:06:15 -04:00
db-move cleanup: Added -f to all ln calls 2021-12-16 19:48:51 +01:00
db-remove fixups 2021-11-20 17:06:57 +01:00
db-repo-add Consistently use "$(dirname "$(readlink -e "$0")")" 2018-04-08 16:18:40 -04:00
db-repo-remove Consistently use "$(dirname "$(readlink -e "$0")")" 2018-04-08 16:18:40 -04:00
db-update cleanup: Added -f to all ln calls 2021-12-16 19:48:51 +01:00
testing2x testing2x: be more generic and accept multiple testing repos 2019-01-10 13:14:36 -05:00

README.md

Arch Linux repository management scripts

Configuration

  • The default configuration can be found in config.
  • An optional config.local may override the default configuration.
  • The path and name of the local configuration file can be overridden by setting the DBSCRIPTS_CONFIG environment variable.

Overview

The executables that you (might) care about are:

dbscripts/
├── cron-jobs/
│   ├── devlist-mailer
│   ├── ftpdir-cleanup
│   ├── integrity-check
│   └── sourceballs
├── db-move
├── db-remove
├── db-repo-add
├── db-repo-remove
├── db-update
└── testing2x

Ok, now let's talk about what those are.

There are 3 "main" programs:

  • db-update : add packages to repositories
  • db-remove : remove packages from repositories
  • db-move : move packages from one repository to another

Moving packages from testing to stable repositories is such a common task that we have a wrapper around db-move to make it easier:

  • testing2x

Of course, sometimes things go wrong, and you need to drop to a lower-level, but you don't want to go all the way down to pacman's repo-add/repo-remove. So, we have:

  • db-repo-add
  • db-repo-remove

Now, we'd like to be able to check that the repos are all OK, so we have

  • cron-jobs/integrity-check

When we remove a package from a repository, it stays in the package "pool". We would like to be able to eventually remove packages from the pool, to reclaim the disk space:

  • cron-jobs/ftpdir-cleanup

Things that haven't been mentioned yet:

  • cron-jobs/devlist-mailer
  • cron-jobs/sourceballs

Testing

  • Install the make and podman or docker packages depending on your preferrence. The default expects docker but pomdan can be used if DOCKER=podman is specified. When using docker, start the docker daemon by issuing systemctl start docker.
  • The test suite can now be run with make test.
  • A coverage report can be generated with make test-coverage. Open coverage/index.html in your web browser to inspect the results.

Bats arguments or specific test can be run by providing CASES and BATS_ARGS:

make test DOCKER=podman CASES=cases/db-update.bats BATS_ARGS='-f Wrong'

License

For a long time, dbscripts didn't have an explicit license. Currently it is primarily licensed under the GPL-2.0-or-later, but some code is of unknown license. Details on clarifying the license status may be found in LICENSE_STATUS.md

tl;dr

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.