Date: Thu, 16 Feb 2023 06:55:08 +0900 From: Tomoaki AOKI <junchoon@dec.sakura.ne.jp> To: freebsd-current@freebsd.org Subject: Re: 1 year src-patch anniversary! Message-ID: <20230216065508.c980a2f3b70bfb5a58f49223@dec.sakura.ne.jp> In-Reply-To: <202301300254.30U2sm0k061914@dell.no.berklix.net> References: <202301292218.30TMIQmM020883@donotpassgo.dyslexicfish.net> <202301300254.30U2sm0k061914@dell.no.berklix.net>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --Multipart=_Thu__16_Feb_2023_06_55_08_+0900_BlD9jztAT0DirxZp Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Mon, 30 Jan 2023 03:54:48 +0100 "Julian H. Stacey" <jhs@berklix.com> wrote: > Jamie Landeg-Jones wrote: > > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=261657 is a trivial fix > > to an admittedly trivial issue, but it's soon going to hit one year old, > > and has not had any feedback. Not even "this is rubbish. close ticket" > > > > | jamie@catwalk:~ % stat 'so good they named it twice' > > | stat: so good they named it twice: stat: No such file or directory > > > > As such, it's the oldest of my patches to be completely ignored, but then, > > most of my fixes I haven't even submitted, because, what's the point? > > I've instead spent time writing something so the patches are automatically > > aplied to my src tree, and distributed to all my servers. > > I wrote a tool in 1993 I still use > http://www.berklix.com/~jhs/bin/.csh/customise > to apply trees of generic & personal diffs to src & ports, for multi releases > http://www.berklix.com/~jhs/src/ > to apply diffs, where some are submitted, some committed > for some versions, some diffs still needed for older versions, & > some not submitted or committed. > > I guess many, especially non-commiters, maintain trees of uncommited > diffs & there's probably other applicator scripts, numerous > re-inventing of wheels for decades, 'cos send-pr / > https://bugs.freebsd.org/bugzilla/enter_bug.cgi & volunteer unpaid > commiters can't keep up with submissions. > > & non committers can't afford to wait months or years, remembering > what's been seen commited to Release X.Y & what still needs to be > kept to apply to other inc. older releases. Probably lots of > re-invented wheels: trees of diffs & applicator scripts, but to > different standards, not uniformly exportable, not immediately > familiar to & usable by others. > > While retaining the model of "This generic src/ ports/ doc/ tree > has been built from patches blessed by commiters as fit for all" > > FreeBSD hackers(especially non commiters who must wait for commits > to reduce their heap of candidate diffs) would benefit from a unified > set of tools & directory formats to allow individuals to maintain > & export trees of candidate diffs etc to some common standards. > > It wouldnt obviate / replace send-pr & > https://bugs.freebsd.org/bugzilla/enter_bug.cgi & git etc, but would > be an optional normalied convenience, especially beneficial to those > who are Not commiters but who have growing heaps of uncommited patches. > > Maybe a summer of code or other person might look at Jamie's & my > applicator scripts, & diff tree shapes, not for our actual current diffs, > but to design common unified standards to export trees of candidate diffs > that can be applied by one common applicator tool ? > > Hacker who are not committers presumably accumulate an an ever > growing heap of diffs, a burden best normalised & automated. > > > I know it's a volunteer effort, but I've been here 25 years, and whilst > > I could (and should) take on more port-maintainership, any other offers > > of help have fallen on deaf ears. > > > > *shrug* I miss Mark Linimon. > > Cheers, > -- > Julian Stacey http://StolenVotes.UK/jhs/ Arm Ukraine, Zap Putin. Just FYI: Attached is the sh script I've been using for years to apply/revert multiple patches at once, basically for patches uploaded on bugzilla. I know it's far from perfect, but maybe handy for casual users who have any problem with genuine base or ports and needs multiple patches uploaded on bugzilla, phabricator or anywhere else. The attachement itself should have been stripped by the ML server, but maybe you can see it via "Original text of this message" link at the bottom of the mail archive of this message. -- Tomoaki AOKI <junchoon@dec.sakura.ne.jp> --Multipart=_Thu__16_Feb_2023_06_55_08_+0900_BlD9jztAT0DirxZp Content-Type: text/x-sh; name="multipatch.sh" Content-Disposition: attachment; filename="multipatch.sh" Content-Transfer-Encoding: 7bit #!/bin/sh # multipatch: Apply / revert multiple patches at once. # Copyright (C) Mar. 16, 2017 by Tomoaki AOKI all rights reserved. IGNORE_OPT="-p" DRY_OPT="-C" REV_OPT="-R -E" DFL_OPT="-i" OPTION="" TMPFILE=/tmp/multipatch00 __usage() { cat << EOF Usage: multipatch (-fc | -f | -rc | -r | -h) filename multipatch: Apply / revert multiple patches listed in filename. The list file shall list one patchfile per line, lead by ignored depth. Parameters: -r : Revert listed patches. -rc: Revert listed patches (dry run). -f : Apply listed patches. -fc: Apply listed patches (dry run). -h: show this help File format example: 1 ~/LocalPatches/patch1.diff 0 ~/LocalPatches/patch2.patch where src filenames in patch1.diff is like a/sys/kernel/init_sysent.c and src filenames in patch2.patch is like sys/amd64/conf/GENERIC EOF exit 0 } if [ 0 -eq $# ] then __usage fi case "$1" in "-rc") MODE="REVDRY" OPTION="${REV_OPT} ${DRY_OPT}" ;; "-r") MODE="REV" OPTION="${REV_OPT}" ;; "-fc") MODE="FWDDRY" OPTION="${DRY_OPT}" ;; "-f") MODE="FWD" OPTION="" ;; "-c") MODE="DRY" OPTION="${DRY_OPT}" ;; "-h"|"--help") __usage ;; *) __usage ;; esac shift LSTFILE=$1 echo ${LSTFILE} if [ -e ${LSTFILE} ] then if [ "REV" = ${MODE} -o "REVDRY" = ${MODE} ] ; then tail -r ${LSTFILE} > ${TMPFILE} LSTFILE=${TMPFILE} fi cat ${LSTFILE} | while read PATCH do DEPTH=`echo ${PATCH} | cut -w -s -f 1` FILE=`echo ${PATCH} | cut -w -s -f 2` if [ "#" = ${DEPTH} ] ; then continue fi if [ 0 = $((DEPTH)) ] ; then echo patch ${OPTION} ${DFL_OPT} ${FILE} patch ${OPTION} ${DFL_OPT} ${FILE} RESULT=$? if [ 0 != ${RESULT} ] ; then echo ${FILE} doesn\'t apply! exit 1 fi else echo patch ${OPTION} ${IGNORE_OPT}${DEPTH} ${DFL_OPT} ${FILE} patch ${OPTION} ${IGNORE_OPT}${DEPTH} ${DFL_OPT} ${FILE} RESULT=$? if [ 0 != ${RESULT} ] ; then echo ${FILE} doesn\'t apply! exit 1 fi fi done if [ -e ${TMPFILE} ] ; then echo "Cleaning temporary file..." rm ${TMPFILE} fi else echo -n "List file " ; echo -n ${LSTFILE} ; echo "not found." fi --Multipart=_Thu__16_Feb_2023_06_55_08_+0900_BlD9jztAT0DirxZp--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20230216065508.c980a2f3b70bfb5a58f49223>