Sign in Join
Wiki copytemporary

Release engineering: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11This article discusses how to make a release of the FPC compiler on various platforms.
22
33## Migration of existing SVN checkout
44
55The existing checkout of the 'fixes_2_2' branch can be switched to the release tag using SVN command "switch", specifically its first variant (see below). However, it's recommended to build in exported sources, not in checked out version.
66
77`~/fpc>>> svn sw --help`\
88`switch (sw): Update the working copy to a different URL.`\
99`usage: 1. switch URL [PATH]`\
1010`       2. switch --relocate FROM TO [PATH...]`
1111
1212` 1. Update the working copy to mirror a new URL within the`\
1313` repository.`\
1414`    This behaviour is similar to 'svn update', and is the way to move`\
1515`    a working copy to a branch or tag within the same repository.`
1616
1717` 2. Rewrite working copy URL metadata to reflect a syntactic change`\
1818` only.`\
1919`    This is used when repository's root URL changes (such as a scheme`\
2020`    or hostname change) but your working copy still reflects the same`\
2121`    directory within the same repository.`
2222
2323## Create libgdb.a and or binutils
2424
2525- If you have problems building recent binutils or libgdb's on any *nix, and the error is related to intl.h or libintl.a, reconfigure using ../\<srcdir\>/configure --disable-nls (assuming you use a separate builddir)
2626- Some cygwin hints:
2727 - ensure you've installed gcc, bison and flex
2828 - use\
2929 `./configure --disable-ide --disable-libgui --disable-install-libgui`\
3030 to configure
3131
3232## General notes about release building
3333
3434To create a build, you always have to start with compiler from the last previous major release (e.g. 2.0.0 for all 2.0.x and 2.2.0 releases, 2.2.0 for 2.2.x, etc.), or the last previous minor release (i.e. you can use 2.0.2 for building 2.0.4).
3535
3636## Convert the faq.adp to faq.htm and faq.txt
3737
3838The faq's in fpcbuild/install/doc are generated from the faq.adp in the html-repository. (It's a good idea too check if the faq.adp is still up-to-date before converting it.) To do the conversion, check out the html-repository and do a 'make all'. Then create the faq.htm and .txt by:
3939
4040` ./adp2html faq.adp -m external-master.adp -p maindir=`[`http://www.freepascal.org/`](http://www.freepascal.org/)` -p x=.var > faq.htm`\
4141` w3m -dump faq.htm > faq.txt`
4242
4343It could be that you have to install w3m first. If the conversions are succesfull update these files in the fpcbuild-repository.
4444
4545## OS/CPU specific release engineering
4646
4747### FreeBSD
4848
4949[[FreeBSD specific Release Engineering]]
5050
5151### Linux
5252
5353Get sources, download the fpcbuild from ftp and extract it or use a command like:
5454
5555` git clone --branch release_3_2_2 --depth 1 --recurse-submodules --remote-submodules --shallow-submodules `[`https://gitlab.com/freepascal.org/fpc/build.git`](https://gitlab.com/freepascal.org/fpc/build.git)` fpcbuild`\
5656` rm -rf fpcbuild/.git &&  rm -rf fpcbuild/fpcsrc/.git && rm -rf fpcbuild/fpcdocs/.git`
5757
5858Versions **3.0.x and below and some special targets** are using libgdb inside the ide to be able to debug. For those versions you have to get libgdb for your CPU from <ftp://ftp.freepascal.org/pub/fpc/contrib/libgdb/>, extract it into `fpcbuild/fpcsrc/` preserving pathes. Before building please check for files **libiberty.a**, **libopcode.a** and **libbfd.a**. These files are often installed in directories like /usr/lib. The compiler **must not** be able to find them! The reason is that otherwise the compiler might use the preinstalled ones instead of the ones you put in the libgdb directory, and the preinstalled ones are not compatible with libgdb.a. If the compiler finds and uses these libraries in /usr/lib, the IDE will crash on any debugging attempt.
5959
6060Get the most recent docs package from the ftp site, it's called doc-pdf.tar.gz and copy it into the `fpcbuild/` directory.
6161
6262Change into `fpcbuild/`. Now **become root**, or use **fakeroot**, then execute
6363
6464` install/makepack`
6565
6666#### Building an rpm
6767
6868To build an RPM, change into `fpcbuild` and execute
6969
7070` make rpm`
7171
7272the documentation will be built as well and that requires a working Tex installation. To prevent the documentation from being built, execute
7373
7474` make rpm NODOCS=1`
7575
7676#### Building a deb
7777
7878To build an Debian Package, please refer to [[Debian Packaging]] page. Here are quick hints :
7979
8080\- Ensure that you have at least installed the following debian packages: dpkg-dev, fakeroot
8181
8282\- Modify the `fpcbuild/install/debian/changelog` file adding the following
8383
8484`fpc (x.y.z-b) unstable; urgency=low`\
85-\
85+
8686`  * release candidate build`\
87-\
87+
8888` -- First Last <mail@address.ext>  Thu, 07 Jul 2006 23:44:00 +0100`\
8989` `
9090
9191where b is package building number. Normally if **b** = 0, then packages will be named substituting **b** by the building date, otherwise it will be conserved. But this is changed because b\>0 is reserved for official Debian-builds. So in fact we should always use b=0. The value for b is only replaced by the date when SNAPSHOT=1. Please note that **z** could be a number but also a word like 2rc1
9292
9393\- change into `fpcbuild` and execute
9494
9595` make deb [GDBLIBDIR=<path/${OS_TARGET}/${CPU_TARGET}>]`
9696
9797the documentation will be built as well and that requires a working Tex installation. To prevent the documentation from being built, execute
9898
9999` make deb NODOCS=1`
100100
101101### Dos installer
102102
103103(See also [[go32v2 development]])
104104
105105The basis is the fpcbuild repository, with the last release compiler as starting compiler, as always.
106106
107107Most recent GDB for go32v2 is 6.1.1, you can fetch it from [gdb 6.1.1](ftp://freepascal.stack.nl/pub/fpc/contrib/libgdb/v6.1.1/). Older targets have no architecture designation, so put it in fpcsrc/libgdb/go32v2
108108
109109Then do a make go32v2zip in the fpcbuild/ dir. On XP this takes a really long time......
110110
111111\[b\] Note this process will not work on Vista in the default configuration, since Vista only seems to allocate 16 or 32MB for DPMI use to a dosbox (and rumour is that W7 does too), which is too little. I've tried several of the workarounds, (see [[go32v2 development]]), but as of yet, to no avail.\[/b\]
112112
113113That is, the full procedure to build a release for go32v2 is, from fpcbuild directory:
114114
1151151. \<create the fpcsrc\libgdb\go32v2 directory and copy libgdb files there\>
1161162. make go32v2zip OPT="-dGDB_V601"
1171173. make sourcezip
1181184. make demozip
1191195. make docsrc
1201206. make utilities
1211217. \<now we have long file names packages\>
1221228. make shortnames
123123
124124### Windows Inno setup
125125
126126The situation for Windows is pretty much similar to makepack. However, instead of a script, [[Inno Setup]] is used. Note that this is the rough principle only. For real, official releases, probably more steps (make sure install/doc/whatsnew is up to date etc, proper SVN tag) must be observed.
127127
128128Steps to do once only:
129129
130130`* install Inno Setup. For FPC 3.2.2 we are trialing version 5.6.1-unicode `\
131131`* If support for Win9x/Win ME is needed, install an Ansi version lower than 5.5.0 (see 5.5.0 section in `[`Inno changelog`](http://www.jrsoftware.org/files/is5-whatsnew.htm)`)   `
132132
133133Steps per build:
134134
135135`* checkout fpcbuild`\
136136`* export it to avoid lardering source zips with GIT dirs. (git can only export archives, but extracting on the fly with cygwin tar works: mkdir ../fpcexp and then git archive main |tar xC ../fpcexp )`\
137137`* make sure the last FPC release is first in your path (bootstrap)`\
138138`* `~~`copy libgdb to its location (fpcsrc/libgdb/win32) (see e.g. `[`http:/www.stack.nl/~marcov/mingw`](http:/www.stack.nl/~marcov/mingw)` ). For this test release I used mingw. Pass OPT='-dUSE_MINGW_GDB'" on the make inno commandline to to select the mingw debugger for the IDE. `**`obsolete: starting with 3.2.0, IDE uses MI interface on Windows`**~~` `\
139139`* get "doc-pdf.zip" from FTP in the relevant version. Put it in fpcbuild/`\
140140`* to build the installer I ran "make inno"`\
141141`* inno has options to speed up compression (multithreading), but these are not used yet.`\
142142`* .. _WAIT_ ... :-) `
143143
144144Tips:
145145
146146- if due to atypical Windows configuration the iscc.exe installation script compiler can't be found (e.g. because your program files dir is not detected properly), pass it with ISCCPROG="g:\Program Files\Inno Setup 5\ISCC.exe"
147147- the Inno script is in fpcbuild/install/fpc.ist and is postprocessed by fpcsubst to become fpc.iss passed to Inno. fpcsubst fixes the builddir, the exact versions and optionally translates and passes NODOCS to build a release without docs.
148148
149149Known Issues:
150150
151151- No help/docs for ide. (chms must be added, and maybe even preinstalled)
152152- If a FPC install has been done before, the installer suggests the old install dir. (often the previous release).
153153
154154#### Windows to x86_64 cross compiler
155155
156156- Follow the same instructions as for Windows Inno setup, but instead of "make inno OPT=...", do a:
157157
158158`make innox64`
159159
160160#### Windows combined 32-bit and x86_64 cross compiler in a single package
161161
162162- Follow the same instructions as for Windows Inno setup, but instead of "make inno OPT=...", do a:
163163
164164`make innox86x64`
165165
166166#### Windows to Android cross compiler
167167
168168- Install the latest FPC release for Windows.
169169- Install the Android NDK.
170170 - FPC 3.2 still supports the **android-mips** target, but **mips** support is no longer available since Android NDK r17. In order to build the setup package you need to download NDK r16b from <https://developer.android.com/ndk/downloads/older_releases> and unpack it to some folder.
171171- Follow the same instructions as for Windows Inno setup, but instead of "make inno OPT=...", do:
172172
173173`make innoandroid NDK=<Path to the NDK, like C:\Users\joost\AppData\Local\Android\Sdk\ndk\r16b>`
174174
175175- When finished you will get a setup file such as `fpc-3.2.0.i386-win32.cross.android.exe` in the top level folder of the fpcbuild's source tree.
176176
177177#### Windows to i8086-msdos cross compiler
178178
179179- Install the latest stable version of the Open Watcom C++ compiler for Windows. As of now, this is **open-watcom-c-win32-1.9.exe**.
180180- Follow the same instructions as for Windows Inno setup, but instead of "make inno OPT=...", do a:
181181
182182`make innomsdos`
183183
184184- Compilation takes a very long time (3-7 hours, depending on CPU speed), so be patient. The reason for that is, we build fpc 20 times (5 memory models for 4 subarchs - 8086, 80186, 80286 and 80386), using smartlinking (for which, an external assembler is launched for each function in the rtl and packages, and launching a process is slow on windows).
185185
186186### Darwin (Mac OS X) - Fink
187187
188188#### Files
189189
1901901. fpc-config.info
1911912. fpc.info
1921923. fpc-cross-*
1931934. fpc-doc.info
1941945. fpc-sources.info (needed by lazarus)
195195
196196#### 32 bit vs 64 bit
197197
198198Contrary to fpc from disk images, fpc is built as 64 bit resulting in 64bit ppcx64 as default. The main reason is that it fits better to the presence of all the 64bit C libraries in fink. Nevertheless, 32bit is still available as cross-compiler as fpc-cross-i386-darwin.
199199
200200#### Bootstrap Compiler
201201
202202Building the fink packages is based on a bootstrap compiler. Whereas the official FPC releases still support 10.4 and later, starting with fpc 3.0.0 the package descriptions support only 10.7 and up. Therefore, only the 64-bit compiler and no universal compiler are required as bootstrap compiler. The 64-bit bootstrap compiler is build using strip and tar commands similar to below. The description below refers to fpc up to 2.6 and any system above 10.4.
203203
204204Separate bootstrap compilers for each cpu would be possible, but a universal bootstrap compiler has been choosen, since it makes the installation script simpler. The increased filesize (about twice the size of a single separate bootstrap compiler) of the bootstrap compiler is considered negligible compared to the size of the complete source tarball. Reverting this decision should be doable by well chosen names for the bootstrap compiler tar balls, such as fpc-%v.%m-darwin.bootstrap.tar.bz2, with %m being the cpu. The universal bootstrap compiler is created from the separate compilers using "lipo". The file size is reduced by applying "strip" on the binaries. Although it is possible to use the previous stable release of fpc as a bootstrap compiler, it is better to use the same version, because "make cycle" becomes faster, since only two instead of three cycles are performed.
205205
206206This is a typical sequence of commands to produce the tar ball of a universal bootstrap compiler on an IntelMac:
207207
208208` make all PP=PATH_TO_A_LAST_VERSION_COMPILER`\
209209` cp compiler/ppc386 $HOME/Desktop`\
210210` make distclean`\
211211` make all CPU_TARGET=x86_64 PP=$HOME/Desktop/ppc386`\
212212` cp compiler/ppcx64 $HOME/Desktop`\
213213` make distclean`\
214214` make all CPU_TARGET=powerpc PP=$HOME/Desktop/ppc386`\
215215` cp compiler/ppcppc $HOME/Desktop`\
216216` cd $HOME/Desktop`\
217217` strip ppc386`\
218218` strip ppcx64`\
219219` strip ppcppc`\
220220` lipo -create ppc386 ppcx64 ppcppc -output ppcuniversal`\
221221` tar -cjf fpc-VERSION.universal-darwin.bootstrap.tar.bz2 ppcuniversal`\
222222` md5sum *.universal-darwin.bootstrap.tar.bz2`
223223
224224#### Usually Required Adjustments for New Releases
225225
226226These fields in the file fpc.info usually need changes (examples from version 2.1.2, a beta version of 2.2):
227227
228228`Version: 2.1.2`\
229229`Source: `[`ftp://ftp.freepascal.org/pub/fpc/beta/%v/source/fpcbuild-%v.source.tar.gz`](ftp://ftp.freepascal.org/pub/fpc/beta/%v/source/fpcbuild-%v.source.tar.gz)\
230230`Source-MD5: a2ee4db22301cdcbda07185a7b6679b2`\
231231`Source2: `[`ftp://ftp.freepascal.org/pub/fpc/beta/%v/source/fpc-%v.universal-darwin.bootstrap.tar.bz2`](ftp://ftp.freepascal.org/pub/fpc/beta/%v/source/fpc-%v.universal-darwin.bootstrap.tar.bz2)\
232232`Source2-MD5: ca5e29e3683ff6d5caa491c0adf4635e`
233233
234234The MD5 checksums can be obtained from the error message when fetching the sources with fink or with the terminal command md5sum.
235235
236236The fpc-doc.info file also needs according changes in the Source and Source-MD5 fields.
237237
238238#### History
239239
2402402.6.* more crosscompilers
241241
2422422.4.0 several crosscompilers (processors and systems) added.
243243
2442442.2.4 minor changes.
245245
2462462.2.2 extra package for the config file. cross compilers for win32 and linux. execution of tests enabled.
247247
2482482.2.1 interims version for lazarus 0.9.24
249249
2502502.2.0 first version with native Intel code
251251
2522522.0.4 first version in stable tree (powerpc and Rosetta emulation only)
253253
2542541.9.8 initial version in unstable tree
255255
256256### Haiku
257257
258258[[Haiku specific Release Engineering]]
259259
260260## Documentation building and LaTeX limits
261261
262262A lot of TeTeX distributions are configured to never use more than a very small amount of memory. The values chosen are more of the 486 era (several MBs, while now 256MB is considered "entry level").
263263
264264The Free Pascal documentation is fairly large, and uses a lot of labels for convenient hyperlinked PDFs and thus hits this limit.
265265
266266This can be remedied by modiying the save_size line in texmf.conf to
267267
268268` save_size=10000`
269269
270270Usually, you can also do this by environment variable.
271271
272272`export save_size=10000`\
273273`pdflatex rtl.tex`
274274
275275## Packaging system
276276
277277See [[Packaging System and dividing FPC - Lazarus into packages]]
278278
279279## Building the official fpc-packages
280280
281281### Major versions
282282
283283Major versions warrant some extra attention during the release process. Primarily the problem is that trunk is never really released from, and any branch to branch from it has to potential to have (many) hidden issues. Also during betas and release candidates, more issues are found for a major branch, since some features receive wide testing for the first time.
284284
285285However since 2.2.2, most release engineering work for the fixes branch is performed in trunk, and then merged back to fixes, and in practice this improved this a lot. This however mainly improved the quality. The release engineering from the branchpoint from trunk till release is typically still 6-8 months.
286286
287287Some points to consider:
288288
289289- Traditionally major versions have had a beta release before the first release candidate.
290290- before branching a major branch, update all makefiles in trunk with a recent fpcmake. This avoids that when a rarely used package is updated, one gets an immense diff on the makefile.
291291- This is the time to remove deprecated functions. See [[major version to do]]
292292
293293### Create directories on ftp
294294
2952951. Create the following structure on ftp: (check which platforms are released for this version)
296296 - {version}
297297 - docs
298298 - source
299299 - separate
300300 - tar
301301 - zip
302302 - short
303303 - arm-linux
304304 - arm-wince
305305 - i386-freebsd
306306 - i386-go32v2
307307 - separate
308308 - i386-linux
309309 - deb
310310 - rpm
311311 - i386-netware
312312 - i386-netwlibc
313313 - i386-os2
314314 - separate
315315 - i386-win32
316316 - powerpc-linux
317317 - powerpc-macos
318318 - powerpc-morphos
319319 - powerpc64-linux
320320 - sparc-linux
321321 - x86_64-linux
322322 - deb
323323 - rpm
324324 - x86_64-win64
3253252. Copy the extra files (asld*.zip, gdb*.zip, make*.zip) in i386-os2\separate and i386-gov32v2\separate from previous release (unless updated with new versions)
326326
327327### Update the version-number
328328
329329Make sure that fpcmake points to the relevant version for the branch you are running this for. (usually from fixes)
330330
331331#### Version number of the Makefiles
332332
333333For the final release, update the REQUIREDVERSION(2) in the toplevel Makefile.fpc to the new version and the last release.
334334
335335Update the version numbers in all Makefile.fpc files containing version=... (plus regenerate all corresponding Makefiles). Do this for the fpc and fpcbuild-repositories. This can be done using the updmkver script from within the root of both repositories. The FPC_DIR environment variable has to be set to the fpcsrc-path:
336336
337337` export FPCDIR=....../fpcbuild/fpcsrc`\
338338` cd fpcbuild`\
339339` install/updmkver {version} `\
340340` cd ../fpc`\
341341` ../fpcbuild/install/updmkver {version}`
342342
343343Replace {version} with the version number, for example 2.2.4 or 2.2.4rc1
344344
345345#### Version number of the fpmake files
346346
347347Update the version numbers in all fpmake.pp files in the packages directory (toplevel and build dir). These files are normal code-files so replacing the version numbers can in principle only be done manually, but there is a script updfpmkver which finds all occurences of "Version:='xxx'" where xxx can be anything. Note that this will also update all dependencies to the specified version number.
348348
349349` cd fpc`\
350350` ../../fpcbuild/install/updfpmkver {version}`
351351
352352Please check the results manually. The following command searches for all occurences of "version" in all fpmake.pp files
353353
354354` find -name fpmake.pp -exec grep -i version {} ';'`
355355
356356#### Version number in the source & documentation files
357357
358358The version number has to be updated in the following places.
359359
360360FPCBuild:
361361
362362- /install/doc/readme.txt
363363- /install/doc/whatsnew.txt
364364- /install/debian/changelog
365365- /install/debian/controls contains versions too?
366366- /install/doc/faq.htm (sections about latest version, on final release only)
367367- /install/doc/faq.txt (sections about latest version, on final release only)
368368
369369FPCDocs: (there is only a trunk-version)
370370
371371- /docs/fpc.sty (macro fpcversion)
372372
373373FPC:
374374
375375- /installer/install.dat (header)
376376- /installer/install.pas (installer version and copyright year)
377377- /compiler/version.pas
378378- packages/chm/src/chmbase.pas ~~and chmcmd.lpr~~ (now compiler macro)
379379- check the year of copyright in compiler/msg/errore.msg
380380- check the year of copyright in packages/ide/src/fpviews.pas
381381
382382### Tag version
383383
384384If the changes of the version-numbers are committed, use the createbranch script in fpcbuild to create a 'release_{version}' tag in svn. Use underscores in the version, instead of dots!
385385
386386` ./createbranch.sh tags/release_3_0_4`\
387387` ./createbranch.sh tags/release_3_0_4_rc1`
388388
389389### Create the source zips
390390
391391A.s. Before doing this, update whatsnew,readme and faq in the fixes branch, so that changes can be merged from fixes to rc1/final branch.
392392
393393Create all the source zips.
394394
395395Once the version is tagged the makesource script in fpcbuild/install can create the fpc-{version}.source.tar.gz and fpc-{version}.source.zip. To build the fpcbuild-{version}.tar.gz and fpcbuild-{version}.zip use the makefpcbuild script. Before you run the scripts go to a temporary directory and become root or use fakeroot. If you want to create the sourcefile from a specific branch, you can provide it using the -svnpath parameter For example:
396396
397397` fakeroot`\
398398` fpcbuild/install/makesource 3.0.4`\
399399` fpcbuild/install/makefpcbuild -svnpath tags/release_3_0_4_rc1 3.0.4rc1`
400400
401401The zips for the "source/short" directory are made on a DOS / OS/2 platform (or MS Windows with an additional parameter "OS_SOURCE=go32v2" for all three commands) by executing:
402402
403403` make sourcezip "OS_TARGET=go32v2" NOGDB=1`\
404404` make sourcezip "OS_TARGET=os2"  NOGDB=1`\
405405` make shortsrc`
406406
407407The reason for multiple invocations of make sourcezip with different parameters is the fact that make sourcezip only build ZIP files for sources supported on the particular target platform by default. Since the short version of the source ZIP files is supposed to be used on OS/2 and GO32v2 targets only at the moment, these two platforms need to be listed explicitly as a general rule (obviously, slightly simpler version is possible when running it under OS/2 or native DOS, but the example above should work everywhere).
408408
409409Note, in 2.6.0 "make shortsrc" doesn't seem to work anymore. For 2.6.0 and 2.6.2 the following commands were used instead (and manually pushed "n" a few times)
410410
411411`  make renametoshort NOGDB=1 "OS_SOURCE=os2" "OS_TARGET=os2" PKGPRE=os2- PKGUNITSPRE=units-  ZIPSUFFIX=.source ZIPSUFFIXSHORT=src`\
412412`  make renametoshort NOGDB=1 "OS_SOURCE=go32v2" "OS_TARGET=go32v2" PKGPRE=go32v2- PKGUNITSPRE=units-  ZIPSUFFIX=.source ZIPSUFFIXSHORT=src`
413413
414414### Create bootstrap compiler archives
415415
416416- darwin (fink)
417417
418418From ppc386 and ppcppc create ppcuniversal using lipo, create .tar.bz2 archive (full name: fpc-version.universal-darwin.bootstrap.tar.bz2) and place it in the source dir.
419419
420420### Documentation
421421
422422Latex takes date/time formats from the locale. Make sure your linux distro/environment variables are set to e.g. the US locale to avoid non English month names in the docs. In my case, it was simply the matter of changing the locale in the Ubuntu GUI settings app, and latex adapted.
423423
424424Most formats: run
425425
426426`  make alldist`
427427
428428in fpcdocs/
429429
430430CHM: run fixdocs.sh but edit it first to correct the location of the fpcsrc repo.
431431
432432## Release schedule
433433
434434- [[FPC Release Schedule]].
435435
436436## Testing a release
437437
438438In general:
439439
4404401. check all zip/deb/rpm etc files
4414412. try the installer (if available)
4424423. make sure readme.txt & whatsnew.txt are for the current version
4434434. run all executables
4444445. make cycle with newly installed binaries and sources
4454456. run testsuite
4464467. IDE
447447 1. open the installed hello.pp in IDE
448448 2. make a minor change in the demo in IDE & save it
449449 3. view documentation in IDE, traverse 2-3 pages (at least one with screenshots)
450450 4. compile the demo file in IDE
451451 5. run the demo within the IDE (debugger)
4524528. Documentation (open all files)
453453 1. Check PDF documentation (if available)
454454 2. Check HTML documentation (if available)
455455 3. Check TXT documentation (if available)
456456
457457Target-specific:
458458
4594591. GO32v2
460460 1. dos???.zip installation
461461 2. dos???full.zip installation (over the previously installed dos???.zip to simulate updates)
4624622. OS/2
463463 1. os2???.zip installation
464464 2. os2???full.zip installation (over the previously installed os2???.zip to simulate updates)
4654653. Win32
466466 1. Run installer
4674674. x86_64-linux and i386-linux
468468 1. Test a .rpm install
469469 2. Test a .deb install
4704705. darwin (fink)
471471 1. fink install fpc-config fpc
472472 2. fink install fpc-doc
473473 3. optional on Intel-Darwin: fink install fpc-cross-***
474474
475475## Testers template
476476
477477See [[Testers Template]].
478478
479479### Previous releases
480480
481481| | | | |
482482|----|----|----|----|
483483| [[Testers 3.2.2]] | [[Testers 3.2.0]] | [[Testers 3.0.4]] | |
484484| [[Testers 2.6.4]] | [[Testers 2.6.2]] | [[Testers 2.6.0]] | |
485485| [[Testers 2.4.4]] | [[Testers 2.4.2]] | [[Testers 2.4.0]] | |
486486| [[Testers 2.2.4]] | [[Testers 2.0.4]] | | |
487487
488488---
489489*From the Free Pascal wiki, page "Release engineering", as it stood on 2023-07-25 after a change by Michael, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
490490Category: FPC development
491491Category: FPC release
492492Category: Release engineering

Back to history