Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Jan 2022 16:12:38 +0100
From:      Rosenke <rosenke@dssgmbh.de>
To:        Baptiste Daroussin <bapt@FreeBSD.org>, Stefan Esser <se@FreeBSD.org>
Cc:        FreeBSD <freebsd-ports@freebsd.org>
Subject:   Re: pkgbase checksums
Message-ID:  <c84cc214-91c1-3c83-226b-df0cabf8f169@dssgmbh.de>
In-Reply-To: <20220113125730.zh4zmxj5d4473nmr@aniel.nours.eu>
References:  <a0cc9488-ec23-3ae7-7e0c-f31d0b8e666f@dssgmbh.de> <5fc8453b-1aab-bce9-59e9-1ee36161a580@FreeBSD.org> <20220113125730.zh4zmxj5d4473nmr@aniel.nours.eu>

next in thread | previous in thread | raw e-mail | index | archive | help
On 13.01.22 13:57, Baptiste Daroussin wrote:
> On Thu, Jan 13, 2022 at 11:33:55AM +0100, Stefan Esser wrote:
>> Am 13.01.22 um 10:36 schrieb Henrik Rosenke:
>>> Hello,
>>>
>>> what is the correct way to handle pkg checksum mismatches in pkgbase? (pkg
>>> check -sa)
>>> For example after installing bash or editing /etc/hosts there are checksum
>>> mismatches:
>>>
>>>      FreeBSD-clibs-12.2.s20220105232846: checksum mismatch for /etc/hosts
>>>      FreeBSD-clibs-12.2.s20220105232846: checksum mismatch for /etc/shells
>>>
>>> I workaround this after setting up the jail by executing pkg check -r but this
>>> doesnt seem right to me. Also this doesnt handle modifications made afterwards.
>>> In normal pkgs we got the ability to provide a default and modify this, for
>>> this files no checksums are stored from what i know.
>> I'm not a pkgbase user, but I'd think that this could be fixed
>> by using @sample to have e.g. /etc/hosts.sample with a checksum,
>> which is copied to /etc/hosts if that file does not exist during
>> installation.
>>
>> This logic works great for ports, but had the disadvantage of
>> doubling the number of files in /etc that are installed that way,
>> since the .sample file will have to stay as part of the installed
>> pkgbase package and may occasionally be updated.
>>
>> That would also allow a special version of etcupdate to detect
>> changed .sample files and to perform a 3-way merge on the installed
>> files as is possible when building from source.
>>
>> Regards, STefan
> We have @config for base were pkg will do a 3 way merge, just those files are
> probably not marked as @config and should.
>
> (@config is native while @sample is external and define only in the ports tree)
>
> if they are marked as such, then it means we have a bug in pkg checksum as it
> should not check the checksum of the files marked @config
>
> Best regards,
> Bapt
I tried it again with pkg 1.17.5 and FreeBSD 12.3 packages but got the 
same Error. The @config section is included in the packages:
pkg info -R FreeBSD-clibs
config: [
     "/etc/nsswitch.conf",
     "/etc/libmap.conf",
     "/etc/hosts",
     "/etc/protocols",
     "/etc/netconfig",
     "/etc/hosts.equiv",
     "/etc/rpc",
     "/etc/mac.conf",
     "/etc/shells",
     "/etc/networks"
]

In total these are now 9 cheksum mismatches in the pkgbase jail:
=== root@dsssrvt4j1 (pts/2) ~ 19(3) -> pkg check -sa
Checking all packages:   1%
FreeBSD-clibs-12.2.s20220114103031: checksum mismatch for /etc/hosts
FreeBSD-clibs-12.2.s20220114103031: checksum mismatch for /etc/shells
Checking all packages:  78%
FreeBSD-runtime-12.2.s20220114103031: checksum mismatch for /.profile
FreeBSD-runtime-12.2.s20220114103031: checksum mismatch for /etc/locate.rc
FreeBSD-runtime-12.2.s20220114103031: checksum mismatch for /etc/login.conf
FreeBSD-runtime-12.2.s20220114103031: checksum mismatch for /etc/sysctl.conf
FreeBSD-runtime-12.2.s20220114103031: checksum mismatch for /etc/syslog.conf
FreeBSD-runtime-12.2.s20220114103031: checksum mismatch for /etc/ttys
FreeBSD-runtime-12.2.s20220114103031: checksum mismatch for /root/.profile
Checking all packages: 100%

-- 
Regards,
Henrik Rosenke




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c84cc214-91c1-3c83-226b-df0cabf8f169>