From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Fri, 04 Sep 2026 09:56:40 +0200 X-Sieve: CMU Sieve 2.4 Received: from mail-lf1-f58.google.com (mail-lf1-f58.google.com [209.85.167.58]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 6847uTJZ004829 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 4 Sep 2026 09:56:35 +0200 Received: by mail-lf1-f58.google.com with SMTP id 2adb3069b0e04-5b4b020612asf455676e87.0 for ; Fri, 04 Sep 2026 00:56:30 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1788508584; cv=pass; d=google.com; s=arc-20260327; b=WbInNIDnfrGgWa3/ZLbDrDMgGzXVEa8Hrz8KWWnELpcODxPFElv6/jmG9ni6K+iysZ i4O72UZ+XKov9FvLp9XdSXMpawXOu+QJzgp8EIfFE2nYm9UWooTcjkYIN21XV03asaHq NeFTjTXkE3OFvymAEf5OZHLTgJaqF6AvmllOO1yRBaBzsitcZxzByCAWxsNO+OLN89Ss MKiU5QiXuS8mG6Yy5dKoc8PfO4LOYmHpl0sGRSwx6Z4AOKrWRZMYh/cSlYLodJ0Dokr+ akQnKhoDkrx1NIPNIULaByVpOlT05mo4ho1u0VS0AD5RQ2MKYGYAGyjuXcK7ROAZGcfJ Qmmw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=LNGWt5K3a9kMYyMESppD79RSDI59RISdLWIOLBRzhYU=; fh=FuEwObUMtobwveG+/vXhTZEAjYRcuKQgqG9Q2Wu41pk=; b=ou6NJ4eJfMW6afnfTYfQamClN3N00WL6hI8y2gh8m1LJr7xTXn3lNMtVbGuUSjcH/S mzIc/47pwsfsv0FP/xxtPMpyxARf+zJoLUTZ49+LDHrCHYDgix/mB2Hoo+xBvgpKchOz uoZRhWHDk52EZSqAqA61QZ+mLhvpTOG4Fto1x1d+hpvMMRNSpXXXC4giHBKL7+GWHZeh UTNTtBua53+2k8VygphhHuT7PVqNnp0yPgaSxe1dS3Vo9bMWSKRni/YnZkGW1HPZssxk 9g3wXS5p3p/xi1R21Jad4tYqhmsQfW9540JDMMr5fR0pLu6nL0lKm6bEAjekhocy/zSM +ylA==; darn=ilbers.de ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of akarpovich@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=akarpovich@ilbers.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20251104; t=1788508584; x=1789113384; darn=ilbers.de; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:content-type :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:sender :from:to:cc:subject:date:message-id:reply-to:content-type; bh=LNGWt5K3a9kMYyMESppD79RSDI59RISdLWIOLBRzhYU=; b=HcjgBJv/cAkzJ5BIT7oFdemS15TPRl1Dkv46b38f5QqY60tkNPUQq5FBd5SXLKV7qn FwA9lnpejacrpWP7d6ZVXCV7S6kbYHL0D7ksmg1pBMnT9REriPI/9DPi2Vv5UWGXNwqq MgFjZA3Al2pGVeuvJC+Ve8/dK+eLCGkJF1vIBF3B0RMYb4OnfE2twCkWKa68o+6vkt54 vKXzRB+j8GVw/SnZqlvdUigjbYoiZHuequ2YUmI9y5lU4nGW/1atyizPpQFb1H+zbHOF tOsDXm+6rm2Uk/ks6M78om0s1Ul9hb8ujWdty8sPGP0dcyz7rfVldoGoPt+faY62wM5r WU1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788508584; x=1789113384; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :content-type:x-original-authentication-results:x-original-sender :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:sender:from:to:cc:subject:date :message-id:reply-to:content-type; bh=LNGWt5K3a9kMYyMESppD79RSDI59RISdLWIOLBRzhYU=; b=K3JQvy125Irq7j3lM1GypEBCVBaoVk3q7toYm17RUay7W2Vv2Q/Y2fTHZrPDzud/SL xY9dNb7Rfuos9o5Q33dj0Sr4cW2IPMRSFHYN1QzB80VomP4+ymsnDrD5pJr326eLAM/A RzRiPp2ZRaTdAnJbMdDKKdjQ1LIPB9X8yfDvkCnbfA9/72XMxxtAA8kV72lKuPodp7Pf qsJ+LjvqCrFNMFxADpx2TF69ZZZDC7rDde3vv2Mw1lUB+1EGj3wVuTVYUtUHGGm9r8eB MrlkUpVmzTb2ArNP4O1su9MbMkw5Z66UrFTAaYUVz72053eSCWGCcMmWKoTaXfb556kx Z8mw== Sender: isar-users@googlegroups.com X-Forwarded-Encrypted: i=2; AKwUvByuvYGeXTHFp+2xzn/8A7i/lbtE7fDOreJ6sMXbe9p2Tr12UeFXHe7DaI3GU5G2UyIjo+vZ@ilbers.de X-Gm-Message-State: AFuF++mtEpTMmQorF0uID9rMTGI2h1Z6w2+nKaCdyB779vcgVp3r2xHl MYzHJ+51jV59Iyn8lgG4l6A7fSxitpXA4qjdtfQZcmHxtVTbLpIfgbIr X-Received: by 2002:a05:6512:a8b:b0:5b3:e52:a005 with SMTP id 2adb3069b0e04-5b616f020b7mr816457e87.4.1788508584486; Fri, 04 Sep 2026 00:56:24 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com; h="ATskLdf/s25fogI3sLFQxcH4DCMkMGl32TJtVNMXVjlblaIV4g==" Received: by 2002:a05:651c:1690:b0:3a1:e61d:46c6 with SMTP id 38308e7fff4ca-3a372513376ls1825241fa.1.-pod-prod-06-eu; Fri, 04 Sep 2026 00:56:22 -0700 (PDT) X-Received: by 2002:a05:6512:3e17:b0:5b0:1516:8799 with SMTP id 2adb3069b0e04-5b6170524a4mr767024e87.17.1788508581984; Fri, 04 Sep 2026 00:56:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1788508581; cv=none; d=google.com; s=arc-20260327; b=EnY0JmOyg63wJ6MXiXoj01t3p5VXydpDT5KmVmDNDp+w6VvukatDuawzJptOH3xx60 U0LvKiu0bLyspk2IAwmFTlFh6xfgP6V/wmXxFhCJaVzEy9w81dl6FHkoC/DJTK1mge/r y7cmAGqPSogF7ppVhX2layDpEQDRgxfzhWftv2unE/yrs3jJI5ORHbKq0CMBlFhQrnZU 9Q6VTzgUre26D2O4WiN+ipGtnXrQz+ETMUcD36E8d5c/GUuWqvsy2iUMU6ieXeDgpfhT EsRvDHtMDZLQgXqDXHh7VeMfXPpQg0NKSER6dQAqasA3Dg7Dfujxblb+FXv4/+T0+6a+ 1/3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=fXV59MW+wfucag7p9lyuoIU9KCdjvsnT1Rffr5ejkLk=; fh=u+3kXEMzY4uVhDBiujW2QUo7NnpMLrGEgMQBYpCTRN4=; b=HOFgRm9/Dp/wbFeeK1tFE9Jmg83dvionDwIcSuMS5NnjhbfmeVSoLP4dwnbGQwW1kx 5VdjXgctM09UBCzWBK4NvDxh+CB3qCgF1sslASWI90PyvBSAnjvJHwaP+5r01zFj5OJv W1g2Cc5TcmrQfl40UqjULVBlQz6q2HLm8BTgaeHI3aBjMOd7+rpE+uEbuVNY2vVpHoIh IKZ66A17L4I3CVGAsSU104vH47WgCoB3JG4YBSFmaUuM25ACfZYMWn5LqIC0724UmMHq rjvzz2Q51URnlBoqvamjS/E/n8QcaHXRQ1r/5gncYct4pqYC/LFmidzvcf0fsIGjCcOL 0aVg==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of akarpovich@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=akarpovich@ilbers.de Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id 2adb3069b0e04-5b6166cb2cfsi35889e87.8.2026.09.04.00.56.21 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 04 Sep 2026 00:56:21 -0700 (PDT) Received-SPF: pass (google.com: domain of akarpovich@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Received: from akarpovich-Victus-by-HP-Laptop-16-e0xxx.promwad.corp (62.122.174.6.serverel.net [62.122.174.6] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPSA id 6847tRSL004124 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 4 Sep 2026 09:56:20 +0200 From: Aliaksei Karpovich To: isar-users@googlegroups.com Cc: Aliaksei Karpovich Subject: [v10 11/12] debrepo: Add override for reprepro Date: Fri, 4 Sep 2026 09:52:53 +0200 Message-ID: <20260904075515.25962-12-akarpovich@ilbers.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260904075515.25962-1-akarpovich@ilbers.de> References: <20260904075515.25962-1-akarpovich@ilbers.de> MIME-Version: 1.0 X-Spam-Status: No, score=-4.6 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2, RCVD_IN_RP_CERTIFIED,RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS 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-Original-Sender: akarpovich@ilbers.de X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of akarpovich@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=akarpovich@ilbers.de Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-TUID: J1mclbk6Th0z It fixes an issue when bootstrap image in case of offline build is different than online. It happens because some packages has different Priority field because of override. F.e. libtext-wrapi18n-perl in trixie: - inside deb package: 'Priority: required' - inside Packages from deb repo: 'Priority: optional' Solution: download the override file from repo and pass it to reprepro. Signed-off-by: Aliaksei Karpovich --- scripts/deb-repo | 97 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 88 insertions(+), 9 deletions(-) diff --git a/scripts/deb-repo b/scripts/deb-repo index 23de0461..99913fb4 100755 --- a/scripts/deb-repo +++ b/scripts/deb-repo @@ -89,6 +89,8 @@ import shutil import subprocess import pickle import urllib.parse +import urllib.request +import gzip import apt_pkg import apt.progress.base @@ -96,8 +98,38 @@ import apt.progress.base REPREPRO_TIMEOUT = 1200 +def parse_aptsources_list_line(source_list_line): + import re + + s = source_list_line.strip() + + if not s or s.startswith("#"): + return None + + type, s = re.split(r"\s+", s, maxsplit=1) + if type not in ["deb", "deb-src"]: + return None + + options = "" + options_match = re.match(r"\[\s*(\S+=\S+(?=\s))*\s*(\S+=\S+)\s*\]\s+", s) + if options_match: + options = options_match.group(0).strip() + s = s[options_match.end():] + + source, s = re.split(r"\s+", s, maxsplit=1) + + if s.startswith("/"): + suite = "" + else: + suite, s = re.split(r"\s+", s, maxsplit=1) + + components = " ".join(s.split()) + + return [type, options, source, suite, components] class DebRepo(object): + BOOTSTRAP_LIST = "/etc/apt/sources.list.d/bootstrap.list" + class DebRepoCtx(object): def __init__(self, workdir): self.distro = "debian" @@ -181,9 +213,9 @@ class DebRepo(object): with open(f"{self.workdir}/var/lib/dpkg/status", "w"): pass - os.makedirs(f"{self.workdir}/etc/apt/sources.list.d", exist_ok=True) + srcfile = f"{self.workdir}{self.BOOTSTRAP_LIST}" + os.makedirs(os.path.dirname(srcfile), exist_ok=True) - srcfile = f"{self.workdir}/etc/apt/sources.list.d/bootstrap.list" if aptsrcsfile and os.path.exists(aptsrcsfile): shutil.copy(aptsrcsfile, srcfile) else: @@ -201,13 +233,60 @@ class DebRepo(object): def create_repo_dist(self): conf_dir = f"{self.ctx.repodir}/{self.ctx.distro}/conf" os.makedirs(conf_dir, exist_ok=True) - if not os.path.exists(f"{conf_dir}/distributions"): - with open(f"{conf_dir}/distributions", "w") as f: - f.write(f"Codename: {self.ctx.codename}\n") - f.write( - "Architectures: " - "i386 armhf arm64 amd64 mipsel riscv64 source\n") - f.write("Components: main\n") + override_fname = "override" + self.create_override(f"{conf_dir}/{override_fname}") + with open(f"{conf_dir}/distributions", "w") as f: + f.write(f"Codename: {self.ctx.codename}\n") + f.write( + "Architectures: " + "i386 armhf arm64 amd64 mipsel riscv64 source\n") + f.write("Components: main\n") + f.write(f"DebOverride: {override_fname}\n") + + def create_override(self, override_file): + deb_override_name = f"override.{self.ctx.codename}.main" + deb_override_file = f"{self.workdir}/tmp/{deb_override_name}" + if (not os.path.exists(deb_override_file) or + os.path.getsize(deb_override_file) < 1): + # Extract source URL + srcfile = f"{self.workdir}{self.BOOTSTRAP_LIST}" + with open(srcfile, "r") as f: + for line in f: + entry = parse_aptsources_list_line(line) + if entry: + source_url = entry[2] + # Download override file + self.fetch_file(f"{source_url}/indices/{deb_override_name}") + if (os.path.exists(deb_override_file) and + os.path.getsize(deb_override_file) > 1): + break + # Download packet override file + self.fetch_file(f"{source_url}/indices/{deb_override_name}.gz") + # Unpack override file + with gzip.open(f"{deb_override_file}.gz", "r") as f_in, open(deb_override_file, "wb") as f_out: + for line in f_in: + f_out.write(line) + break + + with open(override_file, "w") as f_out: + # Unpack deb override file + with open(deb_override_file, "r") as f: + # Convert deb override to reprepro override + for line in f: + fields = line.strip().split() + + if len(fields) < 3: + continue + + package = fields[0] + priority = fields[1] + section = fields[2] + + f_out.write(f"{package} Priority {priority}\n") + f_out.write(f"{package} Section {section}\n") + + if f_out.tell() < 1: + print("WARNING: override file is empty!") def apt_config(self, init, crossbuild): if not init and self.ctx.compatarch: -- 2.43.0 -- You received this message because you are subscribed to the Google Groups "isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/20260904075515.25962-12-akarpovich%40ilbers.de.