[prev in list] [next in list] [prev in thread] [next in thread]
List: macports-users
Subject: Re: Fixing source-code bugs using MacPorts facilities.
From: Ken Cunningham <ken.cunningham.webuse () gmail ! com>
Date: 2020-07-25 17:31:14
Message-ID: 1AE3D034-D552-4A0E-85E9-E501E6CCCC09 () gmail ! com
[Download RAW message or body]
Here is my process (courtesy of advice from many others on this list including Chris \
and Michael and others). And this is not yet ideal, as no doubt it could be further \
improved. This is for anything beyond trivial one-tweak patches, by the way — I \
might not do this for a trivial source fix.
Set up your local ports repository like you have, copy the current portfile directory \
into it, etc.
Go to the port's directory in the new repo, and
sudo port -v build
when it errors, open a new terminal window, navigate to the same directory you're in \
now, and then
cd work
sudo chmod -R a+rw .
cd into the source directory, whatever it's called, then set it up as a temporary git \
repo:
git init
git add .
git commit -m "init" > /dev/null
now you're ready to do your work.
edit your source files as needed.
You now have two terminal windows open. One is the port directory, one is the source \
directory.
In the port directory, try your build again:
sudo port -v build
if you get errors, in your source directory, edit the files, then rebuild again. Keep \
going until you get it to build.
Now you have changes in your new source git tree to save, so save those into a diff \
file that you can use later:
git diff —no-prefix > ~/patches-for-my-fixed-port.diff
then see if your port will destroot, and then install.
sudo port -v destroot
sudo port -v -k install
(note the -k — that keeps it from blowing out your source directory if it \
succeeds).
If all is well, you're close to done. from your port directory
sudo port clean
sudo port uninstall THEPORT
cd files
mv ~/patches-for-my-fixed-port.diff .
cd ..
bbedit Portfile
add your new patch
patchfiles-append patches-for-my-fixed-port.diff
and then try your build — hopefully it goes right through to installing, and all \
your patches worked.
You're done. Open your PR, have a latte, wait for someone to tell you how wonderful \
you are (yeah, right!).
Ken
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic