[aur-dev] [PATCH v3] UPGRADING: Add note on backward compatible package URLs

Lukas Fleischer archlinux at cryptocrack.de
Thu Aug 11 09:46:51 EDT 2011


On Thu, Aug 11, 2011 at 08:11:25AM -0500, Dan McGee wrote:
> On Thu, Aug 11, 2011 at 7:46 AM, Lukas Fleischer
> <archlinux at cryptocrack.de> wrote:
> > Signed-off-by: Lukas Fleischer <archlinux at cryptocrack.de>
> > ---
> > * Rules rewritten using a single regular expression.
> > * Added an equivalent lighttpd rewrite rule.
> >
> >  UPGRADING |   17 +++++++++++++++++
> >  1 files changed, 17 insertions(+), 0 deletions(-)
> >
> > diff --git a/UPGRADING b/UPGRADING
> > index 331870e..aff780f 100644
> > --- a/UPGRADING
> > +++ b/UPGRADING
> > @@ -22,6 +22,23 @@ ALTER TABLE PackageDepends ADD INDEX (DepName);
> >  6. Run the upload directory transform script ("scripts/uploadbuckets.sh") and
> >  rotate the converted directory structure into place.
> >
> > +7. In order to to provide backward compatible package URLs, enable mod_rewrite
> > +and add the following to your Apache configuration (inside the "VirtualHost"
> > +container or optionally create a ".htaccess" file in the upload directory):
> > +
> > +----
> > +RewriteEngine on
> > +RewriteRule ^/packages/([^/]{1,2})([^/]*/(PKGBUILD|.*\.tar\.gz))$ /packages/$1/$1$2
> > +----
> > +
> > +The following equivalent rule can be used for lighttpd setups:
> > +
> > +----
> > +url.rewrite-once = ( "^/packages/([^/]{1,2})([^/]*/(PKGBUILD|.*\.tar\.gz))$" => "/packages/$1/$1$2" )
> > +----
> 
> I'm still -1 on this. I don't think we need to assume the contents of
> these directories in a rewrite rule, nor do I think it makes the rules
> any clearer. Can we please just use rules that don't make assumptions?

We need to make assumptions here. If we don't, there's no way to
determine whether a client tries to fetch the file "foo" from the upload
directory of package "fo" or the package upload directory of "foo" when
requesting "/packages/fo/foo". Of course, we could check for existence
of both files in that case and just use "/packages/fo/foo" if both of
them exist, but this is even more unpredictable and difficult to
implement. Keep in mind that this is a backward compatibility measure
only.

> 
> Does this even let me go to http://aur.archlinux.org/packages/gephi/
> correctly? I don't think it does.

No. I don't think that we do officially support directory listing,
thought. And as I pointed out before, this is impossible to implement.


More information about the aur-dev mailing list