From nobody Mon May 2 18:24:17 2022 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 8692B1AB895B; Mon, 2 May 2022 18:24:28 +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 4KsWhW36J3z3nj3; Mon, 2 May 2022 18:24:27 +0000 (UTC) (envelope-from zarychtam@plan-b.pwste.edu.pl) Received: from [IPV6:2001:470:71:d47:c0c4:7b61:cb80:fb4f] ([IPv6:2001:470:71:d47:c0c4:7b61:cb80:fb4f]) (authenticated bits=0) by plan-b.pwste.edu.pl (8.17.1/8.17.1) with ESMTPSA id 242IOHJb088391 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO); Mon, 2 May 2022 20:24:17 +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=1651515858; bh=eVYGuQjYpl+dMQKz54RSlhtJMiVJmn4HHNyTRr0EaoI=; h=Date:From:To:Subject; b=A0v27+Ci0K2u/kI+zNvQS4b6JYcwLfvVmejjdZ3Qnr63oKPLx62wZ0VPDLkzimByl kGqgwC2U2T7kMB3SNDEeXv1EISM39ameBCCsrZpRDx9KQEl1wK41IsieDEFQg+uhO1 9PbVp/b46tC3n14O1n7KeEKtQ7ngkDJ7iKnA1WwxeqF+cf++7JieH8PYX65igJy/Ml OLZrdwAL/XliBeanPQPzINNTAYYHbAHpAZwyQItWPfTjA/i8y3TNrSKh59ly+fAYAt rSSmBdjXzMW3/8iZngAMLcxVxGrckMIx/Fikq4uL7bWp/x84PnpAsnZBRdteT0+DLC xV/sfKi0ZbCHw== Content-Type: multipart/alternative; boundary="------------NihIw8oFMGKyRecHWZphbckN" Message-ID: <4ba8458e-db94-6f74-a8e0-ba71692ea72a@plan-b.pwste.edu.pl> Date: Mon, 2 May 2022 20:24:17 +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/5.0 (X11; FreeBSD amd64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 From: Marek Zarychta Content-Language: en-US To: freeBSD Current , freebsd-hackers@freebsd.org Subject: discussion on future removal of empty $FreeBSD$ tags X-Rspamd-Queue-Id: 4KsWhW36J3z3nj3 X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=plan-b.pwste.edu.pl header.s=plan-b-mailer header.b=A0v27+Ci; dmarc=pass (policy=none) header.from=plan-b.pwste.edu.pl; spf=none (mx1.freebsd.org: domain of zarychtam@plan-b.pwste.edu.pl has no SPF policy when checking 2001:678:618::40) smtp.mailfrom=zarychtam@plan-b.pwste.edu.pl X-Spamd-Result: default: False [-1.80 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[plan-b.pwste.edu.pl:s=plan-b-mailer]; MID_RHS_MATCH_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; SUBJECT_HAS_CURRENCY(1.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; URI_COUNT_ODD(1.00)[3]; DKIM_TRACE(0.00)[plan-b.pwste.edu.pl:+]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[plan-b.pwste.edu.pl,none]; NEURAL_HAM_SHORT(-1.00)[-1.000]; MLMMJ_DEST(0.00)[freebsd-hackers,freebsd-current]; R_SPF_NA(0.00)[no SPF record]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; RCVD_COUNT_TWO(0.00)[2]; ASN(0.00)[asn:206006, ipnet:2001:678:618::/48, country:PL]; RCVD_TLS_ALL(0.00)[] X-ThisMailContainsUnwantedMimeParts: N This is a multi-part message in MIME format. --------------NihIw8oFMGKyRecHWZphbckN Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Dear subscribers, after one of the recent commits[1] surprisingly we got rid of $FreeBSD$ from among others, two configuration files: /etc/ssh/ssh_config and /etc/ssh/sshd_config. I was told these IDs are going to be deprecated in the whole source tree when 12.x branch reaches EoL, what is surprising news, at least for me. While indeed empty $FreeBSD$ tags after the transition to git became useless, leaving them in config files, still might be handy. Please let me explain why. After the transition to git, a lot of people complained about breakage in mergemaster(8). Finally, they were told that this tool is outdated, cannot do 3-way merge, has no maintainer, etc. so it's going to be deprecated soon. Then appropriate notice was added, the handbook got updated, so seemingly everyone was fine with this depreciation. I am not going to bring any serious arguments against etcupdate(8), but when providing support on IRC, a few cases of foot shooting with this tool had been reported to me and the last one happened this year IIRC. Moreover some people, including me, just like and are used to old sdiff(1)-way work of mergemaster(8).  So soon after the transition to git to overcome this deficiency I wrote for myself a git primer helping with quick creation of local repository including $FreeBSD$ recreation for mergemaster(8) relying on empty $FreeBSD$ tags. I will attach this primer[2] for users here, maybe someone (noncommitter) will benefit from this (if it will not get burned with fire here earlier). Please don't get me wrong, I am not fighting with etcupdate(8) which works almost flawlessly in unison with freebsd-update(8), but people who follow STABLE/CURRENT really do appreciate the existence of mergemaster(8) and still use it behind the scenes, including probably members of core@ team. I am only asking for leaving these empty $FreeBSD$ IDs in config files. This will of course add some burden to committers' work but might be beneficial in the future. I am neither committer, nor contributor, but the voice from the userbase. Best regards, Marek Zarychta [1] https://cgit.freebsd.org/src/commit/?id=835ee05f [2] ######################################################## # # FreeBSD Git src with worktrees and clean/smudge filters # for mergemaster(8) # ######################################################## # Preparation of the tree zfs create zroot/usr/src_head zfs create zroot/usr/src_13 ######################################################## # Making src of stable/13 mountable in /usr/src echo "/usr/src_13 /usr/src nullfs rw,late 0 0" >> /etc/fstab mount -al ######################################################## # Cloning the repository cd /usr/src_head git clonehttps://git.freebsd.org/src.git/ ./ ######################################################## # Adding filters # Filters require lang/ruby and lang/perl installed git config filter.freebsdid.smudge expand_freebsd git config filter.freebsdid.clean 'perl -pe "s/\\\$FreeBSD[^\\\$]*\\\$/\\\$FreeBSD\\\$/"' ######################################################## # Limiting filters scope # In /usr/src_head create file .git/info/attributes with # following contents (at least): ------------cut------------ cat > .git/info/attributes << EOF etc/* filter=freebsdid etc/*/* filter=freebsdid libexec/rc/* filter=freebsdid libexec/rc/rc.d/* filter=freebsdid *.conf filter=freebsdid dot.??* filter=freebsdid lib/libc/gen/shells filter=freebsdid lib/libc/net/hosts filter=freebsdid lib/libpam/pam.d/* filter=freebsdid lib/libwrap/hosts.allow filter=freebsdid usr.sbin/services_mkdb/services filter=freebsdid usr.sbin/bsnmpd/bsnmpd/snmpd.config filter=freebsdid usr.sbin/periodic/etc/* filter=freebsdid usr.sbin/cron/cron/crontab filter=freebsdid crypto/openssh/ssh*_config filter=freebsdid EOF ------------cut------------ ######################################################## # Smudge filter setup # Create file /usr/local/bin/expand_freebsd with following # contents and make it executable. ------------cut------------ #!/usr/bin/env ruby data = STDIN.read last_info = `git log --pretty=format:"%h %ae %ad" -1` puts data.gsub('$FreeBSD$', '$FreeBSD: ' + last_info.to_s + '$') ------------cut------------ chmod a+x /usr/local/bin/expand_freebsd ######################################################## # Adding worktrees # Add worktree for stable/13, filters will be applied git worktree add /usr/src_13 stable/13 # To have IDs in main (HEAD) # do checkout of filtered files again cd /usr/src_head rm etc/master.passwd etc/group rm libexec/rc/rc.d/* git checkout -f -- . ######################################################## # To find more files with $FreeBSD tags which might # be added to .git/info/attributes file issue command: find . -type f -a -not -name '*~' | xargs grep -l '$FreeBSD' -- Marek Zarychta --------------NihIw8oFMGKyRecHWZphbckN Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

Dear subscribers,

after one of the recent commits[1] surprisingly we got rid of $FreeBSD$ from among others, two configuration files: /etc/ssh/ssh_config and /etc/ssh/sshd_config. I was told these IDs are going to be deprecated in the whole source tree when 12.x branch reaches EoL, what is surprising news, at least for me. While indeed empty $FreeBSD$ tags after the transition to git became useless, leaving them in config files, still might be handy. Please let me explain why.

After the transition to git, a lot of people complained about breakage in mergemaster(8). Finally, they were told that this tool is outdated, cannot do 3-way merge, has no maintainer, etc. so it's going to be deprecated soon. Then appropriate notice was added, the handbook got updated, so seemingly everyone was fine with this depreciation. I am not going to bring any serious arguments against etcupdate(8), but when providing support on IRC, a few cases of foot shooting with this tool had been reported to me and the last one happened this year IIRC. Moreover some people, including me, just like and are used to old sdiff(1)-way work of mergemaster(8).  So soon after the transition to git to overcome this deficiency I wrote for myself a git primer helping with quick creation of local repository including $FreeBSD$ recreation for mergemaster(8) relying on empty $FreeBSD$ tags. I will attach this primer[2] for users here, maybe someone (noncommitter) will benefit from this (if it will not get burned with fire here earlier).

Please don't get me wrong, I am not fighting with etcupdate(8) which works almost flawlessly in unison with freebsd-update(8), but people who follow STABLE/CURRENT really do appreciate the existence of mergemaster(8) and still use it behind the scenes, including probably members of core@ team. I am only asking for leaving these empty $FreeBSD$ IDs in config files. This will of course add some burden to committers' work but might be beneficial in the future. I am neither committer, nor contributor, but the voice from the userbase.

Best regards,

Marek Zarychta

[1] https://cgit.freebsd.org/src/commit/?id=835ee05f

[2]

########################################################
#
# FreeBSD Git src with worktrees and clean/smudge filters 
# for mergemaster(8)
#
########################################################
# Preparation of the tree

zfs create zroot/usr/src_head
zfs create zroot/usr/src_13

########################################################
# Making src of stable/13 mountable in /usr/src
 
echo "/usr/src_13 	/usr/src 		nullfs rw,late 0 0" >> /etc/fstab
mount -al

########################################################
# Cloning the repository

cd /usr/src_head
git clone https://git.freebsd.org/src.git/ ./

########################################################
# Adding filters
# Filters require lang/ruby and lang/perl installed

git config filter.freebsdid.smudge expand_freebsd
git config filter.freebsdid.clean 'perl -pe "s/\\\$FreeBSD[^\\\$]*\\\$/\\\$FreeBSD\\\$/"'

########################################################
# Limiting filters scope
# In /usr/src_head create file .git/info/attributes with 
# following contents (at least):

------------cut------------
cat > .git/info/attributes << EOF
etc/* 	                filter=freebsdid
etc/*/*                 filter=freebsdid
libexec/rc/*            filter=freebsdid
libexec/rc/rc.d/*       filter=freebsdid
*.conf                  filter=freebsdid
dot.??*                 filter=freebsdid
lib/libc/gen/shells     filter=freebsdid
lib/libc/net/hosts      filter=freebsdid
lib/libpam/pam.d/*      filter=freebsdid
lib/libwrap/hosts.allow filter=freebsdid
usr.sbin/services_mkdb/services filter=freebsdid
usr.sbin/bsnmpd/bsnmpd/snmpd.config filter=freebsdid
usr.sbin/periodic/etc/* filter=freebsdid
usr.sbin/cron/cron/crontab filter=freebsdid
crypto/openssh/ssh*_config filter=freebsdid
EOF
------------cut------------

########################################################
# Smudge filter setup
# Create file /usr/local/bin/expand_freebsd with following 
# contents and make it executable.

------------cut------------
#!/usr/bin/env ruby
data = STDIN.read
last_info = `git log --pretty=format:"%h %ae %ad" -1`
puts data.gsub('$FreeBSD$', '$FreeBSD: ' + last_info.to_s + '$')
------------cut------------

chmod a+x /usr/local/bin/expand_freebsd 

########################################################
# Adding worktrees
# Add worktree for stable/13, filters will be applied

git worktree add /usr/src_13 stable/13

# To have IDs in main (HEAD) 
# do checkout of filtered files again

cd /usr/src_head
rm etc/master.passwd etc/group 
rm libexec/rc/rc.d/*
git checkout -f -- .

########################################################
# To find more files with $FreeBSD tags which might
# be added to .git/info/attributes file issue command: 

find . -type f -a -not -name '*~' | xargs grep -l '$FreeBSD' 

-- 
Marek Zarychta
--------------NihIw8oFMGKyRecHWZphbckN--