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.
|