workflow question: how do you maintain the port in sync with upstream?
Helen Koike
helen.koike at collabora.com
Tue Aug 14 12:56:38 UTC 2018
On 08/13/2018 09:50 PM, blubee blubeeme wrote:
>
>
> On Tue, Aug 14, 2018, 08:26 Helen Koike <helen.koike at collabora.com
> <mailto:helen.koike at collabora.com>> wrote:
>
>
>
> On 08/13/2018 08:00 PM, blubee blubeeme wrote:
> >
> >
> > On Tue, Aug 14, 2018, 06:30 Helen Koike <helen.koike at collabora.com
> <mailto:helen.koike at collabora.com>
> > <mailto:helen.koike at collabora.com
> <mailto:helen.koike at 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?).
> >
> > [1]
> >
> https://github.com/helen-fornazier/bsd-update-patches/blob/master/freebsd-gce-update.sh
> >
> > Thanks
> > Helen
> >
> > _______________________________________________
> > freebsd-ports at freebsd.org <mailto:freebsd-ports at freebsd.org>
> <mailto:freebsd-ports at freebsd.org
> <mailto:freebsd-ports at freebsd.org>> mailing
> > list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-ports
> > To unsubscribe, send any mail to
> > "freebsd-ports-unsubscribe at freebsd.org
> <mailto:freebsd-ports-unsubscribe at freebsd.org>
> > <mailto:freebsd-ports-unsubscribe at freebsd.org
> <mailto:freebsd-ports-unsubscribe at freebsd.org>>"
> >
> > Submit your patches upstream, once they get accepted your work on
> > FreeBSD is greatly simplified.
> >
> > Best,
> > Owen
> >
>
> I am doing that, but there are some changes that I couldn't include in
> upstream yet.
>
> Helen
>
> Can you give an example of types of changes can't be upstream yet and
> their reasoning why not?
>
> Best,
> Owen
>
Sure, e.g. "service -e" vs "service --status-all", there is also sed vs
gsed (but it just came to mind that I could add this replacement inside
the Makefile)
[1]
https://github.com/freebsd/freebsd-ports/blob/master/sysutils/google-compute-engine-oslogin/files/patch-bin_google__oslogin__control#L54
Please, let me know if there is a better way to solve this, meanwhile I
am keeping this patch in the port and I always need to rebase my changes.
And as a general case, I sometimes implement a fix only for FreeBSD e.g.
[2], then I think in the better way to include in the upstream code e.g.
[3] while keeping portability with Linux, and sometimes it takes a while
for the patch to be merged in upstream, so meanwhile I need to rebase
the patch in every update of the ports.
[2]
https://github.com/freebsd/freebsd-ports/blob/master/sysutils/py-google-compute-engine/files/patch-google__compute__engine_networking_ip__forwarding_ip__forwarding__utils.py
[3] https://github.com/GoogleCloudPlatform/compute-image-packages/pull/622
Thanks
Helen
More information about the freebsd-ports
mailing list