# force make to not apply the patches



## kenorb (Nov 17, 2010)

```
> sudo make
===>  Patching for mysql-workbench-oss52-5.2.1_4
===>   Converting DOS text files to UNIX text files
===>  Applying extra patch /usr/ports/databases/mysql-workbench52/files/52-patch-frontend__linux__workbench__Makefile.am
1 out of 1 hunks failed--saving rejects to frontend/linux/workbench/Makefile.am.rej
*** Error code 1

Stop in /usr/ports/databases/mysql-workbench52.
*** Error code 1
```

Which option is to force make to ignore applying the patches?

Tried all which had FORCE in their name

```
> grep FORCE /usr/ports/Mk/*
/usr/ports/Mk/bsd.port.mk:# FORCE_MAKE_JOBS
/usr/ports/Mk/bsd.port.mk:# FORCE_PKG_REGISTER
/usr/ports/Mk/bsd.port.mk:.if defined(MAKE_JOBS_SAFE) || defined(FORCE_MAKE_JOBS)
/usr/ports/Mk/bsd.port.mk:.if defined(FORCE_MAKE_JOBS) && !defined(MAKE_JOBS_SAFE)
/usr/ports/Mk/bsd.port.mk:BUILD_FAIL_MESSAGE+=	"You have chosen to use multiple make jobs (parallelization) for all ports.  This port was not tested for this setting.  Please remove FORCE_MAKE_JOBS and retry the build before reporting the failure to the maintainer."
/usr/ports/Mk/bsd.port.mk:.if defined(FORCE_PACKAGE)
/usr/ports/Mk/bsd.port.mk:		for afile in ${FORCE_FETCH}; do \
/usr/ports/Mk/bsd.port.mk:		for afile in ${FORCE_FETCH}; do \
/usr/ports/Mk/bsd.port.mk:.if !defined(NO_PKG_REGISTER) && !defined(FORCE_PKG_REGISTER)
/usr/ports/Mk/bsd.port.mk:				${ECHO_MSG} "      without deleting it first, set the variable \"FORCE_PKG_REGISTER\""; \
/usr/ports/Mk/bsd.port.mk:			    ${MAKE} ${.MAKEFLAGS} FORCE_FETCH="$$refetchlist" FETCH_REGET="`${EXPR} ${FETCH_REGET} - 1`" fetch); then \
/usr/ports/Mk/bsd.port.mk:.if defined(FORCE_PKG_REGISTER)
/usr/ports/Mk/bsd.python.mk:.elif defined(FORCE_PYTHON_VERSION)
```


----------



## eye (Nov 17, 2010)

There is no such option. Look at the do-patch target in bsd.port.mk, it applies every file as a patch from PATCHDIR with certain filename prefix. Read every target you exeuccccccccccccccMakefiles are usually read as dependency graphs.

Note, you can get values from most variables using -V option in make(1).


----------



## kenorb (Nov 17, 2010)

Workaround:

```
sudo sed -i'.bak' "s/EXTRA_PATCHES=/#EXTRA_PATCHES=/" Makefile
```
make should have some force option in case of any errors.


```
> make -V
make: option requires an argument -- V
```
How to print all available variables?
It would be great.


----------



## eye (Nov 17, 2010)

kenorb said:
			
		

> make should have some force option in case of any errors.


Nah, it'd only be useful for contributors that already know how to hack makefiles.





			
				kenorb said:
			
		

> > make -V
> make: option requires an argument -- V


Have you read the manpage?





			
				kenorb said:
			
		

> How to print all available variables?
> It would be great.


try`$ make -dv`but it'll not display variables inherited from environ()ment


----------



## eye (Nov 17, 2010)

Doh, make(1) itself has an option (-i) to ignore errors. But it can cause surprising behavior on the ports tree.


----------



## SirDice (Nov 17, 2010)

Why don't you fix the actual patch error? 
Maybe the patches are not needed anymore? 
Maybe they need tweaking because the source changed?

Fix the cause not the effect!


----------



## kenorb (Nov 17, 2010)

SirDice said:
			
		

> Why don't you fix the actual patch error?
> Maybe the patches are not needed anymore?
> Maybe they need tweaking because the source changed?
> 
> Fix the cause not the effect!



The problem is that I've tried to use the same patches for mysql-workbench-oss52-5.2.1_4
 against new downloaded version 5.2.29.
I can't fix the cause without rewriting the new patches against the new version.
Without proper patches port doesn't compile. So I'm stuck here.


----------



## Nukama (Nov 17, 2010)

Move the files/patch-\* to attic, then make will work without the patches. 
But if you need the patches, look into them, figure out what they do. Apply them to the source after `# make extract` has been run.

After you finished to patch the extracted source `# make makepatch` and the new patch-\* files against the new source will be available.


----------



## DutchDaemon (Nov 17, 2010)

This topic has been closed. Issues as technical or detailed as this should not be discussed in general user-oriented forums like The FreeBSD Forums. These forums are intended for end-user support with installing and/or running FreeBSD and/or applications from the ports tree, not for routinely resolving low-level problems with the operating system or add-on applications. Developers and port maintainers usually do not spend much time here, and we routinely refer technically detailed questions to them.

Consider opening this topic elsewhere, e.g.:

In the case of *the FreeBSD base system*:

1) by posting to one of the relevant mailing lists
2) by opening a bug report

In the case of *ported applications*:

1) by contacting the port maintainer (run make maintainer in the port directory)
2) by opening a bug report

Talk to the current port maintainer. Really.


----------

