You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Paul Burba <pa...@softlanding.com> on 2006/02/24 17:15:10 UTC

[PATCH] #8 OS400/EBCDIC Port: Implement apr_file_mtime_set() alternative.

Hello All,

(Don't know what the OS400/EBCDIC port is about?  See: 
http://svn.haxx.se/dev/archive-2006-02/0519.shtml)

apr_file_mtime_set() is not implemented on OS400, this patch provides a 
workaround so svn_io_set_file_affected_time() can still do its thing.

For reference, here is the IBM's docstring for the function and the struct 
it uses:

#ifdef AS400
/**
 * The utimbuf structure analogous to POSIX.1 definition.
 */
typedef struct apr_utimbuf_t apr_utimbuf_t;
struct apr_utimbuf_t {
    /** The new access time */
    apr_time_t  atime;
    /** The new modification time */
    apr_time_t  mtime;
};
#endif 

#ifdef AS400 /**
 * Set the specified file's access and modification times. The file is
 * specified by filename, instead of using a pre-opened file. If the file 
is a
 * symlink, this function will resolve the link and set times for the file 
the
 * symlink refers to.
 * @param fname The name of the file to set times.
 * @param buf The desired access and modification times. If buf is a NULL
 * pointer, the access and modification times are set to the current time.
 * @deffunc apr_status_t apr_utime(const char *fname, const apr_utimbuf_t 
*buf)
 * @tip This function returns APR_ENOTIMPL if the platform does not 
support
 * change of file access and modification times.
 */
APR_DECLARE(apr_status_t) apr_utime(const char *fname, const apr_utimbuf_t
                                    *buf);
#endif 

Please review if you have a chance, thanks,

Paul B. 

[[[
OS400/EBCDIC Port: Implement apr_file_mtime_set() alternative.

This is one of several patches to allow Subversion to run on IBM's
OS400 V5R4.  It uses the OS400 specific function apr_utime() instead
of apr_file_mtime_set(), which is not implemented on OS400 APR. 

* subversion/libsvn_subr/io.c
   (svn_io_set_file_affected_time): Use apr_utime() to set file
    modification time.
]]]


_____________________________________________________________________________
Scanned for SoftLanding Systems, Inc. and SoftLanding Europe Plc by IBM Email Security Management Services powered by MessageLabs. 
_____________________________________________________________________________

Re: [PATCH] #8 OS400/EBCDIC Port: Implement apr_file_mtime_set() alternative.

Posted by Mark Phippard <ma...@softlanding.com>.
rooneg@gmail.com wrote on 02/24/2006 01:40:41 PM:

> On 2/24/06, Mark Phippard <ma...@softlanding.com> wrote:
> 
> > What they told us is that they generally only ported what they needed 
to
> > support the httpd port.  We were the first people to ever contact them
> > about using APR and porting other code to the iSeries.  They have been
> > fairly responsive to us, the reality though is that they are IBM and a
> > programmer does not have the authority to just do "what is right" 
without
> > having some higher-level grant budgetary approval.  So we point these
> > things out to them and they apologize and put them on their list. They
> > have fixed and added several things for us.
> 
> The weird part is that IBM was one of the companies that helped to
> create APR, their engineers (while working on Apache2) were
> instrumental in getting it off the ground.  It's a wonderful "left
> hand doesn't know what the right hand is doing" situation.

Apache 1.3 never could have run on OS/400, so I know that they worked 
closely with the Apache2 team, at least initially.  OS/400 was running an 
officially supported version of Apache2 for at least 18 months before it 
was GA.  When this was happening, they were highly promoting this to the 
OS/400 community which is why it came a such a surprise to me when their 
code was not in the APR repository.

> I doubt it'll happen, but I agree it would be nice.  This isn't the
> only time this sort of thing has happened by the way, there's an HP
> internal port of APR to OpenVMS that has never seen the light of day
> either, as far as I can tell.  I'd love it if these companies would
> work with the APR community to get their changes into the actual APR
> source tree, but I suspect they're too set in their ways.

When I met with IBM on the issue they said it was purely a 
budgetary/resource decision.  Someone decided it would cost too much money 
to cleanup the code and go through the process.  I was really surprised 
they were willing to make this UTF-8 change, so maybe things will get 
better.  I have to think they could reevaluate their whole porting effort 
for httpd and realize they could probably start over and do less work. 
Maybe when they move to 2.2 they will look at options like this.

Mark


_____________________________________________________________________________
Scanned for SoftLanding Systems, Inc. and SoftLanding Europe Plc by IBM Email Security Management Services powered by MessageLabs. 
_____________________________________________________________________________

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [PATCH] #8 OS400/EBCDIC Port: Implement apr_file_mtime_set() alternative.

Posted by Garrett Rooney <ro...@electricjellyfish.net>.
On 2/24/06, Mark Phippard <ma...@softlanding.com> wrote:

> What they told us is that they generally only ported what they needed to
> support the httpd port.  We were the first people to ever contact them
> about using APR and porting other code to the iSeries.  They have been
> fairly responsive to us, the reality though is that they are IBM and a
> programmer does not have the authority to just do "what is right" without
> having some higher-level grant budgetary approval.  So we point these
> things out to them and they apologize and put them on their list.  They
> have fixed and added several things for us.

The weird part is that IBM was one of the companies that helped to
create APR, their engineers (while working on Apache2) were
instrumental in getting it off the ground.  It's a wonderful "left
hand doesn't know what the right hand is doing" situation.

> I was a bit disappointed when I realized that they were maintaining their
> own version of APR.  Now that OS/400 has this "UTF-8" option, my hope is
> that they will eventually try to move back towards the standard
> implementation.  It is just a hope though.

I doubt it'll happen, but I agree it would be nice.  This isn't the
only time this sort of thing has happened by the way, there's an HP
internal port of APR to OpenVMS that has never seen the light of day
either, as far as I can tell.  I'd love it if these companies would
work with the APR community to get their changes into the actual APR
source tree, but I suspect they're too set in their ways.

-garrett

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org


Re: [PATCH] #8 OS400/EBCDIC Port: Implement apr_file_mtime_set() alternative.

Posted by Paul Burba <pa...@softlanding.com>.
Mark Phippard <ma...@softlanding.com> wrote on 02/24/2006 01:35:38 PM:

> By the way, I believe we are nearing the end of the patches.  I was 
> thinking Paul probably ought to have pointed that out so that you do not 

> think this is never ending.  Producing the patches in "logical pieces" 
is 
> time consuming because we need them all in place in order to run any 
> tests.  So every time something is tweaked it takes a bit of work to 
> manage it.
> 
> Paul, how many are left after this?

There will be two more, one rather involved one related to running hook 
scripts and one that disables command line options that the OS400 port 
doesn't support at the moment.

I should mention that these two will be the last of the "core" patches 
needed to run Subversion on OS400, I have other changes related to running 
the python test suite, but those still need a good bit of work so won't be 
seen for a while.

Paul B.

_____________________________________________________________________________
Scanned for SoftLanding Systems, Inc. and SoftLanding Europe Plc by IBM Email Security Management Services powered by MessageLabs. 
_____________________________________________________________________________

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [PATCH] #8 OS400/EBCDIC Port: Implement apr_file_mtime_set() alternative.

Posted by Mark Phippard <ma...@softlanding.com>.
rooneg@gmail.com wrote on 02/24/2006 01:15:07 PM:

> On 2/24/06, Paul Burba <pa...@softlanding.com> wrote:
> > Hello All,
> >
> > (Don't know what the OS400/EBCDIC port is about?  See:
> > http://svn.haxx.se/dev/archive-2006-02/0519.shtml)
> >
> > apr_file_mtime_set() is not implemented on OS400, this patch provides 
a
> > workaround so svn_io_set_file_affected_time() can still do its thing.
> 
> This seems reasonable to me, +1.
> 
> As a side note, is anyone else getting the feeling that the IBM guys
> who ported APR to OS400 are kind of missing the point of a PORTABLE
> runtime?

What they told us is that they generally only ported what they needed to 
support the httpd port.  We were the first people to ever contact them 
about using APR and porting other code to the iSeries.  They have been 
fairly responsive to us, the reality though is that they are IBM and a 
programmer does not have the authority to just do "what is right" without 
having some higher-level grant budgetary approval.  So we point these 
things out to them and they apologize and put them on their list.  They 
have fixed and added several things for us.

I was a bit disappointed when I realized that they were maintaining their 
own version of APR.  Now that OS/400 has this "UTF-8" option, my hope is 
that they will eventually try to move back towards the standard 
implementation.  It is just a hope though.

The main issue is that we have always wanted to support the existing 
OS/400 install base so even if they implement some of these things it puts 
us in a difficult position as to whether to use them and require users to 
update to the very latest version or provide a workaround.

By the way, I believe we are nearing the end of the patches.  I was 
thinking Paul probably ought to have pointed that out so that you do not 
think this is never ending.  Producing the patches in "logical pieces" is 
time consuming because we need them all in place in order to run any 
tests.  So every time something is tweaked it takes a bit of work to 
manage it.

Paul, how many are left after this?

Mark


_____________________________________________________________________________
Scanned for SoftLanding Systems, Inc. and SoftLanding Europe Plc by IBM Email Security Management Services powered by MessageLabs. 
_____________________________________________________________________________

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: [PATCH] #8 OS400/EBCDIC Port: Implement apr_file_mtime_set() alternative.

Posted by Garrett Rooney <ro...@electricjellyfish.net>.
On 2/24/06, Paul Burba <pa...@softlanding.com> wrote:
> Hello All,
>
> (Don't know what the OS400/EBCDIC port is about?  See:
> http://svn.haxx.se/dev/archive-2006-02/0519.shtml)
>
> apr_file_mtime_set() is not implemented on OS400, this patch provides a
> workaround so svn_io_set_file_affected_time() can still do its thing.

This seems reasonable to me, +1.

As a side note, is anyone else getting the feeling that the IBM guys
who ported APR to OS400 are kind of missing the point of a PORTABLE
runtime?

-garrett

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org