Re: Problems building a binary from cpython that can be installed in /Users/{USER}/Library
Barry Scott <[email protected]> Sun, 14 Nov 2021 15:57:13 +0000
| Newsgroups | gmane.comp.python.apple |
|---|---|
| Message-ID | <[email protected]> |
--===============3479285775757009184== Content-Type: multipart/alternative; boundary="Apple-Mail=_12353685-FAEA-4CBD-9FFC-9B780D92B389" --Apple-Mail=_12353685-FAEA-4CBD-9FFC-9B780D92B389 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii > On 10 Nov 2021, at 20:28, Paul Romer <[email protected]> wrote: >=20 > I am new to this sig. I hope it is appropriate to pose the following = detailed question to its members. Let me know if I have misunderstood.=20= >=20 > I'll provide a bit of background, specify the steps I took, then = describe the two issues I'm facing on which I would welcome advice.=20 >=20 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 > Background:=20 > I am trying to create a self-contained Python application that a user = could download and run on MacOS that does not have Python 3 installed. I = am aware that PyInstaller and py2app are alternative paths for creating = self-contained apps and am pursuing them in parallel.=20 >=20 > The issue I want to describe here arose as part of experiments with = the process for creating a binary for a recent version of Python (3.9.8) = that can be installed under the user's home directory.=20 >=20 > /Users/{USER}/Library.=20 >=20 > According to the information in the cpython repository, it seems that = it should be possible to build an installer for a full version of Python = that can be installed someplace on a Mac other than the default = location: /Library. In particular, one should be able to do this using=20= >=20 > build-installer.py=20 >=20 > in the >=20 > Mac/BuildScript=20 >=20 > directory.=20 >=20 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 > Steps I Took: >=20 > In the cpython directory I ran:=20 >=20 > > ./configure --enable-framework=3D/Users/{USER}/Library/Frameworks \ > --enable-optimizations Why do you think you need to build CPYTHON at all? I use py3app with the python.org <http://python.org/> downloaded = versions of python. >=20 > I confirmed that the Makefile included the line:=20 >=20 > CONFIG_ARGS=3D = '--enable-framework=3D/Users/{USER}/Library/Frameworks' = '--enable-optimizations' >=20 > (I also tried replacing {USER} with the actual user on my system, = 'admin'. This yielded the same results.) =20 >=20 > I put the external files OpenSSL, tcl/tck, ... (details below) that = are required into the=20 >=20 > .../Universal/other-sources=20 >=20 > directory. I deleted my install of Python3.9 and backed-up and deleted = all the files from=20 >=20 > /usr/local/bin=20 >=20 > Then from=20 >=20 > /Mac/BuildScript=20 >=20 > I ran=20 >=20 > > python3 build-installer.py \ > --universal-archs=3Dintel-64 \ > --dep-target=3D11 >=20 > Along the way, there were several warnings, but no errors. The end = result is a dmg file:=20 >=20 > python-3.9.8+-macos12-2021-11-10.dmg >=20 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 > Issues: >=20 > 1. I am not sure how to convert the dmg into a "macOS flat installer = package" and would welcome any advice on this point.=20 You do not need to. All the user needs to do it drag the <yourapp>.app = folder into (typically) /Applications. >=20 > 2. But in any case, I do not think that an installer based on this dmg = will allow an install in the Library of the user. When I inspect the dmg = file, I find that the post-install scripts include references to the = usual file location in /Library. For example, the script that runs after = installing the framework has the lines:=20 >=20 > PYVER=3D"3.9" > FWK=3D"/Library/Frameworks/Python.framework/Versions/3.9" What post-install script? That's not something that py2app does. >=20 > The script that runs after installing the files for pip has the lines:=20= >=20 > PYVER=3D"3.9" > PYMAJOR=3D"3" > FWK=3D"/Library/Frameworks/Python.framework/Versions/${PYVER}" > RELFWKBIN=3D"../../..${FWK}/bin" >=20 > This suggests that I have misunderstood the instructions. So I would = appreciate any advice on how to succeed on this path, or suggestions = about alternative paths that might work. In particular, the alternative = that might be feasible would be to use the work from=20 >=20 > https://github.com/codrsquad/portable-python = <https://github.com/codrsquad/portable-python> >=20 > This is a recent project, not the one with the same name that was = abandoned that you'll find here: >=20 > https://portablepython.com/ <https://portablepython.com/> For Barry's Emacs I do 2 steps. 1. Build the .app bundle. 2. Build .dmg that has a bunch of files including the .app bundle. There may be a bit too much complexity but have look at how I build the = .app bundle in = https://github.com/barry-scott/BarrysEmacs/blob/master/Editor/PyQtBEmacs/b= uild-macosx.sh = <https://github.com/barry-scott/BarrysEmacs/blob/master/Editor/PyQtBEmacs/= macosx.mak> and = https://github.com/barry-scott/BarrysEmacs/blob/master/Editor/PyQtBEmacs/b= rand.setup-macosx.py = <https://github.com/barry-scott/BarrysEmacs/blob/master/Editor/PyQtBEmacs/= brand.setup-macosx.py> I'm using PyQt not Tk. Barry >=20 >=20 > Thanks for reading through all this!=20 >=20 >=20 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 > PS: Contents of my .../Universal/other-sources directory:=20 >=20 > -rw-r--r-- 1 admin staff 367573 Nov 10 00:53 = ncurses-5.9-20120616-patch.sh.bz2 > -rw-r--r-- 1 admin staff 2826473 Nov 10 00:53 ncurses-5.9.tar.gz > -rw-r--r-- 1 admin staff 9834044 Nov 9 22:19 = openssl-1.1.1l.tar.gz > -rw-rw-rw-@ 1 admin staff 2956627 Nov 10 01:06 = sqlite-autoconf-3350500.tar.gz > -rw-rw-rw-@ 1 admin staff 10259009 Nov 9 22:55 = tcl8.6.11-src.tar.gz > -rw-rw-rw-@ 1 admin staff 4496914 Nov 10 00:37 tk8.6.11-src.tar.gz > -rw-rw-rw-@ 1 admin staff 1490665 Nov 10 00:45 xz-5.2.3.tar.gz >=20 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 >=20 > Paul Romer=20 > [email protected] <mailto:[email protected]> | paulromer.net = <http://paulromer.net/> | @paulromer = <https://twitter.com/paulmromer?ref_src=3Dtwsrc%5Egoogle%7Ctwcamp%5Eserp%7= Ctwgr%5Eauthor> >=20 > _______________________________________________ > Pythonmac-SIG maillist - [email protected] > https://mail.python.org/mailman/listinfo/pythonmac-sig > unsubscribe: https://mail.python.org/mailman/options/Pythonmac-SIG --Apple-Mail=_12353685-FAEA-4CBD-9FFC-9B780D92B389 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; = charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; = -webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><br = class=3D""><div><br class=3D""><blockquote type=3D"cite" class=3D""><div = class=3D"">On 10 Nov 2021, at 20:28, Paul Romer <<a = href=3D"mailto:[email protected]" class=3D"">[email protected]</a>> = wrote:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div = dir=3D"ltr" class=3D""><div class=3D""><span = style=3D"font-family:monospace" class=3D"">I am new to this sig. I hope = it is appropriate to pose the following detailed question to its = members. </span><span style=3D"font-family:monospace" class=3D"">Let = me know if I have misunderstood. <br class=3D""></span></div><div = class=3D""><span style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">I'll provide a bit of = background, specify the steps I took, then describe the two issues I'm = facing on which I would welcome advice. <br class=3D""></span></div><div = class=3D""><span style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><span = style=3D"font-family:monospace" class=3D""><span = style=3D"font-family:monospace" = class=3D"">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</spa= n></span></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><span = style=3D"font-family:monospace" class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></span></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><b class=3D"">Background: = </b></span><span style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">I am trying to create a = self-contained Python application that a user could download and run on = MacOS that does not have Python 3 installed. <span = style=3D"font-family:monospace" class=3D"">I am aware that PyInstaller = and py2app are alternative paths for creating self-contained apps and am = pursuing them in parallel. <br class=3D""></span></span></div><div = class=3D""><span style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">The issue I want to describe = here arose as part of experiments with the process for creating a binary = for a recent version of Python (3.9.8) that can be installed under the = user's home directory. <br class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D"">/Users/{USER}/Library. <br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">According to the information = in the cpython repository, it seems that it should be possible to build = an installer for a full version of Python that can be installed = someplace on a Mac other than the default location: /Library. In = particular, one should be able to do this using <br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D"">build-installer.py <br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">in the<br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D"">Mac/BuildScript <br = class=3D""></span></div><div style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">directory. <br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><b class=3D""><br = class=3D""></b></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><b class=3D""><span = style=3D"font-family:monospace" class=3D""><span = style=3D"font-family:monospace" = class=3D"">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</spa= n></span></b></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><b class=3D""><span = style=3D"font-family:monospace" class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></span></b></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><b class=3D"">Steps I = Took:</b></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">In the cpython directory I = ran: <br class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D"">> ./configure = --enable-framework=3D/Users/{USER}/Library/Frameworks \</span></div><div = style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D"">--enable-optimizations<br = class=3D""></span></div></div></div></blockquote><div><br = class=3D""></div>Why do you think you need to build CPYTHON at = all?</div><div><br class=3D""></div><div>I use py3app with the <a = href=3D"http://python.org" class=3D"">python.org</a> downloaded = versions of python.</div><div><br class=3D""><blockquote type=3D"cite" = class=3D""><div class=3D""><div dir=3D"ltr" class=3D""><div = class=3D""><div class=3D""><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">I confirmed that the Makefile = included the line: <br class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><div style=3D"background-color: = rgb(255, 255, 255); font-weight: normal; font-size: 12px; line-height: = 18px; white-space: pre;" class=3D""><div style=3D"margin-left:40px" = class=3D""><span style=3D"font-family:monospace" class=3D""><span = style=3D"" class=3D"">CONFIG_ARGS=3D = '--enable-framework=3D/Users/{USER}/Library/Frameworks' = '--enable-optimizations'</span></span></div><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><span style=3D"font-family:monospace" = class=3D"">(I also tried replacing {USER} with the actual user on my = system, 'admin'. This yielded the same results.) <br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">I put the external files = OpenSSL, tcl/tck, ... (details below) that are required into the <br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D"">.../Universal/other-sources = <br class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">directory. I deleted my = install of Python3.9 and backed-up and deleted all the files from <br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D"">/usr/local/bin <br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">Then from <br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D"">/Mac/BuildScript <br = class=3D""></span></div><div style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><span style=3D"font-family:monospace" class=3D"">I= ran <br class=3D""></span></div><div class=3D""><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D"">> python3 = build-installer.py \<br class=3D""></span></div><div = style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D"">--universal-archs=3Dintel-64 = \<br class=3D"">--dep-target=3D11</span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><span = style=3D"font-family:monospace" class=3D"">Along the way, there were = several warnings, but no errors. </span>The end result is a dmg file: = <br class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" = class=3D"">python-3.9.8+-macos12-2021-11-10.dmg</span></div><div = class=3D""><div style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><span style=3D"font-family:monospace" = class=3D""><span style=3D"font-family:monospace" class=3D""><span = style=3D"font-family:monospace" = class=3D"">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</spa= n></span></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><b = class=3D"">Issues:</b></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">1. I am not sure how to = convert the dmg into a "macOS flat installer package" and would welcome = any advice on this point. <br = class=3D""></span></div></div></div></div></div></blockquote><div><br = class=3D""></div><div><br class=3D""></div><div>You do not need to. All = the user needs to do it drag the <yourapp>.app folder into = (typically) /Applications.</div><br class=3D""><blockquote type=3D"cite" = class=3D""><div class=3D""><div dir=3D"ltr" class=3D""><div = class=3D""><div class=3D""><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">2. But in any case, I do not = think that an installer based on this dmg will allow an install in the = Library of the user. When I inspect the dmg file, I find that the = post-install scripts include references to the usual file location in = /Library. For example, the script that runs after installing the = framework has the lines: <br class=3D""></span></div><div class=3D""><span= style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><div style=3D"margin-left:40px" = class=3D""><span style=3D"font-family:monospace" class=3D"">PYVER=3D"3.9"<= br class=3D"">FWK=3D"/Library/Frameworks/Python.framework/Versions/3.9"<br= = class=3D""></span></div></div></div></div></div></div></blockquote><div><b= r class=3D""></div> What post-install script? That's not something = that py2app does.</div><div><br class=3D""><blockquote type=3D"cite" = class=3D""><div class=3D""><div dir=3D"ltr" class=3D""><div = class=3D""><div class=3D""><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">The script that runs after = installing the files for pip has the lines: <br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D"">PYVER=3D"3.9"<br = class=3D"">PYMAJOR=3D"3"<br = class=3D"">FWK=3D"/Library/Frameworks/Python.framework/Versions/${PYVER}"<= br class=3D"">RELFWKBIN=3D"../../..${FWK}/bin"</span></div><div = style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><span style=3D"font-family:monospace" = class=3D"">This suggests that I have misunderstood the instructions. So = I would appreciate any advice on how to succeed on this path, or = suggestions about alternative paths that might work. In particular, the = alternative that might be feasible would be to use the work from <br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div style=3D"margin-left:40px" class=3D""><span = style=3D"font-family:monospace" class=3D""><a = href=3D"https://github.com/codrsquad/portable-python" = class=3D"">https://github.com/codrsquad/portable-python</a> = </span></div><div class=3D""><span style=3D"font-family:monospace" = class=3D""><br class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">This is a recent project, not = the one with the same name that was abandoned that you'll find = here:</span></div><div class=3D""><span style=3D"font-family:monospace" = class=3D""><br class=3D""></span></div><div style=3D"margin-left:40px" = class=3D""><span style=3D"font-family:monospace" class=3D""><a = href=3D"https://portablepython.com/" = class=3D"">https://portablepython.com/</a></span></div></div></div></div><= /blockquote><div><br class=3D""></div><div>For Barry's Emacs I do 2 = steps.</div><div><br class=3D""></div><div>1. Build the .app = bundle.</div><div>2. Build .dmg that has a bunch of files including the = .app bundle.</div><div><br class=3D""></div><div>There may be a bit too = much complexity but have look at how I build the .app bundle = in</div><div><a = href=3D"https://github.com/barry-scott/BarrysEmacs/blob/master/Editor/PyQt= BEmacs/macosx.mak" = class=3D"">https://github.com/barry-scott/BarrysEmacs/blob/master/Editor/P= yQtBEmacs/build-macosx.sh</a></div><div>and</div><div><a = href=3D"https://github.com/barry-scott/BarrysEmacs/blob/master/Editor/PyQt= BEmacs/brand.setup-macosx.py" = class=3D"">https://github.com/barry-scott/BarrysEmacs/blob/master/Editor/P= yQtBEmacs/brand.setup-macosx.py</a></div><div><br = class=3D""></div><div>I'm using PyQt not Tk.</div><div><br = class=3D""></div><div>Barry</div><div><br class=3D""></div><br = class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><div = dir=3D"ltr" class=3D""><div class=3D""><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">Thanks for reading through = all this! <br class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><span = style=3D"font-family:monospace" = class=3D"">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</spa= n></span></div><div class=3D""><span style=3D"font-family:monospace" = class=3D""><br class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D"">PS: Contents of my = .../Universal/other-sources directory: <br class=3D""></span></div><div = class=3D""><span style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""> -rw-r--r-- = 1 admin staff 367573 Nov 10 00:53 = ncurses-5.9-20120616-patch.sh.bz2<br class=3D""> = -rw-r--r-- 1 admin staff 2826473 Nov 10 00:53 = ncurses-5.9.tar.gz<br class=3D""> -rw-r--r-- 1 = admin staff 9834044 Nov 9 22:19 = openssl-1.1.1l.tar.gz<br class=3D""> -rw-rw-rw-@ 1 = admin staff 2956627 Nov 10 01:06 = sqlite-autoconf-3350500.tar.gz<br class=3D""> -rw-rw-rw-@ = 1 admin staff 10259009 Nov 9 22:55 = tcl8.6.11-src.tar.gz<br class=3D""> -rw-rw-rw-@ 1 = admin staff 4496914 Nov 10 00:37 tk8.6.11-src.tar.gz<br = class=3D""> -rw-rw-rw-@ 1 admin staff = 1490665 Nov 10 00:45 xz-5.2.3.tar.gz</span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><div class=3D""><span = style=3D"font-family:monospace" = class=3D"">=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><span = style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div><div class=3D""><div dir=3D"ltr" = class=3D"gmail_signature" data-smartmail=3D"gmail_signature"><div = dir=3D"ltr" class=3D""><div style=3D"font-size: 12px;" class=3D""><span = style=3D"font-family:monospace" class=3D"">Paul Romer <br = class=3D""><a href=3D"mailto:[email protected]" = style=3D"color:rgb(17,85,204)" target=3D"_blank" = class=3D"">[email protected]</a> | <a = href=3D"http://paulromer.net/" style=3D"color:rgb(17,85,204)" = target=3D"_blank" class=3D"">paulromer.net</a> | <a = href=3D"https://twitter.com/paulmromer?ref_src=3Dtwsrc%5Egoogle%7Ctwcamp%5= Eserp%7Ctwgr%5Eauthor" style=3D"color:rgb(17,85,204)" target=3D"_blank" = class=3D"">@paulromer</a></span></div><div style=3D"font-size: 12px;" = class=3D""><span style=3D"font-family:monospace" class=3D""><br = class=3D""></span></div></div></div></div></div></div></div> _______________________________________________<br = class=3D"">Pythonmac-SIG maillist - <a = href=3D"mailto:[email protected]" = class=3D"">[email protected]</a><br class=3D""><a = href=3D"https://mail.python.org/mailman/listinfo/pythonmac-sig" = class=3D"">https://mail.python.org/mailman/listinfo/pythonmac-sig</a><br = class=3D"">unsubscribe: = https://mail.python.org/mailman/options/Pythonmac-SIG<br = class=3D""></div></blockquote></div><br class=3D""></body></html>= --Apple-Mail=_12353685-FAEA-4CBD-9FFC-9B780D92B389-- --===============3479285775757009184== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Pythonmac-SIG maillist - [email protected] https://mail.python.org/mailman/listinfo/pythonmac-sig unsubscribe: https://mail.python.org/mailman/options/Pythonmac-SIG --===============3479285775757009184==--