Git Product home page Git Product logo

Comments (5)

ids1024 avatar ids1024 commented on July 30, 2024 2

I quite like the idea of Windows support, and have thought of trying to add it. (If only so we can document Popsicle as the canonical way to create a Pop!_OS USB drive on Windows as well.)

I have a couple concerns though.

  • Packaging GTK software for Windows is generally a bit of a pain, though doable.
  • Even if it's easy now, it may be harder to have parity on Windows for future features like support for Windows ISOs (#67)
    • That requires a way to read the contents of an iso image, partition and format a USB drive, and copy files into the new partitions. All of which may need to be done differently on Windows.
    • We wouldn't want Windows support to hold back development of features like this.

from popsicle.

mmstick avatar mmstick commented on July 30, 2024 1

Nothing necessarily has to be reverse-engineered. Just adding code to flash devices on Windows with Windows APIs.

from popsicle.

A9G-Data-Droid avatar A9G-Data-Droid commented on July 30, 2024

While developing the code to write Windows 10 ISOs there should be some consideration given to cross platform methods. It could be developed using preexisting cross platform tools, like 7-zip for ISO decompression. It could be decompressed directly on to target combining your "read\mount" and "copy" steps in to one step. Maybe there is a rust native way of decompressing ISOs to avoid the reliance on 7zip libraries.

I would think there must be a rust tool for cross platform disk formatting. If not, that's a useful crate to exist in it's own right. Maybe that's the next step.

from popsicle.

ids1024 avatar ids1024 commented on July 30, 2024

Maybe there is a rust native way of decompressing ISOs to avoid the reliance on 7zip libraries.

I think that library is for a different format, it just happens to be sometimes given the .iso extension since that's common for disk images. Actually, I've written a partial isofs implementation in Rust, but even if that's robust enough, if I recall correctly the Windows 10/11 ISOs actually use the newer UDF filesystem.

I would think there must be a rust tool for cross platform disk formatting. If not, that's a useful crate to exist in it's own right. Maybe that's the next step.

Could be useful. One complication is that Popsicle accesses USB drives with the udisks2 dbus API, so it doesn't require root access and can run in a Flatpak sandbox. An ideal abstraction would with with udisks2, direct operations via root access, or however Windows does things.

I've been meaning to work on better backend abstractions, using async IO. Which is more possible now that zbus 2.0 has released. But I have other projects to work on currently.

from popsicle.

techguy16 avatar techguy16 commented on July 30, 2024

GTK applications can run on Windows, like @ids1024 said, but they are a giant pain to get working. Popsicle uses some Linux-only libraries, so these would have to be reverse-engineered for Windows.

If you could get around these two issues, it would be possible, but you would have to maintain two versions, one for Linux, and one for Windows, because you would have to implement everything from the Linux one in Windows, so the Windows version would get features a few weeks or even a few months after the Linux version.

from popsicle.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.