That way of downloading Mac OS X updates and new apps was introduced with Snow Leopard and means that anyone with a Mac running Mac OS X 10.5 Leopard or earlier can't actually access the Mac. The first release of the new OS — Mac OS X Server 1.0 — used a modified version of the Mac OS GUI, but all client versions starting with Mac OS X Developer Preview 3 used a new theme known as Aqua. SeeShell Editions: Community (Free) & PRO. In a nutshell: The SeeShell Community Edition is 100% free - even for commercial use. The SeeShell Community Edition is free for private.and. commercial use. SeeShell is classic downloadable software, not a web service.All macros are stored and executed locally on your machine.
There are instructions for other platforms linked from the get the code page.
Instructions for Google Employees
Are you a Google employee? See go/building-chrome instead.
System requirements
A 64-bit Intel Mac running 10.15.4+. (Building on Arm Macs is not yet supported.)
Xcode 12.2+. This version of Xcode comes with ..
The macOS 11.0 SDK. Run
to check whether you have it. Building with a newer SDK usually works too (please fix it if it doesn't), but the releases currently use Xcode 12.2 and the macOS 11.0 SDK.
Install depot_tools
Clone the depot_tools
repository:
Add depot_tools
to the end of your PATH (you will probably want to put this in your ~/.bash_profile
or ~/.zshrc
). Assuming you cloned depot_tools
to /path/to/depot_tools
(note: you must use the absolute path or Python will not be able to find infra tools):
Get the code
Ensure that unicode filenames aren't mangled by HFS:
In System Preferences, check that 'Energy Saver' -> 'Power Adapter' -> 'Prevent computer from sleeping automatically when the display is off' is checked so that your laptop doesn't go to sleep and interrupt the long network connection needed here.
Create a chromium
directory for the checkout and change to it (you can call this whatever you like and put it wherever you like, as long as the full path has no spaces):
Run the fetch
tool from depot_tools
to check out the code and its dependencies.
If you don't need the full repo history, you can save time by using fetch --no-history chromium
. You can call git fetch --unshallow
to retrieve the full history later.
Expect the command to take 30 minutes on even a fast connection, and many hours on slower ones.
When fetch
completes, it will have created a hidden .gclient
file and a directory called src
in the working directory. The remaining instructions assume you have switched to the src
directory:
Optional: You can also install API keys if you want your build to talk to some Google services, but this is not necessary for most development and testing purposes.
Setting up the build
Chromium uses Ninja as its main build tool along with a tool called GN to generate .ninja
files. You can create any number of build directories with different configurations. To create a build directory:
- You only have to run this once for each new build directory, Ninja will update the build files as needed.
- You can replace
Default
with another name, but it should be a subdirectory ofout
. - For other build arguments, including release settings, see GN build configuration. The default will be a debug component build matching the current host operating system and CPU.
- For more info on GN, run
gn help
on the command line or read the quick start guide. - Building Chromium for arm Macs requires additional setup.
Faster builds
Full rebuilds are about the same speed in Debug and Release, but linking is a lot faster in Release builds.
Put
in your args.gn
to do a release build.
Put
in your args.gn
to build many small dylibs instead of a single large executable. This makes incremental builds much faster, at the cost of producing a binary that opens less quickly. Component builds work in both debug and release.
Put
in your args.gn to disable debug symbols altogether. This makes both full rebuilds and linking faster (at the cost of not getting symbolized backtraces in gdb).
CCache
You might also want to install ccache to speed up the build.
Build Chromium
Build Chromium (the 'chrome' target) with Ninja using the command:
(autoninja
is a wrapper that automatically provides optimal values for the arguments passed to ninja
.)
You can get a list of all of the other build targets from GN by running gn ls out/Default
from the command line. To compile one, pass the GN label to Ninja with no preceding '//' (so, for //chrome/test:unit_tests
use autoninja -C out/Default chrome/test:unit_tests
).
Run Chromium
Once it is built, you can simply run the browser:
Avoiding the 'incoming network connections' dialog
Every time you start a new developer build of Chrome you get a system dialog asking 'Do you want the application Chromium.app to accept incoming network connections?' - to avoid this, run with this command-line flag:
--disable-features='MediaRouter'
Running test targets
You can run the tests in the same way. You can also limit which tests are run using the --gtest_filter
arg, e.g.:
You can find out more about GoogleTest at its GitHub page.
Debugging
Good debugging tips can be found here.
Update your checkout
To update an existing checkout, you can run
The first command updates the primary Chromium source repository and rebases any of your local branches on top of tip-of-tree (aka the Git branch origin/master
). If you don't want to use this script, you can also just use git pull
or other common Git commands to update the repo.
The second command syncs dependencies to the appropriate versions and re-runs hooks as needed.
Tips, tricks, and troubleshooting
Using Xcode-Ninja Hybrid
While using Xcode is unsupported, GN supports a hybrid approach of using Ninja for building, but Xcode for editing and driving compilation. Xcode is still slow, but it runs fairly well even with indexing enabled. Most people build in the Terminal and write code with a text editor, though.
With hybrid builds, compilation is still handled by Ninja, and can be run from the command line (e.g. autoninja -C out/gn chrome
) or by choosing the chrome
target in the hybrid project and choosing Build.
To use Xcode-Ninja Hybrid pass --ide=xcode
to gn gen
:
Open it:
You may run into a problem where http://YES is opened as a new tab every time you launch Chrome. To fix this, open the scheme editor for the Run scheme, choose the Options tab, and uncheck 'Allow debugging when using document Versions Browser'. When this option is checked, Xcode adds --NSDocumentRevisionsDebugMode YES
to the launch arguments, and the YES
gets interpreted as a URL to open.
If you have problems building, join us in #chromium
on irc.freenode.net
and ask there. Be sure that the waterfall is green and the tree is open before checking out. This will increase your chances of success.
Improving performance of git status
Increase the vnode cache size
git status
is used frequently to determine the status of your checkout. Due to the large number of files in Chromium‘s checkout, git status
performance can be quite variable. Increasing the system's vnode cache appears to help. By default, this command: Sumosumo relased 1.6.3.9 mac os.
Outputs kern.maxvnodes: 263168
(263168 is 257 * 1024). To increase this setting:
Higher values may be appropriate if you routinely move between different Chromium checkouts. This setting will reset on reboot, the startup setting can be set in /etc/sysctl.conf
:
Or edit the file directly.
Configure git to use an untracked cache
If git --version
reports 2.8 or higher, try running
If the output ends with OK
, then the following may also improve performance of git status
:
If git --version
reports 2.6 or higher, but below 2.8, you can instead run Paco and the tumbling seed box mac os.
Xcode license agreement
If you're getting the error
Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
the Xcode license hasn't been accepted yet which (contrary to the message) any user can do by running:
Only accepting for all users of the machine requires root:
3 Years ago01 Dec 2017 5:52 pm by Dog Cow
I learned about FreeTerm because version 1.6 was included and documented in the May 1985 Macintosh Software Supplement. After trying Smartcom and BackDown DA, I now prefer FreeTerm, written by William Bond. FreeTerm versions 1.0 through 1.8 were originally written to promote MacBinary as a file transmission standard in the Macintosh world. Version 2.0 was written to encourage use of MacBinary II.
This blog article is a continuation in a series on XMODEM file transfers between the Mac 512K and my Mac mini running OS X. See the prior article on BackDown, which has links to all the preceding articles.
About FreeTerm 2.0
Taking up just 47K on disk, FreeTerm 2.0 is compatible with the original 64K ROM in a Mac 512K running System 2.0/Finder 4.1, all the way up to System 6 on a Mac 512Ke.
Download FreeTerm 2.0 at Mac GUI Vault
FreeTerm is a simple and free 24 line by 80 character glass-TTY (dumb) terminal emulator. It can send and receive ASCII text files, supports XMODEM file transfer with MacBinary, can copy and paste to the Clipboard, and will send all 128 ASCII characters from the Mac keyboard.
There is no VT100 or VT52 emulation.
Version 2.0, released in August 1987, adds several good improvements over version 1.8, including:
- up to 57600 baud
- better MacBinary support
- can unpack PackIt I, II, or III compressed archives
- resizable terminal window
- fast-track XMODEM for error-free serial links
Starting and Configuring FreeTerm 2.0
Double-click the FreeTerm 2.0 icon in the Finder to launch the application. The first time you start, you will be asked which port to use for communications. Select the Modem port. You should always use the Modem port for communications because it has a higher interrupt priority, making it less likely to lose characters at high transmission speeds. Click 'Make Default' to save this selection.
An empty terminal window opens. Nothing you type will appear on the screen yet. First you need to configure the terminal. Choose Settings.. from the Terminal
Module Mac Os
menu.in the Settings dialog, you will see the standard RS232 transmission settings with speed, data bits, stop bits, and so on. In 99% of cases, you will not need to change any of the radio buttons except for Speed. 57600 seems to work well for me, at least for XMODEM transfers.
Now the set of checkboxes at the bottom of the dialog are a different story. These you will need to change. I recommend the settings shown in the screenshot below, with MacBinary Xmodem, Fast-Track Xmodem checked.
Click 'Make Default' to save the settings for next time you use FreeTerm. Or if you don't want your changes to be saved after you quit, just click OK. You are now ready to use FreeTerm 2.0!
Terminal Emulation
As stated earlier, FreeTerm 2.0 is dumb terminal emulator. That means there is no VT100 or other type of sophisticated terminal emulation. Still, you can navigate your way around a Unix or Linux system.
There are a number of tutorials that show how to configure a *nix system so that serial terminals can log in. Depending on which version of Mac OS X you're using, the technique changes. On OS X 10.2, for example, it's fairly straightforward to open a serial line in /etc/ttys
But newer versions of Mac OS X don't use that file the same way. I found that the instructions on this page, Serial console login on OS X, worked for me on Mac OS X 10.5.8.
In the Terminal application, type:
Code: |
screen /dev/cu.usbserial-A906CJB1 57600 |
Be sure to replace the cu.usbserial device with the correct name of your USB-to-serial adapter (if you're using one), and change the baud rate if you needed.
In screen, press Control-A. Type a colon ( : ) then type:
Code: |
exec ::: /usr/libexec/getty std.57600 |
Again, change the baud rate if needed. If you have FreeTerm running on the Mac 512K and the serial connection is good, you should see a login prompt on the Mac 512K's terminal window.
Try logging in and running some commands. Everything will be echoed on both screens, including your login password typed from the Mac 512K (the one exception is that your password will not show up on the Mac 512K's screen).
XMODEM File Transfers
I find that FreeTerm's greatest utility is for XMODEM file transfers. Open the File menu and choose Xmodem receive.. to download a file.
On the sending machine, start the XMODEM file transfer. On the Mac 512K, you will next see a dialog box asking for a file name and location. If you're transferring a MacBinary-encoded file (which you should be doing, because this is the best format!) the file name doesn't matter. MacBinary includes the file name and FreeTerm will automatically use that name for the received file.
Don't you love those old-fashioned, pre-hierarchical Standard File dialogs? After a some moments, the Mac 512K will start downloading the file. After a few seconds or a few minutes, depending on the size of the file, the Mac will beep to signal that transfer is complete. MacBinary files are automatically decoded; there is no need to use BinHex 5.0 on them.
If the file you downloaded was compressed with PackIt, you can choose UnPack File..
Bluetooth Module Mac Os
from the File menu to extract its contents. I discovered that FreeTerm's unpack routines are incompatible with some PackIt archives. I'm not sure what the exact problem was, but when I couldn't use FreeTerm's UnPack command, I was able to use the PackIt II application to extract.FreeTerm can send files via XMODEM too. They will be automatically encoded in MacBinary II format, as long as you checked the MacBinary option in the terminal settings dialog. I have not yet been able to configure lrz on Mac OS X to successfully receive files sent from the Mac 512K. I always get a timeout. Anyone know what I'm doing wrong?
In conclusion, after having tried Smartcom II, BackDown DA, and now FreeTerm 2.0, FreeTerm is now my preferred way to download files to the Mac 512K. In terms of features and compatibility, BackDown and FreeTerm are quite similar, but FreeTerm wins out because it supports up to 57600 baud which makes transfers go much more quickly.
I recently transferred a 1.2MB file with XMODEM and 9200 baud to Mac 512Ke with a hard disk, and it took about 45 minutes! So faster speeds really make a difference.
The next article in the Mac 512K blog will either be about Macintosh XINU, if I can find a working copy, otherwise it will be about disk cache and RAM disks.
The Mac 512K Blog wrote: |
This blog chronicles the Macintosh 512K and my projects with it. We will test software, fix hardware, program it, hack it, and generally take the 512K Macintosh to its limits. Do leave any feedback you may have, either to my email dog_cow@macgui.com or by posting a comment to this article. |