Control: tag -1 +help This issue is currently at a standstill: seemingly the used helper tool gftools at its core rely on network access to infuse subsets from other font sources during compilation of a font. Help figuring out how to build Noto fonts offline (with gftools or bypassing it) is much appreciated.
This is the kind of error I get:
python3 -m notobuilder sources/config-sans-chorasmian.yaml
INFO:fontmake.font_project:Building master UFOs and designspace from Glyphs
source
INFO:glyphsLib.parser:Parsing .glyphs file
INFO:glyphsLib.builder:Running 'align_alternate_layers' transformation
INFO:glyphsLib.builder:Running 'propagate_all_anchors' transformation
WARNING:glyphsLib.builder.builders.UFOBuilder:Non-existent glyph class
public.kern1.small_aleph-chor.calt0 found in kerning rules.
INFO:fontmake.font_project:Saving
/build/fonts-noto-chorasmian-1.004+ds/sources/NotoSansChorasmian.designspace
INFO:fontmake.font_project:Saving
/build/fonts-noto-chorasmian-1.004+ds/sources/NotoSansChorasmian-Regular.ufo.json
INFO:fontmake.font_project:Loading 1 DesignSpace source UFOs
[1/8] instantiateUfo
fontmake -i Noto Sans Chorasmian Regular -o ufo -m
NotoSansChorasmian.designspace --ufo-structure=json --output-dir instance_ufos
[2/8] addSubset
FAILED: [code=1] full-designspace/NotoSansChorasmian.designspace
/usr/bin/python3 -m gftools.builder.jobrunner gftools-add-ds-subsets
--allow-sparse -j -y /tmp/tmpos9euuc_ -o
full-designspace/NotoSansChorasmian.designspace NotoSansChorasmian.designspace
Command failed:
gftools-add-ds-subsets --allow-sparse -j -y /tmp/tmpos9euuc_ -o
full-designspace/NotoSansChorasmian.designspace NotoSansChorasmian.designspace
INFO:gftools.subsetmerger:Downloading notofonts/latin-greek-cyrillic main
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 204, in
_new_conn
sock = connection.create_connection(
(self._dns_host, self.port),
...<2 lines>...
socket_options=self.socket_options,
)
File "/usr/lib/python3/dist-packages/urllib3/util/connection.py", line 60, in
create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/socket.py", line 977, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno -3] Temporary failure in name resolution
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 787, in
urlopen
response = self._make_request(
conn,
...<10 lines>...
**response_kw,
)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 488, in
_make_request
raise new_e
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 464, in
_make_request
self._validate_conn(conn)
~~~~~~~~~~~~~~~~~~~^^^^^^
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 1093,
in _validate_conn
conn.connect()
~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 759, in
connect
self.sock = sock = self._new_conn()
~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 211, in
_new_conn
raise NameResolutionError(self.host, self, e) from e
urllib3.exceptions.NameResolutionError: HTTPSConnection(host='github.com',
port=443): Failed to resolve 'github.com' ([Errno -3] Temporary failure in name
resolution)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 644, in send
resp = conn.urlopen(
method=request.method,
...<9 lines>...
chunked=chunked,
)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 841, in
urlopen
retries = retries.increment(
method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]
)
File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 535, in
increment
raise MaxRetryError(_pool, url, reason) from reason # type:
ignore[arg-type]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='github.com',
port=443): Max retries exceeded with url:
/notofonts/latin-greek-cyrillic/archive/main.zip (Caused by
NameResolutionError("HTTPSConnection(host='github.com', port=443): Failed to
resolve 'github.com' ([Errno -3] Temporary failure in name resolution)"))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/gftools-add-ds-subsets", line 8, in <module>
sys.exit(main())
~~~~^^
File "/usr/lib/python3/dist-packages/gftools/scripts/add_ds_subsets.py", line
168, in main
).add_subsets()
~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/gftools/subsetmerger.py", line 318, in
add_subsets
added_subsets |= self.add_subset(input_descriptor, subset)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/gftools/subsetmerger.py", line 342, in
add_subset
donor_ufo = self.obtain_upstream(subset["from"], input_descriptor)
File "/usr/lib/python3/dist-packages/gftools/subsetmerger.py", line 405, in
obtain_upstream
self.download_for_subsetting(repo, ref)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/gftools/subsetmerger.py", line 500, in
download_for_subsetting
repo_zip = ZipFile(download_file(repo_zipball))
~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/gftools/utils.py", line 243, in
download_file
request = requests.get(url, stream=True, headers=headers)
File "/usr/lib/python3/dist-packages/requests/api.py", line 73, in get
return request("get", url, params=params, **kwargs)
File "/usr/lib/python3/dist-packages/requests/api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 589, in
request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 677, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='github.com',
port=443): Max retries exceeded with url:
/notofonts/latin-greek-cyrillic/archive/main.zip (Caused by
NameResolutionError("HTTPSConnection(host='github.com', port=443): Failed to
resolve 'github.com' ([Errno -3] Temporary failure in name resolution)"))
[3/8] buildTTF
fontmake --output-path
../fonts/NotoSansChorasmian/unhinted/ttf/NotoSansChorasmian-Regular.ttf -o ttf
-u instance_ufos/NotoSansChorasmian-Regular.ufo.json --filter ... --filter
FlattenComponentsFilter --filter DecomposeTransformedComponentsFilter
ninja: build stopped: subcommand failed.
make[1]: *** [debian/rules:7: override_dh_auto_build] Error 1
- Jonas
--
* Jonas Smedegaard - idealist & Internet-arkitekt
* Tlf.: +45 40843136 Website: http://dr.jones.dk/
* Sponsorship: https://ko-fi.com/drjones
[x] quote me freely [ ] ask before reusing [ ] keep private
signature.asc
Description: signature

