Greetings,

this patch had a few errors that are fixed with this patch, checking for NOT_MOVED and dont produce an error if its not there and also dont delete packages that are in NOT_MOVED to build them again.

This Patch targets poudriere-devel 3.3.99.20200326_2

--- common.sh.1st       2021-01-27 15:44:15.000000000 +0100
+++ common.sh   2021-02-04 20:30:42.061211000 +0100
@@ -5040,7 +5040,10 @@
        fi

        if shash_get origin-moved "${origin}" new_origin; then
-               if [ "${new_origin%% *}" = "EXPIRED" ]; then
+               # check also against NOT_MOVED from overlays so we dont delete this package if its wanted +               if [ -f ${MASTERMNT}${OVERLAYSDIR}/${OVERLAYS# }/NOT_MOVED ] && (grep -q "${origin}" ${MASTERMNT}${OVERLAYSDIR}/${OVERLAYS# }/NOT_MOVED); then +                       msg_debug "${origin} is found in ${MASTERMNT}${OVERLAYSDIR}/${OVERLAYS# }/NOT_MOVED so dont delete this package."
+               elif [ "${new_origin%% *}" = "EXPIRED" ]; then
                        msg "Deleting ${pkg##*/}: ${COLOR_PORT}${origin}${COLOR_RESET} ${new_origin#EXPIRED }"
                else
                        msg "Deleting ${pkg##*/}: ${COLOR_PORT}${origin}${COLOR_RESET} moved to ${COLOR_PORT}${new_origin}${COLOR_RESET}"
@@ -6815,8 +6818,11 @@
                        continue
                fi
                origin_listed="${origin}"
-               if shash_get origin-moved "${origin}" new_origin; then
-                       if [ "${new_origin%% *}" = "EXPIRED" ]; then
+               # check against the overlay list, skip port if its in there
+               if [ -f ${MASTERMNT}${OVERLAYSDIR}/${OVERLAYS# }/NOT_MOVED ] && (grep -q "${origin}" ${MASTERMNT}${OVERLAYSDIR}/${OVERLAYS# }/NOT_MOVED); then +                       msg_debug "${origin} found in ${MASTERMNT}${OVERLAYSDIR}/${OVERLAYS# }/NOT_MOVED, skipped checking MOVED File of master portstree"
+               elif shash_get origin-moved "${origin}" new_origin; then
+                       if [ "${new_origin%% *}" = "EXPIRED" ] ; then
                                msg_error "MOVED: ${origin} ${new_origin}"
                                set_dep_fatal_error
                                continue
@@ -7085,6 +7091,10 @@
        fi
        [ -f ${MASTERMNT}${PORTSDIR}/MOVED ] || return 0
        msg "Loading MOVED for ${MASTERMNT}${PORTSDIR}"
+       # Respect overlays, ${OVERLAYS} has a leading whitepace
+       if [ -f ${MASTERMNT}${OVERLAYSDIR}/${OVERLAYS# }/NOT_MOVED ]; then
+               msg "Loading NOT_MOVED from overlaydir: ${MASTERMNT}${OVERLAYSDIR}/${OVERLAYS# }"
+       fi
        bset status "loading_moved:"
        awk -f ${AWKPREFIX}/parse_MOVED.awk \
            ${MASTERMNT}${PORTSDIR}/MOVED | \


Kind regards,

Henrik Rosenke

Am 29.01.21 um 17:38 schrieb Henrik Rosenke:
Greetings,

i created a simple patch for this, this may not be the best solution but my tests seems to be successful to get the desired result:

Without NOT_MOVED:

=>> Debug: Reading /usr/local/etc/poudriere.conf
[00:00:00] Creating the reference jail... done
[00:00:02] Mounting system devices for j12p64-default-server
[00:00:02] Mounting ports/packages/distfiles
[00:00:02] Using packages from previously failed build: /home/poudriere/data/packages/j12p64-default-server/.building
[00:00:02] Mounting ccache from: /home/poudriere/ccache
[00:00:02] Mounting packages from: /home/poudriere/data/packages/j12p64-default-server [00:00:02] Copying /var/db/ports from: /usr/local/etc/poudriere.d/j12p64-options
[00:00:02] Appending to make.conf: /usr/local/etc/poudriere.d/make.conf
[00:00:02] Appending to make.conf: /usr/local/etc/poudriere.d/server-make.conf [00:00:02] Appending to make.conf: /usr/local/etc/poudriere.d/default-make.conf [00:00:02] Appending to make.conf: /usr/local/etc/poudriere.d/j12p64-make.conf [00:00:02] Appending to make.conf: /usr/local/etc/poudriere.d/default-server-make.conf [00:00:02] Warning: Blacklisting (from /usr/local/etc/poudriere.d/j12p64-blacklist): comms/chan_capi [00:00:02] Warning: Blacklisting (from /usr/local/etc/poudriere.d/j12p64-blacklist): comms/isdn4bsd-kmod [00:00:02] Warning: Blacklisting (from /usr/local/etc/poudriere.d/j12p64-blacklist): comms/isdn4bsd-utils [00:00:02] Warning: Blacklisting (from /usr/local/etc/poudriere.d/j12p64-blacklist): sysutils/env4801 [00:00:02] Warning: Blacklisting (from /usr/local/etc/poudriere.d/j12p64-blacklist): security/ipsec-tools /etc/resolv.conf -> /home/poudriere/data/.m/j12p64-default-server/ref/etc/resolv.conf
[00:00:02] Starting jail j12p64-default-server
[00:00:02] Logs: /home/poudriere/data/logs/bulk/j12p64-default-server/2021-01-29_11h14m59s [00:00:02] WWW: http://dsspkg.incore/poudriere//build.html?mastername=j12p64-default-server&build=2021-01-29_11h14m59s [00:00:02] Loading MOVED for /home/poudriere/data/.m/j12p64-default-server/ref/usr/ports
[00:00:03] Ports supports: FLAVORS SELECTED_OPTIONS
[00:00:03] Gathering ports metadata
[00:00:03] Error: MOVED: sysutils/sge62 EXPIRED 2013-06-05 Has expired: Ancient and unsupported release [00:00:03] Error: Fatal errors encountered gathering initial ports metadata
[00:00:03] Cleaning up
[00:00:03] Unmounting file systems

With NOT_MOVED:

=== root@dsspkg (pts/1) /home/poudriere/ports/dss_overlay 35 -> cat NOT_MOVED
sysutils/sge62

=== root@dsspkg (pts/1) /home/poudriere/ports/dss_overlay 97 -> poudriere bulk -vv -O dss_overlay -j j12p64 -z server -p default sysutils/sge62
=>> Debug: Reading /usr/local/etc/poudriere.conf
[00:00:00] Creating the reference jail... done
[00:00:02] Mounting system devices for j12p64-default-server
[00:00:02] Mounting ports/packages/distfiles
[00:00:02] Using packages from previously failed build: /home/poudriere/data/packages/j12p64-default-server/.building
[00:00:02] Mounting ccache from: /home/poudriere/ccache
[00:00:02] Mounting packages from: /home/poudriere/data/packages/j12p64-default-server [00:00:02] Copying /var/db/ports from: /usr/local/etc/poudriere.d/j12p64-options
[00:00:02] Appending to make.conf: /usr/local/etc/poudriere.d/make.conf
[00:00:02] Appending to make.conf: /usr/local/etc/poudriere.d/server-make.conf [00:00:02] Appending to make.conf: /usr/local/etc/poudriere.d/default-make.conf [00:00:02] Appending to make.conf: /usr/local/etc/poudriere.d/j12p64-make.conf [00:00:02] Appending to make.conf: /usr/local/etc/poudriere.d/default-server-make.conf [00:00:02] Warning: Blacklisting (from /usr/local/etc/poudriere.d/j12p64-blacklist): comms/chan_capi [00:00:02] Warning: Blacklisting (from /usr/local/etc/poudriere.d/j12p64-blacklist): comms/isdn4bsd-kmod [00:00:02] Warning: Blacklisting (from /usr/local/etc/poudriere.d/j12p64-blacklist): comms/isdn4bsd-utils [00:00:02] Warning: Blacklisting (from /usr/local/etc/poudriere.d/j12p64-blacklist): sysutils/env4801 [00:00:02] Warning: Blacklisting (from /usr/local/etc/poudriere.d/j12p64-blacklist): security/ipsec-tools /etc/resolv.conf -> /home/poudriere/data/.m/j12p64-default-server/ref/etc/resolv.conf
[00:00:02] Starting jail j12p64-default-server
[00:00:03] Logs: /home/poudriere/data/logs/bulk/j12p64-default-server/2021-01-29_17h28m52s [00:00:03] WWW: http://dsspkg.incore/poudriere//build.html?mastername=j12p64-default-server&build=2021-01-29_17h28m52s [00:00:03] Loading MOVED for /home/poudriere/data/.m/j12p64-default-server/ref/usr/ports [00:00:03] Loading NOT_MOVED from overlaydir: /home/poudriere/data/.m/j12p64-default-server/ref/overlays/dss_overlay
[00:00:03] Ports supports: FLAVORS SELECTED_OPTIONS
[00:00:03] Gathering ports metadata
[00:00:03] Debug: sysutils/sge62 found in /home/poudriere/data/.m/j12p64-default-server/ref/overlays/dss_overlay/NOT_MOVED, skipped checking MOVED File of master portstree
[00:00:03] Debug: queueing sysutils/sge62 into gatherqueue (rdep=listed)
[00:00:03] Debug: Processing gatherqueue
[00:00:03] Warning: (sysutils/sge62): Debug: gather_port_vars_port (sysutils/sge62): LOOKUP [00:00:03] Warning: (sysutils/sge62): Debug: deps_fetch_vars: discovered sysutils/sge62 is sge-6.2.2.1_6
[00:00:03] Warning: (sysutils/sge62): Debug: WILL BUILD sysutils/sge62

Patch leading to this:

--- /usr/local/share/poudriere/common.sh.1st    2021-01-27 15:44:15.000000000 +0100 +++ /usr/local/share/poudriere/common.sh        2021-01-29 17:27:14.810441000 +0100
@@ -6815,8 +6815,11 @@
                        continue
                fi
                origin_listed="${origin}"
-               if shash_get origin-moved "${origin}" new_origin; then
-                       if [ "${new_origin%% *}" = "EXPIRED" ]; then
+               # check against the overlay list, skip port if its in there +               if (grep -q "${origin}" ${MASTERMNT}${OVERLAYSDIR}/${OVERLAYS# }/NOT_MOVED); then +                       msg_debug "${origin} found in ${MASTERMNT}${OVERLAYSDIR}/${OVERLAYS# }/NOT_MOVED, skipped checking MOVED File of master portstree"
+               elif shash_get origin-moved "${origin}" new_origin; then
+                       if [ "${new_origin%% *}" = "EXPIRED" ] ; then
                                msg_error "MOVED: ${origin} ${new_origin}"
                                set_dep_fatal_error
                                continue
@@ -7085,6 +7088,10 @@
        fi
        [ -f ${MASTERMNT}${PORTSDIR}/MOVED ] || return 0
        msg "Loading MOVED for ${MASTERMNT}${PORTSDIR}"
+       # Respect overlays, ${OVERLAYS} has a leading whitepace
+       if [ -f ${MASTERMNT}${OVERLAYSDIR}/${OVERLAYS# }/NOT_MOVED ]; then +               msg "Loading NOT_MOVED from overlaydir: ${MASTERMNT}${OVERLAYSDIR}/${OVERLAYS# }"
+       fi
        bset status "loading_moved:"
        awk -f ${AWKPREFIX}/parse_MOVED.awk \
            ${MASTERMNT}${PORTSDIR}/MOVED | \

Maybe someone else could test this, seems to work for me.


Kind regards,

Henrik Rosenke


Am 28.01.21 um 21:56 schrieb Henrik Rosenke:

Am 28.01.21 um 21:14 schrieb Miroslav Lachman:
On 28/01/2021 17:47, Henrik Rosenke wrote:
I tried this with a patched MOVED file, copied from the master portstree, deleted the entry and tried to build but this File seems to be ignored. I dont really understand where the MOVED file is handled, it seems to be bsd.port.subdir.mk but i am not sure.

MOVED is handled by bsd.port.subdir.mk but overlays do not account with it. Overlays are handled on more places

i thought this too but it seems poudriere is canceled before this, i even tried to move the bsd.port.subdir.mk and commented out the function load_moved in the common.sh of poudriere and can start a build. Correct me if iam wrong but it seems that the common.sh from poudriere needs to be patched to handle this rather than the Mk files itself. I added set -x in the common.sh to get a better understanding what is happening and it seems that shash_set sucks in the MOVED file and this is checked later against the ports we want to build:

+ shash_set origin-moved sysutils/sge62 'EXPIRED 2013-06-05 Has expired: Ancient and unsupported release'

later:

+ originspec_decode sysutils/sge62 origin '' flavor
+ local -
+ set +x -f
+ [ -n '' ]
+ origin_listed=sysutils/sge62
+ shash_get origin-moved sysutils/sge62 new_origin
+ local -
+ set +x
+ [ EXPIRED '=' EXPIRED ]
+ msg_error 'MOVED: sysutils/sge62 EXPIRED 2013-06-05 Has expired: Ancient and unsupported release'
+ local -
+ set +x
[00:00:07] Error: MOVED: sysutils/sge62 EXPIRED 2013-06-05 Has expired: Ancient and unsupported release

Kind regards,

Henrik Rosenke


Scripts/do-depends.sh
Scripts/depends-list.sh

Next is bsd.port.mk:

.if defined(USE_LOCAL_MK)
.include "${PORTSDIR}/Mk/bsd.local.mk"
.endif
.for odir in ${OVERLAYS}
.sinclude "${odir}/Mk/bsd.overlay.mk"
.endfor

But there is no bsd.overlay.mk and I don't know what should be in it (file in the overlay ports tree)

The AWK code in bsd.port.subdir.mk can be changed to use MOVED from overlay if it exists insead of the default one.

I think the best way to handle this would be a NOT_MOVED file in the overlay portstree with the ports to ignore from the MOVED file with entries like "sysutils/sge62".

This can be possible too. NOT_MOVED can be used as additional INDEXFILE

Or maybe start with PORTSEARCH_MOVED=0 (not tried yet)

Kind regards
Miroslav Lachman
_______________________________________________
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
_______________________________________________
freebsd-ports@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to