Issue after changing from xz to zstd

Robert Marko robimarko at gmail.com
Sat Apr 6 14:32:53 PDT 2024


On Sat, 6 Apr 2024 at 22:35, e9hack <e9hack at gmail.com> wrote:
>
> Am 06.04.2024 um 21:50 schrieb Robert Marko:
> > On Sat, 6 Apr 2024 at 21:47, Hartmut Birr <osexpert at gmail.com> wrote:
> >>
> >> Hi,
> >>
> >> I did change the Makefile for dnsmasq in the way that I give:
> >>
> >> PKG_SOURCE_URL:=git://thekelleys.org.uk/dnsmasq.git
> >> PKG_SOURCE_PROTO:=git
> >> PKG_SOURCE_DATE:=2024-03-27
> >> PKG_SOURCE_VERSION:=550c368adea12b312f83686c61f9015c122046c2    # Treat cache insertion failure of DNSKEY and DS records as another resource problem and fail validation with suitable logging.
> >> PKG_MIRROR_HASH:=284a34bdb967ec8a9dff132df065ca64e9a1819d79bb8cecee1af001e22d626c
> >>
> >> Before changing to zstd, the generated source tar ball contains a file 'VERSION' with content '$Format:%d$'. This does match the dnsmasq git repository. After changing to zstd, VERSION contains ' (HEAD, origin/master, origin/HEAD, master)'.
> >>
> >> Any idea why VERSION is manipulated?
> >>
> >> I generate automatically a patch which modifies VERSION to see the commit hash via logread. Applying the patch doesn't work any more.
> >>
> >> dnsmasq/patches/999-dnsmasq-version.patch:
> >> diff --git a/VERSION b/VERSION
> >> index 998eb1f..9977908 100644
> >> --- a/VERSION
> >> +++ b/VERSION
> >> @@ -1 +1 @@
> >> -$Format:%d$
> >> + (master, v2.90deb2-8-g550c368, head)
> >>
> >
> > Hi Hartmut,
> > We are now using git-archive to make a tarball of git repositories in
> > order to make them reproducible which fixes a long standing issue.
> > git-archive respects .gitattributes so that along with:
> > https://github.com/imp/dnsmasq/commit/2aaea18f432374fd062370f2d899e47849558b2f
> >
> > Is most likely the cause.
>
> I did add another static patch to solve the issue for me temporary:
>
> --- a/VERSION   2024-03-27 17:00:06.000000000 +0100
> +++ b/VERSION   2024-03-27 17:00:06.000000000 +0100
> @@ -1 +1 @@
> - (HEAD, origin/master, origin/HEAD, master)
> +$Format:%d$
>
> I generate 999-dnsmasq-version.patch via the following extension in the Makefile:
>
> define Build/Prepare
>         mkdir -p $(TOPDIR)/tmp/dl && \
>                 cd $(TOPDIR)/tmp/dl && \
>                 rm -rf $(PKG_SOURCE_SUBDIR) && \
>                 git clone -4 $(PKG_SOURCE_URL) $(PKG_SOURCE_SUBDIR) --recursive && \
>                 cd $(PKG_SOURCE_SUBDIR) && \
>                 git checkout $(PKG_SOURCE_VERSION) && \
>                 version=`git describe` && \
>                 echo " (master, $$$$version, head)" > VERSION && \
>                 git diff VERSION > 999-dnsmasq-version.patch
>         $(CP) $(TOPDIR)/tmp/dl/$(PKG_SOURCE_SUBDIR)/999-dnsmasq-version.patch ./patches
>         touch -c -r ./Makefile ./patches/999-dnsmasq-version.patch
>         cd $(TOPDIR)/tmp/dl && \
>                 rm -rf $(PKG_SOURCE_SUBDIR)
>         $(call Build/Prepare/Default)
> endef

Hi, can I ask what is the point though?
That VERSION file contains a placeholder format specifier that is
supposed to be filled with a version
by git, it was most likely meant to be used with git-archive as
.gitattributes specifies that VERSION should
be updated.

$Format:%d$ is just the format specifier placeholder to be replaced.

Regards,
Robert
>
> Regards,
> Hartmut
>
> >
> > Regards,
> > Robert
> >
> >> Regards,
> >> Hartmut
> >>
> >> _______________________________________________
> >> openwrt-devel mailing list
> >> openwrt-devel at lists.openwrt.org
> >> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>



More information about the openwrt-devel mailing list