Date: Mon, 4 May 2020 10:49:34 -0700 From: Bryan Drewery <bdrewery@FreeBSD.org> To: Mathieu Arnold <mat@FreeBSD.org>, ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@FreeBSD.ORG, "Conrad E. Meyer" <cem@FreeBSD.org> Subject: Re: svn commit: r533459 - head/Mk/Scripts Message-ID: <276aef88-4619-b4b7-ee92-44999b5c787d@FreeBSD.org> In-Reply-To: <202004301448.03UEmMwc053196@repo.freebsd.org> References: <202004301448.03UEmMwc053196@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --csJl1E6snwJ41j7qrLNBFsOIREdBenej6 Content-Type: multipart/mixed; boundary="ALemydNKtFqEhFoG523J4pyptM04O2Wg5"; protected-headers="v1" From: Bryan Drewery <bdrewery@FreeBSD.org> To: Mathieu Arnold <mat@FreeBSD.org>, ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@FreeBSD.ORG, "Conrad E. Meyer" <cem@FreeBSD.org> Message-ID: <276aef88-4619-b4b7-ee92-44999b5c787d@FreeBSD.org> Subject: Re: svn commit: r533459 - head/Mk/Scripts References: <202004301448.03UEmMwc053196@repo.freebsd.org> In-Reply-To: <202004301448.03UEmMwc053196@repo.freebsd.org> --ALemydNKtFqEhFoG523J4pyptM04O2Wg5 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 4/30/2020 7:48 AM, Mathieu Arnold wrote: > Author: mat > Date: Thu Apr 30 14:48:22 2020 > New Revision: 533459 > URL: https://svnweb.freebsd.org/changeset/ports/533459 >=20 > Log: > When one patch fails, continue with appling patches. > =20 > This makes the process of make patch, fix fallout, make makepatch muc= h > easier as only one iteration is required. > =20 > While there, refactor things around, and streamline messages passed > between functions. > =20 > PR: 244626 > Reported by: cem >=20 Will this fail between stages? If a files/patch-* patch fails it should not move on to extra patches as then makepatch / diffing will be wrong. Even patch-* can lead to being wrong when considering local (not in ports tree) patches. I don't think this is good default behavior. > Modified: > head/Mk/Scripts/do-patch.sh (contents, props changed) >=20 > Modified: head/Mk/Scripts/do-patch.sh > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/Mk/Scripts/do-patch.sh Thu Apr 30 14:47:59 2020 (r533458) > +++ head/Mk/Scripts/do-patch.sh Thu Apr 30 14:48:22 2020 (r533459) > @@ -17,6 +17,28 @@ validate_env dp_BZCAT dp_CAT dp_DISTDIR dp_ECHO_MSG = dp > =20 > set -u > =20 > +has_failed=3D"" > + > +cat_file() { > + case "$1" in > + *.Z|*.gz) > + ${dp_GZCAT} "$1" > + ;; > + *.bz2) > + ${dp_BZCAT} "$1" > + ;; > + *.xz) > + ${dp_XZCAT} "$1" > + ;; > + *.zip) > + ${dp_UNZIP_NATIVE_CMD} -p "$1" > + ;; > + *) > + ${dp_CAT} "$1" > + ;; > + esac > +} > + > apply_one_patch() { > local file=3D"$1" > local msg=3D"$2" > @@ -31,26 +53,13 @@ apply_one_patch() { > esac > =20 > if [ -n "${msg}" ]; then > - ${dp_ECHO_MSG} "=3D=3D=3D> ${msg} ${file}${patch_strip:+ with ${pat= ch_strip}}" > + ${dp_ECHO_MSG} "=3D=3D=3D> Applying ${msg} ${file}${patch_strip:+ w= ith ${patch_strip}}" > fi > =20 > - case "${file}" in > - *.Z|*.gz) > - ${dp_GZCAT} "${file}" > - ;; > - *.bz2) > - ${dp_BZCAT} "${file}" > - ;; > - *.xz) > - ${dp_XZCAT} "${file}" > - ;; > - *.zip) > - ${dp_UNZIP_NATIVE_CMD} -p "${file}" > - ;; > - *) > - ${dp_CAT} "${file}" > - ;; > - esac | do_patch "$@" ${patch_strip} > + if ! cat_file "$file" | do_patch "$@" ${patch_strip}; then > + ${dp_ECHO_MSG} "=3D=3D=3D> FAILED Applying ${msg} ${file}${patch_st= rip:+ with ${patch_strip}}" > + has_failed=3D1 > + fi > } > =20 > do_patch() { > @@ -61,6 +70,7 @@ patch_from_directory() { > local dir=3D"$1" > local msg=3D"$2" > local patches_applied=3D"" > + local patches_failed=3D"" > =20 > if [ -d "${dir}" ]; then > cd "${dir}" > @@ -73,24 +83,29 @@ patch_from_directory() { > for i in patch-*; do > case ${i} in > *.orig|*.rej|*~|*,v) > - ${dp_ECHO_MSG} "=3D=3D=3D> Ignoring patchfile ${i}" > + ${dp_ECHO_MSG} "=3D=3D=3D=3D> IGNORING patchfile ${i}" > ;; > *) > if [ -n "${dp_PATCH_DEBUG_TMP}" ]; then > - ${dp_ECHO_MSG} "=3D=3D=3D> Applying ${msg} patch ${i}" > + ${dp_ECHO_MSG} "=3D=3D=3D=3D> Applying ${msg} patch ${i}" > fi > - if do_patch ${dp_PATCH_ARGS} < ${i}; then > + if cat_file "$i" | do_patch ${dp_PATCH_ARGS}; then > patches_applied=3D"${patches_applied} ${i}" > else > - ${dp_ECHO_MSG} "=3D> ${msg} patch ${i} failed to apply cleanly.= " > - if [ -n "${patches_applied}" -a "${dp_PATCH_SILENT}" !=3D "yes"= ]; then > - ${dp_ECHO_MSG} "=3D> Patch(es) ${patches_applied} applied clea= nly." > - fi > - false > + ${dp_ECHO_MSG} "=3D=3D=3D=3D> FAILED Applying ${msg} patch ${i}= " > + patches_failed=3D"${patches_failed} ${i}" > fi > ;; > esac > done > + > + if [ -n "${patches_applied}" -a "${dp_PATCH_SILENT}" !=3D "yes" ]; = then > + ${dp_ECHO_MSG} "=3D=3D=3D> Cleanly applied ${msg} patch(es) ${patc= hes_applied}" > + fi > + if [ -n "${patches_failed}" -a "${dp_PATCH_SILENT}" !=3D "yes" ]; t= hen > + ${dp_ECHO_MSG} "=3D=3D=3D> FAILED to apply cleanly ${msg} patch(es= ) ${patches_failed}" > + has_failed=3D1 > + fi > fi > fi > } > @@ -100,7 +115,7 @@ if [ -n "${dp_PATCHFILES}" ]; then > cd "${dp_DISTDIR}" > for i in ${dp_PATCHFILES}; do > apply_one_patch "${i}" \ > - "${dp_PATCH_DEBUG_TMP:+ Applying distribution patch}" \ > + "${dp_PATCH_DEBUG_TMP:+ distribution patch}" \ > ${dp_PATCH_DIST_ARGS} > done > fi > @@ -112,7 +127,7 @@ if [ -n "${dp_EXTRA_PATCHES}" ]; then > "extra patch" > else > apply_one_patch "${i}" \ > - "Applying extra patch" \ > + "extra patch" \ > ${dp_PATCH_ARGS} > fi > done > @@ -122,5 +137,11 @@ patch_from_directory "${dp_PATCHDIR}" "${dp_OPSYS}= " > =20 > if [ -n "${dp_EXTRA_PATCH_TREE}" ]; then > patch_from_directory "${dp_EXTRA_PATCH_TREE}/${dp_PKGORIGIN}" "local"= > +fi > + > +if [ -n "$has_failed" ]; then > + ${dp_ECHO_MSG} "=3D=3D> SOME PATCHES FAILED TO APPLY CLEANLY." > + ${dp_ECHO_MSG} "=3D=3D> Look for FAILED messages above." > + false > fi > =20 >=20 --=20 Regards, Bryan Drewery --ALemydNKtFqEhFoG523J4pyptM04O2Wg5-- --csJl1E6snwJ41j7qrLNBFsOIREdBenej6 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQGTBAEBCgB9FiEE+Rc8ssOq6npcih8JNddxu25Gl88FAl6wVbRfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEY5 MTczQ0IyQzNBQUVBN0E1QzhBMUYwOTM1RDc3MUJCNkU0Njk3Q0YACgkQNddxu25G l897MQf9EI/SmOjLPFhBVYNOb6B41tphz2qe6ig7zF1pDASrSCxl7f7/vY3GyD59 jhSVCkfBQlTy2Pzk73gUtWTVuacNZm5FJs8wOey6gMh6rIV7v+6JNYcJzIpR/k4M MK3k35YC4UD+0vj7+erjdJCa4xwNhy5Y8ePAN4MPv7LA2CO7AsAV5U7oWRep4Szr HJg5ShNp1bgsOe+z4Yg7Zxa+cON4qcoiEiDfI2XHFCa10E7jODpTVpI9cHWxkaHF bC8KKxoEFqF9D9WQj4zRGw4VQ9u8oBbxo1eqfUeb//0Z+Teu8GNEU5ot5h/ZDLhp 4+dbOBuii5K1oQw7GkomtM6s3zFJXw== =+riL -----END PGP SIGNATURE----- --csJl1E6snwJ41j7qrLNBFsOIREdBenej6--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?276aef88-4619-b4b7-ee92-44999b5c787d>