RE: [squid-users] Squid2.7 build patch not working in certain parts of the hunks

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Wed, 30 Sep 2009 11:10:19 +1200

I'm wondering if you are following basic 'how to update a patch' method?

* locate original upstream file.
* make a backup copy
* apply pre-existing patch
* for each rejected hunk manually edit the patched file (not the patch
itself!)
* diff -u the altered file and backup of original.
* save results of diff as the new updated patch.
* replace original patch with updated version
* replace altered upstream file with clean backup version
* rebuild using the process which applies patches.

From the sounds of your description it seems like you are manually editing
the patch and trying to get it to apply.

If the process you use to build does an autoconf then you need to patch the
.am files before autoconf runs instead of the .in files.

OR perhapse you need to run autoconf before generating the updated patch so
that whatever changes your local autoconf makes during build to the
Makefile.in are accounted for when patching.

Amos

On Tue, 29 Sep 2009 22:42:08 +0300, "Ragheb Rustom"
<ragheb_at_smartelecom.org>
wrote:
> Hi All,
>
> Ok so I have located and solved the problem with the 2nd part of the rpm
> Build patch which was producing the 2nd errors on the src/Makefile.in in
> the
> email down. I still only have the 1st error which is produced when
patching
> /errors/Makefile.in whereby I change only errordir and DEFAULT_ERROR_DIR
to
> conform with redhat settings. Do you see anything wrong with the patch
> settings? Please your help here is much appreciated.
>
> @@ -188,11 +188,11 @@ sbindir = @sbindir@
> sharedstatedir = @sharedstatedir@
> srcdir = @srcdir@
> sysconfdir = @sysconfdir@
> target_alias = @target_alias@
> top_build_prefix = @top_build_prefix@
> top_builddir = @top_builddir@
> top_srcdir = @top_srcdir@
> -errordir = $(datadir)/errors
> +errordir = $(pkgdatadir)/errors
> -DEFAULT_ERROR_DIR = $(errordir)
> +DEFAULT_ERROR_DIR = $(sysconfdir)/errors
> INSTALL_LANGUAGES = @ERR_LANGUAGES@
> LANGUAGES = \
>
> Sincerely,
>
> Ragheb Rustom
> Email: ragheb_at_smartelecom.org
>
>
> -----Original Message-----
> From: Ragheb Rustom [mailto:ragheb_at_smartelecom.org]
> Sent: Tuesday, September 29, 2009 11:56 AM
> To: squid-users_at_squid-cache.org
> Subject: [squid-users] Squid2.7 build patch not working in certain parts
of
> the hunks
> Importance: High
>
> Hi All,
>
> I have been regenerating the build patch file for squid2.7.STABLE7 to
> reflect the new Makefile.in and am you have introduced after
> squid.2.7-STABLE5. Most of build patch is working out fine it is failing
at
> 2 places in the patch. 1st place errors/Makefile.in only in the Hunk
> section
> where I need to change 2 lines
> The hunks that are failing from the patch are the following
>
> diff -up squid-2.7.STABLE7/errors/Makefile.in.build
> squid-2.7.STABLE7/errors/Makefile.in
> --- squid-2.7.STABLE7/errors/Makefile.in.build 2009-05-01
> 04:24:16.000000000 +0100
> +++ squid-2.7.STABLE7/errors/Makefile.in 2009-09-25
> 09:54:09.000000000 +0100
> @@ -188,12 +188,12 @@ sbindir = @sbindir@
> sharedstatedir = @sharedstatedir@
> srcdir = @srcdir@
> sysconfdir = @sysconfdir@
> target_alias = @target_alias@
> top_build_prefix = @top_build_prefix@
> top_builddir = @top_builddir@
> top_srcdir = @top_srcdir@
> -errordir = $(datadir)/errors
> -DEFAULT_ERROR_DIR = $(errordir)
> +errordir = $(pkgdatadir)/errors
> +DEFAULT_ERROR_DIR = $(sysconfdir)/errors
> INSTALL_LANGUAGES = @ERR_LANGUAGES@
> LANGUAGES = \
> Armenian \
>
> I have double checked everything but it is impossible to change any one
of
> these 2 specific lines. I have amended the patch just to make sure that
the
> problem is not from the patch itself I was able to change any line above
> errordir = $(datadir)/errors even delete any line above it as well as
below
> DEFAULT_ERROR_DIR = $(errordir) the thing is I cannot change just these 2
> lines that need to be changed even if I amend the patch just to test to
> only
> remove one of these lines just removing it also fails.
>
> The same patch is failing at another Hunk which changes settings in
> src/Makefile.in. at 2nd part of same patch which has the following
> settings:
>
> @@ -886,19 +886,19 @@ distclean-compile:
> install-dataDATA: $(data_DATA)
> @$(NORMAL_INSTALL)
> - test -z "$(datadir)" || $(mkdir_p) "$(DESTDIR)$(datadir)"
> + test -z "$(sysconfdir)/squid" || $(mkdir_p)
> "$(DESTDIR)$(sysconfdir)/squid"
> @list='$(data_DATA)'; for p in $$list; do \
> if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
> f=$(am__strip_dir) \
> - echo " $(dataDATA_INSTALL) '$$d$$p'
'$(DESTDIR)$(datadir)/$$f'";
> \
> - $(dataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(datadir)/$$f"; \
> + echo " $(dataDATA_INSTALL) '$$d$$p'
> '$(DESTDIR)$(sysconfdir)/$$f'"; \
> + $(dataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \
> done
>
> uninstall-dataDATA:
> @$(NORMAL_UNINSTALL)
> @list='$(data_DATA)'; for p in $$list; do \
> f=$(am__strip_dir) \
> - echo " rm -f '$(DESTDIR)$(datadir)/$$f'"; \
> - rm -f "$(DESTDIR)$(datadir)/$$f"; \
> + echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \
> + rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \
> done
> install-sysconfDATA: $(sysconf_DATA)
> @$(NORMAL_INSTALL)
>
> Although it works perfectly on the same Makefile for another part of the
> patch being:
>
> diff -up squid-2.7.STABLE7/src/Makefile.in.build
> squid-2.7.STABLE7/src/Makefile.in
> --- squid-2.7.STABLE7/src/Makefile.in.build 2009-05-01
> 04:24:40.000000000 +0100
> +++ squid-2.7.STABLE7/src/Makefile.in 2009-09-25 10:22:37.000000000
+0100
> @@ -613,20 +613,20 @@ DEFAULT_PREFIX = $(prefix)
> DEFAULT_CONFIG_FILE = $(sysconfdir)/squid.conf
> DEFAULT_MIME_TABLE = $(sysconfdir)/mime.conf
> DEFAULT_DNSSERVER = $(libexecdir)/`echo dnsserver | sed
> '$(transform);s/$$/$(EXEEXT)/'`
> -DEFAULT_LOG_PREFIX = $(localstatedir)/logs
> +DEFAULT_LOG_PREFIX = $(localstatedir)/log/squid
> DEFAULT_CACHE_LOG = $(DEFAULT_LOG_PREFIX)/cache.log
> DEFAULT_ACCESS_LOG = $(DEFAULT_LOG_PREFIX)/access.log
> DEFAULT_STORE_LOG = $(DEFAULT_LOG_PREFIX)/store.log
> -DEFAULT_PID_FILE = $(DEFAULT_LOG_PREFIX)/squid.pid
> +DEFAULT_PID_FILE = $(DEFAULT_LOG_PREFIX)/run/squid.pid
> DEFAULT_NETDB_FILE = $(DEFAULT_LOG_PREFIX)/netdb.state
> -DEFAULT_SWAP_DIR = $(localstatedir)/cache
> +DEFAULT_SWAP_DIR = $(localstatedir)/spool/squid
> DEFAULT_PINGER = $(libexecdir)/`echo pinger | sed
> '$(transform);s/$$/$(EXEEXT)/'`
> DEFAULT_UNLINKD = $(libexecdir)/`echo unlinkd | sed
> '$(transform);s/$$/$(EXEEXT)/'`
> DEFAULT_DISKD = $(libexecdir)/`echo diskd-daemon | sed
> '$(transform);s/$$/$(EXEEXT)/'`
> DEFAULT_LOGFILED = $(libexecdir)/`echo logfile-daemon | sed
> '$(transform);s/$$/$(EXEEXT)/'`
> -DEFAULT_ICON_DIR = $(datadir)/icons
> -DEFAULT_ERROR_DIR = $(datadir)/errors/@ERR_DEFAULT_LANGUAGE@
> -DEFAULT_MIB_PATH = $(datadir)/mib.txt
> +DEFAULT_ICON_DIR = $(pkgdatadir)/icons
> +DEFAULT_ERROR_DIR = $(pkgdatadir)/errors/@ERR_DEFAULT_LANGUAGE@
> +DEFAULT_MIB_PATH = $(sysconfdir)/mib.txt
> DEFAULT_HOSTS = @OPT_DEFAULT_HOSTS@
>
> Can you please help me out pinpointing what I might be doing wrong since
I
> have at least quadrupled checked the patch for any typos or wrong line
> numbers or ranges but cannot find any. Attached below are the contents of
> the 2 .rej files I am getting for both failed patching operations.
>
> Errors/Makefile.in.rej
>
> ***************
> *** 188,199 ****
> sharedstatedir = @sharedstatedir@
> srcdir = @srcdir@
> sysconfdir = @sysconfdir@
> target_alias = @target_alias@
> top_build_prefix = @top_build_prefix@
> top_builddir = @top_builddir@
> top_srcdir = @top_srcdir@
> - errordir = $(datadir)/errors
> - DEFAULT_ERROR_DIR = $(errordir)
> INSTALL_LANGUAGES = @ERR_LANGUAGES@
> LANGUAGES = \
> Armenian \
> --- 188,199 ----
> sharedstatedir = @sharedstatedir@
> srcdir = @srcdir@
> sysconfdir = @sysconfdir@
> target_alias = @target_alias@
> top_build_prefix = @top_build_prefix@
> top_builddir = @top_builddir@
> top_srcdir = @top_srcdir@
> + errordir = $(pkgdatadir)/errors
> + DEFAULT_ERROR_DIR = $(sysconfdir)/errors
> INSTALL_LANGUAGES = @ERR_LANGUAGES@
> LANGUAGES = \
> Armenian \
>
> Src/Makefile.in.rej
>
> ***************
> *** 886,904 ****
> install-dataDATA: $(data_DATA)
> @$(NORMAL_INSTALL)
> - test -z "$(datadir)" || $(mkdir_p) "$(DESTDIR)$(datadir)"
> @list='$(data_DATA)'; for p in $$list; do \
> if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
> f=$(am__strip_dir) \
> - echo " $(dataDATA_INSTALL) '$$d$$p'
'$(DESTDIR)$(datadir)/$$f'";
> \
> - $(dataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(datadir)/$$f"; \
> done
>
> uninstall-dataDATA:
> @$(NORMAL_UNINSTALL)
> @list='$(data_DATA)'; for p in $$list; do \
> f=$(am__strip_dir) \
> - echo " rm -f '$(DESTDIR)$(datadir)/$$f'"; \
> - rm -f "$(DESTDIR)$(datadir)/$$f"; \
> done
> install-sysconfDATA: $(sysconf_DATA)
> @$(NORMAL_INSTALL)
> --- 886,904 ----
> install-dataDATA: $(data_DATA)
> @$(NORMAL_INSTALL)
> + test -z "$(sysconfdir)/squid" || $(mkdir_p)
> "$(DESTDIR)$(sysconfdir)/squid"
> @list='$(data_DATA)'; for p in $$list; do \
> if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
> f=$(am__strip_dir) \
> + echo " $(dataDATA_INSTALL) '$$d$$p'
> '$(DESTDIR)$(sysconfdir)/$$f'"; \
> + $(dataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sysconfdir)/$$f"; \
> done
>
> uninstall-dataDATA:
> @$(NORMAL_UNINSTALL)
> @list='$(data_DATA)'; for p in $$list; do \
> f=$(am__strip_dir) \
> + echo " rm -f '$(DESTDIR)$(sysconfdir)/$$f'"; \
> + rm -f "$(DESTDIR)$(sysconfdir)/$$f"; \
> done
> install-sysconfDATA: $(sysconf_DATA)
> @$(NORMAL_INSTALL)
>
> I really need these patches since I do install squid with whatever
options
> I
> need by building my custom rpms for it.
>
> Sincerely,
>
> Ragheb Rustom
> Email: ragheb_at_smartelecom.org
Received on Tue Sep 29 2009 - 23:10:23 MDT

This archive was generated by hypermail 2.2.0 : Wed Sep 30 2009 - 12:00:03 MDT