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 &lt;[email protected]&gt; 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 &lt;<a href=3D"mailto:[email protected]" =
target=3D"_blank">[email protected]</a>&gt; =
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 =
&nbsp;&nbsp;</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 &nbsp; &nbsp; &nbsp;</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 &lt;<a =
href=3D"mailto:[email protected]" =
target=3D"_blank">[email protected]</a>&gt; =
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 &lt;<a href=3D"mailto:[email protected]" =
target=3D"_blank">[email protected]</a>&gt; =
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>
&gt; The project I am<br>
&gt; on created a wrapper for the Perl interpreter which limited its =
execution<br>
&gt; 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--