Re: [Rpm-maint] [rpm-software-management/rpm] rpmsign --delsign leaves behind 0 padding (Issue #2965)

2024-03-26 Thread Bernhard M. Wiedemann
I think, the problem has 2 components.
1. The obs-sign we use in OBS has its own signing code and adds bytes to the 
header instead of using the reserved space.
2. The `rpm --delsign` leaves the (increased) size as is, only zeroes it out.

I was able to get bit-identical results to OBS using 
"--define=%__gpg_reserved_space 4688" in the replication build to add as many 
header bytes as obs-sign did, but that is certainly not the nicest solution.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2965#issuecomment-2020319475
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] rpmsign --delsign leaves behind 0 padding (Issue #2965)

2024-03-18 Thread Bernhard M. Wiedemann
After 2022-06-20 we changed to a new rsa4096 signkey for the project.
%__gpg_reserved_space seems to default to 4096 bytes so that should fit. And 
indeed, rpm --delsign leaves the size as is.

With [this 
dump-rpm-headers.py](https://gist.github.com/koseki/9737a4490128bcb8b426c22a0b7c3885)
 I get this diff between our delsigned OBS build and my local build:
```diff
--- dump-rpm-headers.py binaries/strip-nondeterminism-1.13.1-33.11.src.rpm
+++ dump-rpm-headers.py 
binaries.nachbau/strip-nondeterminism-1.13.1-33.11.src.rpm
@@ -13,15 +13,15 @@
version: b'\x01'
   reserved: b''
 nindex: 7
- hsize: 4868
+ hsize: 4276
  Signature Section - Index Entries 
-[  0] tag:   62  type: BIN  offset:4852  count:  16   # 
RPMTAG_HEADERSIGNATURES
+[  0] tag:   62  type: BIN  offset:4260  count:  16   # 
RPMTAG_HEADERSIGNATURES
 [  1] tag:  269  type: STRING   offset:   0  count:   1   # RPMSIGTAG_SHA1
 [  2] tag:  273  type: STRING   offset:  41  count:   1   # Unknown
 [  3] tag: 1000  type: INT32offset: 108  count:   1   # RPMSIGTAG_SIZE
 [  4] tag: 1004  type: BIN  offset: 112  count:  16   # RPMSIGTAG_MD5
 [  5] tag: 1007  type: INT32offset: 128  count:   1   # 
RPMSIGTAG_PAYLOADSIZE
-[  6] tag: 1008  type: BIN  offset: 132  count:4720   # 
RPMSIGTAG_RESERVEDSPACE
+[  6] tag: 1008  type: BIN  offset: 132  count:4128   # 
RPMSIGTAG_RESERVEDSPACE
  Signature Section - Data 
 [  1] RPMSIGTAG_SHA1
 b'34a3e2de398c3a6598b6b4b9d01d9a7fa96fda48'
@@ -42,43 +42,6 @@ RPMSIGTAG_RESERVEDSPACE
         
         
         
-*
```

So there is a difference of 592 bytes, which is around the size of a 4096-bit 
sig.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2965#issuecomment-2005753254
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Reproducible builds improvements (Discussion #2934)

2024-03-01 Thread Bernhard M. Wiedemann
I did not mean to alter signing time - but keep it as it is (it is dropped by 
delsign anyway), while changing "Build Date" instead to something that does not 
vary in (changeless) rebuilds.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2934#discussioncomment-8641508
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Reproducible builds improvements (Discussion #2934)

2024-03-01 Thread Bernhard M. Wiedemann
When I normalize BUILDTIME with `%use_source_date_epoch_as_buildtime`, the 
signature still gives the real date. Is there a value in keeping both? e.g. 
[this 
package](https://build.opensuse.org/package/show/home:bmwiedemann:reproducible/strip-nondeterminism)
 `rpm -ql` has
```
Signature   : RSA/SHA256, 2024-02-26T12:00:49 UTC, Key ID 8adc26dbb49c2121
Source RPM  : strip-nondeterminism-1.13.1-33.9.src.rpm
Build Date  : 2023-07-28T16:19:49 UTC
```
Not overriding BUILDHOST is fine as it still allows easy verification.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2934#discussioncomment-8640953
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Reproducible builds improvements (Discussion #2934)

2024-02-29 Thread Bernhard M. Wiedemann
I'm always thinking about rebuild+compare as one operation.
In the Debian and Archlinux space there were also discussions about centralized 
collections of multiple rebuilder-results. Those are signed data containing 
"$rebuildername built $package $version and got output $hash".
That would work poorly with fuzzy-matching. It could work with a custom rpmhash 
tool, but how do you prove that it indeed covers all relevant bits? I don't 
like that and would rather see us reach bit-reproducible rpms (after delsign) 
that work with generic `sha256sum`.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2934#discussioncomment-8629486
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Reproducible builds improvements (Discussion #2934)

2024-02-28 Thread Bernhard M. Wiedemann
Yes, but needing build outputs in addition to build inputs is still needing 
more.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2934#discussioncomment-8619915
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Reproducible builds improvements (Discussion #2934)

2024-02-28 Thread Bernhard M. Wiedemann
keszybz wrote:
> any party can recreate copies of the artifacts that are identical except for 
> the signatures and parts of metadata

I don't think it is a good idea to exclude metadata. One benefit that you can 
only get with bit-identical reproducibility is that you can list the one and 
only correct hash value of the build result. (that also works with signed rpms 
+ delsign).
However with weaker variants, you always need another full rpm to compare to. 
I.e. for our 16k packages, instead of publishing a list of 16k hashes you then 
need to keep the full archive (100GB) to allow people to reproduce any package.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/discussions/2934#discussioncomment-8618492
You are receiving this because you are subscribed to this thread.

Message ID: 
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Reproducible builds improvements (Issue #2894)

2024-02-23 Thread Bernhard M. Wiedemann
As long as a constant buildtime value is provided, it will also result in 
constant (reproducible) mtime.
Reproducible builds requires that you can produce bit-identical output from 
identical inputs. And inputs would include buildtime here (or whatever it is 
based on, e.g. changelog date).

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2894#issuecomment-1961317158
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Reproducible builds improvements (Issue #2894)

2024-02-21 Thread Bernhard M. Wiedemann
We have open-build-service (OBS) that uses obs-worker to call obs-build to call 
rpmbuild.
The current way documented in [our 
wiki](https://en.opensuse.org/openSUSE:Reproducible_Builds) is to add a 
project-conf in OBS
```
Macros:
%source_date_epoch_from_changelog 1
%clamp_mtime_to_source_date_epoch 1
%use_source_date_epoch_as_buildtime 1
%_buildhost reproducible
:Macros
```
and the constants here are `1` and `reproducible`

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2894#issuecomment-1956161964
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Reproducible builds improvements (Issue #2894)

2024-02-21 Thread Bernhard M. Wiedemann
> %clamp_mtime_to_buildtime seems sensible to me, at least if it replaces 
> %clamp_mtime_to_source_date_epoch. If you care about source_date_epoch, then 
> you'll surely set buildtime to it, right?

With our build system, passing constants into a build is much easier than 
passing in a variable `%_buildtime`. Not sure how that is with Fedora's or 
Mageia's build-system.
It would be nice to at least have both in parallel until everything is properly 
integrated.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2894#issuecomment-1956109520
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Add option to not store expanded spec (PR #2762)

2023-11-14 Thread Bernhard M. Wiedemann
We do have our share of dynamic magic - e.g. the [python lua 
scripts](https://github.com/openSUSE/python-rpm-macros) to generate module 
packages for 39, 310, 311 and 312 from a single .spec. However these inputs all 
remain available in OBS, so are not a problem to reproducibility.

Could the expanded .spec become a separate artifact? e.g. we have generated 
rpmlint logs and build statistics as extra files, so another one there should 
be fine.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2762#issuecomment-1810312959
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Add option to not store expanded spec (PR #2762)

2023-11-13 Thread Bernhard M. Wiedemann
Besides that, the expanded .spec does not contain all the details e.g. which 
compiler+libs were used - all that goes into an SBOM outside of the produced 
package.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2762#issuecomment-1809641411
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Add option to not store expanded spec (PR #2762)

2023-11-13 Thread Bernhard M. Wiedemann
Then we will have to carry the patch downstream.
Just one more on the [long 
list](https://github.com/distropatches/rpm/commits/sle15.4-4.14.3)

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2762#issuecomment-1809634796
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Add option to not store expanded spec (PR #2762)

2023-11-13 Thread Bernhard M. Wiedemann
Add option to not store expanded spec in .src.rpm
because some usages of macros are hard to make reproducible.

Fixes #2343

This patch was done while working on [reproducible builds for 
openSUSE](https://en.opensuse.org/openSUSE:Reproducible_Builds).

btw: if you have better proposals for the name of the value, Ill take it.


You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/2762

-- Commit Summary --

  * Add option to not store expanded spec

-- File Changes --

M build/pack.c (4)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/2762.patch
https://github.com/rpm-software-management/rpm/pull/2762.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2762
You are receiving this because you are subscribed to this thread.

Message ID: rpm-software-management/rpm/pull/2...@github.com
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] rpm-4.18.0 embeds build machine CPU count (Issue #2343)

2023-08-22 Thread Bernhard M. Wiedemann
found another breakage:
`sed -i -e 's/-j2/%{?_smp_mflags}/' setup.py`
in 
https://github.com/bmwiedemann/openSUSE/blob/master/packages/p/python-python-poppler/python-python-poppler.spec#L61

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2343#issuecomment-1689242765
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] rpm-4.18.0 embeds build machine CPU count (Issue #2343)

2023-08-15 Thread Bernhard M. Wiedemann
Found another reproducibility problem with expanded .spec in
https://code.opensuse.org/package/texlive/blob/d820a867c61524278af352b4febbb115e9dad08f/f/texlive.spec#_287
```spec
%{expand: %%global options %(mktemp /tmp/texlive-opts.)}
```

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2343#issuecomment-1678814874
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] rpm-4.18.0 embeds build machine CPU count (Issue #2343)

2023-02-07 Thread Bernhard M. Wiedemann
And more trouble from
https://codeberg.org/cunix/vendored_licenses_packager/src/branch/main/macros.vendored_licenses_packager#L18
that injects a random tmp path into the .src.rpm of 
[dnscrypt-proxy](https://code.opensuse.org/package/dnscrypt-proxy/tree/master)

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2343#issuecomment-1420449964
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] rpm-4.18.0 embeds build machine CPU count (Issue #2343)

2023-01-29 Thread Bernhard M. Wiedemann
Found another problematic case:
https://code.opensuse.org/package/ocaml-rpm-macros/blob/819e56/f/ocaml-rpm-macros.spec#_464

`'%%{?_smp_mflags}'` 
becomes
`'-j${RPM_BUILD_NCPUS}'` and the variable does not get expanded now, causing a 
compilation failure. I guess, using double-quotes should fix it.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2343#issuecomment-1407598501
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] rpm-4.18.0 embeds build machine CPU count (Issue #2343)

2023-01-20 Thread Bernhard M. Wiedemann
It seems, `$RPM_BUILD_NCPUS` is not set in our older distributions that have 
rpm-4.14.3. What would be the best way to have 
https://github.com/mesonbuild/meson/blob/c754f9076/data/macros.meson#L43 be 
reproducible on both 4.14 and 4.18 ?

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2343#issuecomment-1398053168
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] rpm-4.18.0 embeds build machine CPU count (Issue #2343)

2023-01-12 Thread Bernhard M. Wiedemann
There are four .spec files in openSUSE, that use `%{_smp_build_ncpus}` 
directly, e.g.
https://code.opensuse.org/package/python3-pyside6/blob/ad8e8792e6ed522cb99332637de53ce6ff5b93f1/f/python3-pyside6.spec#_226

Maybe instead of 0576d24756fe975d890f5535a21cfdfd35fc2ca4, we could redefine 
`%_smp_build_ncpus` to `$RPM_BUILD_NCPUS` ?

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2343#issuecomment-1381436669
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] rpm-4.18.0 embeds build machine CPU count (Issue #2343)

2023-01-11 Thread Bernhard M. Wiedemann
Yes. It came from 
https://github.com/openSUSE/obs-build/blob/master/build-recipe#L234

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2343#issuecomment-1379094502
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Determine %_smp_mflags at build time (PR #2344)

2023-01-11 Thread Bernhard M. Wiedemann
I dropped the third commit and left the move to macros.in to not be mangled by 
installplatform.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2344#issuecomment-1378584592
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] rpm-4.18.0 embeds build machine CPU count (Issue #2343)

2023-01-11 Thread Bernhard M. Wiedemann
I have it with `-j${RPM_BUILD_NCPUS}` in 
https://build.opensuse.org/package/view_file/home:bmwiedemann:reproducible/rpm/0576d24756f.patch
 , but somehow it gets replaced by `%_smp_mflags -j%{_RPM_BUILD_NCPUS}` in 
platform files, which then breaks because the macro is unknown.
With the move to `macros.in`, it works. Is there some special rewriting?

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2343#issuecomment-1378546360
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] rpm-4.18.0 embeds build machine CPU count (Issue #2343)

2023-01-11 Thread Bernhard M. Wiedemann
Right something writes it into ~/.rpmmacros . That is our problem then and the 
`-j%{_RPM_BUILD_NCPUS}
` rpm patch should still be good.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2343#issuecomment-1378508483
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] WIP: Determine %_smp_mflags at build time (PR #2344)

2023-01-10 Thread Bernhard M. Wiedemann
Something is still not right here. 
`/usr/lib/rpm/platform/x86_64-linux/macros` has
```
 %_smp_mflags -j%{_smp_build_ncpus}
```
that still gets expanded into .src.rpm

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2344#issuecomment-1378209990
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] rpm-4.18.0 embeds build machine CPU count (Issue #2343)

2023-01-10 Thread Bernhard M. Wiedemann
I checked git log and found some related commits.
#2344 now does the trick for me.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2343#issuecomment-1378203226
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Determine %_smp_mflags at build time (PR #2344)

2023-01-10 Thread Bernhard M. Wiedemann
This cherry-picks 3 commits from master
to not embed the build machine CPU core count into .src.rpms

Fixes #2343 
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/2344

-- Commit Summary --

  * Calculate number of threads to use during build, not spec parse
  * Make CPU and thread-related macros available on all platforms
  * Make %_smp_mflags build rather than parse time determined

-- File Changes --

M build/build.c (28)
M build/parseSpec.c (24)
M macros.in (16)
M platform.in (16)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/2344.patch
https://github.com/rpm-software-management/rpm/pull/2344.diff

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2344
You are receiving this because you are subscribed to this thread.

Message ID: rpm-software-management/rpm/pull/2...@github.com
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] rpm-4.18.0 embeds build machine CPU count (Issue #2343)

2023-01-10 Thread Bernhard M. Wiedemann
I tried

```diff
===
--- rpm-4.18.0.orig/platform.in
+++ rpm-4.18.0/platform.in
@@ -57,7 +57,7 @@
 if [ -n "$ncpus_max" ] && [ "$ncpus_max" -gt 0 ] && [ 
"$RPM_BUILD_NCPUS" -gt "$ncpus_max" ]; then RPM_BUILD_NCPUS="$ncpus_max"; fi; 
\\\
 echo "$RPM_BUILD_NCPUS";)
 
-%_smp_mflags -j%{_smp_build_ncpus}
+%_smp_mflags -j${RPM_BUILD_NCPUS}
 
 # Maximum number of threads to use when building, 0 for unlimited
 #%_smp_nthreads_max 0
```

But somehow I still get this diff
```diff
-make -j4
+make -j1
```

the produced  `/usr/lib/rpm/platform/x86_64-linux/macros` has
```
%_smp_mflags -j%{_RPM_BUILD_NCPUS}
```

Why is that?

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2343#issuecomment-1377915374
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] rpm-4.18.0 embeds build machine CPU count (Issue #2343)

2023-01-09 Thread Bernhard M. Wiedemann
While working on [reproducible builds](https://reproducible-builds.org/) for 
[openSUSE](https://en.opensuse.org/openSUSE:Reproducible_Builds), I found that 
the recent upgrade to rpm-4.18.0  
with #2047 / #1241 caused spec files with

```bash
make %{?_smp_mflags}
```

to embed the build machine CPU count into .src.rpm files, making them hard to 
bit-reproduce.
binary rpm files embed the .src.rpm header checksum, so suffer as well.

It might also introduce other hard-to-reproduce details, but I have not looked 
for these, yet.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/2343
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] RFE: save the parsed spec in src.rpm (#1241)

2023-01-06 Thread Bernhard M. Wiedemann
I found that unfortunately this change makes many of our rpm builds 
unreproducible, because our .spec files contain things like `make 
%{?_smp_mflags}` and that gets expanded depending on the build machine CPU core 
count.

Is there an easy way to disable this or do you have a different proposal of how 
to build bit-identical rpms again?

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/1241#issuecomment-1373334104
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Add parsed and expanded spec to src.rpm header (#1241) (PR #2047)

2023-01-05 Thread Bernhard M. Wiedemann
I found that unfortunately this change makes many of our rpm builds 
unreproducible, because our .spec files contain things like `make 
%{?_smp_mflags}` and that gets expanded depending on the build machine CPU core 
count.

Is there an easy way to disable this or do you have a different proposal of how 
to build bit-identical rpms again?

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2047#issuecomment-1372488940
You are receiving this because you are subscribed to this thread.

Message ID: ___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Add support for generating buildinfo file as subpackage (#1532)

2021-10-13 Thread Bernhard M. Wiedemann
Interested in something like this for openSUSE. We already have something 
comparable called `_buildenv` (XML) e.g. in 
https://build.opensuse.org/package/binaries/openSUSE:Factory/bash/standard - 
but that is created on the obs_worker level.

[ArchLinux](https://archlinux.org/pacman/BUILDINFO.5.html) seems to have their 
own format with = as delimiter.
In most places, the buildinfo files can probably be handled as opaque files and 
just things like source,binary,version would be interesting outside. That is 
not hard to extract in either format, so there is no strong reason to follow 
Debian here.

OTOH, this is not a .spec file, but just another output from the build process, 
similar to the build log, so it does not need to follow rpm conventions either.

So from my view, using either the Debian or ArchLinux (marshalling) format has 
some advantage over making up a third format. 

Though, I would not keep confusing Debianisms in keys that will not be 
meaningful outside of the respective distribution.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/1532#issuecomment-942694178___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] 4.15.1 creates unreproducible rpm DEPENDSDICT (#1056)

2021-01-16 Thread Bernhard M. Wiedemann
Still a problem with rpm-4.16.0. I found at least 4 affected packages now and 
all of them use `cmake` and `gcc-c++` for building
* drumstick-devel
* gnuradio-devel
* poco-devel
* qt6-svg-devel (only 1 bit of entropy)

a hexdump diff looks thus:
```diff
@@ -859,13 +859,13 @@
 004920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 004930 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02
 004940 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 00
-004950 50 00 00 01 50 00 00 04 50 00 00 03 50 00 00 02
-004960 50 00 00 00 50 00 00 01 50 00 00 04 50 00 00 03
-004970 50 00 00 02 50 00 00 00 50 00 00 01 50 00 00 04
-004980 50 00 00 03 50 00 00 02 50 00 00 00 50 00 00 01
-004990 50 00 00 04 50 00 00 03 50 00 00 02 50 00 00 00
-0049a0 50 00 00 01 50 00 00 04 50 00 00 03 50 00 00 02
-0049b0 50 00 00 00 50 00 00 08 52 00 00 00 50 00 00 09
+004950 50 00 00 02 50 00 00 00 50 00 00 03 50 00 00 04
+004960 50 00 00 01 50 00 00 02 50 00 00 00 50 00 00 03
+004970 50 00 00 04 50 00 00 01 50 00 00 02 50 00 00 00
+004980 50 00 00 03 50 00 00 04 50 00 00 01 50 00 00 02
+004990 50 00 00 00 50 00 00 03 50 00 00 04 50 00 00 01
+0049a0 50 00 00 02 50 00 00 00 50 00 00 03 50 00 00 04
+0049b0 50 00 00 01 50 00 00 08 52 00 00 00 50 00 00 09
 0049c0 52 00 00 00 50 00 00 0a 52 00 00 00 50 00 00 0b
 0049d0 52 00 00 00 50 00 00 07 52 00 00 08 52 00 00 13
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/1056#issuecomment-761493176___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] RFC: Removing unneeded internal macros (such as %__ranlib) (#1211)

2020-05-11 Thread Bernhard M. Wiedemann
There is even online search included: 
https://github.com/bmwiedemann/openSUSE/search?q=__cc

-- 
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/1211#issuecomment-626640746___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] 4.15.1 creates unreproducible rpm DEPENDSDICT (#1056)

2020-02-24 Thread Bernhard M. Wiedemann
I was able to reproduce the problem with rpm-4.14.1 as well, so not a recent 
regression.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/1056#issuecomment-590672950___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] 4.15.1 creates unreproducible rpm DEPENDSDICT (#1056)

2020-02-06 Thread Bernhard M. Wiedemann
While working on reproducible builds for openSUSE, I found that
our poco package build had variations in the resulting `poco-devel` rpms
in the `DEPENDSDICT` header.
Likely from build/rpmfc.c rpmfcGenerateDepends function.

Steps To Reproduce:
```bash
osc co openSUSE:Factory/poco && cd $_
osc build --no-service --vm-type=kvm --keep-pkgs=RPMS
rpm -qp --qf '%{DEPENDSDICT}\n' RPMS/poco-devel-1.9.3-*.x86_64.rpm 
```

Diff looks thus:
```diff
filterdiff printrpmtags RPMS*/*devel*
-DEPENDSDICT=1342177287
+DEPENDSDICT=1342177291
```

When building on a filesystem without variations in readdir order (e.g. 
disorderfs in order mode or ext4 with dir_index disabled), differences go away.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/1056___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Generate file class dictionary after file classification for stability (#944)

2019-11-21 Thread Bernhard M. Wiedemann
Tested it with our khmeros-fonts build. Results are still reproducible.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/944#issuecomment-557048211___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] 4.15 creates unreproducible rpm file magic headers (#934)

2019-11-11 Thread Bernhard M. Wiedemann
The base level of reproducibility just needs us to be able to use the same 
inputs (that includes the libmagic binary) to give the same output - like a 
mathematical function.
On top of that, you can add advanced levels - e.g. try to get noarch packages 
that are actually the same when built on different archs (is not always true 
with pngs coming out of image scalers and svg renderers) - and one can find 
[interesting](https://bugzilla.opensuse.org/show_bug.cgi?id=1109949) 
[bugs](https://bugzilla.opensuse.org/show_bug.cgi?id=1109541) with it.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/934#issuecomment-552592075___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Preserve processing order in file classification (#936)

2019-11-11 Thread Bernhard M. Wiedemann
bmwiedemann approved this pull request.

Tested with this patch and got bit-reproducible results again. Thanks!



-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/936#pullrequestreview-315118642___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] 4.15 creates unreproducible rpm file magic headers (#934)

2019-11-11 Thread Bernhard M. Wiedemann
There are ways to do parallel processing and still get reproducible results - 
it is done in pigz or xz and even make -j .

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/934#issuecomment-552445976___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Only calculate buildhost and buildtime during an actual build (#935)

2019-11-11 Thread Bernhard M. Wiedemann
bmwiedemann approved this pull request.

Tested it. Looks good.



-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/935#pullrequestreview-314875746___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Set Build Date from changelog again (#933)

2019-11-11 Thread Bernhard M. Wiedemann
Added it.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/933#issuecomment-552354347___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Set Build Date from changelog again (#933)

2019-11-11 Thread Bernhard M. Wiedemann
> Why do we need this code in two places now?

The old one is still needed in case `SOUCE_DATE_EPOCH` is set by the caller of 
rpmbuild.
The new one is now needed for the case where we use the last changelog date via 
`%source_date_epoch_from_changelog Y`

The duplication is rather small, though.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/933#issuecomment-552350993___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Cannot set Build Date from changelog anymore (#932)

2019-11-11 Thread Bernhard M. Wiedemann
OK, so I was just annoyed that it took over 2 years from the commit to me 
finding this issue and #934 .
With 4.15-alpha only out in 2019-06, it is probably fairer to say, that rpm 
upstream could improve there.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/932#issuecomment-552350110___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] 4.15 creates unreproducible rpm mime headers (#934)

2019-11-09 Thread Bernhard M. Wiedemann
While working on reproducible builds for openSUSE, I found that 
rpm 4.15 creates rpm headers with mime types in random order.
Results become reproducible when I build on a 1-core VM, so it is probably 
related to the parallelism added in 4.15.

To see these headers I used `strings` on rpms that were building identical with 
4.14.2 .

Diff looks thus: 
```diff
--- filter/RPMS.2017/khmeros-fonts-5.0-0.0.noarch.rpm
+++ filter/RPMS/khmeros-fonts-5.0-0.0.noarch.rpm
@@ -146,13 +146,13 @@
 cpio
 noarch-suse-linux
 directory
-TrueType Font data, 23 tables, 1st "GDEF", 37 names, Macintosh, KhmerOS - font 
for the Khmer language of Cambodia??Copyright 2007 Danh Hong?? ??This font is fr
-TrueType Font data, 18 tables, 1st "GDEF", 35 names, Macintosh, KhmerOS - font 
for the Khmer language of Cambodia??Copyright 2007 Danh Hong?? ??This font is fr
+ASCII text
 TrueType Font data, 18 tables, 1st "GDEF", 35 names, Macintosh, KhmerOS - font 
for the Khmer language of Cambodia??Copyright 2005 Danh Hong??Copyright 2005 Ope
-TrueType Font data, 23 tables, 1st "GDEF", 35 names, Macintosh, KhmerOS - font 
for the Khmer language of Cambodia??Copyright 2007 Danh Hong?? ??This font is fr
 TrueType Font data, 18 tables, 1st "GDEF", 36 names, Macintosh, KhmerOS - font 
for the Khmer language of Cambodia??Copyright 2007 Danh Hong?? ??This font is fr
 TrueType Font data, 18 tables, 1st "GDEF", 35 names, Macintosh, KhmerOS - font 
for the Khmer language of Cambodia??Copyright 2007 Danh HongThis font is fre
-ASCII text
+TrueType Font data, 18 tables, 1st "GDEF", 35 names, Macintosh, KhmerOS - font 
for the Khmer language of Cambodia??Copyright 2007 Danh Hong?? ??This font is fr
+TrueType Font data, 23 tables, 1st "GDEF", 37 names, Macintosh, KhmerOS - font 
for the Khmer language of Cambodia??Copyright 2007 Danh Hong?? ??This font is fr
+TrueType Font data, 23 tables, 1st "GDEF", 35 names, Macintosh, KhmerOS - font 
for the Khmer language of Cambodia??Copyright 2007 Danh Hong?? ??This font is fr
   if [ -e /run/fontpackages/reconfigure-fonts ]; then 
 
   if test -x /usr/sbin/fonts-config ; then 
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/934___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Cannot set Build Date from changelog anymore (#932)

2019-11-08 Thread Bernhard M. Wiedemann
CC @kanavin @ffesti because you worked on that patch 2 years ago (yes, openSUSE 
is slow to adopt new major rpm versions)

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/932#issuecomment-551832511___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Cannot set Build Date from changelog anymore (#932)

2019-11-08 Thread Bernhard M. Wiedemann
This is a regression over 4.14.2
and not from #785 

I do set
```
%_buildhost reproducible
%source_date_epoch_from_changelog Y
%clamp_mtime_to_source_date_epoch Y
%use_source_date_epoch_as_buildtime Y
```

and I can see with `rpm -qpvl` that the file mtimes are correctly adjusted, but 
the Build Date header gets the current time with 4.15, where it got the 
changelog date with 4.14.2

I think commit fa303d5ba6bef5b4a44b884c6dadadc27b594caa broke setting 
`RPMTAG_BUILDTIME` from `SOURCE_DATE_EPOCH` when that is only parsed from the 
first changelog entry later.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/932___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Allow to keep a minimum number of changelog entries (#931)

2019-11-08 Thread Bernhard M. Wiedemann
https://github.com/bmwiedemann/openSUSE/blob/master/packages/r/rpm/rpm-shorten-changelog.diff
 maybe?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/931#issuecomment-551710004___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Allow to keep a minimum number of changelog entries (#931)

2019-11-08 Thread Bernhard M. Wiedemann
Allow to keep a minimum number of changelog entries
because some tools and workflows break when `_changelog_trimtime`
dropped all entries.

This also helps reproducible builds because
`%source_date_epoch_from_changelog` can only work when there is an
entry left

Note: test is still in progress
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/931

-- Commit Summary --

  * Allow to keep a minimum number of changelog entries

-- File Changes --

M build/parseChangelog.c (4)
M macros.in (4)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/931.patch
https://github.com/rpm-software-management/rpm/pull/931.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/931
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Initialize verifyFlags for specialdir (#656)

2019-04-04 Thread Bernhard M. Wiedemann
Initialize verifyFlags for specialdir, because
FileEntryFree(>cur) zeroed all fields, including verifyFlags, so we have to 
fill them again.

Closes issue #655

Note: only slightly tested
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/656

-- Commit Summary --

  * Initialize verifyFlags for specialdir

-- File Changes --

M build/files.c (1)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/656.patch
https://github.com/rpm-software-management/rpm/pull/656.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/656
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Document uncompressed payload (#542)

2018-09-20 Thread Bernhard M. Wiedemann
e.g. can be useful for src.rpms where .tar.xz files are already compressed
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/542

-- Commit Summary --

  * Document uncompressed payload

-- File Changes --

M macros.in (1)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/542.patch
https://github.com/rpm-software-management/rpm/pull/542.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/542
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] build: Make sure SOURCE_DATE_EPOCH is in the past (#536)

2018-09-01 Thread Bernhard M. Wiedemann
I'm already producing bit-identical RPMs using the 4 macros documented in
https://en.opensuse.org/openSUSE:Reproducible_Builds
So no changes on digests or signatures are needed atm.

Inaccuracy of $SOURCE_DATE_EPOCH does not matter, as long as it is in the past. 
Some people always set it to 1 (aka 1970-01-01 00:00:01) and are happy.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/536#issuecomment-417835992___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] build: Make sure SOURCE_DATE_EPOCH is in the past (#536)

2018-08-31 Thread Bernhard M. Wiedemann
Make sure SOURCE_DATE_EPOCH is in the past,
otherwise, builds before noon will not have normalized mtimes
from %clamp_mtime_to_source_date_epoch

This also helps other programs like tar --clamp-mtime

Tested successfully on openSUSE.
To reproduce, create a changelog entry with only a date
```
* Fri Aug 31 2018 user@host
- dummy
```
and build it before 12:00 UTC
using macros
```
%source_date_epoch_from_changelog Y
%clamp_mtime_to_source_date_epoch Y
%use_source_date_epoch_as_buildtime Y
%_buildhost reproducible
```

`rpm -qpvl` showed file mtime values to not be normalized
and therefore build results were not bit-identical.
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/536

-- Commit Summary --

  * build: Make sure SOURCE_DATE_EPOCH is in the past

-- File Changes --

M build/build.c (7)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/536.patch
https://github.com/rpm-software-management/rpm/pull/536.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/536
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] find-debuginfo.sh: sort output of find (#485)

2018-08-07 Thread Bernhard M. Wiedemann
updated to be minimal

-- 
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/485#issuecomment-411210510___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] find-debuginfo.sh: sort output of find (#485)

2018-08-01 Thread Bernhard M. Wiedemann
I experimented some more with it and found that only the sort in `dwz_files`
makes all the difference to the `shadow` binary rpm.
Do you prefer a minimal patch?

-- 
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/485#issuecomment-409801449___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] find-debuginfo.sh: sort output of find (#485)

2018-08-01 Thread Bernhard M. Wiedemann
@bmwiedemann pushed 1 commit.

166a65a  find-debuginfo.sh: ignore locales


-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/rpm-software-management/rpm/pull/485/files/388f20dc91c19c762f498d45fbf05401ae18633e..166a65a333636dae65c4a84420682167086248e1
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Add tests/README (#486)

2018-07-31 Thread Bernhard M. Wiedemann
to document how to run tests
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/486

-- Commit Summary --

  * Add tests/README

-- File Changes --

A tests/README (8)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/486.patch
https://github.com/rpm-software-management/rpm/pull/486.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/486
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] find-debuginfo.sh: sort output of find (#485)

2018-07-31 Thread Bernhard M. Wiedemann
We could add on top `export LC_ALL=C` to make sure locales do not influence the 
result (and drop the other 2 inline instances of that).
I did not yet bisect which of the changes makes what difference because 
test-cycles are slow.


>> Note: elfbins.list has remaining indeterminism from the `run_job`
>> function running in parallel unless using `-j1`

> So, this isn't a problem for creating reproducible builds?

No, that seems to not make a difference on rpms - only makes the build 
filesystem diff a bit messier.

-- 
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/485#issuecomment-409179734___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] find-debuginfo.sh: sort output of find (#485)

2018-07-30 Thread Bernhard M. Wiedemann
sort output of find in find-debuginfo.sh
to make build results more reproducible
in spite of indeterministic filesystem readdir order.

Even where these lists do not become part of an rpm,
it makes it easier to debug unrelated issues
by having less overall diff from diffing build filesystem trees (one of the 
standard reproducibility-debugging techniques I use).

For openSUSE, this helped to make squid, openssh, postfix and shadow
packages build reproducibly.

See https://reproducible-builds.org/ for why this is good.

Note: elfbins.list has remaining indeterminism from the `run_job` function 
running in parallel unless using `-j1`

Note: only tested in a slightly different variant on openSUSE's rpm-4.14.1
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/485

-- Commit Summary --

  * find-debuginfo.sh: sort output of find

-- File Changes --

M scripts/find-debuginfo.sh (9)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/485.patch
https://github.com/rpm-software-management/rpm/pull/485.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/485
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Override ghost+dir filesizes (#229)

2017-06-06 Thread Bernhard M. Wiedemann
Closed #229.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/229#event-1112101274___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Override ghost+dir filesizes (#229)

2017-06-02 Thread Bernhard M. Wiedemann
for directories and ghost files we do not want to
record their size in binary rpms
to make builds more reproducible.

See https://reproducible-builds.org/ for why this matters.

Note: I'm not sure if this is the best/correct way to do this, but at least it 
made the packages build bit-identical where they did not before.

To test add to %install section:
```
cd %{buildroot}/some/packaged/dir
for i in $(seq 1 $RANDOM) ; do touch xxx$i ; done
rm xxx*
```
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/229

-- Commit Summary --

  * Override ghost+dir filesizes

-- File Changes --

M build/files.c (3)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/229.patch
https://github.com/rpm-software-management/rpm/pull/229.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/229
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] Do not store digests of ghost files (#228)

2017-06-02 Thread Bernhard M. Wiedemann
Do not store digests of ghost files
when the files exist during build time.
The hash will never be used for verification anyway.

This helps making packages build more reproducibly.

To test use
```
echo $RANDOM > %{buildroot}/var/cache/ghostfile
%files
%ghost /var/cache/ghostfile
```
and check with `rpm -qp --dump $RPM`
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/228

-- Commit Summary --

  * Do not store digests of ghost files

-- File Changes --

M build/files.c (2)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/228.patch
https://github.com/rpm-software-management/rpm/pull/228.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/228
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Allow SOURCE_DATE_EPOCH to override file timestamps (#144)

2017-03-06 Thread Bernhard M. Wiedemann
on the semi-offtopic python .pyc timestamp issue see: 
https://github.com/python/cpython/pull/296

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/144#issuecomment-284450175___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Allow SOURCE_DATE_EPOCH to override file timestamps (#144)

2017-02-08 Thread Bernhard M. Wiedemann
@ffesti I restructured the code to get rid of the ugly 'static' globals.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/144#issuecomment-278313503___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] set SOURCE_DATE_EPOCH from changelog (#143)

2017-02-02 Thread Bernhard M. Wiedemann
I put it there because the spec says:
> Build systems MUST NOT overwrite this variable for child processes to consume 
> if it is already present.

But then, it probably does not apply if we had set it ourselves (and not the 
user) for the previous rpm to build.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/143#issuecomment-276958227___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] Allow SOURCE_DATE_EPOCH to override file timestamps (#144)

2017-02-02 Thread Bernhard M. Wiedemann
On 2017-02-02 13:46, Florian Festi wrote:
> I am not too keen on the use of global variable

Do you refer to "oneshot" or "SOURCE_DATE_EPOCH"?

> I wonder how we want to address the Python .pyc file issue

I was thinking that it would be better to do it like Debian and generate
those in %post
which also reduces the size of rpms and allows it to be noarch


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/144#issuecomment-276951194___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] set SOURCE_DATE_EPOCH from changelog (#143)

2017-02-01 Thread Bernhard M. Wiedemann
test looks good.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/143#issuecomment-276685196___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] set SOURCE_DATE_EPOCH from changelog (#143)

2017-02-01 Thread Bernhard M. Wiedemann
change looks reasonable. I am giving it a round of testing.
Under what condition would headerGet return false here? OOM? no changelog entry 
found?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/143#issuecomment-276678061___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


Re: [Rpm-maint] [rpm-software-management/rpm] set SOURCE_DATE_EPOCH from changelog (#141)

2017-02-01 Thread Bernhard M. Wiedemann
@ffesti added to macros.in 
and disabled the message for now, because I cannot find test 008 and 295 and I 
do not understand why it would get the message, which should only be output 
when $SOURCE_DATE_EPOCH is set. Is it set in your test environment? How to test 
locally?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/141#issuecomment-276617474___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint


[Rpm-maint] [rpm-software-management/rpm] set SOURCE_DATE_EPOCH from changelog (#141)

2017-01-30 Thread Bernhard M. Wiedemann
set SOURCE_DATE_EPOCH from changelog timestamp if requested by macro
to allow for more reproducible builds of packages.

See https://reproducible-builds.org/ for why this is good
and https://reproducible-builds.org/specs/source-date-epoch/
for the definition of this variable.

note: if changelog has only dates without times, time component will always be 
12:00:00
but that is usually fine
You can view, comment on, or merge this pull request online at:

  https://github.com/rpm-software-management/rpm/pull/141

-- Commit Summary --

  * set SOURCE_DATE_EPOCH from changelog

-- File Changes --

M build/parseChangelog.c (10)

-- Patch Links --

https://github.com/rpm-software-management/rpm/pull/141.patch
https://github.com/rpm-software-management/rpm/pull/141.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/141
___
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint