Comments (5)
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.
Nothing necessarily has to be reverse-engineered. Just adding code to flash devices on Windows with Windows APIs.
from popsicle.
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.
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.
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)
- Broken AUR package HOT 2
- Can't create bootable usb for Windows .iso HOT 1
- Can't compile HOT 3
- Feature: SHA1 hash
- AppImage does not initialize on MX Linux 21
- "Select all" is not synced to drive selection state
- Apt or pop issues. (new install) not sure. HOT 2
- Appimage has low quallity Icon in KDE
- Missing icons with Flatpak install on Fedora
- [Feature request] GTK4 HOT 1
- Icon Missing from /usr/share/icons/Pop/32x32/apps/ HOT 2
- Windows 10 Install HOT 1
- Duplicator mode HOT 4
- Generic "USB Flasher" name shown in application launcher instead of "Popsicle" HOT 4
- Cut new release HOT 6
- Auto-verify or auto-fill hash if a .sha256 file is in the same directory HOT 2
- building on macos HOT 3
- [Flatpak] This app is using obsolete runtime. Please update to newer platform HOT 3
- popsicle and howdy (face authentication) HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from popsicle.