From: Jan Kiszka <jan.kiszka@siemens.com>
To: Benedikt Niedermayr <benbrenson89@googlemail.com>,
isar-users <isar-users@googlegroups.com>
Cc: Claudius Heine <ch@denx.de>
Subject: Re: [RFC v2][PATCH 2/3] build-rep: Add helper class
Date: Wed, 24 Jan 2018 22:31:39 +0100 [thread overview]
Message-ID: <7dff65b2-2d63-d694-6a68-69ba3f0a8ad4@siemens.com> (raw)
In-Reply-To: <4c5b731d-d337-8be2-cd2d-025768ee6497@googlemail.com>
On 2018-01-24 21:53, Benedikt Niedermayr wrote:
> Am 24.01.2018 um 19:48 schrieb Jan Kiszka:
>> I also started to look into aptly, which I had on my notes for a while.
>> One reason is that it could act as a manual workaround for the missing
>> version-freezing support in Isar (pull into aptly repo, take a snapshot,
>> and then build from it with Isar).
>>
>> Another is that we also need some tooling to manage mirrors and
>> snapshots on the long run, and reprepro, TBHO, smells strange. On first
>> glance, it looks to me like the multistrap of the repo management tools:
>> once a cool thing, but now unmaintained.
>>
>> Did you dig further into aptly? I'm currently wondering how it
>> internally manages snapshots, if it does proper deduplication and how
>> much of that can be preserved when publishing for consumption by, say,
>> Isar...
>>
>> Jan
>>
> Yes,
>
> Until now I have implemented two approaches.
>
> So I will offer some of my results tomorrow.
>
> What I first did, was to use aptly as a complete mirror. Aptly creates a
> mirror and each package, which is requested by Isar will be added to the
> mirror and then be downloaded from there.
>
> Unfortunately that was not as easy as expected, since aptly cannot
> download packages directly. Aptly was originally developed for creating
> complete debian mirrors.
>
> It has now the "-filter" option, which can be used for narrowing the
> packages (and also dependecies) to be mirrored.
>
> So for each additional package I extended the filter and updated the
> mirror afterwards, but that architecture appeared to suffer under less
> performance, since each extension of the filter
>
> and subsequent update caused a download of debians packages.gz file (~
> 10MB).
>
You went down the same path I was exploring the past hours. But I
dropped as well, also because of such traps:
https://groups.google.com/forum/#!searchin/aptly-discuss/partial$20mirroring%7Csort:date/aptly-discuss/SCMrc0w5Mq0/up4RpnMLBgAJ
>
> My current approach is to create only a local repo after the first Isar
> build suceeded. This avoids complexity for now, since Isar and all
> debian tools are resolving dependencies as usual, when
>
> running against upstream repos.
Would be interested to see the changes you did for that.
>
> After the first build I create a snapshot of the local repo (both is
> possible: creating snapshots of local repos and also mirrors).
>
>
> I'm just investigating the deduplication topic and will give you response.
>
Deduplication seems to be done by aptly simply by creating hardlinks.
That even works nicely when publishing to a local directory.
Thinking the aptly path further: I quickly started to dream of a lazy
mirror. What if we could teach it to create a full mirror but only fetch
packages when someone requests them?
That means we would first need a live publication services using the
built-in webserver or something like inotify or even fuse for file-based
publication. Then we could track accesses and pull from upstream on
demand. After the first build, we would snapshot the result and use that
from then on. The impact on Isar would be minimal, no separate
dependency tracking, no Debian logic duplication, simple user interface.
That's very similar to what Claudius initially proposed, but we would be
building on top of an existing, mature repo management tool.
Jan
--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2018-01-24 21:31 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-11 11:19 [RFC v2][PATCH 0/3] Introduce base-apt Alexander Smirnov
2018-01-11 11:19 ` [RFC v2][PATCH 1/3] dpkg-base: Make DEBIAN_DEPENDS global Alexander Smirnov
2018-01-11 11:19 ` [RFC v2][PATCH 2/3] build-rep: Add helper class Alexander Smirnov
2018-01-11 15:47 ` Jan Kiszka
2018-01-12 12:32 ` Henning Schild
2018-01-12 13:29 ` Alexander Smirnov
2018-01-12 16:25 ` Henning Schild
2018-01-14 16:53 ` Jan Kiszka
2018-01-19 21:23 ` Benedikt Niedermayr
2018-01-24 18:48 ` Jan Kiszka
2018-01-24 20:53 ` Benedikt Niedermayr
2018-01-24 21:31 ` Jan Kiszka [this message]
2018-01-25 18:52 ` Benedikt Niedermayr
2018-01-23 11:50 ` Baurzhan Ismagulov
2018-01-23 13:02 ` Jan Kiszka
2018-01-24 13:44 ` Baurzhan Ismagulov
2018-01-23 16:34 ` Christian Storm
2018-01-11 11:19 ` [RFC v2][PATCH 3/3] base-apt: Introduce fetching upstream apt Alexander Smirnov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7dff65b2-2d63-d694-6a68-69ba3f0a8ad4@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=benbrenson89@googlemail.com \
--cc=ch@denx.de \
--cc=isar-users@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox