Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the DateTime-TimeZone CPAN distribution.

Report information
The Basics
Id: 68231
Status: resolved
Priority: 0/
Queue: DateTime-TimeZone

People
Owner: Nobody in particular
Requestors: dolmen [...] cpan.org
HMBRAND [...] cpan.org
mike.shilladay [...] microlise.com
Cc: gortan [...] cpan.org
AdminCc:

Bug Information
Severity: Critical
Broken in:
  • 1.01
  • 1.03
  • 1.04
  • 1.05
  • 1.06
  • 1.07
  • 1.08
  • 1.09
  • 1.10
  • 1.11
  • 1.12
  • 1.13
  • 1.14
  • 1.15
  • 1.16
  • 1.17
  • 1.18
  • 1.19
  • 1.20
  • 1.21
  • 1.22
  • 1.23
  • 1.25
  • 1.26
  • 1.27
  • 1.28
  • 1.29
  • 1.30
  • 1.31
  • 1.32
  • 1.33
  • 1.34
Fixed in: 1.84



Subject: Cyclic dependency unresolvable
Recursive dependency detected: DateTime::Format::ICal (have: N/A; want: 0.09) => DROLSKY/DateTime-Format-ICal-0.09.tar.gz => DateTime::TimeZone (have: N/A; requires: 0.22) => DROLSKY/DateTime-TimeZone-1.34.tar.gz => DateTime::TimeZone::HPUX (have: N/A; requires: 0) => DOLMEN/DateTime-TimeZone-HPUX-1.04.tar.gz => DateTime::TimeZone (have: N/A; requires: 0). Cannot resolve. RFRANKEL/iCal-Parser-1.16.tar.gz [depend] -- NOT OK When I want to install DateTime::TimeZone on HP-UX, it *requires* DateTime::TimeZone::HPUX, which cannot do anything at all without an already installed and working DateTime::TimeZone. I went back to DateTime-TimeZone-1.05 but that still requires ::HPUX which leaves my in a deadlock position that is unresolvable.
Subject: Cyclic dependency unresolvable on HPUX
Le 2011-05-16 12:17:55, HMBRAND a écrit : Show quoted text
> I went back to DateTime-TimeZone-1.05 but that still requires ::HPUX > which leaves my in a deadlock position that is unresolvable.
The hard dependency on DateTime::TimeZone::HPUX has been introduced in DateTime::TimeZone 1.01: http://marc.info/?l=perl-datetime&m=125596504624271&w=2 As the DateTime::TimeZone::HPUX author and maintainer I am aware of this issue since that time. The problem comes from the fact that DT::TZ::HPUX needs DT::TZ at build time, while DT::TZ requires it at configure time on HPUT platorms. However I haven't been able to work on a fix because: - I have no access to an HPUX anymore since december 2009 - there is no CPAN Testers reports on HPUX - there is almost no DateTime users on HPUX as this the first feedback I get (nothing on the datetime@perl.org mailing list either) The only fix for this issue would be to relax the hard dependency of DateTime::TimeZone on DT::TZ::HPUX. But, if we totally remove the dependency, the HPUX users will not be aware that they need also the ::HPUX module. In fact the dependency of DT::TZ on DT::TZ::HPUX is only for 'test', and 'runtime'. The dependency of DT::TZ::HPUX on DT::TZ is only for 'build', 'test', 'runtime' The CPAN meta spec 2.0 should now allow to specify those dependencies. Three questions raise now: - how to specify those dependencies with the distribution building tools (currently: Module::Build in DT::TZ::HPUX and EU::MM in DT::TZ) to build META.yml/META.json ? - do the CPAN clients know how to resolve such a dependency chain? - how to force the build chain upgrade ? -- Olivier Mengué - http://search.cpan.org/~dolmen/ http://github.com/dolmen/
Subject: [rt.cpan.org #68231] Cyclic dependency unresolvable
Date: Mon, 16 May 2011 14:31:53 +0100
To: bug-DateTime-TimeZone [...] rt.cpan.org
From: Zefram <zefram [...] fysh.org>
dependencies ------------ DT:TZ:HPUX logically consists of two parts, which have distinct dependencies. Firstly, there is the conversion from HPUX $TZ values to Olson zone names, which is essentially _hpux_to_olson() minus its last line. This code does not have any dependency on DT:TZ. It is, unfortunately, only operable on the HPUX platform, due to its implementation strategy of querying the platform. I call this "unfortunate" because the operation of translating an HPUX zone name to the corresponding Olson zone name is meaningful independent of platform. The second part of DT:TZ:HPUX is the ->new code, which trivially wraps the name translation to provide a DT:TZ-like constructor interface. This part depends on DT:TZ at runtime. I think you could get some benefit, and ameliorate the dependency issue, by separating out these two halves. I note that DT:TZ doesn't actually use DT:TZ:HPUX at all. Logically there is no dependency here, and your problem comes from falsely declaring a dependency. The relationship here is more in the nature of a *recommendation* than a dependency. functionality ------------- DT:TZ:HPUX strikes me as a poor design in several respects. Firstly, the collection of static data at install time. This means that installations of the same version of DT:TZ:HPUX can differ from each other. If static data is appropriate, it would be better to run the Java-based extraction process offline, and put the resulting data into the CPAN package. This would remove the dependence on the HPUX platform, so that the module can be installed on any platform. Secondly, though I don't have an HPUX machine to test against, the builtin map entries in JavaMap.PL suggest that the $TZ format is not some HPUX-specific magic after all, but rather the System V style of $TZ value as enshrined by POSIX. This $TZ format is implemented by DateTime::TimeZone::SystemV. That module might be all that's needed on HPUX. The POSIX standard leaves open the question of what the DST transition dates should be when they're not explicitly stated in the $TZ value, and if HPUX is doing something clever there then DT:TZ:SV won't be enough. In that case you'll still want to convert to Olson names, but the problem should be reformulated as guessing what Olson zone is meant by a *System V style* $TZ value, which is not a problem specific to HPUX. -zefram
Subject: Cyclic dependency unresolvable on HPUX
RT-Send-CC: zefram [...] fysh.org
First, I have to say again that the current design of DT::TZ::HPUX is due to the fact the the author (myself) knew that he would not be able to maintain this published code up to date (for timezone name mapping) due to his lack of access to HPUX platforms for a longer time. So, this is a best effort towards a distribution that can self-update. Le 2011-05-16 15:32:07, zefram@fysh.org a écrit : Show quoted text
> dependencies > ------------ > > DT:TZ:HPUX logically consists of two parts, which have distinct > dependencies. Firstly, there is the conversion from HPUX $TZ values > to Olson zone names, which is essentially _hpux_to_olson() minus > its last line. This code does not have any dependency on DT:TZ.
The current implementation delegates to Java at runtime to query the mapping for TZ names which were not resolved at install time. This is clearly dependent on the fact that we are running on a HPUX system with a JVM able to translate timezone names. Show quoted text
> It is, unfortunately, only operable on the HPUX platform, due to > its implementation strategy of querying the platform. I call this > "unfortunate" because the operation of translating an HPUX zone name to > the corresponding Olson zone name is meaningful independent of platform.
This mapping is something that has to evolve in time. I knew I could not maintain this. That's why the current implementation tries to do its best to take advantage of the tools installed on the platform to discover what is missing from the distibution built-in table at build time (see JavaMap.PL). Show quoted text
> The second part of DT:TZ:HPUX is the ->new code, which trivially wraps the > name translation to provide a DT:TZ-like constructor interface. This part > depends on DT:TZ at runtime. I think you could get some benefit, and > ameliorate the dependency issue, by separating out these two halves. > > I note that DT:TZ doesn't actually use DT:TZ:HPUX at all. Logically there > is no dependency here, and your problem comes from falsely declaring > a dependency. The relationship here is more in the nature of a > *recommendation* than a dependency.
What uses DT::TZ is JavaMap.PL which is used to extract the mapping table from Java. Show quoted text
> functionality > ------------- > > DT:TZ:HPUX strikes me as a poor design in several respects. Firstly, the > collection of static data at install time. This means that installations > of the same version of DT:TZ:HPUX can differ from each other.
The system administrator is allowed to add its own data to /usr/lib/tztab (this data could also come from HP patches). The bigger plan was to be able to parse the tztab file. Show quoted text
> If static > data is appropriate, it would be better to run the Java-based extraction > process offline, and put the resulting data into the CPAN package.
This would require permission to redistribute the data. But who should I ask for? I prefer to avoid those kind of copyright issues. Also, if /usr/lib/tztab is updated with new TZ and Java is updated with new mapping, the user of DT::TZ::HPUX only have to reinstall the distribution to get the update without requesting an update from the CPAN maintainer. An update that I could not provide, not having access to an HPUX environment. So, this is a feature of the distribution. Show quoted text
> This would remove the dependence on the HPUX platform, so that the module > can be installed on any platform.
I would be interested in a use case for that. Show quoted text
> Secondly, though I don't have an HPUX machine to test against, the > builtin map entries in JavaMap.PL suggest that the $TZ format is not > some HPUX-specific magic after all, but rather the System V style of > $TZ value as enshrined by POSIX. This $TZ format is implemented by > DateTime::TimeZone::SystemV. That module might be all that's needed > on HPUX. The POSIX standard leaves open the question of what the DST > transition dates should be when they're not explicitly stated in the $TZ > value, and if HPUX is doing something clever there then DT:TZ:SV won't > be enough.
Yes, HPUX is doing something clever. This article has some details about hpux: http://www.chronos-st.org/Discovering%20the%20Local%20Time%20Zone--Why%20It%27s%20a%20Hard%20Problem.html It says that POSIX doesn't enforce any standard values in the TZ value, so the operating system is free to interpret it like is wants: the libc only has to know what it means. HPUX uses the /usr/lib/tztab file. Here is an example tztab: http://pete.gulotta.name/Useful%20Documentation/tztab.htm And about the "System V" mapping, AFAIK there is no such mapping in DT::TZ and I had no motivation for maintaining TZ mapping forever. If I remember well, there were also some issues with some characters which were used in /usr/lib/tztab names which were conflicting with some DT::TZ features, so it was not possible to simply add the mapping table to DT::TZ. Show quoted text
> In that case you'll still want to convert to Olson names, but > the problem should be reformulated as guessing what Olson zone is meant > by a *System V style* $TZ value, which is not a problem specific to HPUX.
Java on hpux provides a mapping to OlsonDB, and I solved the issue by using that mapping. As I said above there are HPUX specific issues. And not having access to HPUX systems anymore adds to the complexity of the task. -- Olivier Mengué - http://search.cpan.org/~dolmen/ http://github.com/dolmen/
Subject: Re: [rt.cpan.org #68231] Cyclic dependency unresolvable on HPUX
Date: Mon, 16 May 2011 18:13:05 +0100
To: Olivier 'dolmen' Mengu?? via RT <bug-DateTime-TimeZone [...] rt.cpan.org>
From: Zefram <zefram [...] fysh.org>
Olivier 'dolmen' Mengu?? via RT wrote: Show quoted text
>The system administrator is allowed to add its own data to >/usr/lib/tztab (this data could also come from HP patches). The bigger >plan was to be able to parse the tztab file.
Interesting. Thanks for providing an example tztab. The file looks like it would be pretty simple to parse; I reckon a proper implementation of tztab would be easier than that Java gubbins. I've added it to my todo list. The local variability certainly gets in the way of translating the names on other platforms, but it also damages the whole concept of translating into Olson names at all. Proper interpretation of $TZ on a tztab-using system requires parsing the particular tztab file that the system has. Now, DT:TZ has always played fast and loose with this sort of thing, in that it interprets an Olson-style $TZ as referring to DT:TZ's implementation of that Olson zone, rather than reading the system's tzfile for that zone. That's not much of an issue for real Olson zones, but would really get in the way if a sysadmin augmented /usr/share/zoneinfo with custom non-Olson zones. That possibility seems entirely analogous to having custom entries in tztab. It would be nice to have a clear policy on this, which really belongs in DT:TZ:Local. Show quoted text
>This would require permission to redistribute the data.
Should check with HP whether there is, or they're prepared to make, any copyright exception on the vendor tztab. But the extent to which this is a viable strategy depends on how normal it is for sysadmins to customise their tztab. Considering how few entries there are in your example, it's probably a lot more common to customise tztab than to add custom tzfiles to the Olson set. This would make distribution of (data derived from) the standard tztab less useful than distributing (data derived from) the Olson database. -zefram
Subject: Bug in DateTime
Date: Tue, 20 Sep 2011 11:21:34 +0100
To: bug-datetime-timezone [...] rt.cpan.org
From: "Mike Shilladay" <mike.shilladay [...] microlise.com>
Hi, I am trying to install DateTime::TimeZone on OS HP-UX 11.31 (11iv3) using Perl 5.8.8. Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API USE_SITECUSTOMIZE Built under hpux Compiled at Nov 28 2008 11:52:02 @INC: /opt/perl_32/lib/5.8.8/IA64.ARCHREV_0-thread-multi /opt/perl_32/lib/5.8.8 /opt/perl_32/lib/site_perl/5.8.8/IA64.ARCHREV_0-thread-multi /opt/perl_32/lib/site_perl/5.8.8 /opt/perl_32/lib/site_perl /opt/perl_32/lib/vendor_perl/5.8.8/IA64.ARCHREV_0-thread-multi /opt/perl_32/lib/vendor_perl/5.8.8 /opt/perl_32/lib/vendor_perl When I try an install DateTime::TimeZone it requires dependancy of DateTime::TimeZone::HPUX, which in turn requires dependancy of DateTime::TimeZone. The install doesn't happen because of the circular dependancy, exit status of Could not make: cannot resolve circular dependency Skipping test because of notest pragma Running make install Make had returned bad status, install seems impossible Thanks in Advance Mike. Best Regards, Mike Shilladay  HP ASP, APP UNIX Technical Consultant direct line: +44 (0)1773 537332 mobile: +44 (0)7793 846680 Microlise Contact Details Microlise UK Microlise America Microlise Crew Chief JCB Livelink switch: +44 (0)1773 537000 fax: +44 (0)1773 537373 www.microlise.com switch:+1(678)389 9018 fax+1(866)704 3115 www.microlise-america.com U.S:+1(866)238 2951 Canada:+1(866)238 2951 www.crewchief.microlise.com Tel: +44 (0)1889 590312 www.jcb.com Please think about the environment......Don't print this email unless you need to. You can now follow Microlise on Twitter , LinkedIn and Facebook Any views or opinions presented in this email message are solely those of the author and do not necessarily represent those of the Microlise Group unless otherwise specifically stated. Email communications are not necessarily secure and therefore the Microlise Group does not accept legal responsibility for the contents of this message. CONFIDENTIALITY NOTICE: This message is intended for the use of the individual or entity to which it is addressed. It may contain privileged and confidential information that is exempt from disclosure by law and if you are not an intended recipient you must not copy, distribute or take any action in reliance on it and are requested to notify Microlise immediately. If you are an intended recipient, then you must only use the information for the purposes intended, and cannot copy or distribute the information without the written permission of Microlise. Microlise Group Limited +44(0)1773 537000. Microlise Group Limited is a company registered in England and Wales with company number 1670983 Microlise Limited is a company registered in England and Wales with company number 3037936 Microlise Engineering Limited is a company registered in England and Wales with company number 2211125 Registered office:- Farrington Way, Eastwood, Nottingham. NG163AG VAT number 694 5425 02
Subject: Bug in DateTime, re-occurance
Date: Thu, 13 Oct 2011 11:22:46 +0100
To: bug-datetime-timezone [...] rt.cpan.org
From: "Mike Shilladay" <mike.shilladay [...] microlise.com>
Hi, I sent an email in September regarding DateTime Not working. This was with 1.38. It got fixed in 1.39, but now 1.40 displays the same problem because of circular dependancy - can this be resolved again please ? Trailing output from installtion attempt ..... ---- DOLMEN/DateTime-TimeZone-HPUX-1.04.tar.gz ---- DateTime::TimeZone [requires] Recursive dependency detected: DateTime::TimeZone (have: N/A; want: 1.40) => DROLSKY/DateTime-TimeZone-1.40.tar.gz => DateTime::TimeZone::HPUX (have: N/A; requires: 0) => DOLMEN/DateTime-TimeZone-HPUX-1.04.tar.gz => DateTime::TimeZone (have: N/A; requires: >=1.05). Cannot resolve. DOLMEN/DateTime-TimeZone-HPUX-1.04.tar.gz [depend] -- NOT OK Skipping test because of notest pragma Running Build install Make had returned bad status, install seems impossible Running make for D/DR/DROLSKY/DateTime-TimeZone-1.40.tar.gz Has already been unwrapped into directory /.cpan/build/DateTime-TimeZone-1.40- q0yMq2 Could not make: cannot resolve circular dependency Skipping test because of notest pragma Running make install Make had returned bad status, install seems impossible Below is the content from my original email. Hi, I am trying to install DateTime::TimeZone on OS HP-UX 11.31 (11iv3) using Perl 5.8.8. Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API USE_SITECUSTOMIZE Built under hpux Compiled at Nov 28 2008 11:52:02 @INC: /opt/perl_32/lib/5.8.8/IA64.ARCHREV_0-thread-multi /opt/perl_32/lib/5.8.8 /opt/perl_32/lib/site_perl/5.8.8/IA64.ARCHREV_0-thread-multi /opt/perl_32/lib/site_perl/5.8.8 /opt/perl_32/lib/site_perl /opt/perl_32/lib/vendor_perl/5.8.8/IA64.ARCHREV_0-thread-multi /opt/perl_32/lib/vendor_perl/5.8.8 /opt/perl_32/lib/vendor_perl When I try an install DateTime::TimeZone it requires dependancy of DateTime::TimeZone::HPUX, which in turn requires dependancy of DateTime::TimeZone. The install doesn't happen because of the circular dependancy, exit status of Could not make: cannot resolve circular dependency Skipping test because of notest pragma Running make install Make had returned bad status, install seems impossible Thanks in Advance Mike. Best Regards, Mike Shilladay  HP ASP, APP UNIX Technical Consultant direct line: +44 (0)1773 537332 mobile: +44 (0)7793 846680 Microlise Contact Details Microlise UK Microlise America Microlise Crew Chief JCB Livelink switch: +44 (0)1773 537000 fax: +44 (0)1773 537373 www.microlise.com switch:+1(678)389 9018 fax+1(866)704 3115 www.microlise-america.com U.S:+1(866)238 2951 Canada:+1(866)238 2951 www.crewchief.microlise.com Tel: +44 (0)1889 590312 www.jcb.com Please think about the environment......Don't print this email unless you need to. You can now follow Microlise on Twitter , LinkedIn and Facebook Any views or opinions presented in this email message are solely those of the author and do not necessarily represent those of the Microlise Group unless otherwise specifically stated. Email communications are not necessarily secure and therefore the Microlise Group does not accept legal responsibility for the contents of this message. CONFIDENTIALITY NOTICE: This message is intended for the use of the individual or entity to which it is addressed. It may contain privileged and confidential information that is exempt from disclosure by law and if you are not an intended recipient you must not copy, distribute or take any action in reliance on it and are requested to notify Microlise immediately. If you are an intended recipient, then you must only use the information for the purposes intended, and cannot copy or distribute the information without the written permission of Microlise. Microlise Group Limited +44(0)1773 537000. Microlise Group Limited is a company registered in England and Wales with company number 1670983 Microlise Limited is a company registered in England and Wales with company number 3037936 Microlise Engineering Limited is a company registered in England and Wales with company number 2211125 Registered office:- Farrington Way, Eastwood, Nottingham. NG163AG VAT number 694 5425 02
This will be resolved in an upcoming rewrite of DateTime-TimeZone. I'm not sure when it will be released, but some time in the next few months, I hope.
Work-around ist to force install DateTime::TimeZone, and install DateTime::TimeZone::HPUX afterwards.