aptly-dev / aptly

aptly - Debian repository management tool
https://www.aptly.info/
MIT License
2.56k stars 374 forks source link

Cannot update mirror of manticore search - aptly cannot parse Packages #1203

Closed SniperCZE closed 1 year ago

SniperCZE commented 1 year ago

I'm trying to mirror deb repository for manticore search. aptly mirror create works well but aptly mirror update ends with parsing error. Repository itself is working (I can install manticore directly from their repository on debian and ubuntu). Example bellow is for bookworm but exactly same error happens when try to mirror bullseye, jammy or focal repo.

Detailed Description

root@apt-mirror:~# aptly mirror create -with-sources=false -with-udebs=false -architectures=amd64 manticoresearch_bookworm http://repo.manticoresearch.com/repository/manticoresearch_bookworm/ bookworm main Downloading http://repo.manticoresearch.com/repository/manticoresearch_bookworm/dists/bookworm/InRelease... Success downloading http://repo.manticoresearch.com/repository/manticoresearch_bookworm/dists/bookworm/InRelease gpgv: can't allocate lock for '/root/.gnupg/trustedkeys.gpg' gpgv: Signature made Wed Apr 12 11:58:04 2023 UTC gpgv: using RSA key 4D0B7E7D0A886301B7E2F7D014D612DB3D2730E2 gpgv: Good signature from "Manticore Search support@manticoresearch.com"

Mirror [manticoresearch_bookworm]: http://repo.manticoresearch.com/repository/manticoresearch_bookworm/ bookworm successfully added. You can run 'aptly mirror update manticoresearch_bookworm' to download repository contents.

root@apt-mirror:~# aptly mirror update manticoresearch_bookworm Downloading http://repo.manticoresearch.com/repository/manticoresearch_bookworm/dists/bookworm/InRelease... Success downloading http://repo.manticoresearch.com/repository/manticoresearch_bookworm/dists/bookworm/InRelease gpgv: can't allocate lock for '/root/.gnupg/trustedkeys.gpg' gpgv: Signature made Wed Apr 12 11:58:04 2023 UTC gpgv: using RSA key 4D0B7E7D0A886301B7E2F7D014D612DB3D2730E2 gpgv: Good signature from "Manticore Search support@manticoresearch.com" Downloading & parsing package files... Downloading http://repo.manticoresearch.com/repository/manticoresearch_bookworm/dists/bookworm/main/binary-amd64/Packages... Success downloading http://repo.manticoresearch.com/repository/manticoresearch_bookworm/dists/bookworm/main/binary-amd64/Packages ERROR: unable to update: malformed stanza syntax

root@apt-mirror:~# aptly version aptly version: '1.5.0+18+ge90ac676'

r4co0n commented 1 year ago

This is somewhat related to #328 - The Packages file at http://repo.manticoresearch.com/repository/manticoresearch_bookworm/dists/bookworm/main/binary-amd64/Packages uses multi-line descriptions, and the lines are not indented properly.

We have:

[...]
Description: Manticore Search - database for search
Lightweight SQL-first database designed for search applications that suits both big and small data collections. This package includes the tool 'index_converter' necessary for converting indexes created before version 3.0.
[...]

This should be:

[...]
Description: Manticore Search - database for search
 Lightweight SQL-first database designed for search applications that suits both big and small data collections. This package includes the tool 'index_converter' necessary for converting indexes created before version 3.0.
[...]

Notice the additional space at the start of the second line. As is, the parser can't see that the line starting with Lightweight is not supposed to be another field, looks for : and a valid key structure in front of it, and fails.

I don't know about manticore, but you could try to ask them to conform to the file format as specified by Debian, especially DEB822 .

See: Debian Policy Manual 5.6.13. Description

sanikolaev commented 1 year ago

Hi guys. Fixed for Debian Bookworm arm64 and amd64:

➜  worker git:(master) curl -is "http://repo.manticoresearch.com/repository/manticoresearch_bookworm/dists/bookworm/main/binary-amd64/Packages"|grep "database for search" -A 1|head
Description: Manticore Search - database for search
 Lightweight SQL-first database designed for search applications that suits both big and small data collections. This package includes config files, stopwords, and other necessary resources for the daemon and auxiliary tools.
--
Description: Manticore Search - database for search
 Lightweight SQL-first database designed for search applications that suits both big and small data collections. This package includes the Manticore Search daemon.
--
Description: Manticore Search - database for search
 Lightweight SQL-first database designed for search applications that suits both big and small data collections. This package is a group package that refers to everything needed to run Manticore Search.
--
Description: Manticore Search - database for search

Can you please confirm it works fine now?

SniperCZE commented 1 year ago

I confirm, bookworm repo is mirrorable. Thanks for fix.