Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Aug 2018 22:45:44 +0800
From:      blubee blubeeme <gurenchan@gmail.com>
To:        Helen Koike <helen.koike@collabora.com>
Cc:        Adam Weinberger <adamw@adamw.org>, FreeBSD Ports <freebsd-ports@freebsd.org>
Subject:   Re: workflow question: how do you maintain the port in sync with upstream?
Message-ID:  <CALM2mEmspt7AwCe_XLx-K5mLSvexc5U=DaNExiabc=kgtuYd-A@mail.gmail.com>
In-Reply-To: <d7f99e6d-7042-8a52-9b26-c0efaf88969c@collabora.com>
References:  <05457c2b-b85c-a929-20e7-38ff1b2899d6@collabora.com> <CAP7rwchVHEK9-ojKD1wi83LpCZCh9mZ8V2qQapCxAZeigFQK4Q@mail.gmail.com> <d7f99e6d-7042-8a52-9b26-c0efaf88969c@collabora.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Aug 14, 2018 at 10:23 PM Helen Koike <helen.koike@collabora.com>
wrote:

>
>
> On 08/14/2018 12:05 AM, Adam Weinberger wrote:
> > On Mon, Aug 13, 2018 at 4:28 PM Helen Koike <helen.koike@collabora.com>
> wrote:
> >>
> >> Hello,
> >>
> >> I am new to the community, I am maintaining two packages and I would
> >> like to check with you if there is a better workflow to do this.
> >>
> >> The upstream project of the port I am maintaining is held in github, and
> >> I also have patches in the /usr/ports/sysutils/myport/file/ folder.
> >>
> >> So I keep a fork of the upstream project with a branch containing a
> >> commit with the patches from the /usr/ports/sysutils/myport/file/.
> >>
> >> Every time I need to update the port to a newer version, I do a git pull
> >> in this branch, then I run a script [1] to re-generate the patches in
> >> the /usr/ports/sysutils/myport/file/
> >>
> >> This script basically generates a file.orig of all modified files in
> >> git, then copy the modified file to WORK_DIR, then run make makepatch.
> >>
> >>
> >> for file in ${CHANGES}; do
> >>         mv ${WORK_DIR}/${file} ${WORK_DIR}/${file}.orig
> >>         cp ${PROJECT_PATH}/${file} ${WORK_DIR}/${file}
> >> done
> >> make makepatch
> >>
> >>
> >> I would like to know if there is a better way to do this (some tool that
> >> I am not aware of?).
> >
> > IIUC, the process you're describing seems to be rebasing your changes
> > and then generating diffs. You might have an easier time if you just
> > do that: rebase, and then generate a diff (see the last point here)>
> > Your script automates some of the routine Makefile changes, and while
> > there are some tools in ports-mgmt/ that can automate that, we don't
> > generally recommend them.
> >
> > It's common for Makefiles to have a maintainer-update: target that
> > keeps the repetitive update tasks in the Makefile (which also helps
> > the next person to maintain the port).
>
> I didn't know about this target, I'll take a look. Thanks.
>
> >
> > Also, where many files are modified on a continually-changing basis,
> > it's acceptable (though less systemically desirable) to put all your
> > patches into one file. The benefit is that you can generate that one
> > file with a single git diff, and it makes PR submission far, far
> > simpler.
>
> Is there a way to easily transform a git patch to the FreeBSD
> file/*.patch format? Because I use make makepatch, and it will generate
> several patches anyway.
> Once I used "diff -Nur", but it doesn't seem to be the same exact format
> as the one generated by make makepatch.
>

FreeBSD patching explained a bit here:
https://www.freebsd.org/doc/en/books/porters-handbook/slow-patch.html

I am not too sure on the particulars of git diffs but FreeBSD uses a
unified diff;
The part that will cause your makefile to fail is if the filepath at the
top of each patch file
is incorrect.

section 4.4.2. Manual Patch Generation in the above link gives a good
overview of how to manually generate patch files.

I am pretty sure there has to be tools that can automate transforming
whatever style patch git uses to a unified patch file.

>
> >
> > Do any of those help?
> >
> > # Adam
> >
> >
>
> Thanks
> Helen
> _______________________________________________
> freebsd-ports@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-ports
> To unsubscribe, send any mail to "freebsd-ports-unsubscribe@freebsd.org"
>
Best,
Owen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CALM2mEmspt7AwCe_XLx-K5mLSvexc5U=DaNExiabc=kgtuYd-A>