Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Mar 2010 12:58:07 -0400
From:      Alejandro Imass <ait@p2ee.org>
To:        Alberto Mijares <amijaresp@gmail.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Elegant way to hack port source
Message-ID:  <a14066a01003190958k2eaf657bp2f7c8907278847c3@mail.gmail.com>
In-Reply-To: <286906751003190944q4ad81a6eu5422af0409e30046@mail.gmail.com>
References:  <a14066a01003190935t4bbef41esc44c60a5b00e6144@mail.gmail.com> <286906751003190944q4ad81a6eu5422af0409e30046@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Mar 19, 2010 at 12:44 PM, Alberto Mijares <amijaresp@gmail.com> wrote:
> On Fri, Mar 19, 2010 at 12:05 PM, Alejandro Imass <ait@p2ee.org> wrote:
>> Hi,
>>
>> I need to modify a file from a port before building. Specifically, the
>> sane-backends pnm.c driver has a bug and the folks at the original
>> project has not fixed for a while. I need to modify pnm.c in the work
>> directory before compiling. What is an elegant way of doing this? If I
>> make and then modify, the main make file does not see the change made
>> in the file and will not recompile. And since there is no actual
>> makefile in the work subdirectory I can't compile there either!
>
>
>
> You could make a copy of graphics/sane-backends to
> graphics/sane-backends-devel, fix the source in the new port's
> directory and install it as a regular port.
>
> Check this out too
>
> http://www.freebsd.org/doc/en/books/porters-handbook/
>
> Best regards
>

Thanks Alberto. I have checked the porter's handbook before writing
this, in fact I discovered the CONFIGURE_ARGS variable which proved
very useful for passing the --enable-pnm-backend switch to the
configure script.
(http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/building.html#USING-CONFIGURE).

Nevertheless, the problem is that pnm.c has a bug since last year and
it has not been fixed, and only developers use that driver, so I guess
we've all gotten used to fiddling with the source, instead of forcing
the maintainer to fix it. BTW today I got tired of this BS so I
formnally filed the bug:
https://alioth.debian.org/tracker/index.php?func=detail&aid=312401&group_id=30186&atid=410366


Anyway, back to the port, this is the problem I have: whe I type make
CONFIGURE_ARGS=--enable-pnm-backend it effectively makes all the
backends in the correct way, including the infamous pnm backend. I
later go to the work directory, go into the sane-backendsxxxx
sub-directory and modify backends/pnm.c. I latter go back to the root
of the port (/usr/ports/graphics/sane-backends/) and type make again
and nothing happens. In a normal make scenario, make would detct the
.c had changed and re-compile and link just that file(s). In the ports
make scenario, make doesn't do that. Is there a special switch to the
port's make process, to actually go and re-make the source?

Thanks,
Alejandro Imass

>
> Alberto Mijares
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a14066a01003190958k2eaf657bp2f7c8907278847c3>