From owner-svn-src-head@freebsd.org Sat Aug 8 10:08:24 2020 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1D7D53A688C; Sat, 8 Aug 2020 10:08:24 +0000 (UTC) (envelope-from arichardson.kde@gmail.com) Received: from mail-ej1-f67.google.com (mail-ej1-f67.google.com [209.85.218.67]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4BNybp4YDxz4Zs4; Sat, 8 Aug 2020 10:08:22 +0000 (UTC) (envelope-from arichardson.kde@gmail.com) Received: by mail-ej1-f67.google.com with SMTP id o23so4581072ejr.1; Sat, 08 Aug 2020 03:08:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=11vwio3iGFDaaXi17K1FmLSgQsB1cWVUC3DkzzofctE=; b=jzHsyBPu6O4uqq10yW6syqSd9yHyWaUuScw2b5o7FBhcJ1qUCtp039n5lsEaTjBZvg IP+rhuN7Ov2YYaJyUzkhH/3Rl0dvV9HQ7VrhHz2M8A7JAGPXq+YodxYfBi04td8EfzVg /cyJ9GyiN26li3bD2wwHYMrduPimjcxFMWzjZhISr3ybmISE85WqHQigEewzTpLGUECx x9g88AdJyTahVGivnhEjYEKIt8loPVoQg6FZXJ1ghr2tMS0tJIbxu2JMiElXonfljmZF AxKqd6AAAXjo6zIx1Qz9K2i56LwLV8kitiMdwk0D8RoTbfU/lb9qQMpztDNZYUtAMcwB jMhg== X-Gm-Message-State: AOAM533cuRbasXMPU5FfqU10RbUefTCKidVbFMfB7q08Dd5FekEMdaNE 8UfV7+EeVlaEsL21rOwVrJ8tfrW42/JfPg== X-Google-Smtp-Source: ABdhPJwm01Y3SAHKJMkQNsSpPtcE9y5jISbYB699JJ4kKfSHqnoHdbuS8IKgAbvi7i67mf5w6PWehA== X-Received: by 2002:a17:906:3e95:: with SMTP id a21mr13305997ejj.388.1596881300313; Sat, 08 Aug 2020 03:08:20 -0700 (PDT) Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com. [209.85.221.54]) by smtp.gmail.com with ESMTPSA id g25sm7780049ejh.110.2020.08.08.03.08.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 08 Aug 2020 03:08:20 -0700 (PDT) Received: by mail-wr1-f54.google.com with SMTP id f7so3816073wrw.1; Sat, 08 Aug 2020 03:08:19 -0700 (PDT) X-Received: by 2002:a05:6000:1203:: with SMTP id e3mr16197440wrx.324.1596881299662; Sat, 08 Aug 2020 03:08:19 -0700 (PDT) MIME-Version: 1.0 References: <202008062046.076KkDSc013901@repo.freebsd.org> In-Reply-To: From: Alexander Richardson Date: Sat, 8 Aug 2020 11:08:08 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r363992 - head/usr.sbin/pwd_mkdb To: Mateusz Guzik Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 4BNybp4YDxz4Zs4 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of arichardsonkde@gmail.com designates 209.85.218.67 as permitted sender) smtp.mailfrom=arichardsonkde@gmail.com X-Spamd-Result: default: False [-1.12 / 15.00]; ARC_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17:c]; NEURAL_HAM_LONG(-0.94)[-0.944]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; RWL_MAILSPIKE_GOOD(0.00)[209.85.218.67:from]; NEURAL_SPAM_SHORT(0.28)[0.281]; RCVD_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[209.85.218.67:from]; NEURAL_HAM_MEDIUM(-0.45)[-0.453]; FREEMAIL_TO(0.00)[gmail.com]; FORGED_SENDER(0.30)[arichardson@freebsd.org,arichardsonkde@gmail.com]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; TAGGED_FROM(0.00)[]; FROM_NEQ_ENVFROM(0.00)[arichardson@freebsd.org,arichardsonkde@gmail.com] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2020 10:08:24 -0000 On Sat, 8 Aug 2020 at 02:19, Mateusz Guzik wrote: > > This broke i386 builds: > > /usr/src/usr.bin/chpass/field.c:175:15: error: incompatible pointer > types passing > '_bootstrap_time_t *' (aka 'unsigned long long *') to parameter > of type 'time_t *' > (aka 'int *') [-Werror,-Wincompatible-pointer-types] > if (!atot(p, &pw->pw_change)) > ^~~~~~~~~~~~~~ > /usr/src/usr.bin/chpass/chpass.h:67:27: note: passing argument to parameter here > int atot(char *, time_t *); > ^ > /usr/src/usr.bin/chpass/field.c:185:15: error: incompatible pointer > types passing > '_bootstrap_time_t *' (aka 'unsigned long long *') to parameter > of type 'time_t *' > (aka 'int *') [-Werror,-Wincompatible-pointer-types] > if (!atot(p, &pw->pw_expire)) > ^~~~~~~~~~~~~~ > /usr/src/usr.bin/chpass/chpass.h:67:27: note: passing argument to parameter here > int atot(char *, time_t *); > ^ Sorry, fixed in r364049. > On 8/6/20, Alex Richardson wrote: > > Author: arichardson > > Date: Thu Aug 6 20:46:13 2020 > > New Revision: 363992 > > URL: https://svnweb.freebsd.org/changeset/base/363992 > > > > Log: > > Allow bootstrapping pwd_mkdb on Linux/macOS > > > > We need to provide a struct passwd that is compatible with the target > > system and this is not the case when cross-building from macOS/Linux. > > It should also be a problem when bootstrapping for an i386 target from a > > FreeBSD amd64 host since time_t does not match across those systems. > > However, pwd_mkdb always truncates integer values to 32-bit so this > > difference does not result in different databases. > > > > Reviewed By: brooks > > Differential Revision: https://reviews.freebsd.org/D25931 > > > > Added: > > head/usr.sbin/pwd_mkdb/pwd.h (contents, props changed) > > Modified: > > head/usr.sbin/pwd_mkdb/Makefile > > > > Modified: head/usr.sbin/pwd_mkdb/Makefile > > ============================================================================== > > --- head/usr.sbin/pwd_mkdb/Makefile Thu Aug 6 20:44:40 2020 (r363991) > > +++ head/usr.sbin/pwd_mkdb/Makefile Thu Aug 6 20:46:13 2020 (r363992) > > @@ -9,5 +9,8 @@ MAN= pwd_mkdb.8 > > SRCS= pw_scan.c pwd_mkdb.c > > > > CFLAGS+= -I${SRCTOP}/lib/libc/gen # for pw_scan.h > > +.if defined(BOOTSTRAPPING) > > +CFLAGS+=-I${.CURDIR} > > +.endif > > > > .include > > > > Added: head/usr.sbin/pwd_mkdb/pwd.h > > ============================================================================== > > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > > +++ head/usr.sbin/pwd_mkdb/pwd.h Thu Aug 6 20:46:13 2020 (r363992) > > @@ -0,0 +1,66 @@ > > +/*- > > + * SPDX-License-Identifier: BSD-2-Clause > > + * > > + * Copyright 2018-2020 Alex Richardson > > + * > > + * This software was developed by SRI International and the University of > > + * Cambridge Computer Laboratory (Department of Computer Science and > > + * Technology) under DARPA contract HR0011-18-C-0016 ("ECATS"), as part of > > the > > + * DARPA SSITH research programme. > > + * > > + * This software was developed by SRI International and the University of > > + * Cambridge Computer Laboratory under DARPA/AFRL contract > > (FA8750-10-C-0237) > > + * ("CTSRD"), as part of the DARPA CRASH research programme. > > + * > > + * Redistribution and use in source and binary forms, with or without > > + * modification, are permitted provided that the following conditions > > + * are met: > > + * 1. Redistributions of source code must retain the above copyright > > + * notice, this list of conditions and the following disclaimer. > > + * 2. Redistributions in binary form must reproduce the above copyright > > + * notice, this list of conditions and the following disclaimer in the > > + * documentation and/or other materials provided with the distribution. > > + * > > + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND > > + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > > PURPOSE > > + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE > > + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > > CONSEQUENTIAL > > + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, > > STRICT > > + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY > > WAY > > + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > + * SUCH DAMAGE. > > + * > > + * $FreeBSD$ > > + */ > > + > > +/* > > + * When building pwd_mkdb we need to use target systems definition of > > + * struct passwd. This protects against future changes to struct passwd > > and > > + * is essential to allow cross-building from Linux/macOS hosts since the > > + * structure is not compatible there. > > + */ > > +#include > > +#include > > +/* > > + * Note: pwd_mkdb always stores uint32_t for all integer fields (including > > + * time_t!) so these definitions do not need to match sys/sys/_types.h > > + */ > > +typedef uint32_t _bootstrap_gid_t; > > +typedef uint32_t _bootstrap_uid_t; > > +typedef uint64_t _bootstrap_time_t; > > +#define _GID_T_DECLARED > > +#define _TIME_T_DECLARED > > +#define _UID_T_DECLARED > > +#define _SIZE_T_DECLARED > > + > > +#define gid_t _bootstrap_gid_t > > +#define uid_t _bootstrap_uid_t > > +#define time_t _bootstrap_time_t > > +#define passwd _bootstrap_passwd > > +#include "../../include/pwd.h" > > +#undef gid_t > > +#undef uid_t > > +#undef time_t > > > > > -- > Mateusz Guzik