From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7194774660571987968 X-Received: by 2002:a63:4c5:0:b0:4c2:95ad:fd77 with SMTP id 188-20020a6304c5000000b004c295adfd77mr2876667pge.67.1675685951423; Mon, 06 Feb 2023 04:19:11 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:902:b613:b0:192:62df:a3e7 with SMTP id b19-20020a170902b61300b0019262dfa3e7ls12924507pls.9.-pod-prod-gmail; Mon, 06 Feb 2023 04:19:10 -0800 (PST) X-Google-Smtp-Source: AK7set+MklEHC84qmwrvz1eT9SlZcxcvAdTaHlOQ9z+mxzFdCCOu338xb+D8rAn9cBP26DAPD63z X-Received: by 2002:a17:90b:4b8e:b0:22c:9078:181 with SMTP id lr14-20020a17090b4b8e00b0022c90780181mr21701278pjb.33.1675685950518; Mon, 06 Feb 2023 04:19:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675685950; cv=none; d=google.com; s=arc-20160816; b=W7OHeLyfqKxfqrJFkIJdeKpnH7w1O9neReMYrnOhmkDUrMAeUffbAkNd7dS66UPRzS gUCSxKDoYo5DxMVsJRXvJwOnuzreeCajMFcBEmuymHVZrwyA/GfbMGvjdTZi8H2+1TUw uo1FQmtn3raCdqbeZUT1QBMKB5kO4no85P3JEQOQ7Fr01L0H8YAESSM77pSRxp0DSyLo WiyO5mjTPSTgByGRmyL6RW0nRLMqy6lOiO5Mbk3nKWnhA0JVsDWHUXd+g+zrR5S90/tK 98KqOdnYjNjTzrGX8TiNSdENS3NrvzjZ/MgMifFrBXDKbVl8eZUvlMitU/Qc7L+HZ9Xl 6wCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from; bh=5MTM6K98tHmm/chxm5gI8qXpTKFYFa7nw0SyqKI7yCo=; b=va1IHymMNIltu8/Pj7hHGl0BgCbsr6CAR1mSBVNtw3v6nCY8ib+b0WFdvIN9utcffB qO5qP/bgmCoMNXVR3ljoGlvFEC79a+uHo/hztdc25bcH15udWfAHNlVE25p2GebKPZng QQI2jUqHwEIWqTGQCpnnisR7vSbaYU6RRWf1yQGMQCvdrLrre49h4kRtRLUaOmNNiSXQ yqmv/UTRP50czqvdkwsltqtB4Cr/vv/DJtQpnCqy/YNhl4dD3tgEC8vKRnfZGSeHFjVK shjp70hsIk2bA+LoT8/NkSr1eqRTl8A2XQDVEHwAPZVz5WfW7LdjfBG489D7sGqmlfU2 W7uw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id v185-20020a632fc2000000b004d9088c5b94si652771pgv.5.2023.02.06.04.19.09 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 06 Feb 2023 04:19:10 -0800 (PST) Received-SPF: pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of ubely@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=ubely@ilbers.de Received: from baighyz.m.ilbers.de (host-80-81-17-52.static.customer.m-online.net [80.81.17.52]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 316CJ7Wt005144 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 6 Feb 2023 13:19:07 +0100 From: Uladzimir Bely To: isar-users@googlegroups.com Subject: [PATCH v2] deb-dl-dir: Fallback to copying when import-export Date: Mon, 6 Feb 2023 13:19:07 +0100 Message-Id: <20230206121907.25629-1-ubely@ilbers.de> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: nA0dqHGQLrIh By default, hardlinks are used when doing DL_DIR import and export. This fails if DL_DIR's filesystem differs from TMPDIR's one. Fallback to file copying (with lower performance and huge disk usage) in this case. Signed-off-by: Uladzimir Bely --- meta/classes/deb-dl-dir.bbclass | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) Changes since v1: - Try create handrlink first and then copy if failed. It should better handle hardlink issues that may happen even on the same partition. diff --git a/meta/classes/deb-dl-dir.bbclass b/meta/classes/deb-dl-dir.bbclass index 7db25251..4d5d4c9a 100644 --- a/meta/classes/deb-dl-dir.bbclass +++ b/meta/classes/deb-dl-dir.bbclass @@ -85,8 +85,11 @@ deb_dl_dir_import() { set -e printenv | grep -q BB_VERBOSE_LOGS && set -x - sudo find "${pc}" -type f -iname "*\.deb" -exec \ - ln -Pf -t "${rootfs}"/var/cache/apt/archives/ {} + + find "${pc}" -type f -iname "*\.deb" |\ + while read p; do + sudo ln -Pf -t "${rootfs}"/var/cache/apt/archives/ "$p" 2>/dev/null || + sudo cp -n --no-preserve=owner -t "${rootfs}var/cache/apt/archives/" "$p" + done ' } @@ -109,7 +112,8 @@ deb_dl_dir_export() { if [ -n "$package" ]; then cmp --silent "$package" "$p" && continue fi - sudo ln -Pf "${p}" "${pc}" + sudo ln -Pf "${p}" "${pc}" 2>/dev/null || + sudo cp -n "${p}" "${pc}" done sudo chown -R $(id -u):$(id -g) "${pc}" ' -- 2.20.1