summaryrefslogtreecommitdiff
path: root/scripts
AgeCommit message (Collapse)Author
2015-06-11Add a field for package base popularityLukas Fleischer
Create a new field Popularity in the PackageBases table. The field is updated by the popupdate script and reflects the popularity of a package. Popularity is the sum of all votes with each vote being weighted with a factor of 0.98 per day since its creation. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-11Add popupdate scriptLukas Fleischer
This adds a simple script that can be used to recalculate the number of votes per package. It can be used in a cronjob. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-04aurblup: Fix path to configuration fileLukas Fleischer
Fixes a regression introduced in commit 10ecd39 (Restructure scripts, 2015-06-01). Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-02Restructure scriptsLukas Fleischer
* 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-01git-update: Check for missing install and source filesLukas Fleischer
Suggested-by: Marcel Korpel <marcel.korpel@gmail.com> Suggested-by: carstene1ns <arch@carsten-teibes.de> Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-06-01Use gitnamespaces for efficient storageLukas Fleischer
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-05-21Change default configuration to use SSH port 22Lukas Fleischer
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-21Remove the OpenSSH patchLukas Fleischer
Extended AuthorizedKeysCommand parameters are now officially supported by OpenSSH. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
2015-04-11Update the OpenSSH patchLukas Fleischer
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-02-04Rename the AUR software to aurwebLukas Fleischer
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-01-15git-update.py: Check for mandatory fieldsLukas Fleischer
Check explicitly whether pkgver, pkgrel, pkgname, pkgdesc and url are available in each package. If any of these is missing, an exception might occur when parsing the meta data later. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-11Use custom templates for Git repositoriesLukas Fleischer
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-11Add to notification list on repository creationLukas Fleischer
Since commit bf7717a (git-serve.py: Adopt repositories on creation, 2015-01-06), newly created package bases are no longer orphan and therefore, they are not adopted when pushing the first commit which also means that the initial submitter is not added to the notification list automatically. To remedy this, add the owner to the notification list when setting up a new repository. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-09Rewrite aurblup in PythonLukas Fleischer
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-09Merge branch 'maint'Lukas Fleischer
2015-01-09aurblup: Do not blacklist providesLukas Fleischer
This partly reverts commit ddc5435 (Add packages' provides and replaces to the blacklist in aurblup., 2011-02-08). While adding replaces is fine, blacklisting provides prevents from uploading alternative implementations of a program which is not what we want. Fixes FS#43381. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-08git-update.py: Do not wipe repository descriptionsLukas Fleischer
Only update repository descriptions if there is at least one package in the package base meta data. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-08git-update.py: Reject blacklisted packagesLukas Fleischer
Reject commits adding packages which are in the official repositories already. Fixes FS#43371. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-07git-serve.py: Allow TUs to push to any repositoryLukas Fleischer
Implements FS#32807. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-07Add support for package base co-maintainersLukas Fleischer
This allows for having multiple co-maintainers for AUR packages. Co-maintainers have push access to the package base Git repository but are not allowed to change the package base category, disown the package or modify the list of co-maintainers. The primary maintainer of an AUR package can edit the list of co-maintainers from the Package Actions box. Implements FS#17911. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-07git-update.py: Support architecture-specific fieldsLukas Fleischer
Fixes FS#43356. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-06git-serve.py: Adopt repositories on creationLukas Fleischer
Automatically assign ownership when creating a new (empty) repository. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-06git-serve.py: Automatically create repositoriesLukas Fleischer
Create a fresh Git repository when cloning or pushing using a path that does not yet exist. Implements FS#43308. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-02git-serve.py: Relax path validationLukas Fleischer
Make the terminating slash in repository URLs optional. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-01git-serve.py: Add a command to list repositoriesLukas Fleischer
The list-repos command now lists all repositories you maintain. Empty repositories are prefixed with an asterisk. Implements FS#43288. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2015-01-01git-serve.py: Improve error messagesLukas Fleischer
Also, add a help command that lists available options. Implements FS#43287. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-30git-update.py: Cast epoch to an integerLukas Fleischer
Convert epoch values before doing integer comparisons. Also, add a sanity check for the epoch variable. Reported-by: Ido Rosen <ido@kernel.org> Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-28Add a script to initialize Git repositoriesLukas Fleischer
Introduce a script that creates one repository for each package base in the database. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-28git-serve.py: Use virtual pathsLukas Fleischer
Pretend that all repositories are located in the root directory of the file system to achieve location transparency. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27Remove legacy scriptsLukas Fleischer
These are no longer needed. We use Git repositories now. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27git-update.py: Update repository descriptionLukas Fleischer
Use the package description of the first package as the Git repository description. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27Honor the database socket setting in Git scriptsLukas Fleischer
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27Add sshd setup instructionsLukas Fleischer
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-12-27Add update hook templateLukas Fleischer
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-27Add basic Git authentication/authorization scriptsLukas Fleischer
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-27mkpkglists.py: Honor database socket settingLukas Fleischer
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-10-24mkpkglists: Use the main configuration fileLukas Fleischer
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-10-24Use an INI-style configuration fileLukas Fleischer
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-10Add a script to generate package listsLukas Fleischer
This can be used to regularly generate lists of packages and package bases that are made available under /packages.gz and /pkgbase.gz, respectively. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2014-04-05Prefix package functions with pkg_/pkgbase_Lukas Fleischer
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2013-04-28aurblup: Update for pacman 4.1 API changesLukas Fleischer
alpm_db_register_sync() and alpm_option_get_syncdbs() have been renamed. Update aurblup sources accordingly. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2013-02-15Remove aurblup configuration file parserLukas Fleischer
Drop the (very bad) PHP parser and allow for passing all necessary configuration via command line parameters. Also, add a convenience wrapper written in PHP that parses the configuration file and subsequently calls aurblup with correct command line options. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-24aurblup: update for pacman 4 revised libalpm APIDan McGee
Notable changes include the necessary handle object and the splitting of provides and replaces into alpm_depend_t objects. Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-24aurblup: remove use of alpm_list_getdata()Dan McGee
This is not strictly necessry as listitem->data is public. Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-24aurblup: style cleanupsDan McGee
Always use two lines for if statements, use a character constant rather than the 0 integer when NULL-terminating a string, and remove the unnecessary NULL check before free(value)- free(NULL) is a no-op and always safe. Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-24aurblup: remove ';' from queriesDan McGee
The semicolons are not necessary when performing queries via the MySQL API, so remove them. Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-19aurblup: Update config.h.protoDan McGee
* Switch to x86_64 architecture by default * Add more repositories (including multilib) * Update default configuration path to include .php file extension Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-11Rename package_exists() to pkgid_from_name()Lukas Fleischer
Describe what this function actually does: Return the ID of a package with a given name and return NULL if such a package doesn't exist. The function name is chosen in a fashion similar to other functions from "pkgfuncs.inc.php" (pkgname_from_id(), pkgnotify_from_sid(), ...). Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-10Add a upload directory transform scriptDan McGee
This goes with the previous patch that moves uploads into segmented subdirectories. To actually run, follow the DRYRUN instructions. Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-10Segment the upload directory by package name prefixDan McGee
This implements the following scheme: * /packages/cower/ --> /packages/co/cower/ * /packages/j/ --> /packages/j/j/ * /packages/zqy/ --> /packages/zq/zqy/ We take up to the first two characters of each package name as a intermediate subdirectory, and then the full package name lives underneath that. Shorter named packages live in a single letter directory. Why, you ask? Well because earlier today the AUR hit 32,000 entries in the unsupported/ directory, making new package uploads impossible. While some might argue we shouldn't have so many damn packages in the repos, we should be able to handle this case. Why two characters instead of one? Our two biggest two-char groups, 'pe' and 'py', both start with 'p', and have nearly 2000 packages each. Go Python and Perl. Still needed is a "move the existing data" script, as well as a set of rewrite rules for those wishing to preserve backward compatible URLs for any helper programs doing the wrong thing and relying on them. Signed-off-by: Dan McGee <dan@archlinux.org> Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>