# fpcupdeluxe: a GUI front end for building Free Pascal and Lazarus

> fpcupdeluxe is the graphical member of a family of tools that wrap svn and make to build Free Pascal and Lazarus from source, adding a windowed interface and cross compilation support on top. It is aimed at people who want a second, isolated Lazarus installation next to the one they already have.

**LongDirtyAnimAlf/fpcupdeluxe** — A GUI based installer for FPC and Lazarus

- Repository: https://github.com/LongDirtyAnimAlf/fpcupdeluxe
- Stars: 643 · Forks: 119
- Language: Pascal
- License: not declared
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/longdirtyanimalf-fpcupdeluxe

## Wrappers around svn and make

The What is it section gives the honest answer in one line: fpcup, fpclazup and fpcupdeluxe are basically wrappers around svn/make on steroids. They try to use the FPC/Lazarus build process as much as possible.

That is the whole mechanism. Building Free Pascal or Lazarus from source means checking out a source tree with subversion, having the right bootstrap compiler and binutils, and driving a make-based build with the correct configuration for the target. The fpcup family automates that sequence, and fpcupdeluxe is the latest addition that adds a GUI to ease its use, with shortcuts on your desktop that point to the new Lazarus installation.

The stated purpose is to be used side by side with other FPC and Lazarus installations. The mechanism for that isolation is a separate primary config path directory for the new Lazarus installation, so it does not interfere with existing Lazarus installs. That is the detail that decides whether the tool is useful to you, because a from-source Lazarus that fights with your package-installed one is worse than useless.

The scope also includes cross compilation, which is treated as a first-class feature rather than an afterthought.

## Three tools and a lineage going back to 2015

The top of the README lists four URLs, and they tell the history. The original is the Bitbucket repository for fpcup, the updated one is a GitHub repository named Reiniero-fpcup, the new one is the newpascal/fpcupdeluxe repository, and the wiki lives on the Free Pascal wiki.

This repository, under the LongDirtyAnimAlf organisation, is a fork of that newpascal project, and the reason is visible in the Acknowledgement section. As of August 28, 2015, the new repository contains all previous commits by Reinier, with many thanks towards the user "Arvur" from the forum for making it possible, and a pointer to the fpcup development thread on the Lazarus forum where the work is discussed.

Two practical consequences follow. First, the project has been in continuous use for more than a decade, which is visible in the release numbering and in the fact that the tool still supports FreeBSD 9 and a legacy variant of itself. Second, the split of responsibilities matters for anyone filing a bug: the Contact section says issues and patches go to the newpascal/fpcupdeluxe issue tracker, not to this fork, and the wiki, not the repository, is where the user documentation is maintained.

So if you are reading this fork, the upstream project is the place to look for current documentation and to report problems, and the fork is the place to look at the code as it stands here.

## Linux needs a long dependency list before anything runs

The Linux prerequisites are the most demanding of the three platforms, and the README is specific about them. You need GNU make, the binutils, a GIT client, bunzip2, unzip, untar and the subversion client svn. gdb is not needed for building FPC or Lazarus but is needed for debugging your Lazarus programs, and the X11 development libraries are also on the list: libX11, libgdk_pixbuf-2.0, libpango-1.0 and libgdk-x11-2.0.

For convenience, ready made install scripts can be found in the installscripts directory of the repository, and the README says the most common tools and libraries can be fetched through the package manager if those scripts are not used. The example given for Debian or Ubuntu is a single command:

```
sudo apt install make binutils build-essential gdb subversion zip unzip libx11-dev libgtk2.0-dev libgdk-pixbuf2.0-dev libcairo2-dev libpango1.0-dev
```

That list is worth reading as a description of what the tool does rather than as a setup chore. The presence of a subversion client and a git client is the giveaway that this is a source-checkout-and-build tool, and the bootstrap compiler and binutils that the Windows version downloads for you are the same kind of prerequisite, obtained differently on each platform.

## macOS needs Xcode and a cleared quarantine attribute

The macOS prerequisite list is short, and the interesting part is the workaround.

You need Xcode and the Xcode command line tools. Then there is the case where the app refuses to open, with the error that fpcupdeluxe-aarch64-darwin-cocoa.app is damaged and can't be opened. The fix given is:

```
xattr -cr fpcupdeluxe-aarch64-darwin-cocoa.app
```

And the README is clear that this is still needed, because fpcupdeluxe is an external binary not originating from the app store. The attribute being cleared is the quarantine flag, which macOS applies to anything downloaded, and the reason it applies here is that this binary is not distributed through the App Store, so it does not carry the notarisation that would let macOS open it without complaint.

That is a small operational detail that tells you something about the distribution model. The tool is delivered as a signed application bundle that you run directly, and the price of that is a command line step the first time. On the other hand, the name in the error message tells you the bundle is built for Apple Silicon, so a native arm64 macOS build is what you get.

## Windows downloads what it needs

The Windows prerequisite list is a single word, none, with an important qualifier underneath. If needed, the tool will download all needed binaries, and the README names them: the bootstrap compiler, binutils and the svn executable.

That is a different model from Linux, where the system already has make, binutils and a subversion client and the installer script fetches what is missing. On Windows the equivalents do not exist in the base system, so the tool obtains them itself as part of the install.

For a tool whose entire job is building a compiler from source, this makes sense. A bootstrap compiler is the first, simplest compiler that can compile the real compiler, and having the tool fetch one means you do not have to find, install and trust a prebuilt bootstrap before you can start.

The repository layout also shows a legacy path. Alongside the main fpcupdeluxe project there are fpcupdeluxelegacy, fpcupdeluxereader, fpcupdeluxespecials and fpcupdeluxetrunk project files, plus separate fpcup.lpi and fpclazup.lpi projects for the command line tools. The GUI is one front end among several, and the command line versions are still there for people who script the build.

## Cross compilation is a module system

The cross compiler extensions section is brief but it describes a real architectural decision. fpcupdeluxe has a facility to extend its functionality by building and using cross compiling modules.

So adding support for a new target CPU and operating system pair is not a patch to the application but a module that the tool builds and loads. The repository backs this up with dedicated directories, `crossscripts/` and `crosstoolsbuildscripts/`, and the data collection fields include a `CrossCPUOS` item, which is the target the install was for.

This is the part of the design that makes the tool more than a script. A wrapper around svn and make can be extended by editing the script; a tool with a module system for its hardest feature can be extended without forking it, and the extension is built with the same machinery the tool uses for everything else.

The FreeBSD notes are worth a mention too, because they show the tool is used on more than the three mainstream platforms. The prerequisite there is none, but a newer gdb than the 6.1 version supplied with the system is strongly recommended, installed from the ports tree at /usr/ports/devel/gdb and used from /usr/local/bin/gdb, and for Lazarus you need XWindows with GTK as the default or Qt.

## Install statistics go to a central server unless you stop them

The Install data collection section is the one an evaluator has to read, and it is more specific than most projects are.

Fpcupdeluxe version 1.6.0a and later sends some data about its installs towards a central server, using the mORMot framework. The data collection can be enabled or disabled by a setting in setup+, and the README gives a URL where you can check the collected data yourself.

The collected items are listed: UpVersion, UpOS, Distro, Widgetset, City, Country, Latitude, Longitude, UpFunction, FPCVersion, LazarusVersion, CrossCPUOS and DateOfUse. A second group is listed as set to be removed in the new version above 2.4.0h: UpInstallDir, IPV4Address, IPV6Address, ExtraData and LogEntry.

That second group is the reason to read the section carefully. A city, a country and coordinates alongside a version and a timestamp is usage telemetry, and an install directory and IP addresses are close to the bone. The stated plan is to remove them in a version after 2.4.0h, and the current releases are in the 2.4.0 line, with v2.4.0k from 2026-08-11 and v2.4.0i from 2026-02-26, so the version in which they disappear is the one to look for. The setting in setup+ is the control you have today, whatever the version does.

On the licence, the README says the software is released under the LGPL with linking exception, the same as FreePascal, and contains some open source libraries with their own licence, with all use permitted including commercial use but no warranties, express or implied. The badge in the README reads zlib/libpng, which refers to the bundled libraries rather than the project itself. The repository listing does not identify a licence at all, so the README text is the thing to rely on.

## Conclusion

fpcupdeluxe fits a developer who needs a Free Pascal or Lazarus toolchain that is built from source, kept separate from an existing installation, and possibly targeted at another CPU, and who would rather click through a window than script svn and make themselves. It is the wrong choice if you install Lazarus from a package manager, since the whole tool exists to build it from source. Verify first what your platform needs before you start, since the Linux dependency list is long and the macOS build needs a quarantine attribute removed, and read the data collection section, because the tool reports install statistics to a central server unless you switch that off in setup+.

## FAQ

### What does fpcupdeluxe actually do?

The README describes fpcup, fpclazup and fpcupdeluxe as basically wrappers around svn/make that try to use the FPC and Lazarus build process as much as possible. fpcupdeluxe is the latest addition and adds a GUI to ease the use, creating desktop shortcuts that point to the new Lazarus installation.

### Can I install fpcupdeluxe next to an existing Lazarus?

Yes. It is meant to be used side by side with other FPC and Lazarus installations, and it creates a separate primary config path directory for the new Lazarus installation so that it does not interfere with existing Lazarus installs.

### What does fpcupdeluxe need on Linux and macOS?

On Linux you need GNU make, binutils, a GIT client, bunzip2, unzip, untar, the subversion client and some X11 development libraries, with gdb needed for debugging rather than building. On macOS you need Xcode and the Xcode command line tools, and the quarantine attribute has to be cleared with xattr -cr for the application bundle.

### Does fpcupdeluxe collect data about my installs?

Version 1.6.0a and later sends install data to a central server using the mORMot framework, and the README lists the fields collected. The data collection can be enabled or disabled by a setting in setup+, and the README states that items including the install directory and IP addresses are set to be removed in a version above 2.4.0h.

### How do I add a new cross compilation target to fpcupdeluxe?

The README says fpcupdeluxe has a facility to extend its functionality by building and using cross compiling modules, and the repository carries crossscripts and crosstoolsbuildscripts directories for that work. Bug reports and patches are directed at the newpascal/fpcupdeluxe issue tracker.

## Sources

- [Issues](https://github.com/LongDirtyAnimAlf/fpcupdeluxe/issues)
- [LongDirtyAnimAlf/fpcupdeluxe on GitHub](https://github.com/LongDirtyAnimAlf/fpcupdeluxe)
- [README](https://github.com/LongDirtyAnimAlf/fpcupdeluxe/blob/master/README.md)
- [Releases](https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/longdirtyanimalf-fpcupdeluxe
