aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWiedmeyer <wolfgit@wiedmeyer.de>2021-03-28 17:51:45 -0400
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2021-06-08 00:31:05 +0200
commit2294ad6623663c6d6c1424731d4cb7f84dfed91a (patch)
tree06e582ddef14a8db7726276be9c638829960514f
downloadetc_apache2-2294ad6623663c6d6c1424731d4cb7f84dfed91a.zip
etc_apache2-2294ad6623663c6d6c1424731d4cb7f84dfed91a.tar.gz
etc_apache2-2294ad6623663c6d6c1424731d4cb7f84dfed91a.tar.bz2
Initial import
I've sent a mail to Wolfgang asking for the permission to publish the files under the AGPLv3 (or later) license: I'd like to publish the /etc/apache2 configuration that you (Wolfgang) contributed to under the AGPLv3 license. If I recall well Wolfgang and me are the only contributors to that configuration (please do correct me if I'm wrong here). Can I publish it in git if I also add Wolfgang as an Author and say I did some changes later on? And in his reply Wolfgang agreed: sure, fine with me. Paul Kocialkowski also had access to the server before that but he doesn't seem to have modified the apache2 configuration. From #replicant on Freenode the 22 April 2021: [...] 18:08 <@GNUtoo> If that's not the issue the reality is that we didn't publish part of the Replicant source code: the apache2 redirect rules are missing 18:09 <@GNUtoo> I've already contacted paulk-leonov and Wolfgang for the permission to publish them [...] 18:45 <@paulk-leonov> GNUtoo: ah right I got an email about licensing for some files 18:45 <@paulk-leonov> does it needs an answer from me? 18:45 <@paulk-leonov> if so, about which files ? 18:46 <@paulk-leonov> I didn't recognize any that I may have authored, but maybe I forgot 19:18 <@GNUtoo> paulk-leonov: basically the config files in the server 19:18 <@GNUtoo> To save time, all the files that you touched there 19:19 <@GNUtoo> Some part of it is really crucial, like the apache2 redirects configuration, as it's somehow part of the Replicant source code but it hasn't been published yet. 19:24 <@GNUtoo> paulk-leonov: Also note that I'll publish it as I go (assuming I've also got Wolfgang's agrement), so I'll probably choose which free software license to use for each git as I work on it 19:24 <@GNUtoo> That's why it's a very wide request Joonas Kylmälä also got access to the server but I don't remember him doing extensive changes in the apache2 configuration. GNUtoo: reworked the redirects and minor changes Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
-rwxr-xr-x.etckeeper23
-rw-r--r--.gitignore65
-rw-r--r--COPYING661
-rw-r--r--README22
l---------conf-enabled/cgit.conf1
l---------conf-enabled/charset.conf1
l---------conf-enabled/javascript-common.conf1
l---------conf-enabled/localized-error-pages.conf1
l---------conf-enabled/other-vhosts-access-log.conf1
l---------conf-enabled/security.conf1
l---------conf-enabled/serve-cgi-bin.conf1
-rw-r--r--git-redirects/aosp-mirror.conf616
-rw-r--r--git-redirects/contrib.conf4
-rw-r--r--git-redirects/infrastructure.conf4
-rw-r--r--git-redirects/replicant-4.2.conf141
-rw-r--r--git-redirects/replicant-6.0.conf8
l---------mods-enabled/access_compat.load1
l---------mods-enabled/alias.conf1
l---------mods-enabled/alias.load1
l---------mods-enabled/auth_basic.load1
l---------mods-enabled/authn_core.load1
l---------mods-enabled/authn_file.load1
l---------mods-enabled/authz_core.load1
l---------mods-enabled/authz_host.load1
l---------mods-enabled/authz_user.load1
l---------mods-enabled/autoindex.conf1
l---------mods-enabled/autoindex.load1
l---------mods-enabled/cgid.conf1
l---------mods-enabled/cgid.load1
l---------mods-enabled/deflate.conf1
l---------mods-enabled/deflate.load1
l---------mods-enabled/dir.conf1
l---------mods-enabled/dir.load1
l---------mods-enabled/env.load1
l---------mods-enabled/filter.load1
l---------mods-enabled/headers.load1
l---------mods-enabled/mime.conf1
l---------mods-enabled/mime.load1
l---------mods-enabled/mpm_event.conf1
l---------mods-enabled/mpm_event.load1
l---------mods-enabled/negotiation.conf1
l---------mods-enabled/negotiation.load1
l---------mods-enabled/rewrite.load1
l---------mods-enabled/setenvif.conf1
l---------mods-enabled/setenvif.load1
l---------mods-enabled/socache_shmcb.load1
l---------mods-enabled/speling.load1
l---------mods-enabled/ssl.conf1
l---------mods-enabled/ssl.load1
l---------mods-enabled/status.conf1
l---------mods-enabled/status.load1
-rw-r--r--sites-available/autoconfig.replicant.us.conf26
-rw-r--r--sites-available/git.replicant.us.conf127
-rw-r--r--sites-available/letsencrypt.conf10
-rw-r--r--sites-available/libsamsung-ipc.replicant.us.conf13
l---------sites-enabled/autoconfig.replicant.us.conf1
l---------sites-enabled/git.replicant.us.conf1
l---------sites-enabled/letsencrypt.conf1
l---------sites-enabled/libsamsung-ipc.replicant.us.conf1
59 files changed, 1766 insertions, 0 deletions
diff --git a/.etckeeper b/.etckeeper
new file mode 100755
index 0000000..c314344
--- /dev/null
+++ b/.etckeeper
@@ -0,0 +1,23 @@
+# Generated by etckeeper. Do not edit.
+
+maybe chmod 0755 '.'
+maybe chmod 0700 '.etckeeper'
+maybe chmod 0644 '.gitignore'
+maybe chmod 0644 'COPYING'
+maybe chmod 0644 'README'
+maybe chmod 0755 'conf-available'
+maybe chmod 0755 'conf-enabled'
+maybe chmod 0755 'git-redirects'
+maybe chmod 0644 'git-redirects/aosp-mirror.conf'
+maybe chmod 0644 'git-redirects/contrib.conf'
+maybe chmod 0644 'git-redirects/infrastructure.conf'
+maybe chmod 0644 'git-redirects/replicant-4.2.conf'
+maybe chmod 0644 'git-redirects/replicant-6.0.conf'
+maybe chmod 0755 'mods-available'
+maybe chmod 0755 'mods-enabled'
+maybe chmod 0755 'sites-available'
+maybe chmod 0644 'sites-available/autoconfig.replicant.us.conf'
+maybe chmod 0644 'sites-available/git.replicant.us.conf'
+maybe chmod 0644 'sites-available/letsencrypt.conf'
+maybe chmod 0644 'sites-available/libsamsung-ipc.replicant.us.conf'
+maybe chmod 0755 'sites-enabled'
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..40001cb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,65 @@
+# Ignore distribution provided files
+/conf-available/**
+/mods-available/**
+/sites-available/000-default.conf
+/sites-available/default-ssl.conf
+/apache2.conf
+/apache2.conf.in
+/envvars
+/magic
+/ports.conf
+
+# begin section managed by etckeeper (do not edit this section by hand)
+
+# new and old versions of conffiles, stored by dpkg
+*.dpkg-*
+# new and old versions of conffiles, stored by ucf
+*.ucf-*
+
+# old versions of files
+*.old
+
+# mount(8) records system state here, no need to store these
+blkid.tab
+blkid.tab.old
+
+# some other files in /etc that typically do not need to be tracked
+nologin
+ld.so.cache
+prelink.cache
+mtab
+mtab.fuselock
+.pwd.lock
+*.LOCK
+network/run
+adjtime
+lvm/cache
+lvm/archive
+X11/xdm/authdir/authfiles/*
+ntp.conf.dhcp
+.initctl
+webmin/fsdump/*.status
+webmin/webmin/oscache
+apparmor.d/cache/*
+service/*/supervise/*
+service/*/log/supervise/*
+sv/*/supervise/*
+sv/*/log/supervise/*
+*.elc
+*.pyc
+*.pyo
+init.d/.depend.*
+openvpn/openvpn-status.log
+cups/subscriptions.conf
+cups/subscriptions.conf.O
+fake-hwclock.data
+check_mk/logwatch.state
+
+# editor temp files
+*~
+.*.sw?
+.sw?
+\#*\#
+DEADJOE
+
+# end section managed by etckeeper
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..be3f7b2
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,661 @@
+ GNU AFFERO GENERAL PUBLIC LICENSE
+ Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+ A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate. Many developers of free software are heartened and
+encouraged by the resulting cooperation. However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+ The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community. It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server. Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+ An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals. This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU Affero General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Remote Network Interaction; Use with the GNU General Public License.
+
+ Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software. This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source. For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code. There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+<https://www.gnu.org/licenses/>.
diff --git a/README b/README
new file mode 100644
index 0000000..0391ec8
--- /dev/null
+++ b/README
@@ -0,0 +1,22 @@
+== Description ==
+This Apache configuration is not only used to host websites like
+https://git.replicant.us or https://libsamsung-ipc.replicant.us but
+it is also an integral part of Replicant itself.
+
+This is because it contains many http redirect rules that are
+necessary for fetching the Replicant source code:
+- Repositories are sometimes moved around for various reasons
+ and the compatibility with older Replicant versions is kept
+ with redirect rules.
+- Some repositories mirrors like AOSP need to be redirected,
+ otherwise they would have to be renamed in the manifest
+ repository. Keeping them as-is enables us to automatically
+ integrate newer upstream changes. Without that git rebases
+ would often break, which would require us to manually
+ integrate upstream's changes instead.
+
+== Distributions ==
+Currently, Trisquel 8 is being used with that configuration.
+
+== License ==
+The license of all the files is the AGPLv3 or later.
diff --git a/conf-enabled/cgit.conf b/conf-enabled/cgit.conf
new file mode 120000
index 0000000..984faf6
--- /dev/null
+++ b/conf-enabled/cgit.conf
@@ -0,0 +1 @@
+../conf-available/cgit.conf \ No newline at end of file
diff --git a/conf-enabled/charset.conf b/conf-enabled/charset.conf
new file mode 120000
index 0000000..4a6ca08
--- /dev/null
+++ b/conf-enabled/charset.conf
@@ -0,0 +1 @@
+../conf-available/charset.conf \ No newline at end of file
diff --git a/conf-enabled/javascript-common.conf b/conf-enabled/javascript-common.conf
new file mode 120000
index 0000000..0a4baa4
--- /dev/null
+++ b/conf-enabled/javascript-common.conf
@@ -0,0 +1 @@
+../conf-available/javascript-common.conf \ No newline at end of file
diff --git a/conf-enabled/localized-error-pages.conf b/conf-enabled/localized-error-pages.conf
new file mode 120000
index 0000000..6e5ddaf
--- /dev/null
+++ b/conf-enabled/localized-error-pages.conf
@@ -0,0 +1 @@
+../conf-available/localized-error-pages.conf \ No newline at end of file
diff --git a/conf-enabled/other-vhosts-access-log.conf b/conf-enabled/other-vhosts-access-log.conf
new file mode 120000
index 0000000..8af91e5
--- /dev/null
+++ b/conf-enabled/other-vhosts-access-log.conf
@@ -0,0 +1 @@
+../conf-available/other-vhosts-access-log.conf \ No newline at end of file
diff --git a/conf-enabled/security.conf b/conf-enabled/security.conf
new file mode 120000
index 0000000..036c97f
--- /dev/null
+++ b/conf-enabled/security.conf
@@ -0,0 +1 @@
+../conf-available/security.conf \ No newline at end of file
diff --git a/conf-enabled/serve-cgi-bin.conf b/conf-enabled/serve-cgi-bin.conf
new file mode 120000
index 0000000..d917f68
--- /dev/null
+++ b/conf-enabled/serve-cgi-bin.conf
@@ -0,0 +1 @@
+../conf-available/serve-cgi-bin.conf \ No newline at end of file
diff --git a/git-redirects/aosp-mirror.conf b/git-redirects/aosp-mirror.conf
new file mode 100644
index 0000000..db5ebbe
--- /dev/null
+++ b/git-redirects/aosp-mirror.conf
@@ -0,0 +1,616 @@
+# To enable easy rebases, we need to enable the manifest to use paths like for
+# the AOSP mirror: git://replicant.us/AOSP-mirror/platform/tools/repohooks
+# but we are hosting platform_tools_repohooks.git and people are used to it.
+
+# TODO: make a rule that automatically convert platform/tools/repohooks
+# to platform_tools_repohooks, like the one below, but that doesn't
+# convert platform/tools/repohooks/tree to platform_tools_repohooks_tree
+# but platform_tools_repohooks/tree instead
+RewriteRule "^/AOSP-mirror/(.*)" "/mirrors/AOSP/$1" [R]
+# RewriteRule "^/mirrors/AOSP/(.*)/(.+)" "/mirrors/AOSP/$1_$2" [R]
+
+# The list below was generated with the following command (which needs to be
+# run in the directory that has the .git repositories):
+# ls -d *.git | sed 's#\.git$##' | awk '{save=$1 ; gsub("_", "/", $1); printf("Redirect /mirrors/AOSP/%s /mirrors/AOSP/%s\n", $1, save); }'
+# However we need to make an automatic redirect for all the repositories
+# instead: using a static list might work if we never ever add new
+# repositories, but as soon as we do, we will most likely forget to update that
+# list as most people aren't even aware that it exists.
+Redirect /mirrors/AOSP/device/common /mirrors/AOSP/device_common
+Redirect /mirrors/AOSP/device/generic/arm64 /mirrors/AOSP/device_generic_arm64
+Redirect /mirrors/AOSP/device/generic/armv7-a-neon /mirrors/AOSP/device_generic_armv7-a-neon
+Redirect /mirrors/AOSP/device/generic/car /mirrors/AOSP/device_generic_car
+Redirect /mirrors/AOSP/device/generic/common /mirrors/AOSP/device_generic_common
+Redirect /mirrors/AOSP/device/generic/goldfish-opengl /mirrors/AOSP/device_generic_goldfish-opengl
+Redirect /mirrors/AOSP/device/generic/mini-emulator-arm64 /mirrors/AOSP/device_generic_mini-emulator-arm64
+Redirect /mirrors/AOSP/device/generic/mini-emulator-armv7-a-neon /mirrors/AOSP/device_generic_mini-emulator-armv7-a-neon
+Redirect /mirrors/AOSP/device/generic/mini-emulator-mips /mirrors/AOSP/device_generic_mini-emulator-mips
+Redirect /mirrors/AOSP/device/generic/mini-emulator-x86_64 /mirrors/AOSP/device_generic_mini-emulator-x86_64
+Redirect /mirrors/AOSP/device/generic/mini-emulator-x86 /mirrors/AOSP/device_generic_mini-emulator-x86
+Redirect /mirrors/AOSP/device/generic/qemu /mirrors/AOSP/device_generic_qemu
+Redirect /mirrors/AOSP/device/generic/trusty /mirrors/AOSP/device_generic_trusty
+Redirect /mirrors/AOSP/device/generic/uml /mirrors/AOSP/device_generic_uml
+Redirect /mirrors/AOSP/device/generic/x86_64 /mirrors/AOSP/device_generic_x86_64
+Redirect /mirrors/AOSP/device/generic/x86 /mirrors/AOSP/device_generic_x86
+Redirect /mirrors/AOSP/device/google/accessory/arduino /mirrors/AOSP/device_google_accessory_arduino
+Redirect /mirrors/AOSP/device/google/accessory/demokit /mirrors/AOSP/device_google_accessory_demokit
+Redirect /mirrors/AOSP/device/google/atv /mirrors/AOSP/device_google_atv
+Redirect /mirrors/AOSP/device/google/contexthub /mirrors/AOSP/device_google_contexthub
+Redirect /mirrors/AOSP/device/sample /mirrors/AOSP/device_sample
+Redirect /mirrors/AOSP/kernel/build /mirrors/AOSP/kernel_build
+Redirect /mirrors/AOSP/kernel/configs /mirrors/AOSP/kernel_configs
+Redirect /mirrors/AOSP/kernel/tests /mirrors/AOSP/kernel_tests
+Redirect /mirrors/AOSP/platform/build/kati /mirrors/AOSP/platform_build_kati
+Redirect /mirrors/AOSP/platform/cts /mirrors/AOSP/platform_cts
+Redirect /mirrors/AOSP/platform/dalvik /mirrors/AOSP/platform_dalvik
+Redirect /mirrors/AOSP/platform/developers/build /mirrors/AOSP/platform_developers_build
+Redirect /mirrors/AOSP/platform/developers/samples/android /mirrors/AOSP/platform_developers_samples_android
+Redirect /mirrors/AOSP/platform/docs/source.android.com /mirrors/AOSP/platform_docs_source.android.com
+Redirect /mirrors/AOSP/platform/external/aac /mirrors/AOSP/platform_external_aac
+Redirect /mirrors/AOSP/platform/external/adeb /mirrors/AOSP/platform_external_adeb
+Redirect /mirrors/AOSP/platform/external/adhd /mirrors/AOSP/platform_external_adhd
+Redirect /mirrors/AOSP/platform/external/android-clat /mirrors/AOSP/platform_external_android-clat
+Redirect /mirrors/AOSP/platform/external/androidplot /mirrors/AOSP/platform_external_androidplot
+Redirect /mirrors/AOSP/platform/external/ant-glob /mirrors/AOSP/platform_external_ant-glob
+Redirect /mirrors/AOSP/platform/external/antlr /mirrors/AOSP/platform_external_antlr
+Redirect /mirrors/AOSP/platform/external/apache-commons-bcel /mirrors/AOSP/platform_external_apache-commons-bcel
+Redirect /mirrors/AOSP/platform/external/apache-commons-compress /mirrors/AOSP/platform_external_apache-commons-compress
+Redirect /mirrors/AOSP/platform/external/apache-commons-math /mirrors/AOSP/platform_external_apache-commons-math
+Redirect /mirrors/AOSP/platform/external/apache-harmony /mirrors/AOSP/platform_external_apache-harmony
+Redirect /mirrors/AOSP/platform/external/apache-http /mirrors/AOSP/platform_external_apache-http
+Redirect /mirrors/AOSP/platform/external/apache-xml /mirrors/AOSP/platform_external_apache-xml
+Redirect /mirrors/AOSP/platform/external/archive-patcher /mirrors/AOSP/platform_external_archive-patcher
+Redirect /mirrors/AOSP/platform/external/ARMComputeLibrary /mirrors/AOSP/platform_external_ARMComputeLibrary
+Redirect /mirrors/AOSP/platform/external/arm-neon-tests /mirrors/AOSP/platform_external_arm-neon-tests
+Redirect /mirrors/AOSP/platform/external/arm-optimized-routines /mirrors/AOSP/platform_external_arm-optimized-routines
+Redirect /mirrors/AOSP/platform/external/autotest /mirrors/AOSP/platform_external_autotest
+Redirect /mirrors/AOSP/platform/external/avb /mirrors/AOSP/platform_external_avb
+Redirect /mirrors/AOSP/platform/external/bcc /mirrors/AOSP/platform_external_bcc
+Redirect /mirrors/AOSP/platform/external/bison /mirrors/AOSP/platform_external_bison
+Redirect /mirrors/AOSP/platform/external/blktrace /mirrors/AOSP/platform_external_blktrace
+Redirect /mirrors/AOSP/platform/external/boringssl /mirrors/AOSP/platform_external_boringssl
+Redirect /mirrors/AOSP/platform/external/bouncycastle /mirrors/AOSP/platform_external_bouncycastle
+Redirect /mirrors/AOSP/platform/external/brotli /mirrors/AOSP/platform_external_brotli
+Redirect /mirrors/AOSP/platform/external/bsdiff /mirrors/AOSP/platform_external_bsdiff
+Redirect /mirrors/AOSP/platform/external/bzip2 /mirrors/AOSP/platform_external_bzip2
+Redirect /mirrors/AOSP/platform/external/caliper /mirrors/AOSP/platform_external_caliper
+Redirect /mirrors/AOSP/platform/external/capstone /mirrors/AOSP/platform_external_capstone
+Redirect /mirrors/AOSP/platform/external/catch2 /mirrors/AOSP/platform_external_catch2
+Redirect /mirrors/AOSP/platform/external/cblas /mirrors/AOSP/platform_external_cblas
+Redirect /mirrors/AOSP/platform/external/ceres-solver /mirrors/AOSP/platform_external_ceres-solver
+Redirect /mirrors/AOSP/platform/external/chromium-libpac /mirrors/AOSP/platform_external_chromium-libpac
+Redirect /mirrors/AOSP/platform/external/chromium-trace /mirrors/AOSP/platform_external_chromium-trace
+Redirect /mirrors/AOSP/platform/external/clang /mirrors/AOSP/platform_external_clang
+Redirect /mirrors/AOSP/platform/external/cmockery /mirrors/AOSP/platform_external_cmockery
+Redirect /mirrors/AOSP/platform/external/cn-cbor /mirrors/AOSP/platform_external_cn-cbor
+Redirect /mirrors/AOSP/platform/external/compiler-rt /mirrors/AOSP/platform_external_compiler-rt
+Redirect /mirrors/AOSP/platform/external/conscrypt /mirrors/AOSP/platform_external_conscrypt
+Redirect /mirrors/AOSP/platform/external/crcalc /mirrors/AOSP/platform_external_crcalc
+Redirect /mirrors/AOSP/platform/external/cros/system_api /mirrors/AOSP/platform_external_cros_system_api
+Redirect /mirrors/AOSP/platform/external/curl /mirrors/AOSP/platform_external_curl
+Redirect /mirrors/AOSP/platform/external/dagger2 /mirrors/AOSP/platform_external_dagger2
+Redirect /mirrors/AOSP/platform/external/deqp-deps/glslang /mirrors/AOSP/platform_external_deqp-deps_glslang
+Redirect /mirrors/AOSP/platform/external/deqp-deps/SPIRV-Headers /mirrors/AOSP/platform_external_deqp-deps_SPIRV-Headers
+Redirect /mirrors/AOSP/platform/external/deqp-deps/SPIRV-Tools /mirrors/AOSP/platform_external_deqp-deps_SPIRV-Tools
+Redirect /mirrors/AOSP/platform/external/deqp /mirrors/AOSP/platform_external_deqp
+Redirect /mirrors/AOSP/platform/external/desugar /mirrors/AOSP/platform_external_desugar
+Redirect /mirrors/AOSP/platform/external/dexmaker /mirrors/AOSP/platform_external_dexmaker
+Redirect /mirrors/AOSP/platform/external/dlmalloc /mirrors/AOSP/platform_external_dlmalloc
+Redirect /mirrors/AOSP/platform/external/dng_sdk /mirrors/AOSP/platform_external_dng_sdk
+Redirect /mirrors/AOSP/platform/external/dnsmasq /mirrors/AOSP/platform_external_dnsmasq
+Redirect /mirrors/AOSP/platform/external/doclava /mirrors/AOSP/platform_external_doclava
+Redirect /mirrors/AOSP/platform/external/dokka /mirrors/AOSP/platform_external_dokka
+Redirect /mirrors/AOSP/platform/external/donuts /mirrors/AOSP/platform_external_donuts
+Redirect /mirrors/AOSP/platform/external/drm/hwcomposer /mirrors/AOSP/platform_external_drm_hwcomposer
+Redirect /mirrors/AOSP/platform/external/droiddriver /mirrors/AOSP/platform_external_droiddriver
+Redirect /mirrors/AOSP/platform/external/drrickorang /mirrors/AOSP/platform_external_drrickorang
+Redirect /mirrors/AOSP/platform/external/dtc /mirrors/AOSP/platform_external_dtc
+Redirect /mirrors/AOSP/platform/external/dynamic_depth /mirrors/AOSP/platform_external_dynamic_depth
+Redirect /mirrors/AOSP/platform/external/easymock /mirrors/AOSP/platform_external_easymock
+Redirect /mirrors/AOSP/platform/external/eclipse-windowbuilder /mirrors/AOSP/platform_external_eclipse-windowbuilder
+Redirect /mirrors/AOSP/platform/external/eigen /mirrors/AOSP/platform_external_eigen
+Redirect /mirrors/AOSP/platform/external/elfutils /mirrors/AOSP/platform_external_elfutils
+Redirect /mirrors/AOSP/platform/external/embunit /mirrors/AOSP/platform_external_embunit
+Redirect /mirrors/AOSP/platform/external/emma /mirrors/AOSP/platform_external_emma
+Redirect /mirrors/AOSP/platform/external/epid-sdk /mirrors/AOSP/platform_external_epid-sdk
+Redirect /mirrors/AOSP/platform/external/error_prone /mirrors/AOSP/platform_external_error_prone
+Redirect /mirrors/AOSP/platform/external/esd /mirrors/AOSP/platform_external_esd
+Redirect /mirrors/AOSP/platform/external/expat /mirrors/AOSP/platform_external_expat
+Redirect /mirrors/AOSP/platform/external/eyes-free /mirrors/AOSP/platform_external_eyes-free
+Redirect /mirrors/AOSP/platform/external/f2fs-tools /mirrors/AOSP/platform_external_f2fs-tools
+Redirect /mirrors/AOSP/platform/external/fdlibm /mirrors/AOSP/platform_external_fdlibm
+Redirect /mirrors/AOSP/platform/external/fec /mirrors/AOSP/platform_external_fec
+Redirect /mirrors/AOSP/platform/external/fio /mirrors/AOSP/platform_external_fio
+Redirect /mirrors/AOSP/platform/external/flac /mirrors/AOSP/platform_external_flac
+Redirect /mirrors/AOSP/platform/external/flatbuffers /mirrors/AOSP/platform_external_flatbuffers
+Redirect /mirrors/AOSP/platform/external/fonttools /mirrors/AOSP/platform_external_fonttools
+Redirect /mirrors/AOSP/platform/external/freetype /mirrors/AOSP/platform_external_freetype
+Redirect /mirrors/AOSP/platform/external/fsck_msdos /mirrors/AOSP/platform_external_fsck_msdos
+Redirect /mirrors/AOSP/platform/external/fsverity-utils /mirrors/AOSP/platform_external_fsverity-utils
+Redirect /mirrors/AOSP/platform/external/gemmlowp /mirrors/AOSP/platform_external_gemmlowp
+Redirect /mirrors/AOSP/platform/external/gflags /mirrors/AOSP/platform_external_gflags
+Redirect /mirrors/AOSP/platform/external/giflib /mirrors/AOSP/platform_external_giflib
+Redirect /mirrors/AOSP/platform/external/glide /mirrors/AOSP/platform_external_glide
+Redirect /mirrors/AOSP/platform/external/golang-protobuf /mirrors/AOSP/platform_external_golang-protobuf
+Redirect /mirrors/AOSP/platform/external/google-benchmark /mirrors/AOSP/platform_external_google-benchmark
+Redirect /mirrors/AOSP/platform/external/google-breakpad /mirrors/AOSP/platform_external_google-breakpad
+Redirect /mirrors/AOSP/platform/external/google-fonts/arbutus-slab /mirrors/AOSP/platform_external_google-fonts_arbutus-slab
+Redirect /mirrors/AOSP/platform/external/google-fonts/arvo /mirrors/AOSP/platform_external_google-fonts_arvo
+Redirect /mirrors/AOSP/platform/external/google-fonts/carrois-gothic-sc /mirrors/AOSP/platform_external_google-fonts_carrois-gothic-sc
+Redirect /mirrors/AOSP/platform/external/google-fonts/coming-soon /mirrors/AOSP/platform_external_google-fonts_coming-soon
+Redirect /mirrors/AOSP/platform/external/google-fonts/cutive-mono /mirrors/AOSP/platform_external_google-fonts_cutive-mono
+Redirect /mirrors/AOSP/platform/external/google-fonts/dancing-script /mirrors/AOSP/platform_external_google-fonts_dancing-script
+Redirect /mirrors/AOSP/platform/external/google-fonts/lato /mirrors/AOSP/platform_external_google-fonts_lato
+Redirect /mirrors/AOSP/platform/external/google-fonts/rubik /mirrors/AOSP/platform_external_google-fonts_rubik
+Redirect /mirrors/AOSP/platform/external/google-fonts/source-sans-pro /mirrors/AOSP/platform_external_google-fonts_source-sans-pro
+Redirect /mirrors/AOSP/platform/external/google-fonts/zilla-slab /mirrors/AOSP/platform_external_google-fonts_zilla-slab
+Redirect /mirrors/AOSP/platform/external/google-fruit /mirrors/AOSP/platform_external_google-fruit
+Redirect /mirrors/AOSP/platform/external/google-styleguide /mirrors/AOSP/platform_external_google-styleguide
+Redirect /mirrors/AOSP/platform/external/googletest /mirrors/AOSP/platform_external_googletest
+Redirect /mirrors/AOSP/platform/external/google-tv-pairing-protocol /mirrors/AOSP/platform_external_google-tv-pairing-protocol
+Redirect /mirrors/AOSP/platform/external/grpc-grpc-java /mirrors/AOSP/platform_external_grpc-grpc-java
+Redirect /mirrors/AOSP/platform/external/grpc-grpc /mirrors/AOSP/platform_external_grpc-grpc
+Redirect /mirrors/AOSP/platform/external/gtest /mirrors/AOSP/platform_external_gtest
+Redirect /mirrors/AOSP/platform/external/guava /mirrors/AOSP/platform_external_guava
+Redirect /mirrors/AOSP/platform/external/guice /mirrors/AOSP/platform_external_guice
+Redirect /mirrors/AOSP/platform/external/hamcrest /mirrors/AOSP/platform_external_hamcrest
+Redirect /mirrors/AOSP/platform/external/harfbuzz_ng /mirrors/AOSP/platform_external_harfbuzz_ng
+Redirect /mirrors/AOSP/platform/external/honggfuzz /mirrors/AOSP/platform_external_honggfuzz
+Redirect /mirrors/AOSP/platform/external/hyphenation-patterns /mirrors/AOSP/platform_external_hyphenation-patterns
+Redirect /mirrors/AOSP/platform/external/image_io /mirrors/AOSP/platform_external_image_io
+Redirect /mirrors/AOSP/platform/external/ImageMagick /mirrors/AOSP/platform_external_ImageMagick
+Redirect /mirrors/AOSP/platform/external/ims /mirrors/AOSP/platform_external_ims
+Redirect /mirrors/AOSP/platform/external/iperf3 /mirrors/AOSP/platform_external_iperf3
+Redirect /mirrors/AOSP/platform/external/iproute2 /mirrors/AOSP/platform_external_iproute2
+Redirect /mirrors/AOSP/platform/external/ipsec-tools /mirrors/AOSP/platform_external_ipsec-tools
+Redirect /mirrors/AOSP/platform/external/iptables /mirrors/AOSP/platform_external_iptables
+Redirect /mirrors/AOSP/platform/external/iputils /mirrors/AOSP/platform_external_iputils
+Redirect /mirrors/AOSP/platform/external/iw /mirrors/AOSP/platform_external_iw
+Redirect /mirrors/AOSP/platform/external/jacoco /mirrors/AOSP/platform_external_jacoco
+Redirect /mirrors/AOSP/platform/external/jarjar /mirrors/AOSP/platform_external_jarjar
+Redirect /mirrors/AOSP/platform/external/javaparser /mirrors/AOSP/platform_external_javaparser
+Redirect /mirrors/AOSP/platform/external/javapoet /mirrors/AOSP/platform_external_javapoet
+Redirect /mirrors/AOSP/platform/external/javasqlite /mirrors/AOSP/platform_external_javasqlite
+Redirect /mirrors/AOSP/platform/external/javassist /mirrors/AOSP/platform_external_javassist
+Redirect /mirrors/AOSP/platform/external/jcommander /mirrors/AOSP/platform_external_jcommander
+Redirect /mirrors/AOSP/platform/external/jdiff /mirrors/AOSP/platform_external_jdiff
+Redirect /mirrors/AOSP/platform/external/jemalloc /mirrors/AOSP/platform_external_jemalloc
+Redirect /mirrors/AOSP/platform/external/jemalloc_new /mirrors/AOSP/platform_external_jemalloc_new
+Redirect /mirrors/AOSP/platform/external/jetty /mirrors/AOSP/platform_external_jetty
+Redirect /mirrors/AOSP/platform/external/jhead /mirrors/AOSP/platform_external_jhead
+Redirect /mirrors/AOSP/platform/external/jline /mirrors/AOSP/platform_external_jline
+Redirect /mirrors/AOSP/platform/external/jmdns /mirrors/AOSP/platform_external_jmdns
+Redirect /mirrors/AOSP/platform/external/jmonkeyengine /mirrors/AOSP/platform_external_jmonkeyengine
+Redirect /mirrors/AOSP/platform/external/jsilver /mirrors/AOSP/platform_external_jsilver
+Redirect /mirrors/AOSP/platform/external/jsmn /mirrors/AOSP/platform_external_jsmn
+Redirect /mirrors/AOSP/platform/external/jsoncpp /mirrors/AOSP/platform_external_jsoncpp
+Redirect /mirrors/AOSP/platform/external/jsr305 /mirrors/AOSP/platform_external_jsr305
+Redirect /mirrors/AOSP/platform/external/jsr330 /mirrors/AOSP/platform_external_jsr330
+Redirect /mirrors/AOSP/platform/external/junit /mirrors/AOSP/platform_external_junit
+Redirect /mirrors/AOSP/platform/external/junit-params /mirrors/AOSP/platform_external_junit-params
+Redirect /mirrors/AOSP/platform/external/kernel-headers /mirrors/AOSP/platform_external_kernel-headers
+Redirect /mirrors/AOSP/platform/external/kmod /mirrors/AOSP/platform_external_kmod
+Redirect /mirrors/AOSP/platform/external/kotlinc /mirrors/AOSP/platform_external_kotlinc
+Redirect /mirrors/AOSP/platform/external/ksoap2 /mirrors/AOSP/platform_external_ksoap2
+Redirect /mirrors/AOSP/platform/external/libaom /mirrors/AOSP/platform_external_libaom
+Redirect /mirrors/AOSP/platform/external/libavc /mirrors/AOSP/platform_external_libavc
+Redirect /mirrors/AOSP/platform/external/libbackup /mirrors/AOSP/platform_external_libbackup
+Redirect /mirrors/AOSP/platform/external/libbrillo /mirrors/AOSP/platform_external_libbrillo
+Redirect /mirrors/AOSP/platform/external/libcap /mirrors/AOSP/platform_external_libcap
+Redirect /mirrors/AOSP/platform/external/libcap-ng /mirrors/AOSP/platform_external_libcap-ng
+Redirect /mirrors/AOSP/platform/external/libchrome /mirrors/AOSP/platform_external_libchrome
+Redirect /mirrors/AOSP/platform/external/libcups /mirrors/AOSP/platform_external_libcups
+Redirect /mirrors/AOSP/platform/external/libcxxabi /mirrors/AOSP/platform_external_libcxxabi
+Redirect /mirrors/AOSP/platform/external/libcxx /mirrors/AOSP/platform_external_libcxx
+Redirect /mirrors/AOSP/platform/external/libdaemon /mirrors/AOSP/platform_external_libdaemon
+Redirect /mirrors/AOSP/platform/external/libdivsufsort /mirrors/AOSP/platform_external_libdivsufsort
+Redirect /mirrors/AOSP/platform/external/libdrm /mirrors/AOSP/platform_external_libdrm
+Redirect /mirrors/AOSP/platform/external/libedit /mirrors/AOSP/platform_external_libedit
+Redirect /mirrors/AOSP/platform/external/libese /mirrors/AOSP/platform_external_libese
+Redirect /mirrors/AOSP/platform/external/libevent /mirrors/AOSP/platform_external_libevent
+Redirect /mirrors/AOSP/platform/external/libexif /mirrors/AOSP/platform_external_libexif
+Redirect /mirrors/AOSP/platform/external/libffi /mirrors/AOSP/platform_external_libffi
+Redirect /mirrors/AOSP/platform/external/libgav1 /mirrors/AOSP/platform_external_libgav1
+Redirect /mirrors/AOSP/platform/external/libgsm /mirrors/AOSP/platform_external_libgsm
+Redirect /mirrors/AOSP/platform/external/libjpeg-turbo /mirrors/AOSP/platform_external_libjpeg-turbo
+Redirect /mirrors/AOSP/platform/external/libkmsxx /mirrors/AOSP/platform_external_libkmsxx
+Redirect /mirrors/AOSP/platform/external/libldac /mirrors/AOSP/platform_external_libldac
+Redirect /mirrors/AOSP/platform/external/liblzf /mirrors/AOSP/platform_external_liblzf
+Redirect /mirrors/AOSP/platform/external/libmpeg2 /mirrors/AOSP/platform_external_libmpeg2
+Redirect /mirrors/AOSP/platform/external/libmtp /mirrors/AOSP/platform_external_libmtp
+Redirect /mirrors/AOSP/platform/external/libnetfilter_conntrack /mirrors/AOSP/platform_external_libnetfilter_conntrack
+Redirect /mirrors/AOSP/platform/external/libnfnetlink /mirrors/AOSP/platform_external_libnfnetlink
+Redirect /mirrors/AOSP/platform/external/libnl /mirrors/AOSP/platform_external_libnl
+Redirect /mirrors/AOSP/platform/external/libogg /mirrors/AOSP/platform_external_libogg
+Redirect /mirrors/AOSP/platform/external/libopus /mirrors/AOSP/platform_external_libopus
+Redirect /mirrors/AOSP/platform/external/libpcap /mirrors/AOSP/platform_external_libpcap
+Redirect /mirrors/AOSP/platform/external/libphonenumber /mirrors/AOSP/platform_external_libphonenumber
+Redirect /mirrors/AOSP/platform/external/libpng /mirrors/AOSP/platform_external_libpng
+Redirect /mirrors/AOSP/platform/external/libprotobuf-mutator /mirrors/AOSP/platform_external_libprotobuf-mutator
+Redirect /mirrors/AOSP/platform/external/libunwind_llvm /mirrors/AOSP/platform_external_libunwind_llvm
+Redirect /mirrors/AOSP/platform/external/libunwind /mirrors/AOSP/platform_external_libunwind
+Redirect /mirrors/AOSP/platform/external/libusb-compat /mirrors/AOSP/platform_external_libusb-compat
+Redirect /mirrors/AOSP/platform/external/libusb /mirrors/AOSP/platform_external_libusb
+Redirect /mirrors/AOSP/platform/external/libutf /mirrors/AOSP/platform_external_libutf
+Redirect /mirrors/AOSP/platform/external/libvncserver /mirrors/AOSP/platform_external_libvncserver
+Redirect /mirrors/AOSP/platform/external/libvorbis /mirrors/AOSP/platform_external_libvorbis
+Redirect /mirrors/AOSP/platform/external/libvpx /mirrors/AOSP/platform_external_libvpx
+Redirect /mirrors/AOSP/platform/external/libvterm /mirrors/AOSP/platform_external_libvterm
+Redirect /mirrors/AOSP/platform/external/libxaac /mirrors/AOSP/platform_external_libxaac
+Redirect /mirrors/AOSP/platform/external/libxcam /mirrors/AOSP/platform_external_libxcam
+Redirect /mirrors/AOSP/platform/external/libxkbcommon /mirrors/AOSP/platform_external_libxkbcommon
+Redirect /mirrors/AOSP/platform/external/libxml2 /mirrors/AOSP/platform_external_libxml2
+Redirect /mirrors/AOSP/platform/external/libyuv /mirrors/AOSP/platform_external_libyuv
+Redirect /mirrors/AOSP/platform/external/linux-kselftest /mirrors/AOSP/platform_external_linux-kselftest
+Redirect /mirrors/AOSP/platform/external/littlemock /mirrors/AOSP/platform_external_littlemock
+Redirect /mirrors/AOSP/platform/external/lldb /mirrors/AOSP/platform_external_lldb
+Redirect /mirrors/AOSP/platform/external/lld /mirrors/AOSP/platform_external_lld
+Redirect /mirrors/AOSP/platform/external/llvm /mirrors/AOSP/platform_external_llvm
+Redirect /mirrors/AOSP/platform/external/lmfit /mirrors/AOSP/platform_external_lmfit
+Redirect /mirrors/AOSP/platform/external/ltp /mirrors/AOSP/platform_external_ltp
+Redirect /mirrors/AOSP/platform/external/ltrace /mirrors/AOSP/platform_external_ltrace
+Redirect /mirrors/AOSP/platform/external/lua /mirrors/AOSP/platform_external_lua
+Redirect /mirrors/AOSP/platform/external/lz4 /mirrors/AOSP/platform_external_lz4
+Redirect /mirrors/AOSP/platform/external/lzma /mirrors/AOSP/platform_external_lzma
+Redirect /mirrors/AOSP/platform/external/marisa-trie /mirrors/AOSP/platform_external_marisa-trie
+Redirect /mirrors/AOSP/platform/external/markdown /mirrors/AOSP/platform_external_markdown
+Redirect /mirrors/AOSP/platform/external/mdnsresponder /mirrors/AOSP/platform_external_mdnsresponder
+Redirect /mirrors/AOSP/platform/external/messageformat /mirrors/AOSP/platform_external_messageformat
+Redirect /mirrors/AOSP/platform/external/Microsoft-GSL /mirrors/AOSP/platform_external_Microsoft-GSL
+Redirect /mirrors/AOSP/platform/external/minigbm /mirrors/AOSP/platform_external_minigbm
+Redirect /mirrors/AOSP/platform/external/minijail /mirrors/AOSP/platform_external_minijail
+Redirect /mirrors/AOSP/platform/external/mockftpserver /mirrors/AOSP/platform_external_mockftpserver
+Redirect /mirrors/AOSP/platform/external/mockito /mirrors/AOSP/platform_external_mockito
+Redirect /mirrors/AOSP/platform/external/mockwebserver /mirrors/AOSP/platform_external_mockwebserver
+Redirect /mirrors/AOSP/platform/external/modp_b64 /mirrors/AOSP/platform_external_modp_b64
+Redirect /mirrors/AOSP/platform/external/mp4parser /mirrors/AOSP/platform_external_mp4parser
+Redirect /mirrors/AOSP/platform/external/mtpd /mirrors/AOSP/platform_external_mtpd
+Redirect /mirrors/AOSP/platform/external/nanohttpd /mirrors/AOSP/platform_external_nanohttpd
+Redirect /mirrors/AOSP/platform/external/nanopb-c /mirrors/AOSP/platform_external_nanopb-c
+Redirect /mirrors/AOSP/platform/external/naver-fonts /mirrors/AOSP/platform_external_naver-fonts
+Redirect /mirrors/AOSP/platform/external/neon_2_sse /mirrors/AOSP/platform_external_neon_2_sse
+Redirect /mirrors/AOSP/platform/external/netcat /mirrors/AOSP/platform_external_netcat
+Redirect /mirrors/AOSP/platform/external/netperf /mirrors/AOSP/platform_external_netperf
+Redirect /mirrors/AOSP/platform/external/neven /mirrors/AOSP/platform_external_neven
+Redirect /mirrors/AOSP/platform/external/newfs_msdos /mirrors/AOSP/platform_external_newfs_msdos
+Redirect /mirrors/AOSP/platform/external/nfacct /mirrors/AOSP/platform_external_nfacct
+Redirect /mirrors/AOSP/platform/external/nist-pkits /mirrors/AOSP/platform_external_nist-pkits
+Redirect /mirrors/AOSP/platform/external/nist-sip /mirrors/AOSP/platform_external_nist-sip
+Redirect /mirrors/AOSP/platform/external/nos/host/generic /mirrors/AOSP/platform_external_nos_host_generic
+Redirect /mirrors/AOSP/platform/external/noto-fonts /mirrors/AOSP/platform_external_noto-fonts
+Redirect /mirrors/AOSP/platform/external/oauth /mirrors/AOSP/platform_external_oauth
+Redirect /mirrors/AOSP/platform/external/objenesis /mirrors/AOSP/platform_external_objenesis
+Redirect /mirrors/AOSP/platform/external/oj-libjdwp /mirrors/AOSP/platform_external_oj-libjdwp
+Redirect /mirrors/AOSP/platform/external/okhttp /mirrors/AOSP/platform_external_okhttp
+Redirect /mirrors/AOSP/platform/external/one-true-awk /mirrors/AOSP/platform_external_one-true-awk
+Redirect /mirrors/AOSP/platform/external/opencensus-java /mirrors/AOSP/platform_external_opencensus-java
+Redirect /mirrors/AOSP/platform/external/opencv /mirrors/AOSP/platform_external_opencv
+Redirect /mirrors/AOSP/platform/external/openfst /mirrors/AOSP/platform_external_openfst
+Redirect /mirrors/AOSP/platform/external/owasp/sanitizer /mirrors/AOSP/platform_external_owasp_sanitizer
+Redirect /mirrors/AOSP/platform/external/parameter-framework /mirrors/AOSP/platform_external_parameter-framework
+Redirect /mirrors/AOSP/platform/external/pcre /mirrors/AOSP/platform_external_pcre
+Redirect /mirrors/AOSP/platform/external/pdfium /mirrors/AOSP/platform_external_pdfium
+Redirect /mirrors/AOSP/platform/external/perf_data_converter /mirrors/AOSP/platform_external_perf_data_converter
+Redirect /mirrors/AOSP/platform/external/perfetto /mirrors/AOSP/platform_external_perfetto
+Redirect /mirrors/AOSP/platform/external/piex /mirrors/AOSP/platform_external_piex
+Redirect /mirrors/AOSP/platform/external/ply /mirrors/AOSP/platform_external_ply
+Redirect /mirrors/AOSP/platform/external/ppp /mirrors/AOSP/platform_external_ppp
+Redirect /mirrors/AOSP/platform/external/proguard /mirrors/AOSP/platform_external_proguard
+Redirect /mirrors/AOSP/platform/external/protobuf-javalite /mirrors/AOSP/platform_external_protobuf-javalite
+Redirect /mirrors/AOSP/platform/external/protobuf /mirrors/AOSP/platform_external_protobuf
+Redirect /mirrors/AOSP/platform/external/puffin /mirrors/AOSP/platform_external_puffin
+Redirect /mirrors/AOSP/platform/external/python/apitools /mirrors/AOSP/platform_external_python_apitools
+Redirect /mirrors/AOSP/platform/external/python/cpython2 /mirrors/AOSP/platform_external_python_cpython2
+Redirect /mirrors/AOSP/platform/external/python/cpython3 /mirrors/AOSP/platform_external_python_cpython3
+Redirect /mirrors/AOSP/platform/external/python/dateutil /mirrors/AOSP/platform_external_python_dateutil
+Redirect /mirrors/AOSP/platform/external/python/funcsigs /mirrors/AOSP/platform_external_python_funcsigs
+Redirect /mirrors/AOSP/platform/external/python/futures /mirrors/AOSP/platform_external_python_futures
+Redirect /mirrors/AOSP/platform/external/python/google-api-python-client /mirrors/AOSP/platform_external_python_google-api-python-client
+Redirect /mirrors/AOSP/platform/external/python/httplib2 /mirrors/AOSP/platform_external_python_httplib2
+Redirect /mirrors/AOSP/platform/external/python/mock /mirrors/AOSP/platform_external_python_mock
+Redirect /mirrors/AOSP/platform/external/python/oauth2client /mirrors/AOSP/platform_external_python_oauth2client
+Redirect /mirrors/AOSP/platform/external/python/pyasn1 /mirrors/AOSP/platform_external_python_pyasn1
+Redirect /mirrors/AOSP/platform/external/python/pyasn1-modules /mirrors/AOSP/platform_external_python_pyasn1-modules
+Redirect /mirrors/AOSP/platform/external/python/rsa /mirrors/AOSP/platform_external_python_rsa
+Redirect /mirrors/AOSP/platform/external/python/setuptools /mirrors/AOSP/platform_external_python_setuptools
+Redirect /mirrors/AOSP/platform/external/python/six /mirrors/AOSP/platform_external_python_six
+Redirect /mirrors/AOSP/platform/external/python/uritemplates /mirrors/AOSP/platform_external_python_uritemplates
+Redirect /mirrors/AOSP/platform/external/rapidjson /mirrors/AOSP/platform_external_rapidjson
+Redirect /mirrors/AOSP/platform/external/rappor /mirrors/AOSP/platform_external_rappor
+Redirect /mirrors/AOSP/platform/external/Reactive-Extensions/RxCpp /mirrors/AOSP/platform_external_Reactive-Extensions_RxCpp
+Redirect /mirrors/AOSP/platform/external/regex-re2 /mirrors/AOSP/platform_external_regex-re2
+Redirect /mirrors/AOSP/platform/external/replicaisland /mirrors/AOSP/platform_external_replicaisland
+Redirect /mirrors/AOSP/platform/external/rmi4utils /mirrors/AOSP/platform_external_rmi4utils
+Redirect /mirrors/AOSP/platform/external/robolectric /mirrors/AOSP/platform_external_robolectric
+Redirect /mirrors/AOSP/platform/external/robolectric-shadows /mirrors/AOSP/platform_external_robolectric-shadows
+Redirect /mirrors/AOSP/platform/external/roboto-fonts /mirrors/AOSP/platform_external_roboto-fonts
+Redirect /mirrors/AOSP/platform/external/rootdev /mirrors/AOSP/platform_external_rootdev
+Redirect /mirrors/AOSP/platform/external/safe-iop /mirrors/AOSP/platform_external_safe-iop
+Redirect /mirrors/AOSP/platform/external/scapy /mirrors/AOSP/platform_external_scapy
+Redirect /mirrors/AOSP/platform/external/scrypt /mirrors/AOSP/platform_external_scrypt
+Redirect /mirrors/AOSP/platform/external/seccomp-tests /mirrors/AOSP/platform_external_seccomp-tests
+Redirect /mirrors/AOSP/platform/external/selinux /mirrors/AOSP/platform_external_selinux
+Redirect /mirrors/AOSP/platform/external/setupcompat /mirrors/AOSP/platform_external_setupcompat
+Redirect /mirrors/AOSP/platform/external/setupdesign /mirrors/AOSP/platform_external_setupdesign
+Redirect /mirrors/AOSP/platform/external/sfntly /mirrors/AOSP/platform_external_sfntly
+Redirect /mirrors/AOSP/platform/external/shaderc/spirv-headers /mirrors/AOSP/platform_external_shaderc_spirv-headers
+Redirect /mirrors/AOSP/platform/external/shflags /mirrors/AOSP/platform_external_shflags
+Redirect /mirrors/AOSP/platform/external/skia /mirrors/AOSP/platform_external_skia
+Redirect /mirrors/AOSP/platform/external/skqp /mirrors/AOSP/platform_external_skqp
+Redirect /mirrors/AOSP/platform/external/sl4a /mirrors/AOSP/platform_external_sl4a
+Redirect /mirrors/AOSP/platform/external/slf4j /mirrors/AOSP/platform_external_slf4j
+Redirect /mirrors/AOSP/platform/external/smali /mirrors/AOSP/platform_external_smali
+Redirect /mirrors/AOSP/platform/external/snakeyaml /mirrors/AOSP/platform_external_snakeyaml
+Redirect /mirrors/AOSP/platform/external/sonic /mirrors/AOSP/platform_external_sonic
+Redirect /mirrors/AOSP/platform/external/sonivox /mirrors/AOSP/platform_external_sonivox
+Redirect /mirrors/AOSP/platform/external/speex /mirrors/AOSP/platform_external_speex
+Redirect /mirrors/AOSP/platform/external/spirv-llvm /mirrors/AOSP/platform_external_spirv-llvm
+Redirect /mirrors/AOSP/platform/external/sqlite /mirrors/AOSP/platform_external_sqlite
+Redirect /mirrors/AOSP/platform/external/squashfs-tools /mirrors/AOSP/platform_external_squashfs-tools
+Redirect /mirrors/AOSP/platform/external/srtp /mirrors/AOSP/platform_external_srtp
+Redirect /mirrors/AOSP/platform/external/strace /mirrors/AOSP/platform_external_strace
+Redirect /mirrors/AOSP/platform/external/stressapptest /mirrors/AOSP/platform_external_stressapptest
+Redirect /mirrors/AOSP/platform/external/subsampling-scale-image-view /mirrors/AOSP/platform_external_subsampling-scale-image-view
+Redirect /mirrors/AOSP/platform/external/svox /mirrors/AOSP/platform_external_svox
+Redirect /mirrors/AOSP/platform/external/syzkaller /mirrors/AOSP/platform_external_syzkaller
+Redirect /mirrors/AOSP/platform/external/tagsoup /mirrors/AOSP/platform_external_tagsoup
+Redirect /mirrors/AOSP/platform/external/tcpdump /mirrors/AOSP/platform_external_tcpdump
+Redirect /mirrors/AOSP/platform/external/tensorflow /mirrors/AOSP/platform_external_tensorflow
+Redirect /mirrors/AOSP/platform/external/testng /mirrors/AOSP/platform_external_testng
+Redirect /mirrors/AOSP/platform/external/timezonepicker-support /mirrors/AOSP/platform_external_timezonepicker-support
+Redirect /mirrors/AOSP/platform/external/tinyxml2 /mirrors/AOSP/platform_external_tinyxml2
+Redirect /mirrors/AOSP/platform/external/tinyxml /mirrors/AOSP/platform_external_tinyxml
+Redirect /mirrors/AOSP/platform/external/toolchain-utils /mirrors/AOSP/platform_external_toolchain-utils
+Redirect /mirrors/AOSP/platform/external/tremolo /mirrors/AOSP/platform_external_tremolo
+Redirect /mirrors/AOSP/platform/external/turbine /mirrors/AOSP/platform_external_turbine
+Redirect /mirrors/AOSP/platform/external/u-boot /mirrors/AOSP/platform_external_u-boot
+Redirect /mirrors/AOSP/platform/external/ukey2 /mirrors/AOSP/platform_external_ukey2
+Redirect /mirrors/AOSP/platform/external/unicode /mirrors/AOSP/platform_external_unicode
+Redirect /mirrors/AOSP/platform/external/universal-tween-engine /mirrors/AOSP/platform_external_universal-tween-engine
+Redirect /mirrors/AOSP/platform/external/v4l2_codec2 /mirrors/AOSP/platform_external_v4l2_codec2
+Redirect /mirrors/AOSP/platform/external/v8 /mirrors/AOSP/platform_external_v8
+Redirect /mirrors/AOSP/platform/external/valgrind /mirrors/AOSP/platform_external_valgrind
+Redirect /mirrors/AOSP/platform/external/vboot_reference /mirrors/AOSP/platform_external_vboot_reference
+Redirect /mirrors/AOSP/platform/external/virglrenderer /mirrors/AOSP/platform_external_virglrenderer
+Redirect /mirrors/AOSP/platform/external/vixl /mirrors/AOSP/platform_external_vixl
+Redirect /mirrors/AOSP/platform/external/vogar /mirrors/AOSP/platform_external_vogar
+Redirect /mirrors/AOSP/platform/external/volley /mirrors/AOSP/platform_external_volley
+Redirect /mirrors/AOSP/platform/external/vulkan-headers /mirrors/AOSP/platform_external_vulkan-headers
+Redirect /mirrors/AOSP/platform/external/vulkan-validation-layers /mirrors/AOSP/platform_external_vulkan-validation-layers
+Redirect /mirrors/AOSP/platform/external/walt /mirrors/AOSP/platform_external_walt
+Redirect /mirrors/AOSP/platform/external/wayland /mirrors/AOSP/platform_external_wayland
+Redirect /mirrors/AOSP/platform/external/wayland-protocols /mirrors/AOSP/platform_external_wayland-protocols
+Redirect /mirrors/AOSP/platform/external/webp /mirrors/AOSP/platform_external_webp
+Redirect /mirrors/AOSP/platform/external/webrtc /mirrors/AOSP/platform_external_webrtc
+Redirect /mirrors/AOSP/platform/external/wpa_supplicant_8 /mirrors/AOSP/platform_external_wpa_supplicant_8
+Redirect /mirrors/AOSP/platform/external/wycheproof /mirrors/AOSP/platform_external_wycheproof
+Redirect /mirrors/AOSP/platform/external/xmlwriter /mirrors/AOSP/platform_external_xmlwriter
+Redirect /mirrors/AOSP/platform/external/xmp_toolkit /mirrors/AOSP/platform_external_xmp_toolkit
+Redirect /mirrors/AOSP/platform/external/xz-embedded /mirrors/AOSP/platform_external_xz-embedded
+Redirect /mirrors/AOSP/platform/external/xz-java /mirrors/AOSP/platform_external_xz-java
+Redirect /mirrors/AOSP/platform/external/yapf /mirrors/AOSP/platform_external_yapf
+Redirect /mirrors/AOSP/platform/external/zlib /mirrors/AOSP/platform_external_zlib
+Redirect /mirrors/AOSP/platform/external/zopfli /mirrors/AOSP/platform_external_zopfli
+Redirect /mirrors/AOSP/platform/external/zxing /mirrors/AOSP/platform_external_zxing
+Redirect /mirrors/AOSP/platform/frameworks/compile/libbcc /mirrors/AOSP/platform_frameworks_compile_libbcc
+Redirect /mirrors/AOSP/platform/frameworks/compile/mclinker /mirrors/AOSP/platform_frameworks_compile_mclinker
+Redirect /mirrors/AOSP/platform/frameworks/compile/slang /mirrors/AOSP/platform_frameworks_compile_slang
+Redirect /mirrors/AOSP/platform/frameworks/data-binding /mirrors/AOSP/platform_frameworks_data-binding
+Redirect /mirrors/AOSP/platform/frameworks/ex /mirrors/AOSP/platform_frameworks_ex
+Redirect /mirrors/AOSP/platform/frameworks/hardware/interfaces /mirrors/AOSP/platform_frameworks_hardware_interfaces
+Redirect /mirrors/AOSP/platform/frameworks/layoutlib /mirrors/AOSP/platform_frameworks_layoutlib
+Redirect /mirrors/AOSP/platform/frameworks/minikin /mirrors/AOSP/platform_frameworks_minikin
+Redirect /mirrors/AOSP/platform/frameworks/ml /mirrors/AOSP/platform_frameworks_ml
+Redirect /mirrors/AOSP/platform/frameworks/multidex /mirrors/AOSP/platform_frameworks_multidex
+Redirect /mirrors/AOSP/platform/frameworks/opt/bitmap /mirrors/AOSP/platform_frameworks_opt_bitmap
+Redirect /mirrors/AOSP/platform/frameworks/opt/calendar /mirrors/AOSP/platform_frameworks_opt_calendar
+Redirect /mirrors/AOSP/platform/frameworks/opt/car/services /mirrors/AOSP/platform_frameworks_opt_car_services
+Redirect /mirrors/AOSP/platform/frameworks/opt/car/setupwizard /mirrors/AOSP/platform_frameworks_opt_car_setupwizard
+Redirect /mirrors/AOSP/platform/frameworks/opt/chips /mirrors/AOSP/platform_frameworks_opt_chips
+Redirect /mirrors/AOSP/platform/frameworks/opt/colorpicker /mirrors/AOSP/platform_frameworks_opt_colorpicker
+Redirect /mirrors/AOSP/platform/frameworks/opt/gamesdk /mirrors/AOSP/platform_frameworks_opt_gamesdk
+Redirect /mirrors/AOSP/platform/frameworks/opt/inputconnectioncommon /mirrors/AOSP/platform_frameworks_opt_inputconnectioncommon
+Redirect /mirrors/AOSP/platform/frameworks/opt/net/ethernet /mirrors/AOSP/platform_frameworks_opt_net_ethernet
+Redirect /mirrors/AOSP/platform/frameworks/opt/net/ike /mirrors/AOSP/platform_frameworks_opt_net_ike
+Redirect /mirrors/AOSP/platform/frameworks/opt/net/ims /mirrors/AOSP/platform_frameworks_opt_net_ims
+Redirect /mirrors/AOSP/platform/frameworks/opt/net/voip /mirrors/AOSP/platform_frameworks_opt_net_voip
+Redirect /mirrors/AOSP/platform/frameworks/opt/photoviewer /mirrors/AOSP/platform_frameworks_opt_photoviewer
+Redirect /mirrors/AOSP/platform/frameworks/opt/setupwizard /mirrors/AOSP/platform_frameworks_opt_setupwizard
+Redirect /mirrors/AOSP/platform/frameworks/opt/vcard /mirrors/AOSP/platform_frameworks_opt_vcard
+Redirect /mirrors/AOSP/platform/frameworks/rs /mirrors/AOSP/platform_frameworks_rs
+Redirect /mirrors/AOSP/platform/frameworks/wilhelm /mirrors/AOSP/platform_frameworks_wilhelm
+Redirect /mirrors/AOSP/platform/hardware/broadcom/wlan /mirrors/AOSP/platform_hardware_broadcom_wlan
+Redirect /mirrors/AOSP/platform/hardware/google/apf /mirrors/AOSP/platform_hardware_google_apf
+Redirect /mirrors/AOSP/platform/hardware/google/av /mirrors/AOSP/platform_hardware_google_av
+Redirect /mirrors/AOSP/platform/hardware/google/easel /mirrors/AOSP/platform_hardware_google_easel
+Redirect /mirrors/AOSP/platform/hardware/google/interfaces /mirrors/AOSP/platform_hardware_google_interfaces
+Redirect /mirrors/AOSP/platform/hardware/google/pixel /mirrors/AOSP/platform_hardware_google_pixel
+Redirect /mirrors/AOSP/platform/hardware/google/pixel-sepolicy /mirrors/AOSP/platform_hardware_google_pixel-sepolicy
+Redirect /mirrors/AOSP/platform/hardware/intel/audio/media /mirrors/AOSP/platform_hardware_intel_audio_media
+Redirect /mirrors/AOSP/platform/hardware/intel/bootstub /mirrors/AOSP/platform_hardware_intel_bootstub
+Redirect /mirrors/AOSP/platform/hardware/intel/common/bd/prov /mirrors/AOSP/platform_hardware_intel_common_bd_prov
+Redirect /mirrors/AOSP/platform/hardware/intel/common/libstagefrighthw /mirrors/AOSP/platform_hardware_intel_common_libstagefrighthw
+Redirect /mirrors/AOSP/platform/hardware/intel/common/utils /mirrors/AOSP/platform_hardware_intel_common_utils
+Redirect /mirrors/AOSP/platform/hardware/intel/common/wrs/omxil/core /mirrors/AOSP/platform_hardware_intel_common_wrs_omxil_core
+Redirect /mirrors/AOSP/platform/hardware/intel/sensors /mirrors/AOSP/platform_hardware_intel_sensors
+Redirect /mirrors/AOSP/platform/hardware/invensense /mirrors/AOSP/platform_hardware_invensense
+Redirect /mirrors/AOSP/platform/hardware/marvell/bt /mirrors/AOSP/platform_hardware_marvell_bt
+Redirect /mirrors/AOSP/platform/hardware/nxp/secure_element /mirrors/AOSP/platform_hardware_nxp_secure_element
+Redirect /mirrors/AOSP/platform/hardware/qcom/camera /mirrors/AOSP/platform_hardware_qcom_camera
+Redirect /mirrors/AOSP/platform/hardware/qcom/msm8960 /mirrors/AOSP/platform_hardware_qcom_msm8960
+Redirect /mirrors/AOSP/platform/hardware/qcom/msm8994 /mirrors/AOSP/platform_hardware_qcom_msm8994
+Redirect /mirrors/AOSP/platform/hardware/qcom/msm8x26 /mirrors/AOSP/platform_hardware_qcom_msm8x26
+Redirect /mirrors/AOSP/platform/hardware/qcom/msm8x27 /mirrors/AOSP/platform_hardware_qcom_msm8x27
+Redirect /mirrors/AOSP/platform/hardware/qcom/msm8x74 /mirrors/AOSP/platform_hardware_qcom_msm8x74
+Redirect /mirrors/AOSP/platform/hardware/qcom/msm8x84 /mirrors/AOSP/platform_hardware_qcom_msm8x84
+Redirect /mirrors/AOSP/platform/hardware/qcom/neuralnetworks/hvxservice /mirrors/AOSP/platform_hardware_qcom_neuralnetworks_hvxservice
+Redirect /mirrors/AOSP/platform/hardware/qcom/sdm845/bt /mirrors/AOSP/platform_hardware_qcom_sdm845_bt
+Redirect /mirrors/AOSP/platform/hardware/qcom/sdm845/data/ipacfg-mgr /mirrors/AOSP/platform_hardware_qcom_sdm845_data_ipacfg-mgr
+Redirect /mirrors/AOSP/platform/hardware/qcom/sdm845/gps /mirrors/AOSP/platform_hardware_qcom_sdm845_gps
+Redirect /mirrors/AOSP/platform/hardware/qcom/sdm845/media /mirrors/AOSP/platform_hardware_qcom_sdm845_media
+Redirect /mirrors/AOSP/platform/hardware/qcom/sdm845/thermal /mirrors/AOSP/platform_hardware_qcom_sdm845_thermal
+Redirect /mirrors/AOSP/platform/hardware/qcom/sdm845/vr /mirrors/AOSP/platform_hardware_qcom_sdm845_vr
+Redirect /mirrors/AOSP/platform/hardware/qcom/sm8150/data/ipacfg-mgr /mirrors/AOSP/platform_hardware_qcom_sm8150_data_ipacfg-mgr
+Redirect /mirrors/AOSP/platform/hardware/qcom/sm8150/display /mirrors/AOSP/platform_hardware_qcom_sm8150_display
+Redirect /mirrors/AOSP/platform/hardware/qcom/sm8150/gps /mirrors/AOSP/platform_hardware_qcom_sm8150_gps
+Redirect /mirrors/AOSP/platform/hardware/qcom/sm8150/media /mirrors/AOSP/platform_hardware_qcom_sm8150_media
+Redirect /mirrors/AOSP/platform/hardware/qcom/sm8150/thermal /mirrors/AOSP/platform_hardware_qcom_sm8150_thermal
+Redirect /mirrors/AOSP/platform/hardware/qcom/sm8150/vr /mirrors/AOSP/platform_hardware_qcom_sm8150_vr
+Redirect /mirrors/AOSP/platform/hardware/qcom/wlan /mirrors/AOSP/platform_hardware_qcom_wlan
+Redirect /mirrors/AOSP/platform/hardware/st/nfc /mirrors/AOSP/platform_hardware_st_nfc
+Redirect /mirrors/AOSP/platform/hardware/st/secure_element /mirrors/AOSP/platform_hardware_st_secure_element
+Redirect /mirrors/AOSP/platform/hardware/ti/am57x /mirrors/AOSP/platform_hardware_ti_am57x
+Redirect /mirrors/AOSP/platform/hardware/ti/omap3 /mirrors/AOSP/platform_hardware_ti_omap3
+Redirect /mirrors/AOSP/platform/hardware/ti/omap4-aah /mirrors/AOSP/platform_hardware_ti_omap4-aah
+Redirect /mirrors/AOSP/platform/libcore /mirrors/AOSP/platform_libcore
+Redirect /mirrors/AOSP/platform/libnativehelper /mirrors/AOSP/platform_libnativehelper
+Redirect /mirrors/AOSP/platform/ndk /mirrors/AOSP/platform_ndk
+Redirect /mirrors/AOSP/platform/packages/apps/Car/Cluster /mirrors/AOSP/platform_packages_apps_Car_Cluster
+Redirect /mirrors/AOSP/platform/packages/apps/Car/CompanionDeviceSupport /mirrors/AOSP/platform_packages_apps_Car_CompanionDeviceSupport
+Redirect /mirrors/AOSP/platform/packages/apps/Car/Dialer /mirrors/AOSP/platform_packages_apps_Car_Dialer
+Redirect /mirrors/AOSP/platform/packages/apps/Car/externallibs /mirrors/AOSP/platform_packages_apps_Car_externallibs
+Redirect /mirrors/AOSP/platform/packages/apps/Car/Hvac /mirrors/AOSP/platform_packages_apps_Car_Hvac
+Redirect /mirrors/AOSP/platform/packages/apps/Car/LatinIME /mirrors/AOSP/platform_packages_apps_Car_LatinIME
+Redirect /mirrors/AOSP/platform/packages/apps/Car/Launcher /mirrors/AOSP/platform_packages_apps_Car_Launcher
+Redirect /mirrors/AOSP/platform/packages/apps/Car/LensPicker /mirrors/AOSP/platform_packages_apps_Car_LensPicker
+Redirect /mirrors/AOSP/platform/packages/apps/Car/libs /mirrors/AOSP/platform_packages_apps_Car_libs
+Redirect /mirrors/AOSP/platform/packages/apps/Car/LinkViewer /mirrors/AOSP/platform_packages_apps_Car_LinkViewer
+Redirect /mirrors/AOSP/platform/packages/apps/Car/LocalMediaPlayer /mirrors/AOSP/platform_packages_apps_Car_LocalMediaPlayer
+Redirect /mirrors/AOSP/platform/packages/apps/Car/Media /mirrors/AOSP/platform_packages_apps_Car_Media
+Redirect /mirrors/AOSP/platform/packages/apps/Car/Messenger /mirrors/AOSP/platform_packages_apps_Car_Messenger
+Redirect /mirrors/AOSP/platform/packages/apps/Car/Notification /mirrors/AOSP/platform_packages_apps_Car_Notification
+Redirect /mirrors/AOSP/platform/packages/apps/Car/Overview /mirrors/AOSP/platform_packages_apps_Car_Overview
+Redirect /mirrors/AOSP/platform/packages/apps/Car/Radio /mirrors/AOSP/platform_packages_apps_Car_Radio
+Redirect /mirrors/AOSP/platform/packages/apps/Car/Settings /mirrors/AOSP/platform_packages_apps_Car_Settings
+Redirect /mirrors/AOSP/platform/packages/apps/Car/Stream /mirrors/AOSP/platform_packages_apps_Car_Stream
+Redirect /mirrors/AOSP/platform/packages/apps/Car/SystemUpdater /mirrors/AOSP/platform_packages_apps_Car_SystemUpdater
+Redirect /mirrors/AOSP/platform/packages/apps/Car/tests /mirrors/AOSP/platform_packages_apps_Car_tests
+Redirect /mirrors/AOSP/platform/packages/apps/Gallery /mirrors/AOSP/platform_packages_apps_Gallery
+Redirect /mirrors/AOSP/platform/packages/apps/OneTimeInitializer /mirrors/AOSP/platform_packages_apps_OneTimeInitializer
+Redirect /mirrors/AOSP/platform/packages/apps/Provision /mirrors/AOSP/platform_packages_apps_Provision
+Redirect /mirrors/AOSP/platform/packages/apps/SampleLocationAttribution /mirrors/AOSP/platform_packages_apps_SampleLocationAttribution
+Redirect /mirrors/AOSP/platform/packages/apps/Test/connectivity /mirrors/AOSP/platform_packages_apps_Test_connectivity
+Redirect /mirrors/AOSP/platform/packages/apps/UniversalMediaPlayer /mirrors/AOSP/platform_packages_apps_UniversalMediaPlayer
+Redirect /mirrors/AOSP/platform/packages/inputmethods/LeanbackIME /mirrors/AOSP/platform_packages_inputmethods_LeanbackIME
+Redirect /mirrors/AOSP/platform/packages/modules/ExtServices /mirrors/AOSP/platform_packages_modules_ExtServices
+Redirect /mirrors/AOSP/platform/packages/modules/ModuleMetadata /mirrors/AOSP/platform_packages_modules_ModuleMetadata
+Redirect /mirrors/AOSP/platform/packages/modules/NetworkPermissionConfig /mirrors/AOSP/platform_packages_modules_NetworkPermissionConfig
+Redirect /mirrors/AOSP/platform/packages/modules/NetworkStack /mirrors/AOSP/platform_packages_modules_NetworkStack
+Redirect /mirrors/AOSP/platform/packages/modules/TestModule /mirrors/AOSP/platform_packages_modules_TestModule
+Redirect /mirrors/AOSP/platform/packages/services/AlternativeNetworkAccess /mirrors/AOSP/platform_packages_services_AlternativeNetworkAccess
+Redirect /mirrors/AOSP/platform/packages/services/Car /mirrors/AOSP/platform_packages_services_Car
+Redirect /mirrors/AOSP/platform/pdk /mirrors/AOSP/platform_pdk
+Redirect /mirrors/AOSP/platform/platform/testing /mirrors/AOSP/platform_platform_testing
+Redirect /mirrors/AOSP/platform/prebuilts/abi-dumps/ndk /mirrors/AOSP/platform_prebuilts_abi-dumps_ndk
+Redirect /mirrors/AOSP/platform/prebuilts/abi-dumps/vndk /mirrors/AOSP/platform_prebuilts_abi-dumps_vndk
+Redirect /mirrors/AOSP/platform/prebuilts/android-emulator /mirrors/AOSP/platform_prebuilts_android-emulator
+Redirect /mirrors/AOSP/platform/prebuilts/asuite /mirrors/AOSP/platform_prebuilts_asuite
+Redirect /mirrors/AOSP/platform/prebuilts/bundletool /mirrors/AOSP/platform_prebuilts_bundletool
+Redirect /mirrors/AOSP/platform/prebuilts/checkcolor /mirrors/AOSP/platform_prebuilts_checkcolor
+Redirect /mirrors/AOSP/platform/prebuilts/checkstyle /mirrors/AOSP/platform_prebuilts_checkstyle
+Redirect /mirrors/AOSP/platform/prebuilts/clang/host/darwin-x86 /mirrors/AOSP/platform_prebuilts_clang_host_darwin-x86
+Redirect /mirrors/AOSP/platform/prebuilts/clang/host/linux-x86 /mirrors/AOSP/platform_prebuilts_clang_host_linux-x86
+Redirect /mirrors/AOSP/platform/prebuilts/clang-tools /mirrors/AOSP/platform_prebuilts_clang-tools
+Redirect /mirrors/AOSP/platform/prebuilts/devtools /mirrors/AOSP/platform_prebuilts_devtools
+Redirect /mirrors/AOSP/platform/prebuilts/eclipse-build-deps /mirrors/AOSP/platform_prebuilts_eclipse-build-deps
+Redirect /mirrors/AOSP/platform/prebuilts/eclipse /mirrors/AOSP/platform_prebuilts_eclipse
+Redirect /mirrors/AOSP/platform/prebuilts/fuchsia_sdk /mirrors/AOSP/platform_prebuilts_fuchsia_sdk
+Redirect /mirrors/AOSP/platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1 /mirrors/AOSP/platform_prebuilts_gcc_darwin-x86_host_i686-apple-darwin-4.2.1
+Redirect /mirrors/AOSP/platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9 /mirrors/AOSP/platform_prebuilts_gcc_darwin-x86_x86_x86_64-linux-android-4.9
+Redirect /mirrors/AOSP/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9 /mirrors/AOSP/platform_prebuilts_gcc_linux-x86_aarch64_aarch64-linux-android-4.9
+Redirect /mirrors/AOSP/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9 /mirrors/AOSP/platform_prebuilts_gcc_linux-x86_arm_arm-linux-androideabi-4.9
+Redirect /mirrors/AOSP/platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8 /mirrors/AOSP/platform_prebuilts_gcc_linux-x86_host_x86_64-linux-glibc2.17-4.8
+Redirect /mirrors/AOSP/platform/prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8 /mirrors/AOSP/platform_prebuilts_gcc_linux-x86_host_x86_64-w64-mingw32-4.8
+Redirect /mirrors/AOSP/platform/prebuilts/gcc/linux-x86/mips/mips64el-linux-android-4.9 /mirrors/AOSP/platform_prebuilts_gcc_linux-x86_mips_mips64el-linux-android-4.9
+Redirect /mirrors/AOSP/platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9 /mirrors/AOSP/platform_prebuilts_gcc_linux-x86_x86_x86_64-linux-android-4.9
+Redirect /mirrors/AOSP/platform/prebuilts/gdb/darwin-x86 /mirrors/AOSP/platform_prebuilts_gdb_darwin-x86
+Redirect /mirrors/AOSP/platform/prebuilts/gdb/linux-x86 /mirrors/AOSP/platform_prebuilts_gdb_linux-x86
+Redirect /mirrors/AOSP/platform/prebuilts/go/darwin-x86 /mirrors/AOSP/platform_prebuilts_go_darwin-x86
+Redirect /mirrors/AOSP/platform/prebuilts/go/linux-x86 /mirrors/AOSP/platform_prebuilts_go_linux-x86
+Redirect /mirrors/AOSP/platform/prebuilts/gradle-plugin /mirrors/AOSP/platform_prebuilts_gradle-plugin
+Redirect /mirrors/AOSP/platform/prebuilts/jdk/jdk8 /mirrors/AOSP/platform_prebuilts_jdk_jdk8
+Redirect /mirrors/AOSP/platform/prebuilts/jdk/jdk9 /mirrors/AOSP/platform_prebuilts_jdk_jdk9
+Redirect /mirrors/AOSP/platform/prebuilts/ktlint /mirrors/AOSP/platform_prebuilts_ktlint
+Redirect /mirrors/AOSP/platform/prebuilts/libs/libedit /mirrors/AOSP/platform_prebuilts_libs_libedit
+Redirect /mirrors/AOSP/platform/prebuilts/manifest-merger /mirrors/AOSP/platform_prebuilts_manifest-merger
+Redirect /mirrors/AOSP/platform/prebuilts/maven_repo/android /mirrors/AOSP/platform_prebuilts_maven_repo_android
+Redirect /mirrors/AOSP/platform/prebuilts/maven_repo/bumptech /mirrors/AOSP/platform_prebuilts_maven_repo_bumptech
+Redirect /mirrors/AOSP/platform/prebuilts/misc /mirrors/AOSP/platform_prebuilts_misc
+Redirect /mirrors/AOSP/platform/prebuilts/ndk /mirrors/AOSP/platform_prebuilts_ndk
+Redirect /mirrors/AOSP/platform/prebuilts/build-tools /mirrors/AOSP/platform_prebuilts_build-tools
+Redirect /mirrors/AOSP/platform/prebuilts/python/darwin-x86/2.7.5 /mirrors/AOSP/platform_prebuilts_python_darwin-x86_2.7.5
+Redirect /mirrors/AOSP/platform/prebuilts/python/linux-x86/2.7.5 /mirrors/AOSP/platform_prebuilts_python_linux-x86_2.7.5
+Redirect /mirrors/AOSP/platform/prebuilts/qemu-kernel /mirrors/AOSP/platform_prebuilts_qemu-kernel
+Redirect /mirrors/AOSP/platform/prebuilts/sdk /mirrors/AOSP/platform_prebuilts_sdk
+Redirect /mirrors/AOSP/platform/prebuilts/tools /mirrors/AOSP/platform_prebuilts_tools
+Redirect /mirrors/AOSP/platform/prebuilts/vndk/v27 /mirrors/AOSP/platform_prebuilts_vndk_v27
+Redirect /mirrors/AOSP/platform/prebuilts/vndk/v28 /mirrors/AOSP/platform_prebuilts_vndk_v28
+Redirect /mirrors/AOSP/platform/sdk /mirrors/AOSP/platform_sdk
+Redirect /mirrors/AOSP/platform/system/apex /mirrors/AOSP/platform_system_apex
+Redirect /mirrors/AOSP/platform/system/ashmemd /mirrors/AOSP/platform_system_ashmemd
+Redirect /mirrors/AOSP/platform/system/bpfprogs /mirrors/AOSP/platform_system_bpfprogs
+Redirect /mirrors/AOSP/platform/system/ca-certificates /mirrors/AOSP/platform_system_ca-certificates
+Redirect /mirrors/AOSP/platform/system/chre /mirrors/AOSP/platform_system_chre
+Redirect /mirrors/AOSP/platform/system/connectivity/wificond /mirrors/AOSP/platform_system_connectivity_wificond
+Redirect /mirrors/AOSP/platform/system/connectivity/wifilogd /mirrors/AOSP/platform_system_connectivity_wifilogd
+Redirect /mirrors/AOSP/platform/system/gatekeeper /mirrors/AOSP/platform_system_gatekeeper
+Redirect /mirrors/AOSP/platform/system/gsid /mirrors/AOSP/platform_system_gsid
+Redirect /mirrors/AOSP/platform/system/hwservicemanager /mirrors/AOSP/platform_system_hwservicemanager
+Redirect /mirrors/AOSP/platform/system/iorap /mirrors/AOSP/platform_system_iorap
+Redirect /mirrors/AOSP/platform/system/libfmq /mirrors/AOSP/platform_system_libfmq
+Redirect /mirrors/AOSP/platform/system/libhidl /mirrors/AOSP/platform_system_libhidl
+Redirect /mirrors/AOSP/platform/system/libhwbinder /mirrors/AOSP/platform_system_libhwbinder
+Redirect /mirrors/AOSP/platform/system/libsysprop /mirrors/AOSP/platform_system_libsysprop
+Redirect /mirrors/AOSP/platform/system/libufdt /mirrors/AOSP/platform_system_libufdt
+Redirect /mirrors/AOSP/platform/system/libvintf /mirrors/AOSP/platform_system_libvintf
+Redirect /mirrors/AOSP/platform/system/linkerconfig /mirrors/AOSP/platform_system_linkerconfig
+Redirect /mirrors/AOSP/platform/system/media /mirrors/AOSP/platform_system_media
+Redirect /mirrors/AOSP/platform/system/nfc /mirrors/AOSP/platform_system_nfc
+Redirect /mirrors/AOSP/platform/system/nvram /mirrors/AOSP/platform_system_nvram
+Redirect /mirrors/AOSP/platform/system/security /mirrors/AOSP/platform_system_security
+Redirect /mirrors/AOSP/platform/system/server_configurable_flags /mirrors/AOSP/platform_system_server_configurable_flags
+Redirect /mirrors/AOSP/platform/system/testing/gtest_extras /mirrors/AOSP/platform_system_testing_gtest_extras
+Redirect /mirrors/AOSP/platform/system/tools/aidl /mirrors/AOSP/platform_system_tools_aidl
+Redirect /mirrors/AOSP/platform/system/tools/hidl /mirrors/AOSP/platform_system_tools_hidl
+Redirect /mirrors/AOSP/platform/system/tools/sysprop /mirrors/AOSP/platform_system_tools_sysprop
+Redirect /mirrors/AOSP/platform/system/tools/xsdc /mirrors/AOSP/platform_system_tools_xsdc
+Redirect /mirrors/AOSP/platform/system/ucontainer /mirrors/AOSP/platform_system_ucontainer
+Redirect /mirrors/AOSP/platform/test/framework /mirrors/AOSP/platform_test_framework
+Redirect /mirrors/AOSP/platform/test/mlts/benchmark /mirrors/AOSP/platform_test_mlts_benchmark
+Redirect /mirrors/AOSP/platform/test/mlts/models /mirrors/AOSP/platform_test_mlts_models
+Redirect /mirrors/AOSP/platform/test/mts /mirrors/AOSP/platform_test_mts
+Redirect /mirrors/AOSP/platform/test/suite_harness /mirrors/AOSP/platform_test_suite_harness
+Redirect /mirrors/AOSP/platform/test/vti/dashboard /mirrors/AOSP/platform_test_vti_dashboard
+Redirect /mirrors/AOSP/platform/test/vti/fuzz_test_serving /mirrors/AOSP/platform_test_vti_fuzz_test_serving
+Redirect /mirrors/AOSP/platform/test/vti/test_serving /mirrors/AOSP/platform_test_vti_test_serving
+Redirect /mirrors/AOSP/platform/test/vts /mirrors/AOSP/platform_test_vts
+Redirect /mirrors/AOSP/platform/test/vts-testcase/fuzz /mirrors/AOSP/platform_test_vts-testcase_fuzz
+Redirect /mirrors/AOSP/platform/test/vts-testcase/hal /mirrors/AOSP/platform_test_vts-testcase_hal
+Redirect /mirrors/AOSP/platform/test/vts-testcase/hal-trace /mirrors/AOSP/platform_test_vts-testcase_hal-trace
+Redirect /mirrors/AOSP/platform/test/vts-testcase/kernel /mirrors/AOSP/platform_test_vts-testcase_kernel
+Redirect /mirrors/AOSP/platform/test/vts-testcase/nbu /mirrors/AOSP/platform_test_vts-testcase_nbu
+Redirect /mirrors/AOSP/platform/test/vts-testcase/performance /mirrors/AOSP/platform_test_vts-testcase_performance
+Redirect /mirrors/AOSP/platform/test/vts-testcase/security /mirrors/AOSP/platform_test_vts-testcase_security
+Redirect /mirrors/AOSP/platform/test/vts-testcase/vndk /mirrors/AOSP/platform_test_vts-testcase_vndk
+Redirect /mirrors/AOSP/platform/tools/acloud /mirrors/AOSP/platform_tools_acloud
+Redirect /mirrors/AOSP/platform/tools/apifinder /mirrors/AOSP/platform_tools_apifinder
+Redirect /mirrors/AOSP/platform/tools/apksig /mirrors/AOSP/platform_tools_apksig
+Redirect /mirrors/AOSP/platform/tools/apkzlib /mirrors/AOSP/platform_tools_apkzlib
+Redirect /mirrors/AOSP/platform/tools/asuite /mirrors/AOSP/platform_tools_asuite
+Redirect /mirrors/AOSP/platform/tools/currysrc /mirrors/AOSP/platform_tools_currysrc
+Redirect /mirrors/AOSP/platform/tools/dexter /mirrors/AOSP/platform_tools_dexter
+Redirect /mirrors/AOSP/platform/tools/external/fat32lib /mirrors/AOSP/platform_tools_external_fat32lib
+Redirect /mirrors/AOSP/platform/tools/external/gradle /mirrors/AOSP/platform_tools_external_gradle
+Redirect /mirrors/AOSP/platform/tools/external_updater /mirrors/AOSP/platform_tools_external_updater
+Redirect /mirrors/AOSP/platform/tools/loganalysis /mirrors/AOSP/platform_tools_loganalysis
+Redirect /mirrors/AOSP/platform/tools/metalava /mirrors/AOSP/platform_tools_metalava
+Redirect /mirrors/AOSP/platform/tools/ndkports /mirrors/AOSP/platform_tools_ndkports
+Redirect /mirrors/AOSP/platform/tools/repohooks /mirrors/AOSP/platform_tools_repohooks
+Redirect /mirrors/AOSP/platform/tools/security /mirrors/AOSP/platform_tools_security
+Redirect /mirrors/AOSP/platform/tools/test/connectivity /mirrors/AOSP/platform_tools_test_connectivity
+Redirect /mirrors/AOSP/platform/tools/test/graphicsbenchmark /mirrors/AOSP/platform_tools_test_graphicsbenchmark
+Redirect /mirrors/AOSP/platform/tools/tradefederation/contrib /mirrors/AOSP/platform_tools_tradefederation_contrib
+Redirect /mirrors/AOSP/platform/tools/tradefederation /mirrors/AOSP/platform_tools_tradefederation
+Redirect /mirrors/AOSP/platform/tools/trebuchet /mirrors/AOSP/platform_tools_trebuchet
+Redirect /mirrors/AOSP/toolchain/benchmark /mirrors/AOSP/toolchain_benchmark
+Redirect /mirrors/AOSP/toolchain/pgo-profiles /mirrors/AOSP/toolchain_pgo-profiles
diff --git a/git-redirects/contrib.conf b/git-redirects/contrib.conf
new file mode 100644
index 0000000..cd00f2f
--- /dev/null
+++ b/git-redirects/contrib.conf
@@ -0,0 +1,4 @@
+# GNUtoo
+Redirect /GNUtoo/external_libsamsung-ipc.git /GNUtoo/hardware_replicant_libsamsung-ipc.git
+Redirect /GNUtoo/hardware_ril_samsung-ril.git /GNUtoo/hardware_replicant_libsamsung-ril.git
+
diff --git a/git-redirects/infrastructure.conf b/git-redirects/infrastructure.conf
new file mode 100644
index 0000000..f09f7ef
--- /dev/null
+++ b/git-redirects/infrastructure.conf
@@ -0,0 +1,4 @@
+# We moved infrastructure repositories in infrastructure/ but we still need to
+# keep the compatibility with the old URL to enable OSUOSL to update the
+# www.replicant.us web page
+Redirect /replicant/website.git /infrastructure/www.replicant.us
diff --git a/git-redirects/replicant-4.2.conf b/git-redirects/replicant-4.2.conf
new file mode 100644
index 0000000..cb833ec
--- /dev/null
+++ b/git-redirects/replicant-4.2.conf
@@ -0,0 +1,141 @@
+#######################
+# bootable/bootloader #
+#######################
+
+# Here we need to keep the longer paths before the shorter ones otherwise
+# repositories like bootable/bootloader/goldelico/gta04/x-loader
+# gets redirected into /replicant/bootable_bootloader_goldelico_gta04/xloader
+# instead of /replicant/bootable_bootloader_goldelico_gta04_x-loader
+
+# With the .git
+Redirect /replicant/bootable/bootloader/goldelico/gta04/x-loader.git /replicant/bootable_bootloader_goldelico_gta04_x-loader.git
+Redirect /replicant/bootable/bootloader/goldelico/gta04.git /replicant/bootable_bootloader_goldelico_gta04.git
+
+# Without the .git
+Redirect /replicant/bootable/bootloader/goldelico/gta04/x-loader /replicant/bootable_bootloader_goldelico_gta04_x-loader
+Redirect /replicant/bootable/bootloader/goldelico/gta04 /replicant/bootable_bootloader_goldelico_gta04
+
+##################
+# libsamsung-ipc #
+##################
+
+# libsamsung-ipc and libsamsung-ril were moved in hardware/replicant to make sure
+# that people didn't mistakenly use another upstream that is strongly outdated
+# and not developed anymore
+
+# With the .git
+Redirect /replicant/external/libsamsung-ipc.git /replicant/hardware_replicant_libsamsung-ipc.git
+Redirect /replicant/hardware/ril/samsung-ril.git /replicant/hardware_replicant_libsamsung-ril.git
+
+# Without the .git
+Redirect /replicant/external/libsamsung-ipc /replicant/hardware_replicant_libsamsung-ipc
+Redirect /replicant/hardware/ril/samsung-ril /replicant/hardware_replicant_libsamsung-ril
+
+
+##########################
+# All other repositories #
+##########################
+
+# With the .git
+Redirect /replicant/bootable/recovery.git /replicant/bootable_recovery.git
+Redirect /replicant/device/common.git /replicant/device_common.git
+Redirect /replicant/device/goldelico/gta04.git /replicant/device_goldelico_gta04.git
+Redirect /replicant/device/samsung/aries-common.git /replicant/device_samsung_aries-common.git
+Redirect /replicant/device/samsung/crespo.git /replicant/device_samsung_crespo.git
+Redirect /replicant/device/samsung/galaxys2-common.git /replicant/device_samsung_galaxys2-common.git
+Redirect /replicant/device/samsung/galaxysmtd.git /replicant/device_samsung_galaxysmtd.git
+Redirect /replicant/device/samsung/i9100.git /replicant/device_samsung_i9100.git
+Redirect /replicant/device/samsung/i9300.git /replicant/device_samsung_i9300.git
+Redirect /replicant/device/samsung/maguro.git /replicant/device_samsung_maguro.git
+Redirect /replicant/device/samsung/n7000.git /replicant/device_samsung_n7000.git
+Redirect /replicant/device/samsung/n7100.git /replicant/device_samsung_n7100.git
+Redirect /replicant/device/samsung/omap4-common.git /replicant/device_samsung_omap4-common.git
+Redirect /replicant/device/samsung/p3100.git /replicant/device_samsung_p3100.git
+Redirect /replicant/device/samsung/p3110.git /replicant/device_samsung_p3110.git
+Redirect /replicant/device/samsung/p5100.git /replicant/device_samsung_p5100.git
+Redirect /replicant/device/samsung/p5110.git /replicant/device_samsung_p5110.git
+Redirect /replicant/device/samsung/smdk4412-common.git /replicant/device_samsung_smdk4412-common.git
+Redirect /replicant/device/samsung/tuna.git /replicant/device_samsung_tuna.git
+Redirect /replicant/external/apache-http.git /replicant/external_apache-http.git
+Redirect /replicant/external/bash.git /replicant/external_bash.git
+Redirect /replicant/external/bluetooth/bluedroid.git /replicant/external_bluetooth_bluedroid.git
+Redirect /replicant/external/libnfc-nxp.git /replicant/external_libnfc-nxp.git
+Redirect /replicant/external/qemu.git /replicant/external_qemu.git
+Redirect /replicant/external/svox.git /replicant/external_svox.git
+Redirect /replicant/external/webkit.git /replicant/external_webkit.git
+Redirect /replicant/frameworks/av.git /replicant/frameworks_av.git
+Redirect /replicant/frameworks/base.git /replicant/frameworks_base.git
+Redirect /replicant/frameworks/native.git /replicant/frameworks_native.git
+Redirect /replicant/hardware/broadcom/wlan.git /replicant/hardware_broadcom_wlan.git
+Redirect /replicant/hardware/libhardware.git /replicant/hardware_libhardware.git
+Redirect /replicant/hardware/libhardware_legacy.git /replicant/hardware_libhardware_legacy.git
+Redirect /replicant/hardware/qcom/power.git /replicant/hardware_qcom_power.git
+Redirect /replicant/hardware/samsung.git /replicant/hardware_samsung.git
+Redirect /replicant/hardware/ti/omap4xxx.git /replicant/hardware_ti_omap4xxx.git
+Redirect /replicant/hardware/tinyalsa-audio.git /replicant/hardware_tinyalsa-audio.git
+Redirect /replicant/kernel/goldelico/gta04.git /replicant/kernel_goldelico_gta04.git
+Redirect /replicant/kernel/samsung/aries.git /replicant/kernel_samsung_aries.git
+Redirect /replicant/kernel/samsung/crespo.git /replicant/kernel_samsung_crespo.git
+Redirect /replicant/kernel/samsung/espresso10.git /replicant/kernel_samsung_espresso10.git
+Redirect /replicant/kernel/samsung/smdk4412.git /replicant/kernel_samsung_smdk4412.git
+Redirect /replicant/kernel/samsung/tuna.git /replicant/kernel_samsung_tuna.git
+Redirect /replicant/packages/apps/browser.git /replicant/packages_apps_Browser.git
+Redirect /replicant/packages/apps/nfc.git /replicant/packages_apps_nfc.git
+Redirect /replicant/packages/apps/packageinstaller.git /replicant/packages_apps_packageinstaller.git
+Redirect /replicant/packages/apps/replicantwallpapers.git /replicant/packages_apps_replicantwallpapers.git
+Redirect /replicant/packages/apps/settings.git /replicant/packages_apps_Settings.git
+Redirect /replicant/packages/apps/trebuchet.git /replicant/packages_apps_trebuchet.git
+Redirect /replicant/system/core.git /replicant/system_core.git
+Redirect /replicant/vendor/replicant.git /replicant/vendor_replicant.git
+
+# Without the .git
+Redirect /replicant/bootable/recovery /replicant/bootable_recovery
+Redirect /replicant/device/common /replicant/device_common
+Redirect /replicant/device/goldelico/gta04 /replicant/device_goldelico_gta04
+Redirect /replicant/device/samsung/aries-common /replicant/device_samsung_aries-common
+Redirect /replicant/device/samsung/crespo /replicant/device_samsung_crespo
+Redirect /replicant/device/samsung/galaxys2-common /replicant/device_samsung_galaxys2-common
+Redirect /replicant/device/samsung/galaxysmtd /replicant/device_samsung_galaxysmtd
+Redirect /replicant/device/samsung/i9100 /replicant/device_samsung_i9100
+Redirect /replicant/device/samsung/i9300 /replicant/device_samsung_i9300
+Redirect /replicant/device/samsung/maguro /replicant/device_samsung_maguro
+Redirect /replicant/device/samsung/n7000 /replicant/device_samsung_n7000
+Redirect /replicant/device/samsung/n7100 /replicant/device_samsung_n7100
+Redirect /replicant/device/samsung/omap4-common /replicant/device_samsung_omap4-common
+Redirect /replicant/device/samsung/p3100 /replicant/device_samsung_p3100
+Redirect /replicant/device/samsung/p3110 /replicant/device_samsung_p3110
+Redirect /replicant/device/samsung/p5100 /replicant/device_samsung_p5100
+Redirect /replicant/device/samsung/p5110 /replicant/device_samsung_p5110
+Redirect /replicant/device/samsung/smdk4412-common /replicant/device_samsung_smdk4412-common
+Redirect /replicant/device/samsung/tuna /replicant/device_samsung_tuna
+Redirect /replicant/external/apache-http /replicant/external_apache-http
+Redirect /replicant/external/bash /replicant/external_bash
+Redirect /replicant/external/bluetooth/bluedroid /replicant/external_bluetooth_bluedroid
+Redirect /replicant/external/libnfc-nxp /replicant/external_libnfc-nxp
+Redirect /replicant/external/qemu /replicant/external_qemu
+Redirect /replicant/external/svox /replicant/external_svox
+Redirect /replicant/external/webkit /replicant/external_webkit
+Redirect /replicant/frameworks/av /replicant/frameworks_av
+Redirect /replicant/frameworks/base /replicant/frameworks_base
+Redirect /replicant/frameworks/native /replicant/frameworks_native
+Redirect /replicant/hardware/broadcom/wlan /replicant/hardware_broadcom_wlan
+Redirect /replicant/hardware/libhardware /replicant/hardware_libhardware
+Redirect /replicant/hardware/libhardware_legacy /replicant/hardware_libhardware_legacy
+Redirect /replicant/hardware/qcom/power /replicant/hardware_qcom_power
+Redirect /replicant/hardware/samsung /replicant/hardware_samsung
+Redirect /replicant/hardware/ti/omap4xxx /replicant/hardware_ti_omap4xxx
+Redirect /replicant/hardware/tinyalsa-audio /replicant/hardware_tinyalsa-audio
+Redirect /replicant/kernel/goldelico/gta04 /replicant/kernel_goldelico_gta04
+Redirect /replicant/kernel/samsung/aries /replicant/kernel_samsung_aries
+Redirect /replicant/kernel/samsung/crespo /replicant/kernel_samsung_crespo
+Redirect /replicant/kernel/samsung/espresso10 /replicant/kernel_samsung_espresso10
+Redirect /replicant/kernel/samsung/smdk4412 /replicant/kernel_samsung_smdk4412
+Redirect /replicant/kernel/samsung/tuna /replicant/kernel_samsung_tuna
+Redirect /replicant/packages/apps/browser /replicant/packages_apps_Browser
+Redirect /replicant/packages/apps/nfc /replicant/packages_apps_nfc
+Redirect /replicant/packages/apps/packageinstaller /replicant/packages_apps_packageinstaller
+Redirect /replicant/packages/apps/replicantwallpapers /replicant/packages_apps_replicantwallpapers
+Redirect /replicant/packages/apps/settings /replicant/packages_apps_Settings
+Redirect /replicant/packages/apps/trebuchet /replicant/packages_apps_trebuchet
+Redirect /replicant/system/core /replicant/system_core
+Redirect /replicant/vendor/replicant /replicant/vendor_replicant
diff --git a/git-redirects/replicant-6.0.conf b/git-redirects/replicant-6.0.conf
new file mode 100644
index 0000000..63721c9
--- /dev/null
+++ b/git-redirects/replicant-6.0.conf
@@ -0,0 +1,8 @@
+# After replicant-6.0-0003 we included the user scripts in Replicant 6.0
+Redirect /replicant/user-scripts.git /replicant/vendor_replicant-scripts.git
+
+# After replicant-6.0-0004-RC1 we moved libsamsung-ril and libsamsung-ipc
+Redirect /replicant/hardware_ril_samsung-ril.git /replicant/hardware_replicant_libsamsung-ril.git
+Redirect /replicant/hardware_ril_samsung-ril /replicant/hardware_replicant_libsamsung-ril
+Redirect /replicant/external_libsamsung-ipc.git /replicant/hardware_replicant_libsamsung-ipc.git
+Redirect /replicant/external_libsamsung-ipc /replicant/hardware_replicant_libsamsung-ipc
diff --git a/mods-enabled/access_compat.load b/mods-enabled/access_compat.load
new file mode 120000
index 0000000..4ac4ead
--- /dev/null
+++ b/mods-enabled/access_compat.load
@@ -0,0 +1 @@
+../mods-available/access_compat.load \ No newline at end of file
diff --git a/mods-enabled/alias.conf b/mods-enabled/alias.conf
new file mode 120000
index 0000000..f616ae2
--- /dev/null
+++ b/mods-enabled/alias.conf
@@ -0,0 +1 @@
+../mods-available/alias.conf \ No newline at end of file
diff --git a/mods-enabled/alias.load b/mods-enabled/alias.load
new file mode 120000
index 0000000..13a943a
--- /dev/null
+++ b/mods-enabled/alias.load
@@ -0,0 +1 @@
+../mods-available/alias.load \ No newline at end of file
diff --git a/mods-enabled/auth_basic.load b/mods-enabled/auth_basic.load
new file mode 120000
index 0000000..28c1eae
--- /dev/null
+++ b/mods-enabled/auth_basic.load
@@ -0,0 +1 @@
+../mods-available/auth_basic.load \ No newline at end of file
diff --git a/mods-enabled/authn_core.load b/mods-enabled/authn_core.load
new file mode 120000
index 0000000..6ae9e0d
--- /dev/null
+++ b/mods-enabled/authn_core.load
@@ -0,0 +1 @@
+../mods-available/authn_core.load \ No newline at end of file
diff --git a/mods-enabled/authn_file.load b/mods-enabled/authn_file.load
new file mode 120000
index 0000000..ab54e91
--- /dev/null
+++ b/mods-enabled/authn_file.load
@@ -0,0 +1 @@
+../mods-available/authn_file.load \ No newline at end of file
diff --git a/mods-enabled/authz_core.load b/mods-enabled/authz_core.load
new file mode 120000
index 0000000..ccfcf1e
--- /dev/null
+++ b/mods-enabled/authz_core.load
@@ -0,0 +1 @@
+../mods-available/authz_core.load \ No newline at end of file
diff --git a/mods-enabled/authz_host.load b/mods-enabled/authz_host.load
new file mode 120000
index 0000000..badc268
--- /dev/null
+++ b/mods-enabled/authz_host.load
@@ -0,0 +1 @@
+../mods-available/authz_host.load \ No newline at end of file
diff --git a/mods-enabled/authz_user.load b/mods-enabled/authz_user.load
new file mode 120000
index 0000000..59914f2
--- /dev/null
+++ b/mods-enabled/authz_user.load
@@ -0,0 +1 @@
+../mods-available/authz_user.load \ No newline at end of file
diff --git a/mods-enabled/autoindex.conf b/mods-enabled/autoindex.conf
new file mode 120000
index 0000000..de8c1bb
--- /dev/null
+++ b/mods-enabled/autoindex.conf
@@ -0,0 +1 @@
+../mods-available/autoindex.conf \ No newline at end of file
diff --git a/mods-enabled/autoindex.load b/mods-enabled/autoindex.load
new file mode 120000
index 0000000..8fae29a
--- /dev/null
+++ b/mods-enabled/autoindex.load
@@ -0,0 +1 @@
+../mods-available/autoindex.load \ No newline at end of file
diff --git a/mods-enabled/cgid.conf b/mods-enabled/cgid.conf
new file mode 120000
index 0000000..a718019
--- /dev/null
+++ b/mods-enabled/cgid.conf
@@ -0,0 +1 @@
+../mods-available/cgid.conf \ No newline at end of file
diff --git a/mods-enabled/cgid.load b/mods-enabled/cgid.load
new file mode 120000
index 0000000..61a606d
--- /dev/null
+++ b/mods-enabled/cgid.load
@@ -0,0 +1 @@
+../mods-available/cgid.load \ No newline at end of file
diff --git a/mods-enabled/deflate.conf b/mods-enabled/deflate.conf
new file mode 120000
index 0000000..84a592f
--- /dev/null
+++ b/mods-enabled/deflate.conf
@@ -0,0 +1 @@
+../mods-available/deflate.conf \ No newline at end of file
diff --git a/mods-enabled/deflate.load b/mods-enabled/deflate.load
new file mode 120000
index 0000000..f73768e
--- /dev/null
+++ b/mods-enabled/deflate.load
@@ -0,0 +1 @@
+../mods-available/deflate.load \ No newline at end of file
diff --git a/mods-enabled/dir.conf b/mods-enabled/dir.conf
new file mode 120000
index 0000000..c220eba
--- /dev/null
+++ b/mods-enabled/dir.conf
@@ -0,0 +1 @@
+../mods-available/dir.conf \ No newline at end of file
diff --git a/mods-enabled/dir.load b/mods-enabled/dir.load
new file mode 120000
index 0000000..84a580b
--- /dev/null
+++ b/mods-enabled/dir.load
@@ -0,0 +1 @@
+../mods-available/dir.load \ No newline at end of file
diff --git a/mods-enabled/env.load b/mods-enabled/env.load
new file mode 120000
index 0000000..ef85526
--- /dev/null
+++ b/mods-enabled/env.load
@@ -0,0 +1 @@
+../mods-available/env.load \ No newline at end of file
diff --git a/mods-enabled/filter.load b/mods-enabled/filter.load
new file mode 120000
index 0000000..07ee625
--- /dev/null
+++ b/mods-enabled/filter.load
@@ -0,0 +1 @@
+../mods-available/filter.load \ No newline at end of file
diff --git a/mods-enabled/headers.load b/mods-enabled/headers.load
new file mode 120000
index 0000000..5017cda
--- /dev/null
+++ b/mods-enabled/headers.load
@@ -0,0 +1 @@
+../mods-available/headers.load \ No newline at end of file
diff --git a/mods-enabled/mime.conf b/mods-enabled/mime.conf
new file mode 120000
index 0000000..1df438b
--- /dev/null
+++ b/mods-enabled/mime.conf
@@ -0,0 +1 @@
+../mods-available/mime.conf \ No newline at end of file
diff --git a/mods-enabled/mime.load b/mods-enabled/mime.load
new file mode 120000
index 0000000..c2c01f7
--- /dev/null
+++ b/mods-enabled/mime.load
@@ -0,0 +1 @@
+../mods-available/mime.load \ No newline at end of file
diff --git a/mods-enabled/mpm_event.conf b/mods-enabled/mpm_event.conf
new file mode 120000
index 0000000..fdbe68a
--- /dev/null
+++ b/mods-enabled/mpm_event.conf
@@ -0,0 +1 @@
+../mods-available/mpm_event.conf \ No newline at end of file
diff --git a/mods-enabled/mpm_event.load b/mods-enabled/mpm_event.load
new file mode 120000
index 0000000..c1e41c1
--- /dev/null
+++ b/mods-enabled/mpm_event.load
@@ -0,0 +1 @@
+../mods-available/mpm_event.load \ No newline at end of file
diff --git a/mods-enabled/negotiation.conf b/mods-enabled/negotiation.conf
new file mode 120000
index 0000000..d7f730d
--- /dev/null
+++ b/mods-enabled/negotiation.conf
@@ -0,0 +1 @@
+../mods-available/negotiation.conf \ No newline at end of file
diff --git a/mods-enabled/negotiation.load b/mods-enabled/negotiation.load
new file mode 120000
index 0000000..c40e742
--- /dev/null
+++ b/mods-enabled/negotiation.load
@@ -0,0 +1 @@
+../mods-available/negotiation.load \ No newline at end of file
diff --git a/mods-enabled/rewrite.load b/mods-enabled/rewrite.load
new file mode 120000
index 0000000..498351b
--- /dev/null
+++ b/mods-enabled/rewrite.load
@@ -0,0 +1 @@
+../mods-available/rewrite.load \ No newline at end of file
diff --git a/mods-enabled/setenvif.conf b/mods-enabled/setenvif.conf
new file mode 120000
index 0000000..a57c9a8
--- /dev/null
+++ b/mods-enabled/setenvif.conf
@@ -0,0 +1 @@
+../mods-available/setenvif.conf \ No newline at end of file
diff --git a/mods-enabled/setenvif.load b/mods-enabled/setenvif.load
new file mode 120000
index 0000000..6d36106
--- /dev/null
+++ b/mods-enabled/setenvif.load
@@ -0,0 +1 @@
+../mods-available/setenvif.load \ No newline at end of file
diff --git a/mods-enabled/socache_shmcb.load b/mods-enabled/socache_shmcb.load
new file mode 120000
index 0000000..f729f78
--- /dev/null
+++ b/mods-enabled/socache_shmcb.load
@@ -0,0 +1 @@
+../mods-available/socache_shmcb.load \ No newline at end of file
diff --git a/mods-enabled/speling.load b/mods-enabled/speling.load
new file mode 120000
index 0000000..d30ca59
--- /dev/null
+++ b/mods-enabled/speling.load
@@ -0,0 +1 @@
+../mods-available/speling.load \ No newline at end of file
diff --git a/mods-enabled/ssl.conf b/mods-enabled/ssl.conf
new file mode 120000
index 0000000..b0f14d1
--- /dev/null
+++ b/mods-enabled/ssl.conf
@@ -0,0 +1 @@
+../mods-available/ssl.conf \ No newline at end of file
diff --git a/mods-enabled/ssl.load b/mods-enabled/ssl.load
new file mode 120000
index 0000000..9d79723
--- /dev/null
+++ b/mods-enabled/ssl.load
@@ -0,0 +1 @@
+../mods-available/ssl.load \ No newline at end of file
diff --git a/mods-enabled/status.conf b/mods-enabled/status.conf
new file mode 120000
index 0000000..bd3a2f1
--- /dev/null
+++ b/mods-enabled/status.conf
@@ -0,0 +1 @@
+../mods-available/status.conf \ No newline at end of file
diff --git a/mods-enabled/status.load b/mods-enabled/status.load
new file mode 120000
index 0000000..ee67fbb
--- /dev/null
+++ b/mods-enabled/status.load
@@ -0,0 +1 @@
+../mods-available/status.load \ No newline at end of file
diff --git a/sites-available/autoconfig.replicant.us.conf b/sites-available/autoconfig.replicant.us.conf
new file mode 100644
index 0000000..fac76d9
--- /dev/null
+++ b/sites-available/autoconfig.replicant.us.conf
@@ -0,0 +1,26 @@
+# Usage:
+# This virtual host is meant to be used to deploy a configuration file
+# for the email service that is currently using the autoconfig.replicant.us address
+<VirtualHost *:80>
+ ServerName autoconfig.replicant.us
+ RewriteEngine On
+ RewriteCond %{HTTPS} off
+ RewriteCond %{REMOTE_ADDR} !=127.0.0.1
+ RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
+</VirtualHost>
+
+<IfModule mod_ssl.c>
+ <VirtualHost *:443>
+ ServerAdmin contact@replicant.us
+ ServerName autoconfig.replicant.us
+
+ DocumentRoot /var/www/autoconfig.replicant.us
+
+ Header always set Strict-Transport-Security "max-age=31536000;"
+
+ SSLEngine On
+ SSLCertificateFile /etc/letsencrypt/live/autoconfig.replicant.us/cert.pem
+ SSLCertificateChainFile /etc/letsencrypt/live/autoconfig.replicant.us/chain.pem
+ SSLCertificateKeyFile /etc/letsencrypt/live/autoconfig.replicant.us/privkey.pem
+ </VirtualHost>
+</IfModule>
diff --git a/sites-available/git.replicant.us.conf b/sites-available/git.replicant.us.conf
new file mode 100644
index 0000000..cbc91b9
--- /dev/null
+++ b/sites-available/git.replicant.us.conf
@@ -0,0 +1,127 @@
+ServerName git.replicant.us
+
+<VirtualHost *:80>
+ ServerName git.replicant.us
+
+ RewriteEngine On
+ RewriteCond %{HTTPS} off
+ RewriteCond %{REMOTE_ADDR} !=127.0.0.1
+ RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
+</VirtualHost>
+
+<IfModule mod_ssl.c>
+ <VirtualHost *:443>
+ ServerAdmin contact@replicant.us
+ ServerName git.replicant.us
+
+ DocumentRoot /var/www/git.replicant.us
+
+ RewriteEngine on
+
+ Alias /cgit.css /usr/share/cgit/cgit.css
+ Alias /cgit.png /usr/share/cgit/cgit.png
+
+ Alias /replicant_logo_white.png /var/www/git.replicant.us/htdocs/replicant_logo_white.png
+ Alias /replicant_favicon.ico /var/www/git.replicant.us/htdocs/replicant_favicon.ico
+ Alias /replicant_lineage.png /var/www/git.replicant.us/htdocs/replicant_lineage.png
+
+ AliasMatch ^/(.*).git/clone.bundle /srv/git/bundles/$1.git/clone.bundle
+ AliasMatch ^/(.*)/clone.bundle /srv/git/bundles/$1.git/clone.bundle
+
+ # The mirrors were moved to their own subdirectories but Replicant 6 still use
+ # the old URL
+ RedirectMatch "^/AOSP-mirror/(.*)" "/mirrors/AOSP/$1"
+ RedirectMatch "^/LineageOS-mirror/(.*)" "/mirrors/LineageOS/$1"
+ RedirectMatch "^/F-Droid-mirror/(.*)" "/mirrors/F-Droid/$1"
+ RedirectMatch "^/AOSP-mirror" "/mirrors/AOSP"
+ RedirectMatch "^/LineageOS-mirror" "/mirrors/LineageOS"
+ RedirectMatch "^/F-Droid-mirror" "/mirrors/F-Droid"
+
+ # Unlike Gitlab, this setup is case sensitive and there are differences between
+ # 4.2 and 6.0 in case
+ # Redirect /replicant/packages_apps_Settings.git /replicant/packages_apps_settings.git
+ # Redirect /replicant/packages_apps_Browser.git /replicant/packages_apps_browser.git
+ # Above was the previous way but that didn't work with Git protocol so we renamed the repos uppercase
+ # but then it broke http protocol so here we go again redirecting to uppercase:
+ Redirect /replicant/packages_apps_settings.git /replicant/packages_apps_Settings.git
+ Redirect /replicant/packages_apps_browser.git /replicant/packages_apps_Browser.git
+
+ # Other redirects
+ IncludeOptional git-redirects/aosp-mirror.conf
+ IncludeOptional git-redirects/contrib.conf
+ IncludeOptional git-redirects/infrastructure.conf
+ IncludeOptional git-redirects/replicant-4.2.conf
+ IncludeOptional git-redirects/replicant-6.0.conf
+
+ SetEnv GIT_PROJECT_ROOT /srv/git/git-data/repositories/
+ ScriptAliasMatch \
+ "(?x)^/(.*/(HEAD | \
+ info/refs | \
+ objects/(info/[^/]+ | \
+ [0-9a-f]{2}/[0-9a-f]{38} | \
+ pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
+ git-upload-pack))$" \
+ /usr/lib/git-core/git-http-backend/$1
+
+ ScriptAlias /contrib /usr/lib/cgit/cgit.cgi
+ ScriptAlias /infrastructure /usr/lib/cgit/cgit.cgi
+ ScriptAlias /mirrors /usr/lib/cgit/cgit.cgi
+ ScriptAlias /replicant /usr/lib/cgit/cgit.cgi
+ ScriptAlias /replicant-next /usr/lib/cgit/cgit.cgi
+
+ <Location /contrib>
+ SetEnv CGIT_CONFIG /etc/cgit.d/contrib.conf
+ </Location>
+
+ <Location /infrastructure>
+ SetEnv CGIT_CONFIG /etc/cgit.d/infrastructure.conf
+ </Location>
+
+ <Location /mirrors>
+ SetEnv CGIT_CONFIG /etc/cgit.d/mirrors.conf
+ </Location>
+
+ <Location /replicant>
+ SetEnv CGIT_CONFIG /etc/cgit.d/replicant.conf
+ </Location>
+
+ <Location /replicant-next>
+ SetEnv CGIT_CONFIG /etc/cgit.d/replicant-next.conf
+ </Location>
+
+ # <Location /test>
+ # SetEnv CGIT_CONFIG /etc/cgit.d/test.conf
+ # </Location>
+
+ <Directory /usr/lib/git-core/>
+ AllowOverride None
+ Options +ExecCgi -MultiViews +SymLinksIfOwnerMatch
+ Require all granted
+ </Directory>
+
+ <LocationMatch "^/.*/git-receive-pack$">
+ Order deny,allow
+ Deny from all
+ </LocationMatch>
+
+ <Directory /usr/local/lib/cgit/>
+ AllowOverride None
+ Options ExecCGI FollowSymlinks
+ Require all granted
+ </Directory>
+
+ Header always set Strict-Transport-Security "max-age=31536000;"
+
+ SSLEngine On
+ SSLCertificateFile /etc/letsencrypt/live/git.replicant.us/cert.pem
+ SSLCertificateChainFile /etc/letsencrypt/live/git.replicant.us/chain.pem
+ SSLCertificateKeyFile /etc/letsencrypt/live/git.replicant.us/privkey.pem
+
+ <FilesMatch "\.(cgi|shtml|phtml|php)$">
+ SSLOptions +StdEnvVars
+ </FilesMatch>
+ <Directory /usr/lib/cgi-bin>
+ SSLOptions +StdEnvVars
+ </Directory>
+ </VirtualHost>
+</IfModule>
diff --git a/sites-available/letsencrypt.conf b/sites-available/letsencrypt.conf
new file mode 100644
index 0000000..a00a1bf
--- /dev/null
+++ b/sites-available/letsencrypt.conf
@@ -0,0 +1,10 @@
+# This creates a webroot for certbot
+<VirtualHost *:80>
+ ServerName imap.replicant.us
+ DocumentRoot /var/www/letsencrypt/imap.replicant.us/
+</VirtualHost>
+
+<VirtualHost *:80>
+ ServerName mx1.replicant.us
+ DocumentRoot /var/www/letsencrypt/mx1.replicant.us/
+</VirtualHost>
diff --git a/sites-available/libsamsung-ipc.replicant.us.conf b/sites-available/libsamsung-ipc.replicant.us.conf
new file mode 100644
index 0000000..c758a14
--- /dev/null
+++ b/sites-available/libsamsung-ipc.replicant.us.conf
@@ -0,0 +1,13 @@
+ServerName libsamsung-ipc.replicant.us
+
+<VirtualHost *:80>
+ ServerName libsamsung-ipc.replicant.us
+ Redirect permanent / https://redmine.replicant.us/projects/libsamsung-ipc/wiki/
+</VirtualHost>
+
+<IfModule mod_ssl.c>
+ <VirtualHost *:443>
+ ServerName libsamsung-ipc.replicant.us
+ Redirect permanent / https://redmine.replicant.us/projects/libsamsung-ipc/wiki/
+ </VirtualHost>
+</IfModule>
diff --git a/sites-enabled/autoconfig.replicant.us.conf b/sites-enabled/autoconfig.replicant.us.conf
new file mode 120000
index 0000000..dac69bf
--- /dev/null
+++ b/sites-enabled/autoconfig.replicant.us.conf
@@ -0,0 +1 @@
+../sites-available/autoconfig.replicant.us.conf \ No newline at end of file
diff --git a/sites-enabled/git.replicant.us.conf b/sites-enabled/git.replicant.us.conf
new file mode 120000
index 0000000..3a838ae
--- /dev/null
+++ b/sites-enabled/git.replicant.us.conf
@@ -0,0 +1 @@
+../sites-available/git.replicant.us.conf \ No newline at end of file
diff --git a/sites-enabled/letsencrypt.conf b/sites-enabled/letsencrypt.conf
new file mode 120000
index 0000000..f311029
--- /dev/null
+++ b/sites-enabled/letsencrypt.conf
@@ -0,0 +1 @@
+../sites-available/letsencrypt.conf \ No newline at end of file
diff --git a/sites-enabled/libsamsung-ipc.replicant.us.conf b/sites-enabled/libsamsung-ipc.replicant.us.conf
new file mode 120000
index 0000000..4a8900b
--- /dev/null
+++ b/sites-enabled/libsamsung-ipc.replicant.us.conf
@@ -0,0 +1 @@
+../sites-available/libsamsung-ipc.replicant.us.conf \ No newline at end of file