Sign in Join
Wiki copytemporary

Deploying Your Application/pt: what changed

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

OldNewLine
1-## Contents
2-
3- * 1 Instaladores para Windows
4- * 1.1 InnoSetup
5- * 1.2 InstallJammer
6- * 1.3 HJ-Install
7- * 1.4 LizaJet Installer
8- * 1.5 NSIS (Nullsoft Scriptable Install System)
9- * 1.6 Grupo de Ferramentas para Windows Installer XML (WiX)
10- * 2 Instaladores para Unix
11- * 2.1 Criando um pacote RPM em Linux
12- * 2.1.1 Configurando o seu ambiente de construção
13- * 2.1.2 Criando um pacote somente binário
14- * 2.1.3 Creating a source and binary package
15- * 2.2 Creating a Debian Package on Linux
16- * 2.3 GUInseng
17- * 3 Creating a Makefile for your Lazarus software
18- * 4 macOS installers
19- * 4.1 Using PackageMaker on macOS
20- * 4.2 Installing X11 and GTK on macOS
21-
221## Instaladores para Windows
232
243### InnoSetup
254
26-O Inno Setup é um instalador free para programas Windows. Pode ser usado completamente sem encargos, mesmo quando distribuído com aplicações comerciais. Fontes completos estâo disponìveis (Borland Delphi 2.0-5.0). (<http://www.jrsoftware.org/>).
5+O Inno Setup é um instalador free para programas Windows. Pode ser usado completamente sem encargos, mesmo quando distribuído com aplicações comerciais. Fontes completos estâo disponìveis (Borland Delphi 2.0-5.0). (http://www.jrsoftware.org/).
276
28-Suporta todas as versões do Windows em uso hoje -- Windows 95, 98, 2000, 2003, XP, Me, NT 4.0. O instalador tem a habilidade de comparar informações de versão de arquivo, substituir arquivos in-use, usar contagem de arquivo compartilhado, registrar DLL/OCX e bibliotecas de tipo e instalar fontes. Criação de atalhos em qualquer lugar, incluindo o Menu Iniciar e a Área de Trabalho. Criação de entradas de registro e de arquivos INI. Pascal Scripting Engine integrada. Suporte para instalação multilíngüe. Suporte para senha e instalações encriptadas. Instalação e desinstalação silenciosas.
7+Suporta todas as versões do Windows em uso hoje -- Windows 95, 98, 2000, 2003, XP, Me, NT 4.0. O instalador tem a habilidade de comparar informações de versão de arquivo, substituir arquivos in-use, usar contagem de arquivo compartilhado, registrar DLL/OCX e bibliotecas de tipo e instalar fontes. Criação de atalhos em qualquer lugar, incluindo o Menu Iniciar e a Área de Trabalho. Criação de entradas de registro e de arquivos INI. Pascal Scripting Engine integrada. Suporte para instalação multilíngüe. Suporte para senha e instalações encriptadas. Instalação e desinstalação silenciosas.
298
30-O Inno Setup tem copyrigt, não é um software de domínio público. Existem algumas restriçôes na distribuiçâo e uso; veja o arquivo <http://www.jrsoftware.org/files/is/license.txt> para detalhes.
9+O Inno Setup tem copyrigt, não é um software de domínio público. Existem algumas restriçôes na distribuiçâo e uso; veja o arquivo <http://www.jrsoftware.org/files/is/license.txt> para detalhes.
3110
32-O Inno Setup é usado para criar o instalador do Lazarus para Windows.
11+O Inno Setup é usado para criar o instalador do Lazarus para Windows.
3312
3413### InstallJammer
3514
36-[InstallJammer](<http://www.installjammer.com/>), um instalador GUI multiplataforma e de código aberto, desenhado para ser completamente cross-plataforma e funcionar em Windows e na maioria das versões de UNIX, com suporte eventual a macOS.
15+[InstallJammer](http://www.installjammer.com/), um instalador GUI multiplataforma e de código aberto, desenhado para ser completamente cross-plataforma e funcionar em Windows e na maioria das versões de UNIX, com suporte eventual a macOS.
3716
3817### HJ-Install
3918
4019HJ-Install é um instalador freeware para Windows 95, 98 ME, NT 4.0, 200 e XP. Ele foi criado com intenções de instalar pela internet, por CD-Rom ou por floppy disk único ou múltiplo, mas pode também ser usado em situações de rede e como uma scripting engine stand-alone. O instalador é pequeno e adiciona apenas 138 Kb. Não suporta modificações no registro e arquivos INI, ou desinstalação. Veja em <http://www.freebyte.com/hjinstall/>
4120
4221### LizaJet Installer
4322
4423O LizaJet Installer é um instalador comercial, mas uma edição free está disponível. Usa Object Pascal para script. Veja em <http://www.lizajet.com>
4524
4625### NSIS (Nullsoft Scriptable Install System)
4726
4827Um sistema de código aberto profissional para criar instaladores Windows. Um instalador NSIS completo tem um overhead de apenas 34 Kb. Veja em <http://nsis.sourceforge.net/Main_Page> and <http://hmne.sourceforge.net/>
4928
5029### Grupo de Ferramentas para Windows Installer XML (WiX)
5130
5231Um grupo de ferramentas que constrói pacotes de instalação para Windos de código fonte XML. Elas suportam um ambiente de linha de comando que os desenvolvedore podem integrar em seus processos que construção para construir pacotes de instalação MSI e MSN. Veja em <http://wix.sourceforge.net/>
5332
5433## Instaladores para Unix
5534
5635### Criando um pacote RPM em Linux
5736
58-No Linux, a melhor maneira de distribuir aplicações é usando o sistema de pacotes nativo. Dos muitos sistemas de pacotes disponíveis, o RPM (RedHat Package Manager) é o formato mais comumente utilizado e é definido como o padrão na Linux Standard Base.
37+No Linux, a melhor maneira de distribuir aplicações é usando o sistema de pacotes nativo. Dos muitos sistemas de pacotes disponíveis, o RPM (RedHat Package Manager) é o formato mais comumente utilizado e é definido como o padrão na Linux Standard Base.
5938
60-Para criar um arquivo RPM, você precisa criar um arquivo texto spec com a informação necessária para construir o software e também um ambiente para construir aquele spec. O melhor editor para criar pacotes RPM é o Emacs, porque ele reconhece a extensão spec, faz a synthax-highlight do texto de maneira apropriada e tem até um item de menu para construir pacotes RPM.
39+Para criar um arquivo RPM, você precisa criar um arquivo texto spec com a informação necessária para construir o software e também um ambiente para construir aquele spec. O melhor editor para criar pacotes RPM é o Emacs, porque ele reconhece a extensão spec, faz a synthax-highlight do texto de maneira apropriada e tem até um item de menu para construir pacotes RPM.
6140
6241#### Configurando o seu ambiente de construção
6342
64-Pacotes RPM são instalados como root no sistema base (/ directory), mas um acidente como root pode destruir sua máquina. Para evitar isso, pacotes podem ser construídos como uso normal. O processo de construção inclui uma instalação real, para se certificar e que os pacotes funcionam, mas esta instalação é feita para um diretório root falso representado pela variável $RPM_BUILD_ROOT.
43+Pacotes RPM são instalados como root no sistema base (/ directory), mas um acidente como root pode destruir sua máquina. Para evitar isso, pacotes podem ser construídos como uso normal. O processo de construção inclui uma instalação real, para se certificar e que os pacotes funcionam, mas esta instalação é feita para um diretório root falso representado pela variável \$RPM_BUILD_ROOT.
6544
66-Primeiro vá ao diretório home (ou outro diretório dentro dele) e crie a seguinte estrutura de diretório:
45+Primeiro vá ao diretório home (ou outro diretório dentro dele) e crie a seguinte estrutura de diretório:
6746
68-RPM
47+RPM
6948
70-RPM/BUILD - Este diretório é utilizado pelo RPM para construir o pacote.
49+RPM/BUILD - Este diretório é utilizado pelo RPM para construir o pacote.
7150
72-RPM/RPMS - Aqui você pode encontrar RPMs binários depois de construí-los.
51+RPM/RPMS - Aqui você pode encontrar RPMs binários depois de construí-los.
7352
74-RPM/SOURCES - Ponha seus arquivos comprimidos tar e patches aqui.
53+RPM/SOURCES - Ponha seus arquivos comprimidos tar e patches aqui.
7554
76-RPM/SPECS - Ponha todos os seus arquivos spec aqui.
55+RPM/SPECS - Ponha todos os seus arquivos spec aqui.
7756
78-RPM/SRPMS - Here you can find source RPMs after you build them.
57+RPM/SRPMS - Here you can find source RPMs after you build them.
7958
80-Next you will need to create a configuration file to tell rpm builder software where he can find your build directories. Go to your home directory and create a file named .rpmmacros and place the text bellow on it. Make sure to change the directories to the correct ones on your system.
81-```
82-%_topdir /home/felipe/RPM/
59+Next you will need to create a configuration file to tell rpm builder software where he can find your build directories. Go to your home directory and create a file named .rpmmacros and place the text bellow on it. Make sure to change the directories to the correct ones on your system.
60+
61+ %_topdir /home/felipe/RPM/
8362 %_tmppath /home/felipe/tmp
84-
63+
8564 %_signature gpg
8665 %_gpg_name Mandrakelinux
8766 %_gpg_path ~/.gnupg
88-```
8967
9068#### Criando um pacote somente binário
9169
92-A maneira mais fácil de criar pacotes RPM é fazêe-lo instalar software já compilado. Existem algumas razões por que nós podemos querer evitar de compilar o software em um arquivo spec:
70+A maneira mais fácil de criar pacotes RPM é fazêe-lo instalar software já compilado. Existem algumas razões por que nós podemos querer evitar de compilar o software em um arquivo spec:
9371
94- * Requer a criação de um Makefile e eles são complexos
72+- Requer a criação de um Makefile e eles são complexos
9573
96- * Alguns pacotes não têm qualquer binário neles e não precisam ser construídos.
74+- Alguns pacotes não têm qualquer binário neles e não precisam ser construídos.
9775
98-Each RPM Package contains a single compressed tar archive. Place the archive under the RPM/SOURCES directory. Zip, gz and bz2 compressions should work ok. The file can either contain the full source of the project if you with to create a source and a binary package or a directory with the files already in place, like if they were installed in the user machine, if you with to create a binary only package.
76+Each RPM Package contains a single compressed tar archive. Place the archive under the RPM/SOURCES directory. Zip, gz and bz2 compressions should work ok. The file can either contain the full source of the project if you with to create a source and a binary package or a directory with the files already in place, like if they were installed in the user machine, if you with to create a binary only package.
9977
100-Para construir um pacote binário abra um arquivo spec com o editor de texto Emacs. No Emacs abra o menu RPM spec --> RPM Build --> Build Binary Package. Isto vai criar um arquivo RPM no diretório RPM/RPMS.
78+Para construir um pacote binário abra um arquivo spec com o editor de texto Emacs. No Emacs abra o menu RPM spec --\> RPM Build --\> Build Binary Package. Isto vai criar um arquivo RPM no diretório RPM/RPMS.
10179
102-Bellow is a spec file that doesn't build the software. In this case the software is a Braille Course composed of html and Macromedia Flash files. Flash files cannot be build on Linux, so it's not possible to create a source package in this case.
103-```
104-%define name braillevirtual
80+Bellow is a spec file that doesn't build the software. In this case the software is a Braille Course composed of html and Macromedia Flash files. Flash files cannot be build on Linux, so it's not possible to create a source package in this case.
81+
82+ %define name braillevirtual
10583 %define version 1.0
10684 %define release mdk
10785 %define dir braillevirtual
10886 %define root /home/felipe/tmp/ROOT/
109-
87+
11088 Summary: Curso On-Line de Braille
11189 Name: %{name}
11290 Version: %{version}
11391 Release: %{release}
11492 Vendor: Laboratório de Brinquedos da Faculdade de Educação da USP
11593 URL: www.braillevirtual.fe.usp.br
11694 License: Distribuível livremente
11795 Group: Books/Other
11896 Packager: Felipe Monteiro de Carvalho
11997 Source0: home/felipe/Programacao/SOURCES/braillevirtual.tar.bz2
120- BuildRoot: %{root}
121-
98+ BuildRoot: %{root}
99+
122100 %description
123101 O Braille Virtual é um curso on-line público e gratuito destinado à difusão e ensino do sistema Braille de leitura e escrita para cegos a pessoas que vêem. É orientado especialmente a pais, crianças, professores e funcionários de escolas inclusivas e pretende facilitar a comunicação entre estas pessoas e as pessoas com cegueira.
124-
102+
125103 %prep
126104 cd $RPM_SOURCE_DIR
127105 cp braillevirtual.tar.bz2 $RPM_BUILD_DIR
128106 cd $RPM_BUILD_DIR
129- rm -rf %{dir}
107+ rm -rf %{dir}
130108 rm -f braillevirtual.tar
131109 bunzip2 -d braillevirtual.tar.bz2
132110 tar -xvf braillevirtual.tar
133-
111+
134112 %install
135113 rm -rf $RPM_BUILD_ROOT/usr/share/%{dir}
136114 cp -r $RPM_BUILD_DIR/%{dir} $RPM_BUILD_ROOT/usr/share/
137-
115+
138116 %clean
139117 rm -rf $RPM_BUILD_DIR/*.*
140-
118+
141119 %files
142120 /usr/share/%{dir}/
143-
121+
144122 %changelog
145-
123+
146124 * Mon Oct 24 2005 1.0-mdk.noarch.rpm
147-
125+
148126 - Nova atualização do pacote de instalação. Inclusão dos exercícios avançados.
149-
127+
150128 * Wed May 12 2005 1.0-mdk.noarch.rpm
151-
129+
152130 - Atualizei o pacote para refletir as mudanças no site. Várias pequenas mudanças.
153-
131+
154132 * Sun May 05 2005 1.0-1mdk.i586.rpm
155-
133+
156134 - O pacote de instalação do braille Virtual para linux é criado.
157-```
158135
159136#### Creating a source and binary package
160137
161-Linux distributions only accept RPM packages that can build the software. This will probably require creating build scripts and/or a Makefile. For more information see the section [[Deploying Your Application|Deploying_Your_Application#Creating_a_Makefile_for_your_Lazarus_software]].
138+Linux distributions only accept RPM packages that can build the software. This will probably require creating build scripts and/or a Makefile. For more information see the section [[Deploying Your Application|Deploying_Your_Application#Creating_a_Makefile_for_your_Lazarus_software]].
162139
163-You need to use the %build section to compile the software.
140+You need to use the %build section to compile the software.
164141
165-Bellow is an example of a spec file capable of building the software. Be very careful when studing this as every little detail is important and follows a precise pattern.
166-```
167-Name: magnifier
142+Bellow is an example of a spec file capable of building the software. Be very careful when studing this as every little detail is important and follows a precise pattern.
143+
144+ Name: magnifier
168145 Version: 3.2.1
169146 Release: 1
170147 Summary: Virtual Magnifying Glass
171148 Group: Accessibility
172149 License: GPL Version 2
173150 URL: http://magnifier.sourceforge.net
174151 Source0: http://internap.dl.sourceforge.net/sourceforge/magnifier/magnifier-3.2.1.zip
175152 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
176153 BuildRequires: fpc >= 2.0.2, lazarus >= 0.9.12
177154 Requires: ImageMagick
178-
155+
179156 %description
180-
157+
181158 Virtual Magnifying Glass is a free, open source, multiplatform, screen magnification tool. It is simple, customizable, and easy-to-use.
182-
159+
183160 %prep
184161 %setup -q magnifier
185-
162+
186163 %build
187164 make TARGET=%{_target_cpu}
188-
165+
189166 %install
190167 ./install.sh DESTDIR=$RPM_BUILD_ROOT
191-
168+
192169 %clean
193170 rm -rf $RPM_BUILD_ROOT/
194-
171+
195172 %files
196173 %defattr(-,root,root,-)
197174 /usr/share/magnifier/
198175 /usr/bin/magnifier
199-
176+
200177 %changelog
201-
178+
202179 * Wed Feb 15 2006 Felipe Monteiro de Carvalho <felipemonteiro.carvalho at gmail.com> - 3.2-mdk.i386.rpm
203180 - The Linux RPM package is created.
204-```
205181
206182### Creating a Debian Package on Linux
207183
208184Please, write me.
209185
210-In the mean time have a look at this tutorial written by IBM.
186+In the mean time have a look at this tutorial written by IBM.\
211187<http://www-128.ibm.com/developerworks/linux/library/l-debpkg.html>
212188
213189### GUInseng
214190
215-[GUInseng](<http://www.guinseng.de/>) is a a GTK+ based installer for Linux released under GPL.
191+[GUInseng](http://www.guinseng.de/) is a a GTK+ based installer for Linux released under GPL.
216192
217193## Creating a Makefile for your Lazarus software
218194
219-The following is a command line build system for a Lazarus software. This is particularly usefull if you with to create a RPM package suitable for inclusing on GNU/Linux distributions. The comments on the files should explain what each part does.
195+The following is a command line build system for a Lazarus software. This is particularly usefull if you with to create a RPM package suitable for inclusing on GNU/Linux distributions. The comments on the files should explain what each part does.
220196
221-
222-make.sh
223-```
224-#
197+make.sh
198+
199+ #
225200 # Detects and parses the architecture
226201 #
227-
202+
228203 ARCH=$(uname -m)
229-
204+
230205 case "$ARCH" in
231-
206+
232207 "i686") ARCH="i386";;
233-
208+
234209 "i586") ARCH="i386";;
235-
210+
236211 "i486") ARCH="i386";;
237-
212+
238213 esac
239-
214+
240215 echo "Target architecture: $ARCH"
241-
216+
242217 #
243218 # Detects and parses the OS
244219 #
245-
220+
246221 OS="linux"
247-
222+
248223 echo "Target operating system: $OS"
249-
250-
224+
251225 #
252226 # Command line to build the sofware
253227 #
254-
228+
255229 fpc -S2cgi -OG1 -gl -WG -vewnhi -l -Fu/usr/lib/lazarus/components/opengl/gtk2x11/ -Fi/usr/lib/lazarus/components/opengl/gtk2x11/include/ -Fu/usr/lib/lazarus/components/jpeg/ -Fu/usr/lib/lazarus/lcl/units/$ARCH-$OS/ -Fu/usr/lib/lazarus/lcl/units/$ARCH-$OS/ -Fu/usr/lib/lazarus/lcl/units/$ARCH-$OS/gtk2/ -Fu/usr/lib/lazarus/packager/units/$ARCH-$OS/ -Fu. -o./magnifier -dLCL -dLCLgtk2 magnifier.dpr
256-```
257230
258-install.sh
259-```
260-#
231+install.sh
232+
233+ #
261234 # Parses command line options. Currently supported options are:
262235 #
263- # DESTDIR Destination root directory
236+ # DESTDIR Destination root directory
264237 #
265-
238+
266239 DESTDIR=""
267-
240+
268241 for arg; do
269-
242+
270243 case $arg in
271-
244+
272245 DESTDIR=*) DESTDIR=${arg#DESTDIR=};;
273-
246+
274247 esac;
275-
248+
276249 done
277-
250+
278251 #
279252 # Does the install
280253 #
281254 # "mkdir -p" is equivalent to ForceDirectories pascal function
282255 #
283-
256+
284257 mkdir -p $DESTDIR/usr/share/magnifier
285-
258+
286259 cp ./topleft.bmp $DESTDIR/usr/share/magnifier/
287260 cp ./topright.bmp $DESTDIR/usr/share/magnifier/
288261 cp ./bottomleft.bmp $DESTDIR/usr/share/magnifier/
289262 cp ./bottomright.bmp $DESTDIR/usr/share/magnifier/
290263 cp ./top.bmp $DESTDIR/usr/share/magnifier/
291264 cp ./left.bmp $DESTDIR/usr/share/magnifier/
292265 cp ./bottom.bmp $DESTDIR/usr/share/magnifier/
293266 cp ./right.bmp $DESTDIR/usr/share/magnifier/
294267 cp ./icon3.ico $DESTDIR/usr/share/magnifier/
295-
268+
296269 mkdir -p $DESTDIR/usr/bin
297-
270+
298271 cp ./magnifier $DESTDIR/usr/bin/
299-```
300272
301-clean.sh
302-```
303-rm -rf *.o
273+clean.sh
274+
275+ rm -rf *.o
304276 rm -rf *.ppu
305-
277+
306278 rm -rf *.pas~
307279 rm -rf *.sh~
308280 rm -rf *.bak
309-
281+
310282 rm -rf *~
311-
283+
312284 rm -rf magnifier
313-```
314285
315-uninstall.sh
316-```
317-#
286+uninstall.sh
287+
288+ #
318289 # Don´t use "rm -rf" in here, because you should only remove the files you created
319290 #
320291 rm -f /usr/share/magnifier/topleft.bmp
321292 rm -f /usr/share/magnifier/topright.bmp
322293 rm -f /usr/share/magnifier/bottomleft.bmp
323294 rm -f /usr/share/magnifier/bottomright.bmp
324295 rm -f /usr/share/magnifier/top.bmp
325296 rm -f /usr/share/magnifier/left.bmp
326297 rm -f /usr/share/magnifier/bottom.bmp
327298 rm -f /usr/share/magnifier/right.bmp
328299 rm -f /usr/share/magnifier/icon3.ico
329-
300+
330301 rm -f /usr/share/magnifier/magnifier
331-
302+
332303 rm -f /usr/bin/magnifier
333-
304+
334305 rmdir /usr/share/magnifier
335-```
336306
337-Makefile
338-```
339-#
307+Makefile
308+
309+ #
340310 # Targets
341311 #
342-
312+
343313 #
344314 # The First target is the one build when there is nothing on make command line
345315 #
346316 all:
347- ./make.sh
348-
317+ ./make.sh
318+
349319 clean:
350- ./clean.sh
351-
320+ ./clean.sh
321+
352322 install:
353- ./install.sh
354-
355- uninstall:
356- ./uninstall.sh
357-```
323+ ./install.sh
358324
359-
325+ uninstall:
326+ ./uninstall.sh
360327
361328## macOS installers
362329
363330### Using PackageMaker on macOS
364331
365-Most macOS programs are distributed as a disk image file (.dmg extension). Normally you download or copy a program's .dmg file to your Mac and double-click it. This "mounts" the disk image and opens it in a window on the desktop, where you'll typically see a package file (.pkg extension) that you double-click to perform the actual program installation. After installation is complete, you "unmount" (eject) the mounted disk image by dragging it to the trash. You can also delete the .dmg file by dragging it to the trash as well.
332+Most macOS programs are distributed as a disk image file (.dmg extension). Normally you download or copy a program's .dmg file to your Mac and double-click it. This "mounts" the disk image and opens it in a window on the desktop, where you'll typically see a package file (.pkg extension) that you double-click to perform the actual program installation. After installation is complete, you "unmount" (eject) the mounted disk image by dragging it to the trash. You can also delete the .dmg file by dragging it to the trash as well.
366333
367-The installer .pkg file is actually a directory, as is the resulting application bundle (.app extension) that it copies to the Applications folder. To the user, .pkg and .app files look and act like ordinary files, but they're really directories whose details have been hidden from the user. You can see what's inside a .pkg or .app file by entering normal cd commands in a terminal window (for example, cd progname.app) or by Ctrl-clicking the file and choosing Show Package Contents from the popup menu.
334+The installer .pkg file is actually a directory, as is the resulting application bundle (.app extension) that it copies to the Applications folder. To the user, .pkg and .app files look and act like ordinary files, but they're really directories whose details have been hidden from the user. You can see what's inside a .pkg or .app file by entering normal cd commands in a terminal window (for example, cd progname.app) or by Ctrl-clicking the file and choosing Show Package Contents from the popup menu.
368335
369-You create .pkg files using PackageMaker, which is installed along with the XCode tools in /Developer/Applications/Utilities. With PackageMaker, you select the folder containing the files you want to package and set other installation options, for example whether a password must be entered to install the program. Note that the folder you select can be an .app file. Choose File | Create Package to create the .pkg file. You can also save your settings for future use in PackageMaker by choosing File | Save to create a .pmsp file that you name (.pmproj with later versions).
336+You create .pkg files using PackageMaker, which is installed along with the XCode tools in /Developer/Applications/Utilities. With PackageMaker, you select the folder containing the files you want to package and set other installation options, for example whether a password must be entered to install the program. Note that the folder you select can be an .app file. Choose File \| Create Package to create the .pkg file. You can also save your settings for future use in PackageMaker by choosing File \| Save to create a .pmsp file that you name (.pmproj with later versions).
370337
371-To create a .dmg file, run the macOS Disk Utility, which is installed in /Applications/ Utilities. Select Images | New | Image from Folder and choose the folder containing your .pkg file and any other files you want to include in the disk image. In the Convert Image dialog, enter the name of the .dmg file to create, select where it should be saved, and select "compressed" as the image format. The .dmg file that Disk Utility creates is then ready for distribution.
338+To create a .dmg file, run the macOS Disk Utility, which is installed in /Applications/ Utilities. Select Images \| New \| Image from Folder and choose the folder containing your .pkg file and any other files you want to include in the disk image. In the Convert Image dialog, enter the name of the .dmg file to create, select where it should be saved, and select "compressed" as the image format. The .dmg file that Disk Utility creates is then ready for distribution.
372339
373340### Installing X11 and GTK on macOS
374341
375-GUI apps created with Lazarus that use the GTK widgetset require X11 and the GTK libraries to run. X11 is included with macOS, but may not be installed by default on a user's Mac, so you'll want to mention this in your app's read-me file.
342+GUI apps created with Lazarus that use the GTK widgetset require X11 and the GTK libraries to run. X11 is included with macOS, but may not be installed by default on a user's Mac, so you'll want to mention this in your app's read-me file.
376343
377344To install the GTK libraries on a user's system, you could include instructions for using fink. Or you could create a separate .dmg file containing just the files from the /sw/lib folder on your Mac. If you don't want to install all of the subfolders under the /sw/lib folder, copy just the .dylib files from /sw/lib to a different folder and package this folder instead of /sw/lib. Also, remember that the GTK libraries installed on your Mac are specific to the processor that you're running. That is, if you want to support both PowerPC and Intel Macs you'll need to create two different .dmg files and instruct your users to install the appropriate one. Note that the GTK libraries only need to be installed once and can be used with any number of Lazarus GUI programs that you develop.
378345
379346---
380-*From the Free Pascal wiki, page "Deploying Your Application/pt", as the Internet Archive kept it on 2023-01-27. 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).*
347+*From the Free Pascal wiki, page "Deploying Your Application/pt", as it stood on 2020-02-29 after a change by Trev, 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).*

Back to history