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