Re: Comparison of busybox.net and busybox_mirror

Emmanuel Deloget via busybox <[email protected]> Mon, 11 May 2026 09:12:31 +0200
Newsgroups gmane.linux.busybox
Message-ID <CAKh=nwHU2e1sYMndHPB+wpT82Jx+o++ogSa_wLVWwwJp4tEmCA@mail.gmail.com>
Hello,

Le ven. 8 mai 2026 à 21:20, Michael D. Setzer II <[email protected]> a écrit :
>
> On 8 May 2026 at 17:28, Emmanuel Deloget wrote:
>
> From:                   Emmanuel Deloget <[email protected]>
> Date sent:              Fri, 8 May 2026 17:28:34 +0200
> Subject:                Re: Comparison of busybox.net and
> busybox_mirror
> To:                     [email protected]
> Copies to:              [email protected]
>
> > Hello Michael,
> >
> > Le jeu. 7 mai 2026 à 23:48, Michael D. Setzer II via busybox
> > <[email protected]> a écrit :
> > >
> > > git pull on busybox_mirror
> > > git remote set-url origin
> > > https://github.com/vda-linux/busybox_mirror
> > > git pull
> > > ead17e7808236be80614d0a8755f4ddad63ab56c PRE__PULL
> > > ead17e7808236be80614d0a8755f4ddad63ab56c POST_PULL
> > > Nothing changed (Already up to date).
> > >
> > > git pull on busybox.net
> > > git remote set-url origin https://git.busybox.net/busybox
> > > git pull
> > > ead17e7808236be80614d0a8755f4ddad63ab56c PRE__PULL
> > > ead17e7808236be80614d0a8755f4ddad63ab56c POST_PULL
> > > Nothing changed (Already up to date).
> > >
> > > built busybox with same .config file
> > > # cmp -l busybox/busybox busybox_mirror/busybox
> > >    809  26  76
> > >    810 102 323
> > >    811 174 162
> > >    812 121 274
> > >    813 301 277
> > >    814 123 234
> > >    815 325 341
> > >    816 311 345
> > >    817 225  45
> > >    818  60 165
> > >    819 136  55
> > >    820 312 232
> > >    821 266 177
> > >    822 322 226
> > >    823 117 343
> > >    824 166 373
> > >    825 343 242
> > >    826 333 134
> > >    827  44 147
> > >    828 126 233
> > > 450374  61  65
> > > 450375  62  65
> > > # busybox/busybox | head -n1; busybox_mirror/busybox | head -n 1
> > > BusyBox v1.38.0.git (2026-05-08 07:42:12 ChST) multi-call binary.
> > > BusyBox v1.38.0.git (2026-05-08 07:42:55 ChST) multi-call binary.
> >
> > As far as I know, there are some specific conditions and environment
> > to set up for a reproducible build of busybox ; for one,
> > KCONFIG_NOTIMESTAMP shall be set (in your example, it's clearly not
> > set, as the binary includes the build date). You can get more
> > information at https://wiki.debian.org/ReproducibleBuilds ; you might
> > be able to find some other sources as well. Unless you are in the
> > required environment, different builds may give you different results
> > (which is you case here).
> >
>
> Thanks for info, I've heard of the option before, but have not seen
> benefit to have a fixed build for my project. Generally, lets me know
> if only these ranges are changed it means that none of the busybox
> features I use were changed between versions.
> If I build using the 1.37.0 bz2 tree versus the current 1.38 git tree
> the difference is large.
>
> Just build a 1.37 build in current directory, and have 1.38 build in
> bin. Sizes are a little different and almost every byte is different.
>  cmp -l /bin/busybox ./busybox | wc -l
> cmp: EOF on ‘./busybox’ after byte 468376
> 431225
> # ls -l /bin/busybox ./busybox
> 472456 May  5 12:53 /bin/busybox
> 468376 May  9 05:10 ./busybox

Was the version in /bin compiled by you? If not, then maybe the vendor
has some patches that are not present on the busybox git, and maybe he
uses some build-process changes that may also have an impact on the
resulting binary. Unless you can assess this, it's quite difficult to
make sure that this is a direct compile of the git tree (on embedded
plaforms, busybox is often patched to fix some issues or propose a
slight change in the behavior; see
https://git.openwrt.org/openwrt/openwrt/tree/package/utils/busybox/patches?h=v25.12.3
for example).

> # /bin/busybox | head -n1; ./busybox | head -n1
> BusyBox v1.38.0.git (2026-05-05 12:53:35 ChST) multi-call binary.
> BusyBox v1.37.0 (2026-05-09 05:09:44 ChST) multi-call binary.
>
> So, busybox shows the date of compile, but one must know 1.37.0 is
> using code 27 September 2024, whereas the 1.38.0 git is using code
> up to that patches in the git pull. Which is currently May 3, 2026
>
> Thanks again.

Comparing binaries from different versions is not always feasible.
Some compilation flags may have changed, triggering various changes
that cmp cannot reconcile, leaving you with the impression that most
of the binary have changed. The addition of a function or slight
modifications in some often-used macro can also lead to wide changes
in the resulting binary, depending on how the compiler and the linked
will work together to optimize the binary. The extent of the changes
between 1.37.0 and git is quite important, so it makes sense that the
binaries are not really comparable.

What do you try to achieve here?


> > Best regards,
> >
> > -- Emmanuel Deloget
> +------------------------------------------------------------+
>  Michael D. Setzer II - Computer Science Instructor (Retired)
>  mailto:[email protected]
>  mailto:[email protected]
>  mailto:[email protected]
>  Guam - Where America's Day Begins
>  G4L Disk Imaging Project maintainer
>  http://sourceforge.net/projects/g4l/
> +------------------------------------------------------------+

Best regards,

-- Emmanuel Deloget
_______________________________________________
busybox mailing list
[email protected]
https://lists.busybox.net/mailman/listinfo/busybox