Sign in Join
Wiki copytemporary

Deploying Your Application/pt: what changed

Revision 1 to 2. 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+
122## Instaladores para Windows
223
324### InnoSetup
425
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/).
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/>).
627
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.
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.
829
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.
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.
1031
11-O Inno Setup é usado para criar o instalador do Lazarus para Windows.
32+O Inno Setup é usado para criar o instalador do Lazarus para Windows.
1233
1334### InstallJammer
1435
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.
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.
1637
1738### HJ-Install
1839
1940HJ-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/>
2041
2142### LizaJet Installer
2243
2344O LizaJet Installer é um instalador comercial, mas uma edição free está disponível. Usa Object Pascal para script. Veja em <http://www.lizajet.com>
2445
2546### NSIS (Nullsoft Scriptable Install System)
2647
2748Um 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/>
2849
2950### Grupo de Ferramentas para Windows Installer XML (WiX)
3051
3152Um 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/>
3253
3354## Instaladores para Unix
3455
3556### Criando um pacote RPM em Linux
3657
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.
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.
3859
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.
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.
4061
4162#### Configurando o seu ambiente de construção
4263
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.
44-
45-Primeiro vá ao diretório home (ou outro diretório dentro dele) e crie a seguinte estrutura de diretório:
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.
4665
47-RPM
66+Primeiro vá ao diretório home (ou outro diretório dentro dele) e crie a seguinte estrutura de diretório:
4867
49-RPM/BUILD - Este diretório é utilizado pelo RPM para construir o pacote.
68+RPM
5069
51-RPM/RPMS - Aqui você pode encontrar RPMs binários depois de construí-los.
70+RPM/BUILD - Este diretório é utilizado pelo RPM para construir o pacote.
5271
53-RPM/SOURCES - Ponha seus arquivos comprimidos tar e patches aqui.
72+RPM/RPMS - Aqui você pode encontrar RPMs binários depois de construí-los.
5473
55-RPM/SPECS - Ponha todos os seus arquivos spec aqui.
74+RPM/SOURCES - Ponha seus arquivos comprimidos tar e patches aqui.
5675
57-RPM/SRPMS - Here you can find source RPMs after you build them.
76+RPM/SPECS - Ponha todos os seus arquivos spec aqui.
5877
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.
78+RPM/SRPMS - Here you can find source RPMs after you build them.
6079
61- %_topdir /home/felipe/RPM/
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/
6283 %_tmppath /home/felipe/tmp
63-
84+
6485 %_signature gpg
6586 %_gpg_name Mandrakelinux
6687 %_gpg_path ~/.gnupg
88+```
6789
6890#### Criando um pacote somente binário
6991
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:
71-
72-- Requer a criação de um Makefile e eles são complexos
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:
7393
74-- Alguns pacotes não têm qualquer binário neles e não precisam ser construídos.
94+ * Requer a criação de um Makefile e eles são complexos
7595
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.
96+ * Alguns pacotes não têm qualquer binário neles e não precisam ser construídos.
7797
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.
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.
7999
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.
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.
81101
82- %define name braillevirtual
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
83105 %define version 1.0
84106 %define release mdk
85107 %define dir braillevirtual
86108 %define root /home/felipe/tmp/ROOT/
87-
109+
88110 Summary: Curso On-Line de Braille
89111 Name: %{name}
90112 Version: %{version}
91113 Release: %{release}
92114 Vendor: Laboratório de Brinquedos da Faculdade de Educação da USP
93115 URL: www.braillevirtual.fe.usp.br
94116 License: Distribuível livremente
95117 Group: Books/Other
96118 Packager: Felipe Monteiro de Carvalho
97119 Source0: home/felipe/Programacao/SOURCES/braillevirtual.tar.bz2
98- BuildRoot: %{root}
99-
120+ BuildRoot: %{root}
121+
100122 %description
101123 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.
102-
124+
103125 %prep
104126 cd $RPM_SOURCE_DIR
105127 cp braillevirtual.tar.bz2 $RPM_BUILD_DIR
106128 cd $RPM_BUILD_DIR
107- rm -rf %{dir}
129+ rm -rf %{dir}
108130 rm -f braillevirtual.tar
109131 bunzip2 -d braillevirtual.tar.bz2
110132 tar -xvf braillevirtual.tar
111-
133+
112134 %install
113135 rm -rf $RPM_BUILD_ROOT/usr/share/%{dir}
114136 cp -r $RPM_BUILD_DIR/%{dir} $RPM_BUILD_ROOT/usr/share/
115-
137+
116138 %clean
117139 rm -rf $RPM_BUILD_DIR/*.*
118-
140+
119141 %files
120142 /usr/share/%{dir}/
121-
143+
122144 %changelog
123-
145+
124146 * Mon Oct 24 2005 1.0-mdk.noarch.rpm
125-
147+
126148 - Nova atualização do pacote de instalação. Inclusão dos exercícios avançados.
127-
149+
128150 * Wed May 12 2005 1.0-mdk.noarch.rpm
129-
151+
130152 - Atualizei o pacote para refletir as mudanças no site. Várias pequenas mudanças.
131-
153+
132154 * Sun May 05 2005 1.0-1mdk.i586.rpm
133-
155+
134156 - O pacote de instalação do braille Virtual para linux é criado.
157+```
135158
136159#### Creating a source and binary package
137160
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]].
139-
140-You need to use the %build section to compile the software.
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]].
141162
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.
163+You need to use the %build section to compile the software.
143164
144- Name: magnifier
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
145168 Version: 3.2.1
146169 Release: 1
147170 Summary: Virtual Magnifying Glass
148171 Group: Accessibility
149172 License: GPL Version 2
150173 URL: http://magnifier.sourceforge.net
151174 Source0: http://internap.dl.sourceforge.net/sourceforge/magnifier/magnifier-3.2.1.zip
152175 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
153176 BuildRequires: fpc >= 2.0.2, lazarus >= 0.9.12
154177 Requires: ImageMagick
155-
178+
156179 %description
157-
180+
158181 Virtual Magnifying Glass is a free, open source, multiplatform, screen magnification tool. It is simple, customizable, and easy-to-use.
159-
182+
160183 %prep
161184 %setup -q magnifier
162-
185+
163186 %build
164187 make TARGET=%{_target_cpu}
165-
188+
166189 %install
167190 ./install.sh DESTDIR=$RPM_BUILD_ROOT
168-
191+
169192 %clean
170193 rm -rf $RPM_BUILD_ROOT/
171-
194+
172195 %files
173196 %defattr(-,root,root,-)
174197 /usr/share/magnifier/
175198 /usr/bin/magnifier
176-
199+
177200 %changelog
178-
201+
179202 * Wed Feb 15 2006 Felipe Monteiro de Carvalho <felipemonteiro.carvalho at gmail.com> - 3.2-mdk.i386.rpm
180203 - The Linux RPM package is created.
204+```
181205
182206### Creating a Debian Package on Linux
183207
184208Please, write me.
185209
186-In the mean time have a look at this tutorial written by IBM.\
210+In the mean time have a look at this tutorial written by IBM.
187211<http://www-128.ibm.com/developerworks/linux/library/l-debpkg.html>
188212
189213### GUInseng
190214
191-[GUInseng](http://www.guinseng.de/) is a a GTK+ based installer for Linux released under GPL.
215+[GUInseng](<http://www.guinseng.de/>) is a a GTK+ based installer for Linux released under GPL.
192216
193217## Creating a Makefile for your Lazarus software
194218
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.
196-
197-make.sh
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.
198220
199- #
221+
222+make.sh
223+```
224+#
200225 # Detects and parses the architecture
201226 #
202-
227+
203228 ARCH=$(uname -m)
204-
229+
205230 case "$ARCH" in
206-
231+
207232 "i686") ARCH="i386";;
208-
233+
209234 "i586") ARCH="i386";;
210-
235+
211236 "i486") ARCH="i386";;
212-
237+
213238 esac
214-
239+
215240 echo "Target architecture: $ARCH"
216-
241+
217242 #
218243 # Detects and parses the OS
219244 #
220-
245+
221246 OS="linux"
222-
247+
223248 echo "Target operating system: $OS"
224-
249+
250+
225251 #
226252 # Command line to build the sofware
227253 #
228-
254+
229255 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
230-
231-install.sh
256+```
232257
233- #
258+install.sh
259+```
260+#
234261 # Parses command line options. Currently supported options are:
235262 #
236- # DESTDIR Destination root directory
263+ # DESTDIR Destination root directory
237264 #
238-
265+
239266 DESTDIR=""
240-
267+
241268 for arg; do
242-
269+
243270 case $arg in
244-
271+
245272 DESTDIR=*) DESTDIR=${arg#DESTDIR=};;
246-
273+
247274 esac;
248-
275+
249276 done
250-
277+
251278 #
252279 # Does the install
253280 #
254281 # "mkdir -p" is equivalent to ForceDirectories pascal function
255282 #
256-
283+
257284 mkdir -p $DESTDIR/usr/share/magnifier
258-
285+
259286 cp ./topleft.bmp $DESTDIR/usr/share/magnifier/
260287 cp ./topright.bmp $DESTDIR/usr/share/magnifier/
261288 cp ./bottomleft.bmp $DESTDIR/usr/share/magnifier/
262289 cp ./bottomright.bmp $DESTDIR/usr/share/magnifier/
263290 cp ./top.bmp $DESTDIR/usr/share/magnifier/
264291 cp ./left.bmp $DESTDIR/usr/share/magnifier/
265292 cp ./bottom.bmp $DESTDIR/usr/share/magnifier/
266293 cp ./right.bmp $DESTDIR/usr/share/magnifier/
267294 cp ./icon3.ico $DESTDIR/usr/share/magnifier/
268-
295+
269296 mkdir -p $DESTDIR/usr/bin
270-
297+
271298 cp ./magnifier $DESTDIR/usr/bin/
272-
273-clean.sh
299+```
274300
275- rm -rf *.o
301+clean.sh
302+```
303+rm -rf *.o
276304 rm -rf *.ppu
277-
305+
278306 rm -rf *.pas~
279307 rm -rf *.sh~
280308 rm -rf *.bak
281-
309+
282310 rm -rf *~
283-
311+
284312 rm -rf magnifier
285-
286-uninstall.sh
313+```
287314
288- #
315+uninstall.sh
316+```
317+#
289318 # Don´t use "rm -rf" in here, because you should only remove the files you created
290319 #
291320 rm -f /usr/share/magnifier/topleft.bmp
292321 rm -f /usr/share/magnifier/topright.bmp
293322 rm -f /usr/share/magnifier/bottomleft.bmp
294323 rm -f /usr/share/magnifier/bottomright.bmp
295324 rm -f /usr/share/magnifier/top.bmp
296325 rm -f /usr/share/magnifier/left.bmp
297326 rm -f /usr/share/magnifier/bottom.bmp
298327 rm -f /usr/share/magnifier/right.bmp
299328 rm -f /usr/share/magnifier/icon3.ico
300-
329+
301330 rm -f /usr/share/magnifier/magnifier
302-
331+
303332 rm -f /usr/bin/magnifier
304-
333+
305334 rmdir /usr/share/magnifier
306-
307-Makefile
335+```
308336
309- #
337+Makefile
338+```
339+#
310340 # Targets
311341 #
312-
342+
313343 #
314344 # The First target is the one build when there is nothing on make command line
315345 #
316346 all:
317- ./make.sh
318-
347+ ./make.sh
348+
319349 clean:
320- ./clean.sh
321-
350+ ./clean.sh
351+
322352 install:
323- ./install.sh
324-
353+ ./install.sh
354+
325355 uninstall:
326- ./uninstall.sh
356+ ./uninstall.sh
357+```
327358
359+
360+
328361## macOS installers
329362
330363### Using PackageMaker on macOS
331364
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.
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.
333366
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.
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.
335368
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).
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).
337370
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.
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.
339372
340373### Installing X11 and GTK on macOS
341374
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.
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.
343376
344377To 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.
345378
346379---
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).*
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).*

Back to history