From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 1 Feb 2012 21:47:47 +0400 From: Alexey Tourbin To: ALT Linux Team development discussions Message-ID: <20120201174747.GA4025@altlinux.org> References: <20111219200155.GA18056@dad.imath.kiev.ua> <20111221080510.GA31843@mail.truecrux.org> <4EF1BD15.3030109@altlinux.org> <20111221122555.GA32287@mail.truecrux.org> <4EF1D833.7030304@altlinux.org> <20111221183730.GA24356@dad.imath.kiev.ua> <4EF301D0.6060609@altlinux.org> <20111222205611.GA16904@dad.imath.kiev.ua> <11aca36c3406b4e751293dfd65270a50@office.etersoft.ru> <20120128001938.GA15519@altlinux.org> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20120128001938.GA15519@altlinux.org> Subject: Re: [devel] Q: personal package repositories: user PoV X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Feb 2012 17:47:48 -0000 Archived-At: List-Archive: List-Post: On Sat, Jan 28, 2012 at 04:19:39AM +0400, Dmitry V. Levin wrote: > 3. Добавление к NSVR пакета еще одной характеристики B. Автоматическое > увеличение этой характеристики самой сборочной системой при каждой > пересборке пакета. Сквозная адаптация всех инструментальных средств на > стороне пользователя (в первую очередь apt и rpm) для учета этой > характеристики B при обработке пакетов. Тут возможны различные варианты. > Можно включать эту характеристику в имя файла собранного пакета, а можно > этого не делать. Можно включать эту характеристику в пользовательские > интерфейсы выбора пакета (например, чтобы можно было указать ее для > уточнения пакета при вызове apt-get и rpm), а можно этого не делать. > Наконец, можно придумать для этой характеристики B какой-то новый тэг rpm, > а можно попробовать адаптировать какой-нибудь из уже существующих. > Чем больше будет таких мест, где сможет/будет фигурировать B, тем больше > рычагов управления будет у пользователя, с одной стороны, и тем сложнее > будет реализация и хуже обратная совместимость, с другой стороны. > > 4. На самом деле в rpm уже есть один тэг, который годится на роль такой > характеристики B. Более того, значение этого тэга уже сейчас > автоматически увеличивается самой сборочной системой при каждой пересборке > пакета. Более того, этот тэг уже сейчас rpm учитывает при обновлении > пакетов именно таким образом, как это нужно для решения нашей задачи: при > равенстве NSVR у ранее установленного и предлагаемого для обновления пакета > rpm соглашается на обновление, если у обновляемого пакета значение этого > тэга больше. Этот тэг называется BUILDTIME, и его можно получить с > помощью rpmquery: > $ rpmquery --qf '%{BUILDTIME}\n' -p Sisyphus/files/x86_64/RPMS/rpm-4.0.4-alt100.45.x86_64.rpm > 1327518688 > Поддержку учета BUILDTIME при обновлении пакетов я добавил в rpm > много лет назад, так что можно полагать, что у всех наших пользователей > она уже есть. Результат сборки пакетов не должен зависеть от модельного времени t, а должен зависеть только от ингредиентов, которые напрямую влияют на результат сборки. Таких ингредиентов два: B(S,C)->P, где S - исходный код пакета, C - содержимое сборочного чрута. Представление о времени в зависимостях вообще нерелевантно, и должно быть исключено. Например, если где-то требуется библиотечная функция foo(), то должен быть способ представить зависимость на функцию foo() - и такой способ сейчас существует. А если кому-то нужна библиотека не хуже 17 мартобря, освященная духом святым - это другое дело. Смысла характеристики B никакой нету, кроме привязки к модельному времени.