Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
package-helpers
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
trisquel
package-helpers
Commits
ad12eaf5
Commit
ad12eaf5
authored
4 months ago
by
Luis Guzmán
Browse files
Options
Downloads
Patches
Plain Diff
python-apt: use git Mirrors.masterlist as main source
parent
c2084000
No related branches found
No related tags found
1 merge request
!1578
python-apt: use git Mirrors.masterlist as main source
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
helpers/DATA/python-apt/parse-mirror-masterlist.py
+87
-0
87 additions, 0 deletions
helpers/DATA/python-apt/parse-mirror-masterlist.py
helpers/make-python-apt
+8
-34
8 additions, 34 deletions
helpers/make-python-apt
with
95 additions
and
34 deletions
helpers/DATA/python-apt/parse-mirror-masterlist.py
0 → 100644
+
87
−
0
View file @
ad12eaf5
#! /usr/bin/python3
#
# Script to parse Mirrors.masterlist file for python-apt template
#
# Copyright (C) 2024 Luis Guzmán <ark@switnet.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import
re
import
argparse
# Set arguments and read input file
parser
=
argparse
.
ArgumentParser
(
description
=
"
Parse Mirrors.masterlist
"
)
parser
.
add_argument
(
"
file
"
,
help
=
"
Path to the Mirrors.masterlist file
"
)
parser
.
add_argument
(
"
--country
"
,
"
-c
"
,
help
=
"
Filter by country (e.g., AU, BR, CA)
"
,
default
=
None
)
args
=
parser
.
parse_args
()
with
open
(
args
.
file
,
'
r
'
)
as
file
:
input_text
=
file
.
read
()
# Split file by blocks per "Site:"
blocks
=
re
.
split
(
r
'
(?=Site:\s+)
'
,
input_text
)
filtered_blocks
=
[
block
.
strip
()
for
block
in
blocks
if
block
.
strip
().
startswith
(
"
Site:
"
)
]
# Process block country and site
mirrors
=
{}
for
block
in
blocks
:
country_match
=
re
.
search
(
r
'
Country:\s+(\w{2})\b
'
,
block
)
country
=
country_match
.
group
(
1
)
if
country_match
else
None
site_match
=
re
.
search
(
r
'
Site:\s+(\S+)
'
,
block
)
site
=
site_match
.
group
(
1
)
if
site_match
else
None
if
not
country
or
not
site
:
continue
https_matches
=
re
.
findall
(
r
"
Archive-https:\s+(\S+)
"
,
block
)
http_matches
=
re
.
findall
(
r
"
Archive-http:\s+(\S+)
"
,
block
)
https_urls
=
[
f
"
https://
{
site
}{
path
}
"
for
path
in
https_matches
]
http_urls
=
[
f
"
http://
{
site
}{
path
}
"
for
path
in
http_matches
]
# Save data in dict
if
country
not
in
mirrors
:
mirrors
[
country
]
=
{}
mirrors
[
country
][
site
]
=
{
"
https
"
:
https_urls
,
"
http
"
:
http_urls
}
# Print output
for
country
,
sites
in
sorted
(
mirrors
.
items
()):
if
args
.
country
and
country
!=
args
.
country
:
continue
valid_sites
=
{
site
:
urls
for
site
,
urls
in
sites
.
items
()
if
urls
[
"
https
"
]
or
urls
[
"
http
"
]
}
if
not
valid_sites
:
continue
print
(
f
"
#LOC:
{
country
}
"
)
for
site
,
urls
in
valid_sites
.
items
():
for
url
in
urls
[
"
https
"
]:
print
(
url
)
for
url
in
urls
[
"
http
"
]:
print
(
url
)
This diff is collapsed.
Click to expand it.
helpers/make-python-apt
+
8
−
34
View file @
ad12eaf5
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#
VERSION=
8
VERSION=
9
COMPONENT=main
COMPONENT=main
#Be aware to not pull/build before publish date on T12.
#Be aware to not pull/build before publish date on T12.
...
@@ -27,39 +27,13 @@ COMPONENT=main
...
@@ -27,39 +27,13 @@ COMPONENT=main
# Fix version number due to early release.
# Fix version number due to early release.
export FULLVERSION="$(sed 's|ubuntu4||' <<< $FULLVERSION)"
export FULLVERSION="$(sed 's|ubuntu4||' <<< $FULLVERSION)"
# https://en.wikipedia.org/wiki/ISO_3166-2
# Use git Mirrors.masterlist as source.
cat << EOF > data/templates/Trisquel.mirrors
Mirrors_masterlist=$(mktemp)
#LOC:AU
Mirrors_masterlist_git="trisquel-packages/-/raw/master/extra/mirrors/Mirrors.masterlist"
https://mirrors.middlendian.com/trisquel-packages/
#LOC:BR
wget https://gitlab.trisquel.org/trisquel/$Mirrors_masterlist_git -o /dev/null -O $Mirrors_masterlist
https://trisquel.c3sl.ufpr.br/packages/
python3 $DATA/parse-mirror-masterlist.py $Mirrors_masterlist > data/templates/Trisquel.mirrors
#LOC:CA
rm $Mirrors_masterlist
https://mirror.csclub.uwaterloo.ca/trisquel/packages/
#LOC:CN
https://mirrors.ustc.edu.cn/trisquel
https://mirrors.nju.edu.cn/trisquel/
#LOC:DK
https://mirrors.dotsrc.org/trisquel/
#LOC:EC
https://mirror.cedia.org.ec/trisquel.packages
#LOC:ES
https://ftp.caliu.cat/pub/distribucions/trisquel/packages
#LOC:HU
https://quantum-mirror.hu/mirrors/pub/trisquel/packages/
#LOC:JP
https://repo.jing.rocks/trisquel/
#LOC:SE
https://ftp.acc.umu.se/mirror/trisquel/packages/
https://ftpmirror1.infania.net/mirror/trisquel/packages/
https://ftp.sunet.se/mirror/trisquel/packages/
#LOC:US
https://archive.trisquel.info/trisquel/
https://archive.trisquel.org/trisquel/
https://mirror.fsf.org/trisquel/
https://mirrors.ocf.berkeley.edu/trisquel/
https://mirror.math.princeton.edu/pub/trisquel-packages/
https://mirror.vern.cc/trisquel/
EOF
cat << EOF > data/templates/Trisquel.info.in
cat << EOF > data/templates/Trisquel.info.in
_ChangelogURI: https://packages.trisquel.org/changelogs/pool/%s/%s/%s/%s_%s/changelog
_ChangelogURI: https://packages.trisquel.org/changelogs/pool/%s/%s/%s/%s_%s/changelog
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment