xmake icon indicating copy to clipboard operation
xmake copied to clipboard

Create and submit the package into official distribution repositories

Open waruqi opened this issue 5 years ago • 28 comments

  • [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
  • [ ] ...

waruqi avatar Sep 07 '20 14:09 waruqi

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

waruqi avatar Sep 10 '20 03:09 waruqi

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/

jschwartzenberg avatar Sep 10 '20 08:09 jschwartzenberg

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.

waruqi avatar Sep 10 '20 08:09 waruqi

Fedora/RHEL copr

https://copr.fedorainfracloud.org/coprs/waruqi/xmake/

sudo dnf copr enable waruqi/xmake
sudo dnf install xmake

waruqi avatar Sep 23 '20 12:09 waruqi

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?

jschwartzenberg avatar Sep 23 '20 19:09 jschwartzenberg

There's still alpine to do right?

demhademha avatar Oct 05 '20 12:10 demhademha

There's still alpine to do right?

is apk? ok, I will also consider it.

waruqi avatar Oct 05 '20 12:10 waruqi

Any plans on packaging it for raspbian?

Zaya6 avatar Mar 18 '21 19:03 Zaya6

Any plans on packaging it for raspbian?

Maybe it will be considered in the future, but I don't have it's environment now.

waruqi avatar Mar 18 '21 23:03 waruqi

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.

Phate6660 avatar May 13 '21 17:05 Phate6660

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

waruqi avatar May 13 '21 23:05 waruqi

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.

Phate6660 avatar May 14 '21 00:05 Phate6660

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

waruqi avatar May 14 '21 02:05 waruqi

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.

Phate6660 avatar May 14 '21 06:05 Phate6660

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

xgqt avatar May 14 '21 06:05 xgqt

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.

waruqi avatar May 14 '21 07:05 waruqi

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.

Phate6660 avatar May 14 '21 07:05 Phate6660

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

waruqi avatar May 14 '21 07:05 waruqi

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.

Phate6660 avatar May 14 '21 17:05 Phate6660

@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.

Phate6660 avatar May 14 '21 19:05 Phate6660

For now, I'll add archives of the submodules as extra archives and will unpack them to the proper spot in the ebuild.

Phate6660 avatar May 14 '21 21:05 Phate6660

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

Phate6660 avatar May 14 '21 22:05 Phate6660

@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 .

waruqi avatar May 14 '21 23:05 waruqi

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

waruqi avatar May 14 '21 23:05 waruqi

About Gentoo situation: opened a PR with my tweaks to xmake ebuilds: https://github.com/xmake-io/xmake-package-gentoo/pull/4

xgqt avatar May 15 '21 14:05 xgqt

About Gentoo situation: opened a PR with my tweaks to xmake ebuilds: xmake-io/xmake-package-gentoo#4

Ok, thanks!

waruqi avatar May 15 '21 14:05 waruqi

I saw @longlene submit another gentoo patch. https://github.com/gentoo/gentoo/pull/20841

waruqi avatar May 17 '21 06:05 waruqi

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).

xaizek avatar Apr 09 '22 10:04 xaizek

Oh, xmake has finally been moved to the official arch repository. image

waruqi avatar Dec 24 '22 13:12 waruqi

OBS

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

iphelf avatar Jun 08 '23 13:06 iphelf