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

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jan 17, 2022 at 04:17:46PM +0100, Rosenke wrote:
> On 17.01.22 16:12, Rosenke wrote:
> > 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%
> > 
> Whoops,  copied the wrong output:
> === root@dsssrvt4j1 (pts/1) ~ 1(3) -> pkg check -sa
> Checking all packages:   1%
> FreeBSD-clibs-12.3.s20220117084939: checksum mismatch for /etc/hosts
> FreeBSD-clibs-12.3.s20220117084939: checksum mismatch for /etc/shells
> Checking all packages:  78%
> FreeBSD-runtime-12.3.s20220117084939: checksum mismatch for /etc/locate.rc
> FreeBSD-runtime-12.3.s20220117084939: checksum mismatch for /etc/login.conf
> FreeBSD-runtime-12.3.s20220117084939: checksum mismatch for /etc/motd
> FreeBSD-runtime-12.3.s20220117084939: checksum mismatch for /etc/sysctl.conf
> FreeBSD-runtime-12.3.s20220117084939: checksum mismatch for /etc/syslog.conf
> FreeBSD-runtime-12.3.s20220117084939: checksum mismatch for /etc/ttys
> Checking all packages: 100%
> 

Here we are ;), the bug is on my side then :D, we pkg devs (I said we because
maybe manu will be faster than me on this) will dive in the code and fix.

Best regards
Bapt



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20220117152044.5njhh72fw7hm4tae>