Re: discussion: GNUstep developer tools as AppImage?

[email protected] Wed, 27 May 2026 11:27:49 +0100
Newsgroups gmane.comp.lib.gnustep.general
Message-ID <[email protected]>
--Apple-Mail=_109EDF35-ECFB-4037-B03A-83D5632C3D73
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Riffing on the idea a little, I thought that apps distributed as =
AppImages would work well with a Sparkle[0]-style update mechanism. The =
developer hosts an RSS feed that lists releases with links to the =
AppImage files, and the app periodically pulls it and offers to fetch =
the newer AppImage. =46rom there, Grr could form the basis of an =E2=80=9C=
app catalog=E2=80=9D that shows known feeds and the latest app versions.

Cheers,
Graham.

[0] https://sparkle-project.org/

> On 26 May 2026, at 17:27, Joseph Maloney <[email protected]> wrote:
>=20
> Some of the other repos like libs-gui have GitHub workflows that use a =
script to pull libobcj2, tools-make and all the needed things.  I was =
thinking you could do the same for the individual app repos.
>=20
> Joseph Maloney
>=20
> Sent from Proton Mail <https://proton.me/mail/home> for iOS.
>=20
>=20
> -------- Original Message --------
> On Tuesday, 05/26/26 at 11:24 [email protected] =
<mailto:[email protected]> wrote:
> 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.
>=20
> Cheers,
> Graham.
>=20
>> On 26 May 2026, at 17:18, Joseph Maloney <[email protected] =
<mailto:[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] =
<mailto:[email protected]> <[email protected] =
<mailto:[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
>=20


--Apple-Mail=_109EDF35-ECFB-4037-B03A-83D5632C3D73
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;"><div style=3D"overflow-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;">Riffing on the =
idea a little, I thought that apps distributed as AppImages would work =
well with a Sparkle[0]-style update mechanism. The developer hosts an =
RSS feed that lists releases with links to the AppImage files, and the =
app periodically pulls it and offers to fetch the newer AppImage. =46rom =
there, Grr could form the basis of an =E2=80=9Capp catalog=E2=80=9D that =
shows known feeds and the latest app =
versions.<div><br></div><div>Cheers,</div><div>Graham.</div><div><br></div=
><div>[0]&nbsp;<a =
href=3D"https://sparkle-project.org/">https://sparkle-project.org/</a></di=
v><div><div><br><blockquote type=3D"cite"><div>On 26 May 2026, at 17:27, =
Joseph Maloney &lt;[email protected]&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div><div>Some of the other repos =
like libs-gui have GitHub&nbsp;workflows that use a script to&nbsp;pull =
libobcj2, tools-make and all the needed things. &nbsp;I was thinking you =
could do the same for the individual app =
repos.<div><br></div><div>Joseph Maloney<br><br>Sent from <a =
target=3D"_blank" href=3D"https://proton.me/mail/home" =
rel=3D"noreferrer">Proton Mail</a> for iOS.<div =
class=3D"protonmail_quote"><br><br>-------- Original Message =
--------<br>On Tuesday, 05/26/26 at 11:24 <a =
href=3D"mailto:[email protected]" dir=3D"ltr" =
rel=3D"noreferrer">[email protected]</a> wrote:<br><blockquote =
class=3D"protonmail_quote">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;<a =
href=3D"mailto:[email protected]" dir=3D"ltr" =
rel=3D"noreferrer">[email protected]</a>&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">

            </div>

            <div class=3D"protonmail_signature_block-proton">
        Sent with <a href=3D"https://proton.me/mail/home" =
target=3D"_blank" rel=3D"noreferrer">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, <a =
href=3D"mailto:[email protected]" dir=3D"ltr" =
rel=3D"noreferrer">[email protected]</a> &lt;<a =
href=3D"mailto:[email protected]" dir=3D"ltr" =
rel=3D"noreferrer">[email protected]</a>&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">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">[email protected]</a> =
via Discussion list for the GNUstep programming environment &lt;<a =
href=3D"mailto:[email protected]" =
rel=3D"noreferrer">[email protected]</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div><span style=3D"caret-color: =
#000; 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: 0; text-transform: none; =
white-space: normal; widows: 2; word-spacing: 0; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important">Hi,</span><br style=3D"caret-color: #000; =
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: 0; text-transform: none; =
white-space: normal; widows: 2; word-spacing: 0; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: solid"><br =
style=3D"caret-color: #000; 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: 0; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0; =
-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: 0; text-transform: none; white-space: normal; widows: 2; =
word-spacing: 0; -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">[email protected]</a>&gt;:<br><br>Hi,<br><br><=
a href=3D"mailto:[email protected]" style=3D"word-break: =
break-word" rel=3D"noreferrer">[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: #000; 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: 0; text-transform: none; white-space: =
normal; widows: 2; word-spacing: 0; -webkit-text-stroke-width: 0px; =
text-decoration-line: none; text-decoration-thickness: auto; =
text-decoration-style: solid"><span style=3D"caret-color: #000; =
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: 0; text-transform: none; =
white-space: normal; widows: 2; word-spacing: 0; =
-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: #000; 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: 0; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: solid"><br =
style=3D"caret-color: #000; 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: 0; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: solid"><span =
style=3D"caret-color: #000; 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: 0; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0; =
-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: #000; 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: 0; text-transform: none; white-space: normal; widows: 2; =
word-spacing: 0; -webkit-text-stroke-width: 0px; text-decoration-line: =
none; text-decoration-thickness: auto; text-decoration-style: solid"><br =
style=3D"caret-color: #000; 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: 0; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0; =
-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: 0; text-transform: none; white-space: normal; widows: 2; =
word-spacing: 0; -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: #000; =
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: 0; text-transform: none; =
white-space: normal; widows: 2; word-spacing: 0; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: solid"><span =
style=3D"caret-color: #000; 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: 0; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important">kind regards,</span><br style=3D"caret-color: =
#000; 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: 0; text-transform: none; =
white-space: normal; widows: 2; word-spacing: 0; =
-webkit-text-stroke-width: 0px; text-decoration-line: none; =
text-decoration-thickness: auto; text-decoration-style: solid"><br =
style=3D"caret-color: #000; 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: 0; =
text-transform: none; white-space: normal; widows: 2; word-spacing: 0; =
-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: #000; 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: 0; text-transform: none; white-space: =
pre-wrap; widows: 2; word-spacing: 0; -webkit-text-stroke-width: 0px; =
text-decoration-line: none; text-decoration-thickness: auto; =
text-decoration-style: solid">	</span><span style=3D"caret-color: #000; =
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: 0; text-transform: none; =
white-space: normal; widows: 2; word-spacing: 0; =
-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></blockquote></div>
        =
</div></div></div></blockquote></div><br></div></div></body></html>=

--Apple-Mail=_109EDF35-ECFB-4037-B03A-83D5632C3D73--