Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Aug 2018 11:20:59 -0300
From:      Helen Koike <helen.koike@collabora.com>
To:        Adam Weinberger <adamw@adamw.org>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: workflow question: how do you maintain the port in sync with upstream?
Message-ID:  <d7f99e6d-7042-8a52-9b26-c0efaf88969c@collabora.com>
In-Reply-To: <CAP7rwchVHEK9-ojKD1wi83LpCZCh9mZ8V2qQapCxAZeigFQK4Q@mail.gmail.com>
References:  <05457c2b-b85c-a929-20e7-38ff1b2899d6@collabora.com> <CAP7rwchVHEK9-ojKD1wi83LpCZCh9mZ8V2qQapCxAZeigFQK4Q@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help


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.

> 
> Do any of those help?
> 
> # Adam
> 
> 

Thanks
Helen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d7f99e6d-7042-8a52-9b26-c0efaf88969c>