We don't want to define `MacOS` in the generic OS, so let's make sure we
refer to it as `OS::Mac` in the places we need it.
This reverts commit 575cb0263cb1428c63b9428bbd913ffde83bd317.
"System Preferences" has been renamed to "System Settings" on Ventura.
Privacy and security settings have moved, too. This commit makes sure
these changes are reflected. (Some adjustments were already made in
#14092.)
Signed-off-by: Ruoyu Zhong <zhongruoyu@outlook.com>
Gives information about what is being updated, downloaded, etc. Else the updater is quite silent and it's hard to tell what's going on and when it will complete.
Example with the `--verbose` flag:
```
% softwareupdate --all --install --force --verbose
Software Update Tool
Finding available software
Downloading macOS Ventura 13.0
Password:
Downloading: 65.02%
```
This feature is documented via `--help`; i.e.:
```
% softwareupdate --help
usage: softwareupdate <cmd> [<args> ...]
** Manage Updates:
-l | --list List all appropriate update labels (options: --no-scan, --product-types)
-d | --download Download Only
-i | --install Install
<label> ... specific updates
-a | --all All appropriate updates
-R | --restart Automatically restart (or shut down) if required to complete installation.
-r | --recommended Only recommended updates
--os-only Only OS updates
--safari-only Only Safari updates
--stdinpass Password to authenticate as an owner. Apple Silicon only.
--user Local username to authenticate as an owner. Apple Silicon only.
--list-full-installers List the available macOS Installers
--fetch-full-installer Install the latest recommended macOS Installer
--full-installer-version The version of macOS to install. Ex: --full-installer-version 10.15
--install-rosetta Install Rosetta 2
--background Trigger a background scan and update operation
** Other Tools:
--dump-state Log the internal state of the SU daemon to /var/log/install.log
--evaluate-products Evaluate a list of product keys specified by the --products option
--history Show the install history. By default, only displays updates installed by softwareupdate.
** Options:
--no-scan Do not scan when listing or installing updates (use available updates previously scanned)
--product-types <type> Limit a scan to a particular product type only - ignoring all others
Ex: --product-types macOS || --product-types macOS,Safari
--products A comma-separated (no spaces) list of product keys to operate on.
--force Force an operation to complete. Use with --background to trigger a background scan regardless of "Automatically check" pref
--agree-to-license Agree to the software license agreement without user interaction.
--verbose Enable verbose output
--help Print this help
```
* Glibc 2.26+ (we use 2.35) require Linux kernel 3.2 or later.
* Remove GCC requirement given it doesn't matter for bottles (we install GCC ourselves if too old) and is probably wrong for the build-from-source case.
* Remove libxcrypt-compat requirement given we don't use libcrypt.so.1 anymore.
Fixes#13762.
There's still a bug in the GCC linkage check, but I'll need a bit more
time to work on a fix. This at least makes sure `brew doctor` will not
return the error in the issue linked above.
Right now this is done through the gcc@5 formula.
See 9692318ca6/Formula/gcc%405.rb (L33)
This is fragile because when we will migrate to gcc@11
we have to think about migrating the installation from one gcc formula to another..
Also, not having the right glibc version results in a non-functional brew
installation on an older Linux: the glibc installation needs
to be done by brew, and not by a workaround in a specific formula
Co-Authored-By: Mike McQuaid <mike@mikemcquaid.com>
Co-Authored-By: Bo Anderson <mail@boanderson.me>
Co-Authored-By: Shaun Jackman <sjackman@gmail.com>
The previous implementation was depending on a fix number of version number segments. Apple has introduced one more tag for the latest CLT version 13.4, which broke the check, leading to a false warning. With this rewritten regex we have a more robust version detection.
We were rewriting dylib IDs and install names using `MachO::Tools`,
which doesn't update the state of the file in memory. This leads to
those changes being undone when we call `delete_rpath`.
We fix this by making sure the state of the file in memory always
matches the state of file on disk.
Closes#12832.
It's possible that the output may be encoded ASCII-8BIT, which cannot be automatically encoded to UTF-8 by Ruby's JSON library.
In this particular case, elementaryOS 6.1 returns `Jólnir` as a part of the lsb_release Description field.
Ruby's IO.popen would return this whole output in ASCII-8BIT.
When this description field was passed to homebrew-bundle to be written in a JSON lockfile,
Ruby throws an exception because it could not automatically reencode from ASCII-8BIT to UTF-8.
This may actually affect other output of the calls to the underlying `Utils.popen_read` but this may be the first thing to trigger it since
JSON requires UTF-8 output and nothing else using that function may require UTF-8.
Fixes#12689 12689
FixesHomebrew/homebrew-bundle#1043