From f9446ae2bc47bf18d64675404c92a8db05e5e432 Mon Sep 17 00:00:00 2001 From: Xavier Beaudouin Date: Mon, 26 Aug 2024 10:50:10 +0200 Subject: [PATCH] Don't need this patch anymore --- ...af7ce853b83eb721906d97b737eb0c86ebf0d.diff | 229 ------------------ 1 file changed, 229 deletions(-) delete mode 100644 ports-mgmt/poudriere-devel/094af7ce853b83eb721906d97b737eb0c86ebf0d.diff diff --git a/ports-mgmt/poudriere-devel/094af7ce853b83eb721906d97b737eb0c86ebf0d.diff b/ports-mgmt/poudriere-devel/094af7ce853b83eb721906d97b737eb0c86ebf0d.diff deleted file mode 100644 index 8bd2ce4..0000000 --- a/ports-mgmt/poudriere-devel/094af7ce853b83eb721906d97b737eb0c86ebf0d.diff +++ /dev/null @@ -1,229 +0,0 @@ -diff --git a/src/etc/poudriere.conf.sample b/src/etc/poudriere.conf.sample -index c0ba896d927ca1700cc78e57cb953deec43b5484..337eb1827904daba5bf5df5790d005f6e7fa3de9 100644 ---- a/src/etc/poudriere.conf.sample -+++ b/src/etc/poudriere.conf.sample -@@ -383,3 +383,16 @@ DISTFILES_CACHE=/usr/ports/distfiles - # be fetched. - # Default: everything - #PACKAGE_FETCH_WHITELIST="gcc* rust llvm*" -+ -+# Have pkg create the repo such that each package is named with the short hash -+# of its file contents in the package filename, with symlinks to the traditional -+# package filenames. The packagesite.yaml file will point to the hashed version -+# of these files. By using hashed pkg filenames, this allows users to lazily -+# cache packages without conflicting with the existing packages, or serving stale -+# packages from a cache. Once the packages are synced the much -+# smaller meta files can then be synced. Allowing a near atomic update of the repo. -+# On caching CDNs this means a need to purge 2-5 files instead of all pkgs that -+# have been updated. -+# The symlinks are only required for the local poudriere for resovling dependencies, -+# they do not need to be uploaded to the CDN. -+#PKG_HASH="no" -diff --git a/src/man/poudriere-bulk.8 b/src/man/poudriere-bulk.8 -index 81cf698eeb6670048628d83e819fd84ad433be93..dac4eb3211a9fd0afe451779449693acade24430 100644 ---- a/src/man/poudriere-bulk.8 -+++ b/src/man/poudriere-bulk.8 -@@ -28,7 +28,7 @@ - .\" - .\" Note: The date here should be updated whenever a non-trivial - .\" change is made to the manual page. --.Dd July 5, 2022 -+.Dd September 26, 2022 - .Dt POUDRIERE-BULK 8 - .Os - .Sh NAME -@@ -38,7 +38,7 @@ - .Nm - .Fl a - .Fl j Ar name --.Op Fl CcFIikNnRrSTtvw -+.Op Fl CcFHIikNnRrSTtvw - .Op Fl B Ar name - .Op Fl b Ar branch - .Op Fl J Ar maxjobs Ns Op Cm \&: Ns Ar prebuildmaxjobs -@@ -48,7 +48,7 @@ - .Nm - .Fl f Ar file Op Fl f Ar file2 Ar ... - .Fl j Ar name --.Op Fl CcFIikNnRrSTtvw -+.Op Fl CcFHIikNnRrSTtvw - .Op Fl B Ar name - .Op Fl b Ar branch - .Op Fl J Ar maxjobs Ns Op Cm \&: Ns Ar prebuildmaxjobs -@@ -57,7 +57,7 @@ - .Op Fl z Ar set - .Nm - .Fl j Ar name --.Op Fl CcFIikNnRrSTtvw -+.Op Fl CcFHIikNnRrSTtvw - .Op Fl B Ar name - .Op Fl b Ar branch - .Op Fl J Ar maxjobs Ns Op Cm \&: Ns Ar prebuildmaxjobs -@@ -232,6 +232,8 @@ Fetch only from the original - Skip - .Fx - mirrors. -+.It Fl H -+Create a repository where the package filenames contain the short hash of the contents. - .It Fl I - Advanced interactive mode. - .Pp -diff --git a/src/share/poudriere/bulk.sh b/src/share/poudriere/bulk.sh -index 3507ceb3548910c8aa688148614f1eadf72dd695..865d40677e5184c1bf5274d7cc3ea6f876c15491 100755 ---- a/src/share/poudriere/bulk.sh -+++ b/src/share/poudriere/bulk.sh -@@ -47,6 +47,8 @@ Options: - -f file. Implies -c for -a. - -c -- Clean all the previously built binary packages and logs. - -F -- Only fetch from original master_site (skip FreeBSD mirrors) -+ -H -- Create a repository where the package filenames contain the -+ short hash of the contents. - -I -- Advanced Interactive mode. Leaves jail running with ports - installed after test. - -i -- Interactive mode. Enter jail for interactive testing and -@@ -97,7 +99,7 @@ if [ $# -eq 0 ]; then - usage - fi - --while getopts "ab:B:CcFf:iIj:J:knNO:p:RrSTtvwz:" FLAG; do -+while getopts "ab:B:CcFf:HiIj:J:knNO:p:RrSTtvwz:" FLAG; do - case "${FLAG}" in - a) - ALL=1 -@@ -126,6 +128,9 @@ while getopts "ab:B:CcFf:iIj:J:knNO:p:RrSTtvwz:" FLAG; do - fi - LISTPKGS="${LISTPKGS:+${LISTPKGS} }${OPTARG}" - ;; -+ H) -+ PKG_REPO_FLAGS="${PKG_REPO_FLAGS} --hash --symlink" -+ ;; - I) - INTERACTIVE_MODE=2 - ;; -diff --git a/src/share/poudriere/common.sh b/src/share/poudriere/common.sh -index a4907362c76000bc81fb8b7dbd61918fb7426538..841e2aefdb7981212fe44af5977f8dd0b07a6369 100755 ---- a/src/share/poudriere/common.sh -+++ b/src/share/poudriere/common.sh -@@ -9468,12 +9468,16 @@ clean_restricted() { - } - - build_repo() { -- local origin pkg_repo_list_files -+ local origin pkg_repo_list_files hashcmd - - msg "Creating pkg repository" - if [ ${DRY_RUN} -eq 1 ]; then - return 0 - fi -+ if [ ${PKG_HASH} != "no" ]; then -+ hashcmd="--hash --symlink" -+ PKG_REPO_FLAGS="${PKG_REPO_FLAGS:+${PKG_REPO_FLAGS} }$hashcmd" -+ fi - bset status "pkgrepo:" - ensure_pkg_installed force_extract || \ - err 1 "Unable to extract pkg." -@@ -9493,12 +9497,20 @@ build_repo() { - install -m 0400 "${PKG_REPO_META_FILE}" \ - "${MASTERMNT:?}/tmp/pkgmeta" - fi -+ -+ # Remount rw -+ # mount_nullfs does not support mount -u -+ umount ${UMOUNT_NONBUSY} ${MASTERMNT}/packages || \ -+ umount -f ${MASTERMNT}/packages -+ mount_packages -+ - mkdir -p ${MASTERMNT}/tmp/packages - if [ -n "${PKG_REPO_SIGNING_KEY}" ]; then - msg "Signing repository with key: ${PKG_REPO_SIGNING_KEY}" - install -m 0400 "${PKG_REPO_SIGNING_KEY}" \ - "${MASTERMNT:?}/tmp/repo.key" - injail ${PKG_BIN:?} repo \ -+ ${PKG_REPO_FLAGS} \ - ${pkg_repo_list_files:+"${pkg_repo_list_files}"} \ - -o /tmp/packages \ - ${PKG_META} \ -@@ -9515,6 +9527,7 @@ build_repo() { - # using SSH with DNSSEC as older hosts don't support - # it. - ${MASTERMNT:?}${PKG_BIN:?} repo \ -+ ${PKG_REPO_FLAGS} \ - ${pkg_repo_list_files:+"${pkg_repo_list_files}"} \ - -o "${MASTERMNT:?}/tmp/packages" ${PKG_META_MASTERMNT} \ - "${MASTERMNT:?}/packages" \ -@@ -9527,6 +9540,7 @@ build_repo() { - ;; - esac - JNETNAME="n" injail ${PKG_BIN:?} repo \ -+ ${PKG_REPO_FLAGS} \ - ${pkg_repo_list_files:+"${pkg_repo_list_files}"} \ - -o /tmp/packages ${PKG_META} /packages \ - ${SIGNING_COMMAND:+signing_command: ${SIGNING_COMMAND}} || -@@ -9542,6 +9556,11 @@ build_repo() { - sign_pkg pubkey "${PACKAGES:?}/Latest/pkg.${PKG_EXT}" - fi - fi -+ -+ # Remount ro -+ umount ${UMOUNT_NONBUSY} ${MASTERMNT}/packages || \ -+ umount -f ${MASTERMNT}/packages -+ mount_packages -o ro - } - - calculate_size_in_mb() { -@@ -10109,6 +10128,7 @@ esac - : ${FLAVOR_DEFAULT_ALL:=no} - : ${NULLFS_PATHS:="/rescue /usr/share /usr/tests /usr/lib32"} - : ${PACKAGE_FETCH_URL:="pkg+http://pkg.FreeBSD.org/\${ABI}"} -+: ${PKG_HASH:=no} - - : ${POUDRIERE_TMPDIR:=$(command mktemp -dt poudriere)} - : ${SHASH_VAR_PATH_DEFAULT:=${POUDRIERE_TMPDIR}} -diff --git a/src/share/poudriere/include/pkg.sh b/src/share/poudriere/include/pkg.sh -index d4821400cb2ad20a6994a5d9145604f8081a98f6..360518520d6f1067531380ea9040ec2d1d4c1f33 100644 ---- a/src/share/poudriere/include/pkg.sh -+++ b/src/share/poudriere/include/pkg.sh -@@ -400,6 +400,10 @@ delete_pkg() { - local pkg="$1" - - clear_pkg_cache "${pkg}" -+ -+ # If ${pkg} is a symlink, delete the target as well -+ [ -L "${pkg}" ] && unlink $(realpath "${pkg}") -+ - # Delete the package and the depsfile since this package is being deleted, - # which will force it to be recreated - unlink "${pkg}" -@@ -417,6 +421,8 @@ delete_pkg_xargs() { - # Delete the package and the depsfile since this package is being deleted, - # which will force it to be recreated - { -+ # If ${pkg} is a symlink, delete the target as well -+ [ -L "${pkg}" ] && echo $(realpath "${pkg}") - echo "${pkg}" - echo "${pkg_cache_dir}" - } >> "${listfile}" -diff --git a/src/share/poudriere/pkgclean.sh b/src/share/poudriere/pkgclean.sh -old mode 100755 -new mode 100644 -index fafc3c0a547335ddee32033bf9d0700ccf556fca..5458d3d04dd2e05727c1c79ce0ba0d73d3946665 ---- a/src/share/poudriere/pkgclean.sh -+++ b/src/share/poudriere/pkgclean.sh -@@ -289,6 +289,8 @@ check_should_delete_pkg() { - *".${PKG_EXT}") - if should_delete "${file}"; then - echo "${file}" >> "${BADFILES_LIST:?}" -+ # If the pkg is a symlink to a hashed package, remove the hashed version as well -+ [ -L "${file}" ] && echo "$(realpath ${file})" >> ${BADFILES_LIST} - fi - ;; - *.txz) -@@ -305,6 +307,8 @@ check_should_delete_pkg() { - *) - msg_verbose "Found incorrect format file: ${file}" - echo "${file}" >> "${BADFILES_LIST:?}" -+ # If the pkg is a symlink to a hashed package, remove the hashed version as well -+ [ -L "${file}" ] && echo "$(realpath ${file})" >> ${BADFILES_LIST} - ;; - esac - }