If you don't want to create local branch and anything new is added into ports tree, procedure below at the top of your ports tree (basically /usr/ports by default) allows to generate wanted style of diff.Hello mrd!
It need not be in /usr/ports. For example, if you did a 'git clone' of freebsd-ports to a different directory, you could use that.
To protect my own sanity when doing this kind of work, I create a separate branch for the new code. I can do a diff between main and working branches to confirm changes. Since your work spans multiple ports, you may need to separate them into different branches. If the ports are tightly coupled it would make sense to me to include them all in the same "hail mary" patch but that also makes the size of the review larger. You could start with the port with the least dependencies and submit that first. Some of the feeback would likely apply to the other ports. I leave that choice up to you.
Submit a git-diff style patch created from the port's own working directory. Do a make clean first so that only the minimum number of files remain. Also, the patch should be flattened so that, when applied, it appears as a single commit. Attach the patch to a new issue in bugzilla.
A more elaborate way is to use phabricator. Given the size of your patch (multiple ports), this may be better.
You can create a review that looks something like this (not the best as it's an X11 font) example:
⚙ D41709 [new port] x11-fonts/fixel: Geometric and humanist grotesque
reviews.freebsd.org
Odds are you will get some feedback in the review. The wiki page above describes a tool called arcanist that helps streamline the process of updating your patch.
git stash --include-untracked
git stash show -p --include-untracked > /filename/to/save/patch
git stash pop
-U999999 option is needed for the 2nd command.Maintainers are not forced to create branches.mrd if your intent is to become a port maintainer, this will be an excellent experience. If not, you can do the simpler path of creating an issue in bugzilla and attaching the patch there. Regardless, everyone appreciates your efforts.
The idea behind a separate branch was to make creating a patch easier. If you've ever worked on two or more reviews at once, you'll understand why. If mrd can create a patch, that is sufficient. mrd you are in a simpler place in that the port(s) are new. If you can create a tarball of new port directories only, that might be sufficient for attaching to a bugzilla ticket.
- libraries usually go into ${PREFIX}/lib, not share, though there can be exceptions if the libraries are opened by dlopen.
- libraries need to have a soname set and the usual symlinks installed. Is this the case?
/usr/local/share/... instead of ${PREFIX}/lib, create a symbolic link? $ ls -lat /usr/local/lib/libxcb-util*
-rw-r--r-- 1 root wheel 22382 Dec 17 19:24 /usr/local/lib/libxcb-util.a
lrwxr-xr-x 1 root wheel 20 Dec 17 19:24 /usr/local/lib/libxcb-util.so -> libxcb-util.so.1.0.0
lrwxr-xr-x 1 root wheel 20 Dec 17 19:24 /usr/local/lib/libxcb-util.so.1 -> libxcb-util.so.1.0.0
-rwxr-xr-x 1 root wheel 16224 Dec 17 19:24 /usr/local/lib/libxcb-util.so.1.0.0The port was pushed back... several issues, I need to rework it.
There are several things I need to understand how to address differently.
Among the various comments these are the ones that I understood the least:
For the first bullet, what should I do if the software expect to find the libraries in/usr/local/share/...instead of${PREFIX}/lib, create a symbolic link?
I honestly did not understand the second bullet point.
Thanks.
USE_LDCONFIG= ${PREFIX}/lib/entropypianotuner ${PREFIX}/lib/entropypianotuner/algorithms
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/bin/entropypianotuner ${STAGEDIR}${PREFIX}/bin/
${MKDIR} ${STAGEDIR}${PREFIX}/lib/entropypianotuner
${INSTALL_LIB} ${WRKSRC}/bin/libcore.so.1.0.0 ${STAGEDIR}${PREFIX}/lib/entropypianotuner/
${RLN} ${STAGEDIR}${PREFIX}/lib/entropypianotuner/libcore.so.1.0.0 ${STAGEDIR}${PREFIX}/lib/entropypianotuner/libcore.so
${RLN} ${STAGEDIR}${PREFIX}/lib/entropypianotuner/libcore.so.1.0.0 ${STAGEDIR}${PREFIX}/lib/entropypianotuner/libcore.so.1
${RLN} ${STAGEDIR}${PREFIX}/lib/entropypianotuner/libcore.so.1.0.0 ${STAGEDIR}${PREFIX}/lib/entropypianotuner/libcore.so.1.0
${MKDIR} ${STAGEDIR}${PREFIX}/lib/entropypianotuner/algorithms
${INSTALL_LIB} ${WRKSRC}/bin/algorithms/libentropyminimizer.so ${STAGEDIR}${PREFIX}/lib/entropypianotuner/algorithms/
${INSTALL_LIB} ${WRKSRC}/bin/algorithms/libpitchraise.so ${STAGEDIR}${PREFIX}/lib/entropypianotuner/algorithms/
${INSTALL_LIB} ${WRKSRC}/bin/algorithms/libresettorecording.so ${STAGEDIR}${PREFIX}/lib/entropypianotuner/algorithms/