From nobody Mon May 20 00:26:40 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VjJKM17HQz5LKWb for ; Mon, 20 May 2024 00:26:47 +0000 (UTC) (envelope-from bacon4000@gmail.com) Received: from mail-ot1-x32f.google.com (mail-ot1-x32f.google.com [IPv6:2607:f8b0:4864:20::32f]) (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 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VjJKJ3rn3z4p44 for ; Mon, 20 May 2024 00:26:44 +0000 (UTC) (envelope-from bacon4000@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=gMw5iClh; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of bacon4000@gmail.com designates 2607:f8b0:4864:20::32f as permitted sender) smtp.mailfrom=bacon4000@gmail.com Received: by mail-ot1-x32f.google.com with SMTP id 46e09a7af769-6f10afc9917so744724a34.0 for ; Sun, 19 May 2024 17:26:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716164801; x=1716769601; darn=freebsd.org; h=content-transfer-encoding:in-reply-to:content-language:references :to:from:subject:user-agent:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=fRD3g5ZGhGhizYEJypBoliW1dfgedhKT0BiCUKlzqhQ=; b=gMw5iClhjpn6qhlU1b0/HMbqh3vCUBeHxSktYBccXld3yS3KmE+daIMrwfqqZAHkNc vpxQTYUskcQKfmgpLwDVB554D93Q6EE+cThR7ltIGmGSKruABQawenPi1Tjco2JD0pAE x0l+Lk5dF07My+tzmtUaMFLCyi2TGXoF+e45fjlVntHbCuaq5ZXGXbdsqzy1YnZRs2VK 7Ef4Cl6GMSvVCRzYOW23LHPWdedznhkmAUrltXesqI66zR3n0ryKO+OudIBbCl6qvQ13 5u19av+fgr3AruKy/UbEz9vF+DBNIHn7N1hQenRRRSaq6k9bP31XEyAAIdb7m76oTAcD LN6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716164801; x=1716769601; h=content-transfer-encoding:in-reply-to:content-language:references :to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fRD3g5ZGhGhizYEJypBoliW1dfgedhKT0BiCUKlzqhQ=; b=K3IbA5T55bCPKgHIIBMJr4VQx75F9iFmHS8vNQpuQA17498oIMY0NLnGC+jn/tldUr t3ZS+xgWSNi+zKI8aTUxEbF21HnVcYWolXEBCa6pp3RBN6AhdZi31K0HjS8nqzgoFhVS CT4xexrm9IXCSOf2KSsYXmnmUl3xK29TA7Ogs0+UaLaC7o2P4N4WZmTHhqcmhXQMi2uw kP484fykh0oGepmwq0FBKL1kI9b/ZqlwKQ++xGMRKRBgYnilz5WkE1l5PJsNLwjuRZM1 uI0o3mybT7xCmzS/LIwLtKg8mGbmuJkfENY0wB0vWNXIRagxNP0s6l1mLA9kUV2fFvS/ riZQ== X-Forwarded-Encrypted: i=1; AJvYcCVO3Hl5m3A3RDKN3rz1tX4JusNYuCXs4ymxN8BnASqs7lEcU6YGImTiv4xd6mNnZQWgSIyLUnVQGCxoeRbI1XItahP4HRLt5CBzt/g= X-Gm-Message-State: AOJu0YwZ9cHzMqVZABDn+rnpBK/D/DbaB1G8Md0V4y9ZFWs8eJvc4jtx pmYhnztVYCU/kAp8QUQY0yENZKQ1s/N8sCs5M2SR+AMLY5s0njno0+aDP7hP X-Google-Smtp-Source: AGHT+IHGf1iB17nXPsw4DQ53aF/7eoCVTG5tlcu5xZ6KmB+hKQBwBsQF+k8sXwSuAIVE8M6sBQGm7w== X-Received: by 2002:a9d:62cb:0:b0:6f1:1946:9c6d with SMTP id 46e09a7af769-6f13d83617cmr1911640a34.13.1716164801284; Sun, 19 May 2024 17:26:41 -0700 (PDT) Received: from [192.168.0.146] (108-255-3-0.lightspeed.milwwi.sbcglobal.net. [108.255.3.0]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-6f103ddf693sm2827698a34.50.2024.05.19.17.26.40 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 19 May 2024 17:26:41 -0700 (PDT) Message-ID: Date: Sun, 19 May 2024 19:26:40 -0500 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: A simpler question From: Jason Bacon To: George Mitchell , FreeBSD Hackers References: <21bd2968-848c-4f9f-9565-4d2a33812bc2@gmail.com> Content-Language: en-US In-Reply-To: <21bd2968-848c-4f9f-9565-4d2a33812bc2@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.87 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.98)[-0.978]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; MIME_GOOD(-0.10)[text/plain]; MIME_BASE64_TEXT(0.10)[]; XM_UA_NO_VERSION(0.01)[]; MIME_TRACE(0.00)[0:+]; TO_DN_ALL(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; ARC_NA(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; FROM_HAS_DN(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; TO_MATCH_ENVRCPT_SOME(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; TAGGED_RCPT(0.00)[freebsd]; MID_RHS_MATCH_FROM(0.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::32f:from] X-Rspamd-Queue-Id: 4VjJKJ3rn3z4p44 T24gNS8xOS8yNCAxNzo1NiwgSmFzb24gQmFjb24gd3JvdGU6DQo+IE9uIDUvMTkvMjQgMTc6 MzYsIEdlb3JnZSBNaXRjaGVsbCB3cm90ZToNCj4+IDEuIEFyZSB5b3UgYSBUaHVuZGVyYmly ZCB1c2VyIG9uIEZyZWVCU0Q/DQo+PiAyLiBEbyB5b3Ugc2VlIGEgImNoYXJ0IHdpdGggcmlz aW5nIHRyZW5kLCIgImNoYXJ0IHdpdGggZmFsbGluZyB0cmVuZCwiDQo+PiAiYmFyIGNoYXJ0 LCIgYW5kICJjbGlwYm9hcmQiIGVtb2ppcyAoVSsxRjRDOCB0aHJvdWdoIFUrMUY0Q0IpIG9u IHRoZQ0KPj4gbmV4dCBsaW5lPw0KPj4g8J+TiMKgwqDCoCDwn5OJwqDCoMKgIPCfk4rCoMKg wqAg8J+Tiw0KPj4gVGhhbmsgeW91IGZvciB5b3VyIGF0dGVudGlvbi7CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAtLSBH ZW9yZ2UNCj4gDQo+IEkgc2VlIHRoZW0gaW4gbXkgZGVmYXVsdCBUaHVuZGVyYmlyZCBzZXR1 cC7CoCBRdWl0ZSBzbWFsbCwgYWJvdXQgdGhlIHNhbWUgDQo+IGFzIHRoZSBmb250IHNpemUu DQo+IA0KDQpGcmVlQlNEIG1vcmF5LmFjYWRpeCAgYmFjb24gfiAxMDAwOiBwa2cgaW5mbyB8 IGdyZXAgbW9qaQ0KdHdlbW9qaS1jb2xvci1mb250LXR0Zi0xNC4wLjIgIENvbG9yIGVtb2pp IGZvbnQgdXNpbmcgVHdpdHRlciBVbmljb2RlIDEwDQoNCkZyZWVCU0QgbW9yYXkuYWNhZGl4 ICBiYWNvbiB+IDEwMDE6IHVuYW1lIC1hDQpGcmVlQlNEIG1vcmF5LmFjYWRpeC5iaXogMTQu MC1SRUxFQVNFLXA2IEZyZWVCU0QgMTQuMC1SRUxFQVNFLXA2ICMwOiBUdWUgDQpNYXIgMjYg MjA6MjY6MjAgVVRDIDIwMjQgDQpyb290QGFtZDY0LWJ1aWxkZXIuZGFlbW9ub2xvZ3kubmV0 Oi91c3Ivb2JqL3Vzci9zcmMvYW1kNjQuYW1kNjQvc3lzL0dFTkVSSUMgDQphbWQ2NA0KDQot LSANCkxpZmUgaXMgYSBnYW1lLiAgUGxheSBoYXJkLiAgUGxheSBmYWlyLiAgSGF2ZSBmdW4u DQoNCg== From nobody Mon May 20 00:33:02 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VjJSq4fCdz5LL2C for ; Mon, 20 May 2024 00:33:15 +0000 (UTC) (envelope-from alex@protasenko.com) Received: from mail.bkmks.com (mail.bkmks.com [IPv6:2600:3c05::f03c:93ff:fe4a:5395]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4VjJSp62g2z4qbB for ; Mon, 20 May 2024 00:33:14 +0000 (UTC) (envelope-from alex@protasenko.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bkmks.com header.s=mail header.b=ZYnSMGcn; dmarc=none; spf=pass (mx1.freebsd.org: domain of alex@protasenko.com designates 2600:3c05::f03c:93ff:fe4a:5395 as permitted sender) smtp.mailfrom=alex@protasenko.com Received: from [IPV6:2600:4040:a624:1700:aaa1:59ff:fee4:9880] (unknown [IPv6:2600:4040:a624:1700:aaa1:59ff:fee4:9880]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) (Authenticated sender: aprotasenko@bkmks.com) by mail.bkmks.com (Postfix) with ESMTPSA id ADDCD25F244 for ; Sun, 19 May 2024 20:33:06 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.bkmks.com ADDCD25F244 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bkmks.com; s=mail; t=1716165186; bh=TfktdljXnqZWJndGC0Od0ikZo9g6RpHKZoDv/3rYx0Q=; h=Date:Subject:To:References:From:In-Reply-To:From; b=ZYnSMGcna1vv3EbzcDm+KvA3AQd4I8DmGbgiWcExSb0GhU99H4Clyi0qXeYG/CvfJ hlz8hLIIrU//h5o1lUGeSnzTI3XQ78QgfugYJyEJZ17LB2MChYLPxA8Lta3sGYJgTi SjRX6rSsgxHJ9e3rXWoaxjhD0IMhp8CMjiHiMuRs= Content-Type: multipart/alternative; boundary="------------VCVuVhwkBhc0Im05t2oB0Xfc" Message-ID: Date: Sun, 19 May 2024 20:33:02 -0400 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: A simpler question To: freebsd-hackers@freebsd.org References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> <3b72bac2-1d40-48d6-9cc2-e43a510387c0@m5p.com> Content-Language: en-US From: Alex Protasenko In-Reply-To: <3b72bac2-1d40-48d6-9cc2-e43a510387c0@m5p.com> X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.49 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.996]; R_SPF_ALLOW(-0.20)[+mx]; R_DKIM_ALLOW(-0.20)[bkmks.com:s=mail]; MIME_GOOD(-0.10)[multipart/alternative,text/plain,multipart/related]; XM_UA_NO_VERSION(0.01)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; ASN(0.00)[asn:63949, ipnet:2600:3c05::/32, country:SG]; RCVD_COUNT_ONE(0.00)[1]; FREEFALL_USER(0.00)[alex]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~,4:~]; RCVD_TLS_ALL(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; ARC_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DMARC_NA(0.00)[protasenko.com]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; DKIM_TRACE(0.00)[bkmks.com:+] X-Rspamd-Queue-Id: 4VjJSp62g2z4qbB This is a multi-part message in MIME format. --------------VCVuVhwkBhc0Im05t2oB0Xfc Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit I see them fine in Thunderbird/KDE5 on 14.0-RELEASE-p6 Here's some of the related packages I have installed:         noto-emoji: 2.042_1         twemoji-color-font-ttf: 14.0.2         unicode-emoji: 15.1 On 5/19/24 18:58, George Mitchell wrote: > On 5/19/24 18:48, Alfonso S. Siciliano wrote: >> On 5/20/24 00:40, George Mitchell wrote: >>> On 5/19/24 18:36, George Mitchell wrote: >>>> 1. Are you a Thunderbird user on FreeBSD? >>>> 2. Do you see a "chart with rising trend," "chart with falling trend," >>>> "bar chart," and "clipboard" emojis (U+1F4C8 through U+1F4CB) on the >>>> next line? >>>> 📈    📉    📊    📋 >>>> Thank you for your attention. -- George >>> Partially answering my own question: Using chrome to browse the mailing >>> list archive, the emojis showed up perfectly, as they did on a Bcc >>> to my >>> backup gmail account.  But I could not see them when composing the >>> message, or reading the message from the list, in Thunderbird. >>> -- George >> >> I have just installed `pkg install noto-emoji` >> so i can see the emoji in this email in Thunderbird on CURRENT >> (exactly as I see them on my android smartphone). >> >> Alfonso > I have noto-emoji 2.042 installed, and I am running 13.2-RELEASE-p10. > But no visible emojis without chrome.                        -- George --------------VCVuVhwkBhc0Im05t2oB0Xfc Content-Type: multipart/related; boundary="------------Ro4ST5JnxMIDuH00PAZrUnH0" --------------Ro4ST5JnxMIDuH00PAZrUnH0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

I see them fine in Thunderbird/KDE5 on 14.0-RELEASE-p6

Here's some of the related packages I have installed:

        noto-emoji: 2.042_1
        twemoji-color-font-ttf: 14.0.2
        unicode-emoji: 15.1

On 5/19/24 18:58, George Mitchell wrote:
On 5/19/24 18:48, Alfonso S. Siciliano wrote:
On 5/20/24 00:40, George Mitchell wrote:
On 5/19/24 18:36, George Mitchell wrote:
1. Are you a Thunderbird user on FreeBSD?
2. Do you see a "chart with rising trend," "chart with falling trend,"
"bar chart," and "clipboard" emojis (U+1F4C8 through U+1F4CB) on the
next line?
📈    📉    📊    📋
Thank you for your attention.                                -- George
Partially answering my own question: Using chrome to browse the mailing
list archive, the emojis showed up perfectly, as they did on a Bcc to my
backup gmail account.  But I could not see them when composing the
message, or reading the message from the list, in Thunderbird.
-- George

I have just installed `pkg install noto-emoji`
so i can see the emoji in this email in Thunderbird on CURRENT
(exactly as I see them on my android smartphone).

Alfonso
I have noto-emoji 2.042 installed, and I am running 13.2-RELEASE-p10.
But no visible emojis without chrome.                        -- George
--------------Ro4ST5JnxMIDuH00PAZrUnH0 Content-Type: image/png; name="ZPYaHhoqdM9NmYmh.png" Content-Disposition: inline; filename="ZPYaHhoqdM9NmYmh.png" Content-Id: Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAABm4AAAK/CAYAAABgEzIbAAAACXBIWXMAAB2HAAAdhwGP5fFl AAAgAElEQVR4nOzdeViN6RsH8O+pqLSSNkVSouzMjG1mUCjZd8aabaxjibGTfWzZxxJZZixD iEFlZFfZM1FJSZRSkvbUqX5/nN8503FOC+JUvp/r6nI573Ke877vWd7nfp77FmRnZ+eDPklY 2FMAQIMG9QpdJyY6DuERz1FVRwtGxgZIiE9EfEIilJSUoFJJBRpV1KCvrwdDI30AwKu4BCQk JCI9IwvCHCHy8vJgoK8HfQM9xMXGIyk5FZYWtWBiavRFXmNpy83NQ53aP0IozMX9wL9hYFhd 0U0iIiIiIiL6qm3auBdrVu+CvcOPcN+7WtHNISIiIvpqqSi6AV8LfX09vIiOQ8LrJCS8ToKy ijLU1NWgqaEOI2MD6OtXk1rfxNQIJqZGSEh4g7jYeKSlZyIhMQlxr14DADQ0q0BfX08RL6VU XL7kD6EwF1paGgzaEBERERERKVhAQCA2b9oPJSUl/PLLCEU3h4iIiOirxsDNF1JZtRLq1TNH 9ItYpGdkwUC/GvT1q0FLW7PI7fT/v15qShpiYxPwJikZGlXUYFrTGJVVK32h1peOC//cwIrl 26CuroaHDx8DAJxG9Vdwq4iIiIiIiL5OBw+egufJf5CSnIpHj54gPz8fM2eNRdNmNopuGhER EdFXjYGbL6hqVR1UrarzUdtqaWsWG+Qp67R1NPH2bQqePn0OvepV0bu3PWY4j1J0s4iIiIiI iL5Kwhwh7t97hByhEJaWZnAa1Q8jRvZVdLOIiIiIvnoC1rj5dCWpcUNERERERERERERERFQc JUU3gIiIiIiIiIiIiIiIiEQYuCEiIiIiIiIiIiIiIiojGLghIiIiIiIiIiIiIiIqIxi4ISIi IiIiIiIiIiIiKiMYuCEiIiIiIiIiIiIiIiojGLghIiIiIiIiIiIiIiIqI1QU3QD6T0x0HGJj 4wEAxsYGMDE1UnCLiIiIiIiIiIiIiIjoSxJkZ2fnK7oR5V1Y2FNFN4GIiIiIiIiIiIiIiCoA pkojIiIiIiIiIiIiIiIqI5gqrRRZWdVRdBOIiIiIiIiIiIiIiKgc44wbIiIiIiIiIiIiIiKi MoKBGyIiIiIiIiIiIiIiojKCgRsiIiIiIiIiIiIiIqIygoEbIiIiIiIiIiIiIiKiMoKBGyIi IiIiIiIiIiIiojJCRdENICIiIiIiIiIiIvpSoqOj8erVK6SlpSm6KVRCmpqaMDQ0hKmp6Qdt x3NN5RUDN0RERERERERERFThZWZmIjg4mJ345VBaWhrS0tLw6tUr2NjYQF1dvcj1ea6pvGPg hoiIiIiIiIiIiCo8cUe+lpYWzMzMoKenp+gmUQklJiYiKioKqampCA4ORosWLYpcn+eaFOnK lSsAgHbt2n30Phi4ISIiIiIiIiIiogotOjpa0pHfvHlzRTeHPpCenh709PRw7949pKamIjo6 utC0aTzXVBEoKboBRERERERERERERJ/Tq1evAABmZmYKbgl9CvH5E59PeXiuqSJg4IaIiIiI iIiIiIgqNHGtE6bMKt/E56+o2jU811QRMHBDRERERERERERERERURjBwQ0RERERERERERERE VEYwcENERERERERERERERFRGMHBDRERERERERERERERURjBwQ0REREREREREREREVEYwcENE RERERERERERERFRGqCi6AUREREREREREREREihYXF4ctW7YhIuIpYmNjP2ofxsbGsLCogylT JsHIyKiUW0hfCwZuiIiIiEhKdHQ0fHzOw98/ANHR0QgODgEA2NhYw9TUFK1bt4K9fWeYmpoq uKVERERERESlIy4uDk5OY5CcnIz8/PyP3k9UVBSeP3+Oe/fuY+/e3Qze0Edh4IaIiIiIAIgC Nhs2bMSxY8flLg8ODkFwcAjOn/8HS5YsQ//+fTF9+jQGcIiIiIjoq7Z37z54eJwAAPTv3xcj R45QcIvoY2zevBXJyclo2rQpxo4dDQ0NjY/aT3p6OrZs2YrQ0MfYvHkrVq5cXsotpa8Ba9wQ EZUx9es3QK1a5oiIiFB0U4gUbtmyFbCxaYSLFy9KPb5zpxtq1TLHpElTFNSyisfH5zwcHLpK gjZ2dh0wY8Y0bNmyCWfPnsbZs6exZcsmzJgxDXZ2HQAAx44dh4NDV/j4nFdk04mIiIiIFGbV qtXYu3c/3rx5gzdv3sDdfR/27t2n6GaVCeWtfyMw8AHy8/M/KWgDABoaGpgyZTLy8/Px9Glk Kbaw7CqL9+hRUVH45puWGDhw8CfNoFIUzrgpw7Zt24579+4VuY6WlhY2bnT9Qi36OnXt2gNB QUFYv34t+vfvp+jmKNS+fQewaNFiqccEAgHU1dWhp6cHKysrdOxoiz59ekNdXV1BraSvyfLl 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 RBWaoaEhACAqKkrBLaFPIT5/4vMpD881VQQM3BAREREREREREVGFZmpqCk1NTaSmpuLevXuc jVHOJCYm4t69e0hNTYWmpiZMTU0LXZfnmioCQXZ2dr6iG1HehYU9BQBYWdVRcEuIiIiIiIiI iIhInszMTAQHByMtLU3RTaGPpKmpCRsbG6irqxe5Hs81lXcM3JQCBm6IiIiIiIiIiIjKh+jo aLx69Yqd+uWIpqYmDA0Ni5xpIw/PNZVXDNyUAgZuiIiIiIiIiIiIiIioNLDGDRERERERERER ERERURnBwA0REREREREREREREVEZwcANERERERERERERERFRGcHADRERERERERERERERURnB wA0REREREREREREREVEZwcANERERERERERERERFRGcHADRERERERERERERERURnBwA0RERER EREREREREVEZwcANERERERERERERERFRGcHADRERERERERERERERURnBwA0RERERERERERER EVEZwcANERERERERERERERFRGcHADRERERERERERERERURnBwA0REREREREREREREVEZwcAN ERERERERERERERFRGcHADRERERERERERERERURnBwA0REREREREREREREVEZwcANERERERER ERERERFRGcHADRERERERERERERERURnBwA0REREREREREREREVEZoaLoBhARERERfQ2io6Ph 43Me/v4BiI6ORnBwCADAxsYapqamaN26FeztO8PU1FTBLSUiIiL6ejxPEeBsmADXngvwIkWA oHgBAKCRQT5qaufjh1r56GqVj1ra+QpuKf2PvTOPqzH7H/j7tkipyHqJiFLW7CFrtjCW7DvZ Zc0yGGMdM2PIlmyDsmULYUiMbCP7TrKlRoWSIqW95/fHnfvodu9tk+Xrd9+v133Rc55znvOc 5znnfJ7zOZ/PR4OG/09IUlJSNKPOJ/L48TMAqlat/JVrokGDBg0aNGjQoOFbIzw8nJUrV+Ht fSBX5/fu3RMXlykaBY4GDRo0aNCgQcNn5HmchCUXtNh1P3cOiQbUzGBWswyNAkeDBg1fBI3i pgDQKG40aNCgQYMGDRo0qOLEiZNMmzaDuLg4ANq0aY2NjQ3m5uZUrmwOwLNnIYSEhHDnzh38 /c8AYGxszPLly+jQof1Xq7sGDRo0aNCgQcP3yrEnWjj7avMuWfZ3hyoCdctmUMUELE1kS6VP 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 KFGiBDVr1qRcOX2QVXIuL//Gauufysa+Bu9vtGPWQTtmHrRjZvopvCx0q5LK+49reDQReTAU 3IhIhubMSZvv5W7Hs5X/rsOHQ8wT1/5brh/dD/8tjo6O1K1bh7p16+R1U+RfIG3Om08YMuR1 /vzzL7Zu3UZ4eAQhIWlDrAQEBFCiRHHq1q1D69atshxO7aYdO3aSL1++h6rnl4iIPJw8PT1p 0aI5LVo0z+umyL9IXv+NdXPOmzcbprL4aFrPmjOXTRyMThvutEohg5Jeab1w2lUwshxOTUQk Nym4EfkPW7p0GWfPnuXJJ9tRuHBh8/qUlBSmTv2BpUuXAdC1a+e8aqLYsBEj3uSpp56kdu06 ODjcmtzx9OnTvPba66SmplKtWrUHPjHz3dL9ICL3W/HixenXL5h+/YJzpb7Jkz/LlXpERERE 7oeH5W+skp4Gr9Q0eCXjaSJFRB44BTci/2FRUdGMG/ce48a9h6+vL0WKFMbBwZFTp05y4UIs AM8914fHH8+bCSbFtv3551/MmvUrTk5OlC5dGk9PT65evUJo6FFSU1Px8fFm4sQJed3MbNP9 ICIiIiIiknv0N5aIyN1TcCPyH9aqVUtiYqLZunUbJ0+e4vDhwxgGFChQgGbNmtGtWxdatmyR 180UG/X++++xbNmfHDp0iLNnzxIWFoaLiwsVK1agadMmBAc/T6FChfK6mdmm+0FERERERCT3 6G8sEZG7Z0pMTNQAjffo6NETAFSooMn4RERERERERERERETk7tnldQNEREREREREREREREQk jYIbERERERERERERERERG6HgRkRERERERERERERExEYouBEREREREREREREREbERCm5ERERE RERERERERERshIIbERERERERERERERERG6HgRkRERERERERERERExEYouBERERERERERERER EbERCm5ERERERERERERERERshIIbERERERERERERERERG6HgRkRERERERERERERExEYouBER EREREREREREREbERCm5ERERERERERERERERshIIbERERERERERERERERG6HgRkRERERERERE RERExEYouBEREREREREREREREbERCm5ERERERERERERERERshIIbERERERERERERERERG6Hg RkRERERERERERERExEYouBEREREREREREREREbERCm5ERERERERERERERERshIIbERERERER ERERERERG6HgRkRERERERERERERExEYouBEREREREREREREREbERCm7E7OWXBxAc/ALnz5/P 0X5RUdEMGTKUjz+egGEY96l18rBZuXIVtWrVpVKlyowZMzavm5Ntc+fOo2TJMuav/fsP5HWT xIozZ8Jp1aoN/v6V6NatB/Hx8XndJBERERERERERkVzhkNcNkMxFRESwYsUqQkOPcPHiJQzD wMPDgxIlilO9enVq1AjCy8srT9t45sxpLl++zOXLl0lMTMTZ2TlP25PboqKiqVmzdrr1zs7O eHl5Uq5cORo2bEi3bl3w8fHJgxZmbPbsOQwbNsJi3XvvjaNXr573/dg//zydyMhIAH74YRpv vDEEDw+P+35c+W9YvHgJISFHANi0aTNbt26jRYvmedwqERERERERERGRe6ceNzZs9eo1jBnz Dhs3biQ6OgZHR0dMJhOXLl3iwIGDzJjxCzt27MzrZlK1alWaNXucHj2650loExcXT79+/dm9 e88DPW5CQgJRUdFs2bKVjz+eQJMmzVi/fv0DbUNWFi5clG7dggULH8ix/f39zd8XLVqUfPny PZDjysMvMTGRSZM+Y+LEzzh27JjVMhUq3Lq+HB0dKFOm9ANpm4iIiIiIiIiIyP2mHjc26vz5 88ycOQvDMGjatAnt27fH0zOtt0JcXDynTp1i585d1K6dvifIg+bs7Ez37t3y7Pj79u17oEO0 ubu74+6ej9jYiyQmJprXx8XF8eKLr7Bu3Rp8fQs9sPZkJDIyii1btgJgMplwcHAgKSmJnTt3 ER4eTokSJe7r8d98cwQNGtTn8uXLNG78GHZ2yoklexYvXsKnn04CoGLFChYh4E3Nmzdj0aIF hIWFUaNGEOXKlXvQzRQREREREREREbkv9CTVRu3ZsxfDMChZsgQ9e/YwhzYAnp4eVKtWleef f85ifW4xmR6eyyIlJYWdO3c90GP27t2T7du3EhYWyqpVy2nQoL5529WrV5k377cH2p6MLFq0 iNTUVACqVq1CnTq3Qr4H0evGwcGBxx9vSseOHShYsOB9P578e8yY8Uu2ygUFPUKnTs8qtBER ERERERERkX8V9bixUVeuXAHA19c3R/uNGPEmMTExvP76YKpUqZJu+7Vr1xg0aDAAX331hdWh zRwc7Nm1azcrV64kPDyCpKQkChf2o169ejRr1gxHR8vL5tSp04wb9y4eHh5MmvRpuvpSUlJY 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 3Au/pgLloI1OtoiIiIiIiIiIODlnqHIiIvI/p1t/MP3LuhXXiGNwfwQ82Bq656sJEh8Djy6C WKBea+jloF6WiIiIiIiIiIiIs1BwIyIiV7d0mL8Gpq2B8r4QGgiBnhB/AbadhiQD/jVhWi/9 0RMREREREREREeenPiwREbm61YFF98CcPbA6Ck7Ewo5k8PCC4LpwYzN4qi3U1V88ERERERER ERG5CqgbS0RErm4ecEMz6yEiIiIiIiIiInK1cy3rBoiIiIiIiIiIiIiIiIhFwY2IiIiIiIiI iIiIiIiTUHAjIiIiIiIiIiIiIiLiJBTciIiIiIiIiIiIiIiIOAkFNyIiIiIiIiIiIiIiIk5C wY2IiIiIiIiIiIiIiIiTUHAjIiIiIiIiIiIiIiLiJBTciIiIiIiIiIiIiIiIOAkFNyIiIiIi IiIiIiIiIk5CwY2IiIiIiIiIiIiIiIiTUHAjIiIiIiIiIiIiIiLiJBTciIiIiIiIiIiIiIiI OAkFNyIiIiIiIiIiIiIiIk7CvawbIKXrl1d+yvN88Ct3l1FLRERERERERERERESkpDTiRkRE RERERERERERExEkouBEREREREREREREREXESCm5ERERERERERERERESchIIbERERERERERER ERERJ6HgRkRERERERERERERExEkouBEREREREREREREREXESCm5ERERERERERERERESchIIb ERERERERERERERERJ6HgRkRERERERERERERExEkouBEREREREREREREREXESCm5ERERERERE RERERESchIIbERERERERERERERERJ6HgRkTkIr0yAVxehHvCy7olpSAGwl4El5dhTlm3Jdw6 ry5fQdQl7mrDKqjxGjScDodKpXElN2uG9X5arSyjBoiIiIiIiIiIyFXFvawbIFcBAxF74L/L YUYU+LWBcwPLulGFOA/t3oONQItesL17WTdInNmoN+GLpOKvf9+98H3I5WuPlK65WyEyDQiH 35NgVPmybpFIXl9PgYf3F73ebXfAnJaXvz2XxXGo9SWczL3MBby9oGYl6NAARraH7hUc7yLq GLy/Dn47BocSIM0FAvyhWXXo1QTuD4O6HraVU+DG12FZru09PKFGBWhYA+5tA3fXBx8Hx0qJ h7nbYeZe2HQaTqdCphvUqARdQ2BMR2hR7pLOiIiIiIiIiEihFNxIofbaApvpkZBV1o0ppmO7 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 X337P1D554CXzx0YWg+5PD0vwfN5PFaB8mfCJ4z8mJFzSunNfpDp3z0KOhcsYWS1tebGqek6 oSGFfVqWVuM6gIfH1g9bv4qpO2jeg4Gx/Q9rj1W8HMtEvathnaXmsemcVm35ggXzazr/1HYd OaUB9vL47MQveWlONHVYtThA59exmbRF9lweLCGQklR1Gdo5ujl6VuK1/578JG5NnDIsXhyr S6axoLaPpg2CIAiCoFYIgZsgsV3c8nAU8Ehrx0vf5PxKBi7uGkm/++n5ZMk9ipOugGWruHMU J74RBTqOP52b4xeWTOEHw6ILjXffihaNjb/IXfgp134Y3b5qKF2rIZlfP4aGGPMxL66g4WEM L2Fy6rNPZFAqW2fztYlsil+IeS1XvRT1pOs1hEvi52FuzvGx7+7vbzI3bp6E3G2MeLV6eoq9 OYF/zGdjsQuTnZsZGWtIS7QY7nVncHgdln/Mma/ySbF5bvJ38840rpu47+P9j+PKpuSv57zH eDGr2IVUPp/N5/9eiaazqrJ6sfVKCnhoItviv48NjHiEx6txCroKa8iPBkY3X3mZ66exLv4A 7WXuYh5flqT91YLjM7B99P/dSbxVLDiZtIWWm9CrAXlbmLCFFj0YEHvq6O7RfPIfLoiCkNXR uzq1PX0hmzsnF2tULiD3fzSYU9ny50Cr05UfdEI+v3yasfH5dBd/f5aR1RhYP1D554CXz/W5 MVbePfEyD66Ley6PZ1+uQPmTy13Pcd0YbpyWjMTVDqk9+V5b5HPLo/x1KTvjvu+9u/lgFmOT NeKrpuuExgyM/RZ64F2WFotqJKtOaNg6+r2YtSTKy0N7FF1sDeuBXN6I1bPVUSf07RDN5rRr DrevjK3lGFOwt/wNzLVOTeef2q4ePxwUjXp54VXuXhEXpMnnvff5YVIK1xIcoPOrfg/uPAx5 /N8j3LNo/9kE1q3mnld4JkmdM742JApyL/mI78wifpbN2R9zSwU6Vzz/VlSXXPc6Sw+C6QmD IAiCIKh5YY2bIKHJ73PHyuj27iwuuqeUF2cw7XoOS/RcAdNjUYFtq1mEarhOjWzmnHtJ3cvm HWwpvGhI5ZKz+M/g/TN8l4E8uY7LJvKb//C3VvRuQvYWZm4hP4Whp/HXXtWT5JZ9ufRVHv2Q OgUMH1DyfOepbXj6Ys4ezcuv0WE8A1pRZxefrI8uXLr04tnT918C50en8uho1szhiLujHqHN 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 NzT23v7iGsDbp2HyLth2EtYnQbofREdA7wS4ux30cFH2lIiFGffBuzNhzC7YsBeCQ6F5E3i4 I3QvCUu8HLiBok+fgpxfD/eG0ERYdhgOHIPEdAgOhroJcHVj+G9jKKz+ZbXfXevWHVbVgA+W wsTdsHw3hIRCm/pwayu4M859eV5QRdX+8rQu63H/Rjrstt/9lpECq1OcP8DOz/UUh97IP10b QdU9kFkZel3kbVmR/2W29PT0IpoF99K1aZPVO1OvXq0Cfc6jI1ed8/93BnmxdiUihcPAA8Pg 41Pw4WPwgLfn/hURkUL3wkfw4iEYcDN8V6e4j6bobZoLdf+G7ChY/gA00WTKUliOQ/N3YJkN 3nwYhnr5LhARERERkUuFmmUiIgWQtgV+OAkBCdBfQRsRkYva/+poppqt4NYwMEfgKTcLFIt4 Q+ouWA0EV4c7FbQREREREXFLgRsRkQL4dgEcA/o08+6UECIiIkUmAJ5rby00PmUGzMw47xYi Hlmy21rH4oYWhTcdkoiIiIjIpUCBGxERD21fBc9uAcrA43WL+2hEREQ8F98Cbg8HTsKTi4r7 aORS1eFqMC/DqMJaFFBERERE5BLhX9wHICJyMRk/CYYfgYxTsGg/pPrB/ddAc4XBRUTkYuYP nw+Fz4v7OERERERERESBGxGR/Mg8DQu3QloJiIuD/3SCxxKK+6hERERERERERETkUqHAjYhI Plx/nfUQEZFLxwsPwAvFfRAiIiIiIiIidprcR0RERERERERERERExEcocCMiIiIiIiIiIiIi IuIjFLgRERERERERERERERHxEQrciIiIiIiIiIiIiIiI+AgFbkRERERERERERERERHyEAjci IiIiIiIiIiIiIiI+QoEbERERERERERERERERH6HAjYiIiIiIiIiIiIiIiI9Q4EZERERERERE RERERMRHKHAjIiIiIiIiIiIiIiLiIxS4ERERERERERERERER8REK3IiIiIiIiIiIiIiIiPgI BW5ERERERERERERERER8hAI3IiIiIiIiIiIiIiIiPkKBGxERERERERERERERER+hwI2IiIiI iIiIiIiIiIiPUOBGRERERERERERERETERyhwIyIiIiIiIiIiIiIi4iMUuBERERERERERERER EfERCtyIiIiIiIiIiIiIiIj4CAVuREREREREREREREREfIQCNyIiIiIiIiIiIiIiIj5CgRsR EREREREREREREREfocCNiIiIiIiIiIiIiIiIj1DgRkRERERERERERERExEcocCMiIiIiIiIi IiIiIuIjFLgRERERERERERERERHxEQrciIiIiIiIiIiIiIiI+AgFbkRERERERERERERERHyE AjciIiIiIiIiIiIiIiI+QoEbERERERERERERERERH6HAjYiIiIiIiIiIiIiIiI9Q4EZERERE RERERERERMRHKHAjIiIiIiIiIiIiIiLiIxS4ERERERERERERERER8REK3IiIiIiIiIiIiIiI iPgIBW5ERERERERERERERER8hAI3IiIiIiIiIiIiIiIiPsKWnp5uivsgLnabNm0DoF69WsV8 JCIiIiIiIiIiIiIicjHTHTciIiIiIiIiIiIiIiI+QoEbERERERERERERERERH6HAjYiIiIiI iIiIiIiIiI9Q4EZERERERERERERERMRHKHAjIiIiIiIiIiIiIiLiIxS4ERERERERERERERER 8REK3IiIiIiIiIiIiIiIiPgIBW5ERERERERERERERER8hAI3IiIiIiIiIiIiIiIiPkKBGxER ERERERERERERER+hwI2IiIiIiIiIiIiIiIiPUOBGRERERERERERERETERyhwIyIiIiIiIiIi IiIi4iMUuBEREREREREREREREfERCtyIiIiIiIiIiIiIiIj4CAVuREREREREREREREREfIQC NyIiIiIiIiIiIiIiIj5CgRsREREREREREREREREfocCNiIiIiIiIiIiIiIiIj1DgRkRERERE RERERERExEcocCMiIiIiIiIiIiIiIuIjFLgRERERERERERERERHxEQrciIiIiIiIiIiIiIiI +AgFbkRERERERERERERERHyEAjciIiIiIiIiIiIiIiI+QoEbERERERERERERERERH6HAjYiI iIiIiIiIiIiIiI9Q4EZERERERERERERERMRHKHAjIiIiIiIiIiIiIiLiIxS4ERERERERERER ERER8REK3IiIiIiIiIiIiIiIiPgIBW5ERERERERERERERER8hAI3IiIiIiIiIiIiIiIiPkKB GxERERERERERERERER+hwI2IiIiIiIiIiIiIiIiPUOBGRERERERERERERETERyhwIyIiIiIi IiIiIiIi4iMUuBEREREREREREREREfERCtyIiIiIiIiIiIiIiIj4CAVuRERERERERERERERE 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 UfbvFmRiazc3rVs1NlUjShj84syAh683MWC4crhJ8sq3zDArRj1uHrznDnNLv2tMt07tTIMK wQYwJW4cm+eWnp5fU59qaVq2PPtoXNlKDyKrnfN8y5YtTZ8Pna9fe8y4uxuaUDDgbyLjG5tW rZubOuVLGhsYSlQwXd9dak57JW1cG3tjCQNtzUf7C28fByfdZ2rb6yIlIuJMo5atTYs65Uww mPA2j5rBrV1dv/abv999wjx0zyBzU98e5oo6ZQ1gKj403oy7tbLxI8CUa9TZXNP3atO+brQp d+ckk+mwdcrq4eaaOKv+aQsqbarUbWaaN4gzkUHWcZRs8ID5+4jTgR4ebjqAoWwXM6BbtLGV rmN63P6wefLpoea+/pebKiEYiDBtXl3snd/k1DemKxgqxJm48ATT6fpeplGUVYeIb3+5qeRX xjTpdZ25PC7EAKbOs6ucPqAA+Wft9+aRIYPNwJuuNVdf1cG0alDBXg+52nyX6u6APT+/RERE RESkeChwcwkFbs6x/yPTFgzBUSYqNMDUHvyr2ZV29uXTKY5NwYPmp+tjDGDCm99vflrn0Jl/ Zrv54+HmpiQYW5UhZs6Zc3dzZsXzpmEgBr8qps+wmWbvv73A2ebo0k/MNZUxUNJcOXznuRu6 DdxkmmNrfzSDapUwEGG6f7Ur93c7MMp0D7MaulV7v27+3nEhTfALCdwYM/+Rylag5JZxF/CZ ebMCNxgq3m1mphpjzDbz2mX2Dr7gTuaLvcYYc8KM7BlkINTcMfFspCBt+XOmYQAGWwXT+/0l 5ui/HYtZ5ujSj0zvin4GAkzD/1tszuTa81lT77Y6S8pGRRlbmU7m7aVJZ4MrmSkmJe3c96ct /dq8MHySSTzu2JOZZZLWjTYDa5QwEGR6fH3o3I0SXzUNwRB9p5nq9HnGGGNSx5kbwzDQ1Ly1 9XypduE8OlZjjEmaaG6rZHWulGn7XzNmxSHz72FnnTLbZo8y749zfT57tM/tH5t2wRgoYRL6 jzDr/+03zDD7pj9lWoTmdPrmDtzkMnOIKXsBgRtjjNn97TX/3955h+d09nH882TvHUGQZSRS M2JFaqVW1awRtUdrj2rRKurVVl+KLlW0pRRVWquKlqrRUkVpEYLYIwipJCLz9/7xZOc8GfIQ b92f63qu67nOOfe5f+ee5/y+9xAXENw6yqqrWQ8vmwdUEkAcWn4sZ4ssfD5EMoUbEFyay9t7 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 FAqFQvH/zP8AfeNWXk8SBY0AAAAASUVORK5CYII= --------------Ro4ST5JnxMIDuH00PAZrUnH0-- --------------VCVuVhwkBhc0Im05t2oB0Xfc-- From nobody Mon May 20 07:46:30 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VjV4y3TfTz5Jbp3 for ; Mon, 20 May 2024 07:46:42 +0000 (UTC) (envelope-from SRS0=01WD=MX=quip.cz=000.fbsd@elsa.codelab.cz) Received: from elsa.codelab.cz (elsa.codelab.cz [94.124.105.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4VjV4x1hZtz4fmF for ; Mon, 20 May 2024 07:46:41 +0000 (UTC) (envelope-from SRS0=01WD=MX=quip.cz=000.fbsd@elsa.codelab.cz) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=quip.cz header.s=private header.b=yPYePRbo; dkim=pass header.d=quip.cz header.s=private header.b=yPYePRbo; dmarc=none; spf=none (mx1.freebsd.org: domain of "SRS0=01WD=MX=quip.cz=000.fbsd@elsa.codelab.cz" has no SPF policy when checking 94.124.105.4) smtp.mailfrom="SRS0=01WD=MX=quip.cz=000.fbsd@elsa.codelab.cz" Received: from elsa.codelab.cz (localhost [127.0.0.1]) by elsa.codelab.cz (Postfix) with ESMTP id ED55AD788B; Mon, 20 May 2024 09:46:31 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quip.cz; s=private; t=1716191191; bh=QBizWX1AHGzxOB/Uj5f55VidPsvLWmdB/Lx5/yk+YDU=; h=Date:Subject:To:References:From:In-Reply-To; b=yPYePRboTyN/9zRfqDJm2JOTRRuRvIFONvqx6ZoqcIBrgfwMnjLaBpkvjeqeZ6B9b FzjqxYGZvLSJjzKd/n/sztZlCn25TWcgfyXyafEzzXbyciei4Ue1HqKgVmO4U7Wx+N OzdABNQUluERnur5/+c7BzHZ14O7A7FqlVHJPKxU= Received: from [192.168.145.49] (ip-89-177-27-225.bb.vodafone.cz [89.177.27.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by elsa.codelab.cz (Postfix) with ESMTPSA id 008F9D7889; Mon, 20 May 2024 09:46:30 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quip.cz; s=private; t=1716191191; bh=QBizWX1AHGzxOB/Uj5f55VidPsvLWmdB/Lx5/yk+YDU=; h=Date:Subject:To:References:From:In-Reply-To; b=yPYePRboTyN/9zRfqDJm2JOTRRuRvIFONvqx6ZoqcIBrgfwMnjLaBpkvjeqeZ6B9b FzjqxYGZvLSJjzKd/n/sztZlCn25TWcgfyXyafEzzXbyciei4Ue1HqKgVmO4U7Wx+N OzdABNQUluERnur5/+c7BzHZ14O7A7FqlVHJPKxU= Message-ID: <19f6160f-bd96-420d-8eb2-6bb095bb082b@quip.cz> Date: Mon, 20 May 2024 09:46:30 +0200 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: A simpler question To: George Mitchell , freebsd-hackers@freebsd.org References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> Content-Language: cs-Cestina From: Miroslav Lachman <000.fbsd@quip.cz> In-Reply-To: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.96 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.97)[-0.974]; FORGED_SENDER(0.30)[000.fbsd@quip.cz,SRS0=01WD=MX=quip.cz=000.fbsd@elsa.codelab.cz]; R_DKIM_ALLOW(-0.20)[quip.cz:s=private]; MIME_GOOD(-0.10)[text/plain]; XM_UA_NO_VERSION(0.01)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; TAGGED_RCPT(0.00)[freebsd]; R_SPF_NA(0.00)[no SPF record]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:42000, ipnet:94.124.104.0/21, country:CZ]; TO_DN_SOME(0.00)[]; DMARC_NA(0.00)[quip.cz]; RCPT_COUNT_TWO(0.00)[2]; ARC_NA(0.00)[]; FROM_NEQ_ENVFROM(0.00)[000.fbsd@quip.cz,SRS0=01WD=MX=quip.cz=000.fbsd@elsa.codelab.cz]; FROM_HAS_DN(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_LAST(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; DKIM_TRACE(0.00)[quip.cz:+] X-Rspamd-Queue-Id: 4VjV4x1hZtz4fmF On 20/05/2024 00:40, George Mitchell wrote: > On 5/19/24 18:36, George Mitchell wrote: >> 1. Are you a Thunderbird user on FreeBSD? >> 2. Do you see a "chart with rising trend," "chart with falling trend," >> "bar chart," and "clipboard" emojis (U+1F4C8 through U+1F4CB) on the >> next line? >> 📈    📉    📊    📋 >> Thank you for your attention.                                -- George > Partially answering my own question: Using chrome to browse the mailing > list archive, the emojis showed up perfectly, as they did on a Bcc to my > backup gmail account.  But I could not see them when composing the > message, or reading the message from the list, in Thunderbird. > -- George I can see them. # pkg info -x 'emoji|thunderbird' noto-emoji-2.042_1 thunderbird-115.11.0_2 twemoji-color-font-ttf-14.0.2 In TB sesstings I have fonts for Other Writing Systems: Proportional: Sans Serif Serif: Default (Noto Serif) Sans-serif: Adobe Helvetica Monospace: Termius (TTF) Kind regards Miroslav Lachman From nobody Mon May 20 08:26:00 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VjVyM3Fjrz5Jhnn for ; Mon, 20 May 2024 08:26:03 +0000 (UTC) (envelope-from tijl@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VjVyM2RXbz4kvR; Mon, 20 May 2024 08:26:03 +0000 (UTC) (envelope-from tijl@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1716193563; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aQqBInep4lCpDJ8tM2+RCDGIdARam/WiY3rMGoGEPvE=; b=bOcG8229/XfMcmFPWDNwHY72fdjwq8gbGVOrvAC2a1uLYbSmhEHa7DauQOmsgWJpBi2OW4 NxNwiJZSLFm3Pkoh0XXJMvXt9AUFnyL1y3KpG3kXSHaoRzMtZSU0UdZFnjSQ2CpLvwWs8z y0AQY/H5Ei1Gjde4j3S7eH4MCEiWhsCvorVca3CQTq8kubmjFbAgTHHWC9WdssLCVOMLMT DpcNdliNLZQAPv9tZbOVxjJacyj+q2BUVZWlyqW2mJFINHc2SGTJ338pISsGs3LmuI9g1M PG0Pjs7VY2wpLZEHOMZFNr1wwTxFtzvfxUB7bpqRejVp+NIv3taRBzzo+IwiRQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1716193563; a=rsa-sha256; cv=none; b=Xuj2BzbUA3B2hK0WWKzsDqlCCylfsxuai1aiV+TyMgfSCL/ADKUYI0NM2uDsVgzHiMvmim jDiYu2lAh3RLPyWZpzJUb9Yrg3zVa4ReG+MBh5ndjUh7Fxm+335WctmV/aMQ4UaHp4Vrtm SQhFhPevdnvztnKC2nCsrTzPu4a44L6X68nUpRY9PxdCrCfae5p0BxFvZsNTXTFAIzJiyK BX3c00qBKzgvR18ICclkLCQfHMTMJut9uzsq4e5piPRxx8PN8gjI0TNtyBb1SJmtQ4bbV4 B3gJrDaW3RCntn3muLjWf1sWdhoYzhG1dsTzgbhfRXRLCR71lfPYJ2u96sLBCw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1716193563; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aQqBInep4lCpDJ8tM2+RCDGIdARam/WiY3rMGoGEPvE=; b=YyPbe+zDHdlmWqA8SK/y4D24vnjNCldw6Rjzg9YBmvkAYJgj0xbZQwu87eB8s37CwkPTEc yWUt8s+g3g3IQvAqB8MUmP34qbjsGmcxdx6gfRPc8OSuDF1+9ZskfVuH0/gd5HHEV5EIZN 9kWqrfra7BkqMECIrqupisPsIIvV0sRybw+y3kjttfo1E0jZCTy/I+tkjTxZC4bAfDIbqf U+NUxYYQarFCKiZ2FukDPGpCl95kP+Qft4ynsoVsl74fFOYQd1QCXpvTPhjn3iLOSzFEGL LwqJtGC9PInj54/fDENVmc7JckCaUMobdO48UskEXSM+avXUc2Y4yX2Hjazekg== Received: from hal.tijl.coosemans.org (unknown [IPv6:2a02:a03f:994e:2800:a013:c1ba:d4d8:31e3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: tijl) by smtp.freebsd.org (Postfix) with ESMTPSA id 4VjVyL62xFzcP5; Mon, 20 May 2024 08:26:02 +0000 (UTC) (envelope-from tijl@FreeBSD.org) Date: Mon, 20 May 2024 10:26:00 +0200 From: =?UTF-8?B?VMSzbA==?= Coosemans To: George Mitchell Cc: FreeBSD Hackers Subject: Re: Emoji in FreeBSD: Firefox, Thunderbird, and Chrome Message-ID: <20240520102552.698c6f13@hal.tijl.coosemans.org> In-Reply-To: <489dde7f-a6f6-4c31-a484-3d26d5521a85@m5p.com> References: <489dde7f-a6f6-4c31-a484-3d26d5521a85@m5p.com> List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 14 May 2024 15:26:24 -0400 George Mitchell wrote: > Firefox and Thunderbird: They aren't there. > Chrome: They work. See https://en.wikipedia.org/wiki/Emoji#In_Unicode > > I have x11-fonts/noto-emoji installed. > > When I install Chrome, the initial font settings are all "Custom," > though once I select some other setting, "Custom" disappears from the > drop-down menu. Regardless of that, emojis still operate as expected. > But in Firefox, even when I set all font setting to Noto, no emojis > appear; nor do they work in Thunderbird. > > What else should I check? -- George Make sure noto-emoji is installed with the COLR option disabled. If that's already the case then provide the output of "fc-match emoji". From nobody Mon May 20 11:31:06 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Vjb3z31Hhz5L3K4 for ; Mon, 20 May 2024 11:31:11 +0000 (UTC) (envelope-from bacon4000@gmail.com) Received: from mail-oa1-x2c.google.com (mail-oa1-x2c.google.com [IPv6:2001:4860:4864:20::2c]) (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 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Vjb3y4ypDz46vf for ; Mon, 20 May 2024 11:31:10 +0000 (UTC) (envelope-from bacon4000@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=TWFMp3HV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of bacon4000@gmail.com designates 2001:4860:4864:20::2c as permitted sender) smtp.mailfrom=bacon4000@gmail.com Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-2454156db8bso1091290fac.3 for ; Mon, 20 May 2024 04:31:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716204668; x=1716809468; darn=freebsd.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=mmLFOR+L5iPr9W9kBSRUxDq0d0u3q0g8mwJ633al7nU=; b=TWFMp3HVjxE5+CzjA2zlii6PXiW0Nckl3gH3ISfr0FZVGMIGnmQHtjGDgYbl1xl+2v jNvgFiTfTPXXpILJE6WNmsa3EbE1SmNCe+gt/EHfKoi3IDxsCNwLsDyJqM9S0Sv2AhzI JhNMeDBYXb6HVG7tqBWJ3Vu7xl2tdSUPEfsAHLsrbrU4ptQWydgd4ITTxCqzAxh55xJf KJJOTT+7l2/AVhI5QkPA97iXJUwCKJeVkqM2q8SAcfoNrKyt3Wo74xowAjrQAAXPWx2/ nMauXdVw4Z76hng8OfhU1yhKE+xMVoNTH6a4C0B7wxFC1yU5UQZYCvZLh6gHOqFQle+b /jFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716204668; x=1716809468; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=mmLFOR+L5iPr9W9kBSRUxDq0d0u3q0g8mwJ633al7nU=; b=B8n0u7XfxZOeoSYMkzppLxk2MGLypehb09xjmv3noz/fgZ+KeW/5Wk+eRCAvo1BBy/ K2BZWxs0KwUkPI5J492GgrDG5rlwrmUbz+UIgV/T6SxHn68t8GmwalDkE5Nm5wLZirPH Dk4Bo4nQGM1noYbsKQsGlQGUFi0t0/howOmdG+X5ORGAKrRTZxwstpcT9my4nx5xQ2we 4ca+L1NlposNtOPkWBimBPyiiz8tQTBJYClfH5iqrjKEBXMP67/hQVip0PbU6TWoNvHV eFhdDJT5KSLnHtFLJRyxL6nDrfbMcrEUZFUpxw/TIxpQsk0r4uTxj5plKb9HrBVxfCUN z3fg== X-Gm-Message-State: AOJu0YxdbVPxoQe8zFQeT1aY+NG+n0o+ukKTThq/WP1PL3eCiAcRH67I X2eA95wdUoWL8sg8pIDt8AaU/OMIB2k5yXP2SpH3rXb1m8GYEB99JvfPFe4f X-Google-Smtp-Source: AGHT+IE6udj1+lhJ+/jhSk4ZG4ClxQn7p6ky3+1Gbfa/SCTuSVBHl0Pc/8wHaXzwXRBddTLato/4WA== X-Received: by 2002:a05:6870:944f:b0:23f:a97d:20b3 with SMTP id 586e51a60fabf-24172a7757fmr29653602fac.18.1716204668111; Mon, 20 May 2024 04:31:08 -0700 (PDT) Received: from [192.168.0.146] (108-255-3-0.lightspeed.milwwi.sbcglobal.net. [108.255.3.0]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-2412acd6272sm5380430fac.47.2024.05.20.04.31.07 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 20 May 2024 04:31:07 -0700 (PDT) Message-ID: <6f010cfc-cfd8-4667-a0ff-d3947937063a@gmail.com> Date: Mon, 20 May 2024 06:31:06 -0500 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: A simpler question To: freebsd-hackers@freebsd.org References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> <3b72bac2-1d40-48d6-9cc2-e43a510387c0@m5p.com> Content-Language: en-US From: Jason Bacon In-Reply-To: <3b72bac2-1d40-48d6-9cc2-e43a510387c0@m5p.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.36 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-0.999]; NEURAL_SPAM_SHORT(0.53)[0.532]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2001:4860:4000::/36]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; MIME_GOOD(-0.10)[text/plain]; MIME_BASE64_TEXT(0.10)[]; XM_UA_NO_VERSION(0.01)[]; RCVD_TLS_LAST(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ARC_NA(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; ASN(0.00)[asn:15169, ipnet:2001:4860:4864::/48, country:US]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; MID_RHS_MATCH_FROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2001:4860:4864:20::2c:from] X-Rspamd-Queue-Id: 4Vjb3y4ypDz46vf T24gNS8xOS8yNCAxNzo1OCwgR2VvcmdlIE1pdGNoZWxsIHdyb3RlOg0KPiBPbiA1LzE5LzI0 IDE4OjQ4LCBBbGZvbnNvIFMuIFNpY2lsaWFubyB3cm90ZToNCj4+IE9uIDUvMjAvMjQgMDA6 NDAsIEdlb3JnZSBNaXRjaGVsbCB3cm90ZToNCj4+PiBPbiA1LzE5LzI0IDE4OjM2LCBHZW9y Z2UgTWl0Y2hlbGwgd3JvdGU6DQo+Pj4+IDEuIEFyZSB5b3UgYSBUaHVuZGVyYmlyZCB1c2Vy IG9uIEZyZWVCU0Q/DQo+Pj4+IDIuIERvIHlvdSBzZWUgYSAiY2hhcnQgd2l0aCByaXNpbmcg dHJlbmQsIiAiY2hhcnQgd2l0aCBmYWxsaW5nIHRyZW5kLCINCj4+Pj4gImJhciBjaGFydCwi IGFuZCAiY2xpcGJvYXJkIiBlbW9qaXMgKFUrMUY0QzggdGhyb3VnaCBVKzFGNENCKSBvbiB0 aGUNCj4+Pj4gbmV4dCBsaW5lPw0KPj4+PiDwn5OIwqDCoMKgIPCfk4nCoMKgwqAg8J+TisKg wqDCoCDwn5OLDQo+Pj4+IFRoYW5rIHlvdSBmb3IgeW91ciBhdHRlbnRpb24uwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg LS0gR2VvcmdlDQo+Pj4gUGFydGlhbGx5IGFuc3dlcmluZyBteSBvd24gcXVlc3Rpb246IFVz aW5nIGNocm9tZSB0byBicm93c2UgdGhlIG1haWxpbmcNCj4+PiBsaXN0IGFyY2hpdmUsIHRo ZSBlbW9qaXMgc2hvd2VkIHVwIHBlcmZlY3RseSwgYXMgdGhleSBkaWQgb24gYSBCY2MgdG8g bXkNCj4+PiBiYWNrdXAgZ21haWwgYWNjb3VudC7CoCBCdXQgSSBjb3VsZCBub3Qgc2VlIHRo ZW0gd2hlbiBjb21wb3NpbmcgdGhlDQo+Pj4gbWVzc2FnZSwgb3IgcmVhZGluZyB0aGUgbWVz c2FnZSBmcm9tIHRoZSBsaXN0LCBpbiBUaHVuZGVyYmlyZC4NCj4+PiAtLSBHZW9yZ2UNCj4+ DQo+PiBJIGhhdmUganVzdCBpbnN0YWxsZWQgYHBrZyBpbnN0YWxsIG5vdG8tZW1vamlgDQo+ PiBzbyBpIGNhbiBzZWUgdGhlIGVtb2ppIGluIHRoaXMgZW1haWwgaW4gVGh1bmRlcmJpcmQg b24gQ1VSUkVOVA0KPj4gKGV4YWN0bHkgYXMgSSBzZWUgdGhlbSBvbiBteSBhbmRyb2lkIHNt YXJ0cGhvbmUpLg0KPj4NCj4+IEFsZm9uc28NCj4gSSBoYXZlIG5vdG8tZW1vamkgMi4wNDIg aW5zdGFsbGVkLCBhbmQgSSBhbSBydW5uaW5nIDEzLjItUkVMRUFTRS1wMTAuDQo+IEJ1dCBu byB2aXNpYmxlIGVtb2ppcyB3aXRob3V0IGNocm9tZS7CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC0tIEdlb3JnZQ0KDQpEaWQgeW91IHJlc3RhcnQg WDExLCBzbyB0aGUgbmV3IGZvbnRzIGFyZSBsb2FkZWQ/ICBXaGVuIEkgcmVtb3ZlZCANCnR3 ZW1vamktY29sb3ItZm9udC10dGYsIHRoZSBpY29ucyBzdG9wcGVkIHJlbmRlcmluZyBwcm9w ZXJseS4gDQpSZWluc3RhbGxpbmcgaXQgYW5kIHJlc3RhcnRpbmcgVGh1bmRlcmJpcmQgd2Fz IG5vdCBzdWZmaWNpZW50Lg0KDQotLSANCkxpZmUgaXMgYSBnYW1lLiAgUGxheSBoYXJkLiAg UGxheSBmYWlyLiAgSGF2ZSBmdW4uDQoNCg== From nobody Mon May 20 15:12:14 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VjgzF4CQYz5LSTj for ; Mon, 20 May 2024 15:12:25 +0000 (UTC) (envelope-from george+freebsd@m5p.com) Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "m5p.com", Issuer "R3" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VjgzD5wBmz4hN3 for ; Mon, 20 May 2024 15:12:24 +0000 (UTC) (envelope-from george+freebsd@m5p.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of george+freebsd@m5p.com designates 74.104.188.4 as permitted sender) smtp.mailfrom=george+freebsd@m5p.com Received: from [IPV6:2001:470:1f07:15ff::26] (court.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:26]) (authenticated bits=0) by mailhost.m5p.com (8.17.1/8.17.1) with ESMTPSA id 44KFCFja070918 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO) for ; Mon, 20 May 2024 11:12:20 -0400 (EDT) (envelope-from george+freebsd@m5p.com) Message-ID: <19eaf9d1-4898-4cd2-bf82-2317d01afe40@m5p.com> Date: Mon, 20 May 2024 11:12:14 -0400 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: A simpler question To: freebsd-hackers@freebsd.org References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> <3b72bac2-1d40-48d6-9cc2-e43a510387c0@m5p.com> Content-Language: en-US From: George Mitchell Autocrypt: addr=george+freebsd@m5p.com; keydata= xjMEZaHDbxYJKwYBBAHaRw8BAQdA2W6oBfS8haXY0/Ft4zS1OTLYfC8EBIADPTgMQdh85C3N KEdlb3JnZSBNaXRjaGVsbCA8Z2VvcmdlK2ZyZWVic2RAbTVwLmNvbT7CmQQTFgoAQRYhBDpv v9n4+UzMLAJ8EZocD3futmd9BQJlocSiAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMB Ah4HAheAAAoJEJocD3futmd9SxwBAJUi6DNdVhWCZBTv5XGy1g0JgApLWe/3S0M0zz9sn7/L AQCcJcV5k5s2rt9J5C1AUm6XVsuneVvIWXO5j1GKWk0NC844BGWhw28SCisGAQQBl1UBBQEB B0AaFz/6B95RRvjOdLZr5fSdhuIHvwr24H3ePDZSw6wlUwMBCAfCfgQYFgoAJhYhBDpvv9n4 +UzMLAJ8EZocD3futmd9BQJlocNvAhsMBQkFo5qAAAoJEJocD3futmd9RXsBANwRD9RE56F6 /jeZOrujHICLcgPiOt50Y6866v9OUTjUAP9GlC1aopfBpNwuPLJBam7oBaGqvY98VDhzOjoT 7DNbCQ== In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------Pw7CmCHbnauVWZqEBXLN05UR" X-Spam-Status: No, score=0.2 required=10.0 tests=HELO_MISC_IP,HELO_NO_DOMAIN autolearn=no autolearn_force=no version=4.0.0 X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-14) on mattapan.m5p.com X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.34 / 15.00]; SIGNED_PGP(-2.00)[]; NEURAL_HAM_LONG(-0.98)[-0.981]; NEURAL_HAM_MEDIUM(-0.73)[-0.726]; NEURAL_HAM_SHORT(-0.34)[-0.341]; MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain]; R_SPF_ALLOW(-0.20)[+a]; MIME_BASE64_TEXT(0.10)[]; XM_UA_NO_VERSION(0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_ALL(0.00)[]; HAS_ATTACHMENT(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; TAGGED_FROM(0.00)[freebsd]; DMARC_NA(0.00)[m5p.com]; FROM_HAS_DN(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; ASN(0.00)[asn:701, ipnet:74.104.0.0/16, country:US]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; TO_DN_NONE(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; RCVD_COUNT_ONE(0.00)[1]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; MID_RHS_MATCH_FROM(0.00)[]; R_DKIM_NA(0.00)[]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~] X-Rspamd-Queue-Id: 4VjgzD5wBmz4hN3 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------Pw7CmCHbnauVWZqEBXLN05UR Content-Type: multipart/mixed; boundary="------------6h0OqRu20oZEB0PdfOMgFKpk"; protected-headers="v1" From: George Mitchell To: freebsd-hackers@freebsd.org Message-ID: <19eaf9d1-4898-4cd2-bf82-2317d01afe40@m5p.com> Subject: Re: A simpler question References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> <3b72bac2-1d40-48d6-9cc2-e43a510387c0@m5p.com> In-Reply-To: --------------6h0OqRu20oZEB0PdfOMgFKpk Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gNS8xOS8yNCAyMDozMywgQWxleCBQcm90YXNlbmtvIHdyb3RlOg0KPiBJIHNlZSB0aGVt IGZpbmUgaW4gVGh1bmRlcmJpcmQvS0RFNSBvbiAxNC4wLVJFTEVBU0UtcDYNCj4gDQo+IEhl cmUncyBzb21lIG9mIHRoZSByZWxhdGVkIHBhY2thZ2VzIEkgaGF2ZSBpbnN0YWxsZWQ6DQo+ IA0KPiAgwqDCoMKgwqDCoMKgwqAgbm90by1lbW9qaTogMi4wNDJfMQ0KPiAgwqDCoMKgwqDC oMKgwqAgdHdlbW9qaS1jb2xvci1mb250LXR0ZjogMTQuMC4yDQo+ICDCoMKgwqDCoMKgwqDC oCB1bmljb2RlLWVtb2ppOiAxNS4xDQo+IA0KPiBbLi4uXUkgaGFkIHRoZSBmaXJzdCB0d28g aW5zdGFsbGVkIGFuZCBJIGp1c3Qgbm93IGFkZGVkIHVuaWNvZGUtZW1vamksIGJ1dA0Kbm90 aGluZyBjaGFuZ2VkIChldmVuIGFmdGVyIHJlc3RhcnRpbmcgWCkuICAgICAgICAgICAgICAg LS0gR2VvcmdlDQo= --------------6h0OqRu20oZEB0PdfOMgFKpk-- --------------Pw7CmCHbnauVWZqEBXLN05UR Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQQ6b7/Z+PlMzCwCfBGaHA937rZnfQUCZktoTgUDAAAAAAAKCRCaHA937rZnfUk+ AP4rDRaZk6dy6LuyJLGe48+ucZzQk6enP09w4Q9VXVai0AEAh8XZLf9SRk8esNjnjm2GgZcOw2TB RNS4vnWa5zxFMg0= =KEY3 -----END PGP SIGNATURE----- --------------Pw7CmCHbnauVWZqEBXLN05UR-- From nobody Mon May 20 15:20:30 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Vjh8k6Rwnz5LSwR for ; Mon, 20 May 2024 15:20:38 +0000 (UTC) (envelope-from george+freebsd@m5p.com) Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "m5p.com", Issuer "R3" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Vjh8k5JKpz4k9R for ; Mon, 20 May 2024 15:20:38 +0000 (UTC) (envelope-from george+freebsd@m5p.com) Authentication-Results: mx1.freebsd.org; none Received: from [IPV6:2001:470:1f07:15ff::26] (court.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:26]) (authenticated bits=0) by mailhost.m5p.com (8.17.1/8.17.1) with ESMTPSA id 44KFKUWv070938 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Mon, 20 May 2024 11:20:37 -0400 (EDT) (envelope-from george+freebsd@m5p.com) Message-ID: Date: Mon, 20 May 2024 11:20:30 -0400 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: A simpler question Content-Language: en-US To: Miroslav Lachman <000.fbsd@quip.cz>, freebsd-hackers@freebsd.org References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> <19f6160f-bd96-420d-8eb2-6bb095bb082b@quip.cz> From: George Mitchell Autocrypt: addr=george+freebsd@m5p.com; keydata= xjMEZaHDbxYJKwYBBAHaRw8BAQdA2W6oBfS8haXY0/Ft4zS1OTLYfC8EBIADPTgMQdh85C3N KEdlb3JnZSBNaXRjaGVsbCA8Z2VvcmdlK2ZyZWVic2RAbTVwLmNvbT7CmQQTFgoAQRYhBDpv v9n4+UzMLAJ8EZocD3futmd9BQJlocSiAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMB Ah4HAheAAAoJEJocD3futmd9SxwBAJUi6DNdVhWCZBTv5XGy1g0JgApLWe/3S0M0zz9sn7/L AQCcJcV5k5s2rt9J5C1AUm6XVsuneVvIWXO5j1GKWk0NC844BGWhw28SCisGAQQBl1UBBQEB B0AaFz/6B95RRvjOdLZr5fSdhuIHvwr24H3ePDZSw6wlUwMBCAfCfgQYFgoAJhYhBDpvv9n4 +UzMLAJ8EZocD3futmd9BQJlocNvAhsMBQkFo5qAAAoJEJocD3futmd9RXsBANwRD9RE56F6 /jeZOrujHICLcgPiOt50Y6866v9OUTjUAP9GlC1aopfBpNwuPLJBam7oBaGqvY98VDhzOjoT 7DNbCQ== In-Reply-To: <19f6160f-bd96-420d-8eb2-6bb095bb082b@quip.cz> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------6NUlWQHd6TwfwgEgV5qPA99U" X-Spam-Status: No, score=0.2 required=10.0 tests=HELO_MISC_IP,HELO_NO_DOMAIN autolearn=no autolearn_force=no version=4.0.0 X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-14) on mattapan.m5p.com X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[freebsd]; ASN(0.00)[asn:701, ipnet:74.104.0.0/16, country:US] X-Rspamd-Queue-Id: 4Vjh8k5JKpz4k9R This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------6NUlWQHd6TwfwgEgV5qPA99U Content-Type: multipart/mixed; boundary="------------QsM2kao4QbO7futvu2j2x3K0"; protected-headers="v1" From: George Mitchell To: Miroslav Lachman <000.fbsd@quip.cz>, freebsd-hackers@freebsd.org Message-ID: Subject: Re: A simpler question References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> <19f6160f-bd96-420d-8eb2-6bb095bb082b@quip.cz> In-Reply-To: <19f6160f-bd96-420d-8eb2-6bb095bb082b@quip.cz> --------------QsM2kao4QbO7futvu2j2x3K0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gNS8yMC8yNCAwMzo0NiwgTWlyb3NsYXYgTGFjaG1hbiB3cm90ZToNCj4gT24gMjAvMDUv MjAyNCAwMDo0MCwgR2VvcmdlIE1pdGNoZWxsIHdyb3RlOg0KPj4gT24gNS8xOS8yNCAxODoz NiwgR2VvcmdlIE1pdGNoZWxsIHdyb3RlOg0KPj4+IDEuIEFyZSB5b3UgYSBUaHVuZGVyYmly ZCB1c2VyIG9uIEZyZWVCU0Q/DQo+Pj4gMi4gRG8geW91IHNlZSBhICJjaGFydCB3aXRoIHJp c2luZyB0cmVuZCwiICJjaGFydCB3aXRoIGZhbGxpbmcgdHJlbmQsIg0KPj4+ICJiYXIgY2hh cnQsIiBhbmQgImNsaXBib2FyZCIgZW1vamlzIChVKzFGNEM4IHRocm91Z2ggVSsxRjRDQikg b24gdGhlDQo+Pj4gbmV4dCBsaW5lPw0KPj4+IPCfk4jCoMKgwqAg8J+TicKgwqDCoCDwn5OK wqDCoMKgIPCfk4sNCj4+PiBUaGFuayB5b3UgZm9yIHlvdXIgYXR0ZW50aW9uLsKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IC0tIEdlb3JnZQ0KPj4gUGFydGlhbGx5IGFuc3dlcmluZyBteSBvd24gcXVlc3Rpb246IFVz aW5nIGNocm9tZSB0byBicm93c2UgdGhlIG1haWxpbmcNCj4+IGxpc3QgYXJjaGl2ZSwgdGhl IGVtb2ppcyBzaG93ZWQgdXAgcGVyZmVjdGx5LCBhcyB0aGV5IGRpZCBvbiBhIEJjYyB0byBt eQ0KPj4gYmFja3VwIGdtYWlsIGFjY291bnQuwqAgQnV0IEkgY291bGQgbm90IHNlZSB0aGVt IHdoZW4gY29tcG9zaW5nIHRoZQ0KPj4gbWVzc2FnZSwgb3IgcmVhZGluZyB0aGUgbWVzc2Fn ZSBmcm9tIHRoZSBsaXN0LCBpbiBUaHVuZGVyYmlyZC4NCj4+IC0tIEdlb3JnZQ0KPiANCj4g SSBjYW4gc2VlIHRoZW0uDQo+IA0KPiAjwqAgcGtnIGluZm8gLXggJ2Vtb2ppfHRodW5kZXJi aXJkJw0KPiBub3RvLWVtb2ppLTIuMDQyXzENCj4gdGh1bmRlcmJpcmQtMTE1LjExLjBfMg0K PiB0d2Vtb2ppLWNvbG9yLWZvbnQtdHRmLTE0LjAuMg0KSSBoYXZlIHRob3NlIHNhbWUgcG9y dHMgaW5zdGFsbGVkLCB0aG91Z2ggSSBidWlsZCB0aGVtIGxvY2FsbHkgKGR1ZQ0KdG8gYSBs b25nIHRlcm0gbG92ZS9oYXRlIHJlbGF0aW9uIHdpdGggQ1VQUykuICAoQWN0dWFsbHksIEkg c2VlIEkgaGF2ZQ0KdGh1bmRlcmJpcmQgMTE1LjguMF8xLiAgSSdsbCBnZXQgYW4gdXBkYXRl IHN0YXJ0ZWQuKQ0KPiANCj4gSW4gVEIgc2Vzc3RpbmdzIEkgaGF2ZSBmb250cyBmb3IgT3Ro ZXIgV3JpdGluZyBTeXN0ZW1zOg0KPiBQcm9wb3J0aW9uYWw6IFNhbnMgU2VyaWYNCj4gU2Vy aWY6IERlZmF1bHQgKE5vdG8gU2VyaWYpDQo+IFNhbnMtc2VyaWY6IEFkb2JlIEhlbHZldGlj YQ0KPiBNb25vc3BhY2U6IFRlcm1pdXMgKFRURikNClByb3BvcnRpb25hbDogU2FucyBTZXJp Zg0KU2VyaWY6IERlZmF1bHQgKE5vdG8gU2VyaWYpDQpTYW5zLXNlcmlmOiBEZWZhdWx0IChO b3RvIFNhbnMpDQpNb25vc3BhY2U6IERlZmF1bHQgKE5vdG8gU2FucyBNb25vKQ0KPiANCj4g S2luZCByZWdhcmRzDQo+IE1pcm9zbGF2IExhY2htYW4NCj4gDQpBbHNvLCBJIHJ1biB4ZmNl NC00LjE2LCBhbmQgTW91c2VwYWQgYWxzbyBkb2Vzbid0IHNob3cgZW1vamlzLg0KVGhhbmtz IGZvciB5b3VyIGhlbHAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0g R2VvcmdlDQo= --------------QsM2kao4QbO7futvu2j2x3K0-- --------------6NUlWQHd6TwfwgEgV5qPA99U Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQQ6b7/Z+PlMzCwCfBGaHA937rZnfQUCZktqPgUDAAAAAAAKCRCaHA937rZnfV1z AP922Bt/2ousYetnQzii273SznFK4BQWSO7PntPmHdwNvgEAtmRmOpWMvRAuD/zKdFsGKtMWJrgF MrXypr2Y6aoiwQI= =UpKS -----END PGP SIGNATURE----- --------------6NUlWQHd6TwfwgEgV5qPA99U-- From nobody Mon May 20 15:21:33 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Vjh9s0jMjz5LTLK for ; Mon, 20 May 2024 15:21:37 +0000 (UTC) (envelope-from bacon4000@gmail.com) Received: from mail-ot1-x329.google.com (mail-ot1-x329.google.com [IPv6:2607:f8b0:4864:20::329]) (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 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Vjh9r0t8Yz4l6s for ; Mon, 20 May 2024 15:21:36 +0000 (UTC) (envelope-from bacon4000@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=EqmuKHt6; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of bacon4000@gmail.com designates 2607:f8b0:4864:20::329 as permitted sender) smtp.mailfrom=bacon4000@gmail.com Received: by mail-ot1-x329.google.com with SMTP id 46e09a7af769-6f12171523eso1741367a34.1 for ; Mon, 20 May 2024 08:21:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716218494; x=1716823294; darn=freebsd.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=SDqrT0jg+cpqoO+7/MQNAZHxWAdB1nnm5gvbBJtMx4g=; b=EqmuKHt6NI5CbuTgHn7TIHyMbVZFjsSmbI0tSakV89K67L22twvwcjupUZVDpg7oaD Y7jgL10mE1kMUfmSnO9go997BplmimeOLicGbjkuRKIuWkgYzqcZfo4xAnU3CQSWgljc iMN9flEKhq6dG5OJ3XqTTTV5dwS78ANv5Y/xx8zPPgqrRF+HLqUXQTNOqeof8J49U7pc YJLDsVGoUNr+yYrtAorTWF+7++NJqN5S/rGPHiSd7m4BaJadvESjyCDaW7gGIkf537aP ukSH966vu+Kd/ouyStBm11DVAekZVc9DQvBQvrinU5RENuOtl36Yo3bE5fqDU4LzRq8/ L4wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716218494; x=1716823294; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=SDqrT0jg+cpqoO+7/MQNAZHxWAdB1nnm5gvbBJtMx4g=; b=UKXMQXB64rXHUUxcXyC1N5MY1sNCm6gz+Q/uvPh65+6mBMw91p2IytUVxB2oRyawpr DZ8UGT+rxnTVmwIs2b+6u2p1pno44Qe+Z+Cews3heqsHQs2yhYWY9Qmyn14EydljvsUt IMpAMMvwvj74JCHs08ayNJMhN1tiJswI16Pdx3YZg2NfKXeU+7srHRXtT4wL1yb0NDTe key1zvuDDnKvms6v4ztARAe1taB+dRg7t172ngh55d9L0wh5qEGXO1ZNE4w9qb+D/FJe I4a1RhS/MZWN65WFsGQ6T33YMRiz6cDu2OWKgq34hdtkSPn9RbNULhbDQotnLHjfYKXA iRUw== X-Gm-Message-State: AOJu0YwHKn+GE0c28hfHXhEU8fjtne39bvMcyrcE4VJGkYqIgx5TI6Ui zf2+0kKzunCXm2qZ99z1jDLRSLpOpqShcmIMkQN8rOIg2p2t1s2knU5/Yvio X-Google-Smtp-Source: AGHT+IGeuwMX8UZTYf4y9f78RzWXL/YB51Ywu1UI894VLIMZvChBjygrYJlUxEOY83Og/3EWaandwQ== X-Received: by 2002:a9d:7e93:0:b0:6f0:4201:9738 with SMTP id 46e09a7af769-6f0e914656cmr30889508a34.15.1716218494555; Mon, 20 May 2024 08:21:34 -0700 (PDT) Received: from [192.168.0.3] (108-255-3-0.lightspeed.milwwi.sbcglobal.net. [108.255.3.0]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-6f0e01b6d80sm4199517a34.21.2024.05.20.08.21.34 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 20 May 2024 08:21:34 -0700 (PDT) Message-ID: <7fc076eb-f380-4e3f-af04-d2d467ed0780@gmail.com> Date: Mon, 20 May 2024 10:21:33 -0500 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: A simpler question To: freebsd-hackers@freebsd.org References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> <3b72bac2-1d40-48d6-9cc2-e43a510387c0@m5p.com> <19eaf9d1-4898-4cd2-bf82-2317d01afe40@m5p.com> Content-Language: en-US From: Jason Bacon In-Reply-To: <19eaf9d1-4898-4cd2-bf82-2317d01afe40@m5p.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.82 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; MIME_GOOD(-0.10)[text/plain]; MIME_BASE64_TEXT(0.10)[]; NEURAL_SPAM_SHORT(0.07)[0.065]; XM_UA_NO_VERSION(0.01)[]; RCVD_TLS_LAST(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ARC_NA(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; MID_RHS_MATCH_FROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::329:from] X-Rspamd-Queue-Id: 4Vjh9r0t8Yz4l6s T24gNS8yMC8yNCAxMDoxMiwgR2VvcmdlIE1pdGNoZWxsIHdyb3RlOg0KPiBPbiA1LzE5LzI0 IDIwOjMzLCBBbGV4IFByb3Rhc2Vua28gd3JvdGU6DQo+PiBJIHNlZSB0aGVtIGZpbmUgaW4g VGh1bmRlcmJpcmQvS0RFNSBvbiAxNC4wLVJFTEVBU0UtcDYNCj4+DQo+PiBIZXJlJ3Mgc29t ZSBvZiB0aGUgcmVsYXRlZCBwYWNrYWdlcyBJIGhhdmUgaW5zdGFsbGVkOg0KPj4NCj4+IMKg wqDCoMKgwqDCoMKgwqAgbm90by1lbW9qaTogMi4wNDJfMQ0KPj4gwqDCoMKgwqDCoMKgwqDC oCB0d2Vtb2ppLWNvbG9yLWZvbnQtdHRmOiAxNC4wLjINCj4+IMKgwqDCoMKgwqDCoMKgwqAg dW5pY29kZS1lbW9qaTogMTUuMQ0KPj4NCj4+IFsuLi5dSSBoYWQgdGhlIGZpcnN0IHR3byBp bnN0YWxsZWQgYW5kIEkganVzdCBub3cgYWRkZWQgdW5pY29kZS1lbW9qaSwgDQo+PiBidXQN Cj4gbm90aGluZyBjaGFuZ2VkIChldmVuIGFmdGVyIHJlc3RhcnRpbmcgWCkuwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAtLSBHZW9yZ2UNCg0KSGF2ZSB5b3UgZXhwbGljaXRseSBk ZWZpbmVkIEZvbnRQYXRoIGluIHhvcmcuY29uZj8gIElmIHNvLCBpdCBtYXkgbmVlZCANCnRv IGJlIHVwZGF0ZWQuDQoNCiJtYW4geG9yZy5jb25mIiBoYXMgdGhlIGRldGFpbHMuDQoNCkl0 J3MgYmVlbiBhIHdoaWxlIHNpbmNlIEkndmUgZG9uZSBhbnkgbWFudWFsIHhvcmcuY29uZiB0 d2Vha3MuICBJIHVzZSANCnN5c3V0aWxzL2Rlc2t0b3AtaW5zdGFsbGVyIG5vdywgd2hpY2gg YWRkcyBhIGNvdXBsZSBvZiBzbmlwcGV0cyB0byANCi9ldGMveG9yZy5jb25mLmQsIGJ1dCBs ZWF2ZXMgWG9yZyB0byBtb3N0bHkgYXV0b2NvbmZpZ3VyZS4NCg0KLS0gDQpMaWZlIGlzIGEg Z2FtZS4gIFBsYXkgaGFyZC4gIFBsYXkgZmFpci4gIEhhdmUgZnVuLg0KDQo= From nobody Mon May 20 15:24:34 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VjhFR17X9z5LTbR for ; Mon, 20 May 2024 15:24:43 +0000 (UTC) (envelope-from george+freebsd@m5p.com) Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "m5p.com", Issuer "R3" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VjhFR0dGfz4mJD; Mon, 20 May 2024 15:24:43 +0000 (UTC) (envelope-from george+freebsd@m5p.com) Authentication-Results: mx1.freebsd.org; none Received: from [IPV6:2001:470:1f07:15ff::26] (court.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:26]) (authenticated bits=0) by mailhost.m5p.com (8.17.1/8.17.1) with ESMTPSA id 44KFOZR9070970 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Mon, 20 May 2024 11:24:41 -0400 (EDT) (envelope-from george+freebsd@m5p.com) Message-ID: Date: Mon, 20 May 2024 11:24:34 -0400 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Emoji in FreeBSD: Firefox, Thunderbird, and Chrome Content-Language: en-US To: =?UTF-8?Q?T=C4=B3l_Coosemans?= Cc: FreeBSD Hackers References: <489dde7f-a6f6-4c31-a484-3d26d5521a85@m5p.com> <20240520102552.698c6f13@hal.tijl.coosemans.org> From: George Mitchell Autocrypt: addr=george+freebsd@m5p.com; keydata= xjMEZaHDbxYJKwYBBAHaRw8BAQdA2W6oBfS8haXY0/Ft4zS1OTLYfC8EBIADPTgMQdh85C3N KEdlb3JnZSBNaXRjaGVsbCA8Z2VvcmdlK2ZyZWVic2RAbTVwLmNvbT7CmQQTFgoAQRYhBDpv v9n4+UzMLAJ8EZocD3futmd9BQJlocSiAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMB Ah4HAheAAAoJEJocD3futmd9SxwBAJUi6DNdVhWCZBTv5XGy1g0JgApLWe/3S0M0zz9sn7/L AQCcJcV5k5s2rt9J5C1AUm6XVsuneVvIWXO5j1GKWk0NC844BGWhw28SCisGAQQBl1UBBQEB B0AaFz/6B95RRvjOdLZr5fSdhuIHvwr24H3ePDZSw6wlUwMBCAfCfgQYFgoAJhYhBDpvv9n4 +UzMLAJ8EZocD3futmd9BQJlocNvAhsMBQkFo5qAAAoJEJocD3futmd9RXsBANwRD9RE56F6 /jeZOrujHICLcgPiOt50Y6866v9OUTjUAP9GlC1aopfBpNwuPLJBam7oBaGqvY98VDhzOjoT 7DNbCQ== In-Reply-To: <20240520102552.698c6f13@hal.tijl.coosemans.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------ldz2MI0bRYErSvprz43R4gI7" X-Spam-Status: No, score=0.2 required=10.0 tests=HELO_MISC_IP,HELO_NO_DOMAIN autolearn=no autolearn_force=no version=4.0.0 X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-14) on mattapan.m5p.com X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[freebsd]; ASN(0.00)[asn:701, ipnet:74.104.0.0/16, country:US] X-Rspamd-Queue-Id: 4VjhFR0dGfz4mJD This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------ldz2MI0bRYErSvprz43R4gI7 Content-Type: multipart/mixed; boundary="------------CObBbCYyRZFSWSDdYUkBgtBm"; protected-headers="v1" From: George Mitchell To: =?UTF-8?Q?T=C4=B3l_Coosemans?= Cc: FreeBSD Hackers Message-ID: Subject: Re: Emoji in FreeBSD: Firefox, Thunderbird, and Chrome References: <489dde7f-a6f6-4c31-a484-3d26d5521a85@m5p.com> <20240520102552.698c6f13@hal.tijl.coosemans.org> In-Reply-To: <20240520102552.698c6f13@hal.tijl.coosemans.org> --------------CObBbCYyRZFSWSDdYUkBgtBm Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gNS8yMC8yNCAwNDoyNiwgVMSzbCBDb29zZW1hbnMgd3JvdGU6DQo+IE9uIFR1ZSwgMTQg TWF5IDIwMjQgMTU6MjY6MjQgLTA0MDAgR2VvcmdlIE1pdGNoZWxsIHdyb3RlOg0KPj4gRmly ZWZveCBhbmQgVGh1bmRlcmJpcmQ6IFRoZXkgYXJlbid0IHRoZXJlLg0KPj4gQ2hyb21lOiBU aGV5IHdvcmsuICBTZWUgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRW1vamkjSW5f VW5pY29kZQ0KPj4NCj4+IEkgaGF2ZSB4MTEtZm9udHMvbm90by1lbW9qaSBpbnN0YWxsZWQu DQo+Pg0KPj4gV2hlbiBJIGluc3RhbGwgQ2hyb21lLCB0aGUgaW5pdGlhbCBmb250IHNldHRp bmdzIGFyZSBhbGwgIkN1c3RvbSwiDQo+PiB0aG91Z2ggb25jZSBJIHNlbGVjdCBzb21lIG90 aGVyIHNldHRpbmcsICJDdXN0b20iIGRpc2FwcGVhcnMgZnJvbSB0aGUNCj4+IGRyb3AtZG93 biBtZW51LiAgUmVnYXJkbGVzcyBvZiB0aGF0LCBlbW9qaXMgc3RpbGwgb3BlcmF0ZSBhcyBl eHBlY3RlZC4NCj4+IEJ1dCBpbiBGaXJlZm94LCBldmVuIHdoZW4gSSBzZXQgYWxsIGZvbnQg c2V0dGluZyB0byBOb3RvLCBubyBlbW9qaXMNCj4+IGFwcGVhcjsgbm9yIGRvIHRoZXkgd29y ayBpbiBUaHVuZGVyYmlyZC4NCj4+DQo+PiBXaGF0IGVsc2Ugc2hvdWxkIEkgY2hlY2s/ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEdlb3JnZQ0KPiANCj4gTWFrZSBz dXJlIG5vdG8tZW1vamkgaXMgaW5zdGFsbGVkIHdpdGggdGhlIENPTFIgb3B0aW9uIGRpc2Fi bGVkLiAgSWYNCj4gdGhhdCdzIGFscmVhZHkgdGhlIGNhc2UgdGhlbiBwcm92aWRlIHRoZSBv dXRwdXQgb2YgImZjLW1hdGNoIGVtb2ppIi4NCkNPTFIgaXMgaW5kZWVkIGRpc2FibGVkLiAg QW5kIGZjLW1hdGNoIGVtb2ppIHNheXM6DQoNCk5vdG9Db2xvckVtb2ppLnR0ZjogIk5vdG8g Q29sb3IgRW1vamkiICJSZWd1bGFyIg0KDQotLSBHZW9yZ2UNCg== --------------CObBbCYyRZFSWSDdYUkBgtBm-- --------------ldz2MI0bRYErSvprz43R4gI7 Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wnoEABYIACMWIQQ6b7/Z+PlMzCwCfBGaHA937rZnfQUCZktrMwUDAAAAAAAKCRCaHA937rZnfTVa AP9YYa/k047WJZMU5q7yeA6yCvdcYcvu6Hw3I1s3F6X+OAD4nFwuoMXtnIj+yPdHqKGXia4NlJ1V 9sQGWtFRxmM5Bw== =KMd1 -----END PGP SIGNATURE----- --------------ldz2MI0bRYErSvprz43R4gI7-- From nobody Mon May 20 15:34:06 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VjhSR1Gsrz5LVRM for ; Mon, 20 May 2024 15:34:15 +0000 (UTC) (envelope-from george+freebsd@m5p.com) Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "m5p.com", Issuer "R3" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VjhSQ4bbTz4nLS for ; Mon, 20 May 2024 15:34:14 +0000 (UTC) (envelope-from george+freebsd@m5p.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of george+freebsd@m5p.com designates 74.104.188.4 as permitted sender) smtp.mailfrom=george+freebsd@m5p.com Received: from [IPV6:2001:470:1f07:15ff::26] (court.m5p.com [IPv6:2001:470:1f07:15ff:0:0:0:26]) (authenticated bits=0) by mailhost.m5p.com (8.17.1/8.17.1) with ESMTPSA id 44KFY622071012 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO) for ; Mon, 20 May 2024 11:34:12 -0400 (EDT) (envelope-from george+freebsd@m5p.com) Message-ID: Date: Mon, 20 May 2024 11:34:06 -0400 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: A simpler question Content-Language: en-US To: freebsd-hackers@freebsd.org References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> <3b72bac2-1d40-48d6-9cc2-e43a510387c0@m5p.com> <19eaf9d1-4898-4cd2-bf82-2317d01afe40@m5p.com> <7fc076eb-f380-4e3f-af04-d2d467ed0780@gmail.com> From: George Mitchell Autocrypt: addr=george+freebsd@m5p.com; keydata= xjMEZaHDbxYJKwYBBAHaRw8BAQdA2W6oBfS8haXY0/Ft4zS1OTLYfC8EBIADPTgMQdh85C3N KEdlb3JnZSBNaXRjaGVsbCA8Z2VvcmdlK2ZyZWVic2RAbTVwLmNvbT7CmQQTFgoAQRYhBDpv v9n4+UzMLAJ8EZocD3futmd9BQJlocSiAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMB Ah4HAheAAAoJEJocD3futmd9SxwBAJUi6DNdVhWCZBTv5XGy1g0JgApLWe/3S0M0zz9sn7/L AQCcJcV5k5s2rt9J5C1AUm6XVsuneVvIWXO5j1GKWk0NC844BGWhw28SCisGAQQBl1UBBQEB B0AaFz/6B95RRvjOdLZr5fSdhuIHvwr24H3ePDZSw6wlUwMBCAfCfgQYFgoAJhYhBDpvv9n4 +UzMLAJ8EZocD3futmd9BQJlocNvAhsMBQkFo5qAAAoJEJocD3futmd9RXsBANwRD9RE56F6 /jeZOrujHICLcgPiOt50Y6866v9OUTjUAP9GlC1aopfBpNwuPLJBam7oBaGqvY98VDhzOjoT 7DNbCQ== In-Reply-To: <7fc076eb-f380-4e3f-af04-d2d467ed0780@gmail.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------2HtM0M48fkJSGRKLEUjz9t4b" X-Spam-Status: No, score=0.2 required=10.0 tests=HELO_MISC_IP,HELO_NO_DOMAIN autolearn=no autolearn_force=no version=4.0.0 X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-14) on mattapan.m5p.com X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.41 / 15.00]; SIGNED_PGP(-2.00)[]; NEURAL_HAM_LONG(-0.99)[-0.986]; NEURAL_HAM_MEDIUM(-0.78)[-0.777]; NEURAL_HAM_SHORT(-0.36)[-0.358]; MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain]; R_SPF_ALLOW(-0.20)[+a:c]; MIME_BASE64_TEXT(0.10)[]; XM_UA_NO_VERSION(0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_ALL(0.00)[]; HAS_ATTACHMENT(0.00)[]; ARC_NA(0.00)[]; TAGGED_FROM(0.00)[freebsd]; DMARC_NA(0.00)[m5p.com]; FROM_HAS_DN(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; ASN(0.00)[asn:701, ipnet:74.104.0.0/16, country:US]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; TO_DN_NONE(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; RCVD_COUNT_ONE(0.00)[1]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; MID_RHS_MATCH_FROM(0.00)[]; R_DKIM_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~] X-Rspamd-Queue-Id: 4VjhSQ4bbTz4nLS This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------2HtM0M48fkJSGRKLEUjz9t4b Content-Type: multipart/mixed; boundary="------------md0MBMHAkjcTjsyS5dytoYaK"; protected-headers="v1" From: George Mitchell To: freebsd-hackers@freebsd.org Message-ID: Subject: Re: A simpler question References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> <3b72bac2-1d40-48d6-9cc2-e43a510387c0@m5p.com> <19eaf9d1-4898-4cd2-bf82-2317d01afe40@m5p.com> <7fc076eb-f380-4e3f-af04-d2d467ed0780@gmail.com> In-Reply-To: <7fc076eb-f380-4e3f-af04-d2d467ed0780@gmail.com> --------------md0MBMHAkjcTjsyS5dytoYaK Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gNS8yMC8yNCAxMToyMSwgSmFzb24gQmFjb24gd3JvdGU6DQo+IE9uIDUvMjAvMjQgMTA6 MTIsIEdlb3JnZSBNaXRjaGVsbCB3cm90ZToNCj4+IE9uIDUvMTkvMjQgMjA6MzMsIEFsZXgg UHJvdGFzZW5rbyB3cm90ZToNCj4+PiBJIHNlZSB0aGVtIGZpbmUgaW4gVGh1bmRlcmJpcmQv S0RFNSBvbiAxNC4wLVJFTEVBU0UtcDYNCj4+Pg0KPj4+IEhlcmUncyBzb21lIG9mIHRoZSBy ZWxhdGVkIHBhY2thZ2VzIEkgaGF2ZSBpbnN0YWxsZWQ6DQo+Pj4NCj4+PiDCoMKgwqDCoMKg wqDCoMKgIG5vdG8tZW1vamk6IDIuMDQyXzENCj4+PiDCoMKgwqDCoMKgwqDCoMKgIHR3ZW1v amktY29sb3ItZm9udC10dGY6IDE0LjAuMg0KPj4+IMKgwqDCoMKgwqDCoMKgwqAgdW5pY29k ZS1lbW9qaTogMTUuMQ0KPj4+DQo+Pj4gWy4uLl1JIGhhZCB0aGUgZmlyc3QgdHdvIGluc3Rh bGxlZCBhbmQgSSBqdXN0IG5vdyBhZGRlZCANCj4+PiB1bmljb2RlLWVtb2ppLCBidXQNCj4+ IG5vdGhpbmcgY2hhbmdlZCAoZXZlbiBhZnRlciByZXN0YXJ0aW5nIFgpLsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgLS0gR2VvcmdlDQo+IA0KPiBIYXZlIHlvdSBleHBsaWNpdGx5 IGRlZmluZWQgRm9udFBhdGggaW4geG9yZy5jb25mP8KgIElmIHNvLCBpdCBtYXkgbmVlZCAN Cj4gdG8gYmUgdXBkYXRlZC4NCj4gDQo+ICJtYW4geG9yZy5jb25mIiBoYXMgdGhlIGRldGFp bHMuDQo+IA0KPiBJdCdzIGJlZW4gYSB3aGlsZSBzaW5jZSBJJ3ZlIGRvbmUgYW55IG1hbnVh bCB4b3JnLmNvbmYgdHdlYWtzLsKgIEkgdXNlIA0KPiBzeXN1dGlscy9kZXNrdG9wLWluc3Rh bGxlciBub3csIHdoaWNoIGFkZHMgYSBjb3VwbGUgb2Ygc25pcHBldHMgdG8gDQo+IC9ldGMv eG9yZy5jb25mLmQsIGJ1dCBsZWF2ZXMgWG9yZyB0byBtb3N0bHkgYXV0b2NvbmZpZ3VyZS4N Cj4gDQpJIGhhdmUgbm8gWG9yZy5jb25mIGFuZCBubyAvdXNyL2xvY2FsL2V0Yy9YMTEveG9y Zy5jb25mLmQuDQpNeSAvdXNyL2xvY2FsL3NoYXJlL1gxMS94b3JnLmNvbmYuZCBpcyB1bmNo YW5nZWQgZnJvbSB3aGVuIGl0IHdhcw0KY3JlYXRlZC4gIEFsc28sIGFsbCBlbW9qaXMgd29y ayBmaW5lIGluIGNocm9tZS4gIFRoYW5rcyBmb3IgdGhlDQpzdWdnZXN0aW9ucy4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBHZW9yZ2UNCg== --------------md0MBMHAkjcTjsyS5dytoYaK-- --------------2HtM0M48fkJSGRKLEUjz9t4b Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQQ6b7/Z+PlMzCwCfBGaHA937rZnfQUCZkttbgUDAAAAAAAKCRCaHA937rZnfYgs AP9NiGwEt/A5ZjliShA0uUXKBcEFNRm583050UPXhD7dwQD+I3HLUdafw4fWjZSx0HKTuu0R65eq Vv1SYCvx8414xAc= =FlCO -----END PGP SIGNATURE----- --------------2HtM0M48fkJSGRKLEUjz9t4b-- From nobody Mon May 20 17:45:04 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VjlMS5zG2z5L1tX for ; Mon, 20 May 2024 17:45:08 +0000 (UTC) (envelope-from paulf2718@gmail.com) Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) (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 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VjlMS0n70z488c for ; Mon, 20 May 2024 17:45:08 +0000 (UTC) (envelope-from paulf2718@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=GnSpQeUF; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of paulf2718@gmail.com designates 2a00:1450:4864:20::32e as permitted sender) smtp.mailfrom=paulf2718@gmail.com Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-4202c1d19d5so21041305e9.2 for ; Mon, 20 May 2024 10:45:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716227107; x=1716831907; darn=freebsd.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=aA96uMO6p3ZqtgoWCTa7sij/jH69x3tklopdXreSzpY=; b=GnSpQeUFzn/L6/BiKbI6LhK2d232F8GeyOfJ5YFVfGIA4/9zeKAomxK2LP5fE5H9SB U//o7avUJnd/3hT2x0ASyo/xHW0SwwwEUd8ZN4o9G7/9wKm3G8cXE8QgC8Q0i0/KNPmb Xq5FHrTgN1A3RwOx1aCDHw1dd92Hep5kuff3q7qDVK4yAJtpXnInjHh8AfHyiZXCzrS3 Ix98m9V+Ld3PNgR96xs2q2z0y2gnAjV+pMqx7tz6l/8E1m7A8CbIOCqmVjwHdacHRIX6 oL4mox5h5H8o0+fJJfwxt3mXC+Mkq/NcYDds/X7Xt1fcpk1EkjGonuVlPUMfbNO27RdX R/XQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716227107; x=1716831907; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=aA96uMO6p3ZqtgoWCTa7sij/jH69x3tklopdXreSzpY=; b=OQqKE98/WsRvrCV5awz5ksquJFFgCXCchWJ8gNG6bUCCLhCx3+J8NVxZY1wSFMr527 T3QtyBfhgRZC9OCneFhdsOgT4xCHYqcqpnFLA35NJ+UYq4IhAuwrb3fRQmx9470595cP Z4VkfgK/f1g0JRUU5PwEo7TwMM9j+xuoVlwKsRxyXQmJkjfwR8t0iYZG6ep6nDaBWctc 8pGoymZqkvUQ3laz590DYdCBTEIs59r3M28ixNK4xWCd8mLCaCl/atrApJlFzJ9mPseh VB+Mx0lrBnXQ1Kb7P0/1wHsC0OataMwy0FMw6dJAdGwTyiwGwpgdpCndOXN1nTTv2Dx7 eLnw== X-Gm-Message-State: AOJu0Yws765neqeSgB6u7aVr9tqRqGTFxjoNzZv2CSBwb7MrwQpEfY4q D4nd0pXn5jpekKGhIMVh4KETg6Rk8UtVsSKEM/73B9yYPjkkLJgj0iNLlA== X-Google-Smtp-Source: AGHT+IFr+93socowMiBNrVefSTbD+UvGg3Li0JGkpo0JpmauFQCPVi86oVdhJqyzufw3PXJ2M9Gshw== X-Received: by 2002:a05:600c:450e:b0:41c:2499:fa0e with SMTP id 5b1f17b1804b1-41fea931878mr266984335e9.4.1716227106646; Mon, 20 May 2024 10:45:06 -0700 (PDT) Received: from ?IPV6:2a01:cb15:8010:2f00:1aa9:5ff:fe16:2efb? ([2a01:cb15:8010:2f00:1aa9:5ff:fe16:2efb]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-42010940845sm352005565e9.35.2024.05.20.10.45.05 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 20 May 2024 10:45:06 -0700 (PDT) Message-ID: Date: Mon, 20 May 2024 17:45:04 +0000 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Initial implementation of _FORTIFY_SOURCE To: freebsd-hackers@freebsd.org References: Content-Language: en-US From: Paul Floyd In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.90 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.91)[-0.915]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; MIME_GOOD(-0.10)[text/plain]; XM_UA_NO_VERSION(0.01)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; MID_RHS_MATCH_FROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::32e:from] X-Rspamd-Queue-Id: 4VjlMS0n70z488c On 13-05-24 17:47, Kyle Evans wrote: > Hi, > Please test _FORTIFY_SOURCE out now by setting FORTIFY_SOURCE=2 in the > buildworld env -- I intend to flip the default to 2 when WITH_SSP is set > in the next month if nobody complains about serious breakage.  I've > personally been rolling with FORTIFY_SOURCE=2 for the last three years > that this has been sitting in a local branch, so I don't really > anticipate any super-fundamental breakage. Hi Kyle I just tried c7581d76a1e46a925bba59d3e18394908f65c907 No issues on arm64 other than the usual -CURRENT noise which has nothing to do with FORTIFY_SOURCE. A+ Paul From nobody Mon May 20 22:21:02 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VjsV13lvXz5LcCq for ; Mon, 20 May 2024 22:21:13 +0000 (UTC) (envelope-from george+freebsd@m5p.com) Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "m5p.com", Issuer "R3" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VjsV04ldzz4dZk for ; Mon, 20 May 2024 22:21:12 +0000 (UTC) (envelope-from george+freebsd@m5p.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of george+freebsd@m5p.com designates 74.104.188.4 as permitted sender) smtp.mailfrom=george+freebsd@m5p.com Received: from [IPV6:2001:470:8ac4::26] (court.m5p.com [IPv6:2001:470:8ac4:0:0:0:0:26]) (authenticated bits=0) by mailhost.m5p.com (8.17.1/8.17.1) with ESMTPSA id 44KML24p072805 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Mon, 20 May 2024 18:21:09 -0400 (EDT) (envelope-from george+freebsd@m5p.com) Message-ID: <4687fc68-03cb-433e-9b55-a7761529327c@m5p.com> Date: Mon, 20 May 2024 18:21:02 -0400 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: A simpler question From: George Mitchell To: Miroslav Lachman <000.fbsd@quip.cz>, freebsd-hackers@freebsd.org References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> <19f6160f-bd96-420d-8eb2-6bb095bb082b@quip.cz> Content-Language: en-US Autocrypt: addr=george+freebsd@m5p.com; keydata= xjMEZaHDbxYJKwYBBAHaRw8BAQdA2W6oBfS8haXY0/Ft4zS1OTLYfC8EBIADPTgMQdh85C3N KEdlb3JnZSBNaXRjaGVsbCA8Z2VvcmdlK2ZyZWVic2RAbTVwLmNvbT7CmQQTFgoAQRYhBDpv v9n4+UzMLAJ8EZocD3futmd9BQJlocSiAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMB Ah4HAheAAAoJEJocD3futmd9SxwBAJUi6DNdVhWCZBTv5XGy1g0JgApLWe/3S0M0zz9sn7/L AQCcJcV5k5s2rt9J5C1AUm6XVsuneVvIWXO5j1GKWk0NC844BGWhw28SCisGAQQBl1UBBQEB B0AaFz/6B95RRvjOdLZr5fSdhuIHvwr24H3ePDZSw6wlUwMBCAfCfgQYFgoAJhYhBDpvv9n4 +UzMLAJ8EZocD3futmd9BQJlocNvAhsMBQkFo5qAAAoJEJocD3futmd9RXsBANwRD9RE56F6 /jeZOrujHICLcgPiOt50Y6866v9OUTjUAP9GlC1aopfBpNwuPLJBam7oBaGqvY98VDhzOjoT 7DNbCQ== In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------ZW9ahEjnkqL0AaUb8UacJ1vD" X-Spam-Status: No, score=0.0 required=10.0 tests=HELO_NO_DOMAIN autolearn=unavailable autolearn_force=no version=4.0.0 X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-14) on mattapan.m5p.com X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.79 / 15.00]; SIGNED_PGP(-2.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.85)[-0.854]; NEURAL_HAM_MEDIUM(-0.65)[-0.650]; MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain]; R_SPF_ALLOW(-0.20)[+a:c]; MIME_BASE64_TEXT(0.10)[]; XM_UA_NO_VERSION(0.01)[]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_ONE(0.00)[1]; ASN(0.00)[asn:701, ipnet:74.104.0.0/16, country:US]; TO_DN_SOME(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~]; DMARC_NA(0.00)[m5p.com]; MID_RHS_MATCH_FROM(0.00)[]; R_DKIM_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; TAGGED_FROM(0.00)[freebsd]; HAS_ATTACHMENT(0.00)[] X-Rspamd-Queue-Id: 4VjsV04ldzz4dZk This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------ZW9ahEjnkqL0AaUb8UacJ1vD Content-Type: multipart/mixed; boundary="------------m0suPWGm2oQ2DGZzgmEi4GjM"; protected-headers="v1" From: George Mitchell To: Miroslav Lachman <000.fbsd@quip.cz>, freebsd-hackers@freebsd.org Message-ID: <4687fc68-03cb-433e-9b55-a7761529327c@m5p.com> Subject: Re: A simpler question References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> <19f6160f-bd96-420d-8eb2-6bb095bb082b@quip.cz> In-Reply-To: --------------m0suPWGm2oQ2DGZzgmEi4GjM Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gNS8yMC8yNCAxMToyMCwgR2VvcmdlIE1pdGNoZWxsIHdyb3RlOg0KPiBbLi4uXcKgIChB Y3R1YWxseSwgSSBzZWUgSSBoYXZlDQo+IHRodW5kZXJiaXJkIDExNS44LjBfMS7CoCBJJ2xs IGdldCBhbiB1cGRhdGUgc3RhcnRlZC4pDQo+PlsuLi5dDQpJIGhhdmUgdXBncmFkZWQgdGh1 bmRlcmJpcmQgZnJvbSAxMTUuOC4wXzEgLT4gMTE1LjExLjBfMiBhbmQgZmlyZWZveA0KZnJv bSAxMjMuMF8zLDIgLT4gMTI2LjBfMiwyLCBidXQgaXQgZG9lc24ndCBmaXggbXkgZW1vamlz LiAgIC0tIEdlb3JnZQ0KDQo= --------------m0suPWGm2oQ2DGZzgmEi4GjM-- --------------ZW9ahEjnkqL0AaUb8UacJ1vD Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQQ6b7/Z+PlMzCwCfBGaHA937rZnfQUCZkvMzgUDAAAAAAAKCRCaHA937rZnfT6V AP9C2GVm+i8KspDmh6IqYzNd+CJnmx0Wd/+ZnXioKDDfjQD/UonTrK3fo7CIFw7A73VtiOFfBRpa ztbjvoW6lwOqfwQ= =YLyB -----END PGP SIGNATURE----- --------------ZW9ahEjnkqL0AaUb8UacJ1vD-- From nobody Mon May 20 23:15:51 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VjtjF2YB8z5Ljs4 for ; Mon, 20 May 2024 23:16:01 +0000 (UTC) (envelope-from alex@protasenko.com) Received: from mail.bkmks.com (mail.bkmks.com [IPv6:2600:3c05::f03c:93ff:fe4a:5395]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4VjtjD3Wy2z4mjp for ; Mon, 20 May 2024 23:16:00 +0000 (UTC) (envelope-from alex@protasenko.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bkmks.com header.s=mail header.b=GD4bwBic; dmarc=none; spf=pass (mx1.freebsd.org: domain of alex@protasenko.com designates 2600:3c05::f03c:93ff:fe4a:5395 as permitted sender) smtp.mailfrom=alex@protasenko.com Received: from [IPV6:2600:4040:a624:1700:aaa1:59ff:fee4:9880] (unknown [IPv6:2600:4040:a624:1700:aaa1:59ff:fee4:9880]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) (Authenticated sender: aprotasenko@bkmks.com) by mail.bkmks.com (Postfix) with ESMTPSA id 7ABCB25F243 for ; Mon, 20 May 2024 19:15:58 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.bkmks.com 7ABCB25F243 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bkmks.com; s=mail; t=1716246958; bh=nHQTQk6lZChO6EGckCPzma82lJ2DJUI29/iXMfaK9SA=; h=Date:From:Subject:To:References:In-Reply-To:From; b=GD4bwBiciIRwb6m1FzEig5nnGr5Eg1Dqmihy/mA19G+G85j9U1j0Bez3QHyoXrOK7 TyqmJ9X3JxVb71Nv/o8sgIUNjV7OEHzxANS8MRWvYLLyzrmiyWOILz0FATjVwQpJsE wsipGAYBF2yFkZPV/7w/ZLvSqSnhSMXrPNBYBCEA= Message-ID: Date: Mon, 20 May 2024 19:15:51 -0400 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Alex Protasenko Subject: Re: A simpler question To: freebsd-hackers@freebsd.org References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> <19f6160f-bd96-420d-8eb2-6bb095bb082b@quip.cz> Content-Language: en-US In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.49 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; R_SPF_ALLOW(-0.20)[+mx]; R_DKIM_ALLOW(-0.20)[bkmks.com:s=mail]; MIME_GOOD(-0.10)[text/plain]; XM_UA_NO_VERSION(0.01)[]; FREEFALL_USER(0.00)[alex]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; ASN(0.00)[asn:63949, ipnet:2600:3c05::/32, country:SG]; RCPT_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_ONE(0.00)[1]; RCVD_TLS_ALL(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DMARC_NA(0.00)[protasenko.com]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DKIM_TRACE(0.00)[bkmks.com:+] X-Rspamd-Queue-Id: 4VjtjD3Wy2z4mjp It's probably gtk/fontconfig issue. See if there's anything in ~/.config/fontconfig/ and try moving it out of the way. In my case thunderbird will show color unicode chars if either 'twemoji-color-font-ttf' or 'noto-emoji' are installed. They would look a little different depending on which one is installed, and it would prefer noto-emoji if both are there. Otherwise will show blank. Mousepad shows them only when noto-emoji is installed, no show for other emoji fonts Firefox has it's own bundled in /usr/local/lib/firefox/fonts/TwemojiMozilla.ttf. So might as well copy this file into ~/.fonts/ and see if that's going to help... On 5/20/24 11:20, George Mitchell wrote: > On 5/20/24 03:46, Miroslav Lachman wrote: >> On 20/05/2024 00:40, George Mitchell wrote: >>> On 5/19/24 18:36, George Mitchell wrote: >>>> 1. Are you a Thunderbird user on FreeBSD? >>>> 2. Do you see a "chart with rising trend," "chart with falling trend," >>>> "bar chart," and "clipboard" emojis (U+1F4C8 through U+1F4CB) on the >>>> next line? >>>> 📈    📉    📊    📋 >>>> Thank you for your attention. -- George >>> Partially answering my own question: Using chrome to browse the mailing >>> list archive, the emojis showed up perfectly, as they did on a Bcc >>> to my >>> backup gmail account.  But I could not see them when composing the >>> message, or reading the message from the list, in Thunderbird. >>> -- George >> >> I can see them. >> >> #  pkg info -x 'emoji|thunderbird' >> noto-emoji-2.042_1 >> thunderbird-115.11.0_2 >> twemoji-color-font-ttf-14.0.2 > I have those same ports installed, though I build them locally (due > to a long term love/hate relation with CUPS).  (Actually, I see I have > thunderbird 115.8.0_1.  I'll get an update started.) >> >> In TB sesstings I have fonts for Other Writing Systems: >> Proportional: Sans Serif >> Serif: Default (Noto Serif) >> Sans-serif: Adobe Helvetica >> Monospace: Termius (TTF) > Proportional: Sans Serif > Serif: Default (Noto Serif) > Sans-serif: Default (Noto Sans) > Monospace: Default (Noto Sans Mono) >> >> Kind regards >> Miroslav Lachman >> > Also, I run xfce4-4.16, and Mousepad also doesn't show emojis. > Thanks for your help.                                    -- George From nobody Tue May 21 00:15:45 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Vjw2V221Nz5LqZx for ; Tue, 21 May 2024 00:16:02 +0000 (UTC) (envelope-from george+freebsd@m5p.com) Received: from mailhost.m5p.com (mailhost.m5p.com [74.104.188.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "m5p.com", Issuer "R3" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Vjw2T2S5mz4sSv for ; Tue, 21 May 2024 00:16:01 +0000 (UTC) (envelope-from george+freebsd@m5p.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of george+freebsd@m5p.com designates 74.104.188.4 as permitted sender) smtp.mailfrom=george+freebsd@m5p.com Received: from [IPV6:2001:470:8ac4::26] (court.m5p.com [IPv6:2001:470:8ac4:0:0:0:0:26]) (authenticated bits=0) by mailhost.m5p.com (8.17.1/8.17.1) with ESMTPSA id 44L0FjYR073325 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO) for ; Mon, 20 May 2024 20:15:51 -0400 (EDT) (envelope-from george+freebsd@m5p.com) Message-ID: <266465b4-445b-496a-9619-eff08a5ec557@m5p.com> Date: Mon, 20 May 2024 20:15:45 -0400 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: George Mitchell Subject: Re: A simpler question To: freebsd-hackers@freebsd.org References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> <19f6160f-bd96-420d-8eb2-6bb095bb082b@quip.cz> Content-Language: en-US Autocrypt: addr=george+freebsd@m5p.com; keydata= xjMEZaHDbxYJKwYBBAHaRw8BAQdA2W6oBfS8haXY0/Ft4zS1OTLYfC8EBIADPTgMQdh85C3N KEdlb3JnZSBNaXRjaGVsbCA8Z2VvcmdlK2ZyZWVic2RAbTVwLmNvbT7CmQQTFgoAQRYhBDpv v9n4+UzMLAJ8EZocD3futmd9BQJlocSiAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMB Ah4HAheAAAoJEJocD3futmd9SxwBAJUi6DNdVhWCZBTv5XGy1g0JgApLWe/3S0M0zz9sn7/L AQCcJcV5k5s2rt9J5C1AUm6XVsuneVvIWXO5j1GKWk0NC844BGWhw28SCisGAQQBl1UBBQEB B0AaFz/6B95RRvjOdLZr5fSdhuIHvwr24H3ePDZSw6wlUwMBCAfCfgQYFgoAJhYhBDpvv9n4 +UzMLAJ8EZocD3futmd9BQJlocNvAhsMBQkFo5qAAAoJEJocD3futmd9RXsBANwRD9RE56F6 /jeZOrujHICLcgPiOt50Y6866v9OUTjUAP9GlC1aopfBpNwuPLJBam7oBaGqvY98VDhzOjoT 7DNbCQ== In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------evucUCN63Kf0NlJQh3nARgTz" X-Spam-Status: No, score=0.0 required=10.0 tests=HELO_NO_DOMAIN autolearn=unavailable autolearn_force=no version=4.0.0 X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-14) on mattapan.m5p.com X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.20 / 15.00]; SIGNED_PGP(-2.00)[]; MIME_BASE64_TEXT_BOGUS(1.00)[]; NEURAL_HAM_LONG(-0.99)[-0.994]; NEURAL_HAM_SHORT(-0.99)[-0.987]; NEURAL_HAM_MEDIUM(-0.93)[-0.931]; R_SPF_ALLOW(-0.20)[+a:c]; MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain]; MIME_BASE64_TEXT(0.10)[]; XM_UA_NO_VERSION(0.01)[]; TAGGED_FROM(0.00)[freebsd]; RCVD_TLS_ALL(0.00)[]; DMARC_NA(0.00)[m5p.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; ARC_NA(0.00)[]; HAS_ATTACHMENT(0.00)[]; FROM_HAS_DN(0.00)[]; ASN(0.00)[asn:701, ipnet:74.104.0.0/16, country:US]; RCPT_COUNT_ONE(0.00)[1]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; TO_DN_NONE(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; RCVD_COUNT_ONE(0.00)[1]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; MID_RHS_MATCH_FROM(0.00)[]; R_DKIM_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~] X-Rspamd-Queue-Id: 4Vjw2T2S5mz4sSv This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------evucUCN63Kf0NlJQh3nARgTz Content-Type: multipart/mixed; boundary="------------1ihWPmqJ3knKvBPBOosp0oLT"; protected-headers="v1" From: George Mitchell To: freebsd-hackers@freebsd.org Message-ID: <266465b4-445b-496a-9619-eff08a5ec557@m5p.com> Subject: Re: A simpler question References: <25471908-df8e-430c-b4a1-feab9c4ca4f9@m5p.com> <19f6160f-bd96-420d-8eb2-6bb095bb082b@quip.cz> In-Reply-To: --------------1ihWPmqJ3knKvBPBOosp0oLT Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gNS8yMC8yNCAxOToxNSwgQWxleCBQcm90YXNlbmtvIHdyb3RlOg0KPiBJdCdzIHByb2Jh Ymx5IGd0ay9mb250Y29uZmlnIGlzc3VlLiBTZWUgaWYgdGhlcmUncyBhbnl0aGluZyBpbiAN Cj4gfi8uY29uZmlnL2ZvbnRjb25maWcvIGFuZCB0cnkgbW92aW5nIGl0IG91dCBvZiB0aGUg d2F5Lg0KRnVubnkgeW91IHNob3VsZCBtZW50aW9uIHRoYXQuICBJbmRlZWQsIEkgaGFkIHRv IGNyZWF0ZSBhIGZvbnRzLmNvbmYNCnRoZXJlIHRvIGRlYWwgd2l0aCB0aHVuZGVyYmlyZCB0 dXJuaW5nIGxpZ2F0dXJlLWFibGUgc2VxdWVuY2VzIChmZmwsDQplLmcuKSBpbnRvIGxpZ2F0 dXJlcyBldmVuIGZvciBtb25vc3BhY2VkIGZvbnRzLiAgSSdsbCB0cnkgbW92aW5nIHRoYXQN CmF3YXkgYW5kIHNlZSB3aGF0IGhhcHBlbnMgLiAuIC4NCj4gDQo+IEluIG15IGNhc2UgdGh1 bmRlcmJpcmQgd2lsbCBzaG93IGNvbG9yIHVuaWNvZGUgY2hhcnMgaWYgZWl0aGVyIA0KPiAn dHdlbW9qaS1jb2xvci1mb250LXR0Zicgb3IgJ25vdG8tZW1vamknIGFyZSBpbnN0YWxsZWQu IFRoZXkgd291bGQgbG9vayANCj4gYSBsaXR0bGUgZGlmZmVyZW50IGRlcGVuZGluZyBvbiB3 aGljaCBvbmUgaXMgaW5zdGFsbGVkLCBhbmQgaXQgd291bGQgDQo+IHByZWZlciBub3RvLWVt b2ppIGlmIGJvdGggYXJlIHRoZXJlLiBPdGhlcndpc2Ugd2lsbCBzaG93IGJsYW5rLg0KPiAN Cj4gTW91c2VwYWQgc2hvd3MgdGhlbSBvbmx5IHdoZW4gbm90by1lbW9qaSBpcyBpbnN0YWxs ZWQsIG5vIHNob3cgZm9yIG90aGVyIA0KPiBlbW9qaSBmb250cw0KV2VsbCwgSSBkZWZpbml0 ZWx5IGhhdmUgbm90by1lbW9qaSBpbnN0YWxsZWQuDQo+IA0KPiBGaXJlZm94IGhhcyBpdCdz IG93biBidW5kbGVkIGluIA0KPiAvdXNyL2xvY2FsL2xpYi9maXJlZm94L2ZvbnRzL1R3ZW1v amlNb3ppbGxhLnR0Zi4gU28gbWlnaHQgYXMgd2VsbCBjb3B5IA0KPiB0aGlzIGZpbGUgaW50 byB+Ly5mb250cy8gYW5kIHNlZSBpZiB0aGF0J3MgZ29pbmcgdG8gaGVscC4uLg0KT2theSwg SSd2ZSBkb25lIHRoYXQuICBOb3cgSSdsbCByZXN0YXJ0IC4gLiAuDQoNCkhvbHkgY293ISAg U29tZXRoaW5nIGhlbHBlZCEgIEknbSBnb2luZyB0byByZXZlcnQgbXkgLmNvbmZpZy9mb250 Y29uZmlnDQpjaGFuZ2UsIGJlY2F1c2UgSSB0aGluayBpdCB3YXMgdGhlIFR3ZW1vamlNb3pp bGxhLnR0ZiBjaGFuZ2UgLi4uDQoNCll1cCwgaXQgd2FzIGNvcHlpbmcgVHdlbW9qaU1vemls bGEudHRmIHRvIH4vLmZvbnRzLiAgSXQgZml4ZWQgYm90aA0KdGh1bmRlcmJpcmQgYW5kIGZp cmVmb3ggZm9yIG1lISAgVGhhbmsgeW91ISAgKEFuZCBldmVyeW9uZSB3aG8gaXMNCnRpcmVk IG9mIGhlYXJpbmcgbWUgcmFudCBhYm91dCBlbW9qaXMgdGhhbmtzIHlvdSB0b28uKSAgICAg LS0gR2VvcmdlDQoNCj4gWy4uLl0NCg== --------------1ihWPmqJ3knKvBPBOosp0oLT-- --------------evucUCN63Kf0NlJQh3nARgTz Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQQ6b7/Z+PlMzCwCfBGaHA937rZnfQUCZkvnsQUDAAAAAAAKCRCaHA937rZnffWz AP0cWkeHEhq5GsR2QJRY+pXt4CZizNrdzyX9sHNdpNSdZwEA2zVdIcPnhGuZj9kqpdLXDwknLa0H YGoOiv4gvDhbDwc= =nbhq -----END PGP SIGNATURE----- --------------evucUCN63Kf0NlJQh3nARgTz-- From nobody Wed May 22 08:13:38 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Vkkbk71PQz5LBTj for ; Wed, 22 May 2024 08:14:10 +0000 (UTC) (envelope-from dewaynegeraghty@gmail.com) Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) (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 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Vkkbk0YmVz4fFr for ; Wed, 22 May 2024 08:14:10 +0000 (UTC) (envelope-from dewaynegeraghty@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=PmTnS2Jg; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of dewaynegeraghty@gmail.com designates 2a00:1450:4864:20::52d as permitted sender) smtp.mailfrom=dewaynegeraghty@gmail.com Received: by mail-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-5731ffcc905so10975816a12.2 for ; Wed, 22 May 2024 01:14:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716365645; x=1716970445; darn=freebsd.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=LOBM6mge/hLaI3w4pboynb5/R4130sT0lKAKS6chQGE=; b=PmTnS2JgCEESkfUNN0c58VFWPAOWv1rlGZllLS7C/FA3PpBSImeDbXcK45a6rMvGLS ovXtjoTO/Abrha+Gxid0kPdXoS5SmIl5SECWORKwScwo40etJ5HiIHuv/E8fSwLcVAdN /wD2wZ3OBEsiGT1nDvtDo975cE/+6S0FLw6+8IqdQzEvPvCEdHQgUkTlJwQkDSW+mTKc xlCExKJpvzEAmrLCK1iXVfz0HtpakU98Eg1IJ2ZnmUAQGIeJCHOrpJ/wJOSJQ3OT8Wme UEfkvs723gxx83fPnMTi45Wq+ufDmixOuk00/66dRWwxPrDxI+kODihrQtg8YdLsoVfK EBWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716365645; x=1716970445; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=LOBM6mge/hLaI3w4pboynb5/R4130sT0lKAKS6chQGE=; b=ZKZI0tpGgseMghqJb17wKLxTq8p8Qn4P6uED8yuL51gZW3ayrVUjSqBI7bRy0L7co6 22VjDzgBE96+Ek/jmoHU3Lwop9aZk9EvwwyiV//yEIvGPirjYKxa4RYgX3wqXkorYUCY m1qeXz4Bb9kVnlP7n/YkXCJeem99nhmOB8A1rhhLSKPVVg8cD7wKscngGgDHPbgGIEXR RnwrtPuMxZJYxjkuEqq1jfUXg39eLTDtlSohUXMbbW4so1XyT93X1w06rR55fT9+kSjn DMBQu+kxd4BsgxxfbMOeoGsCY8c2y3d03H7Ch+5OIqNNjJ7xHh3ViHWtumOIE8ygdBS8 IbWA== X-Gm-Message-State: AOJu0YyWMDhto8ICnyMaU0icfSGJ3cUEOObOTa//nqLCANenfjPbKA6h XpgwhSYQlkCJzuWwX41ZDCfHEUedoZnVYUM/BGzXkod6ENzcU5WwQHqUeRG6BYoQmMNLVqYvlme xQDZJJVh8OVsu4l4E1m8oPzYB6a8= X-Google-Smtp-Source: AGHT+IHh5uiA2/tS07gVCfzd61hhCS4gQosmh/RymCnqZMLOcAHBrXqmUtVX3NiSZxOs8hZ/r+gB9m0r/f+SX9147bo= X-Received: by 2002:a50:999c:0:b0:568:8e22:4eff with SMTP id 4fb4d7f45d1cf-57832c0630cmr808949a12.37.1716365644958; Wed, 22 May 2024 01:14:04 -0700 (PDT) List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 References: <1716050202-69054-mlmmj-647e0ac8@FreeBSD.org> In-Reply-To: From: Dewayne Geraghty Date: Wed, 22 May 2024 18:13:38 +1000 Message-ID: Subject: Re: GELI disk corrupted or external influence? To: Anon Loli Cc: freebsd-hackers@freebsd.org Content-Type: multipart/alternative; boundary="00000000000092955e06190684c6" X-Spamd-Bar: -- X-Spamd-Result: default: False [-3.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.996]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; RCVD_TLS_LAST(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; MIME_TRACE(0.00)[0:+,1:+,2:~]; TO_DN_SOME(0.00)[]; ARC_NA(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; FREEMAIL_FROM(0.00)[gmail.com]; DKIM_TRACE(0.00)[gmail.com:+]; FROM_HAS_DN(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MISSING_XM_UA(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; MID_RHS_MATCH_FROMTLD(0.00)[]; RCVD_COUNT_ONE(0.00)[1]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::52d:from] X-Rspamd-Queue-Id: 4Vkkbk0YmVz4fFr --00000000000092955e06190684c6 Content-Type: text/plain; charset="UTF-8" Hi Anon, "geli restore $dev" recovers the last sector (512B) of the partition from its backup, usually located in /var/backup. If you recovered access via a restore then something has written into it. I've used geli since 2006 on a large number of systems, when there's been a problem its due to my learning (by my mistake). :) openbsd is an excellent choice. Though it would be very helpful if you could detail the steps that caused your negative experiences so the FreeBSD dev's can improve and help others, as this is a community effort :) I set locale and keymap and haven't experienced problems; but my requirements are very simple. There is a bug reporting system at https://bugs.freebsd.org/bugzilla/enter_bug.cgi Kind regards, Dewayne. --00000000000092955e06190684c6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Anon,
"geli restor= e $dev" recovers the last sector (512B) of the partition from its back= up, usually located in /var/backup.=C2=A0 If you recovered access via a res= tore then something has written into it.=C2=A0 I've used geli since 200= 6 on a large number of systems, when there's been a problem its due to = my learning (by my mistake).=C2=A0 :)

openbsd is a= n excellent choice.=C2=A0 Though it would be very helpful if you could deta= il the steps that caused your negative experiences so the FreeBSD dev's= can improve and help others, as this is a community effort :) =C2=A0=C2=A0= I set locale and keymap and haven't experienced problems; but my requi= rements are very simple.

There is a bug repor= ting system at = https://bugs.freebsd.org/bugzilla/enter_bug.cgi
Kind re= gards, Dewayne.

--00000000000092955e06190684c6-- From nobody Wed May 22 21:03:55 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Vl3hC14pWz5L0jG for ; Wed, 22 May 2024 21:04:11 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) (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 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Vl3hB1cNNz4G27 for ; Wed, 22 May 2024 21:04:10 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20230601.gappssmtp.com header.s=20230601 header.b=n8bDBRsl; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2a00:1450:4864:20::132) smtp.mailfrom=wlosh@bsdimp.com Received: by mail-lf1-x132.google.com with SMTP id 2adb3069b0e04-51f40b5e059so7687976e87.0 for ; Wed, 22 May 2024 14:04:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20230601.gappssmtp.com; s=20230601; t=1716411848; x=1717016648; darn=freebsd.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=yeZ2KNIOcHFBP6GDljBMIcbXCgRudN69IjqSGv73pJc=; b=n8bDBRslyHUUVA2j/I3PWx/ssf6jO8ucTkyqaFroWoJ4W14VUVmHXwvLkb17so5Hs9 4JeUE1B9HrgnoXoI9pOE1/u9WDYtJNpTWDxPznaLivWkNGFoJNImdsOgLvEgMa/mmj4U nb0DVRMKmIHdNPrKSJrlHXtbdhajR0l+qs9Bpuzwws8ehnaHdkwvZipmCrh9+X6nReB6 spPUHxUTwkDz3fwjEZPeCreSbJ1/VBEijVwYDc7817Vk5zxyFHHlnjH2UqP1VMPua8HZ Rbc3xcydCk0/DKsNgmkTqNEVNfFOQqvORdCXu9UQhIWo/sXt0EJOwQx5xmCLaLLWME84 DCOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716411848; x=1717016648; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=yeZ2KNIOcHFBP6GDljBMIcbXCgRudN69IjqSGv73pJc=; b=s6mAVYIXDhVy5JL5TQsN0pTR39qNtmL9gRnhR88m0QCn2jUtGpYr6PQMQRuHyIW2fm 0H1LQ7uCM6KU3GgOg7LOGOwg1Tmtsg9jDpuBNrDvjFQsa6rp52MKBXvc4y0i8f2uLcwW fAM4GC4nQ/MlAd2aTQex6IrjAjhev0CXEwNsDBe0xnGK5FGlD3ZYE7gYQN38UAcgfaPf cRkQs5tAuMhsgQIiP6INQoLsJ4C8erWCkLuKF6cjz7W+3UFlZAnB5RCKrOXzIz475UAQ qbMYWStdRL2RlbXOU9UXrq2FkPBkentaFSHF/ZNE/lAnCpBpjOGUNvsFeBp613qqNYkX GLaA== X-Gm-Message-State: AOJu0YwlQQdYjbDaNxyfoBnXj9gPx5KJXtspa3TYTXHpVeeo8WZgaZ3I mPY5wT+JrWsH3XBPO7BkG6UrJhyrraNVisL4IvrscJbfwys0nMxL7eouuBTDJiL2HTM4FXXRWmF PZ4jT05GEWhVueYLTuUktmovLmx7qbxgsA9E9Dg== X-Google-Smtp-Source: AGHT+IF8mDHcdKXGFpA0wbqrG1nKKCvEalBtjoRyJl+ETJlgXoTOuSI1mYAIjVQQeTeH/9cNjUnQ5EoVKdKC+a9+AXg= X-Received: by 2002:ac2:59c6:0:b0:523:9747:4920 with SMTP id 2adb3069b0e04-526be316495mr2213133e87.36.1716411847863; Wed, 22 May 2024 14:04:07 -0700 (PDT) List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 References: <087AB4C4-9CE0-4024-8E1B-4C636014C8CC@lysator.liu.se> In-Reply-To: <087AB4C4-9CE0-4024-8E1B-4C636014C8CC@lysator.liu.se> From: Warner Losh Date: Wed, 22 May 2024 15:03:55 -0600 Message-ID: Subject: Re: Trying to understand CAM (and the cciss driver) To: Peter Eriksson Cc: FreeBSD Hackers Content-Type: multipart/alternative; boundary="0000000000007b16e4061911469c" X-Spamd-Bar: -- X-Spamd-Result: default: False [-3.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.999]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20230601.gappssmtp.com:s=20230601]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+,1:+,2:~]; RCVD_TLS_LAST(0.00)[]; ARC_NA(0.00)[]; MISSING_XM_UA(0.00)[]; R_SPF_NA(0.00)[no SPF record]; DMARC_NA(0.00)[bsdimp.com]; RCPT_COUNT_TWO(0.00)[2]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; FROM_HAS_DN(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::132:from]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; DKIM_TRACE(0.00)[bsdimp-com.20230601.gappssmtp.com:+] X-Rspamd-Queue-Id: 4Vl3hB1cNNz4G27 --0000000000007b16e4061911469c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hey Peter, My apologies for my tardy response. The CISS driver is a bit older, and most of my experience is with newer drivers... On Thu, May 9, 2024 at 11:59=E2=80=AFAM Peter Eriksson = wrote: > Hi, > > I=E2=80=99m trying to fix a bug in the cciss driver that has been there = =E2=80=9Cforever=E2=80=9D > when using it with an HP H241 SAS HBA card. > The driver works fine when all (SAS, spinning rust) drives are behaving > well, but when some of them are starting to go bad it often goes into spi= n > and either hangs the kernel or panics. I=E2=80=99ve been trying to add > instrumentation to it in order to pin-point the problem and have been > attempting some workarounds (like clearing cr_complete since without that > hack sometime the driver get many many non-busy repeated requests with th= e > same =E2=80=9Ctag=E2=80=9D and then It panics with: > > > ciss1: WARNING: completing non-busy request > > ciss1: WARNING: completing non-busy request > > ciss1: WARNING: completing non-busy request > This means that we're not tracking the state of the requests correctly. > > panic: cam_periph_done_panic: already done with ccb 0xfffff88abefc4000 > And I think this is the panic when we detect that. > > cpuid =3D 0 > > time =3D 1714852260 > > KDB: stack backtrace: > > #0 0xffffffff80c541b5 at kdb_backtrace+0x65 > > #1 0xffffffff80c06b31 at vpanic+0x151 > > #2 0xffffffff80c069d3 at panic+0x43 > > #3 0xffffffff8039017c at cam_periph_done_panic+0x1c > > #4 0xffffffff80397193 at xpt_done_process+0x313 > > #5 0xffffffff803990a5 at xpt_done_td+0xf5 > > #6 0xffffffff80bc333e at fork_exit+0x7e > > #7 0xffffffff8108a44e at fork_trampoline+0xe > > but it=E2=80=99s still there=E2=80=A6 > > I think I could use some input/suggestions from someone more knowledgeabl= e > with CAM and device drivers in general=E2=80=A6 > > An example (this is with extra instrumentation added so not quite a stock > kernel driver): > > ciss1: *** Drive failure imminent, Port=3D1E Box=3D1 Bay=3D17 reason=3D0x= 37 > [ts=3D4460, class=3D4, subclass=3D0, detail=3D1, tag=3D0x2] > (da122:ciss1:32:78:0): WRITE(16). CDB: 8a 00 00 00 00 04 7f 17 51 98 00 0= 0 > 00 10 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): WRITE(16). CDB: 8a 00 00 00 00 04 7f 17 52 18 00 0= 0 > 00 10 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 65 c8 00 00 > 02 00 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 63 c8 00 00 > 02 00 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 61 c8 00 00 > 02 00 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 5f c8 00 00 > 02 00 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 5f a8 00 00 > 00 20 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 5f 38 00 00 > 00 70 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 5d 38 00 00 > 02 00 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 5b 38 00 00 > 02 00 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 59 38 00 00 > 02 00 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 58 48 00 00 > 00 f0 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 56 48 00 00 > 02 00 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): WRITE(16). CDB: 8a 00 00 00 00 04 88 d8 48 d0 00 0= 0 > 00 10 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): WRITE(16). CDB: 8a 00 00 00 00 04 88 d8 46 e0 00 0= 0 > 01 f0 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 88 d8 8f d0 00 00 > 02 00 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > (da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 88 d8 8d d0 00 00 > 02 00 00 00 > (da122:ciss1:32:78:0): CAM status: CCB request completed with an error > (da122:ciss1:32:78:0): Retrying command, 3 more tries remain > ciss1: WARNING: completing non-busy request #1 [onq=3D0, length=3D262144, > ccphys=3D1791048448, tag=3D72, flags=3D0x50 (----I-C), sg_tag=3D0x3, > cr_complete=3D0xffffffff806059a0] > ciss1: WARNING: clearing cr_complete due to ciss_cam_complete & nonbusy > ciss1: WARNING: completing non-busy request #1 [onq=3D0, length=3D262144, > ccphys=3D1791318368, tag=3D313, flags=3D0x50 (----I-C), sg_tag=3D0x3, > cr_complete=3D0xffffffff806059a0] > ciss1: WARNING: clearing cr_complete due to ciss_cam_complete & nonbusy > ciss1: WARNING: completing non-busy request #1 [onq=3D0, length=3D8192, > ccphys=3D1791226528, tag=3D231, flags=3D0x50 (----I-C), sg_tag=3D0x3, > cr_complete=3D0xffffffff806059a0] > ciss1: WARNING: clearing cr_complete due to ciss_cam_complete & nonbusy > ciss1: WARNING: completing non-busy request #1 [onq=3D0, length=3D262144, > ccphys=3D1791313888, tag=3D309, flags=3D0x50 (----I-C), sg_tag=3D0x5, > cr_complete=3D0xffffffff806059a0] > ciss1: WARNING: clearing cr_complete due to ciss_cam_complete & nonbusy > ciss1: WARNING: completing non-busy request #1 [onq=3D0, length=3D8192, > ccphys=3D1791206368, tag=3D213, flags=3D0x50 (----I-C), sg_tag=3D0x3, > cr_complete=3D0xffffffff806059a0] > ciss1: WARNING: clearing cr_complete due to ciss_cam_complete & nonbusy > panic: camq_remove: Attempt to remove out-of-bounds index -1 from queue > 0xfffff80107fa9838 of size 1 > So these seem to line up with the commands that encountered an error. The errors handling code of most CAM drivers is the hardest to write and validate because misbehaving disks, while not rare, are generally not used in validation. All my good ones that were dying have since stopped working completely, for example. So in this case, you'll need to look at the state tracking code for the ciss requests, and make sure that in the cases of errors the right transitions happen. I've fixed bugs in mpr/mps that amounted to marking a request as busy again when it errored out in some of the weirder error scenarios (I don't recall the exact cases though). You might look at mpr/mps for the evolution of this code there. IIRC, the same author did both ciss and mps and many of the techniques were retained between the two. You might get good hints for bugs to fix by looking at how things evolved there. Basically, you're going to have to find out if these complaints are due to the state tracking being messed up, but the request really should be doing the thing that it's doing when the complaint is lodged (in which case you need to fix the point where the state becomes incorrect). Or if it's caught a real bug and the state of the request is proper, but we're doing something like completing something twice, or failing to allocate a new request or one of the many other silly bugs this tracking code usually prevents. Warner > cpuid =3D 7 > time =3D 1715266713 > KDB: stack backtrace: > #0 0xffffffff80c542d5 at kdb_backtrace+0x65 > #1 0xffffffff80c06c51 at vpanic+0x151 > #2 0xffffffff80c06af3 at panic+0x43 > #3 0xffffffff80390676 at camq_remove+0xf6 > #4 0xffffffff803936c8 at xpt_run_devq+0x148 > #5 0xffffffff80392b0c at xpt_action_default+0x35c > #6 0xffffffff803c3544 at dastart+0x314 > #7 0xffffffff80394f73 at xpt_run_allocq+0x83 > #8 0xffffffff803c5152 at dastrategy+0x82 > #9 0xffffffff80b438d4 at g_disk_start+0x314 > #10 0xffffffff80b46b55 at g_io_request+0x1d5 > #11 0xffffffff80b46b55 at g_io_request+0x1d5 > #12 0xffffffff821a34dc at vdev_geom_io_start+0x23c > #13 0xffffffff82347fb4 at zio_vdev_io_start+0x204 > #14 0xffffffff8234204f at zio_nowait+0x12f > #15 0xffffffff822a0ce7 at vdev_mirror_io_start+0x177 > #16 0xffffffff82347fb4 at zio_vdev_io_start+0x204 > #17 0xffffffff8234204f at zio_nowait+0x12f > Uptime: 10h16m26s > > > The drive it complains about in the first line is one that has SMART > errors: > > > connector 1E box 1 bay 17 HP MB010000JWAYK > 7PH8LU3G HPD5 S.M.A.R.T. predictive > failure. > > It is _not_ da122 though=E2=80=A6 The drive with a SMART error (da85) is = not in > use so basically is just sitting there. > > > > The code where I=E2=80=99m trying to figure out what=E2=80=99s going on i= s this part in > sys/dev/ciss/ciss.c: > > static void > ciss_complete(struct ciss_softc *sc, cr_qhead_t *qh) > { > struct ciss_request *cr; > > debug_called(2); > > /* > > > * Loop taking requests off the completed queue and performing > > > * completion processing on them. > > > */ > for (;;) { > int got_nonbusy =3D 0; > > if ((cr =3D ciss_dequeue_complete(sc, qh)) =3D=3D NULL) > break; > ciss_unmap_request(cr); > > if ((cr->cr_flags & CISS_REQ_BUSY) =3D=3D 0) { > cr->nonbusy_request_counter++; > ciss_printf(sc, > "WARNING: completing non-busy request #%d [onq=3D%d= , > length=3D%u, ccphys=3D%u, tag=3D%d, flags=3D0x%x (%s), sg_tag=3D0x%x, > cr_complete=3D%p]\n", > cr->nonbusy_request_counter, > cr->cr_onq, cr->cr_length, cr->cr_ccphys, cr->cr_ta= g, > cr->cr_flags, cr_flags2str(cr->cr_flags), > cr->cr_sg_tag, cr->cr_complete > ); > got_nonbusy =3D 1; > } > > cr->cr_flags &=3D ~CISS_REQ_BUSY; > > /* > > > * If the request has a callback, invoke it. > > > */ > if (cr->cr_complete !=3D NULL) { > cr->cr_complete(cr); > > /* pen: Attempt to make sure ciss_cam_complete() doesn=E2=80=99t = get > called multiple times */ > > if (cr->cr_complete =3D=3D ciss_cam_complete && got_nonbusy) { > ciss_printf(sc, "WARNING: clearing cr_complete due to > ciss_cam_complete & nonbusy\n"); > cr->cr_complete =3D NULL; > } > continue; > } > > /* > > > * If someone is sleeping on this request, wake them up. > > > */ > if (cr->cr_flags & CISS_REQ_SLEEP) { > cr->cr_flags &=3D ~CISS_REQ_SLEEP; > wakeup(cr); > continue; > } > > /* > > > * If someone is polling this request for completion, signal. > > > */ > if (cr->cr_flags & CISS_REQ_POLL) { > cr->cr_flags &=3D ~CISS_REQ_POLL; > continue; > } > > /* > > > * Give up and throw the request back on the free queue. This > > > * should never happen; resources will probably be lost. > > > */ > ciss_printf(sc, "WARNING: completed command with no submitter\n")= ; > ciss_enqueue_free(cr); > } > } > > > - Any suggestions? (Probably not but I thought I=E2=80=99d ask anyway :-) > > - Peter > > > > --0000000000007b16e4061911469c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hey Peter,

My apologie= s for my tardy response. The CISS driver is a bit older, and most of my exp= erience is with newer drivers...

=
On Thu, May 9, 2024 at 11:59=E2=80=AF= AM Peter Eriksson <pen@lysator.liu= .se> wrote:
Hi,

I=E2=80=99m trying to fix a bug in the cciss driver that has been there =E2= =80=9Cforever=E2=80=9D when using it with an HP H241 SAS HBA card.
The driver works fine when all (SAS, spinning rust) drives are behaving wel= l, but when some of them are starting to go bad it often goes into spin and= either hangs the kernel or panics. I=E2=80=99ve been trying to add instrum= entation to it in order to pin-point the problem and have been attempting s= ome workarounds (like clearing cr_complete since without that hack sometime= the driver get many many non-busy repeated requests with the same =E2=80= =9Ctag=E2=80=9D and then It panics with:

> ciss1: WARNING: completing non-busy request
> ciss1: WARNING: completing non-busy request
> ciss1: WARNING: completing non-busy request

<= /div>
This means that we're not tracking the state of the requests = correctly.
=C2=A0
> panic: cam_periph_done_panic: already done with ccb 0xfffff88abefc4000=

And I think this is the panic when we = detect that.
=C2=A0
> cpuid =3D 0
> time =3D 1714852260
> KDB: stack backtrace:
> #0 0xffffffff80c541b5 at kdb_backtrace+0x65
> #1 0xffffffff80c06b31 at vpanic+0x151
> #2 0xffffffff80c069d3 at panic+0x43
> #3 0xffffffff8039017c at cam_periph_done_panic+0x1c
> #4 0xffffffff80397193 at xpt_done_process+0x313
> #5 0xffffffff803990a5 at xpt_done_td+0xf5
> #6 0xffffffff80bc333e at fork_exit+0x7e
> #7 0xffffffff8108a44e at fork_trampoline+0xe

but it=E2=80=99s still there=E2=80=A6

I think I could use some input/suggestions from someone more knowledgeable = with CAM and device drivers in general=E2=80=A6

An example (this is with extra instrumentation added so not quite a stock k= ernel driver):

ciss1: *** Drive failure imminent, Port=3D1E Box=3D1 Bay=3D17 reason=3D0x37= [ts=3D4460, class=3D4, subclass=3D0, detail=3D1, tag=3D0x2]
(da122:ciss1:32:78:0): WRITE(16). CDB: 8a 00 00 00 00 04 7f 17 51 98 00 00 = 00 10 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): WRITE(16). CDB: 8a 00 00 00 00 04 7f 17 52 18 00 00 = 00 10 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 65 c8 00 00 0= 2 00 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 63 c8 00 00 0= 2 00 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 61 c8 00 00 0= 2 00 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 5f c8 00 00 0= 2 00 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 5f a8 00 00 0= 0 20 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 5f 38 00 00 0= 0 70 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 5d 38 00 00 0= 2 00 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 5b 38 00 00 0= 2 00 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 59 38 00 00 0= 2 00 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 58 48 00 00 0= 0 f0 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 7f 17 56 48 00 00 0= 2 00 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): WRITE(16). CDB: 8a 00 00 00 00 04 88 d8 48 d0 00 00 = 00 10 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): WRITE(16). CDB: 8a 00 00 00 00 04 88 d8 46 e0 00 00 = 01 f0 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 88 d8 8f d0 00 00 0= 2 00 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
(da122:ciss1:32:78:0): READ(16). CDB: 88 00 00 00 00 04 88 d8 8d d0 00 00 0= 2 00 00 00
(da122:ciss1:32:78:0): CAM status: CCB request completed with an error
(da122:ciss1:32:78:0): Retrying command, 3 more tries remain
ciss1: WARNING: completing non-busy request #1 [onq=3D0, length=3D262144, c= cphys=3D1791048448, tag=3D72, flags=3D0x50 (----I-C), sg_tag=3D0x3, cr_comp= lete=3D0xffffffff806059a0]
ciss1: WARNING: clearing cr_complete due to ciss_cam_complete & nonbusy=
ciss1: WARNING: completing non-busy request #1 [onq=3D0, length=3D262144, c= cphys=3D1791318368, tag=3D313, flags=3D0x50 (----I-C), sg_tag=3D0x3, cr_com= plete=3D0xffffffff806059a0]
ciss1: WARNING: clearing cr_complete due to ciss_cam_complete & nonbusy=
ciss1: WARNING: completing non-busy request #1 [onq=3D0, length=3D8192, ccp= hys=3D1791226528, tag=3D231, flags=3D0x50 (----I-C), sg_tag=3D0x3, cr_compl= ete=3D0xffffffff806059a0]
ciss1: WARNING: clearing cr_complete due to ciss_cam_complete & nonbusy=
ciss1: WARNING: completing non-busy request #1 [onq=3D0, length=3D262144, c= cphys=3D1791313888, tag=3D309, flags=3D0x50 (----I-C), sg_tag=3D0x5, cr_com= plete=3D0xffffffff806059a0]
ciss1: WARNING: clearing cr_complete due to ciss_cam_complete & nonbusy=
ciss1: WARNING: completing non-busy request #1 [onq=3D0, length=3D8192, ccp= hys=3D1791206368, tag=3D213, flags=3D0x50 (----I-C), sg_tag=3D0x3, cr_compl= ete=3D0xffffffff806059a0]
ciss1: WARNING: clearing cr_complete due to ciss_cam_complete & nonbusy=
panic: camq_remove: Attempt to remove out-of-bounds index -1 from queue 0xf= ffff80107fa9838 of size 1

So these seem= to line up with the commands that encountered an error. The errors handlin= g code of most CAM drivers is the hardest to write and validate because mis= behaving disks, while not rare, are generally not used in validation.=C2=A0= All my good ones that were dying have since stopped working completely, fo= r example.

So in this case, you'll need to loo= k at the state tracking code for the ciss requests, and make sure that in t= he cases of errors the right transitions happen. I've fixed bugs in mpr= /mps that amounted to marking a request as busy again when it errored out i= n some of the weirder error scenarios (I don't recall the exact cases t= hough). You might look at mpr/mps for the evolution of this code there. IIR= C, the same author did both ciss and mps and many of the techniques were re= tained between the two. You might get good hints for bugs to fix by looking= at how things evolved there.

Basically, you'r= e going to have to find out if these complaints are due to the state tracki= ng being messed up, but the request really should be doing the thing that i= t's doing when the complaint is lodged (in which case you need to fix t= he point where the state becomes incorrect). Or if it's caught a real b= ug and the state of the request is proper, but we're doing something li= ke completing something twice, or failing to allocate a new request or one = of the many other silly bugs this tracking code usually prevents.

Warner
=C2=A0
cpuid =3D 7
time =3D 1715266713
KDB: stack backtrace:
#0 0xffffffff80c542d5 at kdb_backtrace+0x65
#1 0xffffffff80c06c51 at vpanic+0x151
#2 0xffffffff80c06af3 at panic+0x43
#3 0xffffffff80390676 at camq_remove+0xf6
#4 0xffffffff803936c8 at xpt_run_devq+0x148
#5 0xffffffff80392b0c at xpt_action_default+0x35c
#6 0xffffffff803c3544 at dastart+0x314
#7 0xffffffff80394f73 at xpt_run_allocq+0x83
#8 0xffffffff803c5152 at dastrategy+0x82
#9 0xffffffff80b438d4 at g_disk_start+0x314
#10 0xffffffff80b46b55 at g_io_request+0x1d5
#11 0xffffffff80b46b55 at g_io_request+0x1d5
#12 0xffffffff821a34dc at vdev_geom_io_start+0x23c
#13 0xffffffff82347fb4 at zio_vdev_io_start+0x204
#14 0xffffffff8234204f at zio_nowait+0x12f
#15 0xffffffff822a0ce7 at vdev_mirror_io_start+0x177
#16 0xffffffff82347fb4 at zio_vdev_io_start+0x204
#17 0xffffffff8234204f at zio_nowait+0x12f
Uptime: 10h16m26s


The drive it complains about in the first line is one that has SMART errors= :

>=C2=A0 =C2=A0 =C2=A0 =C2=A0 connector 1E box=C2=A0 1 bay 17=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0HP=C2=A0 =C2=A0 =C2=A0 = MB010000JWAYK=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 7PH8LU3G=C2= =A0 =C2=A0 =C2=A0HPD5 S.M.A.R.T. predictive failure.

It is _not_ da122 though=E2=80=A6 The drive with a SMART error (da85) is no= t in use so basically is just sitting there.



The code where I=E2=80=99m trying to figure out what=E2=80=99s going on is = this part in sys/dev/ciss/ciss.c:

static void
ciss_complete(struct ciss_softc *sc, cr_qhead_t *qh)
{
=C2=A0 =C2=A0 struct ciss_request *cr;

=C2=A0 =C2=A0 debug_called(2);

=C2=A0 =C2=A0 /*=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0
=C2=A0 =C2=A0 =C2=A0* Loop taking requests off the completed queue and perf= orming=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0
=C2=A0 =C2=A0 =C2=A0* completion processing on them.=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0
=C2=A0 =C2=A0 =C2=A0*/
=C2=A0 =C2=A0 for (;;) {
=C2=A0 =C2=A0 =C2=A0 int got_nonbusy =3D 0;

=C2=A0 =C2=A0 =C2=A0 =C2=A0 if ((cr =3D ciss_dequeue_complete(sc, qh)) =3D= =3D NULL)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 break;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ciss_unmap_request(cr);

=C2=A0 =C2=A0 =C2=A0 =C2=A0 if ((cr->cr_flags & CISS_REQ_BUSY) =3D= =3D 0) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 cr->nonbusy_request_counter++;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ciss_printf(sc,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 "WARNING: completing non-busy request #%d [onq=3D%d, length=3D%u, = ccphys=3D%u, tag=3D%d, flags=3D0x%x (%s), sg_tag=3D0x%x, cr_complete=3D%p]\= n",
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 cr->nonbusy_request_counter,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 cr->cr_onq, cr->cr_length, cr->cr_ccphys, cr->cr_tag,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 cr->cr_flags, cr_flags2str(cr->cr_flags),
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 cr->cr_sg_tag, cr->cr_complete
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 );
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 got_nonbusy =3D 1;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }

=C2=A0 =C2=A0 =C2=A0 =C2=A0 cr->cr_flags &=3D ~CISS_REQ_BUSY;

=C2=A0 =C2=A0 =C2=A0 =C2=A0 /*=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* If the request has a callback, invoke i= t.=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (cr->cr_complete !=3D NULL) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 cr->cr_complete(cr);

=C2=A0 =C2=A0 =C2=A0 =C2=A0 /* pen: Attempt to make sure ciss_cam_complete(= ) doesn=E2=80=99t get called multiple times */

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (cr->cr_complete =3D=3D ciss_cam_c= omplete && got_nonbusy) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ciss_printf(sc, "WARNING: cl= earing cr_complete due to ciss_cam_complete & nonbusy\n");
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 cr->cr_complete =3D NULL;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 continue;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }=C2=A0 =C2=A0 =C2=A0

=C2=A0 =C2=A0 =C2=A0 =C2=A0 /*=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* If someone is sleeping on this request,= wake them up.=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (cr->cr_flags & CISS_REQ_SLEEP) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 cr->cr_flags &=3D ~CISS_REQ_SLEEP= ;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 wakeup(cr);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 continue;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }

=C2=A0 =C2=A0 =C2=A0 =C2=A0 /*=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* If someone is polling this request for = completion, signal.=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (cr->cr_flags & CISS_REQ_POLL) {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 cr->cr_flags &=3D ~CISS_REQ_POLL;=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 continue;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }

=C2=A0 =C2=A0 =C2=A0 =C2=A0 /*=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* Give up and throw the request back on t= he free queue.=C2=A0 This=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* should never happen; resources will pro= bably be lost.=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ciss_printf(sc, "WARNING: completed comman= d with no submitter\n");
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ciss_enqueue_free(cr);
=C2=A0 =C2=A0 }
}


- Any suggestions? (Probably not but I thought I=E2=80=99d ask anyway :-)
- Peter



--0000000000007b16e4061911469c-- From nobody Wed May 22 23:35:37 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Vl7322t9Fz5LG7y; Wed, 22 May 2024 23:35:42 +0000 (UTC) (envelope-from christos@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Vl7322G3fz4ZT2; Wed, 22 May 2024 23:35:42 +0000 (UTC) (envelope-from christos@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1716420942; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xITu3GUVddTiQSPU+VxUx7hi3ANTzglZ2GVd8A+hlsk=; b=TvIwn+gJUGb7PFqJa7p9YOwFnc4aPkFEo34qt9OC5uHhPCTlLNNBvn++O45e6N2kBn7mpU C6l/lhbg1NXcG0RjjDwabjNXgc273haZEDImu+mpRg+0xVlzV79A+1SjMGS23g7iIu7a4s ZKsCU4GGlHEQQSqy8owGxgVWE9lsXJB5B20MPSdj16lwy6Oq4kSeIlZYnJ+3ZR6cJKOORK vDULRP7RBIpH/hFQNZxgo9xSZxgckIWoSJS1AfFgXEUXxQinb1Xxe5fJGcZg9AszdSFiJr N6SuOtIknhlEi78Dv+ajoj0yBfhw6yfN/uZ5pMwdz57ybZefBxBgZKgrN1ycIQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1716420942; a=rsa-sha256; cv=none; b=s3c0eFmiHIOC81+FtqkwmZzOqNM2aVY134JSmHTrfMcpnkfl+3U1RHHsaiDbA4qkXTYOUR qWDvtTLpbNgs3vS9YCPm2WlQLg8GRHoDNeOvRRkZMfnMs6q5UwBuxBYbAp6B9lgd4GuvDm vH6VYosnkz5F4uzL5HzyDCMM6u8G+lE9pu1YTuDeccjp6iIvuDvYsNvlGQEK7LtjBSoakf W8zfC+Pc6stCTS49m4ChhlM6J2SXwa+p3agNy2nSGFL3T1bgv3Gud3qp+IMP855EbUKADQ 5h4zQUIB4Rvkf0n+LOQ6z/MFpIj3Jz1MF460ufg5Snn730yfX2abI/CBWDiHpg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1716420942; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=xITu3GUVddTiQSPU+VxUx7hi3ANTzglZ2GVd8A+hlsk=; b=fcWJMJlwvGxUO6gAVJ5Hl2FTfYZKAMopx5luZALxx3wh6GDjV3MXQ1gnUw3ufC7LKFpAH+ 1Dt3kpG8WYo3+I9FXliUznPQyHMt3jB9UyJoeCxvfL6KyG60OOJaRfEONq7dR9xYmR9q+i JohG+p9/4hl3shJghKy9sNuZFqM4QjfQj44bXkUEmwLbsLqN9Yff8fcSKl+A4jZuxEgua9 dvEFgyarM+/TCnWinWy5S8zBRCrytpBbf+Zw2CYLoAeg0bYQM2uP7TSYN7r0Cs9IAoLOyG N1jVhJZQMjsv4uyMSSTllNYjEKBJktjs9+lPyhWM9TOF170u8iwsSxqTVFGAag== Received: from margiolis.net (mail.margiolis.net [95.179.159.8]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA512) (Client did not present a certificate) (Authenticated sender: christos/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4Vl7315nBRz17t9; Wed, 22 May 2024 23:35:41 +0000 (UTC) (envelope-from christos@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=mail; bh=q+OSPO5CJqWbyMo XYRVjgF8TVSz48Ihb/X6HU7kztSg=; h=in-reply-to:references:subject:cc:to: from:date; d=margiolis.net; b=oJFrbmt5tWziZiO7xoA6wnlgJpuST71Ar7miuzCc lqhlxOjLgqKgn7hGd9CXt5yI2KF0OFQcJc8jWi0V1vvwU33xG7jhXAEBVZF012vP7bQM9c X6AEWcvo0OndpaqRTyk7OVt8385jQSK/MUlKuFTXe3Csb26YSK6t6NW4TV7+8= Received: from tpad (ip-45-81-121-44.ask4internet.com [45.81.121.44]) by margiolis.net (OpenSMTPD) with ESMTPSA id 0615238b (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO); Wed, 22 May 2024 23:35:38 +0000 (UTC) Date: Thu, 23 May 2024 01:35:37 +0200 From: Christos Margiolis To: Pavel Timofeev Cc: freebsd-multimedia@freebsd.org, freebsd-hackers@freebsd.org Subject: Re: Call-for-testing: Asynchronous audio device detach Message-ID: References: List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Hello Pavel, Pavel Timofeev wrote: > Hello > > This functionality has always been in my personal list of desires. > Thank you for implementing this! > > I don't have many USB sound devices nowadays. Only a couple of usb > headphones. > So I tried 15-CURRENT main-n269827-b07689d1f2a2 under gnome and it worked > well with some basic things. > The system survives usb headphone disconnect (unlike before) and switches > to another output after a few seconds (not immediately however). > This is what I experience during youtube video playback in chromium. Can you elaborate on "not immediately"? Is there a hang during this time window? > > I'll try to extend the test and play with it more soon. > > I'm really glad this is fixed now! > Thanks to everyone involved in this! > > On Fri, Apr 12, 2024 at 1:40 PM Christos Margiolis > wrote: > > > Hello, > > > > Yesterday I committed a patch [1] which adds support for asynchronous > > device detach for audio devices, something that many people with > > detachable audio devices (e.g USB) have been asking for for years > > [2][3][4][5][6][many more...]. I would like to ask you to give it a try > > and let me know if everything works properly. Note that this patch > > depends on dc831e93bad6 [7], so make sure to apply this one as well. > > > > Christos > > > > [1] > > https://cgit.freebsd.org/src/commit/?id=44e128fe9d92c1a544b801cb56e907a66ef34691 > > [2] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=194727 > > [3] > > https://forums.freebsd.org/threads/not-entering-sleep-state-due-to-audio.82597/ > > [4] > > https://forums.freebsd.org/threads/forcing-off-the-computer-endlessly-waiting-for-sound-application-to-exit-at-sleep-suspend-time.80412/ > > [5] https://www.davidschlachter.com/misc/freebsd-usb-audio > > [6] > > https://randomnixfix.wordpress.com/2021/10/23/why-the-freebsd-desktop-and-my-linux-rant/ > > [7] > > https://cgit.freebsd.org/src/commit/?id=e8c0d15a64fadb4a330f2da7244becaac161bb70 From nobody Thu May 23 13:19:55 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VlTLP2zlkz5LjBH for ; Thu, 23 May 2024 13:20:13 +0000 (UTC) (envelope-from zarychtam@plan-b.pwste.edu.pl) Received: from plan-b.pwste.edu.pl (plan-b.pwste.edu.pl [IPv6:2001:678:618::40]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "plan-b.pwste.edu.pl", Issuer "GEANT OV RSA CA 4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VlTLM4Hxnz4DR6 for ; Thu, 23 May 2024 13:20:11 +0000 (UTC) (envelope-from zarychtam@plan-b.pwste.edu.pl) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=plan-b.pwste.edu.pl header.s=plan-b-mailer header.b="zSu54p/d"; dmarc=pass (policy=quarantine) header.from=plan-b.pwste.edu.pl; spf=pass (mx1.freebsd.org: domain of zarychtam@plan-b.pwste.edu.pl designates 2001:678:618::40 as permitted sender) smtp.mailfrom=zarychtam@plan-b.pwste.edu.pl Received: from plan-b.pwste.edu.pl (zarychtam@localhost [127.0.0.1]) by plan-b.pwste.edu.pl (8.18.1/8.17.2) with ESMTPS id 44NDJxPQ004158 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Thu, 23 May 2024 15:19:59 +0200 (CEST) (envelope-from zarychtam@plan-b.pwste.edu.pl) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=plan-b.pwste.edu.pl; s=plan-b-mailer; t=1716470400; bh=TbFBcJbST79chQ404KQUT4l9LcS0lYuNL6Db/OGfmz8=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=zSu54p/dbZe728EIS4tyyL47nWsxnHALYqneFx7YR4SDy+VD5xKg1FzTT4tIE1fRT qr6j9hyqN6WUL5j9X9pZnXWfjyVCCU1O3jGEzufta/8TF7DO/eGkfnAnFdD0lbVySz F+ZnnkD/PEFM+el1V3r6lGkZXkDF5673UOPpsT9Kg9rmTlD7gZk54C5fsek7odIbgu 8FO6FZicA04PowO0HjsKMumv+AYxAZ2saJOEFrWEXHTY0QldJnt3jYOhv1LrpZKiMF /iM31JM9rWnbSrV1t6sDsBfLeolnoDtGuPLcxCefriu9Bmz926g3TfL9ECjBZLvh69 03nCuOisEjs5A== Received: (from zarychtam@localhost) by plan-b.pwste.edu.pl (8.18.1/8.18.1/Submit) id 44NDJwXS004152; Thu, 23 May 2024 15:19:58 +0200 (CEST) (envelope-from zarychtam) Date: Thu, 23 May 2024 15:19:55 +0200 From: Marek Zarychta To: Peter Eriksson Cc: FreeBSD Hackers Subject: Re: Trying to understand CAM (and the cciss driver) Message-ID: References: <087AB4C4-9CE0-4024-8E1B-4C636014C8CC@lysator.liu.se> List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <087AB4C4-9CE0-4024-8E1B-4C636014C8CC@lysator.liu.se> X-Spamd-Bar: --- X-Spamd-Result: default: False [-4.00 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; DMARC_POLICY_ALLOW(-0.50)[plan-b.pwste.edu.pl,quarantine]; R_SPF_ALLOW(-0.20)[+mx]; R_DKIM_ALLOW(-0.20)[plan-b.pwste.edu.pl:s=plan-b-mailer]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; MISSING_XM_UA(0.00)[]; ASN(0.00)[asn:206006, ipnet:2001:678:618::/48, country:PL]; MIME_TRACE(0.00)[0:+]; MID_RHS_MATCH_FROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; RCVD_TLS_LAST(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; RCVD_COUNT_TWO(0.00)[2]; TO_DN_ALL(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[plan-b.pwste.edu.pl:+] X-Rspamd-Queue-Id: 4VlTLM4Hxnz4DR6 Dnia Thu, May 09, 2024 at 07:58:32PM +0200, Peter Eriksson napisa=C5=82(a): > Hi, >=20 > I=E2=80=99m trying to fix a bug in the cciss driver that has been there = =E2=80=9Cforever=E2=80=9D when using it with an HP H241 SAS HBA card.=20 > The driver works fine when all (SAS, spinning rust) drives are behaving w= ell, but when some of them are starting to go bad it often goes into spin a= nd either hangs the kernel or panics. I=E2=80=99ve been trying to add instr= umentation to it in order to pin-point the problem and have been attempting= some workarounds (like clearing cr_complete since without that hack someti= me the driver get many many non-busy repeated requests with the same =E2=80= =9Ctag=E2=80=9D and then It panics with:=20 (...) >=20 > - Any suggestions? (Probably not but I thought I=E2=80=99d ask anyway :-) >=20 Hello Peter, I have no suggestion but a question. Does the panic happen with https://reviews.freebsd.org/D25155 applied ? I am using your patch from this review with a few drives. It's handy and still builds fine on 15-CURRENT. Cheers =20 --=20 Marek Zarychta From nobody Thu May 23 13:54:58 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VlV6p4Rvnz5LmKM for ; Thu, 23 May 2024 13:55:14 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) (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 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VlV6p3mvPz4JLW for ; Thu, 23 May 2024 13:55:14 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-lf1-x130.google.com with SMTP id 2adb3069b0e04-51f4d2676d1so7854622e87.3 for ; Thu, 23 May 2024 06:55:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20230601.gappssmtp.com; s=20230601; t=1716472512; x=1717077312; darn=freebsd.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=STxqNjn+Nxtp1EZZFeBFu2N05YHa3gDyxYHCxAdeqqQ=; b=JeLP+r40+pErl519F2b892QfNTaFXFGaLFJuRRyR/D4ihgf+3fMjBWPZ4tRP+ThX3Z +kTcd7CLaaCZ0orE0sSiifTlquyR0+PKGbPV9U250vNxFBKTPfk6avM3lsi0NhiUFJXG z2+KxxwvsKUKTMioGdNTRlf0+YZmFphT4nDaYi/L35NMU7J2Vz/Us5UqoG86yXpGwHPU /ZpFDrSw0Rv9qzPCEkquIxSBdDQEf8wMsLbdDukgIn+VGTHfu6VEs65WzU9y2NrCTBj8 oNsav9aPj2lGFSZUhZO9Ipju7/mA5jXE4cUFAlx+Fk6rDIXO10x5gQANqppUWmk/muY0 qJUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716472512; x=1717077312; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=STxqNjn+Nxtp1EZZFeBFu2N05YHa3gDyxYHCxAdeqqQ=; b=sSdlVbmZ98oFGGyxb8ufll6AnQS4E4G0pNtpdGnIT/sVz6Z82zJ1tQ331JXOgCNCiB 89JMR5cRdaQn3Qu2zXXqBwj9qSj35Bj2aractZdX/HsxCUcEMEQhNQi1vFpGQez4rKY0 lNQJuMGd92+XMWCr11RovVkl6gbVEz1V1s6fySTB4gXM4BHQVJ4F5c7f7aAXpPFwS1nQ FPXz8DgN8jI3rrcTUFfkEwwlNheWKa37OZUwmAfwOiDqwL97Bd2Jyw0A+mAqnKcPBhfB LevH9rl+UvooU0iYNGUlIX1d2qAHwX2x4QLUC9eZJnfdcYgyUSwr98CAQNZHH0myNit5 QWFQ== X-Forwarded-Encrypted: i=1; AJvYcCXDUk9KuYf9k9QrHAtzJLO69VxpLdaX4UTSTuQahVZeWX5NKczZtVBTlk8ks/r4Bpet/8gMu3Fyc4Sh6cEzK2sGej2P8hzbfuzb7FE= X-Gm-Message-State: AOJu0YyAgG8gVQUFgMRlaqNxIBNA83kMXDMyIf4/7NGTwj0X3KFQ2Ual 2V4nxGBprC3SsJzQ/1+uKBbSTI6R06hCJ5Bevwp49cYwt+0cvhGxHnGO/fMprj1NJyd75wqFpdQ qBR20KQ5fTKxRfiCA3Gm3P6jMesjNVEml/D1hYg== X-Google-Smtp-Source: AGHT+IGnCb4TxTuZdXEIreQUTCE3QRGPQEWEjrlHmxmdscSJckbRtB427bYDL/dOd9rR8/XOaZXzKOs5iBXGpTk9s4M= X-Received: by 2002:a19:4308:0:b0:528:649b:d7bb with SMTP id 2adb3069b0e04-528649bd990mr1048954e87.0.1716472511742; Thu, 23 May 2024 06:55:11 -0700 (PDT) List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 References: <087AB4C4-9CE0-4024-8E1B-4C636014C8CC@lysator.liu.se> In-Reply-To: From: Warner Losh Date: Thu, 23 May 2024 07:54:58 -0600 Message-ID: Subject: Re: Trying to understand CAM (and the cciss driver) To: Marek Zarychta Cc: Peter Eriksson , FreeBSD Hackers Content-Type: multipart/alternative; boundary="000000000000545d6806191f667e" X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US] X-Rspamd-Queue-Id: 4VlV6p3mvPz4JLW --000000000000545d6806191f667e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, May 23, 2024, 7:20=E2=80=AFAM Marek Zarychta wrote: > Dnia Thu, May 09, 2024 at 07:58:32PM +0200, Peter Eriksson napisa=C5=82(a= ): > > Hi, > > > > I=E2=80=99m trying to fix a bug in the cciss driver that has been there > =E2=80=9Cforever=E2=80=9D when using it with an HP H241 SAS HBA card. > > The driver works fine when all (SAS, spinning rust) drives are behaving > well, but when some of them are starting to go bad it often goes into spi= n > and either hangs the kernel or panics. I=E2=80=99ve been trying to add > instrumentation to it in order to pin-point the problem and have been > attempting some workarounds (like clearing cr_complete since without that > hack sometime the driver get many many non-busy repeated requests with th= e > same =E2=80=9Ctag=E2=80=9D and then It panics with: > (...) > > > > - Any suggestions? (Probably not but I thought I=E2=80=99d ask anyway := -) > > > > Hello Peter, > > I have no suggestion but a question. Does the panic happen with > https://reviews.freebsd.org/D25155 applied ? I am using your patch from > this review with a few drives. It's handy and still builds fine on > 15-CURRENT. > I think he'll still get panics from that since his panics were from bugs in the recovery code, i think, and that patch doesn't really change that code. There may be more diagnostics produced from that code, so it may be worth trying... Warner Cheers > > -- > Marek Zarychta > > --000000000000545d6806191f667e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Thu, May 23, 2024, 7:20=E2=80=AFAM Marek Zarychta &= lt;zarychtam@plan-b.pwste.= edu.pl> wrote:
Dnia Thu, May= 09, 2024 at 07:58:32PM +0200, Peter Eriksson napisa=C5=82(a):
> Hi,
>
> I=E2=80=99m trying to fix a bug in the cciss driver that has been ther= e =E2=80=9Cforever=E2=80=9D when using it with an HP H241 SAS HBA card. > The driver works fine when all (SAS, spinning rust) drives are behavin= g well, but when some of them are starting to go bad it often goes into spi= n and either hangs the kernel or panics. I=E2=80=99ve been trying to add in= strumentation to it in order to pin-point the problem and have been attempt= ing some workarounds (like clearing cr_complete since without that hack som= etime the driver get many many non-busy repeated requests with the same =E2= =80=9Ctag=E2=80=9D and then It panics with:
(...)
>
> - Any suggestions? (Probably not but I thought I=E2=80=99d ask anyway = :-)
>

Hello Peter,

I have no suggestion but a question. Does the panic happen with
https://reviews.freebsd.org/D25155 applied ? I am u= sing your patch from
this review with a few drives. It's handy and still builds fine on
15-CURRENT.

I think he'll still get panics from that since his panics we= re from bugs in the recovery code, i think, and that patch doesn't real= ly change that code. There may be more diagnostics produced from that code,= so it may be worth trying...

Warner

Cheers

--
Marek Zarychta

--000000000000545d6806191f667e-- From nobody Thu May 23 21:40:59 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VlhSS3tl2z5LNZ8 for ; Thu, 23 May 2024 21:41:12 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Received: from udns.ultimatedns.net (udns.ultimatedns.net [24.113.41.81]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "ultimatedns.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VlhSR3qSPz4Bt4 for ; Thu, 23 May 2024 21:41:11 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=ultimatedns.net header.s=mx99 header.b=kamqHeGD; spf=none (mx1.freebsd.org: domain of bsd-lists@bsdforge.com has no SPF policy when checking 24.113.41.81) smtp.mailfrom=bsd-lists@bsdforge.com Received: from ultimatedns.net (localhost [127.0.0.1]) by udns.ultimatedns.net (8.16.1/8.16.1) with ESMTP id 44NLexiL018027 for ; Thu, 23 May 2024 14:41:05 -0700 (PDT) (envelope-from bsd-lists@bsdforge.com) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=ultimatedns.net; s=mx99; t=1716500465; x=1716501065; r=y; bh=yjmEh9ZVrGz/vXHmrwbgKm+UByE2S7WFdWCmtdvbiE8=; h=Date:From:To:Subject; b=kamqHeGD/DIehC/aCU4BsnY4Ffx8UQVJ6f4tAXgbiYi7n/uXomm7yPGPhLCYZjmJp 4eDdoGgQ6Ybg6OHHGWJ93uDOQaKgjQrm45NnaT9fKydCl+HZ5y+r9eNewk21WOXFPc WO7MWxcF5+WM9iGQQjZs5rjm41gn+eUkl4TpcNIrrhyyW6SKls0Aqnccs88E0mBGv6 g2F3rd2jkk7bGknCTFUxPmSlxjEqG5MrA2tURMyQMc20yuU1KUqNkiGeiz6ruO+0Aa KG/WgVQPysasoCeV7AsRgM66loe7+r410pPAYYE+yd4vYREpTEt2bFF1EpVPs0h8VF etthL5Zxdw3sw== List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 Date: Thu, 23 May 2024 14:40:59 -0700 From: Chris To: freebsd-hackers Subject: incompatible integer to pointer conversion User-Agent: UDNSMS/17.0 Message-ID: <2e83baa48d2686b8024021668a7d334c@bsdforge.com> X-Sender: bsd-lists@bsdforge.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Spamd-Bar: / X-Rspamd-Pre-Result: action=no action; module=multimap; Matched map: local_wl_ip X-Spamd-Result: default: False [-0.20 / 15.00]; R_DKIM_ALLOW(-0.20)[ultimatedns.net:s=mx99]; ONCE_RECEIVED(0.10)[]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; local_wl_ip(0.00)[24.113.41.81]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:11404, ipnet:24.113.0.0/16, country:US]; R_SPF_NA(0.00)[no SPF record]; FROM_EQ_ENVFROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; FROM_HAS_DN(0.00)[]; DKIM_TRACE(0.00)[ultimatedns.net:+] X-Rspamd-Queue-Id: 4VlhSR3qSPz4Bt4 Sorry, this is really a basic "programming in C 101" question. But for the life of me, I'm not getting it. The source in question: LDAP *setup_ldap() { LDAP *ret; int n; if (debug) fprintf(stderr, "radldap: Setting up LDAP for %s, port %d\n", host, port); if (!(ret = ldap_init(host, port))) { fprintf(stderr, "radldap: Could not initialize LDAP!\n"); _exit(2); } Now *you* can probably already see the problem. But this is what's returned: radldap.c:302:12: error: incompatible integer to pointer conversion assigning to 'LDAP *' (aka 'struct ldap *') from 'int' [-Wint-conversion] 302 | if (!(ret = ldap_init(host, port))) { | ^ ~~~~~~~~~~~~~~~~~~~~~ Thanks in advance for any hints, or pointers. From nobody Thu May 23 21:50:38 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VlhgM5RbZz5LPHD for ; Thu, 23 May 2024 21:50:39 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VlhgM3YPkz4DqD; Thu, 23 May 2024 21:50:39 +0000 (UTC) (envelope-from brooks@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1716501039; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=BO6cNfgqR89LOadKIBr95q2+zWmlyRDemEVe7LsumlE=; b=RDTfyLZWpuGk/9q0PoN2BbV90XMjrcWGUDjWCMFcvmcr129vn4JUQfqyNflEQ40QMxkt4r x49NX9SzxXRotaE6s5n0eMgxkqB1zaiPPQEHuzdYeTEFQH5vLgdA3FC8IjCILQeDDT3w5n USo+Dytw6IA/J4sRs3ZEBnxIN3vgJK/BYyOIK8aQPh1M+HyZfGeQKB4fQWV8SdQfDbrf2p am7bFyRSqw2A0eUNBQxsm5jR76+gIYlhQjgyiO/HCLVEMaGztubCkBatGCKYO/QDo9PrG9 JaPMmWjqkRR4hWi9JKPwxW4QWNsiOVoO34svBPXl0YOE5WflgqB1sNpdkd4Pmw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1716501039; a=rsa-sha256; cv=none; b=InMNYjxJbaB4YcW/dokMta4Ui2PmevAUTDJGrngdE+zbPuh4mF7ocuLv/DBkhg3Qe59d+a OoL7yWQeUqV87b+ZnsyTDxR//+IlbWj9KK9ecfSPwMXnv7qtH0LMZIiprZIe0SClBFpnWd 5rDNRsDb22ZMifBa2whfD68DgNFHSr4NOHBSkSotOJ41BPyhC+DZBHH7hphjYPZgD5dgwe GI8+aeWgwS/Qg15wI8M8gWrG6z0UOZBB5405zkIfE3CfBpV6d7dVspWqQv903LJ1IH7Ovr k5lwn/B34Y24uU4Za5p6OGsBkxlESvgnyyijZ60sZomIZ0Foeqd24rH9B8OrPg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1716501039; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=BO6cNfgqR89LOadKIBr95q2+zWmlyRDemEVe7LsumlE=; b=GCI5JJAYvBhbTh4RxQ0dBlkxFej/BjPpMIX0qw3APFJU4T7nFlBsRhhJSrOPiMf588I0Hs nYUHRNM1mZry7Kx+q5Tm0N+viqeYs5aIyJduIR0f8ZT39M/DV6jBAZ7NnvrUYKxL1newDY ZuDJjCWlMvnMJdL7ePlJ9Y1rLb2iaWIFGhGbtr779W7wwkrzVNbc0OjHPzDmIVlLT6XxyX FBT7snk3s1POtUZ2zf7mp5l32TCzvwN2RzR612PyBfnjdzQNhRQ5OIlm27d4amqr8qIHh8 rcS7Qi8RbrDfYCvAR7S1q92L50nViTQDhbAyHejr59TmDlwiDCb32EkDJdF+WA== Received: from spindle.one-eyed-alien.net (spindle.one-eyed-alien.net [199.48.129.229]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: brooks/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4VlhgM2tRVzLg8; Thu, 23 May 2024 21:50:39 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: by spindle.one-eyed-alien.net (Postfix, from userid 3001) id AA5F03C019B; Thu, 23 May 2024 21:50:38 +0000 (UTC) Date: Thu, 23 May 2024 21:50:38 +0000 From: Brooks Davis To: Chris Cc: freebsd-hackers Subject: Re: incompatible integer to pointer conversion Message-ID: References: <2e83baa48d2686b8024021668a7d334c@bsdforge.com> List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2e83baa48d2686b8024021668a7d334c@bsdforge.com> On Thu, May 23, 2024 at 02:40:59PM -0700, Chris wrote: > Sorry, this is really a basic "programming in C 101" question. > But for the life of me, I'm not getting it. The source in > question: > > LDAP *setup_ldap() > { > LDAP *ret; > int n; > > if (debug) fprintf(stderr, "radldap: Setting up LDAP for %s, port %d\n", > host, port); > if (!(ret = ldap_init(host, port))) { > fprintf(stderr, "radldap: Could not initialize LDAP!\n"); > _exit(2); > } > > Now *you* can probably already see the problem. But this is what's returned: > > radldap.c:302:12: error: incompatible integer to pointer conversion assigning > to 'LDAP *' (aka 'struct ldap *') from 'int' [-Wint-conversion] > 302 | if (!(ret = ldap_init(host, port))) { > | ^ ~~~~~~~~~~~~~~~~~~~~~ > > Thanks in advance for any hints, or pointers. > Have you included ldap.h? Are there any warnings about implicit declarations? -- Brooks From nobody Thu May 23 22:09:05 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Vlj4n00wDz5LR85 for ; Thu, 23 May 2024 22:09:13 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Received: from udns.ultimatedns.net (udns.ultimatedns.net [24.113.41.81]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "ultimatedns.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Vlj4m5lPVz4GxJ; Thu, 23 May 2024 22:09:12 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Authentication-Results: mx1.freebsd.org; none Received: from ultimatedns.net (localhost [127.0.0.1]) by udns.ultimatedns.net (8.16.1/8.16.1) with ESMTP id 44NM96iM093268; Thu, 23 May 2024 15:09:12 -0700 (PDT) (envelope-from bsd-lists@bsdforge.com) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=ultimatedns.net; s=mx99; t=1716502152; x=1716502752; r=y; bh=DoY8+8+fZE6Lrq7pLxAn38WSvaNuwAOlzzuCWzG7Yuk=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=u6ODqSQayUzSf8BJzPjBQUNvmouPVTUSpAHDHCFZTbRzPB86RygxH9khbrEnvMq/5 orKKLiNdJXvFwbWslOUM8g8jen73hUtcHfHz/CfR2oEtBrvubDz88S+xSGWRU88FUr 8d5Xt9f5Tcg/Gsmq934PWG+CiMys1AKDw/CShz118D+IOnSPAZQAfqK9aZt+OVhER3 bHVr753NW0SAV0qOE51jvXCNpxNg4tJ0jMzvHPx+kOI2K6RH41mixjDlPQgO5EUxae NC5ODwIkrxBc2thq4lVDK4XPn9q8poyooOeeFni1t1EtivYuyLxi05fwwPiygOtzLs 0RVq2QjslphSw== List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 Date: Thu, 23 May 2024 15:09:05 -0700 From: Chris To: Brooks Davis Cc: freebsd-hackers Subject: Re: incompatible integer to pointer conversion In-Reply-To: References: <2e83baa48d2686b8024021668a7d334c@bsdforge.com> User-Agent: UDNSMS/17.0 Message-ID: <2b0dc8ef2cca4945af74f4992af5fc06@bsdforge.com> X-Sender: bsd-lists@bsdforge.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:11404, ipnet:24.113.0.0/16, country:US] X-Rspamd-Queue-Id: 4Vlj4m5lPVz4GxJ On 2024-05-23 14:50, Brooks Davis wrote: > On Thu, May 23, 2024 at 02:40:59PM -0700, Chris wrote: >> Sorry, this is really a basic "programming in C 101" question. >> But for the life of me, I'm not getting it. The source in >> question: >> >> LDAP *setup_ldap() >> { >> LDAP *ret; >> int n; >> >> if (debug) fprintf(stderr, "radldap: Setting up LDAP for %s, port %d\n", >> host, port); >> if (!(ret = ldap_init(host, port))) { >> fprintf(stderr, "radldap: Could not initialize LDAP!\n"); >> _exit(2); >> } >> >> Now *you* can probably already see the problem. But this is what's >> returned: >> >> radldap.c:302:12: error: incompatible integer to pointer conversion >> assigning >> to 'LDAP *' (aka 'struct ldap *') from 'int' [-Wint-conversion] >> 302 | if (!(ret = ldap_init(host, port))) { >> | ^ ~~~~~~~~~~~~~~~~~~~~~ >> >> Thanks in advance for any hints, or pointers. >> > > Have you included ldap.h? > Are there any warnings about implicit declarations? Yep. Loads of them. That's what I needed. I've got it now. Thanks a million for the reply, Brooks. > > -- Brooks --Chris From nobody Thu May 23 22:09:38 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Vlj5K6htGz5LRHR for ; Thu, 23 May 2024 22:09:41 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from omta002.cacentral1.a.cloudfilter.net (omta002.cacentral1.a.cloudfilter.net [3.97.99.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Vlj5K4nKTz4Hrc; Thu, 23 May 2024 22:09:41 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Authentication-Results: mx1.freebsd.org; none Received: from shw-obgw-4001a.ext.cloudfilter.net ([10.228.9.142]) by cmsmtp with ESMTPS id A5YhsSs4zdrxEAGd2swjKV; Thu, 23 May 2024 22:09:40 +0000 Received: from spqr.komquats.com ([70.66.152.170]) by cmsmtp with ESMTPSA id AGd0sb1tepsbgAGd1sjvoB; Thu, 23 May 2024 22:09:40 +0000 X-Auth-User: cschuber X-Authority-Analysis: v=2.4 cv=Ff+Ux4+6 c=1 sm=1 tr=0 ts=664fbea4 a=y8EK/9tc/U6QY+pUhnbtgQ==:117 a=y8EK/9tc/U6QY+pUhnbtgQ==:17 a=kj9zAlcOel0A:10 a=TpHVaj0NuXgA:10 a=y3olD_i8AAAA:8 a=YxBL1-UpAAAA:8 a=6I5d2MoRAAAA:8 a=EkcXrb_YAAAA:8 a=itBukuqtvSBKKh9pf3EA:9 a=CjuIK1q_8ugA:10 a=2GdgqtpztZvaxdPX1XqS:22 a=Ia-lj3WSrqcvXOmTRaiG:22 a=IjZwj45LgO3ly-622nXo:22 a=LK5xJRSDVpKd5WXXoEvA:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTP id 3DD4E39B; Thu, 23 May 2024 15:09:38 -0700 (PDT) Received: by slippy.cwsent.com (Postfix, from userid 1000) id 324A01BD; Thu, 23 May 2024 15:09:38 -0700 (PDT) X-Mailer: exmh version 2.9.0 11/07/2018 with nmh-1.8+dev Reply-to: Cy Schubert From: Cy Schubert X-os: FreeBSD X-Sender: cy@cwsent.com X-URL: http://www.cschubert.com/ To: Brooks Davis cc: Chris , freebsd-hackers Subject: Re: incompatible integer to pointer conversion In-reply-to: References: <2e83baa48d2686b8024021668a7d334c@bsdforge.com> Comments: In-reply-to Brooks Davis message dated "Thu, 23 May 2024 21:50:38 -0000." List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 23 May 2024 15:09:38 -0700 Message-Id: <20240523220938.324A01BD@slippy.cwsent.com> X-CMAE-Envelope: MS4xfPhLNPuWREccYcwcJJS3FcA/ih5A57zwQO+RkRFDaZiscqaCKUOWwzIM0SBvt51zAB9TpDoOwXXlUVNfyeDhcU9tUvIOe9s+hW/bBZWgQbiCwuyF8ARr pFaZgZxMDNgIAw+44bK92EYt7JUpSujDfuQsxkiBHeHTkhOjdPZPqtPe4N4x1asKA3HlFtzIYou19za1kJab1xEVFbO1MxKdg5SjZCsD2H3PBbsaANtmRDso 5Pp63Se5C8lte+/XM2PcrrFP9e463du7G2qPve71AMU= X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:16509, ipnet:3.96.0.0/15, country:US] X-Rspamd-Queue-Id: 4Vlj5K4nKTz4Hrc In message , Brooks Davis writes: > On Thu, May 23, 2024 at 02:40:59PM -0700, Chris wrote: > > Sorry, this is really a basic "programming in C 101" question. > > But for the life of me, I'm not getting it. The source in > > question: > > > > LDAP *setup_ldap() > > { > > LDAP *ret; > > int n; > > > > if (debug) fprintf(stderr, "radldap: Setting up LDAP for %s, port %d\n" > , > > host, port); > > if (!(ret = ldap_init(host, port))) { > > fprintf(stderr, "radldap: Could not initialize LDAP!\n"); > > _exit(2); > > } > > > > Now *you* can probably already see the problem. But this is what's returned > : > > > > radldap.c:302:12: error: incompatible integer to pointer conversion assigni > ng > > to 'LDAP *' (aka 'struct ldap *') from 'int' [-Wint-conversion] > > 302 | if (!(ret = ldap_init(host, port))) { > > | ^ ~~~~~~~~~~~~~~~~~~~~~ > > > > Thanks in advance for any hints, or pointers. > > > > Have you included ldap.h? Are there any warnings about implicit > declarations? ldap.h includes this as well: #if LDAP_DEPRECATED LDAP_F( LDAP * ) ldap_init LDAP_P(( /* deprecated, use ldap_create or ldap_initialize */ LDAP_CONST char *host, int port )); LDAP_F( LDAP * ) ldap_open LDAP_P(( /* deprecated, use ldap_create or ldap_initialize */ LDAP_CONST char *host, int port )); #endif Apps such as dovecot and apr-1 have, #define LDAP_DEPRECATED 1 > > -- Brooks > -- Cheers, Cy Schubert FreeBSD UNIX: Web: https://FreeBSD.org NTP: Web: https://nwtime.org e^(i*pi)+1=0 From nobody Thu May 23 22:28:13 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VljVt4Y14z5LSgH for ; Thu, 23 May 2024 22:28:22 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Received: from udns.ultimatedns.net (udns.ultimatedns.net [24.113.41.81]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "ultimatedns.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VljVs6JDgz4Lq1; Thu, 23 May 2024 22:28:21 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Authentication-Results: mx1.freebsd.org; none Received: from ultimatedns.net (localhost [127.0.0.1]) by udns.ultimatedns.net (8.16.1/8.16.1) with ESMTP id 44NMSD9J013401; Thu, 23 May 2024 15:28:19 -0700 (PDT) (envelope-from bsd-lists@bsdforge.com) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=ultimatedns.net; s=mx99; t=1716503299; x=1716503899; r=y; bh=WVahWo5VkwyImqnUPfKSZmpB+ss9X6wwp5KWYslBAro=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=fhMq3BrBFHCBZSbeyavo7X0hH1BmPHadwuIrpNlCXyJHzTyuQt7WC09Qsx9enSIZW lK8st79iIycTEGbocueZSH0biDNkRh9QcfL6e9h0IY/ONh+ZVChjguwCZsqn/UodR6 dP9SsMGW0e75gtMrFBhwJ5WvQLklf6j8AslriHGayKFONXmw8NZ4QJ2U/hO/ezpT5P Tq0YxcqLQIrj7WA92nr4l2ajCUzPyscNRjsdQSjs11A8h5BWRnFtL8Zyr9WG8QPQb+ OnOBsjhF+dfxTmF/vrghZy0UODmfnVLZQurlUPtyA7JxP16CydUB7QdCA3RIkffwHV Jqg5jSC/VcjJA== List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 Date: Thu, 23 May 2024 15:28:13 -0700 From: Chris To: Cy Schubert Cc: Brooks Davis , freebsd-hackers Subject: Re: incompatible integer to pointer conversion In-Reply-To: <20240523220938.324A01BD@slippy.cwsent.com> References: <2e83baa48d2686b8024021668a7d334c@bsdforge.com> <20240523220938.324A01BD@slippy.cwsent.com> User-Agent: UDNSMS/17.0 Message-ID: <402e05f251baab2d4903201dcb207775@bsdforge.com> X-Sender: bsd-lists@bsdforge.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:11404, ipnet:24.113.0.0/16, country:US] X-Rspamd-Queue-Id: 4VljVs6JDgz4Lq1 On 2024-05-23 15:09, Cy Schubert wrote: > In message , Brooks Davis > writes: >> On Thu, May 23, 2024 at 02:40:59PM -0700, Chris wrote: >> > Sorry, this is really a basic "programming in C 101" question. >> > But for the life of me, I'm not getting it. The source in >> > question: >> > >> > LDAP *setup_ldap() >> > { >> > LDAP *ret; >> > int n; >> > >> > if (debug) fprintf(stderr, "radldap: Setting up LDAP for %s, port %d\n" >> , >> > host, port); >> > if (!(ret = ldap_init(host, port))) { >> > fprintf(stderr, "radldap: Could not initialize LDAP!\n"); >> > _exit(2); >> > } >> > >> > Now *you* can probably already see the problem. But this is what's returned >> : >> > >> > radldap.c:302:12: error: incompatible integer to pointer conversion assigni >> ng >> > to 'LDAP *' (aka 'struct ldap *') from 'int' [-Wint-conversion] >> > 302 | if (!(ret = ldap_init(host, port))) { >> > | ^ ~~~~~~~~~~~~~~~~~~~~~ >> > >> > Thanks in advance for any hints, or pointers. >> > >> >> Have you included ldap.h? Are there any warnings about implicit >> declarations? > > ldap.h includes this as well: > > #if LDAP_DEPRECATED > LDAP_F( LDAP * ) > ldap_init LDAP_P(( /* deprecated, use ldap_create or ldap_initialize */ > LDAP_CONST char *host, > int port )); > > LDAP_F( LDAP * ) > ldap_open LDAP_P(( /* deprecated, use ldap_create or ldap_initialize */ > LDAP_CONST char *host, > int port )); > #endif > > Apps such as dovecot and apr-1 have, > > #define LDAP_DEPRECATED 1 Heh. Based on the volumes of warns I'm seeing, I can understand why. My "quick fix" just turned into a bit of a project. :( Thanks for the pointer, Cy. Greatly appreciated! > >> >> -- Brooks >> --Chris From nobody Thu May 23 23:12:58 2024 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VlkVX72Hpz5LXP8 for ; Thu, 23 May 2024 23:13:08 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Received: from udns.ultimatedns.net (udns.ultimatedns.net [24.113.41.81]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "ultimatedns.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VlkVW4dbDz4Qm3; Thu, 23 May 2024 23:13:07 +0000 (UTC) (envelope-from bsd-lists@bsdforge.com) Authentication-Results: mx1.freebsd.org; dkim=fail ("headers rsa verify failed") header.d=ultimatedns.net header.s=mx99 header.b=YcoyxbdG; spf=none (mx1.freebsd.org: domain of bsd-lists@bsdforge.com has no SPF policy when checking 24.113.41.81) smtp.mailfrom=bsd-lists@bsdforge.com Received: from ultimatedns.net (localhost [127.0.0.1]) by udns.ultimatedns.net (8.16.1/8.16.1) with ESMTP id 44NNCxBt079479; Thu, 23 May 2024 16:13:05 -0700 (PDT) (envelope-from bsd-lists@bsdforge.com) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=ultimatedns.net; s=mx99; t=1716505985; x=1716506585; r=y; bh=Swl+n0RQgsyl6GuvOtdBa9MXnk5wGHDGv5Pxiu13nPY=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=YcoyxbdGPENHUM3aUrwzAQPV0cgms9GvNXWuoOP1/9cTbsD6OCYrzozCSG1hK281z lE/KlB4Uj9mvF1zbewpVf+qSZu+ZOFfS80Us+Hj3Kkvd/5A7oImRYfeIUlfPsaPtH/ 1wBEemNIWr7DPaHRv73nIMrHNizB3o27feZtuJ0KLLQKsz8avvYM0k0uyPY8OzXRQV +6SgbrI8DzJh6SF0VU5p3i/BmQH+URLQ2h4o3OJTjkHcERotJgA6vJUCLO6Odb/U/Q uzP6amymzqbBL1b4axpAJaKQkeMdLSllgX27DnvQbn7/SYZPv0q/seE6x3Jv6ZVMHn DMtTjYMJ9BryA== List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@FreeBSD.org MIME-Version: 1.0 Date: Thu, 23 May 2024 16:12:58 -0700 From: Chris To: Cy Schubert Cc: Brooks Davis , freebsd-hackers Subject: Re: incompatible integer to pointer conversion In-Reply-To: <402e05f251baab2d4903201dcb207775@bsdforge.com> References: <2e83baa48d2686b8024021668a7d334c@bsdforge.com> <20240523220938.324A01BD@slippy.cwsent.com> <402e05f251baab2d4903201dcb207775@bsdforge.com> User-Agent: UDNSMS/17.0 Message-ID: <7780ce78a3bdef9d1a79f6f051e3373e@bsdforge.com> X-Sender: bsd-lists@bsdforge.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Spamd-Bar: + X-Rspamd-Pre-Result: action=no action; module=multimap; Matched map: local_wl_ip X-Spamd-Result: default: False [1.00 / 15.00]; R_DKIM_REJECT(1.00)[ultimatedns.net:s=mx99]; ONCE_RECEIVED(0.10)[]; MIME_GOOD(-0.10)[text/plain]; R_SPF_NA(0.00)[no SPF record]; ASN(0.00)[asn:11404, ipnet:24.113.0.0/16, country:US]; local_wl_ip(0.00)[24.113.41.81]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FROM_HAS_DN(0.00)[]; DKIM_TRACE(0.00)[ultimatedns.net:-] X-Rspamd-Queue-Id: 4VlkVW4dbDz4Qm3 On 2024-05-23 15:28, Chris wrote: > On 2024-05-23 15:09, Cy Schubert wrote: >> In message , Brooks Davis >> writes: >>> On Thu, May 23, 2024 at 02:40:59PM -0700, Chris wrote: >>> > Sorry, this is really a basic "programming in C 101" question. >>> > But for the life of me, I'm not getting it. The source in >>> > question: >>> > >>> > LDAP *setup_ldap() >>> > { >>> > LDAP *ret; >>> > int n; >>> > >>> > if (debug) fprintf(stderr, "radldap: Setting up LDAP for %s, port %d\n" >>> , >>> > host, port); >>> > if (!(ret = ldap_init(host, port))) { >>> > fprintf(stderr, "radldap: Could not initialize LDAP!\n"); >>> > _exit(2); >>> > } >>> > >>> > Now *you* can probably already see the problem. But this is what's returned >>> : >>> > >>> > radldap.c:302:12: error: incompatible integer to pointer conversion assigni >>> ng >>> > to 'LDAP *' (aka 'struct ldap *') from 'int' [-Wint-conversion] >>> > 302 | if (!(ret = ldap_init(host, port))) { >>> > | ^ ~~~~~~~~~~~~~~~~~~~~~ >>> > >>> > Thanks in advance for any hints, or pointers. >>> > >>> >>> Have you included ldap.h? Are there any warnings about implicit >>> declarations? >> >> ldap.h includes this as well: >> >> #if LDAP_DEPRECATED >> LDAP_F( LDAP * ) >> ldap_init LDAP_P(( /* deprecated, use ldap_create or ldap_initialize */ >> LDAP_CONST char *host, >> int port )); >> >> LDAP_F( LDAP * ) >> ldap_open LDAP_P(( /* deprecated, use ldap_create or ldap_initialize >> */ >> LDAP_CONST char *host, >> int port )); >> #endif >> >> Apps such as dovecot and apr-1 have, >> >> #define LDAP_DEPRECATED 1 > Heh. Based on the volumes of warns I'm seeing, I can understand why. My Well FWIW. I used the define you pointed at, and all's well for my current task. Case closed. Thanks again, Cy && Brooks! > > Thanks for the pointer, Cy. Greatly appreciated! >> >>> >>> -- Brooks >>> > --Chris --Chris