Open Malix-Labs opened 1 week ago
My goal is I want just sudo dnf upgrade
to upgrade software in the future.
I'm confused why you confused, an I doing anything wrong? Please give advice!
I'm not planning to submit to Fedora directly, copr too.
an I doing anything wrong? Please give advice!
Making your GitHub repository an RPM repo instead of using COPR which is directly made for that (please read https://docs.fedoraproject.org/en-US/package-maintainers/New_Package_Process_for_New_Contributors/ for real) is a bad practice that should be avoided
It has the infrastructure require, would be easier to maintain, is made exactly for what you are seeking for, and would be easier to enable (dnf copr enable xlionjuan/rustdesk
)
However, RustDesk probably qualify to be in the official DNF repository instead of being in the COPR repository, so you could also request it to be included in the official repository instead
You could search on RustDesk's discussion
People suggests RustDesk to host its own APT/RPM repository, also submitting to Flathub/Snap Store.
But they seems not plan to do it (at least now) since they only have three people(according to the commit history), their workload is very high.
https://github.com/flathub/flathub/pull/5233
From the last situation RustDesk submitting to Flathub, I know they don't want to dealing anything except the software project itself.
https://github.com/rustdesk/rustdesk/discussions/1537#discussioncomment-10533094
If they decide to take over in the future, I won't deny them, but current situation is better than nothing.
You don't need to be an official maintainer of the upstream package to publish it to DNF or COPR.
Basically, if what you want is being able to package manage (dnf install
, dnf upgrade
, ...) a FOSS not already published to repositories, you can, in your current position, already publish it to COPR (like AUR) (get started)
If you want to publish something more official, you could ask to be a DNF maintainer to publish it to DNF (get started)
What you are currently doing by making your GitHub repository an RPM repository (instead of publishing to DNF, or even just COPR) is an half solution and bad practice
And most importantly, publishing to CORP is both better and simpler than the current situation
Publishing to DNF requires that you become an official repository maintainer which is more official To do that, you could probably just feature request it instead
I'm not planning to do it, because they didn't support direct .rpm
upload, it need to build from source, which I'm not able to do, no matter times and my ability.
I don't have enough time and ability to this, sorry, and I think it is not a great ideas to submit this software that has very high releace frequency, instead, COPR or official RPM repo is the better ideas.
If you suggesting me to asking RustDesk to no matter create a COPR or submitting to Fedora, I don't think it is possible at this moment, they even don't have the Launchpad PPA! Which has way higher marketshare than RPM based distros.
They have NOTHING to distribute their software, and no anybody (except @ besdar is submitting to Flathub, and they have Arch AUR) doing this!
And what can I do is create a small APT/RPM repository, and use shell scripts to download their official GitHub Releases.
I hope you understand something from this story.
Edit: I forgot they have AUR.
What you are currently doing by making your GitHub repository an RPM repository (instead of publishing to DNF, or even just COPR) is an half solution and bad practice
I know..I know, I completely understand the difference between Fedora official, COPR, own repo, as well as the difference between Ubuntu official and PPA, but......this is my best efforts, sorry.
they didn't support direct .rpm upload, it need to build from source, which I'm not able to do, no matter times and my ability.
https://docs.fedoraproject.org/en-US/quick-docs/publish-rpm-on-copr/#_packaging_from_source_tarballs
Thanks but look what I'm found... https://github.com/rustdesk/rustdesk/releases/download/1.3.1/rustdesk-1.3.1-unsigned.tar.gz
tree rustdesk-1.3.1-unsigned
rustdesk-1.3.1-unsigned
├── rustdesk-1.3.1-aarch64.dmg
├── rustdesk-1.3.1-x86_64.dmg
└── windows-x86_64
├── data
│ ├── app.so
│ ├── flutter_assets
│ │ ├── AssetManifest.bin
│ │ ├── AssetManifest.json
│ │ ├── assets
│ │ │ ├── actions_mobile.svg
│ │ │ ├── actions.svg
│ │ │ ├── address_book.ttf
│ │ │ ├── android.svg
│ │ │ ├── arrow.svg
│ │ │ ├── auth-apple.svg
│ │ │ ├── auth-auth0.svg
│ │ │ ├── auth-azure.svg
│ │ │ ├── auth-default.svg
│ │ │ ├── auth-facebook.svg
│ │ │ ├── auth-github.svg
│ │ │ ├── auth-gitlab.svg
│ │ │ ├── auth-google.svg
│ │ │ ├── auth-okta.svg
│ │ │ ├── call_end.svg
│ │ │ ├── call_wait.svg
│ │ │ ├── chat2.svg
│ │ │ ├── chat.svg
│ │ │ ├── checkbox-outline.svg
│ │ │ ├── chevron_up_chevron_down.svg
│ │ │ ├── close.svg
│ │ │ ├── display.svg
│ │ │ ├── dots.svg
│ │ │ ├── file.svg
│ │ │ ├── file_transfer.svg
│ │ │ ├── folder_new.svg
│ │ │ ├── folder.svg
│ │ │ ├── fullscreen_exit.svg
│ │ │ ├── fullscreen.svg
│ │ │ ├── gestures.ttf
│ │ │ ├── home.svg
│ │ │ ├── icon.svg
│ │ │ ├── insecure_relay.svg
│ │ │ ├── insecure.svg
│ │ │ ├── kb_layout_iso.svg
│ │ │ ├── kb_layout_not_iso.svg
│ │ │ ├── keyboard.svg
│ │ │ ├── linux.svg
│ │ │ ├── mac.svg
│ │ │ ├── peer_searchbar.ttf
│ │ │ ├── pinned.svg
│ │ │ ├── record_screen.svg
│ │ │ ├── rec.svg
│ │ │ ├── refresh.svg
│ │ │ ├── scam.png
│ │ │ ├── screen.svg
│ │ │ ├── search.svg
│ │ │ ├── secure_relay.svg
│ │ │ ├── secure.svg
│ │ │ ├── tabbar.ttf
│ │ │ ├── transfer.svg
│ │ │ ├── trash.svg
│ │ │ ├── unpinned.svg
│ │ │ ├── voice_call.svg
│ │ │ ├── voice_call_waiting.svg
│ │ │ └── win.svg
│ │ ├── FontManifest.json
│ │ ├── fonts
│ │ │ └── MaterialIcons-Regular.otf
│ │ ├── NOTICES.Z
│ │ ├── packages
│ │ │ ├── dash_chat_2
│ │ │ │ └── assets
│ │ │ │ ├── placeholder.png
│ │ │ │ └── profile_placeholder.png
│ │ │ ├── flex_color_picker
│ │ │ │ └── assets
│ │ │ │ └── opacity.png
│ │ │ ├── wakelock_plus
│ │ │ │ └── assets
│ │ │ │ └── no_sleep.js
│ │ │ └── window_manager
│ │ │ └── images
│ │ │ ├── ic_chrome_close.png
│ │ │ ├── ic_chrome_maximize.png
│ │ │ ├── ic_chrome_minimize.png
│ │ │ └── ic_chrome_unmaximize.png
│ │ └── shaders
│ │ └── ink_sparkle.frag
│ └── icudtl.dat
├── desktop_drop_plugin.dll
├── desktop_multi_window_plugin.dll
├── dylib_virtual_display.dll
├── file_selector_windows_plugin.dll
├── flutter_custom_cursor_plugin.dll
├── flutter_gpu_texture_renderer_plugin.dll
├── flutter_windows.dll
├── librustdesk.dll
├── rustdesk.exe
├── screen_retriever_plugin.dll
├── texture_rgba_renderer_plugin.dll
├── uni_links_desktop_plugin.dll
├── url_launcher_windows_plugin.dll
├── usbmmidd_v2
│ ├── idd_instructions.txt
│ ├── License.txt
│ ├── usbmmidd.cat
│ ├── usbmmIdd.inf
│ └── x64
│ └── usbmmIdd.dll
├── WindowInjection.dll
├── window_manager_plugin.dll
└── window_size_plugin.dll
18 directories, 95 files
I also failed to publish it on COPR myself
https://copr.fedorainfracloud.org/coprs/malix-off/RustDesk/
Even a manual build from https://github.com/rustdesk/rustdesk/blob/master/res/rpm.spec :
https://copr.fedorainfracloud.org/coprs/malix-off/RustDesk/build/8111515/
Here is the log : https://download.copr.fedorainfracloud.org/results/malix-off/RustDesk/srpm-builds/08111515/builder-live.log.gz
Note that they seems use lots of non standard procedure while building, they existed in https://github.com/rustdesk/rustdesk/blob/master/build.py and https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml
I just noticed, it will be a PITA to repackage, but i'll try
Check https://copr.fedorainfracloud.org/coprs/malix-off/RustDesk/package/rustdesk/
failed but succeeded ?
Deleted my previous comment before having posted the second
They don't have real tarball, and they're using custom build procedure and didn't put any build script in rpm.spec
.
They need build.py
and some stuff
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=rustdesk#n195
Maybe someone can port from the Arch AUR's PKGBUILD, but it needs more advanced knowledge.
the spec (rustdesk/rustdesk@master/res/rpm.spec) seems to be broken, right ?
Yes or no, what RustDesk is doing is compile the binary first, and copy and package them into .rpm
or .deb
, this procedure isn't allowed by COPR or PPA or anything that required build from source.
I think it's indeed out of my league
I published https://github.com/rustdesk/rustdesk/discussions/9576 to raise this issue
And you will be transferred to discussion. If they're willing to, PPA will be first..
B2w, Flatpak also hope you build from source too, but due to the complexity of the Flutter, the reviewer accept to build flatpak package by .deb
.
I think they absolutely fucked their build process There can't not be something very wrong in how they did things.
It may be the problems on the Flutter, also it may be the reason why Flathub reviewer suddenly agreed that they don't need to build from the source when they heard "Flutter".
Having worked with Flutter, it is not fun to work with, indeed. However, they don't have a working RPM spec, right? So it's not only Flutter I have no idea how to build a RPM from it myself
What they did is using build.py
and make lots of things dynamically generated, maybe they want to edit their process and apply to multiple Linux distros.
I mean sure but now how to actually do it ? Where even is the documentation for it ? It gives serious skill issues vibes
They have working GitHub Actions haha.
Yeah but then the .spec file is not enough so broken by design
And about the working GitHub action :
https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml
Absolutely uncanny
Over 70k stars project and still only 3 people working on this project, this is more uncanny.
Yeah definitely, you're kind of brave to even attempt to make it to work, and I was very delusional to think I could even try to build from source
However, maybe rpmfusion could accept it? idk
It is very weird to put a full open source software in RPM Fusion, and I don't think build from source is impossible, look at the Arch AUR's PKGBUILD, it is doing great jobs, what we need is some experts port that to other platforms, but it has some risks that it may breaking easily if upstream changed something.
I'm worried if the RPM/APT repo become popular due to GitHub Pages has 100GB limit
I found Cloudflare R2, it seems great that RustDesk can build by himself
It is built from .deb
haha
Wouldn't it be possible to build from source though ?
Wouldn't it be possible to build from source though ?
I just hope RustDesk can have its own APT/RPM repo, Cloudflare R2 may be the great solution.
The best thing would be COPR technically
Not possible in short term
True
Have you read https://docs.fedoraproject.org/en-US/package-maintainers/New_Package_Process_for_New_Contributors/ ?
Is your goal to publish to DNF or COPR, or to make your own RPM repo from this GitHub repo ?