⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 290883 in webkit


Ignore:
Timestamp:
Mar 7, 2022, 4:43:32 AM (5 years ago)
Author:
berto@igalia.com
Message:

makeprop.pl breaks reproducible builds
​https://bugs.webkit.org/show_bug.cgi?id=237521

Reviewed by Carlos Garcia Campos.

  • css/makeprop.pl: Sort hash elements so the output file is always

the same across different builds.

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r290881 r290883  
     12022-03-07  Alberto Garcia  <berto@igalia.com>
     2
     3        makeprop.pl breaks reproducible builds
     4        https://bugs.webkit.org/show_bug.cgi?id=237521
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        * css/makeprop.pl: Sort hash elements so the output file is always
     9        the same across different builds.
     10
    1112022-03-07  Nikolas Zimmermann  <nzimmermann@igalia.com>
    212
  • trunk/Source/WebCore/css/makeprop.pl

    r288114 r290883  
    5656my $jsonHashRef = $jsonDecoder->decode($input);
    5757my $propertiesHashRef = $jsonHashRef->{properties};
    58 my @allNames = keys(%$propertiesHashRef);
     58my @allNames = sort keys(%$propertiesHashRef);
    5959die "We've reached more than 1024 CSS properties, please make sure to update CSSProperty/StylePropertyMetadata accordingly" if @allNames > 1024;
    6060
    … …  
    473473    switch (id) {
    474474EOF
    475   foreach my $name (keys %runtimeFlags) {
     475  foreach my $name (sort keys %runtimeFlags) {
    476476    print GPERF "    case CSSPropertyID::CSSProperty" . $nameToId{$name} . ":\n";
    477477    print GPERF "        return RuntimeEnabledFeatures::sharedFeatures()." . $runtimeFlags{$name} . "Enabled();\n";
    … …  
    501501EOF
    502502
    503 foreach my $name (keys %settingsFlags) {
     503foreach my $name (sort keys %settingsFlags) {
    504504  print GPERF "    case CSSPropertyID::CSSProperty" . $nameToId{$name} . ":\n";
    505505  print GPERF "        return settings->" . $settingsFlags{$name} . "();\n";
    … …  
    648648    switch (id) {
    649649EOF
    650 for my $logicalPropertyGroup (values %logicalPropertyGroups) {
    651     for my $name (values %{ $logicalPropertyGroup->{"logical"} }) {
     650for my $logicalPropertyGroup (sort values %logicalPropertyGroups) {
     651    for my $name (sort values %{ $logicalPropertyGroup->{"logical"} }) {
    652652        print GPERF "    case CSSPropertyID::CSSProperty" . $nameToId{$name} . ":\n";
    653653    }
    … …  
    666666EOF
    667667
    668 for my $logicalPropertyGroup (values %logicalPropertyGroups) {
     668for my $logicalPropertyGroup (sort values %logicalPropertyGroups) {
    669669    for my $kind ("logical", "physical") {
    670         for my $name (values %{ $logicalPropertyGroup->{$kind} }) {
     670        for my $name (sort values %{ $logicalPropertyGroup->{$kind} }) {
    671671            print GPERF "    case CSSPropertyID::CSSProperty" . $nameToId{$name} . ":\n";
    672672        }
    … …  
    686686EOF
    687687
    688 for my $logicalPropertyGroup (values %logicalPropertyGroups) {
     688for my $logicalPropertyGroup (sort values %logicalPropertyGroups) {
    689689    my $logical = $logicalPropertyGroup->{"logical"};
    690690    my $physical = $logicalPropertyGroup->{"physical"};
    691691    for my $first ($logical, $physical) {
    692692        my $second = $first eq $logical ? $physical : $logical;
    693         while (my ($resolver, $name) = each %{ $first }) {
     693        for my $resolver (sort keys %{ $first }) {
     694            my $name = $first->{$resolver};
    694695            print GPERF "    case CSSPropertyID::CSSProperty" . $nameToId{$name} . ":\n";
    695696        }
    696697        print GPERF "        switch (id2) {\n";
    697         while (my ($resolver, $name) = each %{ $second }) {
     698        for my $resolver (sort keys %{ $second }) {
     699            my $name = $second->{$resolver};
    698700            print GPERF "        case CSSPropertyID::CSSProperty" . $nameToId{$name} . ":\n";
    699701        }
    … …  
    719721EOF
    720722
    721 for my $logicalPropertyGroup (values %logicalPropertyGroups) {
    722     while (my ($resolver, $name) = each %{ $logicalPropertyGroup->{"logical"} }) {
     723for my $logicalPropertyGroup (sort values %logicalPropertyGroups) {
     724    for my $resolver (sort keys %{ $logicalPropertyGroup->{"logical"} }) {
     725        my $name = $logicalPropertyGroup->{"logical"}->{$resolver};
    723726        my $kind = $logicalPropertyGroup->{"kind"};
    724727        my $kindId = nameToId($kind);
Note: See TracChangeset for help on using the changeset viewer.