xmake
xmake copied to clipboard
Create and submit the package into official distribution repositories
- [x] Windows packages (winget) https://github.com/microsoft/winget-pkgs/blob/master/manifests/Xmake-io/Xmake/
- [x] Windows packages (scoop) https://github.com/lukesampson/scoop
- [x] Windows packages (baulk) https://github.com/baulk/bucket/blob/master/bucket/xmake.json
- [x] Mingw-packages (pacman) https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-xmake/PKGBUILD
- [x] Termux-packages (pkg) https://github.com/termux/termux-packages/blob/master/packages/xmake/build.sh
- [x] Homebrew https://github.com/Homebrew/homebrew-core/blob/master/Formula/xmake.rb
- [x] Linuxbrew https://github.com/Homebrew/linuxbrew-core/blob/master/Formula/xmake.rb
- [x] Ubuntu packages (apt/ppa) https://launchpad.net/~xmake-io/+archive/ubuntu/xmake
- [ ] Ubuntu/Debian packages (apt/official)
- https://github.com/xmake-io/xmake-package-debian
- https://salsa.debian.org/xmake-team
- https://wiki.debian.org/DebianMentorsFaq
- https://www.debian.org/doc/manuals/developers-reference/pkgs.html#newpackage
- https://wiki.ubuntu.com/UbuntuDevelopment/NewPackages
- [ ] Deepin/uOS packages (apt)
- [x] Archlinux packages (aur) https://aur.archlinux.org/packages/xmake
- [ ] Archlinux packages (pacman)
- [x] Fedora/RHEL/OpenSUSE/Centos packages (copr/dnf)
- https://fedoraproject.org/wiki/Join_the_package_collection_maintainers
- https://pavel.raiskup.cz/blog/github-push-actions-and-copr.html
- https://fedoraproject.org/wiki/Package_maintenance_guide
- Copr: https://copr.fedorainfracloud.org/coprs/waruqi/xmake/
- RPM/SRC: https://src.fedoraproject.org/
- BugZilla: https://bugzilla.redhat.com/
- https://docs.fedoraproject.org/bg/fedora-join/welcome/welcome/
- https://pagure.io/fedora-join/Welcome-to-Fedora
- [ ] Freebsd packages (pkg)
- https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/
- http://pkgsrc.org
- [ ] Centos packages (yum)
- [ ] SLES/OpenSUSE packages (obs)
- [ ] Alpine packages (apk)
- https://pkgs.alpinelinux.org/packages
- [ ] raspbian
- [ ] Gentoo packages (portage)
- https://github.com/xmake-io/xmake-package-gentoo
- https://github.com/gentoo/gentoo
- [x] Gentoo packages (guru)
- https://gitweb.gentoo.org/repo/proj/guru.git/tree/dev-util/xmake
- [ ] ...
Add ubuntu ppa package. https://launchpad.net/~xmake-io/+archive/ubuntu/xmake
sudo add-apt-repository ppa:xmake-io/xmake
sudo apt update
sudo apt install xmake
This is great! Note that you can do both Fedora and RHEL via COPR: https://copr.fedorainfracloud.org/ For SLES/OpenSUSE there is OBS: https://build.opensuse.org/
This is great! Note that you can do both Fedora and RHEL via COPR: https://copr.fedorainfracloud.org/ For SLES/OpenSUSE there is OBS: https://build.opensuse.org/
Ok, thanks.
Fedora/RHEL copr
https://copr.fedorainfracloud.org/coprs/waruqi/xmake/
sudo dnf copr enable waruqi/xmake
sudo dnf install xmake
Wow cool! I didn't even know SUSE was possible on Copr too now!
@stsp this is covering a lot of distros including Fedora. Maybe you could try it out?
There's still alpine to do right?
There's still alpine to do right?
is apk? ok, I will also consider it.
Any plans on packaging it for raspbian?
Any plans on packaging it for raspbian?
Maybe it will be considered in the future, but I don't have it's environment now.
I would be happy to write an ebuild for Gentoo. I'm not sure if it would get into the official repo or how long it could take to get into it if it does, but I'd put it in my own repo that I already have set up as well.
I would be happy to write an ebuild for Gentoo. I'm not sure if it would get into the official repo or how long it could take to get into it if it does, but I'd put it in my own repo that I already have set up as well.
Can you add ebuild to xmake/scripts/gentoo/ ?
https://github.com/xmake-io/xmake/tree/master/scripts
I mean, sure, but I'm not sure how useful it is on it's own. I don't think you can install a package with just an ebuild. There are other files necessary as well, and Portage expects a proper package structure for a repo.
I mean, sure, but I'm not sure how useful it is on it's own. I don't think you can install a package with just an ebuild. There are other files necessary as well, and Portage expects a proper package structure for a repo.
Similar to the debian package? It also has its own package structure: https://github.com/xmake-io/xmake/tree/master/scripts/debian
Sorry for the late reply, I promise I wasn't ignoring this. I was conversing with fellow Gentoo users so that I would better know how to go about this. Yep, it looks like this should be doable. However I'll also need to write a helper script to make it stay on the system since it won't be associated with any repo.
Hi!
About the Gentoo package: there are a few ways to handle the situation.
Let me start by saying that Gentoo is a bit special because its packaging system is based on the concept of ports (similar to *BSD).
So basically Portage (Gentoo pkg manager) needs a special structure of files to execute the builds.
Most important file is the ebuild file but it also needs to be placed inside a repository.
A repository in the sense of Portage is constructed by a file tree of similar structure /profiles/repo_name /metadata/layout.conf /package-category/package-name/package-name-version.ebuild (/ being the repository root).
1st approach is to construct this directory inside xmake source repo and tell users to execute ebuild (a small portage subcommand for handling ebuilds) to install xmake.
This has following drawbacks:
- using a kindof intermediatory tool to do installations
- not registering the package in a world set (which holds records of packages installed by user (not auto))
- not conventional (not really a way you are supposed to do it)
in approaches 2 and 3 users can use a standard way of installation: emerge command
2nd is to link/copy a portage repository from xmake source repo to a repository structure elsewhere this also is a unconventional way of doing it, a little bit better BUT updates will be a lot... weirder. For example ebuilds will update when xmake repo updates which is not great. People want to update ebuilds when they sync the package repositories.
3rd way is to outsource the portage repo somehow. This is the best way because users will add repo and install packages using tools they know. Some of approaches may be to put it into a dedicated git repository (managed by xmake project) and then add the repo as submodule (if you want to have it all in one repo at the end?) or to @Phate6660 's overlay or maybe GURU overlay which is a project (similar to AUR) where non-developer users take care of packages (it is MUCH more restrictive than AUR tho).
Resources: https://wiki.gentoo.org/wiki/Repository_format https://wiki.gentoo.org/wiki/Custom_ebuild_repository https://devmanual.gentoo.org/quickstart/index.html
3rd way is to outsource the portage repo somehow. This is the best way because users will add repo and install packages using tools they know. Some of approaches may be to put it into a dedicated git repository (managed by xmake project) and then add the repo as submodule (if you want to have it all in one repo at the end?) or to @Phate6660 's overlay or maybe GURU overlay which is a project (similar to AUR) where non-developer users take care of packages (it is MUCH more restrictive than AUR tho).
Thank you, I think we can consider opening a separate git repo to maintain the gentoo package structure. For the aur package, we do the same. (https://aur.archlinux.org/packages/xmake)
@Phate6660 What do you think? If this is reasonable, I can open a new https://github.com/xmake-io/xmake-package-gentoo repository to maintain it specifically.
Good thing I made sure to check this real quick before I went to sleep. Yeah that seems great! I would be more than happy to make and maintain the needed overlay and package(s) as well. And since the overlay would be set up, there's always room for more packages to be added to it. Whether it's user-made things or separate things that work with it or whatever.
Edit: I'm going to sleep now, I have to get up in a few hours but I doubt I'll wake up in time. If I don't respond I'm not ignoring or anything.
Good thing I made sure to check this real quick before I went to sleep. Yeah that seems great! I would be more than happy to make and maintain the needed overlay and package(s) as well. And since the overlay would be set up, there's always room for more packages to be added to it. Whether it's user-made things or separate things that work with it or whatever.
Edit: I'm going to sleep now, I have to get up in a few hours but I doubt I'll wake up in time. If I don't respond I'm not ignoring or anything.
Ok, I created an empty repo first, if you are interested, welcome to submit relevant package scripts to this repo, thank you
https://github.com/xmake-io/xmake-package-gentoo
Yep, I was right, I didn't wake up anywhere near the time I wanted to. T_T I'm just waiting a little to wake up more, then I'll be working on that overlay and xmake package. I plan on getting everything set up and working today.
Edit: Working on it now.
@waruqi Packaging on Gentoo would be much easier if you publish a release of the source with the submodules included. Would it be ok if I created a release with the latest 2.5.3 version with all the submodules included in the archive? I would be happy to do all the work involved, I would just need permission to create the actual release. Or I could send you the tarball. It would just be placed in the xmake-package-gentoo repo, unless you wanted to include it in the xmake repo of course.
For now, I'll add archives of the submodules as extra archives and will unpack them to the proper spot in the ebuild.
Btw I have WIP stuff in my fork https://github.com/Phate6660/xmake-package-gentoo if you want to track progress.
Edit: I have opened a PR -- https://github.com/xmake-io/xmake-package-gentoo/pull/1
@waruqi Packaging on Gentoo would be much easier if you publish a release of the source with the submodules included. Would it be ok if I created a release with the latest 2.5.3 version with all the submodules included in the archive? I would be happy to do all the work involved, I would just need permission to create the actual release. Or I could send you the tarball. It would just be placed in the xmake-package-gentoo repo, unless you wanted to include it in the xmake repo of course.
https://github.com/xmake-io/xmake/releases/download/v2.5.3/xmake-v2.5.3.tar.gz already contains all the submodules source code, you can use it directly, only a tar package is needed .
Btw I have WIP stuff in my fork https://github.com/Phate6660/xmake-package-gentoo if you want to track progress.
Edit: I have opened a PR -- xmake-io/xmake-package-gentoo#1
thanks
About Gentoo situation: opened a PR with my tweaks to xmake ebuilds: https://github.com/xmake-io/xmake-package-gentoo/pull/4
About Gentoo situation: opened a PR with my tweaks to xmake ebuilds: xmake-io/xmake-package-gentoo#4
Ok, thanks!
I saw @longlene submit another gentoo patch. https://github.com/gentoo/gentoo/pull/20841
Now in Slackware via SlackBuilds: http://slackbuilds.org/repository/15.0/development/xmake/ For unfamiliar with Slackware: this is the same format as for official packages but managed independently (unless Patrick decides to move package to official set at some point).
Oh, xmake has finally been moved to the official arch repository.

OBS
Packaged on OBS for openSUSE Tumbleweed and 15.4: https://software.opensuse.org//download.html?project=home%3Aiphelf&package=xmake