You are not logged in.

#1 2015-06-24 03:28:38

jamespharvey20
Member
Registered: 2015-06-09
Posts: 129

Understanding packages with cherry-picked upstream patches

Trying to understand Arch packages better.  Plan on putting some packages up on AUR soon, and hope to grow from there over time.

My current confusion stems from the page https://projects.archlinux.org/svntogit … es/systemd, as of the commit message "udevd: suppress warning if we don't find cgroup".

Just learned from foutrelis on github that with me running 221-1, I don't have the 3 patches above that since a new version (like 221-2) hasn't been pushed, since those 3 patches are harmless error messages.

(1) If I wanted to have these 3 patches installed, before a new version is pushed, is there a way I could do that?

(2) 2 of these patches cherry-pick upstream commits that came out after systemd 221.  Assuming these upstream commits come out in 222, would these 2 patches be removed/reverted in the arch package?

(3) If the answer to #2 is yes, do they just disappear from the PKGBUILD log?  I doubt so - I would think there would be new commits reverting the changes.  (Unless this arch page "hides" reverts and the original commits, which I'd be very surprised by.)  Looking through the historical commits to the Arch package, I don't see other cherry-picked upstream commits at least going back to the beginning of 2014.  If they stay, why were they added to PKGBUILD in the first place, since they aren't that critical?  I'm sure there have been other non-critical (but nice) upstream patches in 2014-2015 that I don't see.

Last edited by jamespharvey20 (2015-06-24 03:54:06)

Offline

#2 2015-06-24 03:46:14

Scimmia
Fellow
Registered: 2012-09-01
Posts: 13,727

Re: Understanding packages with cherry-picked upstream patches

(1) If you want the new, modified package, you build it. You already linked to the git repo, just grab the current files.

(2) The beauty of using git cherry-pick is that it already has the patches. Once 222 is released, the git cherry-pick commands will simply be removed.

(3) Usually patches are either grabbed from the upstream repo or they are committed directly. Using git cherry-pick only works when you're building from the git repo instead of the release tarballs, so it's not normal procedure. It's done here because there have been some really bad releases from systemd. 220 was particularity bad, where they added a major new feature then forgot to include the files in the release tarball. sad

Offline

#3 2015-06-24 03:56:04

jamespharvey20
Member
Registered: 2015-06-09
Posts: 129

Re: Understanding packages with cherry-picked upstream patches

Ahh, I think I get it now.

If I wanted these 3 patches, would I sort of treat it like it was an AUR, then?  Git clone the repo, run makepkg, and install using pacman?

If so, what might a recommended pkgrel be, so when/if Arch releases 221-2 or upstream releases 222, it will upgrade?  (Perhaps "1.1" or "1a" so the whole version is seen as 221-1.1 or 221.1a?)

Offline

#4 2015-06-24 04:04:07

foutrelis
Developer
From: Athens, Greece
Registered: 2008-07-28
Posts: 705
Website

Re: Understanding packages with cherry-picked upstream patches

jamespharvey20 wrote:

why were they added to PKGBUILD in the first place, since they aren't that critical?

Think of /trunk as a work-in-progress. I was expecting that we'd need to do a new release before moving v221 to [core] (e.g. to fix some newly discovered issue) so I cherry-picked existing issues as we found them. In the end we decided not to do a new release just yet.

Offline

#5 2015-06-24 04:18:52

jamespharvey20
Member
Registered: 2015-06-09
Posts: 129

Re: Understanding packages with cherry-picked upstream patches

How do you check out an Arch package's trunk?  I've tried

git clone "git://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/systemd"
git clone "http://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/systemd"
git clone "git://projects.archlinux.org/systemd.git"

... And about 10 others.

Offline

#6 2015-06-24 04:41:23

Scimmia
Fellow
Registered: 2012-09-01
Posts: 13,727

Re: Understanding packages with cherry-picked upstream patches

Git here is just a mirror of the SVN repo, so all packages are in a single repo (projects.archlinux.org/svntogit/packages.git). You can clone the whole thing, or you can use another method, like the ABS (https://wiki.archlinux.org/index.php/Arch_Build_System), SVN (https://www.archlinux.org/svn/), or simply downloading the files from the cgit interface (https://projects.archlinux.org/svntogit … es/systemd).

Offline

#7 2015-06-24 05:01:12

progandy
Member
Registered: 2012-05-17
Posts: 5,317

Re: Understanding packages with cherry-picked upstream patches

Scimmia wrote:

Git here is just a mirror of the SVN repo, so all packages are in a single repo (projects.archlinux.org/svntogit/packages.git). You can clone the whole thing, or you can use another method, like the ABS (https://wiki.archlinux.org/index.php/Arch_Build_System), SVN (https://www.archlinux.org/svn/), or simply downloading the files from the cgit interface (https://projects.archlinux.org/svntogit … es/systemd).

You can get a single package from git, since they are in different branches.

git clone --single-branch --branch packages/systemd https://projects.archlinux.org/git/svntogit/packages.git

| alias CUTF='LANG=en_XX.UTF-8@POSIX ' | alias ENGLISH='LANG=C.UTF-8 ' |

Online

#8 2015-06-24 05:06:03

mauritiusdadd
Member
From: Benevento, Italy
Registered: 2013-10-27
Posts: 776

Re: Understanding packages with cherry-picked upstream patches

progandy wrote:
Scimmia wrote:

Git here is just a mirror of the SVN repo, so all packages are in a single repo (projects.archlinux.org/svntogit/packages.git). You can clone the whole thing, or you can use another method, like the ABS (https://wiki.archlinux.org/index.php/Arch_Build_System), SVN (https://www.archlinux.org/svn/), or simply downloading the files from the cgit interface (https://projects.archlinux.org/svntogit … es/systemd).

You can get a single package from git, since they are in different branches.

git clone --single-branch --branch packages/systemd https://projects.archlinux.org/git/svntogit/packages.git

Or you can use ASP

ASPROOT=. asp export systemd

About me - github

-- When you have eliminated the impossible, whatever remains, however improbable, must be the truth -- Spock | Sherlock Holmes

Offline

Board footer

Powered by FluxBB