~fullermd/freebsd-rustdate/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
= freebsd-rustdate changelog


== 1.2.1  (2025-01-19)

* Fix setting flags to properly respect basedir.


== 1.2.0  (2025-01-19)

* Fix an error when a path was removed during patches, it might wind up
  causing an error on later upgrades due to some misunderstanding of
  freebsd-update's metadata.  This would have shown up as an error during
  `upgrade` that looks like
    I was wrong, there are 1 entries only on old!
  Common trigger was an attempt to upgrade from 12.3 or 13.1 release to
  later versions, where the /usr/share/zoneinfo/SystemV dir was removed.

* Failures to set schg flags during install are no longer fatal, they
  just tell you what failed.

* A locally-removed directory in a path that matches UpdateIfUnmodified
  will no longer be removed from consideration, and it will be re-created
  on `install`.  This resolves a bug where a removed subtree caused later
  errors on install when trying to install the files within that tree.
  If you really want a subtree to be gone and untouched, add it to
  IgnorePaths.


== 1.1.0  (2024-12-29)

* Support HTTP_PROXY / http_proxy for compatibility with phttpget (and
  thus f-u.sh).

* Be gentler about the message and exit condition when `fetch` finds no
  paths to scan.  While for cases like `upgrade` that would be a strong
  signal that there's some broken data somewhere (and so they are left as
  error cases), it can happen "normally" with fetch when there are no
  updates published (or at least, none that affect components you've
  installed).

* When installing a hardlink fails, a complaint will be output and
  creating a symlink will be tried as a fallback.  This should allow the
  process to complete in a reasonable way in some edge cases where you'd
  wind up with cross-device links (e.g., / and /root being different
  filesystems).

* The install steps will now more consistently attempt to complete before
  returning errors encountered along the way.


== 1.0.1  (2024-09-22)

* Fix build on i386, which uses a different size argument to chflags().
  Strictly speaking, i386 is the one that's right here, and amd64 uses a
  too-large type, so push the real (u32) down as far as possible and do
  last-minute conversion to handle amd64.


== 1.0.0  (2024-09-19)

* Bump to full production release.

* Progress bars now include a rough ETA estimate.


== 0.7.4  (2024-09-18)

* No user-visible changes; this release just includes internal dev
  improvements.

* Internal: Clippy config has been added and lints dealt with.  No
  functional change.

* Internal: A script to automate generating release tarballs is added.


== 0.7.3  (2024-09-17)

* Support for non-standard subcomponents is now enabled.  This will fix
  operation with some custom builds that have things that don't exist in
  the official servers.  If this affected you, you'd know because
  operations like fetch would have blown up early on with an error like
      Bad subcomponent: Matching variant not found

* `-d` is now accepted as an alias for the global `-w` / `--workdir`
  option, for compatibility with freebsd-update.sh.

* Internal: uses of derivative have been replaced with educe.  No visible
  change at the user level.


== 0.7.2  (2024-09-15)

* Make version figuring more robust.  When no kernel is installed (as may
  be common in a subdir or jail), `freebsd-version -ku` would throw an
  error instead of giving us useful versions, which would have caused us
  to fail.  But we only need both versions so we're sure to get the
  higher patchlevel, so we can just quietly handle that.

* `install`ing an `upgrade` will remind you to update your bootblocks.


== 0.7.1  (2024-09-12)

* `extract` now has a `--no-sync` arg like `install`, to disable calling
  `fsync()` on each file as it's installed.


== 0.7.0  (2024-09-12)

* The `install` and `extract` commands now take a `-j` argument to enable
  multi-thread parallel installation.  Note that this is a bool; the
  global `-j` argument sets the number of threads, this just enables
  using them for the installs.  This is potentially dangerous since it
  can cause a lot more damage if something goes wrong (e.g., it won't
  stop on the first error like a non-parallel install), but it can also
  be faster.  This should be considered experimental (even by
  freebsd-rustdate standards).

* Internal: the custom threadpool used for parallelizing various actions
  has been replaced by direct usage of rayon.  This shouldn't cause any
  user-visible effects, but simplifies the code and probably has trivial
  resource usage improvements.

* Internal: various code cleanups and rearrangement.


== 0.6.3  (2024-09-01)

* Added 'complete' command to generate shell completions for various
  shells.


== 0.6.2  (2024-08-29)

* Permissions on existing directories are now more consistently set if
  necessary.  This is most visible on `extract` and on upgrades with
  KeepModifiedMetadata disabled.

* Various code cleanup and rearrangement.


== 0.6.1  (2024-08-22)

* Further code cleanups and reorganization.

* Improve some output cosmetics.


== 0.6.0  (2024-08-21)

* Add `check-fetch` command to quickly check whether we seem to be on the
  latest patchlevel.

* Improve command and option help.

* Various code and comment rearrangement and cleanup.


== 0.5.0  (2024-08-20)

* Add `cron` command to run with a variable sleep from cron, and email
  the config'd MailTo when there's something to do.


== 0.4.0  (2024-08-18)

* Add `extract` command to extract exact upstream values of given paths.
  This is intended to be used for manual spot cleanups of differences
  identified by `check-sys` that you don't want to actually differ.  It
  has few guardrails and is intended to do exactly what you say, so use
  it with caution.

* When ignoring hash difference, `check-sys` will no longer compute the
  hashes of the files, which saves a lot of time.


== 0.3.1  (2024-08-15)

* The `check-sys` command has gained `--path` and `--exclude` arguments
  to limit the paths checked, and the output format is cosmetically
  adjusted.

* KeepModifiedMetadata now properly ignores uid/gid when running as
  non-root.  This is necessary because otherwise you'd miss out on a file
  mode changing across versions.

* Doing an upgrade from a non-latest-patchlevel is a bit more robust now.


== 0.3.0  (2024-08-14)

* Add `check-sys` command, which checks the state of your system against
  the expected status from upstream.  Fills a similar role to
  freebsd-update.sh's IDS command.


== 0.2.0 (2024-08-13)

First actual release.  Basic functionality available. fetch, upgrade,
install all working in practice.