Compare commits
10 commits
7ce8e3895c
...
3c6f62ad67
Author | SHA1 | Date | |
---|---|---|---|
3c6f62ad67 | |||
3d77cd2abe | |||
2eb71e6412 | |||
3eccd76e8c | |||
ec993a8f25 | |||
b259167114 | |||
|
a5c852f2e8 | ||
|
4d1237b6fd | ||
|
884a4e1583 | ||
|
10457f66c9 |
18 changed files with 78 additions and 36 deletions
|
@ -1,4 +1,4 @@
|
|||
### GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
# GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
|
||||
Version 3, 19 November 2007
|
||||
|
||||
|
@ -8,7 +8,7 @@ Copyright (C) 2007 Free Software Foundation, Inc.
|
|||
Everyone is permitted to copy and distribute verbatim copies of this
|
||||
license document, but changing it is not allowed.
|
||||
|
||||
### Preamble
|
||||
## Preamble
|
||||
|
||||
The GNU Affero General Public License is a free, copyleft license for
|
||||
software and other kinds of works, specifically designed to ensure
|
||||
|
@ -59,9 +59,9 @@ under this license.
|
|||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
### TERMS AND CONDITIONS
|
||||
## TERMS AND CONDITIONS
|
||||
|
||||
#### 0. Definitions.
|
||||
### 0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU Affero General Public
|
||||
License.
|
||||
|
@ -102,7 +102,7 @@ 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.
|
||||
### 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
|
||||
|
@ -143,7 +143,7 @@ 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.
|
||||
### 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
|
||||
|
@ -168,7 +168,7 @@ 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.
|
||||
### 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
|
||||
|
@ -184,7 +184,7 @@ 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.
|
||||
### 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
|
||||
|
@ -197,7 +197,7 @@ 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.
|
||||
### 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
|
||||
|
@ -232,7 +232,7 @@ 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.
|
||||
### 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
|
||||
|
@ -328,7 +328,7 @@ 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.
|
||||
### 7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
|
@ -387,7 +387,7 @@ 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.
|
||||
### 8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
|
@ -415,7 +415,7 @@ 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.
|
||||
### 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
|
||||
|
@ -426,7 +426,7 @@ 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.
|
||||
### 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
|
||||
|
@ -451,7 +451,7 @@ rights granted under this License, and you may not initiate litigation
|
|||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
#### 11. Patents.
|
||||
### 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
|
||||
|
@ -520,7 +520,7 @@ 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.
|
||||
### 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
|
||||
|
@ -533,7 +533,7 @@ 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.
|
||||
### 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
|
||||
|
@ -554,7 +554,7 @@ 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.
|
||||
### 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
|
||||
|
@ -580,7 +580,7 @@ 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.
|
||||
### 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
|
||||
|
@ -592,7 +592,7 @@ 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.
|
||||
### 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
|
||||
|
@ -604,7 +604,7 @@ 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.
|
||||
### 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,
|
||||
|
@ -615,7 +615,7 @@ copy of the Program in return for a fee.
|
|||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
### How to Apply These Terms to Your New Programs
|
||||
## 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
|
1
mrmp/__init__.py
Normal file
1
mrmp/__init__.py
Normal file
|
@ -0,0 +1 @@
|
|||
__version__ = '0.0.1'
|
|
@ -17,8 +17,8 @@ def check():
|
|||
packages = []
|
||||
broken = []
|
||||
lo = local.Local()
|
||||
for architecture in lo.architectures:
|
||||
for subsystem in architecture.subsystems.values():
|
||||
for architecture in lo:
|
||||
for subsystem in architecture:
|
||||
for package in subsystem.catalog.packages.values():
|
||||
packages.append((subsystem, package))
|
||||
for index, items in enumerate(packages):
|
|
@ -24,9 +24,13 @@ class Architecture:
|
|||
for f in arguments.subsystems]
|
||||
if s in subsystems}
|
||||
|
||||
def __iter__(self):
|
||||
return self.subsystems.values().__iter__()
|
||||
|
||||
def __str__(self):
|
||||
lines = [
|
||||
f'Name: {self.name}',
|
||||
f'Bits: {self.bits}',
|
||||
f' Name: {self.name}',
|
||||
f' Bits: {self.bits}',
|
||||
f'Subsystems: {subsystem.name for subsystem in self}',
|
||||
]
|
||||
return os.linesep.join(lines)
|
|
@ -10,9 +10,12 @@ class Repository:
|
|||
self.architectures = [architecture.Architecture(self, a)
|
||||
for a in arguments.architectures]
|
||||
|
||||
def __iter__(self):
|
||||
return self.architectures.__iter__()
|
||||
|
||||
def __str__(self):
|
||||
lines = [
|
||||
f' Location: {self.location}',
|
||||
f'Architectures: {[a.name for a in self.architectures]}',
|
||||
f'Architectures: {[architecture.name for architecture in self]}',
|
||||
]
|
||||
return os.linesep.join(lines)
|
|
@ -15,8 +15,8 @@ class Synchronization:
|
|||
self.threads = arguments.threads
|
||||
|
||||
def run(self):
|
||||
for architecture in self.remote.architectures:
|
||||
for subsystem in architecture.subsystems.values():
|
||||
for architecture in self.remote:
|
||||
for subsystem in architecture:
|
||||
for _, package in sorted(subsystem.catalog.packages.items()):
|
||||
f = file.File(
|
||||
os.path.join(self.remote.location, subsystem.path),
|
32
pyproject.toml
Normal file
32
pyproject.toml
Normal file
|
@ -0,0 +1,32 @@
|
|||
[build-system]
|
||||
requires = ['hatchling']
|
||||
build-backend = 'hatchling.build'
|
||||
|
||||
[project]
|
||||
authors = [
|
||||
{ name = 'Marc Beninca', email = 'git@marc.beninca.link' },
|
||||
]
|
||||
maintainers = [
|
||||
{ name = 'Marc Beninca', email = 'git@marc.beninca.link' },
|
||||
]
|
||||
classifiers = [
|
||||
'Programming Language :: Python :: 3',
|
||||
'License :: OSI Approved :: GNU Affero General Public License v3',
|
||||
'Operating System :: OS Independent',
|
||||
]
|
||||
dependencies = []
|
||||
description = 'Msys Repository Mirror Profile'
|
||||
dynamic = ['version']
|
||||
keywords = []
|
||||
license-files = { paths = ['license.md'] }
|
||||
name = 'mrmp'
|
||||
readme = 'readme.md'
|
||||
requires-python = '>= 3.10'
|
||||
|
||||
[project.scripts]
|
||||
# command = 'package.module:function'
|
||||
|
||||
[project.urls]
|
||||
|
||||
[tool.hatch.version]
|
||||
path = 'mrmp/__init__.py'
|
|
@ -5,26 +5,28 @@ A tool to handle local/remote msys/mingw repositories.
|
|||
## Features
|
||||
|
||||
* [ ] display information
|
||||
|
||||
* [ ] synchronize data
|
||||
* [ ] fetch remote catalogs
|
||||
* [ ] download packages
|
||||
* [ ] single threading
|
||||
* [ ] multi threading
|
||||
* [ ] generate signatures from catalogs
|
||||
|
||||
* [ ] check integrity
|
||||
* [ ] catalogs
|
||||
* [ ] packages
|
||||
* [x] single threading
|
||||
* [ ] multi threading
|
||||
|
||||
* [ ] progress bars
|
||||
* [ ] build archive
|
||||
* [ ] extract distribution
|
||||
* [ ] get base file system
|
||||
* [ ] extract from distribution
|
||||
* [ ] bootstrap mintty, msys, pacman
|
||||
* [ ] apply configuration
|
||||
* [ ] archive directory
|
||||
* [ ] build dependency graph
|
||||
* [ ] generate graphviz diagram
|
||||
* [ ] render final image
|
||||
|
||||
## Tests
|
||||
## Info
|
||||
|
||||
* [ ] pacman's need of both .db and .files as catalog
|
||||
* [ ] bootstrap mintty, msys runtime and pacman
|
||||
* pacman needs .db catalog, but .files seems optional
|
Loading…
Reference in a new issue