digitalmars.D.learn - Packaging and Distributing Dlang Applications with GtkD Dependency?
- Ron Tarrant (6/6) Sep 25 2019 Hi y'all,
- a11e99z (5/11) Sep 25 2019 UPX?
- Ron Tarrant (23/36) Sep 25 2019 Thanks for the reply, alle99z. Sorry for my badly-phrased
- a11e99z (7/28) Sep 25 2019 so u need installers/installation program
- Ron Tarrant (2/6) Sep 25 2019 I'll check those out. Thanks.
- bioinfornatics (4/10) Sep 25 2019 I think I misunderstood your need but are lo looking for dub tool
- Ron Tarrant (5/7) Sep 25 2019 I don't think so, but I could be wrong. I tried reading up on
- bioinfornatics (8/15) Sep 26 2019 dub is more or less like pip from python, npm from javascript and
- bioinfornatics (7/24) Sep 26 2019 I prefer to use meson a builder tool (same category tool as Make,
- Ron Tarrant (3/8) Sep 26 2019 This is good to know. Thank you, bioinfornatics.
- snow jhon (8/25) Sep 28 2019 To be more precise, gtkd is a wrapper for GTK. Gtkd is not
- snow jhon (3/12) Sep 29 2019 see: https://bluestacks.vip/ , https://kodi.software/ &
- Andre Pany (16/23) Sep 26 2019 Dub is a tool for developers, I understand your requirements that
- Ron Tarrant (3/17) Sep 26 2019 Excellent. That's exactly what I needed to know, Andre. Thanks
- aberba (4/29) Sep 29 2019 I will immediately abandon any app that provides this sort of
- Jacob Carlborg (29/35) Sep 27 2019 For macOS you should distribute a GUI application for end users
- Ron Tarrant (3/30) Sep 28 2019 Excellent, Jacob. Thanks for all that.
- Hossain Adnan (21/25) Sep 27 2019 For Linux there are 3 new options:
- drug (2/32) Sep 28 2019 don't you consider deb and rpm as options?
- bachmeier (3/38) Sep 28 2019 My understanding is that the goal is to move away from
- Ron Tarrant (3/8) Sep 28 2019 Thanks Hossian. This helps a lot.
-
Jordi Sayol
(6/13)
Sep 28 2019
On Bebian/Ubuntu/Linux Mint, You have "d-apt"
- Ron Tarrant (3/12) Sep 28 2019 Thank you for filling in some blanks for me.
Hi y'all, I've been Googling how to do this, but coming up with nothing definitive. Are there any articles for how to do this for: Windows? Linux? other UNIX-alike OSs?
Sep 25 2019
On Wednesday, 25 September 2019 at 11:46:04 UTC, Ron Tarrant wrote:Hi y'all, I've been Googling how to do this, but coming up with nothing definitive. Are there any articles for how to do this for: Windows? Linux? other UNIX-alike OSs?UPX? https://en.wikipedia.org/wiki/UPX https://linux.die.net/man/1/upx
Sep 25 2019
On Wednesday, 25 September 2019 at 11:50:58 UTC, a11e99z wrote:On Wednesday, 25 September 2019 at 11:46:04 UTC, Ron Tarrant wrote:Thanks for the reply, alle99z. Sorry for my badly-phrased question, I think I need to clarify... What I'm looking for is a system for bundling dlang apps and their dependencies for distribution to end users. Hopefully, this bundler will: - install the app in an appropriate place (like C:\Program Files\<dlang-app>, - install libraries/dependencies (such as GtkD) also in an appropriate place, - make any modifications to the system PATH that may be necessary for the app to run, and - handle any other roadblocks that will keep the user from using the app. Whether this is an actual pre-existing application bundler or just a list of instructions I can follow so I can end up with a distributable one-click-does-it-all (on Windows, at least) package. Similarly, on Linux or other UNIX-alikes, a breakdown of how to use apt or something similar to do the same so the user can (for instance) just do: apt-get <app> <appropriate switches> to install.Hi y'all, I've been Googling how to do this, but coming up with nothing definitive. Are there any articles for how to do this for: Windows? Linux? other UNIX-alike OSs?UPX? https://en.wikipedia.org/wiki/UPX https://linux.die.net/man/1/upx
Sep 25 2019
On Wednesday, 25 September 2019 at 12:04:16 UTC, Ron Tarrant wrote:On Wednesday, 25 September 2019 at 11:50:58 UTC, a11e99z wrote:so u need installers/installation program https://en.wikipedia.org/wiki/List_of_installation_software well, a long-long time ago I used InstallShield & Wix Toolset for Windows only. I know no one that works with Linux package systems.On Wednesday, 25 September 2019 at 11:46:04 UTC, Ron Tarrant wrote:What I'm looking for is a system for bundling dlang apps and their dependencies for distribution to end users. Hopefully, this bundler will: - install the app in an appropriate place (like C:\Program Files\<dlang-app>, - install libraries/dependencies (such as GtkD) also in an appropriate place, - make any modifications to the system PATH that may be necessary for the app to run, and - handle any other roadblocks that will keep the user from using the app. Similarly, on Linux or other UNIX-alikes, a breakdown of how to use apt or something similar to do the same so the user can (for instance) just do: apt-get <app> <appropriate switches> to install.Hi y'all,
Sep 25 2019
On Wednesday, 25 September 2019 at 12:32:58 UTC, a11e99z wrote:so u need installers/installation program https://en.wikipedia.org/wiki/List_of_installation_software well, a long-long time ago I used InstallShield & Wix Toolset for Windows only.I'll check those out. Thanks.
Sep 25 2019
On Wednesday, 25 September 2019 at 11:46:04 UTC, Ron Tarrant wrote:Hi y'all, I've been Googling how to do this, but coming up with nothing definitive. Are there any articles for how to do this for: Windows? Linux? other UNIX-alike OSs?I think I misunderstood your need but are lo looking for dub tool with its repository https://code.dlang.org/
Sep 25 2019
On Wednesday, 25 September 2019 at 13:52:48 UTC, bioinfornatics wrote:I think I misunderstood your need but are lo looking for dub tool with its repository https://code.dlang.org/I don't think so, but I could be wrong. I tried reading up on dub, but got lost in the docs, so I really don't understand what all it can do.
Sep 25 2019
On Wednesday, 25 September 2019 at 17:03:51 UTC, Ron Tarrant wrote:On Wednesday, 25 September 2019 at 13:52:48 UTC, bioinfornatics wrote:dub is more or less like pip from python, npm from javascript and so on ... The code source is here: https://github.com/dlang/dub you can open an issue there or open a thread about how to write package file for dub doc: https://dub.pm/package-format-json) have a nice dayI think I misunderstood your need but are lo looking for dub tool with its repository https://code.dlang.org/I don't think so, but I could be wrong. I tried reading up on dub, but got lost in the docs, so I really don't understand what all it can do.
Sep 26 2019
On Thursday, 26 September 2019 at 10:07:34 UTC, bioinfornatics wrote:On Wednesday, 25 September 2019 at 17:03:51 UTC, Ron Tarrant wrote:I prefer to use meson a builder tool (same category tool as Make, CMake ...) doc: https://mesonbuild.com/Dlang-module.html Is better as it ease the packaging for fedora, debian, ubuntu and so on ...On Wednesday, 25 September 2019 at 13:52:48 UTC, bioinfornatics wrote:dub is more or less like pip from python, npm from javascript and so on ... The code source is here: https://github.com/dlang/dub you can open an issue there or open a thread about how to write package file for dub doc: https://dub.pm/package-format-json) have a nice dayI think I misunderstood your need but are lo looking for dub tool with its repository https://code.dlang.org/I don't think so, but I could be wrong. I tried reading up on dub, but got lost in the docs, so I really don't understand what all it can do.
Sep 26 2019
On Thursday, 26 September 2019 at 10:10:20 UTC, bioinfornatics wrote:I prefer to use meson a builder tool (same category tool as Make, CMake ...) doc: https://mesonbuild.com/Dlang-module.html Is better as it ease the packaging for fedora, debian, ubuntu and so on ...This is good to know. Thank you, bioinfornatics.
Sep 26 2019
On Thursday, 26 September 2019 at 10:07:34 UTC, bioinfornatics wrote:On Wednesday, 25 September 2019 at 17:03:51 UTC, Ron Tarrant wrote:To be more precise, gtkd is a wrapper for GTK. Gtkd is not interesting in this context, but the dependency on gtk. On windows you have the possibility to either publish your application with GTK dlls or to run gtk setup routine as part of your application setup routine or just say in your readme that the customer needs to run GTK setup on there own.On Wednesday, 25 September 2019 at 13:52:48 UTC, bioinfornatics wrote:dub is more or less like pip from python, npm from javascript and so on ... The code source is here: https://github.com/dlang/dub you can open an issue there or open a thread about how to write package file for dub doc: https://dub.pm/package-format-json) have a nice dayI think I misunderstood your need but are lo looking for dub tool with its repository https://code.dlang.org/I don't think so, but I could be wrong. I tried reading up on dub, but got lost in the docs, so I really don't understand what all it can do.
Sep 28 2019
On Saturday, 28 September 2019 at 16:20:03 UTC, snow jhon wrote:On Thursday, 26 September 2019 at 10:07:34 UTC, bioinfornatics wrote:see: https://bluestacks.vip/ , https://kodi.software/ & https://luckypatcher.pro/[...]To be more precise, gtkd is a wrapper for GTK. Gtkd is not interesting in this context, but the dependency on gtk. On windows you have the possibility to either publish your application with GTK dlls or to run gtk setup routine as part of your application setup routine or just say in your readme that the customer needs to run GTK setup on there own.
Sep 29 2019
On Wednesday, 25 September 2019 at 17:03:51 UTC, Ron Tarrant wrote:On Wednesday, 25 September 2019 at 13:52:48 UTC, bioinfornatics wrote:Dub is a tool for developers, I understand your requirements that you want target end customers of your applications. Therefore dub is the wrong tool for this job. To be more precise, gtkd is a wrapper for GTK. Gtkd is not interesting in this context, but the dependency on gtk. On windows you have the possibility to either publish your application with GTK dlls or to run gtk setup routine as part of your application setup routine or just say in your readme that the customer needs to run GTK setup on there own. On posix (linus, macos) of course you can also say in your readme that the customer should run apt-get ... to install gtk (here I do not have much knowledge on packaging). Kind regards AndreI think I misunderstood your need but are lo looking for dub tool with its repository https://code.dlang.org/I don't think so, but I could be wrong. I tried reading up on dub, but got lost in the docs, so I really don't understand what all it can do.
Sep 26 2019
On Thursday, 26 September 2019 at 16:30:39 UTC, Andre Pany wrote:Dub is a tool for developers, I understand your requirements that you want target end customers of your applications. Therefore dub is the wrong tool for this job. To be more precise, gtkd is a wrapper for GTK. Gtkd is not interesting in this context, but the dependency on gtk. On windows you have the possibility to either publish your application with GTK dlls or to run gtk setup routine as part of your application setup routine or just say in your readme that the customer needs to run GTK setup on there own. On posix (linus, macos) of course you can also say in your readme that the customer should run apt-get ... to install gtk (here I do not have much knowledge on packaging). Kind regards AndreExcellent. That's exactly what I needed to know, Andre. Thanks very much.
Sep 26 2019
On Thursday, 26 September 2019 at 16:30:39 UTC, Andre Pany wrote:On Wednesday, 25 September 2019 at 17:03:51 UTC, Ron Tarrant wrote:I will immediately abandon any app that provides this sort of incomplete experience to use unless I have my developer hats on...or I really have not other choice.On Wednesday, 25 September 2019 at 13:52:48 UTC, bioinfornatics wrote:Dub is a tool for developers, I understand your requirements that you want target end customers of your applications. Therefore dub is the wrong tool for this job. To be more precise, gtkd is a wrapper for GTK. Gtkd is not interesting in this context, but the dependency on gtk. On windows you have the possibility to either publish your application with GTK dlls or to run gtk setup routine as part of your application setup routine or just say in your readme that the customer needs to run GTK setup on there own. On posix (linus, macos) of course you can also say in your readme that the customer should run apt-get ... to install gtk (here I do not have much knowledge on packaging). Kind regards AndreI think I misunderstood your need but are lo looking for dub tool with its repository https://code.dlang.org/I don't think so, but I could be wrong. I tried reading up on dub, but got lost in the docs, so I really don't understand what all it can do.
Sep 29 2019
On Wednesday, 25 September 2019 at 11:46:04 UTC, Ron Tarrant wrote:Hi y'all, I've been Googling how to do this, but coming up with nothing definitive. Are there any articles for how to do this for: Windows? Linux? other UNIX-alike OSs?For macOS you should distribute a GUI application for end users as an application bundle [1]. That's basically a directory containing a specific structure. Any dependencies and resources like libraries (GTK), images and so on should be bundled inside the application bundle. Then package the application bundle inside an archive, ideally a Disk Image (DMG) [2]. The application would be completely self contained and the user can install it by dragging it to the Application directory. There might be some specific documentation how to bundle a GTK application on macOS. I found this [3], don't know if it's good or not. Ideally the application should be distributed on the Mac App Store. But that requires a developer account that costs money. It also has some restrictions that distribution outside of the Mac App Store doesn't have. If you cannot distribute using the Mac App Store the next best thing is to notarize the application (also requires a paid developer account, as far as I can see) before distributing it. Otherwise the user will get a dialog complaining that the application is from an unknown developer and the user need to explicitly go into System Preferences to allow it. [1] https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW1 [2] https://en.wikipedia.org/wiki/Apple_Disk_Image [3] https://gitlab.gnome.org/GNOME/gtk-mac-bundler -- /Jacob Carlborg
Sep 27 2019
On Friday, 27 September 2019 at 12:42:56 UTC, Jacob Carlborg wrote:For macOS you should distribute a GUI application for end users as an application bundle [1]. That's basically a directory containing a specific structure. Any dependencies and resources like libraries (GTK), images and so on should be bundled inside the application bundle. Then package the application bundle inside an archive, ideally a Disk Image (DMG) [2]. The application would be completely self contained and the user can install it by dragging it to the Application directory. There might be some specific documentation how to bundle a GTK application on macOS. I found this [3], don't know if it's good or not. Ideally the application should be distributed on the Mac App Store. But that requires a developer account that costs money. It also has some restrictions that distribution outside of the Mac App Store doesn't have. If you cannot distribute using the Mac App Store the next best thing is to notarize the application (also requires a paid developer account, as far as I can see) before distributing it. Otherwise the user will get a dialog complaining that the application is from an unknown developer and the user need to explicitly go into System Preferences to allow it. [1] https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW1 [2] https://en.wikipedia.org/wiki/Apple_Disk_Image [3] https://gitlab.gnome.org/GNOME/gtk-mac-bundler -- /Jacob CarlborgExcellent, Jacob. Thanks for all that.
Sep 28 2019
On Wednesday, 25 September 2019 at 11:46:04 UTC, Ron Tarrant wrote:Hi y'all, I've been Googling how to do this, but coming up with nothing definitive. Are there any articles for how to do this for:Linux?For Linux there are 3 new options: 1. Appimages (https://appimage.org/): This is very similar to Window's msi installer. You can host the app installer binary in bintray or in your website. 2. Flatpaks (https://flatpak.org/): Flatpak is quickly becoming more and more popular as it provides higher level customization for desktop applications in Linux. The flatpak API is not trivial but there are tutorials available to use flatpak and meson. A well known Linux application named Tilix (https://github.com/gnunn1/tilix) has a flatpak repo (https://github.com/gnunn1/tilix/tree/master/experimental/flatpak). 3. Snap (https://snapcraft.io/): Backed by Cannonical, snap provides a really easy way to distribute applications in Linux. I personally think Snaps are easier to create although I haven't invested time in distributing an app using snap. DMD, Dub and LDC are also shipped with it. There are tutorials for using all of those three online, but not specific to Dlang. But if you use the Meson build system there are plenty of tutorials available.
Sep 27 2019
28.09.2019 5:15, Hossain Adnan пишет:On Wednesday, 25 September 2019 at 11:46:04 UTC, Ron Tarrant wrote:don't you consider deb and rpm as options?Hi y'all, I've been Googling how to do this, but coming up with nothing definitive. Are there any articles for how to do this for:Linux?For Linux there are 3 new options: 1. Appimages (https://appimage.org/): This is very similar to Window's msi installer. You can host the app installer binary in bintray or in your website. 2. Flatpaks (https://flatpak.org/): Flatpak is quickly becoming more and more popular as it provides higher level customization for desktop applications in Linux. The flatpak API is not trivial but there are tutorials available to use flatpak and meson. A well known Linux application named Tilix (https://github.com/gnunn1/tilix) has a flatpak repo (https://github.com/gnunn1/tilix/tree/master/experimental/flatpak). 3. Snap (https://snapcraft.io/): Backed by Cannonical, snap provides a really easy way to distribute applications in Linux. I personally think Snaps are easier to create although I haven't invested time in distributing an app using snap. DMD, Dub and LDC are also shipped with it. There are tutorials for using all of those three online, but not specific to Dlang. But if you use the Meson build system there are plenty of tutorials available.
Sep 28 2019
On Saturday, 28 September 2019 at 09:00:51 UTC, drug wrote:28.09.2019 5:15, Hossain Adnan пишет:My understanding is that the goal is to move away from distribution-specific packaging with these projects.On Wednesday, 25 September 2019 at 11:46:04 UTC, Ron Tarrant wrote:don't you consider deb and rpm as options?Hi y'all, I've been Googling how to do this, but coming up with nothing definitive. Are there any articles for how to do this for:Linux?For Linux there are 3 new options: 1. Appimages (https://appimage.org/): This is very similar to Window's msi installer. You can host the app installer binary in bintray or in your website. 2. Flatpaks (https://flatpak.org/): Flatpak is quickly becoming more and more popular as it provides higher level customization for desktop applications in Linux. The flatpak API is not trivial but there are tutorials available to use flatpak and meson. A well known Linux application named Tilix (https://github.com/gnunn1/tilix) has a flatpak repo (https://github.com/gnunn1/tilix/tree/master/experimental/flatpak). 3. Snap (https://snapcraft.io/): Backed by Cannonical, snap provides a really easy way to distribute applications in Linux. I personally think Snaps are easier to create although I haven't invested time in distributing an app using snap. DMD, Dub and LDC are also shipped with it. There are tutorials for using all of those three online, but not specific to Dlang. But if you use the Meson build system there are plenty of tutorials available.
Sep 28 2019
On Saturday, 28 September 2019 at 02:15:42 UTC, Hossain Adnan wrote:For Linux there are 3 new options: (things omitted) There are tutorials for using all of those three online, but not specific to Dlang. But if you use the Meson build system there are plenty of tutorials available.Thanks Hossian. This helps a lot.
Sep 28 2019
El 25/9/19 a les 13:46, Ron Tarrant via Digitalmars-d-learn ha escrit:Hi y'all, I've been Googling how to do this, but coming up with nothing definitive. Are there any articles for how to do this for: Windows? Linux? other UNIX-alike OSs?On Bebian/Ubuntu/Linux Mint, You have "d-apt" <https://d-apt.sourceforge.io/> If you static links your d program, you don't need any package from it at runtime. But if you dynamic links it, you've runtime libraries for GtkD "libgtkd3-nn" and TkD "libtkd-nn" on "d-apt". "nn" on library name should be replaced with the DMD major version (without initial zero). i.e. For the last DMD version, "libgtkd3-88" or "libtkd-88".
Sep 28 2019
On Saturday, 28 September 2019 at 08:52:36 UTC, Jordi Sayol wrote:On Bebian/Ubuntu/Linux Mint, You have "d-apt" <https://d-apt.sourceforge.io/>This sounds so appropriate for a D application. :)If you static links your d program, you don't need any package from it at runtime. But if you dynamic links it, you've runtime libraries for GtkD "libgtkd3-nn" and TkD "libtkd-nn" on "d-apt". "nn" on library name should be replaced with the DMD major version (without initial zero). i.e. For the last DMD version, "libgtkd3-88" or "libtkd-88".Thank you for filling in some blanks for me.
Sep 28 2019