From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 13 Apr 2020 21:01:43 +0300 From: "Dmitry V. Levin" To: "Vladimir D. Seleznev" Message-ID: <20200413180143.GB21630@altlinux.org> References: <20200410231044.1436970-1-vseleznv@altlinux.org> <20200410231044.1436970-2-vseleznv@altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200410231044.1436970-2-vseleznv@altlinux.org> Cc: ALT Devel discussion list Subject: Re: [devel] [PATCH 1/2] gb/gb-sh-functions: introduce pkg_identity() X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Apr 2020 18:01:44 -0000 Archived-At: List-Archive: List-Post: On Sat, Apr 11, 2020 at 02:10:43AM +0300, Vladimir D. Seleznev wrote: > --- > gb/gb-sh-functions | 112 +++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 112 insertions(+) > > diff --git a/gb/gb-sh-functions b/gb/gb-sh-functions > index cd9039a..d7b1980 100644 > --- a/gb/gb-sh-functions > +++ b/gb/gb-sh-functions > @@ -283,4 +283,115 @@ rpm_changes_since() > > gb-x-changelog-complement ${tmpdir}/changelog_old ${tmpdir}/changelog_new > } > + > +pkg_identity() > +{ > + local keep_branch= pkg= > + pkg="${1-}"; shift > + if [ "$pkg" = "--with-branch" ]; then > + pkg="${1-}"; shift > + keep_branch=1 > + fi > + > + # List of rpm tags that should be filtered > + # > + # RPM tags that contain insufficient information about package > + # contents and relationship, and do not affect package functionality > + # should be filtered. > + # > + # The main criterias for tags to be filtered: > + # > + # - Tag contains random or not reproducible value that is assigning > + # during the build, and this value does not affect package > + # functionality; > + # - Tag contains metadata about build host properties; > + # - Tag contains metadata of package headers, including its signatures; > + # - Tag is only related to package database; > + # - Other reasons that are considered worthy. > + cat >"$tmpdir"/filtertags < +ARCH > +ARCHIVESIZE > +AUTOINSTALLED > +BUILDARCHS > +BUILDHOST > +BUILDTIME > +COOKIE > +DBINSTANCE > +DISTRIBUTION > +DISTTAG > +DISTURL > +DSAHEADER > +FILESTATES > +HDRID > +HEADERCOLOR > +HEADERI18NTABLE > +HEADERIMAGE > +HEADERIMMUTABLE > +HEADERREGIONS > +HEADERSIGNATURES > +IDENTITY > +INSTALLCOLOR > +INSTALLTID > +INSTALLTIME > +INSTFILENAMES > +INSTPREFIXES > +LONGARCHIVESIZE > +LONGSIGSIZE > +LONGSIZE > +PKGID > +RPMVERSION > +RSAHEADER > +SHA1HEADER > +SIGGPG > +SIGLEMD5_1 > +SIGMD5 > +SIGPGP > +SIGSIZE > +SIZE > +SOURCEPKGID > +EOF First of all, I don't think this tools belongs to girar. > + local rpm_version="$(rpm --version)" > + # tag extensions do not exists in the rpm 4.0.4 > + if [ "$rpm_version" != "RPM version 4.0.4" ]; then > + rpm --verbose --querytags | > + while read tagname tagval tagtype ext; do > + if [ "$ext" = "ext" ]; then > + # filter all tag extensions too > + echo "$tagname" >> "$tmpdir"/filtertags > + fi > + done > + fi Second, I don't see why do you need this rpm version check. Can't you just do this regardless of rpm version? > + sort -o "$tmpdir"/filtertags{,} > + rpmquery --querytags |sort >"$tmpdir"/querytags We don't assume that pipefail is enabled, so we prefer rpmquery --querytags "$tmpdir"/querytags sort -u -o "$tmpdir"/querytags{,} > + join -v1 "$tmpdir/querytags" "$tmpdir/filtertags" >"$tmpdir"/tags > + > + # erase extra apt indices tags > + sed -i '/APTINDEX/d' "$tmpdir"/tags Have you ever seen a package with these tags in its header? > + > + # construct query format string in form "[tag:%{tag:shescape}\n]" > + local qf="$(sed -E 's/^(.+)$/[\1:%{\1:shescape}\\n]/' "$tmpdir"/tags)" This construction ignores sed exit status. -- ldv