VSCode Extremely Long Build & Builds Linux on the Way?

Hi all,

As a FreeBSD newcomer, I recently attempted to install VSCode to use GitHub Copilot's Agent Mode for reviving an abandoned project. My experience raised some questions I hope the community can address.

The build process was unexpectedly intensive:

Script started on Fri May 2 19:47:11 2025
Script done on Sat May 3 01:56:03 2025

Six hours of building culminated in what appeared to be compiling Linux itself:
https://codeload.github.com/torvalds/linux/tar.gz/v5.17-rc1?

This followed building Rust from source and downloading numerous large dependencies.

First, I'd like to sincerely thank everyone maintaining the VSCode port - clearly a complex undertaking requiring significant effort.

My questions:

1. Is my hardware simply inadequate? I adopted FreeBSD partly to extend hardware longevity. If others complete this build in ~30 minutes, perhaps my expectations need adjustment.

2. Is this extensive compilation normal? Should I expect to build Linux and other major components when installing VSCode?

3. If this complexity is unavoidable for licensing reasons, could we improve user expectations with appropriate warnings? Like do some rough math to say "Run this overnight" or "Run this for a week" or...(ideas sought?)

While I respect traditional tools, AI-assisted development is becoming increasingly important for many developers. For FreeBSD to remain relevant on desktops/laptops, tools like VSCode with AI integration need reasonable installation processes.

I appreciate any insights the community can provide.

Thanks,

Steven
 
If i recall - actual VS Code is takes moments to build but Electron is the problem.
You cant try to install dependencies and build actual VS Code.
# make all-depends-list | cut -c 12- | xargs pkg install -y
Ive used this command in the past successfully but im sure gurus can tell if its ok or wrong.
 
Thanks for the tip, GlitchyDot!

By this metric there are...so many deps.

# wc -l /tmp/deplist
949 /tmp/deplist

I'll include them after for guru diagnosis but whooooooooeeeeeee.

Steven
 

Attachments

Hello,
maybe try with a ports-mgmt/portmaster using flag --packages|-P or --packages-only|-PP

OK, sure thing. The top level is much more intelligible (and I suppose I should be learning portmaster sooner versus later....).

On the top-level, these seem pretty reasonable. I don't understand why I was building the universe from hydrogen though.
 

Attachments

1. Is my hardware simply inadequate? I adopted FreeBSD partly to extend hardware longevity. If others complete this build in ~30 minutes, perhaps my expectations need adjustment.
[...]
3. If this complexity is unavoidable for licensing reasons, could we improve user expectations with appropriate warnings? Like do some rough math to say "Run this overnight" or "Run this for a week" or...(ideas sought?)

You didn't tell us anything about your hardware, so how are we supposed to know whether it is inadequate?

I must have missed something, is there no package for this? In general there is no good place to put a warning about compile time that the user reliably sees. I assume that people who want to build large packages have at least a $1000 PC, which does things reasonably fast (at least a $1000 desktop, laptop need some care).
 
I must have missed something, is there no package for this? In general there is no good place to put a warning about compile time that the user reliably sees. I assume that people who want to build large packages have at least a $1000 PC, which does things reasonably fast (at least a $1000 desktop, laptop need some care).
I had encountered that ports that depend on electron can be missing sometimes in FreeBSD package repositories. I am building ports myself on a relatively cheap machine that we bought for 5500 Turkish lira in 2022. However, I think that users should know the average compilation times of some big ports so that they can plan something or to end their worries.
 
I had encountered that ports that depend on electron can be missing sometimes in FreeBSD package repositories. I am building ports myself on a relatively cheap machine that we bought for 5500 Turkish lira in 2022. However, I think that users should know the average compilation times of some big ports so that they can plan something or to end their worries.

But the compilation time is very hard to predict. Especially if you take into account that some (many?) people don't have enough RAM to keep all CPUs and hardware threads busy.
 
But the compilation time is very hard to predict. Especially if you take into account that some (many?) people don't have enough RAM to keep all CPUs and hardware threads busy.
Yes, times would vary between different specs. I recently built linux from scratch and the lfs book was giving average compilation time of a program in SBU values calculated by compiling a program in a single core.
 
It's all said here.
Electron is the cause of the long build and the workaround is to preinstall this dependency.
But still I was unable to build VSCode due to memory limits and this system has 16GB RAM.
I had to wait until it gets available to update instead.

VSCode is a great development tool and I wouldn't need it if I had a good alternative.
I've an opinion regarding M$ products, they should definitively focus on developing Office and Development tools, they are really good on this, provide it to all platforms even if paid and quit once and for all developing OS.
 
Its actually much worse than that. You have to include the vast amounts of node / npm microdeps that the Makefile pulls in out-of-band.

From the plist file, you see that you have another few hundred.

Its not maintainable. Ditch it.
I'd like to key in on this last line.

Is it that getting it fully installed is going to be a challenge (still) ... but that once installed things will be relatively OK

OR

that, once installed, it will continue to require consistent upgrades to these these sub-systems and will never reach the levels of stability one encounters on OSX or Windows (not sure about Linux).
 
But the compilation time is very hard to predict. Especially if you take into account that some (many?) people don't have enough RAM to keep all CPUs and hardware threads busy.

Fair enough. Here are the details (but, admittedly, it's old).

CPU: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz (2400.00-MHz K8-class CPU)
Origin="GenuineIntel" Id=0x406e3 Family=0x6 Model=0x4e Stepping=3
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,

real memory = 4294967296 (4096 MB)
avail memory = 3941879808 (3759 MB)

FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s) x 2 hardware threads


I am highly interested in extending the usable life of older computers 1) because environmentalism / longer life / less digital supply chain slowly poisoning the environment, etc. and 2) because I mentor some individuals for whom a spare $1,000.00 might as well be considered a spare month of rent. I've used PuppyLinux and AntiX Linux as "minimalist" platforms, but like presenting the operating systems model of FreeBSD more (esp. sans systemd magic).
 
Is it that getting it fully installed is going to be a challenge (still) ... but that once installed things will be relatively OK

OR

that, once installed, it will continue to require consistent upgrades to these these sub-systems and will never reach the levels of stability one encounters on OSX or Windows (not sure about Linux).
Likely to be the latter. We do have occasional ports breaking and things like VSCode are the most likely to become faulty.

You will often run into similar to this, this and this.
 
I am highly interested in extending the usable life of older computers 1) because environmentalism / longer life / less digital supply chain slowly poisoning the environment, etc. and 2) because I mentor some individuals for whom a spare $1,000.00 might as well be considered a spare month of rent. I've used PuppyLinux and AntiX Linux as "minimalist" platforms, but like presenting the operating systems model of FreeBSD more (esp. sans systemd magic).

That is all perfectly normal. But you can't combine it with compiling the monster ports.
 
That is all perfectly normal. But you can't combine it with compiling the monster ports.

cracauer@ Thanks for the information.

What are the options here? At present, it would seem like we cannot get VSCode running on anything but high-end hardware. And, per above, we're going to need to rebuild (often -- yeaccch) because the sub-systems will slip into mutual incomprehensibility.

And while it might be moot, I think that for a lot of coders, particularly early-stage, VSCode is coding. Additionally, it also offers the highest levels of integration with coding AI interfaces (e.g. GitHub Copilot, Claude Code). I can't help but feel like it might leave FreeBSD in an unstrategic position if we're not able to provide a reasonable installation path (perhaps a matter for the foundation?)
 
You're expecting reasonable compilation times with an electron/nodejs abomination, on a CPU that is literally 10 years old with only two cores?

Wat?
 
What are the options here? At present, it would seem like we cannot get VSCode running on anything but high-end hardware. And, per above, we're going to need to rebuild (often -- yeaccch) because the sub-systems will slip into mutual incomprehensibility.

You can attain most of your objectives by getting a beefy computer for yourself and provide built packages to your peers with wimpy machines.

You also don't have to spend a literal $1000. An AMD 5950x AMD system is a good road runner and pretty cheap with its DDR4 and "old" boards.
 
You're expecting reasonable compilation times with an electron/nodejs abomination, on a CPU that is literally 10 years old with only two cores?

Wat?
I suppose that varies on the definition of reasonable, but a whole work day would have been my upper bound.
 
You can attain most of your objectives by getting a beefy computer for yourself and provide built packages to your peers with wimpy machines.

You also don't have to spend a literal $1000. An AMD 5950x AMD system is a good road runner and pretty cheap with its DDR4 and "old" boards.
This is excellent and practical.

I’ve not waded into this part of the FreeBSD universe, but I’m going to use poudrierel to turn ports into pkgs and then share those? They key ingredients being poudriere jail and the port formulae to generate the artifact?
 
This is excellent and practical.

I’ve not waded into this part of the FreeBSD universe, but I’m going to use poudrierel to turn ports into pkgs and then share those? They key ingredients being poudriere jail and the port formulae to generate the artifact?

You can also make *.pkg files with a plain ports tree, but poud is oreferred.
 
Back
Top