Commit graph

40 commits

Author SHA1 Message Date
Eli Schwartz
97c5bcec13 config: allow reading both the defaults file and the modified config
In the process, rename config.proto to config.defaults (because that is
what it is now).

Also use dict.get('key', default_value) when querying os.environ, rather
than an if block, as it is more pythonic/readable/concise, and reduces
the number of dict lookups.

This change allows aurweb configuration to be done via either:
- copying config.defaults to config and modifying values
- creating a new config only containing modified values, next to a
  config.defaults containing unmodified values

The motivation for this change is to enable ansible configuration in our
flagship deployment by storing only changed values, and deferring to
config.defaults otherwise.

A side benefit is, it is easier to see what has changed by inspecting
only the site configuration file.

If a config.defaults file does not exist next to $AUR_CONFIG or in
$AUR_CONFIG_DEFAULTS, it is ignored and *all* values are expected to
live in the modified config file.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2018-04-22 09:26:10 +02:00
Jelle van der Waa
ca6332de6e Update cache code to INI style configuration
Change the defines to config_get and add one cache option and one option
to define memcache_servers. Mention the required dependency to get
memcached working in the INSTALL file.

Signed-off-by: Jelle van der Waa <jelle@vdwaa.nl>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2018-03-10 16:48:14 +01:00
Remy Marquis
34a0d39910 Document required PHP extensions in php.ini
To people unfamiliar with the code, it is not obvious that
the pdo_* PHP extensions must be enabled.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2018-01-26 20:17:04 +01:00
Lukas Fleischer
449909a872 INSTALL: Add new dependencies
Add installation instructions for python-bleach and python-markdown
which are required for the rendercomment script.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2017-08-01 07:11:25 +02:00
Eli Schwartz
c5302d3a33 Require TUs to explicitly request to overwrite a pkgbase
AUR_PRIVILEGED allows people with privileged AUR accounts to evade the
block on non-fast-forward commits. While valid in this case, we should
not do so by default, since in at least one case a TU did this without
realizing there was an existing package.
( https://aur.archlinux.org/packages/rtmidi/ )

Switch to using allow_overwrite to check for destructive actions.
Use .ssh/config "SendEnv" on the TU's side and and sshd_config
"AcceptEnv" in the AUR server to specifically request overwrite access.
TUs should use: `AUR_OVERWRITE=1 git push --force`

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2017-07-25 20:12:11 +02:00
Mark Weiman
906a8f12cc Add TESTING instructions for web interface
Add instructions to test aurweb's web interface via the PHP built-in web
server.

Signed-off-by: Mark Weiman <mark.weiman@markzz.com>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2017-04-12 07:26:23 +02:00
Lukas Fleischer
087b539cbc Document garbage collection settings for Git
Add a note to the Git/SSH interface documentation that we recommend to
disable automatic garbage collection and use a maintenance script to
cleanup and optimize the Git repository instead.

Also, add a reference to the Git/SSH interface documentation to the Git
repository setup instructions in INSTALL.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2017-01-17 08:50:21 +01:00
Lukas Fleischer
ecfa54e492 INSTALL: Refer to the AUR backend as aurweb
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2017-01-12 08:35:15 +01:00
Lukas Fleischer
85866796a4 Move configuration to /etc/aurweb/config
Since d4fe77a (Reorganize Git interface scripts, 2016-10-08), the key
components of the aurweb SSH interface are installed system-wide. Update
the default configuration path to point to a central location.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2016-10-17 15:13:05 +02:00
Lukas Fleischer
d4fe77ac57 Reorganize Git interface scripts
Move the Git interface scripts from git-interface/ to aurweb/git/. Use
setuptools to automatically create wrappers which can be installed using
`python3 setup.py install`. Update the configuration files, the test
suite as well as the INSTALL and README files to reflect these changes.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2016-10-08 14:25:43 +02:00
Lukas Fleischer
333596ab4a Update Arch Linux projects subdomain
The projects.archlinux.org subdomain was moved to git.archlinux.org.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2016-06-08 22:23:57 +02:00
Lukas Fleischer
ff36b23153 Fix instructions for omitting "have" lines
In 002d348 (Describe how to omit "have" lines, 2015-11-14), we added
instructions on how to omit "have" lines originating from other package
repositories. Fix those instructions such that the HEAD ref of the
repository is transferred properly.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2016-03-15 17:58:45 +01:00
Johannes Löthberg
7a3a3876a8 git-update: Replace aurinfo.py with python-srcinfo
python-srcinfo is a more transparent and simpler library for parsing
SRCINFO files.

Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2016-02-07 09:48:32 +01:00
Mark Weiman
edfeea8d74 Add instructions to install needed python modules
Signed-off-by: Mark Weiman <mark.weiman@markzz.com>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-12-13 10:22:59 +01:00
Lukas Fleischer
002d348d90 Describe how to omit "have" lines
A new feature in Git allows for omitting "have" lines corresponding to
refs outside the current Git namespace. Explain how to enable this
feature in the INSTALL instructions and in the Git interface
documentation.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-11-14 13:40:53 +01:00
Lukas Fleischer
c89bf51af2 Update sample configuration for Smart HTTP
Using uWSGI for the Smart HTTP protocol caused some issues, see e.g.
FS#45428. Suggest using fcgiwrap instead which is more lightweight, has
better documentation and is easier to debug.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-28 18:03:21 +02:00
Leonidas Spyropoulos
5603dc910c Improve INSTALL details for nginx and config
Signed-off-by: Leonidas Spyropoulos <artafinde@gmail.com>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-18 10:15:26 +02:00
Lukas Fleischer
a32b83f200 Improve the regular expression to match HTTP clones
Specifically check for URIs git-http-backend(1) can handle. This also
allows us to make the ".git" suffix optional.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-12 16:48:30 +02:00
Lukas Fleischer
a0f3060f23 git-update: Deny non-fast-forwards
To make sure we never lose any history, non-fast-forwards are forbidden.
Instead of relying on receive.denyNonFastForwards, add a simple check to
the update hook. This has the added benefit of more flexibility.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-11 17:56:26 +02:00
Lukas Fleischer
f4e5ea5f57 INSTALL: Add note on disabling non-fast-forwards
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-09 12:32:27 +02:00
Lukas Fleischer
124ad00997 Add a Makefile for the git-auth wrapper
Avoid manual editing of the wrapper script when a non-standard path is
used.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-02 10:49:33 +02:00
Lukas Fleischer
10ecd3982d Restructure scripts
* Move scripts/git-integration/ to git-interface/.
* Move scripts/aurblup/aurblup.py to scripts/aurblup.py.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-02 10:34:34 +02:00
Lukas Fleischer
b44411fb53 Use gitnamespaces for efficient storage
Instead of using one Git repository per package, use a single large
object storage for space efficiency. The refs of the individual package
bases are divided using gitnamespaces(7) which allows for exposing each
namespace as an independent repository easily. Also, git-serve is
modified to create a branch for each package, allowing to browse the
large repository with cgit.

Helped-by: Florian Pritz <bluewind@xinu.at>
Helped-by: Johannes Löthberg <johannes@kyriasis.com>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-01 23:24:52 +02:00
Lukas Fleischer
42b9e4dd28 Remove the OpenSSH patch
Extended AuthorizedKeysCommand parameters are now officially supported
by OpenSSH.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-05-21 10:54:20 +02:00
Lukas Fleischer
ef1f3798a0 Update the OpenSSH patch
Use the latest version of Damien Miller's patch to extend the parameters
to the AuthorizedKeysCommand.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-04-11 14:08:30 +02:00
Lukas Fleischer
cc1e8aed30 Rename the AUR software to aurweb
Rename the project to help differentiate between the software providing
access to the Arch User Repository and the collection of source packages
itself.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-02-04 09:50:01 +01:00
Lukas Fleischer
4dbd562b8e Use custom templates for Git repositories
Do not waste disk space by copying dozens of unneeded sample hooks. Use
a custom template directory that only includes the git-update hook.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-11 18:44:01 +01:00
Lukas Fleischer
abd970e6a4 INSTALL: Add some notes
* Add more details on how to configure the web server.
* Clarify that the OpenSSH patch is build against OpenSSH 6.7p1.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-01 16:54:11 +01:00
Lukas Fleischer
4fc1c2c10c Add systemd unit files for the AUR sshd
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-29 13:28:08 +01:00
Lukas Fleischer
e1aac98bf5 Add sshd setup instructions
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27 12:42:12 +01:00
Lukas Fleischer
b7b586a8c4 Move support/schema/ to schema/
There aren't any other subdirectories in support/. Reduce the nesting
depth by moving schema/ to the top-level source directory.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-02-06 19:11:25 +01:00
Marcel Korpel
7f6993be68 Added RewriteRule for Apache
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2013-01-19 12:20:25 +01:00
Marcel Korpel
332875bbfe INSTALL: Change # to $ where possible
Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2012-12-07 23:24:00 +01:00
Marcel Korpel
ce01cfebcc INSTALL: Current PHP has JSON support without extension
Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2012-12-07 23:23:58 +01:00
canyonknight
c1c3aef74a INSTALL: Update required dummy data packages
Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2012-12-07 23:23:56 +01:00
Marcel Korpel
4187b2eb65 systemd compatibility
Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2012-12-07 23:23:44 +01:00
canyonknight
acdf9a85a0 Add Archive_Tar class to lib/
Some AUR setups do not have PEAR available. While other setups
have access to outdated Archive_Tar versions. Avoid these
problems completely by including the necessary files for
Archive_Tar in lib/.

Remove Archive_Tar requirement from INSTALL doc.

Signed-off-by: canyonknight <canyonknight@gmail.com>
2012-10-27 18:13:46 -04:00
canyonknight
e171f6f34e Migrate all DB code to use PDO
All DB code currently uses the quickly aging mysql_* functions. These
functions are strongly discouraged and may eventually be deprecated.

Transition all code to utilize the PDO data access abstraction layer. PDO
allows for consistent query code across multiple databases. This could
potentially allow for someone to use a database other than MySQL with
minimal code changes.

All functions and behaviors are reproduced as faithfully as possible with
PDO equivalents and some changes in code.

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2012-09-18 00:58:46 +02:00
canyonknight
362d49a796 Update docs to require Archive_Tar version greater than 1.3.7
Prior to version 1.3.8 of Archive_Tar, long filenames within a tar file
would result in the filename being a shortened string of the fullname. This
shortening would prevent the upload of any tar file having a filepath longer
than 99 characters. Require AUR installations to use an update Archive_Tar
version to avoid related issues

Fixes FS#30472

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2012-08-23 22:47:49 +02:00
canyonknight
f014d7f763 Rearrange install documentation
Move documentation related to installation to a separate INSTALL file.

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2012-07-06 11:25:32 +02:00