Fork of Arch Linux devtools from https://git.archlinux.org/devtools.git
Go to file
Levente Polyak f20435643f
makechrootpkg: sync databases for checkpkg off-site
Use pacman's --dbpath feature to sync fresh databases inside an isolated
location and split up the database sync and package location calls to
remove the need of weird grep calls.

It isn't nice of makechrootpkg to modify the host database state just by
building packages. No foreign program shall automatically modify
the host database other than by the explicit will of a system
maintainer, which is the major reason this changes get incorporated.

However, there is certain indoctrinated believe that using -Sy is
the prime evil. In fact it has been declared as a social rule to a
technical problem of not getting into potential partial upgrade states.
This is not a proper loophole less solution as there are multiple ways
and use cases that lead to such a state, like aborting a -Syu on the
prompt for whatever reason, what really matters is that it is not a
technically bullet proof solution to solve the problem.

Databases shall have the freedom to be as up to date as databases or
their owner wishes, allowing querying on latest database state without
fear. The only loophole-less contract that _really_ is from importance
is always using -Su instead of plain -S to install packages. Installing
packages is what actually brings one into a potential partial upgrade
state and by using -Su an outstanding upgrade is forced when installing
a new package. This properly solves all edge cases in a technical
manner instead of declaring people who abort the prompt of -Syu to be
the problem. In fact, using this simple contract allows whatever system
maintenance workflow a host owner wants to follow, which may still be to
always use -Syu and deal with system upgrades explicitly instead of the
time when installing new packages, but the -Su contract is the real safe
guard to guarantee no edge case can ever slip in. This magically also
opens up the freedom to people who wish to use -Sy to simply query on up
to date data as the currently indoctrinated "never do -Sy" stone plates
not only are not rock solid in technical terms but also make certain use
cases simply impossible and hence cripple the functionality without at
the very least being fully loophole free.

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
2019-12-05 22:50:11 +01:00
doc doc: add manpage for the new makerepropkg tool 2019-11-30 13:21:23 +01:00
lib lib/common.sh: do not use colors when running on a dumb terminal 2019-11-30 13:25:05 +01:00
.gitignore makerepropkg: add new program to try to reproducibly build a package 2019-11-30 13:21:23 +01:00
.travis.yml ci: fix travis build using undocumented but reserved keyword 2019-10-15 23:50:52 +02:00
Makefile Version 20191130 2019-11-30 13:30:34 +01:00
PKGBUILD.proto Add `# shellcheck` directives to quiet shellcheck, add PKGBUILD.proto 2017-07-05 18:21:56 +02:00
README.md readme: fix faulty whitespace in release commands 2019-03-29 21:40:28 +01:00
arch-nspawn.in arch-nspawn: rely on deduplication to avoid making multiple host_mirror mounts 2019-11-30 13:21:23 +01:00
archbuild.in archbuild: use better umask 2019-11-30 13:21:23 +01:00
archco.in Avoid using string interpolation; use printf format strings instead. 2017-04-05 22:11:16 +02:00
archrelease.in archrelease: actually fail in failure conditions 2019-08-09 19:41:53 +02:00
bash_completion.in Quote strings that shellcheck warns about. 2017-07-05 18:21:56 +02:00
checkpkg.in checkpkg: add option to print a warning in case of differences 2019-09-28 00:15:51 +02:00
commitpkg.in commitpkg: clearly delineate the commit message template and the rationale 2019-11-30 13:21:23 +01:00
crossrepomove.in crossrepomove: do not set svn propset 2019-03-13 22:06:00 +01:00
find-libdeps.in Don't rely on $0 to determine script names. 2019-08-09 19:41:51 +02:00
finddeps.in finddeps: suppress error messages for unreadable directories 2019-08-09 19:41:53 +02:00
lddd.in Make slightly more involved changes to make shellcheck happy. 2017-07-05 18:21:56 +02:00
makechrootpkg.in makechrootpkg: sync databases for checkpkg off-site 2019-12-05 22:50:11 +01:00
makepkg-x86_64.conf conf: Sync with pacman 5.2.0-2 2019-11-06 01:14:05 +01:00
makerepropkg.in makerepropkg: add new program to try to reproducibly build a package 2019-11-30 13:21:23 +01:00
mkarchroot.in mkarchroot: support wrapping pacstrap -U 2019-11-30 13:21:23 +01:00
offload-build offload-build: remove empty src dir when SRCDEST is set 2019-11-30 13:21:23 +01:00
pacman-extra.conf conf: Sync with pacman 5.2.0-2 2019-11-06 01:14:05 +01:00
pacman-gnome-unstable.conf conf: Sync with pacman 5.2.0-2 2019-11-06 01:14:05 +01:00
pacman-kde-unstable.conf conf: Sync with pacman 5.2.0-2 2019-11-06 01:14:05 +01:00
pacman-multilib-staging.conf conf: Sync with pacman 5.2.0-2 2019-11-06 01:14:05 +01:00
pacman-multilib-testing.conf conf: Sync with pacman 5.2.0-2 2019-11-06 01:14:05 +01:00
pacman-multilib.conf conf: Sync with pacman 5.2.0-2 2019-11-06 01:14:05 +01:00
pacman-staging.conf conf: Sync with pacman 5.2.0-2 2019-11-06 01:14:05 +01:00
pacman-testing.conf conf: Sync with pacman 5.2.0-2 2019-11-06 01:14:05 +01:00
rebuildpkgs.in Don't rely on $0 to determine script names. 2019-08-09 19:41:51 +02:00
sogrep.in sogrep: redirect to destination mirror (#25) 2019-10-15 23:30:23 +02:00
zsh_completion.in completion: add makerepropkg zsh completion 2019-11-30 13:25:06 +01:00

README.md

Devtools - development tools for Arch Linux

This repository contains tools for the Arch Linux distribution for building and maintaining official repository packages.

Patches

Patches can be send to arch-projects@archlinux.org or via a pull request on Github. When sending patches to the mailing list make sure to set a valid subjectprefix otherwise the email is denied by mailman. Git can be configured as following.

git config format.subjectprefix 'devtools] [PATCH'

Releasing

  1. bump the version in the Makefile
  2. Commit everything as Version $(date +"%Y%m%d")
  3. Create a new tag git tag -s $(date +"%Y%m%d")
  4. Push changes
  5. Upload the source tarball with make dist upload
  6. Update the package