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] <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 <[email protected]> wrote:</div><br = class=3D"Apple-interchange-newline"><div><div>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.<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 <<a = href=3D"mailto:[email protected]" dir=3D"ltr" = rel=3D"noreferrer">[email protected]</a>> wrote:</div><br = class=3D"Apple-interchange-newline"><div><div style=3D"font-family: = Arial, sans-serif; font-size: 14px">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.</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> <<a = href=3D"mailto:[email protected]" dir=3D"ltr" = rel=3D"noreferrer">[email protected]</a>> 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 <<a = href=3D"mailto:[email protected]" = rel=3D"noreferrer">[email protected]</a>> 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 <<a = href=3D"mailto:[email protected]" = rel=3D"noreferrer">[email protected]</a>>:<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"> </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--