Re: Hello! What can I do with wxPerl+Windows right now?
[email protected] (Darren Harwood) Fri, 20 Dec 2024 13:01:25 +0000
| Newsgroups | perl.wxperl.users |
|---|---|
| Message-ID | <[email protected]> |
--Apple-Mail=_5B780ED3-7540-46D2-9A06-F11368D1B226 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 probably teaching you to suck eggs, but just in case..... the process i described using citrus perl and wxpar is equivalent to = regular perl and par packer (pp). both create a self-contained, no-dependencies executable containing the = perl engine, required libraries and your source code. with optional = storage of things like resources (images, config files, whatever). the end-user can receive that exe onto a windows machine that does not = have perl installed on it (or does and its perhaps a different version), = and the exe will run as a windows program. it is not an "installer" (your program will not end up in their = program-files structure) - that would be a different process. just wanna make sure we're all on the same (starting) page. cheers, Darren On 19 Dec 2024, at 22:59, Brett Estrade <[email protected]> wrote: Thank you Darren, I found Citris Perl in the archives and was really = curious about how it worked. I ran it, and was getting issues due to = minimum Perl version (I think last update was for 5.16 or 5.24 - which = frankly is fine with me! :-) ). Would anyone be willing to document the process for Windows? I can do = the work of verifying it and posting it somewhere it would be helpful to = many. I think the number #1 thing we can have for wxPerl and Perl programmers = in general here is a well documented process to get the .exe or an msi = for Windows, and that is what I'd like to be able to reproduce and = document: development environment set up (with or without wxGlade) package things up into a EXE, such that the user needs only a single = file (and not have to also install Perl or anything) create an installer for Windows See, I think we're long past the point that end-users/clients care = things are written in Perl. They want the service or program to work, = and it done at fair prices (Perl allows this due to programmer = efficiency that can be achieved). What matters now is that Perl = programmers have a well documented way to use their skills to create = Windows applications that are useful, this will help many to carve out = an existence as independant software creators. Which is something = developers really need right now, especially Perl programmers. I know I = do. My main use cases: 1. create a windows GUI client for a web service I created (in Perl) 2. the ability to create standalone, non-networked GUI to do things - = maybe database related - like old MS Access applications (not a GUI = builder, the actual local DB application GUI) Thoughts? Brett On Tue, Dec 17, 2024 at 4:10=E2=80=AFAM Darren Harwood = <[email protected] <mailto:[email protected]>> wrote: > hi all, >=20 > when i used to do this......i'm thinking 2018, my process was this: >=20 > 1. windows OS and installed citrusperl. why citrusperl? because i = could never get the wx widgets and alien bits to build on my dev box - = and yes, i wasted days trying. >=20 > 2. normal processes to develop the perl script, wxFormBuilder tool to = help create the gui xrc, coz that's how i liked to load the gui = components - but anything (glade, handcrafting, etc) will do. make sure = the script runs as expected. i had some fairly cool multi-threaded apps = running and they are (surprisingly) still in daily use at a big = customer! >=20 > 3. to build the EXE, you need to launch a citrus terminal as = administrator (important but afraid I don't recall why), like this: > C:\citrusPerl\perl\bin\citrusterm.bat >=20 > then, to build with an annoying popup command prompt, do this: > wxpar --gui -o Migration.exe Migration_tool.pl =20 >=20 > or, to build without an annoying popup command prompt, do this: > wxpar -o Migration.exe Migration_tool.pl =20 >=20 > hope that's useful - or at least a pointer to the things we need to = bring up to date - or a list of what not to do? :) >=20 > cheers, > Darren >=20 >=20 >=20 >=20 > On 16 Dec 2024, at 08:12, Brett Estrade <[email protected] = <mailto:[email protected]>> wrote: >=20 > Hi, sorry for the late reply. Thank you for the replies. >=20 > I guess what I am suggesting is that there is a real need for well = documented, end-to-end workflows that are platform specific. My need = happens to be for Windows. A Mac workflow would be great, too. >=20 > What does this look like to me? It'd cover: >=20 > 1. installation steps of a development environment on the OS (e.g., = Windows) > 2. some notes about dev workflow (e.g., I like to start with wxGlade = that dumps Perl, but there might be a better way; I can get this working = on Ubuntu and Windos under Mobaxterm's installed Perl packages - which = are cygwin based) > 3. finally, the actual steps of packaging this up for distribution - = be it .exe, .msi, etc (for Windows is my main interest) >=20 > My Problem is conceptually, I understand all the bits and pieces but = always fall flat when it's time to roll a distro. I want to generate a = Windows distribution that is just a .exe and that I can distribute as a = single file. A .msi or installation bundle that handles everything would = also be good, I just have no idea how to generate it. >=20 > I guess I just need some major hand holding initially; but once I = figure it out I am happy to document it and maybe even share any tools I = create to help myself with the local process. >=20 > Thanks! > Brett >=20 > On Sat, Nov 23, 2024 at 3:34=E2=80=AFPM Johan Vromans = <[email protected] <mailto:[email protected]>> wrote: >> On Fri, 22 Nov 2024 10:46:39 -0500, Don Peddicord wrote: >>=20 >> > The project I am >> > on created a wrapper for the Perl interpreter which limited its = execution >> > to only the code we provide as part of our application. >>=20 >> I have a similar approach for my ChordPro tool based on Oliver >> Betz' portable perl loader as used in the standalone exiftool = program. >>=20 >> Basically I let the PAR packager collect everything needed, then = unpack the >> package to create a file hierarchy, add special libraries and create = an >> installer (InnoSetup for Windows, DMG for macOS). >>=20 >> There are several tricks involved to patch/relocate dynamic libraries = to >> make sure the program will only use the packaged libraries. >>=20 >> =46rom the perspective of the end user it is a single thing that gets >> installed, and a single desktop icon to click to start the program. >>=20 >> https://www.chordpro.org <https://www.chordpro.org/> >> https://oliverbetz.de/pages/Artikel/ExifTool-for-Windows >=20 >=20 >=20 > -- > This email message is for the sole use of the intended recipient(s) = and may contain confidential and privileged information. Any = unauthorized use or disclosure is prohibited. If you are not the = intended recipient, please contact the sender by reply email and destroy = all copies of the original message. Thank you. >=20 -- This email message is for the sole use of the intended recipient(s) and = may contain confidential and privileged information. Any unauthorized = use or disclosure is prohibited. If you are not the intended recipient, = please contact the sender by reply email and destroy all copies of the = original message. Thank you. --Apple-Mail=_5B780ED3-7540-46D2-9A06-F11368D1B226 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 <html><head><meta http-equiv=3D"content-type" content=3D"text/html; = charset=3Dutf-8"></head><body style=3D"overflow-wrap: break-word; = -webkit-nbsp-mode: space; line-break: after-white-space;">probably = teaching you to suck eggs, but just in case.....<div>the process i = described using citrus perl and wxpar is equivalent to regular perl and = par packer (pp).</div><div><br></div><div>both create a self-contained, = no-dependencies executable containing the perl engine, required = libraries and your source code. with optional storage of things like = resources (images, config files, whatever).</div><div><br></div><div>the = end-user can receive that exe onto a windows machine that does not have = perl installed on it (or does and its perhaps a different version), and = the exe will run as a windows program.</div><div>it is not an = "installer" (your program will not end up in their program-files = structure) - that would be a different = process.</div><div><br></div><div>just wanna make sure we're all on the = same (starting) = page.</div><div><br></div><div>cheers,</div><div>Darren</div><div><br></di= v><div><br></div><div><br></div><div><br></div><div><br = id=3D"lineBreakAtBeginningOfMessage"><div><br><div>On 19 Dec 2024, at = 22:59, Brett Estrade <[email protected]> wrote:</div><br = class=3D"Apple-interchange-newline"><div><div dir=3D"ltr"><div>Thank you = Darren, I found Citris Perl in the archives and was really curious about = how it worked. I ran it, and was getting issues due to minimum Perl = version (I think last update was for 5.16 or 5.24 - which frankly is = fine with me! :-) ).</div><div><br></div><div>Would anyone be willing to = document the process for Windows? I can do the work of verifying it and = posting it somewhere it would be helpful to = many.</div><div><br></div><div>I think the number #1 thing we can have = for wxPerl and Perl programmers in general here is a well documented = process to get the .exe or an msi for Windows, and that is what I'd like = to be able to reproduce and document:</div><div><ol><li>development = environment set up (with or without wxGlade)</li><li>package things up = into a EXE, such that the user needs only a single file (and not have to = also install Perl or anything)<br></li><li>create an installer for = Windows<br></li></ol></div><div>See, I think we're long past the point = that end-users/clients care things are written in Perl. They want the = service or program to work, and it done at fair prices (Perl allows this = due to programmer efficiency that can be achieved). What matters now is = that Perl programmers have a well documented way to use their skills to = create Windows applications that are useful, this will help many to = carve out an existence as independant software creators. Which is = something developers really need right now, especially Perl programmers. = I know I do.</div><div><br></div><div>My main use = cases:</div><div><br></div><div>1. create a windows GUI client for a web = service I created (in Perl)<br></div><div>2. the ability to create = standalone, non-networked GUI to do things - maybe database related - = like old MS Access applications (not a GUI builder, the actual local DB = application = GUI)<br></div><div><br></div><div>Thoughts?<br><br></div><div>Brett<br></d= iv></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" = class=3D"gmail_attr">On Tue, Dec 17, 2024 at 4:10=E2=80=AFAM Darren = Harwood <<a href=3D"mailto:[email protected]" = target=3D"_blank">[email protected]</a>> = wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px = 0px 0px 0.8ex;border-left:1px solid = rgb(204,204,204);padding-left:1ex"><div>hi all,<div><br></div><div>when = i used to do this......i'm thinking 2018, my process was = this:</div><div><br></div><div>1. windows OS and installed citrusperl. = why citrusperl? because i could never get the wx widgets and alien bits = to build on my dev box - and yes, i wasted days = trying.</div><div><br></div><div>2. normal processes to develop the perl = script, wxFormBuilder tool to help create the gui xrc, coz that's how i = liked to load the gui components - but anything (glade, handcrafting, = etc) will do. make sure the script runs as expected. i had some fairly = cool multi-threaded apps running and they are (surprisingly) still in = daily use at a big customer!</div><div><br></div><div>3. to build the = EXE, you need to launch a citrus terminal as administrator (important = but afraid I don't recall why), like = this:</div><div>C:\citrusPerl\perl\bin\citrusterm.bat</div><div><br></div>= <div>then, to build with an annoying popup command prompt, do = this:</div><div>wxpar --gui -o Migration.exe Migration_tool.pl = </div><div><br></div><div>or, to build without an annoying = popup command prompt, do this:</div><div>wxpar -o Migration.exe = Migration_tool.pl </div><div><br></div><div>hope = that's useful - or at least a pointer to the things we need to bring up = to date - or a list of what not to do? = :)</div><div><br></div><div>cheers,</div><div>Darren</div><div><br></div><= div><br></div><div><br = id=3D"m_-965659227345313158m_6732046678355790240m_-2521457073775980387m_73= 31082552251876943m_2386413426464959860lineBreakAtBeginningOfMessage"><div>= <br><div>On 16 Dec 2024, at 08:12, Brett Estrade <<a = href=3D"mailto:[email protected]" = target=3D"_blank">[email protected]</a>> = wrote:</div><br><div><div dir=3D"ltr"><div>Hi, sorry for the late reply. = Thank you for the replies.</div><div><br></div><div>I guess what I am = suggesting is that there is a real need for well documented, end-to-end = workflows that are platform specific. My need happens to be for Windows. = A Mac workflow would be great, too.</div><div><br></div><div>What does = this look like to me? It'd cover:<br><br></div><div>1. installation = steps of a development environment on the OS (e.g., = Windows)<br></div><div>2. some notes about dev workflow (e.g., I like to = start with wxGlade that dumps Perl, but there might be a better way; I = can get this working on Ubuntu and Windos under Mobaxterm's installed = Perl packages - which are cygwin based)<br></div><div>3. finally, the = actual steps of packaging this up for distribution - be it .exe, .msi, = etc (for Windows is my main interest)</div><div><br></div><div>My = Problem is conceptually, I understand all the bits and pieces but always = fall flat when it's time to roll a distro. I want to generate a Windows = distribution that is just a .exe and that I can distribute as a single = file. A .msi or installation bundle that handles everything would also = be good, I just have no idea how to generate = it.</div><div><br></div><div>I guess I just need some major hand holding = initially; but once I figure it out I am happy to document it and maybe = even share any tools I create to help myself with the local = process.<br></div><div><br></div><div>Thanks!<br></div><div>Brett<br></div= ></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" = class=3D"gmail_attr">On Sat, Nov 23, 2024 at 3:34=E2=80=AFPM Johan = Vromans <<a href=3D"mailto:[email protected]" = target=3D"_blank">[email protected]</a>> = wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px = 0px 0px 0.8ex;border-left:1px solid = rgb(204,204,204);padding-left:1ex">On Fri, 22 Nov 2024 10:46:39 -0500, = Don Peddicord wrote:<br> <br> > The project I am<br> > on created a wrapper for the Perl interpreter which limited its = execution<br> > to only the code we provide as part of our application.<br> <br> I have a similar approach for my ChordPro tool based on Oliver<br> Betz' portable perl loader as used in the standalone exiftool = program.<br> <br> Basically I let the PAR packager collect everything needed, then unpack = the<br> package to create a file hierarchy, add special libraries and create = an<br> installer (InnoSetup for Windows, DMG for macOS).<br> <br> There are several tricks involved to patch/relocate dynamic libraries = to<br> make sure the program will only use the packaged libraries.<br> <br> =46rom the perspective of the end user it is a single thing that = gets<br> installed, and a single desktop icon to click to start the program.<br> <br> <a href=3D"https://www.chordpro.org/" rel=3D"noreferrer" = target=3D"_blank">https://www.chordpro.org</a><br> <a href=3D"https://oliverbetz.de/pages/Artikel/ExifTool-for-Windows" = rel=3D"noreferrer" = target=3D"_blank">https://oliverbetz.de/pages/Artikel/ExifTool-for-Windows= </a><br> </blockquote></div><div><br clear=3D"all"></div><br><span = class=3D"gmail_signature_prefix">-- </span><br><div dir=3D"ltr" = class=3D"gmail_signature"><div dir=3D"ltr">This email message is for the = sole use of the intended recipient(s) and may contain confidential and = privileged information. Any unauthorized use or disclosure is = prohibited. If you are not the intended recipient, please contact the = sender by reply email and destroy all copies of the original message. = Thank you.<br></div></div> </div></div><br></div></div></blockquote></div><div><br = clear=3D"all"></div><br><span class=3D"gmail_signature_prefix">-- = </span><br><div dir=3D"ltr" class=3D"gmail_signature"><div = dir=3D"ltr">This email message is for the sole use of the intended = recipient(s) and may contain confidential and privileged information. = Any unauthorized use or disclosure is prohibited. If you are not the = intended recipient, please contact the sender by reply email and destroy = all copies of the original message. Thank you.<br></div></div> </div></div><br></div></body></html>= --Apple-Mail=_5B780ED3-7540-46D2-9A06-F11368D1B226--