Re: discussion: GNUstep developer tools as AppImage?

[email protected] Tue, 26 May 2026 17:24:15 +0100
Newsgroups gmane.comp.lib.gnustep.general
Message-ID <[email protected]>
--Apple-Mail=_6A1DA1DA-728A-46CD-BD2E-7CB6E1C40344
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Yes that=E2=80=99s an option, but a lot of the requirements are the same =
(objc runtime, base, gui, back, the helper tools, the config file etc) =
so there=E2=80=99s also value in having a shared process that all apps =
can opt into. I don=E2=80=99t know that gnustep-make is the right place =
for this, but it has some useful attributes. Another option is to use =
one of the other =E2=80=9Cpackaging=E2=80=9D outputs like deb and then a =
package converter to build the AppImage.

Cheers,
Graham.

> On 26 May 2026, at 17:18, Joseph Maloney <[email protected]> wrote:
>=20
> That's really cool.  I wonder if it would make more sense to make a =
reusable workflow that could apply to specific repos like apps-easydiff, =
apps-projectcenter, apps-gorm instead of tools-make though?  That way =
you just go to those repos, get the appimages, etc.
>=20
> Joseph Maloney
>=20
> Sent with Proton Mail <https://proton.me/mail/home> secure email.
>=20
> On Tuesday, May 26th, 2026 at 11:12 AM, [email protected] =
<[email protected]> wrote:
>> HI all,
>>=20
>> I used some time today to prototype this in GNUstep make, and =
successfully built a portable image of EasyDiff:
>>=20
>> https://github.com/gnustep/tools-make/pull/70
>>=20
>> I think lots of caveats (documented in the PR description), but it =
basically works. It would be nice to have CI that builds non-flattened =
AppImages that work on multiple architectures, for example.
>>=20
>> Best wishes,
>>=20
>> Graham.
>>=20
>>> On 25 May 2026, at 12:37, [email protected] =
<mailto:[email protected]> via Discussion list for the =
GNUstep programming environment <[email protected] =
<mailto:[email protected]>> wrote:
>>>=20
>>> Hi,
>>>=20
>>>> Am 25.05.2026 um 10:41 schrieb Riccardo Mottola =
<[email protected] <mailto:[email protected]>>:
>>>>=20
>>>> Hi,
>>>>=20
>>>> [email protected] =
<mailto:[email protected]> via Discussion list for the =
GNUstep programming environment wrote:
>>>>> I think, GNUstep needs lower hurdles for entering our ecosystem =
and so I had the thought =E2=80=9EWhat if we distribute the GNUstep dev =
tools as AppImage?=E2=80=9C, e.g. bundling everything needed (basic =
GNUstep installation; compiler, linker, make; Gorm.app and =
ProjectCenter.app; some example code) into an AppImage like PikoPixel =
did, so that our App can be run everywhere AppImages are supported.
>>>>>=20
>>>>> What do you think about the idea, would it help our cause?
>>>>>=20
>>>>> What would be the prerequisites for such an attempt?
>>>>>=20
>>>>> How much work would it be?
>>>>>=20
>>>>=20
>>>> I don't know about AppImages but GNUstep supports packing =
everything into a single directory containing Application, frameworks, =
themes, preferences into a single folder.
>>>>=20
>>>> It is useful to ship a single application with its environment, I =
use it with success on windows and have scripts for that. Very =
convenient.
>>>> Theoretically it can also contain more than one app.
>>>>=20
>>>> It is instead not very smart having several directories for each =
app, since that way you have multiple runtime installations and running =
them in concurrency may cause issues (beyond space waste). I don't know =
how AppImages would handle this.
>>>=20
>>> I mentioned AppImages because those are a recognized way to =
distribute apps f=C3=BCr Linux (and BSD? I don=E2=80=99t know). Yeah, =
they somewhat reinvented the wheel after OpenSteps app bundle, but they =
still seem to be the way commonly used. Please correct me if I am wrong.=20=

>>>=20
>>> Despite all this I am off course open to other but similar easy ways =
to distribute (binary) apps to users.
>>>=20
>>>>=20
>>>> -R
>>>=20
>>> kind regards,
>>>=20
>>> 	Lars
>>=20
>=20


--Apple-Mail=_6A1DA1DA-728A-46CD-BD2E-7CB6E1C40344
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html aria-label=3D"message body"><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;">Yes that=E2=80=99s an option, but a lot =
of the requirements are the same (objc runtime, base, gui, back, the =
helper tools, the config file etc) so there=E2=80=99s also value in =
having a shared process that all apps can opt into. I don=E2=80=99t know =
that gnustep-make is the right place for this, but it has some useful =
attributes. Another option is to use one of the other =E2=80=9Cpackaging=E2=
=80=9D outputs like deb and then a package converter to build the =
AppImage.<div><br></div><div>Cheers,</div><div>Graham.<br =
id=3D"lineBreakAtBeginningOfMessage"><div><br><blockquote =
type=3D"cite"><div>On 26 May 2026, at 17:18, Joseph Maloney =
&lt;[email protected]&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div><div style=3D"font-family: =
Arial, sans-serif; font-size: 14px;">That's really cool. &nbsp;I wonder =
if it would make more sense to make a reusable workflow that could apply =
to specific repos like apps-easydiff, apps-projectcenter, apps-gorm =
instead of tools-make though? &nbsp;That way you just go to those repos, =
get the appimages, etc.</div><div style=3D"font-family: Arial, =
sans-serif; font-size: 14px;"><br></div><div style=3D"font-family: =
Arial, sans-serif; font-size: 14px;">Joseph Maloney</div><div =
style=3D"font-family: Arial, sans-serif; font-size: 14px;"><br></div>
<div style=3D"font-family: Arial, sans-serif; font-size: 14px;" =
class=3D"protonmail_signature_block">
    <div class=3D"protonmail_signature_block-user =
protonmail_signature_block-empty">
       =20
            </div>
   =20
            <div class=3D"protonmail_signature_block-proton">
        Sent with <a href=3D"https://proton.me/mail/home" =
target=3D"_blank">Proton Mail</a> secure email.
    </div>
</div>
<div style=3D"font-family: Arial, sans-serif; font-size: =
14px;"><br></div><div class=3D"protonmail_quote">
        On Tuesday, May 26th, 2026 at 11:12 AM, [email protected] =
&lt;[email protected]&gt; wrote:<br>
        <blockquote class=3D"protonmail_quote" type=3D"cite">
            HI all,<div><br></div><div>I used some time today to =
prototype this in GNUstep make, and successfully built a portable image =
of EasyDiff:</div><div><br></div><div><a =
href=3D"https://github.com/gnustep/tools-make/pull/70" =
style=3D"word-break: break-word;" target=3D"_blank" rel=3D"noreferrer =
nofollow =
noopener">https://github.com/gnustep/tools-make/pull/70</a></div><div><br>=
</div><div>I think lots of caveats (documented in the PR description), =
but it basically works. It would be nice to have CI that builds =
non-flattened AppImages that work on multiple architectures, for =
example.</div><div><br></div><div>Best =
wishes,</div><div><br></div><div>Graham.<br =
id=3D"lineBreakAtBeginningOfMessage"><div><br><blockquote =
type=3D"cite"><div>On 25 May 2026, at 12:37, <a =
href=3D"mailto:[email protected]" style=3D"word-break: =
break-word;" rel=3D"noreferrer nofollow =
noopener">[email protected]</a> via Discussion list for =
the GNUstep programming environment &lt;<a =
href=3D"mailto:[email protected]" rel=3D"noreferrer nofollow =
noopener">[email protected]</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div><span style=3D"caret-color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
normal; font-variant-caps: normal; font-weight: 400; letter-spacing: =
normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;">Hi,</span><br style=3D"caret-color: rgb(0, =
0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
orphans: 2; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: solid;"><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: =
solid;"><blockquote type=3D"cite" style=3D"font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; widows: 2; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-line: =
none; text-decoration-thickness: auto; text-decoration-style: solid;">Am =
25.05.2026 um 10:41 schrieb Riccardo Mottola &lt;<a =
href=3D"mailto:[email protected]" rel=3D"noreferrer nofollow =
noopener">[email protected]</a>&gt;:<br><br>Hi,<br><br><a =
href=3D"mailto:[email protected]" style=3D"word-break: =
break-word;" rel=3D"noreferrer nofollow =
noopener">[email protected]</a> via Discussion list for =
the GNUstep programming environment wrote:<br><blockquote type=3D"cite">I =
think, GNUstep needs lower hurdles for entering our ecosystem and so I =
had the thought =E2=80=9EWhat if we distribute the GNUstep dev tools as =
AppImage?=E2=80=9C, e.g. bundling everything needed (basic GNUstep =
installation; compiler, linker, make; Gorm.app and ProjectCenter.app; =
some example code) into an AppImage like PikoPixel did, so that our App =
can be run everywhere AppImages are supported.<br><br>What do you think =
about the idea, would it help our cause?<br><br>What would be the =
prerequisites for such an attempt?<br><br>How much work would it =
be?<br><br></blockquote><br>I don't know about AppImages but GNUstep =
supports packing everything into a single directory containing =
Application, frameworks, themes, preferences into a single =
folder.<br><br>It is useful to ship a single application with its =
environment, I use it with success on windows and have scripts for that. =
Very convenient.<br>Theoretically it can also contain more than one =
app.<br><br>It is instead not very smart having several directories for =
each app, since that way you have multiple runtime installations and =
running them in concurrency may cause issues (beyond space waste). I =
don't know how AppImages would handle this.<br></blockquote><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: solid;"><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;">I mentioned AppImages because those are a =
recognized way to distribute apps f=C3=BCr Linux (and BSD? I don=E2=80=99t=
 know). Yeah, they somewhat reinvented the wheel after OpenSteps app =
bundle, but they still seem to be the way commonly used. Please correct =
me if I am wrong.<span =
class=3D"Apple-converted-space">&nbsp;</span></span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: solid;"><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: solid;"><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;">Despite all this I am off course open to =
other but similar easy ways to distribute (binary) apps to =
users.</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; orphans: 2; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration-line: none; text-decoration-thickness: auto; =
text-decoration-style: solid;"><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
orphans: 2; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: =
solid;"><blockquote type=3D"cite" style=3D"font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; widows: 2; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-line: =
none; text-decoration-thickness: auto; text-decoration-style: =
solid;"><br>-R<br></blockquote><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
orphans: 2; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: solid;"><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;">kind regards,</span><br style=3D"caret-color:=
 rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
normal; font-variant-caps: normal; font-weight: 400; letter-spacing: =
normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: solid;"><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: solid;"><span =
class=3D"Apple-tab-span" style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
orphans: 2; text-align: start; text-indent: 0px; text-transform: none; =
white-space: pre-wrap; widows: 2; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: solid;">	=
</span><span style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; widows: 2; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline =
!important;">Lars</span></div></blockquote></div><br></div>
        </blockquote><br>
    </div></div></blockquote></div><br></div></body></html>=

--Apple-Mail=_6A1DA1DA-728A-46CD-BD2E-7CB6E1C40344--