Commit graph

94 commits

Author SHA1 Message Date
Lukas Fleischer
b8df10e227 config.proto: Update path to the notification script
As of commit 3718860 (Make maintenance scripts installable, 2016-10-17),
the notification script is installed as aurweb-notify. Update the
sample configuration file accordingly.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2017-01-25 18:42:34 +01:00
Mark Weiman
608c483090 Add user set timezones
Currently, aurweb displays all dates and times in UTC time. This patch
adds a capability for each logged in user to set their preferred
timezone.

Implements FS#48729.

Signed-off-by: Mark Weiman <mark.weiman@markzz.com>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2017-01-20 23:20:40 +01:00
Alex Muller
eb4ba5cfdb Increase minimum password length to 8 characters
There are 95 printable ASCII characters which with a minimum length of 4
gives 95^4 or 81 million possible passwords. Increasing the minimum
length to 8 increases the number of possible passwords by a factor of
about 10^7.

Relates to FS#52297.

Signed-off-by: Alex Muller <alex@mullr.net>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2017-01-07 17:38:38 +01: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
cc66259d33 aurblup: Drop support for multiple servers
Support for multiple servers has never been used by the official aurweb
setup and the current implementation makes it impossible to use server
URIs that contain spaces. For simplicity, change the implementation such
that only a single server is supported.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2016-09-29 22:07:24 +02:00
Lukas Fleischer
ec5779c824 mkpkglists: Make output files configurable
Instead of writing the output to hardcoded files (relative to the
document root), make the output paths of mkpkglists configurable.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2016-09-29 22:07:24 +02:00
Lukas Fleischer
baf8a220ab git-interface: Support SQLite as database backend
In addition to MySQL, add support for SQLite to the database abstraction
layer. Also, add a new configuration option to select the DBMS.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2016-08-05 12:05:22 +02:00
Lukas Fleischer
2cd69bf66d git-update: Make maximum blob size configurable
Support setting the maximum blob size in the configuration file.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2016-08-05 11:25:51 +02:00
Lukas Fleischer
12ab89b78c Change default SSH options to "restrict"
From the sshd(8) man page:

    Enable all restrictions, i.e. disable port, agent and X11
    forwarding, as well as disabling PTY allocation and execution of
    ~/.ssh/rc. If any future restriction capabilities are added to
    authorized_keys files they will be included in this set.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2016-08-04 21:37:52 +02:00
Lukas Fleischer
fbf3e54057 Add hard limit for the length of dependency lists
Introduce a configuration option max_depends which can be used to
specify a maximum number of (reverse) dependencies to display on the
package details pages.

Fixes FS#49059.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2016-06-26 08:53:55 +02:00
Lukas Fleischer
aaa138cd38 config.proto: Do not use the ssh+git scheme
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2016-02-06 16:12:33 +01:00
Lukas Fleischer
76aea988f6 cgitrc.proto: Add the aurweb favicon
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-12-13 10:22:59 +01:00
Lukas Fleischer
a114476e81 Make the notification script configurable
Add a configuration option to set the path of the notification script.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-11-14 09:27:35 +01:00
Stefan Auditor
ff659fa05c Remove trailing slash from git urls
Circumvents the temporary regression in git that clones a repository
as foo-git.git instead of foo-git and matches the format used by
other commonly used git hosting providers.

Fixes FS#45834.

Signed-off-by: Stefan Auditor <stefan.auditor@erdfisch.de>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-08-16 21:37:51 +02:00
Lukas Fleischer
4112e572aa Add a restore command to the SSH interface
Implement a new command that can be used to restore deleted package
bases without having to push a new commit.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-08-16 06:49:12 +02:00
Lukas Fleischer
9746a65473 Port notification routines to Python
Use a Python script for sending notification emails. The notification
action and additional parameters are passed via command line arguments.
For comment and package request notifications, the text is passed via
stdin.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-08-08 12:59:23 +02: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
Mikkel Oscar Lyderik
ec7e163699 Remove hostname from URLPath in JSON RPC
Prior to aurweb 4.0.0, URLPath in the JSON RPC didn't include the host
name, only the path.

This removes the host name and makes the URL compatible with programs
expecting the old semantics (i.e. cower).

Closes FS#45333.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-19 14:43:08 +02:00
Johannes Löthberg
9d0f07ddef config.proto: Add sample fingerprints section
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-14 17:58:56 +02:00
Lukas Fleischer
078f7256e3 Support exceptions in the maintenance mode
Allow for excluding certain IP addresses from the maintenance mode. This
allows administrators to view the web page while the site is still under
maintenance for the rest of the world.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-11 14:48:01 +02:00
Lukas Fleischer
a45b5073ca Implement a maintenance mode
Add support for a maintenance mode that disables both the website and
the SSH interface and can be enabled easily using a configuration
option.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-11 14:32:21 +02:00
Lukas Fleischer
d1fd6f4897 Make URIs to the individual cgit pages configurable
Make the locations of the PKGBUILD preview, the log and the snapshot
tarball configurable. This increases flexibility and simplifies the code
a bit.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-11 13:36:27 +02:00
Lukas Fleischer
4c7ec61363 cgitrc.proto: Fix clone prefix
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-04 13:31:55 +02:00
Lukas Fleischer
c38f95f632 config.proto: Cleanup
Remove the template-path and git-update-hook options which are no longer
used. Update the git_clone_uri_anon default value.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-02 15:16:24 +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
8c4428de5d config.proto: Fix default value of ssh-cmdline
We no longer use port 2222 for SSH.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-05-23 15:29:14 +02:00
Lukas Fleischer
c3614c4f09 Change default configuration to use SSH port 22
We no longer run a separate SSH daemon on port 2222. Change the default
configuration accordingly. Also remove some configuration files that are
no longer needed.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-05-21 11:20:17 +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
5dca715c46 Allow users to delete their own packages
Allow users to remove their own package bases for a short period of time
after initial submission (defaults to one day).

Implements FS#43648.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-03-04 12:16:33 +01: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
5adb5b8ebd config.proto: Add prototype for ssh-cmdline
This should have been added in 1b627a3 (git-serve.py: Improve error
messages, 2015-01-01).

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-09 17:47:05 +01:00
Lukas Fleischer
3c171d353f Rewrite aurblup in Python
The AUR backend already uses several Python scripts, rewrite the aurblup
helper as well. This has several advantages:

* We can easily use the main configuration file without using any shell
  script wrappers.

* aurblup does not need to be recompiled on libalpm soname bumps.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-09 13:14:02 +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
176014a5d7 Add links to public and private clone URLs
Show a public clone URL (using Git over HTTP) by default and only show
the private clone URL to the package maintainer.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-29 13:22:05 +01:00
Lukas Fleischer
52432a3fc0 config.proto: Sync default values with aur.archlinux.org
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-29 11:21:48 +01:00
Lukas Fleischer
662f31cdb7 Add cgit configuration and style sheet
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-28 21:09:26 +01:00
Lukas Fleischer
1dcdd3b3ea Add public clone URLs to package details
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27 12:42:12 +01:00
Lukas Fleischer
74edb6fea9 Use Git repositories to store packages
* Remove package submission page from the web interface.
* Replace PKGBUILD and tarball links with links to cgit.
* Remove the "URLPath" field from RPC replies.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27 12:42:12 +01:00
Lukas Fleischer
943b6bc976 Add update hook template
This adds a script that can be used as an update hook to check all
commits for validity and to regenerate the package details page before
updating a named ref.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27 12:42:12 +01:00
Lukas Fleischer
ad17b9e2b4 Add basic Git authentication/authorization scripts
This adds two scripts to be used together with Git over SSH:

* git-auth.py is supposed to be used as AuthorizedKeysCommand. It checks
  whether the public key belongs to any AUR user and invokes
  git-serve.py, passing the name of the corresponding user as a command
  line argument, if any.

* git-serve.py is a wrapper around git-shell(1) that checks whether the
  user passed as command line argument has access to the Git repository
  that a push operation writes to.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27 12:42:12 +01:00
Lukas Fleischer
571b74b901 Always use virtual URLs
Support for non-virtual URLs has been broken for a long time and is no
longer used on the official AUR setup.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-11-21 11:43:31 +01:00
Lukas Fleischer
76343fb915 Use an INI-style configuration file
Replace web/lib/config.inc.php with an INI-style configuration file.
This allows us to get rid of several globals and makes it easier to use
the same configuration file in external scripts.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-10-24 10:03:54 +02:00