Merge branch 'omaha_14.4.1' into omaha_pda
Former-commit-id:6bfc363c0c
[formerly893a0d91e5
] [formerly315423d014
] [formerlyf23b0fc310
[formerly315423d014
[formerly 38fbd41a54b5dd9afe0482f83ed3b4d7d5a2aa2e]]] Former-commit-id:f23b0fc310
Former-commit-id: 0c33778636a77307bcc10ea934de9d7adb33c95f [formerlya3dd8f7e88
] Former-commit-id:5bda487c3b
This commit is contained in:
commit
c5a83047d1
216 changed files with 11776 additions and 22443 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -7,6 +7,7 @@ testBin/
|
|||
bin-test/
|
||||
*.class
|
||||
*.pyo
|
||||
*.pyc
|
||||
*.o
|
||||
*.orig
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
<import feature="com.raytheon.uf.viz.cots.feature" version="1.0.0.qualifier"/>
|
||||
<import feature="com.raytheon.uf.viz.common.core.feature" version="1.0.0.qualifier"/>
|
||||
<import feature="com.raytheon.uf.viz.core.feature" version="1.0.0.qualifier"/>
|
||||
<import feature="com.raytheon.uf.viz.d2d.nsharp.feature" version="1.0.0.qualifier"/>
|
||||
</requires>
|
||||
|
||||
<plugin
|
||||
|
|
|
@ -66,7 +66,6 @@ import com.raytheon.uf.common.status.IUFStatusHandler;
|
|||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||
import com.raytheon.uf.common.util.FileUtil;
|
||||
import com.raytheon.uf.viz.spellchecker.Activator;
|
||||
import com.raytheon.uf.viz.spellchecker.jobs.SpellCheckJob;
|
||||
|
||||
/**
|
||||
|
@ -79,6 +78,7 @@ import com.raytheon.uf.viz.spellchecker.jobs.SpellCheckJob;
|
|||
* 18 APR 2008 ### lvenable Initial creation
|
||||
* 01Mar2010 4765 MW Fegan Moved from GFE plug-in.
|
||||
* 09/24/2014 #16693 lshi filter out swear words in spelling check
|
||||
* 10/23/2014 #3685 randerso Changes to support mixed case
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -87,9 +87,10 @@ import com.raytheon.uf.viz.spellchecker.jobs.SpellCheckJob;
|
|||
*
|
||||
*/
|
||||
public class SpellCheckDlg extends Dialog implements ISpellingProblemCollector {
|
||||
private static java.util.List<String> swearWords = Arrays.asList("ASSHOLE");
|
||||
private static java.util.List<String> swearWords = Arrays.asList("ASSHOLE");
|
||||
|
||||
private static final transient IUFStatusHandler statusHandler = UFStatus.getHandler(SpellCheckDlg.class);
|
||||
private static final transient IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(SpellCheckDlg.class);
|
||||
|
||||
private static final Pattern DIGITS = Pattern.compile("\\d");
|
||||
|
||||
|
@ -331,6 +332,7 @@ public class SpellCheckDlg extends Dialog implements ISpellingProblemCollector {
|
|||
* org.eclipse.ui.texteditor.spelling.ISpellingProblemCollector#accept(org
|
||||
* .eclipse.ui.texteditor.spelling.SpellingProblem)
|
||||
*/
|
||||
@Override
|
||||
public void accept(SpellingProblem problem) {
|
||||
if (shell.isDisposed()) {
|
||||
return;
|
||||
|
@ -345,15 +347,16 @@ public class SpellCheckDlg extends Dialog implements ISpellingProblemCollector {
|
|||
misspelledLbl.setText(badWord);
|
||||
|
||||
ICompletionProposal[] proposals = problem.getProposals();
|
||||
if (proposals != null && proposals.length > 0) {
|
||||
if ((proposals != null) && (proposals.length > 0)) {
|
||||
for (ICompletionProposal proposal : proposals) {
|
||||
String pdString = proposal.getDisplayString();
|
||||
Matcher pdMatch = CHANGE_TO.matcher(pdString);
|
||||
if (pdMatch.matches()) {
|
||||
String replString = pdMatch.group(1).toUpperCase();
|
||||
String replString = pdMatch.group(1);
|
||||
// proposals may include case changes, which get lost
|
||||
//if (replString != badWord) {
|
||||
if (!swearWords.contains(replString) && !replString.equals(badWord)) {
|
||||
// if (replString != badWord) {
|
||||
if (!swearWords.contains(replString)
|
||||
&& !replString.equals(badWord)) {
|
||||
suggestionList.add(replString);
|
||||
}
|
||||
}
|
||||
|
@ -370,7 +373,7 @@ public class SpellCheckDlg extends Dialog implements ISpellingProblemCollector {
|
|||
|
||||
StyleRange styleRange = styledText.getStyleRangeAtOffset(problem
|
||||
.getOffset());
|
||||
if (styleRange == null || styleRange.isUnstyled()
|
||||
if ((styleRange == null) || styleRange.isUnstyled()
|
||||
|| styleRange.similarTo(REDSTYLE)) {
|
||||
if (ignoreAll.contains(badWord)) {
|
||||
scanForErrors();
|
||||
|
@ -407,6 +410,7 @@ public class SpellCheckDlg extends Dialog implements ISpellingProblemCollector {
|
|||
* org.eclipse.ui.texteditor.spelling.ISpellingProblemCollector#beginCollecting
|
||||
* ()
|
||||
*/
|
||||
@Override
|
||||
public void beginCollecting() {
|
||||
// nothing at present
|
||||
}
|
||||
|
@ -531,7 +535,7 @@ public class SpellCheckDlg extends Dialog implements ISpellingProblemCollector {
|
|||
probStart = matcher.start(2);
|
||||
// Only replace unstyled (unlocked) instances
|
||||
styleRange = styledText.getStyleRangeAtOffset(probStart);
|
||||
if (styleRange == null || styleRange.isUnstyled()) {
|
||||
if ((styleRange == null) || styleRange.isUnstyled()) {
|
||||
repList.addFirst(Integer.valueOf(probStart));
|
||||
}
|
||||
found = matcher.find();
|
||||
|
@ -582,7 +586,8 @@ public class SpellCheckDlg extends Dialog implements ISpellingProblemCollector {
|
|||
try {
|
||||
userDLFile.save();
|
||||
} catch (Exception e) {
|
||||
statusHandler.handle(Priority.PROBLEM, "Error saving user dictionary", e);
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
"Error saving user dictionary", e);
|
||||
}
|
||||
// The spell check job might have a backlog of errors
|
||||
// for this word, which no longer apply.
|
||||
|
@ -658,6 +663,7 @@ public class SpellCheckDlg extends Dialog implements ISpellingProblemCollector {
|
|||
* org.eclipse.ui.texteditor.spelling.ISpellingProblemCollector#endCollecting
|
||||
* ()
|
||||
*/
|
||||
@Override
|
||||
public void endCollecting() {
|
||||
MessageDialog.openInformation(shell, "", "Done checking document");
|
||||
styledText.setSelectionRange(0, 0);
|
||||
|
|
|
@ -26,7 +26,6 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.ui.application.WorkbenchAdvisor;
|
||||
import org.osgi.framework.Bundle;
|
||||
|
||||
import com.raytheon.uf.common.comm.HttpClient;
|
||||
|
@ -52,6 +51,7 @@ import com.raytheon.uf.viz.thinclient.localization.LocalizationCachePersistence;
|
|||
import com.raytheon.uf.viz.thinclient.localization.ThinClientLocalizationInitializer;
|
||||
import com.raytheon.uf.viz.thinclient.preferences.ThinClientPreferenceConstants;
|
||||
import com.raytheon.uf.viz.thinclient.refresh.TimedRefresher;
|
||||
import com.raytheon.viz.ui.personalities.awips.AWIPSWorkbenchAdvisor;
|
||||
import com.raytheon.viz.ui.personalities.awips.AbstractAWIPSComponent;
|
||||
import com.raytheon.viz.ui.personalities.awips.CAVE;
|
||||
|
||||
|
@ -178,12 +178,11 @@ public class ThinClientComponent extends CAVE implements IThinClientComponent {
|
|||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.ui.personalities.awips.AbstractCAVEComponent#
|
||||
* getWorkbenchAdvisor()
|
||||
* @see com.raytheon.viz.ui.personalities.awips.AbstractAWIPSComponent#
|
||||
* createAWIPSWorkbenchAdvisor()
|
||||
*/
|
||||
@Override
|
||||
protected WorkbenchAdvisor getWorkbenchAdvisor() {
|
||||
// Use custom workbench advisor, will add thin client preferences page
|
||||
protected AWIPSWorkbenchAdvisor createAWIPSWorkbenchAdvisor() {
|
||||
return new ThinClientWorkbenchAdvisor();
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,475 @@
|
|||
##
|
||||
# This software was developed and / or modified by Raytheon Company,
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# This software product contains export-restricted data whose
|
||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
# to non-U.S. persons whether in the United States or abroad requires
|
||||
# an export license or other authorization.
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
# ----------------------------------------------------------------------------
|
||||
# SVN: $Revision$ - $Date$
|
||||
# ----------------------------------------------------------------------------
|
||||
# This software is in the public domain, furnished "as is", without technical
|
||||
# support, and with no warranty, express or implied, as to its usefulness for
|
||||
# any purpose.
|
||||
#
|
||||
# serpISC - version 1.7
|
||||
#
|
||||
# Changes an existing grid to blend better into neighboring ISC grids.
|
||||
# Can be used as an initial or final step in coordination. Only your grids
|
||||
# are affected: nothing happens to the ISC grids. The ISC button must have
|
||||
# been clicked on at least once before using this tool.
|
||||
#
|
||||
# Every point on the outer perimeter of CWA (i.e, belonging to selected ISCs)
|
||||
# takes part in a serp adjustment of the existing grid. If any ISC grids are
|
||||
# missing or not selected on a CWA boundary, your own grid is used there instead.
|
||||
#
|
||||
# You can use this tool on one ISC at a time to see how each one would influence
|
||||
# your grid. To fit all ISC boundaries at once you must have all of them clicked
|
||||
# on. Running the tool sequentially on each ISC will retain previous results if
|
||||
# you keep the older ones turned on, but different sequences will yield slightly
|
||||
# different results.
|
||||
#
|
||||
# Make sure your grid does not have an artificial boundary near the CWA border.
|
||||
# Otherwise, it might already match your ISC neighbor there, so the tool won't
|
||||
# adjust anything and your artificial boundary will remain.
|
||||
#
|
||||
# You can include or exclude as many sample points within your CWA as you like, but
|
||||
# sample points close to an ISC border can create unrealistic gradients.
|
||||
#
|
||||
# You can match a border only partway if you want. Suppose you want to meet your
|
||||
# ISC neighbor half way. Then set the "percent of full match" to 50. After sending
|
||||
# your ISC grid, your neighbor will want to match FULL way (not half) to meet the
|
||||
# newly received grid. You can also use "percent of full match" to nudge your
|
||||
# grid to your neighbors' grids.
|
||||
#
|
||||
# If your grid's duration spans several shorter-duration ISC grids, the ISC
|
||||
# grids will be time-averaged first (except for PoP which always uses the
|
||||
# maximum value) and the fit will be inexact. Or, if the ISC grids themselves
|
||||
# don't match at a CWA boundary (something you can't do in your own grid), the
|
||||
# the tool will converge intermediate contours to the point of the mismatch,
|
||||
# and the fit will look artificial.
|
||||
#
|
||||
# For winds serp runs twice, once for u and once for v.
|
||||
#
|
||||
# This tool cannot be used with Wx grids.
|
||||
#
|
||||
# Authors: Les Colin - WFO Boise, ID, and Tim Barker - SOO Boise, ID
|
||||
#
|
||||
# 2003/06/21 - Revised "remoteness" calculation (to counteract observation-
|
||||
# clustering). New module is called getGoodRemoteness.
|
||||
# numpy-Python code: Barker. Algorithm: Colin.
|
||||
# 2003/06/22 - Analyzes winds in u and v components, rather than by speed
|
||||
# and direction.
|
||||
# 2003/06/23 - Finishes tool by copying ISC data outside CWA.
|
||||
# 2003/10/29 - Runs serp without considering sample points, then runs it
|
||||
# again only on the samples. ISC-copy feature has been removed.
|
||||
# 2004/05/30 - Uses improved serp analysis (see Barker). Can include or exclude
|
||||
# various ISC neighbors. Can include or exclude currently displayed
|
||||
# samples within your CWA. Samples in the ISC areas are ignored.
|
||||
# 2004/07/09 - Modified to ignore duplicate sample points (previously, they
|
||||
# would hang the tool). Also modified tool to allow partial match
|
||||
# so that CWA grid adjusts only partway toward ISC grid.
|
||||
# 2004/09/04 - Modified to work on an edit area, perhaps only half way across the
|
||||
# home CWA. The effect is a taper from a full (or partial) adjustment
|
||||
# at designated ISC borders to zero change inside the home CWA where
|
||||
# the edit area stops.
|
||||
# 2004/09/21 - Now works even if preceded by ISC_Copy (by moving the home CWA-border
|
||||
# inward one pixel and comparing to nearest ISC neighbor values).
|
||||
# Tool completes by running an equivalent ISC_Copy on the selected ISC
|
||||
# borders. Tool now also contains a thinning feature to speed up
|
||||
# execution. e.g., thinning by 2 runs the tool on alternate border
|
||||
# points, thinning by 3 runs the tool on every third border point, etc.
|
||||
# 2004/09/25 - Corrected bug in preceding version in which sample points could possibly
|
||||
# coincide with the revised home CWA-border points and hang the tool.
|
||||
# 2004/11/10 - Final ISC_Copy feature made optional.
|
||||
# 2004/11/17 - Corrected return statement at end of tool, and repaired code when
|
||||
# NOT adjusting for elevation.
|
||||
# 2008/07/31 - added int() for arguments to createTimeRange for OB8.3. /TB
|
||||
# 2012/07/13 - Version 1.7. AWIPS2 Port.
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
|
||||
ToolType = "numeric"
|
||||
WeatherElementEdited = "variableElement"
|
||||
ScreenList=["SCALAR","VECTOR"]
|
||||
|
||||
#
|
||||
#====================================================================
|
||||
# Part to modify for local configuration
|
||||
defaultCWA="STO"
|
||||
VariableList=[
|
||||
("Include these WFOs:",["MTR","EKA","HNX","REV","MFR"],"check",["MTR","EKA","HNX","REV","MFR"]),
|
||||
("Intentional mismatch (CWA minus WFO):","0","alphaNumeric"),
|
||||
("Currently displayed CWA sample points:","Use","radio",["Use","Don't use"]),
|
||||
("Adjust for terrain elevation?","Yes","radio",["Yes","No"]),
|
||||
("Elevation Factor",36,"numeric"),
|
||||
("Tool thinning-factor:",1,"scale",[1,10],1),
|
||||
("Percent of full match",100,"scale",[0,100],1),
|
||||
("Copy ISC data in afterward?","No","radio",["Yes","No"]),
|
||||
]
|
||||
|
||||
from numpy import *
|
||||
import ObjAnal
|
||||
import SmartScript
|
||||
import time
|
||||
from math import sin,cos,acos,pi
|
||||
|
||||
class Tool (SmartScript.SmartScript):
|
||||
def __init__(self, dbss):
|
||||
self._dbss=dbss
|
||||
SmartScript.SmartScript.__init__(self, dbss)
|
||||
def preProcessTool(self,varDict):
|
||||
self.OA = ObjAnal.ObjAnal(self._dbss)
|
||||
|
||||
def execute(self, variableElement, variableElement_GridInfo, editArea, varDict, Topo, WEname, GridTimeRange):
|
||||
|
||||
wxType = variableElement_GridInfo.getGridType().ordinal()
|
||||
defCWA=self.getEditArea(defaultCWA)
|
||||
defcwa=self.encodeEditArea(defCWA)
|
||||
nondefcwa=1-defcwa # i.e., toggle
|
||||
nondefCWA=self.decodeEditArea(nondefcwa)
|
||||
defea=self.taperGrid(nondefCWA,2)*2
|
||||
|
||||
# The above line defines the default CWA area as defea==0, the outer perimeter of the default CWA
|
||||
# as defea==1, and further outside as defea==2.
|
||||
|
||||
arbea=self.encodeEditArea(editArea)
|
||||
nonarbea=1-arbea
|
||||
nonarbEA=self.decodeEditArea(nonarbea)
|
||||
arbea=self.taperGrid(nonarbEA,2)*2
|
||||
|
||||
cwa=zeros(Topo.shape)
|
||||
ISC=varDict["Include these WFOs:"]
|
||||
samps=varDict["Currently displayed CWA sample points:"]
|
||||
thin=varDict["Tool thinning-factor:"]
|
||||
partial=varDict["Percent of full match"]*.01
|
||||
|
||||
for WFO in ISC:
|
||||
CWA=self.getEditArea(WFO)
|
||||
cwa=self.encodeEditArea(CWA)+cwa
|
||||
|
||||
alltrs=self._getAllHourlyTimeRanges(GridTimeRange)
|
||||
if ((WEname=="MaxT")or(WEname=="PoP")):
|
||||
sum=zeros(Topo.shape)-150.0
|
||||
elif (WEname=="MinT"):
|
||||
sum=zeros(Topo.shape)+150.0
|
||||
else:
|
||||
if (wxType==2):
|
||||
sum=[zeros(Topo.shape),zeros(Topo.shape)]
|
||||
else:
|
||||
sum=zeros(Topo.shape)
|
||||
cnt=zeros(Topo.shape)
|
||||
|
||||
for tr in alltrs:
|
||||
isc=self.getComposite(WEname,tr,0)
|
||||
if isc is None:
|
||||
|
||||
continue
|
||||
#
|
||||
# Add to sums, or min/max
|
||||
#
|
||||
if wxType==1: # SCALAR
|
||||
bits,iscgrid=isc
|
||||
if ((WEname=="MaxT")or(WEname=="PoP")):
|
||||
sum=where(bits,maximum(iscgrid,sum),sum)
|
||||
cnt=where(bits,1,cnt)
|
||||
elif (WEname=="MinT"):
|
||||
sum=where(bits,minimum(iscgrid,sum),sum)
|
||||
cnt=where(bits,1,cnt)
|
||||
else:
|
||||
sum=where(bits,sum+iscgrid,sum)
|
||||
cnt=where(bits,cnt+1,cnt)
|
||||
if wxType==2: # VECTOR
|
||||
bits,mag,dir=isc
|
||||
(u,v)=self.MagDirToUV(mag,dir)
|
||||
sum[0]=where(bits,sum[0]+u,sum[0])
|
||||
sum[1]=where(bits,sum[1]+v,sum[1])
|
||||
cnt=where(bits,cnt+1,cnt)
|
||||
#
|
||||
# now calculate average/max/min, etc.
|
||||
# (count is always 1 for max/min)
|
||||
#
|
||||
if ((wxType==1)or(wxType==2)):
|
||||
if (wxType==2):
|
||||
(mag,dir)=variableElement
|
||||
(u,v)=self.MagDirToUV(mag,dir)
|
||||
sum[0]=where(equal(cnt,0),u,sum[0])
|
||||
sum[1]=where(equal(cnt,0),v,sum[1])
|
||||
else:
|
||||
sum=where(equal(cnt,0),variableElement,sum)
|
||||
cnt=where(equal(cnt,0),1,cnt)
|
||||
new=sum/cnt
|
||||
if (wxType==2):
|
||||
(mag,dir)=self.UVToMagDir(new[0],new[1])
|
||||
newvec=(mag,dir)
|
||||
|
||||
self.elevadjust=0
|
||||
self.elevfactor=0.
|
||||
if varDict["Adjust for terrain elevation?"]=="Yes":
|
||||
self.elevadjust=1
|
||||
self.elevfactor=varDict["Elevation Factor"]
|
||||
if self.elevfactor<1:
|
||||
self.elevfactor=0.
|
||||
|
||||
self.xloclist=[]
|
||||
self.yloclist=[]
|
||||
self.hloclist=[]
|
||||
self.zlist=[]
|
||||
self.ulist=[]
|
||||
self.vlist=[]
|
||||
|
||||
for x in range(1,Topo.shape[1]-1):
|
||||
for y in range(1,Topo.shape[0]-1):
|
||||
if (x+y)%thin!=0:
|
||||
continue
|
||||
if (arbea[y,x]<2 and defea[y,x]==0):
|
||||
if (cwa[y,x+1]==1) or (cwa[y,x-1]==1) or (cwa[y+1,x]==1) or (cwa[y-1,x]==1):
|
||||
if self.elevadjust==1:
|
||||
self.hloclist.append(Topo[y,x])
|
||||
else:
|
||||
self.hloclist.append(0.)
|
||||
self.xloclist.append(x)
|
||||
self.yloclist.append(y)
|
||||
if wxType==1:
|
||||
chgval=0.
|
||||
n=0
|
||||
if cwa[y,x+1]==1:
|
||||
if self.elevadjust==0:
|
||||
chgval=chgval+(new[y,x+1]-variableElement[y,x])
|
||||
elif self.elevadjust==1:
|
||||
elevdif=abs(Topo[y,x]-Topo[y,x+1])
|
||||
if elevdif<5000.:
|
||||
# ISC-CWA neighbors more than 5000 ft apart in elevation are too
|
||||
# dissimilar to compare.
|
||||
chgval=chgval+(new[y,x+1]-variableElement[y,x])*(1.0-elevdif/5000.)
|
||||
n=n+1
|
||||
if cwa[y,x-1]==1:
|
||||
if self.elevadjust==0:
|
||||
chgval=chgval+(new[y,x-1]-variableElement[y,x])
|
||||
elif self.elevadjust==1:
|
||||
elevdif=abs(Topo[y,x]-Topo[y,x-1])
|
||||
if elevdif<5000.:
|
||||
chgval=chgval+(new[y,x-1]-variableElement[y,x])*(1.0-elevdif/5000.)
|
||||
n=n+1
|
||||
if cwa[y+1,x]==1:
|
||||
if self.elevadjust==0:
|
||||
chgval=chgval+(new[y+1,x]-variableElement[y,x])
|
||||
elif self.elevadjust==1:
|
||||
elevdif=abs(Topo[y,x]-Topo[y+1,x])
|
||||
if elevdif<5000.:
|
||||
chgval=chgval+(new[y+1,x]-variableElement[y,x])*(1.0-elevdif/5000.)
|
||||
n=n+1
|
||||
if cwa[y-1,x]==1:
|
||||
if self.elevadjust==0:
|
||||
chgval=chgval+(new[y-1,x]-variableElement[y,x])
|
||||
elif self.elevadjust==1:
|
||||
elevdif=abs(Topo[y,x]-Topo[y-1,x])
|
||||
if elevdif<5000.:
|
||||
chgval=chgval+(new[y-1,x]-variableElement[y,x])*(1.0-elevdif/5000.)
|
||||
n=n+1
|
||||
self.zlist.append((chgval/n)*partial)
|
||||
|
||||
elif wxType==2:
|
||||
(magcwa,dircwa)=variableElement
|
||||
(ucwa,vcwa)=self.MagDirToUV(magcwa,dircwa)
|
||||
(uisc,visc)=self.MagDirToUV(mag,dir)
|
||||
chgu=0.
|
||||
chgv=0.
|
||||
n=0
|
||||
if cwa[y,x+1]==1:
|
||||
if self.elevadjust==0:
|
||||
chgu=chgu+(uisc[y,x+1]-ucwa[y,x])
|
||||
chgv=chgv+(visc[y,x+1]-vcwa[y,x])
|
||||
elif self.elevadjust==1:
|
||||
elevdif=abs(Topo[y,x]-Topo[y,x+1])
|
||||
if elevdif<5000.:
|
||||
chgu=chgu+(uisc[y,x+1]-ucwa[y,x])*(1.0-elevdif/5000.)
|
||||
chgv=chgv+(visc[y,x+1]-vcwa[y,x])*(1.0-elevdif/5000.)
|
||||
n=n+1
|
||||
if cwa[y,x-1]==1:
|
||||
if self.elevadjust==0:
|
||||
chgu=chgu+(uisc[y,x-1]-ucwa[y,x])
|
||||
chgv=chgv+(visc[y,x-1]-vcwa[y,x])
|
||||
elif self.elevadjust==1:
|
||||
elevdif=abs(Topo[y,x]-Topo[y,x-1])
|
||||
if elevdif<5000.:
|
||||
chgu=chgu+(uisc[y,x-1]-ucwa[y,x])*(1.0-elevdif/5000.)
|
||||
chgv=chgv+(visc[y,x-1]-vcwa[y,x])*(1.0-elevdif/5000.)
|
||||
n=n+1
|
||||
if cwa[y+1,x]==1:
|
||||
if self.elevadjust==0:
|
||||
chgu=chgu+(uisc[y+1,x]-ucwa[y,x])
|
||||
chgv=chgv+(visc[y+1,x]-vcwa[y,x])
|
||||
elif self.elevadjust==1:
|
||||
elevdif=abs(Topo[y,x]-Topo[y+1,x])
|
||||
if elevdif<5000.:
|
||||
chgu=chgu+(uisc[y+1,x]-ucwa[y,x])*(1.0-elevdif/5000.)
|
||||
chgv=chgv+(visc[y+1,x]-vcwa[y,x])*(1.0-elevdif/5000.)
|
||||
n=n+1
|
||||
if cwa[y-1,x]==1:
|
||||
if self.elevadjust==0:
|
||||
chgu=chgu+(uisc[y-1,x]-ucwa[y,x])
|
||||
chgv=chgv+(visc[y-1,x]-vcwa[y,x])
|
||||
elif self.elevadjust==1:
|
||||
elevdif=abs(Topo[y,x]-Topo[y-1,x])
|
||||
if elevdif<5000.:
|
||||
chgu=chgu+(uisc[y-1,x]-ucwa[y,x])*(1.0-elevdif/5000.)
|
||||
chgv=chgv+(visc[y-1,x]-vcwa[y,x])*(1.0-elevdif/5000.)
|
||||
n=n+1
|
||||
self.ulist.append((chgu/n)*partial)
|
||||
self.vlist.append((chgv/n)*partial)
|
||||
if arbea[y,x]==1 and defea[y,x]==0:
|
||||
self.pointok=0
|
||||
for nn in range(len(self.xloclist)):
|
||||
if (y==self.yloclist[nn]) and (x==self.xloclist[nn]):
|
||||
self.pointok=1
|
||||
# In the above line an edit area IS on the screen and here we're looking for boundary points
|
||||
# inside the home CWA that are more than one pixel from the border. We want to hold these
|
||||
# points steady (i.e., zero change).
|
||||
if self.pointok==1: # we already have this point, don't use it twice.
|
||||
continue
|
||||
self.xloclist.append(x)
|
||||
self.yloclist.append(y)
|
||||
if self.elevadjust==1:
|
||||
self.hloclist.append(Topo[y,x])
|
||||
else:
|
||||
self.hloclist.append(0.)
|
||||
if wxType==1:
|
||||
self.zlist.append(0.)
|
||||
if wxType==2:
|
||||
self.ulist.append(0.)
|
||||
self.vlist.append(0.)
|
||||
|
||||
if samps=="Use":
|
||||
self.samplePoints = self.getSamplePoints(None)
|
||||
for sample in self.samplePoints:
|
||||
(x,y)=sample
|
||||
self.sampleok=0
|
||||
for count in range(len(self.xloclist)):
|
||||
if ((x==self.xloclist[count]) and (y==self.yloclist[count])):
|
||||
self.sampleok=1
|
||||
# self.sampleok becomes 1 for a duplicate entry, so bypass the duplicate.
|
||||
if self.sampleok==1:
|
||||
continue
|
||||
if x<0 or x>Topo.shape[1]-1:
|
||||
continue
|
||||
if y<0 or y>Topo.shape[0]-1:
|
||||
continue
|
||||
if defea[y,x]!=0:
|
||||
continue
|
||||
|
||||
if self.elevadjust==1:
|
||||
self.hloclist.append(Topo[y,x])
|
||||
else:
|
||||
self.hloclist.append(0.)
|
||||
self.xloclist.append(x)
|
||||
self.yloclist.append(y)
|
||||
if wxType==1:
|
||||
self.zlist.append(0.)
|
||||
if wxType==2:
|
||||
self.ulist.append(0.)
|
||||
self.vlist.append(0.)
|
||||
#
|
||||
# Don't proceed if no points
|
||||
#
|
||||
if len(self.xloclist)==0:
|
||||
self.statusBarMsg("No data available to serp to...","R")
|
||||
return variableElement
|
||||
else:
|
||||
print " the number of points being used:",len(self.xloclist)
|
||||
#
|
||||
#
|
||||
#
|
||||
if wxType==1: # scalar
|
||||
zval=self.OA.Serp(self.zlist,self.xloclist,self.yloclist,self.hloclist,self.elevfactor,Topo)
|
||||
# zval is the new scalar-change grid.
|
||||
if varDict["Copy ISC data in afterward?"]=="Yes":
|
||||
znew=where(logical_or(equal(defea,0),equal(cwa,0)),variableElement+zval,new)
|
||||
else:
|
||||
znew=variableElement+zval
|
||||
|
||||
if wxType==2: # vector
|
||||
zval=self.OA.Serp(self.ulist,self.xloclist,self.yloclist,self.hloclist,self.elevfactor,Topo)
|
||||
# zval is the new u-change grid.
|
||||
if varDict["Copy ISC data in afterward?"]=="Yes":
|
||||
newu=where(logical_or(equal(defea,0),equal(cwa,0)),ucwa+zval,new[0])
|
||||
else:
|
||||
newu=ucwa+zval
|
||||
zval=self.OA.Serp(self.vlist,self.xloclist,self.yloclist,self.hloclist,self.elevfactor,Topo)
|
||||
# this zval is the new v-change grid.
|
||||
if varDict["Copy ISC data in afterward?"]=="Yes":
|
||||
newv=where(logical_or(equal(defea,0),equal(cwa,0)),vcwa+zval,new[1])
|
||||
else:
|
||||
newv=vcwa+zval
|
||||
(newspd,newdir)=self.UVToMagDir(newu,newv)
|
||||
# newspd=where(equal(defea+cwa,0),newspd,mag)
|
||||
# newdir=where(equal(defea+cwa,0),newdir,dir)
|
||||
|
||||
znew=(newspd,newdir)
|
||||
|
||||
absmax=variableElement_GridInfo.getMaxValue()
|
||||
absmin=variableElement_GridInfo.getMinValue()
|
||||
|
||||
if wxType==1:
|
||||
return clip(znew,absmin,absmax)
|
||||
else:
|
||||
return znew
|
||||
|
||||
#===================================================================
|
||||
# _getAllHourlyTimeRanges - gets a list of all 1-hour time ranges
|
||||
# within the specified time range
|
||||
#
|
||||
def _getAllHourlyTimeRanges(self,tr):
|
||||
#
|
||||
# get integer time of UTC midnight today
|
||||
#
|
||||
secsinhour=60*60
|
||||
lt=time.gmtime()
|
||||
mid=time.mktime((lt[0],lt[1],lt[2],0,0,0,lt[6],lt[7],lt[8]))
|
||||
#
|
||||
# get integer time of input timerange start
|
||||
#
|
||||
start=tr.startTime()
|
||||
year=start.year
|
||||
month=start.month
|
||||
day=start.day
|
||||
hour=start.hour
|
||||
trs=time.mktime((year,month,day,hour,0,0,lt[6],lt[7],lt[8]))
|
||||
#
|
||||
# get integer time of input timerange end
|
||||
#
|
||||
end=tr.endTime()
|
||||
year=end.year
|
||||
month=end.month
|
||||
day=end.day
|
||||
hour=end.hour
|
||||
tre=time.mktime((year,month,day,hour,0,0,lt[6],lt[7],lt[8]))
|
||||
#
|
||||
# The difference between start/end determines number of hours
|
||||
#
|
||||
numhours=int((tre-trs)/secsinhour)
|
||||
#
|
||||
# Difference between mid/start determines starting offset
|
||||
#
|
||||
offset=int((trs-mid)/secsinhour)
|
||||
#
|
||||
# create each hourly time range from offset
|
||||
#
|
||||
alltrs=[]
|
||||
for hour in range(0,numhours):
|
||||
newtr=self.createTimeRange(int(offset+hour),int(offset+hour+1),"Zulu")
|
||||
alltrs.append(newtr)
|
||||
|
||||
return alltrs
|
|
@ -33,6 +33,7 @@
|
|||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 02/12/2014 #2591 randerso Added retry when loading combinations fails
|
||||
# 10/20/2014 #3685 randerso Changed default of lowerCase to True if not specified
|
||||
|
||||
import string, getopt, sys, time, os, types, math
|
||||
import ModuleAccessor
|
||||
|
@ -191,7 +192,7 @@ class TextFormatter:
|
|||
if language is not None:
|
||||
text = product.translateForecast(text, language)
|
||||
# Convert to Upper Case
|
||||
if not forecastDef.get('lowerCase', 0):
|
||||
if not forecastDef.get('lowerCase', True):
|
||||
text = text.upper()
|
||||
else:
|
||||
text = "Text Product Type Invalid " + \
|
||||
|
|
|
@ -27,6 +27,12 @@
|
|||
#
|
||||
# Author: hansen
|
||||
# ----------------------------------------------------------------------------
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
#
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 10/20/2014 #3685 randerso Changes to support mixed case products
|
||||
|
||||
import EditAreaUtils
|
||||
import StringUtils
|
||||
|
@ -49,7 +55,7 @@ class Header(EditAreaUtils.EditAreaUtils, StringUtils.StringUtils):
|
|||
cityDescriptor ="Including the cities of",
|
||||
areaList=None, includeCities=1, includeZoneNames=1,
|
||||
includeIssueTime=1, includeCodes=1, includeVTECString=1,
|
||||
hVTECString=None, accurateCities=False):
|
||||
hVTECString=None, accurateCities=False, upperCase=True):
|
||||
# Make a UGC area header for the given areaLabel
|
||||
# Determine list of areas (there could be more than one if we are using a combination)
|
||||
|
||||
|
@ -227,7 +233,17 @@ class Header(EditAreaUtils.EditAreaUtils, StringUtils.StringUtils):
|
|||
if cityString != "":
|
||||
numCities = len(string.split(cityString, "...")[1:])
|
||||
if numCities == 1:
|
||||
cityDescriptor = string.replace(cityDescriptor, "CITIES", "CITY")
|
||||
def preserveCase(matchobj):
|
||||
orig = matchobj.group(0)
|
||||
repl = 'city'
|
||||
retv = ''
|
||||
for i in range(len(repl)):
|
||||
c = repl[i]
|
||||
if orig[i].isupper():
|
||||
c = c.upper()
|
||||
retv = retv + c
|
||||
return retv
|
||||
cityDescriptor = re.sub("cities", preserveCase, cityDescriptor, flags=re.IGNORECASE)
|
||||
cityString = self.endline(cityDescriptor + cityString,
|
||||
linelength=self._lineLength, breakStr=["..."])
|
||||
issueTimeStr = issueTimeStr + "\n\n"
|
||||
|
@ -249,6 +265,8 @@ class Header(EditAreaUtils.EditAreaUtils, StringUtils.StringUtils):
|
|||
if includeVTECString == 0:
|
||||
VTECString = ""
|
||||
header = codeString + VTECString + nameString + cityString + issueTimeStr
|
||||
if upperCase:
|
||||
header = header.upper()
|
||||
return header
|
||||
|
||||
# Make accurate city list based on the grids
|
||||
|
@ -569,8 +587,8 @@ class Header(EditAreaUtils.EditAreaUtils, StringUtils.StringUtils):
|
|||
if entry.has_key("fullStateName"):
|
||||
state = entry["fullStateName"]
|
||||
#Special District of Columbia case
|
||||
if state == "DISTRICT OF COLUMBIA":
|
||||
state = "THE DISTRICT OF COLUMBIA"
|
||||
if state.upper() == "DISTRICT OF COLUMBIA":
|
||||
state = "The District of Columbia"
|
||||
# Get part-of-state information
|
||||
partOfState = ""
|
||||
if entry.has_key("partOfState"):
|
||||
|
@ -583,15 +601,15 @@ class Header(EditAreaUtils.EditAreaUtils, StringUtils.StringUtils):
|
|||
if entry.has_key("ugcCode"):
|
||||
codeType = entry["ugcCode"][2]
|
||||
if codeType == "Z":
|
||||
nameType = "ZONE"
|
||||
nameType = "zone"
|
||||
elif codeType == "C":
|
||||
indCty=entry.get("independentCity", 0)
|
||||
if indCty == 1:
|
||||
nameType = "INDEPENDENT CITY"
|
||||
elif state == "LOUISIANA":
|
||||
nameType = "PARISH"
|
||||
nameType = "independent city"
|
||||
elif state == "Louisiana":
|
||||
nameType = "parish"
|
||||
else:
|
||||
nameType = "COUNTY"
|
||||
nameType = "county"
|
||||
else:
|
||||
codeType == "?"
|
||||
value = (state, partOfState)
|
||||
|
|
|
@ -95,6 +95,7 @@ import com.raytheon.uf.common.activetable.VTECChange;
|
|||
import com.raytheon.uf.common.activetable.VTECTableChangeNotification;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.textproduct.DraftProduct;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.textproduct.ProductDefinition;
|
||||
import com.raytheon.uf.common.dataplugin.text.db.MixedCaseProductSupport;
|
||||
import com.raytheon.uf.common.jms.notification.INotificationObserver;
|
||||
import com.raytheon.uf.common.jms.notification.NotificationException;
|
||||
import com.raytheon.uf.common.jms.notification.NotificationMessage;
|
||||
|
@ -158,6 +159,7 @@ import com.raytheon.viz.ui.dialogs.ICloseCallback;
|
|||
* 02/05/2014 17022 ryu Modified loadDraft() to fix merging of WMO heading and AWIPS ID.
|
||||
* 03/25/2014 #2884 randerso Added xxxid to check for disabling editor
|
||||
* 05/12/2014 16195 zhao Modified widgetSelected() for "Auto Wrap" option widget
|
||||
* 10/20/2014 #3685 randerso Made conversion to upper case conditional on product id
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -480,7 +482,7 @@ public class ProductEditorComp extends Composite implements
|
|||
break;
|
||||
case SWT.Show:
|
||||
if ((!dead)
|
||||
&& (getProductText() != null || !getProductText()
|
||||
&& ((getProductText() != null) || !getProductText()
|
||||
.isEmpty())) {
|
||||
timeUpdater.schedule();
|
||||
}
|
||||
|
@ -707,7 +709,7 @@ public class ProductEditorComp extends Composite implements
|
|||
Rectangle trim = p.computeTrim(0, 0, 0, 0);
|
||||
Point dpi = p.getDPI();
|
||||
int leftMargin = dpi.x + trim.x;
|
||||
int topMargin = dpi.y / 2 + trim.y;
|
||||
int topMargin = (dpi.y / 2) + trim.y;
|
||||
GC gc = new GC(p);
|
||||
Font font = gc.getFont();
|
||||
String printText = textComp.getProductText();
|
||||
|
@ -866,8 +868,8 @@ public class ProductEditorComp extends Composite implements
|
|||
autoWrapMI.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
wrapMode = !wrapMode;
|
||||
textComp.setAutoWrapMode(wrapMode);
|
||||
wrapMode = !wrapMode;
|
||||
textComp.setAutoWrapMode(wrapMode);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -1159,7 +1161,9 @@ public class ProductEditorComp extends Composite implements
|
|||
textComp.getTextEditorST().setText(
|
||||
textComp.getTextEditorST().getText() + "\n");
|
||||
}
|
||||
textComp.upper();
|
||||
if (!MixedCaseProductSupport.isMixedCase(getNNNid())) {
|
||||
textComp.upper();
|
||||
}
|
||||
textComp.endUpdate();
|
||||
|
||||
if (!frameCheck(false)) {
|
||||
|
@ -1292,7 +1296,7 @@ public class ProductEditorComp extends Composite implements
|
|||
"Error sending active table request to http server ", e);
|
||||
}
|
||||
|
||||
if (records == null || records.isEmpty()) {
|
||||
if ((records == null) || records.isEmpty()) {
|
||||
activeVtecRecords = null;
|
||||
} else {
|
||||
if (pil != null) {
|
||||
|
@ -1391,7 +1395,7 @@ public class ProductEditorComp extends Composite implements
|
|||
activeRecs = getMatchingActiveVTEC(zones, oid, phen, sig,
|
||||
etn);
|
||||
String eventStr = "." + phen + "." + sig + "." + etn;
|
||||
if (activeRecs == null || activeRecs.isEmpty()) {
|
||||
if ((activeRecs == null) || activeRecs.isEmpty()) {
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
"No active records found for " + vtec);
|
||||
} else {
|
||||
|
@ -1406,7 +1410,7 @@ public class ProductEditorComp extends Composite implements
|
|||
|
||||
// segment invalid due to the event going into
|
||||
// effect in part of the segment area
|
||||
if (started > 0 && started < activeRecs.size()) {
|
||||
if ((started > 0) && (started < activeRecs.size())) {
|
||||
final String msg = "Event "
|
||||
+ eventStr
|
||||
+ " has gone into effect in part"
|
||||
|
@ -1508,8 +1512,8 @@ public class ProductEditorComp extends Composite implements
|
|||
}
|
||||
|
||||
// Check start and ending time for end later than start
|
||||
if (vtecStart != null && vtecEnd != null
|
||||
&& vtecStart.getTime() >= vtecEnd.getTime()) {
|
||||
if ((vtecStart != null) && (vtecEnd != null)
|
||||
&& (vtecStart.getTime() >= vtecEnd.getTime())) {
|
||||
setTabColorFunc(productStateEnum.New);
|
||||
String msg = "VTEC ending time is before "
|
||||
+ "starting time. Product is invalid and must"
|
||||
|
@ -1520,13 +1524,13 @@ public class ProductEditorComp extends Composite implements
|
|||
// Give 30 minutes of slack to a couple of action codes
|
||||
// check the ending time and transmission time
|
||||
if ((action.equals("EXP") || action.equals("CAN"))
|
||||
&& vtecEnd != null) {
|
||||
vtecEnd.setTime(vtecEnd.getTime() + 30
|
||||
* TimeUtil.MILLIS_PER_MINUTE);
|
||||
&& (vtecEnd != null)) {
|
||||
vtecEnd.setTime(vtecEnd.getTime()
|
||||
+ (30 * TimeUtil.MILLIS_PER_MINUTE));
|
||||
}
|
||||
|
||||
if (vtecEnd != null
|
||||
&& vtecEnd.getTime() <= transmissionTime.getTime()) {
|
||||
if ((vtecEnd != null)
|
||||
&& (vtecEnd.getTime() <= transmissionTime.getTime())) {
|
||||
setTabColorFunc(productStateEnum.New);
|
||||
String msg = "VTEC ends before current time."
|
||||
+ " Product is invalid and must be regenerated.";
|
||||
|
@ -1596,7 +1600,7 @@ public class ProductEditorComp extends Composite implements
|
|||
|
||||
// time contains, if time range (tr) contains time (t), return 1 def
|
||||
public boolean contains(Date t) {
|
||||
return t.getTime() >= startTime.getTime() && t.before(endTime);
|
||||
return (t.getTime() >= startTime.getTime()) && t.before(endTime);
|
||||
}
|
||||
|
||||
public Date getStartTime() {
|
||||
|
@ -1650,7 +1654,7 @@ public class ProductEditorComp extends Composite implements
|
|||
zones = decodeUGCs(segData);
|
||||
vtecs = getVTEClines(segData);
|
||||
newVtecs = fixVTEC(zones, vtecs, transmissionTime);
|
||||
if (newVtecs != null && !newVtecs.isEmpty()) {
|
||||
if ((newVtecs != null) && !newVtecs.isEmpty()) {
|
||||
textComp.replaceText(tipVtec, newVtecs);
|
||||
}
|
||||
} catch (VizException e) {
|
||||
|
@ -1761,7 +1765,9 @@ public class ProductEditorComp extends Composite implements
|
|||
|
||||
textComp.startUpdate();
|
||||
try {
|
||||
textComp.upper();
|
||||
if (!MixedCaseProductSupport.isMixedCase(getNNNid())) {
|
||||
textComp.upper();
|
||||
}
|
||||
status1 = frameCheck(true);
|
||||
boolean status2 = changeTimes();
|
||||
if (status1 && status2) {
|
||||
|
@ -1935,7 +1941,8 @@ public class ProductEditorComp extends Composite implements
|
|||
int sel = hoursSpnr.getSelection();
|
||||
int hours = sel / 100;
|
||||
int minuteInc = (sel % 100) / 25;
|
||||
int purgeOffset = hours * TimeUtil.MINUTES_PER_HOUR + minuteInc * 15; // minutes
|
||||
int purgeOffset = (hours * TimeUtil.MINUTES_PER_HOUR)
|
||||
+ (minuteInc * 15); // minutes
|
||||
|
||||
Date now = SimulatedTime.getSystemTime().getTime();
|
||||
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
|
||||
|
@ -1943,7 +1950,7 @@ public class ProductEditorComp extends Composite implements
|
|||
cal.add(Calendar.MINUTE, purgeOffset);
|
||||
int min = cal.get(Calendar.MINUTE);
|
||||
if ((min % 15) >= 1) {
|
||||
cal.set(Calendar.MINUTE, (min / 15 + 1) * 15);
|
||||
cal.set(Calendar.MINUTE, ((min / 15) + 1) * 15);
|
||||
cal.set(Calendar.SECOND, 0);
|
||||
}
|
||||
this.expireDate = cal.getTime();
|
||||
|
@ -2130,7 +2137,7 @@ public class ProductEditorComp extends Composite implements
|
|||
long delta = expireTimeSec % roundSec;
|
||||
long baseTime = (expireTimeSec / roundSec) * roundSec
|
||||
* TimeUtil.MILLIS_PER_SECOND;
|
||||
if (delta / TimeUtil.SECONDS_PER_MINUTE >= 1) {
|
||||
if ((delta / TimeUtil.SECONDS_PER_MINUTE) >= 1) {
|
||||
expireTime.setTime(baseTime
|
||||
+ (roundSec * TimeUtil.MILLIS_PER_SECOND));
|
||||
} else { // within 1 minute, don't add next increment
|
||||
|
@ -2288,7 +2295,8 @@ public class ProductEditorComp extends Composite implements
|
|||
} catch (IOException e) {
|
||||
MessageBox mb = new MessageBox(parent.getShell(), SWT.OK
|
||||
| SWT.ICON_WARNING);
|
||||
mb.setText("Formatter AutoWrite failed: " + this.pil);
|
||||
mb.setText("Error");
|
||||
mb.setMessage("Formatter AutoWrite failed: " + this.pil);
|
||||
mb.open();
|
||||
}
|
||||
}
|
||||
|
@ -2422,7 +2430,7 @@ public class ProductEditorComp extends Composite implements
|
|||
|
||||
private void displayCallToActionsDialog(int callToActionType) {
|
||||
// Allow only one of the 3 types of dialogs to be displayed.
|
||||
if (ctaDialog != null && ctaDialog.getShell() != null
|
||||
if ((ctaDialog != null) && (ctaDialog.getShell() != null)
|
||||
&& !ctaDialog.isDisposed()) {
|
||||
ctaDialog.bringToTop();
|
||||
return;
|
||||
|
@ -2673,6 +2681,10 @@ public class ProductEditorComp extends Composite implements
|
|||
return productId;
|
||||
}
|
||||
|
||||
public String getNNNid() {
|
||||
return textdbPil.substring(3, 6);
|
||||
}
|
||||
|
||||
public String getProductName() {
|
||||
return productName;
|
||||
}
|
||||
|
@ -2901,24 +2913,24 @@ public class ProductEditorComp extends Composite implements
|
|||
|
||||
// Word-wrap the whole selection.
|
||||
int curLine = styledText.getLineAtOffset(selectionRange.x);
|
||||
int lastSelIdx = selectionRange.x + selectionRange.y - 1;
|
||||
int lastSelIdx = (selectionRange.x + selectionRange.y) - 1;
|
||||
int lastLine = styledText.getLineAtOffset(lastSelIdx);
|
||||
int[] indices = null;
|
||||
while (curLine <= lastLine && curLine < styledText.getLineCount()) {
|
||||
while ((curLine <= lastLine) && (curLine < styledText.getLineCount())) {
|
||||
int lineOff = styledText.getOffsetAtLine(curLine);
|
||||
// word wrap a block, and find out how the text length changed.
|
||||
indices = textComp.wordWrap(styledText, lineOff, wrapColumn);
|
||||
int firstIdx = indices[0];
|
||||
int lastIdx = indices[1];
|
||||
int newLen = indices[2];
|
||||
int oldLen = 1 + lastIdx - firstIdx;
|
||||
int oldLen = (1 + lastIdx) - firstIdx;
|
||||
int diff = newLen - oldLen;
|
||||
// adjust our endpoint for the change in length
|
||||
lastSelIdx += diff;
|
||||
lastLine = styledText.getLineAtOffset(lastSelIdx);
|
||||
// newLen doesn't include \n, so it can be 0. Don't allow
|
||||
// firstIdx+newLen-1 to be < firstIdx, or loop becomes infinite.
|
||||
int lastWrapIdx = Math.max(firstIdx, firstIdx + newLen - 1);
|
||||
int lastWrapIdx = Math.max(firstIdx, (firstIdx + newLen) - 1);
|
||||
// move down to the next unwrapped line
|
||||
curLine = styledText.getLineAtOffset(lastWrapIdx) + 1;
|
||||
}
|
||||
|
@ -2979,7 +2991,7 @@ public class ProductEditorComp extends Composite implements
|
|||
String str = null;
|
||||
|
||||
Object obj = productDefinition.get(key);
|
||||
if (obj != null && obj instanceof Collection) {
|
||||
if ((obj != null) && (obj instanceof Collection)) {
|
||||
Collection<?> collection = (Collection<?>) obj;
|
||||
str = (String) (collection.toArray())[0];
|
||||
} else {
|
||||
|
|
|
@ -22,8 +22,6 @@ package com.raytheon.viz.grid.rsc.general;
|
|||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
|
@ -31,6 +29,7 @@ import com.raytheon.uf.common.status.UFStatus;
|
|||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||
import com.raytheon.uf.common.time.DataTime;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.core.jobs.JobPool;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -48,6 +47,8 @@ import com.raytheon.uf.viz.core.exception.VizException;
|
|||
* Jun 24, 2013 2140 randerso Moved safe name code into AbstractVizResource
|
||||
* Oct 07, 2014 3668 bclement uses executor instead of eclipse job
|
||||
* renamed to GridDataRequestRunner
|
||||
* Oct 23, 2014 3668 bsteffen replace executor with job pool so user
|
||||
* sees progress.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -59,8 +60,8 @@ class GridDataRequestRunner implements Runnable {
|
|||
private static final int POOL_SIZE = Integer.getInteger(
|
||||
"grid.request.pool.size", 10);
|
||||
|
||||
private static final Executor executor = Executors
|
||||
.newFixedThreadPool(POOL_SIZE);
|
||||
private static final JobPool jobPool = new JobPool("Requesting Grid Data",
|
||||
POOL_SIZE);
|
||||
|
||||
private static final transient IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(GridDataRequestRunner.class);
|
||||
|
@ -95,7 +96,15 @@ class GridDataRequestRunner implements Runnable {
|
|||
|
||||
}
|
||||
|
||||
private volatile boolean cancelled = false;
|
||||
/**
|
||||
* This class is not designed to handle multiple requests concurrently. To
|
||||
* ensure this doesn't happen we track when it is scheduled and do not
|
||||
* schedule again. It would have been simpler to synchronize the run method
|
||||
* but that ties up threads from the pool that other resources should use.
|
||||
* So we don't leave dangling requests this should only be modified while
|
||||
* synchronized on requests.
|
||||
*/
|
||||
private volatile boolean scheduled = false;
|
||||
|
||||
private AbstractGridResource<?> resource;
|
||||
|
||||
|
@ -111,8 +120,10 @@ class GridDataRequestRunner implements Runnable {
|
|||
try {
|
||||
request.gridData = resource.getData(request.time, request.pdos);
|
||||
if (request.gridData == null) {
|
||||
// need to remove unfulfillable requests to avoid infinite
|
||||
// loop.
|
||||
/*
|
||||
* need to remove unfulfillable requests to avoid infinite
|
||||
* loop.
|
||||
*/
|
||||
synchronized (requests) {
|
||||
requests.remove(request);
|
||||
}
|
||||
|
@ -123,9 +134,6 @@ class GridDataRequestRunner implements Runnable {
|
|||
request.exception = e;
|
||||
resource.issueRefresh();
|
||||
}
|
||||
if (cancelled) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -141,6 +149,7 @@ class GridDataRequestRunner implements Runnable {
|
|||
return request;
|
||||
}
|
||||
}
|
||||
scheduled = false;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -172,21 +181,14 @@ class GridDataRequestRunner implements Runnable {
|
|||
if ((request.exception != null) && !request.exceptionHandled) {
|
||||
handleExceptions();
|
||||
}
|
||||
}
|
||||
if (request.shouldRequest()) {
|
||||
this.schedule();
|
||||
if (!scheduled && request.shouldRequest()) {
|
||||
scheduled = true;
|
||||
jobPool.schedule(this);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* send current requests
|
||||
*/
|
||||
private void schedule() {
|
||||
cancelled = false;
|
||||
executor.execute(this);
|
||||
}
|
||||
|
||||
private void handleExceptions() {
|
||||
|
||||
List<GridDataRequest> failedRequests = new ArrayList<GridDataRequest>(
|
||||
|
@ -266,15 +268,10 @@ class GridDataRequestRunner implements Runnable {
|
|||
public void stopAndClear() {
|
||||
synchronized (requests) {
|
||||
requests.clear();
|
||||
if (jobPool.cancel(this)) {
|
||||
scheduled = false;
|
||||
}
|
||||
}
|
||||
this.cancel();
|
||||
}
|
||||
|
||||
/**
|
||||
* cancel current request
|
||||
*/
|
||||
private void cancel() {
|
||||
cancelled = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -21,8 +21,11 @@ package com.raytheon.viz.satellite.rsc;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.measure.Measure;
|
||||
|
||||
|
@ -50,10 +53,16 @@ import com.raytheon.uf.viz.core.rsc.LoadProperties;
|
|||
import com.raytheon.uf.viz.core.rsc.ResourceList;
|
||||
import com.raytheon.uf.viz.core.rsc.capabilities.ColorMapCapability;
|
||||
import com.raytheon.uf.viz.core.rsc.capabilities.ImagingCapability;
|
||||
import com.raytheon.uf.viz.core.rsc.interrogation.Interrogatable;
|
||||
import com.raytheon.uf.viz.core.rsc.interrogation.InterrogateMap;
|
||||
import com.raytheon.uf.viz.core.rsc.interrogation.InterrogationKey;
|
||||
import com.raytheon.uf.viz.core.rsc.interrogation.Interrogator;
|
||||
import com.vividsolutions.jts.geom.Coordinate;
|
||||
|
||||
/**
|
||||
* TODO Add Description
|
||||
* Displays multiple satellite resources in a single resource. Uses graphics
|
||||
* mosaicing to combine images so that alhpa blending correctly treats multiple
|
||||
* images as a single layer when applying the alpha.
|
||||
*
|
||||
* <pre>
|
||||
* SOFTWARE HISTORY
|
||||
|
@ -67,6 +76,7 @@ import com.vividsolutions.jts.geom.Coordinate;
|
|||
* values and returns NaN now
|
||||
* Nov 18, 2013 2544 bsteffen Override recycleInternal
|
||||
* Nov 20, 2013 2492 bsteffen Update inspect to use Measure objects
|
||||
* Oct 27, 2014 3681 bsteffen Implement Interrogatable
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -76,7 +86,7 @@ import com.vividsolutions.jts.geom.Coordinate;
|
|||
|
||||
public class SatBlendedResource extends
|
||||
AbstractVizResource<SatBlendedResourceData, MapDescriptor> implements
|
||||
IResourceGroup, IRefreshListener, IResourceDataChanged {
|
||||
IResourceGroup, IRefreshListener, IResourceDataChanged, Interrogatable {
|
||||
|
||||
private IMosaicImage mosaicImage = null;
|
||||
|
||||
|
@ -323,4 +333,40 @@ public class SatBlendedResource extends
|
|||
public void resourceChanged(ChangeType type, Object object) {
|
||||
refresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<InterrogationKey<?>> getInterrogationKeys() {
|
||||
Set<InterrogationKey<?>> set = new HashSet<>();
|
||||
List<Interrogatable> resourceList = getResourceList()
|
||||
.getResourcesByTypeAsType(Interrogatable.class);
|
||||
for (Interrogatable resource : resourceList) {
|
||||
set.addAll(resource.getInterrogationKeys());
|
||||
}
|
||||
return set;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InterrogateMap interrogate(ReferencedCoordinate coordinate,
|
||||
DataTime time, InterrogationKey<?>... keys) {
|
||||
if (!Arrays.asList(keys).contains(Interrogator.VALUE)) {
|
||||
keys = Arrays.copyOf(keys, keys.length + 1);
|
||||
keys[keys.length - 1] = Interrogator.VALUE;
|
||||
}
|
||||
List<Interrogatable> list = getResourceList().getResourcesByTypeAsType(
|
||||
Interrogatable.class);
|
||||
Collections.reverse(list);
|
||||
for (Interrogatable resource : list) {
|
||||
InterrogateMap result = resource
|
||||
.interrogate(
|
||||
coordinate, time, keys);
|
||||
Measure<? extends Number, ?> value = result.get(Interrogator.VALUE);
|
||||
if (value != null) {
|
||||
double quantity = value.getValue().doubleValue();
|
||||
if (!Double.isNaN(quantity)) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
return new InterrogateMap();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -115,6 +115,7 @@ import org.eclipse.ui.menus.IMenuService;
|
|||
import com.raytheon.uf.common.activetable.SendPracticeProductRequest;
|
||||
import com.raytheon.uf.common.dataplugin.text.RemoteRetrievalResponse;
|
||||
import com.raytheon.uf.common.dataplugin.text.alarms.AlarmAlertProduct;
|
||||
import com.raytheon.uf.common.dataplugin.text.db.MixedCaseProductSupport;
|
||||
import com.raytheon.uf.common.dataplugin.text.db.OperationalStdTextProduct;
|
||||
import com.raytheon.uf.common.dataplugin.text.db.PracticeStdTextProduct;
|
||||
import com.raytheon.uf.common.dataplugin.text.db.StdTextProduct;
|
||||
|
@ -341,6 +342,7 @@ import com.raytheon.viz.ui.dialogs.SWTMessageBox;
|
|||
* 13May2014 2536 bclement moved WMO Header to common, switched from TimeTools to TimeUtil
|
||||
* 11Sep2014 3580 mapeters Replaced SerializationTuil usage with JAXBManager,
|
||||
* removed IQueryTransport usage (no longer exists).
|
||||
* 20Oct2014 3685 randerso Made conversion to upper case conditional on product id
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -1096,10 +1098,9 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
* Search and replace dialog.
|
||||
*/
|
||||
private SearchReplaceDlg searchReplaceDlg;
|
||||
|
||||
/**
|
||||
* Flag indicating if the overwrite mode has been set for
|
||||
* template editing.
|
||||
|
||||
/**
|
||||
* Flag indicating if the overwrite mode has been set for template editing.
|
||||
*/
|
||||
private boolean isTemplateOverwriteModeSet = false;
|
||||
|
||||
|
@ -2065,7 +2066,7 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
overStrikeItem.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent event) {
|
||||
if (!AFOSParser.isTemplate) {
|
||||
if (!AFOSParser.isTemplate) {
|
||||
if (overwriteMode == true) {
|
||||
overwriteMode = false;
|
||||
editorInsertCmb.select(INSERT_TEXT);
|
||||
|
@ -3714,14 +3715,14 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
editorInsertCmb.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent event) {
|
||||
if (!AFOSParser.isTemplate) {
|
||||
if (editorInsertCmb.getSelectionIndex() == INSERT_TEXT
|
||||
&& overwriteMode == true) {
|
||||
if (!AFOSParser.isTemplate) {
|
||||
if ((editorInsertCmb.getSelectionIndex() == INSERT_TEXT)
|
||||
&& (overwriteMode == true)) {
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
overwriteMode = false;
|
||||
overStrikeItem.setSelection(false);
|
||||
} else if (editorInsertCmb.getSelectionIndex() == OVERWRITE_TEXT
|
||||
&& overwriteMode == false) {
|
||||
} else if ((editorInsertCmb.getSelectionIndex() == OVERWRITE_TEXT)
|
||||
&& (overwriteMode == false)) {
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
overwriteMode = true;
|
||||
overStrikeItem.setSelection(true);
|
||||
|
@ -3887,7 +3888,7 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
event.doit = false; // Ignore Ctrl+Shift+PageDown
|
||||
} else if (event.keyCode == SWT.INSERT) {
|
||||
// Ins key on the keypad
|
||||
if (AFOSParser.isTemplate) {
|
||||
if (AFOSParser.isTemplate) {
|
||||
if (overwriteMode == true) {
|
||||
overwriteMode = false;
|
||||
overStrikeItem.setSelection(false);
|
||||
|
@ -3917,43 +3918,43 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
if (event.keyCode == SWT.BS) {
|
||||
event.doit = false;
|
||||
int currentPos = textEditor.getCaretOffset();
|
||||
String textUpToCaret = textEditor.getText().substring(0, currentPos);
|
||||
int leftMost=textUpToCaret.lastIndexOf("[") + 1;
|
||||
int rightMost = textEditor.getText().indexOf("]",currentPos);
|
||||
String textUpToCaret = textEditor.getText().substring(
|
||||
0, currentPos);
|
||||
int leftMost = textUpToCaret.lastIndexOf("[") + 1;
|
||||
int rightMost = textEditor.getText().indexOf("]",
|
||||
currentPos);
|
||||
int editableTextWidth = rightMost - leftMost;
|
||||
String leftPart="";
|
||||
String rightPart="";
|
||||
String leftPart = "";
|
||||
String rightPart = "";
|
||||
if (currentPos == leftMost) {
|
||||
leftPart = "";
|
||||
rightPart = textEditor.getText().substring(
|
||||
currentPos, rightMost);
|
||||
textEditor.setCaretOffset(leftMost);
|
||||
}
|
||||
else if (currentPos > leftMost && currentPos <= rightMost){
|
||||
leftPart = textEditor.getText().substring(
|
||||
leftMost, currentPos - 1);
|
||||
leftPart = "";
|
||||
rightPart = textEditor.getText().substring(
|
||||
currentPos, rightMost);
|
||||
}
|
||||
else if (currentPos == rightMost) {
|
||||
leftPart = textEditor.getText().substring(
|
||||
leftMost, currentPos-1);
|
||||
textEditor.setCaretOffset(leftMost);
|
||||
} else if ((currentPos > leftMost)
|
||||
&& (currentPos <= rightMost)) {
|
||||
leftPart = textEditor.getText().substring(leftMost,
|
||||
currentPos - 1);
|
||||
rightPart = textEditor.getText().substring(
|
||||
currentPos, rightMost);
|
||||
} else if (currentPos == rightMost) {
|
||||
leftPart = textEditor.getText().substring(leftMost,
|
||||
currentPos - 1);
|
||||
rightPart = "";
|
||||
}
|
||||
String newString = leftPart + rightPart;
|
||||
int neededPadSpaces = editableTextWidth - newString.length();
|
||||
int neededPadSpaces = editableTextWidth
|
||||
- newString.length();
|
||||
String newPaddedString = String.format("%1$-"
|
||||
+ (neededPadSpaces+1) + "s", newString);
|
||||
+ (neededPadSpaces + 1) + "s", newString);
|
||||
String spacedoutString = String.format("%1$-"
|
||||
+ (editableTextWidth) + "s",
|
||||
" ");
|
||||
+ (editableTextWidth) + "s", " ");
|
||||
textEditor.replaceTextRange(leftMost,
|
||||
spacedoutString.length(), spacedoutString);
|
||||
textEditor.replaceTextRange(leftMost,
|
||||
newPaddedString.length(), newPaddedString);
|
||||
textEditor.setCaretOffset(currentPos - 1);
|
||||
|
||||
|
||||
} else if (event.keyCode == SWT.TAB) {
|
||||
if (!isTemplateOverwriteModeSet) {
|
||||
if (overwriteMode) {
|
||||
|
@ -3968,11 +3969,11 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
String textUpToCaret = textEditor.getText().substring(
|
||||
0, currentPos);
|
||||
int openBracketPos = textUpToCaret.lastIndexOf("[");
|
||||
openBracketPos = textEditor.getText().indexOf("[", currentPos);
|
||||
openBracketPos = textEditor.getText().indexOf("[",
|
||||
currentPos);
|
||||
textEditor.setCaretOffset(openBracketPos + 1);
|
||||
}
|
||||
else if (event.keyCode>=97 && event.keyCode <=122 ||
|
||||
event.keyCode>=48 && event.keyCode <=57){
|
||||
} else if (((event.keyCode >= 97) && (event.keyCode <= 122))
|
||||
|| ((event.keyCode >= 48) && (event.keyCode <= 57))) {
|
||||
event.doit = true;
|
||||
}
|
||||
}
|
||||
|
@ -4160,7 +4161,7 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
* Enter the text editor mode.
|
||||
*/
|
||||
private void enterEditor() {
|
||||
initTemplateOverwriteMode();
|
||||
initTemplateOverwriteMode();
|
||||
StdTextProduct product = TextDisplayModel.getInstance()
|
||||
.getStdTextProduct(token);
|
||||
if ((product != null)
|
||||
|
@ -4401,7 +4402,8 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
.getProductCategory(token)
|
||||
+ tdm.getProductDesignator(token);
|
||||
// Set the header text field.
|
||||
if (bbbid.equals("NOR") || (bbbid.isEmpty() && tdm.getAfosPil(token) != null)) {
|
||||
if (bbbid.equals("NOR")
|
||||
|| (bbbid.isEmpty() && (tdm.getAfosPil(token) != null))) {
|
||||
String wmoId = tdm.getWmoId(token);
|
||||
wmoId = (wmoId.length() > 0 ? wmoId : "-");
|
||||
String siteId = tdm.getSiteId(token);
|
||||
|
@ -4902,7 +4904,8 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
if (warnGenFlag) {
|
||||
QCConfirmationMsg qcMsg = new QCConfirmationMsg();
|
||||
if (!qcMsg.checkWarningInfo(headerTF.getText().toUpperCase(),
|
||||
textEditor.getText().toUpperCase(), prod.getNnnid())) {
|
||||
MixedCaseProductSupport.conditionalToUpper(prod.getNnnid(),
|
||||
textEditor.getText()), prod.getNnnid())) {
|
||||
WarnGenConfirmationDlg wgcd = new WarnGenConfirmationDlg(shell,
|
||||
qcMsg.getTitle(), qcMsg.getProductMessage(),
|
||||
qcMsg.getModeMessage());
|
||||
|
@ -4986,7 +4989,8 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
StdTextProduct prod = getStdTextProduct();
|
||||
EmergencyConfirmationMsg emergencyMsg = new EmergencyConfirmationMsg();
|
||||
if (emergencyMsg.checkWarningInfo(headerTF.getText().toUpperCase(),
|
||||
textEditor.getText().toUpperCase(), prod.getNnnid()) == false) {
|
||||
MixedCaseProductSupport.conditionalToUpper(prod.getNnnid(),
|
||||
textEditor.getText()), prod.getNnnid()) == false) {
|
||||
|
||||
WarnGenConfirmationDlg wgcd = new WarnGenConfirmationDlg(shell,
|
||||
emergencyMsg.getTitle(), emergencyMsg.getProductMessage(),
|
||||
|
@ -5016,8 +5020,9 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
*/
|
||||
private void warngenCloseCallback(boolean resend) {
|
||||
|
||||
// DR14553 (make upper case in product)
|
||||
String body = textEditor.getText().toUpperCase();
|
||||
StdTextProduct prod = getStdTextProduct();
|
||||
String body = MixedCaseProductSupport.conditionalToUpper(
|
||||
prod.getNnnid(), textEditor.getText());
|
||||
CAVEMode mode = CAVEMode.getMode();
|
||||
boolean isOperational = (CAVEMode.OPERATIONAL.equals(mode) || CAVEMode.TEST
|
||||
.equals(mode));
|
||||
|
@ -5031,7 +5036,6 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
inEditMode = false;
|
||||
}
|
||||
if (!resend) {
|
||||
StdTextProduct prod = getStdTextProduct();
|
||||
OUPTestRequest testReq = new OUPTestRequest();
|
||||
testReq.setOupRequest(createOUPRequest(prod,
|
||||
prod.getProduct()));
|
||||
|
@ -5075,8 +5079,6 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
|
||||
String product = TextDisplayModel.getInstance().getProduct(
|
||||
token);
|
||||
// TODO: Should not need to call getProduct and the like twice.
|
||||
StdTextProduct prod = getStdTextProduct();
|
||||
|
||||
OUPRequest req = createOUPRequest(prod, product);
|
||||
|
||||
|
@ -5093,8 +5095,10 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
} else {
|
||||
try {
|
||||
if (!resend) {
|
||||
body = VtecUtil.getVtec(removeSoftReturns(textEditor
|
||||
.getText()));
|
||||
body = VtecUtil
|
||||
.getVtec(removeSoftReturns(MixedCaseProductSupport
|
||||
.conditionalToUpper(prod.getNnnid(),
|
||||
textEditor.getText())));
|
||||
}
|
||||
updateTextEditor(body);
|
||||
if ((inEditMode || resend)
|
||||
|
@ -5168,7 +5172,7 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
private static String copyEtn(String from, String to) {
|
||||
VtecObject fromVtec = VtecUtil.parseMessage(from);
|
||||
|
||||
if (fromVtec != null && "NEW".equals(fromVtec.getAction())) {
|
||||
if ((fromVtec != null) && "NEW".equals(fromVtec.getAction())) {
|
||||
VtecObject toVtec = VtecUtil.parseMessage(to);
|
||||
if (toVtec != null) {
|
||||
toVtec.setSequence(fromVtec.getSequence());
|
||||
|
@ -5204,8 +5208,8 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
body.append("\n");
|
||||
}
|
||||
body.append(textEditor.getText().trim());
|
||||
|
||||
if (AFOSParser.isTemplate){
|
||||
|
||||
if (AFOSParser.isTemplate) {
|
||||
return removePreformat(body.toString());
|
||||
}
|
||||
|
||||
|
@ -5279,7 +5283,9 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
|
||||
String header = headerTF.getText().toUpperCase();
|
||||
String body = resend ? resendMessage()
|
||||
: removeSoftReturns(textEditor.getText().toUpperCase());
|
||||
: removeSoftReturns(MixedCaseProductSupport
|
||||
.conditionalToUpper(product.getNnnid(),
|
||||
textEditor.getText()));
|
||||
// verify text
|
||||
headerTF.setText(header);
|
||||
updateTextEditor(body);
|
||||
|
@ -5302,10 +5308,11 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
if (!isAutoSave) {
|
||||
if (!resend) {
|
||||
// If not a resend, set the DDHHMM field to the current time
|
||||
if (productText.startsWith("- -") && productText.contains("DDHHMM")) {
|
||||
if (productText.startsWith("- -")
|
||||
&& productText.contains("DDHHMM")) {
|
||||
productText = getUnofficeProduct(currentDate);
|
||||
} else {
|
||||
productText = replaceDDHHMM(productText, currentDate);
|
||||
productText = replaceDDHHMM(productText, currentDate);
|
||||
}
|
||||
VtecObject vtecObj = VtecUtil.parseMessage(productText);
|
||||
if (warnGenFlag) {
|
||||
|
@ -5341,7 +5348,7 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
productText += ATTACHMENT_STR
|
||||
+ statusBarLabel.getText().substring(startIndex);
|
||||
}
|
||||
|
||||
|
||||
if (AFOSParser.isTemplate) {
|
||||
productText = removePreformat(productText);
|
||||
}
|
||||
|
@ -5909,14 +5916,15 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
if (m.find()) {
|
||||
SimpleDateFormat headerFormat = new SimpleDateFormat(
|
||||
"hmm a z EEE MMM d yyyy");
|
||||
TimeZone tz = TextWarningConstants.timeZoneShortNameMap
|
||||
.get(m.group(5));
|
||||
TimeZone tz = TextWarningConstants.timeZoneShortNameMap.get(m
|
||||
.group(5));
|
||||
if (tz != null) {
|
||||
headerFormat.setTimeZone(tz);
|
||||
product = product.replace(m.group(1), headerFormat.format(now)
|
||||
.toUpperCase());
|
||||
} else {
|
||||
statusHandler.warn("Could not sync MND header time because the time zone could not be determined. Will proceed with save/send.");
|
||||
statusHandler
|
||||
.warn("Could not sync MND header time because the time zone could not be determined. Will proceed with save/send.");
|
||||
}
|
||||
}
|
||||
return product;
|
||||
|
@ -6944,9 +6952,9 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
}
|
||||
String textProduct = product.getASCIIProduct();
|
||||
if ((product.getNnnid() + product.getXxxid())
|
||||
.startsWith(AFOSParser.DRAFT_PIL) ||
|
||||
(product.getNnnid() + product.getXxxid())
|
||||
.startsWith(AFOSParser.MCP_NNN )) {
|
||||
.startsWith(AFOSParser.DRAFT_PIL)
|
||||
|| (product.getNnnid() + product.getXxxid())
|
||||
.startsWith(AFOSParser.MCP_NNN)) {
|
||||
String[] nnnxxx = TextDisplayModel.getNnnXxx(textProduct);
|
||||
String operationalPil = nnnxxx[0] + nnnxxx[1];
|
||||
String siteNode = SiteAbbreviationUtil.getSiteNode(nnnxxx[1]);
|
||||
|
@ -8576,7 +8584,7 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
return bbb;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void initTemplateOverwriteMode() {
|
||||
if (AFOSParser.isTemplate) {
|
||||
editorInsertCmb.setEnabled(false);
|
||||
|
@ -8594,8 +8602,7 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
isTemplateOverwriteModeSet = true;
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
editorInsertCmb.setEnabled(true);
|
||||
overStrikeItem.setEnabled(true);
|
||||
editorCutBtn.setEnabled(true);
|
||||
|
@ -8603,26 +8610,26 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
editorPasteBtn.setEnabled(true);
|
||||
editorFillBtn.setEnabled(true);
|
||||
editorAttachBtn.setEnabled(true);
|
||||
if (isTemplateOverwriteModeSet && !overwriteMode){
|
||||
if (isTemplateOverwriteModeSet && !overwriteMode) {
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
isTemplateOverwriteModeSet=false;
|
||||
isTemplateOverwriteModeSet = false;
|
||||
}
|
||||
if (!isTemplateOverwriteModeSet && overwriteMode){
|
||||
if (!isTemplateOverwriteModeSet && overwriteMode) {
|
||||
textEditor.invokeAction(ST.TOGGLE_OVERWRITE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private String removePreformat(String preformattedText) {
|
||||
String modifiedText = preformattedText.replaceAll("\\[|\\]", " ");
|
||||
modifiedText = removeSoftReturns(modifiedText);
|
||||
return modifiedText;
|
||||
}
|
||||
|
||||
private String getUnofficeProduct(String currDate)
|
||||
{
|
||||
StdTextProduct textProd = TextDisplayModel.getInstance().getStdTextProduct(token);
|
||||
|
||||
|
||||
private String getUnofficeProduct(String currDate) {
|
||||
StdTextProduct textProd = TextDisplayModel.getInstance()
|
||||
.getStdTextProduct(token);
|
||||
|
||||
String header = headerTF.getText();
|
||||
|
||||
String nnn = textProd.getNnnid();
|
||||
|
@ -8630,21 +8637,23 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
|
|||
String nnnXxx = nnn + xxx;
|
||||
String site = SiteMap.getInstance().getSite4LetterId(
|
||||
textProd.getCccid());
|
||||
String wmoId = textProd.getCccid() + nnnXxx + " "
|
||||
+ getAddressee() + "\nTTAA00 " + site;
|
||||
|
||||
String wmoId = textProd.getCccid() + nnnXxx + " " + getAddressee()
|
||||
+ "\nTTAA00 " + site;
|
||||
|
||||
header = header.replaceFirst("\n" + nnnXxx, "");
|
||||
header = header.replaceFirst("-", "ZCZC");
|
||||
header = header.replaceFirst("-", wmoId);
|
||||
|
||||
if (currDate != null)
|
||||
if (currDate != null) {
|
||||
header = header.replaceFirst("DDHHMM", currDate);
|
||||
else
|
||||
} else {
|
||||
header = header.replaceFirst("DDHHMM", textProd.getHdrtime());
|
||||
|
||||
String body = textEditor.getText().toUpperCase();
|
||||
}
|
||||
|
||||
header = header + "\n\n"+body +"\n!--not sent--!";
|
||||
String body = MixedCaseProductSupport.conditionalToUpper(nnn,
|
||||
textEditor.getText());
|
||||
|
||||
header = header + "\n\n" + body + "\n!--not sent--!";
|
||||
|
||||
return header;
|
||||
}
|
||||
|
|
|
@ -47,6 +47,13 @@
|
|||
value="textws/gui"
|
||||
recursive="true">
|
||||
</path>
|
||||
<path
|
||||
application="TextWS"
|
||||
localizationType="COMMON_STATIC"
|
||||
name="Mixed Case"
|
||||
value="mixedCase"
|
||||
recursive="false">
|
||||
</path>
|
||||
</extension>
|
||||
|
||||
</plugin>
|
||||
|
|
|
@ -122,10 +122,10 @@ public abstract class AbstractAWIPSComponent extends CAVEApplication {
|
|||
* getWorkbenchAdvisor()
|
||||
*/
|
||||
@Override
|
||||
protected WorkbenchAdvisor getWorkbenchAdvisor() {
|
||||
protected final WorkbenchAdvisor getWorkbenchAdvisor() {
|
||||
WorkbenchAdvisor workbenchAdvisor = null;
|
||||
if ((getRuntimeModes() & WORKBENCH) != 0) {
|
||||
workbenchAdvisor = new AWIPSWorkbenchAdvisor();
|
||||
workbenchAdvisor = createAWIPSWorkbenchAdvisor();
|
||||
} else if (!isNonUIComponent()) {
|
||||
workbenchAdvisor = new HiddenWorkbenchAdvisor(getComponentName(),
|
||||
this);
|
||||
|
@ -141,6 +141,14 @@ public abstract class AbstractAWIPSComponent extends CAVEApplication {
|
|||
return workbenchAdvisor;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return A new instance of {@link AWIPSWorkbenchAdvisor} to use for the
|
||||
* component's {@link WorkbenchAdvisor}
|
||||
*/
|
||||
protected AWIPSWorkbenchAdvisor createAWIPSWorkbenchAdvisor() {
|
||||
return new AWIPSWorkbenchAdvisor();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
|
|
@ -71,7 +71,7 @@ CASE ${BACKUP_NAME}
|
|||
WHEN 42 then 'DEBRIS FLOW'
|
||||
WHEN 43 then 'BLOWING SNOW'
|
||||
WHEN 44 then 'RAIN'
|
||||
ELSE ${BACKUP_NAME}
|
||||
ELSE ''
|
||||
END;
|
||||
UPDATE ${TABLE_NAME} set ${STATION_COLUMN} = concat(${LON_COLUMN}, ':', ${LAT_COLUMN});
|
||||
ALTER TABLE ${TABLE_NAME} DROP COLUMN ${BACKUP_NAME};
|
||||
|
|
28
deltaScripts/14.4.1/DR3454/createEventsSequences.sh
Executable file
28
deltaScripts/14.4.1/DR3454/createEventsSequences.sh
Executable file
|
@ -0,0 +1,28 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This script creates sequences for the tables in the events schema
|
||||
|
||||
STATS_MAX_VAL=$(psql -U awips -d metadata -t -c "select max(id)+1 from events.stats;")
|
||||
NOTIFICATION_MAX_VAL=$(psql -U awips -d metadata -t -c "select max(id)+1 from events.notification;")
|
||||
AGGREGATE_MAX_VAL=$(psql -U awips -d metadata -t -c "select max(id)+1 from events.aggregate;")
|
||||
|
||||
if [ -z $STATS_MAX_VAL ]
|
||||
then
|
||||
STATS_MAX_VAL=1
|
||||
fi
|
||||
|
||||
if [ -z $NOTIFICATION_MAX_VAL ]
|
||||
then
|
||||
NOTIFICATION_MAX_VAL=1
|
||||
fi
|
||||
|
||||
if [ -z $AGGREGATE_MAX_VAL ]
|
||||
then
|
||||
AGGREGATE_MAX_VAL=1
|
||||
fi
|
||||
|
||||
psql -U awips -d metadata -c \
|
||||
"CREATE SEQUENCE stats_seq START WITH $STATS_MAX_VAL; \
|
||||
CREATE SEQUENCE notification_seq START WITH $NOTIFICATION_MAX_VAL; \
|
||||
CREATE SEQUENCE aggregate_seq START WITH $AGGREGATE_MAX_VAL;"
|
||||
|
|
@ -73,6 +73,8 @@
|
|||
<!-- Cache Properties -->
|
||||
<property name="hibernate.cache.use_second_level_cache">false</property>
|
||||
<property name="hibernate.cache.use_query_cache">false</property>
|
||||
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
|
||||
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
|
||||
|
||||
</session-factory>
|
||||
</hibernate-configuration>
|
|
@ -73,6 +73,8 @@
|
|||
<!-- Cache Properties -->
|
||||
<property name="hibernate.cache.use_second_level_cache">false</property>
|
||||
<property name="hibernate.cache.use_query_cache">false</property>
|
||||
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
|
||||
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
|
||||
|
||||
</session-factory>
|
||||
</hibernate-configuration>
|
|
@ -73,6 +73,8 @@
|
|||
<!-- Cache Properties -->
|
||||
<property name="hibernate.cache.use_second_level_cache">false</property>
|
||||
<property name="hibernate.cache.use_query_cache">false</property>
|
||||
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
|
||||
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
|
||||
|
||||
</session-factory>
|
||||
</hibernate-configuration>
|
|
@ -73,6 +73,8 @@
|
|||
<!-- Cache Properties -->
|
||||
<property name="hibernate.cache.use_query_cache">false</property>
|
||||
<property name="hibernate.cache.use_second_level_cache">false</property>
|
||||
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
|
||||
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
|
||||
|
||||
</session-factory>
|
||||
</hibernate-configuration>
|
|
@ -73,6 +73,8 @@
|
|||
<!-- Cache Properties -->
|
||||
<property name="hibernate.cache.use_second_level_cache">false</property>
|
||||
<property name="hibernate.cache.use_query_cache">false</property>
|
||||
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
|
||||
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
|
||||
|
||||
</session-factory>
|
||||
</hibernate-configuration>
|
|
@ -76,6 +76,8 @@
|
|||
<property name="hibernate.cache.use_second_level_cache">false</property>
|
||||
<property name="hibernate.jdbc.use_streams_for_binary">false</property>
|
||||
<property name="hibernate.cache.use_query_cache">false</property>
|
||||
<property name="hibernate.query.plan_cache_max_strong_references">16</property>
|
||||
<property name="hibernate.query.plan_cache_max_soft_references">32</property>
|
||||
|
||||
</session-factory>
|
||||
</hibernate-configuration>
|
||||
|
|
|
@ -70,6 +70,8 @@
|
|||
<!-- Cache Properties -->
|
||||
<property name="hibernate.cache.use_second_level_cache">false</property>
|
||||
<property name="hibernate.cache.use_query_cache">false</property>
|
||||
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
|
||||
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
|
||||
|
||||
</session-factory>
|
||||
</hibernate-configuration>
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 03/25/2014 #2664 randerso Added support for importing non-WGS84 shape files
|
||||
# 10/23/2014 #3685 randerso Fixed bug where .prj was not recognized when shape file
|
||||
# was in the current directory (no directory specified)
|
||||
#
|
||||
##
|
||||
|
||||
|
@ -46,7 +48,7 @@ if [ $# -lt 3 ] ; then
|
|||
exit -1
|
||||
fi
|
||||
|
||||
SHP_PATH=${1}
|
||||
SHP_PATH=`readlink -f ${1}`
|
||||
SHP_DIR="${SHP_PATH%/*}" # shape file dir
|
||||
SHP_NAME="${SHP_PATH##*/}" # shape file name with extension
|
||||
SHP_BASE="${SHP_NAME%.*}" # shape file name without extension
|
||||
|
|
|
@ -106,6 +106,7 @@ import com.vividsolutions.jts.simplify.TopologyPreservingSimplifier;
|
|||
* Sep 30, 2013 #2361 njensen Use JAXBManager for XML
|
||||
* Jan 21, 2014 #2720 randerso Improve efficiency of merging polygons in edit area generation
|
||||
* Aug 27, 2014 #3563 randerso Fix issue where edit areas are regenerated unnecessarily
|
||||
* Oct 20, 2014 #3685 randerso Changed structure of editAreaAttrs to keep zones from different maps separated
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -131,7 +132,7 @@ public class MapManager {
|
|||
|
||||
private final Map<String, List<String>> editAreaMap = new HashMap<String, List<String>>();
|
||||
|
||||
private final Map<String, Map<String, Object>> editAreaAttrs = new HashMap<String, Map<String, Object>>();
|
||||
private final Map<String, List<Map<String, Object>>> editAreaAttrs = new HashMap<String, List<Map<String, Object>>>();
|
||||
|
||||
private final List<String> iscMarkersID = new ArrayList<String>();
|
||||
|
||||
|
@ -811,6 +812,8 @@ public class MapManager {
|
|||
private List<ReferenceData> createReferenceData(DbShapeSource mapDef) {
|
||||
// ServerResponse sr;
|
||||
List<ReferenceData> data = new ArrayList<ReferenceData>();
|
||||
List<Map<String, Object>> attributes = new ArrayList<Map<String, Object>>();
|
||||
editAreaAttrs.put(mapDef.getDisplayName(), attributes);
|
||||
|
||||
// Module dean("DefaultEditAreaNaming");
|
||||
ArrayList<String> created = new ArrayList<String>();
|
||||
|
@ -871,7 +874,8 @@ public class MapManager {
|
|||
// handle new case
|
||||
else {
|
||||
created.add(ean);
|
||||
editAreaAttrs.put(ean, info);
|
||||
info.put("editarea", ean);
|
||||
attributes.add(info);
|
||||
}
|
||||
|
||||
tempData.put(ean, mp);
|
||||
|
|
|
@ -20,27 +20,36 @@
|
|||
package com.raytheon.edex.plugin.gfe.textproducts;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.PrintWriter;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import jep.JepException;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import com.raytheon.edex.plugin.gfe.reference.MapManager;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.python.GfePyIncludeUtil;
|
||||
import com.raytheon.uf.common.dataquery.db.QueryResult;
|
||||
import com.raytheon.uf.common.dataquery.db.QueryResultRow;
|
||||
import com.raytheon.uf.common.localization.IPathManager;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
|
||||
import com.raytheon.uf.common.localization.LocalizationFile;
|
||||
import com.raytheon.uf.common.localization.PathManagerFactory;
|
||||
import com.raytheon.uf.common.localization.exception.LocalizationException;
|
||||
import com.raytheon.uf.common.python.PyUtil;
|
||||
import com.raytheon.uf.common.python.PythonScript;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.common.util.FileUtil;
|
||||
import com.raytheon.uf.edex.database.tasks.SqlQueryTask;
|
||||
|
||||
/**
|
||||
* TODO Add Description
|
||||
* Code to generate the AreaDictionary for text formatters
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
|
@ -49,6 +58,8 @@ import com.raytheon.uf.common.util.FileUtil;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* May 4, 2011 wldougher Moved from MapManager
|
||||
* Oct 10, 2014 #3685 randerso Add code to generate the fips2cities and zones2cites
|
||||
* python modules from the GIS database tables
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -57,11 +68,61 @@ import com.raytheon.uf.common.util.FileUtil;
|
|||
*/
|
||||
|
||||
public class AreaDictionaryMaker {
|
||||
private static final Log theLogger = LogFactory
|
||||
.getLog(AreaDictionaryMaker.class);
|
||||
protected static final transient IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(AreaDictionaryMaker.class);
|
||||
|
||||
protected static final String FIPS_CITY_QUERY = //
|
||||
"SELECT name, population, ST_Y(city.the_geom), ST_X(city.the_geom) "
|
||||
+ "FROM mapdata.city, mapdata.county "
|
||||
+ "WHERE county.state = '%1$s' AND substring(fips,3,3) = '%2$s' "
|
||||
+ "AND ST_Contains(county.the_geom, city.the_geom) "
|
||||
+ "ORDER BY city.name;";
|
||||
|
||||
protected static final String ZONES_CITY_QUERY = //
|
||||
"SELECT city.name, population, ST_Y(city.the_geom), ST_X(city.the_geom) "
|
||||
+ "FROM mapdata.city, mapdata.zone "
|
||||
+ "WHERE zone.state = '%1$s' AND zone.zone = '%2$s' "
|
||||
+ "AND ST_Contains(zone.the_geom, city.the_geom) "
|
||||
+ "ORDER BY city.name;";
|
||||
|
||||
protected static final Map<String, String> PART_OF_STATE;
|
||||
static {
|
||||
PART_OF_STATE = new HashMap<>(30, 1.0f);
|
||||
PART_OF_STATE.put(null, "");
|
||||
PART_OF_STATE.put("bb", "big bend");
|
||||
PART_OF_STATE.put("c", "");
|
||||
PART_OF_STATE.put("cc", "central");
|
||||
PART_OF_STATE.put("E", "");
|
||||
PART_OF_STATE.put("ea", "east");
|
||||
PART_OF_STATE.put("ec", "east central");
|
||||
PART_OF_STATE.put("ee", "eastern");
|
||||
PART_OF_STATE.put("er", "east central upper");
|
||||
PART_OF_STATE.put("eu", "eastern upper");
|
||||
PART_OF_STATE.put("M", "");
|
||||
PART_OF_STATE.put("mi", "middle");
|
||||
PART_OF_STATE.put("nc", "north central");
|
||||
PART_OF_STATE.put("ne", "northeast");
|
||||
PART_OF_STATE.put("nn", "northern");
|
||||
PART_OF_STATE.put("nr", "north central upper");
|
||||
PART_OF_STATE.put("nw", "northwest");
|
||||
PART_OF_STATE.put("pa", "panhandle");
|
||||
PART_OF_STATE.put("pd", "piedmont");
|
||||
PART_OF_STATE.put("sc", "south central");
|
||||
PART_OF_STATE.put("se", "southeast");
|
||||
PART_OF_STATE.put("so", "south");
|
||||
PART_OF_STATE.put("sr", "south central upper");
|
||||
PART_OF_STATE.put("ss", "southern");
|
||||
PART_OF_STATE.put("sw", "southwest");
|
||||
PART_OF_STATE.put("up", "upstate");
|
||||
PART_OF_STATE.put("wc", "west central");
|
||||
PART_OF_STATE.put("wu", "western upper");
|
||||
PART_OF_STATE.put("ww", "western");
|
||||
}
|
||||
|
||||
protected IPathManager pathMgr = PathManagerFactory.getPathManager();
|
||||
|
||||
private Map<String, String> stateDict;
|
||||
|
||||
/**
|
||||
* Generate the AreaDictionary.py and CityLocation.py scripts for site,
|
||||
* using editAreaAttrs.
|
||||
|
@ -73,14 +134,14 @@ public class AreaDictionaryMaker {
|
|||
* A Map from edit area names to shape file attributes
|
||||
*/
|
||||
public void genAreaDictionary(String site,
|
||||
Map<String, Map<String, Object>> editAreaAttrs) {
|
||||
theLogger.info("Area Dictionary generation phase");
|
||||
Map<String, List<Map<String, Object>>> editAreaAttrs) {
|
||||
statusHandler.info("Area Dictionary generation phase");
|
||||
|
||||
if (site == null) {
|
||||
throw new IllegalArgumentException("site is null");
|
||||
}
|
||||
|
||||
if ("".equals(site)) {
|
||||
if (site.isEmpty()) {
|
||||
throw new IllegalArgumentException("site is an empty string");
|
||||
}
|
||||
|
||||
|
@ -89,14 +150,99 @@ public class AreaDictionaryMaker {
|
|||
}
|
||||
|
||||
long t0 = System.currentTimeMillis();
|
||||
genStateDict();
|
||||
|
||||
LocalizationContext cx = pathMgr.getContext(
|
||||
LocalizationContext context = pathMgr.getContext(
|
||||
LocalizationContext.LocalizationType.EDEX_STATIC,
|
||||
LocalizationContext.LocalizationLevel.CONFIGURED);
|
||||
context.setContextName(site);
|
||||
|
||||
List<Map<String, Object>> countyAttrs = editAreaAttrs.get("Counties");
|
||||
List<Map<String, Object>> zoneAttrs = editAreaAttrs.get("Zones");
|
||||
|
||||
// To generate national fips2cities and zones2cities files
|
||||
// uncomment the following lines. This should be done for testing
|
||||
// purposes only and should not be checked in uncommented.
|
||||
|
||||
// context = pathMgr.getContext(
|
||||
// LocalizationContext.LocalizationType.EDEX_STATIC,
|
||||
// LocalizationContext.LocalizationLevel.BASE);
|
||||
//
|
||||
// String fipsQuery =
|
||||
// "SELECT fips, state, fe_area, cwa FROM mapdata.county ORDER BY state, fips;";
|
||||
//
|
||||
// SqlQueryTask task = new SqlQueryTask(fipsQuery, "maps");
|
||||
// try {
|
||||
// QueryResult results = task.execute();
|
||||
// countyAttrs = new ArrayList<Map<String, Object>>(
|
||||
// results.getResultCount());
|
||||
// for (QueryResultRow row : results.getRows()) {
|
||||
// String num = (String) row.getColumn(0);
|
||||
// if (num == null) {
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// Map<String, Object> map = new HashMap<>(3, 1.0f);
|
||||
// countyAttrs.add(map);
|
||||
//
|
||||
// String st = (String) row.getColumn(1);
|
||||
// int len = num.length();
|
||||
//
|
||||
// map.put("editarea", st + 'C' + num.substring(len - 3, len));
|
||||
// map.put("fe_area", row.getColumn(2));
|
||||
// map.put("cwa", row.getColumn(3));
|
||||
// }
|
||||
// } catch (Exception e) {
|
||||
// statusHandler.error(e.getLocalizedMessage(), e);
|
||||
// }
|
||||
//
|
||||
// String zonesQuery =
|
||||
// "SELECT zone, state, fe_area, cwa FROM mapdata.zone ORDER BY state, zone;";
|
||||
// task = new SqlQueryTask(zonesQuery, "maps");
|
||||
// try {
|
||||
// QueryResult results = task.execute();
|
||||
// zoneAttrs = new ArrayList<Map<String, Object>>(
|
||||
// results.getResultCount());
|
||||
// for (QueryResultRow row : results.getRows()) {
|
||||
// String num = (String) row.getColumn(0);
|
||||
// if (num == null) {
|
||||
// continue;
|
||||
// }
|
||||
//
|
||||
// Map<String, Object> map = new HashMap<>(3, 1.0f);
|
||||
// zoneAttrs.add(map);
|
||||
//
|
||||
// String st = (String) row.getColumn(1);
|
||||
// int len = num.length();
|
||||
//
|
||||
// map.put("editarea", st + 'Z' + num.substring(len - 3, len));
|
||||
// map.put("fe_area", row.getColumn(2));
|
||||
// map.put("cwa", row.getColumn(3));
|
||||
// }
|
||||
// } catch (Exception e) {
|
||||
// statusHandler.error(e.getLocalizedMessage(), e);
|
||||
// }
|
||||
|
||||
// To generate national fips2cities and zones2cities files
|
||||
// uncomment the previous lines
|
||||
|
||||
genFips2Cities(context, countyAttrs);
|
||||
genZones2Cities(context, zoneAttrs);
|
||||
|
||||
LocalizationContext baseCtx = pathMgr.getContext(
|
||||
LocalizationType.EDEX_STATIC, LocalizationLevel.BASE);
|
||||
File scriptFile = pathMgr.getLocalizationFile(cx,
|
||||
File scriptFile = pathMgr.getLocalizationFile(baseCtx,
|
||||
FileUtil.join("gfe", "createAreaDictionary.py")).getFile();
|
||||
|
||||
LocalizationContext configCtx = pathMgr.getContext(
|
||||
LocalizationType.EDEX_STATIC, LocalizationLevel.CONFIGURED);
|
||||
configCtx.setContextName(site);
|
||||
File configDir = pathMgr.getLocalizationFile(configCtx, "gfe")
|
||||
.getFile();
|
||||
|
||||
String includePath = PyUtil.buildJepIncludePath(true,
|
||||
GfePyIncludeUtil.getCommonPythonIncludePath(),
|
||||
scriptFile.getParent());
|
||||
configDir.getPath(), scriptFile.getParent());
|
||||
Map<String, Object> argMap = new HashMap<String, Object>();
|
||||
|
||||
LocalizationContext caveStaticConfig = pathMgr.getContext(
|
||||
|
@ -120,7 +266,7 @@ public class AreaDictionaryMaker {
|
|||
// createAreaDictionary()
|
||||
pyScript.execute("createCityLocation", argMap);
|
||||
} catch (JepException e) {
|
||||
theLogger.error("Error generating area dictionary", e);
|
||||
statusHandler.error("Error generating area dictionary", e);
|
||||
} finally {
|
||||
if (pyScript != null) {
|
||||
pyScript.dispose();
|
||||
|
@ -128,6 +274,138 @@ public class AreaDictionaryMaker {
|
|||
}
|
||||
|
||||
long t1 = System.currentTimeMillis();
|
||||
theLogger.info("Area Dictionary generation time: " + (t1 - t0) + " ms");
|
||||
statusHandler.info("Area Dictionary generation time: " + (t1 - t0)
|
||||
+ " ms");
|
||||
}
|
||||
|
||||
private void genFips2Cities(LocalizationContext context,
|
||||
List<Map<String, Object>> attributes) {
|
||||
genArea2Cities(context, attributes, "fips2cities.py", "fipsdata",
|
||||
"FIPS", 'C', FIPS_CITY_QUERY);
|
||||
}
|
||||
|
||||
private void genZones2Cities(LocalizationContext context,
|
||||
List<Map<String, Object>> attributes) {
|
||||
genArea2Cities(context, attributes, "zones2cities.py", "zonedata",
|
||||
"Zones", 'Z', ZONES_CITY_QUERY);
|
||||
}
|
||||
|
||||
private void genArea2Cities(LocalizationContext context,
|
||||
List<Map<String, Object>> attributes, String fileName,
|
||||
String dictName, String group, char separator, String cityQuery) {
|
||||
|
||||
LocalizationFile lf = pathMgr.getLocalizationFile(context,
|
||||
FileUtil.join("gfe", fileName));
|
||||
|
||||
try (PrintWriter out = new PrintWriter(lf.openOutputStream())) {
|
||||
out.println(dictName + " = {");
|
||||
|
||||
try {
|
||||
DecimalFormat df = new DecimalFormat("0.00000");
|
||||
StringBuilder sb = new StringBuilder();
|
||||
Pattern pattern = Pattern.compile("(\\p{Upper}{2})" + separator
|
||||
+ "(\\d{3})");
|
||||
|
||||
for (Map<String, Object> att : attributes) {
|
||||
String ean = (String) att.get("editarea");
|
||||
if ((ean == null) || ean.isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Matcher matcher = pattern.matcher(ean);
|
||||
if (!matcher.matches()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
String state = matcher.group(1);
|
||||
String num = matcher.group(2);
|
||||
|
||||
String fullStateName = this.stateDict.get(state);
|
||||
String partOfState = PART_OF_STATE.get(att.get("fe_area"));
|
||||
String wfo = (String) att.get("cwa");
|
||||
|
||||
SqlQueryTask task = new SqlQueryTask(String.format(
|
||||
cityQuery, state, num), "maps");
|
||||
|
||||
// retrieve cities for this area
|
||||
QueryResult citiesResult = null;
|
||||
try {
|
||||
citiesResult = task.execute();
|
||||
} catch (Exception e) {
|
||||
statusHandler
|
||||
.error("Error getting cites for " + ean, e);
|
||||
}
|
||||
|
||||
sb.setLength(0);
|
||||
sb.append("'").append(ean).append("': {");
|
||||
sb.append("'fullStateName': '").append(fullStateName)
|
||||
.append("', ");
|
||||
sb.append("'state': '").append(state).append("', ");
|
||||
|
||||
sb.append("'cities': [");
|
||||
if ((citiesResult != null)
|
||||
&& (citiesResult.getResultCount() > 0)) {
|
||||
for (QueryResultRow city : citiesResult.getRows()) {
|
||||
String name = (String) city.getColumn(0);
|
||||
Object population = city.getColumn(1);
|
||||
Double lat = (Double) city.getColumn(2);
|
||||
Double lon = (Double) city.getColumn(3);
|
||||
|
||||
if (name.indexOf("'") >= 0) {
|
||||
sb.append("(\"").append(name).append("\", ");
|
||||
} else {
|
||||
sb.append("('").append(name).append("', ");
|
||||
}
|
||||
if (population == null) {
|
||||
sb.append("None, ");
|
||||
} else {
|
||||
sb.append(population.toString()).append(", ");
|
||||
}
|
||||
sb.append("'").append(df.format(lat)).append("', ");
|
||||
sb.append("'").append(df.format(lon))
|
||||
.append("'), ");
|
||||
}
|
||||
sb.setLength(sb.length() - 2);
|
||||
}
|
||||
sb.append("], ");
|
||||
|
||||
sb.append("'partOfState': '").append(partOfState)
|
||||
.append("', ");
|
||||
sb.append("'wfo': '").append(wfo).append("'}, ");
|
||||
out.println(sb.toString());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
statusHandler.error(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
out.println("}");
|
||||
} catch (LocalizationException e) {
|
||||
statusHandler.error(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
try {
|
||||
lf.save();
|
||||
} catch (Exception e) {
|
||||
statusHandler.error(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void genStateDict() {
|
||||
SqlQueryTask task = new SqlQueryTask(
|
||||
"SELECT state, name FROM mapdata.states", "maps");
|
||||
try {
|
||||
QueryResult result = task.execute();
|
||||
stateDict = new HashMap<String, String>(result.getResultCount(),
|
||||
1.0f);
|
||||
for (QueryResultRow row : result.getRows()) {
|
||||
String st = (String) row.getColumn(0);
|
||||
String name = (String) row.getColumn(1);
|
||||
stateDict.put(st, name);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
statusHandler.error(e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ package com.raytheon.edex.plugin.gfe.textproducts;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -32,10 +32,14 @@ import org.apache.commons.logging.Log;
|
|||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import com.raytheon.edex.utility.ProtectedFiles;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.python.GfePyIncludeUtil;
|
||||
import com.raytheon.uf.common.dataquery.db.QueryResult;
|
||||
import com.raytheon.uf.common.dataquery.db.QueryResultRow;
|
||||
import com.raytheon.uf.common.localization.IPathManager;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
|
||||
import com.raytheon.uf.common.localization.LocalizationFile;
|
||||
import com.raytheon.uf.common.localization.PathManagerFactory;
|
||||
import com.raytheon.uf.common.python.PyUtil;
|
||||
import com.raytheon.uf.common.python.PythonScript;
|
||||
|
@ -45,6 +49,7 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
|
|||
import com.raytheon.uf.common.util.FileUtil;
|
||||
import com.raytheon.uf.edex.database.cluster.ClusterLockUtils;
|
||||
import com.raytheon.uf.edex.database.cluster.ClusterTask;
|
||||
import com.raytheon.uf.edex.database.tasks.SqlQueryTask;
|
||||
|
||||
/**
|
||||
* Generate and configure text products when needed.
|
||||
|
@ -59,11 +64,13 @@ import com.raytheon.uf.edex.database.cluster.ClusterTask;
|
|||
* SOFTWARE HISTORY
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Jul 7, 2008 1222 jelkins Initial creation
|
||||
* Jul 24,2012 #944 dgilling Fix text product template generation
|
||||
* Jul 7, 2008 1222 jelkins Initial creation
|
||||
* Jul 24, 2012 #944 dgilling Fix text product template generation
|
||||
* to create textProducts and textUtilities.
|
||||
* Sep 07,2012 #1150 dgilling Fix isConfigured to check for textProducts
|
||||
* Sep 07, 2012 #1150 dgilling Fix isConfigured to check for textProducts
|
||||
* and textUtilities dirs.
|
||||
* Oct 20, 2014 #3685 randerso Added code to generate SiteCFG.py from GIS database
|
||||
* Cleaned up how protected file updates are returned
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -75,6 +82,8 @@ public class Configurator {
|
|||
private static final transient IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(Configurator.class);
|
||||
|
||||
private static final String CWA_QUERY = "select wfo, region, fullstaid, citystate, city, state from mapdata.cwa order by wfo;";
|
||||
|
||||
private static final String CONFIG_TEXT_PRODUCTS_TASK = "GfeConfigureTextProducts";
|
||||
|
||||
private String siteID;
|
||||
|
@ -183,26 +192,79 @@ public class Configurator {
|
|||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public void execute() {
|
||||
PythonScript python = null;
|
||||
List<String> preEvals = new ArrayList<String>();
|
||||
|
||||
if (isConfigured()) {
|
||||
statusHandler.info("All text products are up to date");
|
||||
return;
|
||||
}
|
||||
IPathManager pathMgr = PathManagerFactory.getPathManager();
|
||||
LocalizationContext context = pathMgr.getContext(
|
||||
LocalizationType.COMMON_STATIC, LocalizationLevel.CONFIGURED);
|
||||
context.setContextName(siteID);
|
||||
|
||||
// regenerate siteCFG.py
|
||||
LocalizationFile lf = null;
|
||||
try {
|
||||
lf = pathMgr.getLocalizationFile(context,
|
||||
FileUtil.join("python", "gfe", "SiteCFG.py"));
|
||||
|
||||
SqlQueryTask task = new SqlQueryTask(CWA_QUERY, "maps");
|
||||
QueryResult results = task.execute();
|
||||
try (PrintWriter out = new PrintWriter(lf.openOutputStream())) {
|
||||
out.println("##");
|
||||
out.println("# Contains information about products, regions, etc. for each site");
|
||||
out.println("# in the country.");
|
||||
out.println("# region= two-letter regional identifier, mainly used for installation of");
|
||||
out.println("# text product templates");
|
||||
out.println("SiteInfo= {");
|
||||
for (QueryResultRow row : results.getRows()) {
|
||||
String wfo = (String) row.getColumn(0);
|
||||
String region = (String) row.getColumn(1);
|
||||
String fullStationID = (String) row.getColumn(2);
|
||||
String wfoCityState = (String) row.getColumn(3);
|
||||
String wfoCity = (String) row.getColumn(4);
|
||||
String state = (String) row.getColumn(5);
|
||||
|
||||
out.println(formatEntry(wfo, region, fullStationID,
|
||||
wfoCityState, wfoCity, state));
|
||||
|
||||
// Add in AFC's dual domain sites
|
||||
if (wfo.equals("AFC")) {
|
||||
out.println(formatEntry("AER", region, fullStationID,
|
||||
wfoCityState, wfoCity, state));
|
||||
out.println(formatEntry("ALU", region, fullStationID,
|
||||
wfoCityState, wfoCity, state));
|
||||
}
|
||||
}
|
||||
|
||||
// Add in the national centers since they
|
||||
// aren't in the shape file
|
||||
out.println(formatEntry("NH1", "NC", "KNHC",
|
||||
"National Hurricane Center Miami FL", "Miami", ""));
|
||||
out.println(formatEntry("NH2", "NC", "KNHC",
|
||||
"National Hurricane Center Miami FL", "Miami", ""));
|
||||
out.println(formatEntry("ONA", "NC", "KWBC",
|
||||
"Ocean Prediction Center Washington DC",
|
||||
"Washington DC", ""));
|
||||
out.println(formatEntry("ONP", "NC", "KWBC",
|
||||
"Ocean Prediction Center Washington DC",
|
||||
"Washington DC", ""));
|
||||
|
||||
out.println("}");
|
||||
} // out is closed here
|
||||
|
||||
lf.save();
|
||||
} catch (Exception e) {
|
||||
statusHandler.error(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
PythonScript python = null;
|
||||
|
||||
LocalizationContext edexCx = pathMgr.getContext(
|
||||
LocalizationType.EDEX_STATIC, LocalizationLevel.BASE);
|
||||
LocalizationContext commonCx = pathMgr.getContext(
|
||||
LocalizationType.COMMON_STATIC, LocalizationLevel.BASE);
|
||||
|
||||
String filePath = pathMgr.getFile(edexCx,
|
||||
"textproducts" + File.separator + "Generator.py").getPath();
|
||||
String textProductPath = pathMgr.getFile(edexCx,
|
||||
"textProducts.Generator").getPath();
|
||||
String jutilPath = pathMgr.getFile(commonCx, "python").getPath();
|
||||
|
||||
// Add some getters we need "in the script" that we want hidden
|
||||
preEvals.add("from JUtil import pylistToJavaStringList");
|
||||
preEvals.add("from textproducts.Generator import Generator");
|
||||
preEvals.add("generator = Generator()");
|
||||
preEvals.add("def getProtectedData():\n return pylistToJavaStringList(generator.getProtectedFiles())");
|
||||
String commonPython = GfePyIncludeUtil.getCommonPythonIncludePath();
|
||||
|
||||
Map<String, Object> argList = new HashMap<String, Object>();
|
||||
argList.put("siteId", siteID);
|
||||
|
@ -210,20 +272,18 @@ public class Configurator {
|
|||
|
||||
try {
|
||||
python = new PythonScript(filePath, PyUtil.buildJepIncludePath(
|
||||
pythonDirectory, textProductPath, jutilPath), this
|
||||
.getClass().getClassLoader(), preEvals);
|
||||
pythonDirectory, commonPython), this.getClass()
|
||||
.getClassLoader());
|
||||
|
||||
// Open the Python interpreter using the designated script.
|
||||
python.execute("generator.create", argList);
|
||||
protectedFilesList = (List<String>) python.execute(
|
||||
"getProtectedData", null);
|
||||
protectedFilesList = (List<String>) python.execute("runFromJava",
|
||||
argList);
|
||||
|
||||
updateProtectedFile();
|
||||
updateLastRuntime();
|
||||
} catch (JepException e) {
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
"Error Configuring Text Products", e);
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
if (python != null) {
|
||||
python.dispose();
|
||||
|
@ -231,6 +291,22 @@ public class Configurator {
|
|||
}
|
||||
}
|
||||
|
||||
private String formatEntry(String wfo, String region, String fullStationID,
|
||||
String wfoCityState, String wfoCity, String state) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(" '").append(wfo).append("': {\n");
|
||||
sb.append(" 'region': '").append(region).append("',\n");
|
||||
sb.append(" 'fullStationID': '").append(fullStationID)
|
||||
.append("',\n");
|
||||
sb.append(" 'wfoCityState': '").append(wfoCityState)
|
||||
.append("',\n");
|
||||
sb.append(" 'wfoCity': '").append(wfoCity).append("',\n");
|
||||
sb.append(" 'state': '").append(state).append("',\n");
|
||||
sb.append(" },");
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the protected files.
|
||||
*/
|
||||
|
|
|
@ -35,8 +35,8 @@ from zones2cities import *
|
|||
# ------------ ---------- ----------- --------------------------
|
||||
# 01/08/10 #1209 randerso Initial Creation.
|
||||
# 10/19/12 #1091 dgilling Support localMaps.py.
|
||||
#
|
||||
#
|
||||
# 10/20/2014 #3685 randerso Converted text to mixed case
|
||||
# Fixed mapDict to keep zones from different maps separate
|
||||
#
|
||||
|
||||
CityLocationDict = {}
|
||||
|
@ -111,13 +111,23 @@ def makeCityString(dictRecord):
|
|||
# handle marine states
|
||||
def checkMarineState(ugcCode):
|
||||
#returns None if unknown, description if known
|
||||
areas = {'AM': 'ATLANTIC COASTAL WATERS', 'GM': 'GULF OF MEXICO',
|
||||
'LE': 'LAKE ERIE', 'LO': 'LAKE ONTARIO', 'LH': 'LAKE HURON',
|
||||
'SC': 'LAKE ST CLAIR', 'LM': 'LAKE MICHIGAN', 'LS': 'LAKE SUPERIOR',
|
||||
'PZ': 'PACIFIC COASTAL WATERS', 'PK': 'ALASKAN COASTAL WATERS',
|
||||
'PH': 'HAWAIIAN COASTAL WATERS', 'PM': 'MARIANAS WATERS',
|
||||
'AN': 'ATLANTIC COASTAL WATERS', 'PS': 'AMERICAN SAMOA COASTAL WATERS',
|
||||
'SL': 'ST LAWRENCE RIVER'}
|
||||
areas = {
|
||||
'AM': 'Atlantic coastal waters',
|
||||
'GM': 'Gulf of Mexico',
|
||||
'LE': 'Lake Erie',
|
||||
'LO': 'Lake Ontario',
|
||||
'LH': 'Lake Huron',
|
||||
'SC': 'Lake St Clair',
|
||||
'LM': 'Lake Michigan',
|
||||
'LS': 'Lake Superior',
|
||||
'PZ': 'Pacific coastal waters',
|
||||
'PK': 'Alaskan coastal waters',
|
||||
'PH': 'Hawaiian coastal waters',
|
||||
'PM': 'Marianas waters',
|
||||
'AN': 'Atlantic coastal waters',
|
||||
'PS': 'American Samoa coastal waters',
|
||||
'SL': 'St Lawrence River',
|
||||
}
|
||||
area = ugcCode[0:2]
|
||||
return areas.get(area, None)
|
||||
|
||||
|
@ -128,82 +138,86 @@ def createAreaDictionary(outputDir, mapDict):
|
|||
areadict = {}
|
||||
mapIter = mapDict.entrySet().iterator()
|
||||
while mapIter.hasNext():
|
||||
entry = mapIter.next()
|
||||
ean = str(entry.getKey())
|
||||
att = entry.getValue()
|
||||
if len(ean):
|
||||
try:
|
||||
d = {}
|
||||
if att.containsKey('zone') and att.containsKey('state'):
|
||||
d['ugcCode'] = str(att.get('state')) + "Z" + str(att.get('zone'))
|
||||
elif att.containsKey('id'):
|
||||
d['ugcCode'] = str(att.get('id'))
|
||||
elif att.containsKey('fips') and att.containsKey('state') and \
|
||||
att.containsKey('countyname'):
|
||||
d['ugcCode'] = str(att.get('state')) + "C" + str(att.get('fips'))[-3:]
|
||||
d['ugcName'] = string.strip(str(att.get('countyname')))
|
||||
else:
|
||||
continue
|
||||
|
||||
if att.containsKey('state'):
|
||||
d["stateAbbr"] = str(att.get('state'))
|
||||
|
||||
if att.containsKey('name'):
|
||||
d["ugcName"] = string.strip(str(att.get('name')))
|
||||
|
||||
if att.containsKey('time_zone'):
|
||||
tzvalue = getRealTimeZone(str(att.get('time_zone')))
|
||||
if tzvalue is not None:
|
||||
d["ugcTimeZone"] = tzvalue
|
||||
|
||||
if zonedata.has_key(d['ugcCode']):
|
||||
cityDict = zonedata[d['ugcCode']]
|
||||
elif fipsdata.has_key(d['ugcCode']):
|
||||
cityDict = fipsdata[d['ugcCode']]
|
||||
else:
|
||||
cityDict = None
|
||||
|
||||
if cityDict:
|
||||
cityString = makeCityString(cityDict)
|
||||
if cityString is not None:
|
||||
cityString, locs = cityString
|
||||
if len(cityString):
|
||||
d["ugcCityString"] = cityString
|
||||
CityLocationDict[ean] = locs
|
||||
|
||||
# partOfState codes
|
||||
if zonedata.has_key(d['ugcCode']):
|
||||
if zonedata[d['ugcCode']].has_key('partOfState'):
|
||||
d["partOfState"] = \
|
||||
zonedata[d['ugcCode']]['partOfState']
|
||||
elif fipsdata.has_key(d['ugcCode']):
|
||||
if fipsdata[d['ugcCode']].has_key('partOfState'):
|
||||
d["partOfState"] = \
|
||||
fipsdata[d['ugcCode']]['partOfState']
|
||||
|
||||
# full state name
|
||||
if zonedata.has_key(d['ugcCode']):
|
||||
if zonedata[d['ugcCode']].has_key('fullStateName'):
|
||||
d["fullStateName"] = \
|
||||
zonedata[d['ugcCode']]['fullStateName']
|
||||
elif fipsdata.has_key(d['ugcCode']):
|
||||
if fipsdata[d['ugcCode']].has_key('fullStateName'):
|
||||
d["fullStateName"] = \
|
||||
fipsdata[d['ugcCode']]['fullStateName']
|
||||
else:
|
||||
marineState = checkMarineState(d['ugcCode'])
|
||||
if marineState is not None:
|
||||
d['fullStateName'] = marineState
|
||||
|
||||
|
||||
if areadict.has_key(ean) and d != areadict[ean]:
|
||||
LogStream.logDiag("Mismatch of definitions in " +\
|
||||
"AreaDictionary creation. EditAreaName=", ean,
|
||||
"AreaDict=\n", areadict[ean], "\nIgnored=\n", d)
|
||||
else:
|
||||
areadict[ean] = d
|
||||
except:
|
||||
LogStream.logProblem("Problem with ", ean, LogStream.exc())
|
||||
mapEntry = mapIter.next()
|
||||
mapname = str(mapEntry.getKey())
|
||||
attList = mapEntry.getValue()
|
||||
attIter = attList.iterator()
|
||||
while attIter.hasNext():
|
||||
att = attIter.next()
|
||||
ean = str(att.get("editarea"))
|
||||
if len(ean):
|
||||
try:
|
||||
d = {}
|
||||
if att.containsKey('zone') and att.containsKey('state'):
|
||||
d['ugcCode'] = str(att.get('state')) + "Z" + str(att.get('zone'))
|
||||
elif att.containsKey('id'):
|
||||
d['ugcCode'] = str(att.get('id'))
|
||||
elif att.containsKey('fips') and att.containsKey('state') and \
|
||||
att.containsKey('countyname'):
|
||||
d['ugcCode'] = str(att.get('state')) + "C" + str(att.get('fips'))[-3:]
|
||||
d['ugcName'] = string.strip(str(att.get('countyname')))
|
||||
else:
|
||||
continue
|
||||
|
||||
if att.containsKey('state'):
|
||||
d["stateAbbr"] = str(att.get('state'))
|
||||
|
||||
if att.containsKey('name'):
|
||||
d["ugcName"] = string.strip(str(att.get('name')))
|
||||
|
||||
if att.containsKey('time_zone'):
|
||||
tzvalue = getRealTimeZone(str(att.get('time_zone')))
|
||||
if tzvalue is not None:
|
||||
d["ugcTimeZone"] = tzvalue
|
||||
|
||||
if zonedata.has_key(d['ugcCode']):
|
||||
cityDict = zonedata[d['ugcCode']]
|
||||
elif fipsdata.has_key(d['ugcCode']):
|
||||
cityDict = fipsdata[d['ugcCode']]
|
||||
else:
|
||||
cityDict = None
|
||||
|
||||
if cityDict:
|
||||
cityString = makeCityString(cityDict)
|
||||
if cityString is not None:
|
||||
cityString, locs = cityString
|
||||
if len(cityString):
|
||||
d["ugcCityString"] = cityString
|
||||
CityLocationDict[ean] = locs
|
||||
|
||||
# partOfState codes
|
||||
if zonedata.has_key(d['ugcCode']):
|
||||
if zonedata[d['ugcCode']].has_key('partOfState'):
|
||||
d["partOfState"] = \
|
||||
zonedata[d['ugcCode']]['partOfState']
|
||||
elif fipsdata.has_key(d['ugcCode']):
|
||||
if fipsdata[d['ugcCode']].has_key('partOfState'):
|
||||
d["partOfState"] = \
|
||||
fipsdata[d['ugcCode']]['partOfState']
|
||||
|
||||
# full state name
|
||||
if zonedata.has_key(d['ugcCode']):
|
||||
if zonedata[d['ugcCode']].has_key('fullStateName'):
|
||||
d["fullStateName"] = \
|
||||
zonedata[d['ugcCode']]['fullStateName']
|
||||
elif fipsdata.has_key(d['ugcCode']):
|
||||
if fipsdata[d['ugcCode']].has_key('fullStateName'):
|
||||
d["fullStateName"] = \
|
||||
fipsdata[d['ugcCode']]['fullStateName']
|
||||
else:
|
||||
marineState = checkMarineState(d['ugcCode'])
|
||||
if marineState is not None:
|
||||
d['fullStateName'] = marineState
|
||||
|
||||
|
||||
if areadict.has_key(ean) and d != areadict[ean]:
|
||||
LogStream.logDiag("Mismatch of definitions in " +\
|
||||
"AreaDictionary creation. EditAreaName=", ean,
|
||||
"AreaDict=\n", areadict[ean], "\nIgnored=\n", d)
|
||||
else:
|
||||
areadict[ean] = d
|
||||
except:
|
||||
LogStream.logProblem("Problem with ", ean, LogStream.exc())
|
||||
|
||||
s = """
|
||||
# ----------------------------------------------------------------------------
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -18,29 +18,34 @@
|
|||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
|
||||
"""Generate site specific text products.
|
||||
|
||||
This script is run at install time to customize a set of the text products
|
||||
for a given site.
|
||||
|
||||
SOFTWARE HISTORY
|
||||
Date Ticket# Engineer Description
|
||||
------------ ---------- ----------- --------------------------
|
||||
Jun 23, 2008 1180 jelkins Initial creation
|
||||
Jul 08, 2008 1222 jelkins Modified for use within Java
|
||||
Jul 09, 2008 1222 jelkins Split command line loader from class
|
||||
Jul 24, 2012 #944 dgilling Refactored to support separate
|
||||
generation of products and utilities.
|
||||
Sep 07, 2012 #1150 dgilling Ensure all necessary dirs get created.
|
||||
May 12, 2014 2536 bclement renamed text plugin to include uf in name
|
||||
|
||||
@author: jelkins
|
||||
"""
|
||||
#
|
||||
# Generate site specific text products.
|
||||
#
|
||||
# This script is run at install time to customize a set of the text products
|
||||
# for a given site.
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# Jun 23, 2008 1180 jelkins Initial creation
|
||||
# Jul 08, 2008 1222 jelkins Modified for use within Java
|
||||
# Jul 09, 2008 1222 jelkins Split command line loader from class
|
||||
# Jul 24, 2012 #944 dgilling Refactored to support separate
|
||||
# generation of products and utilities.
|
||||
# Sep 07, 2012 #1150 dgilling Ensure all necessary dirs get created.
|
||||
# May 12, 2014 2536 bclement renamed text plugin to include uf in name
|
||||
# Oct 20, 2014 #3685 randerso Changed how SiteInfo is loaded.
|
||||
# Fixed logging to log to a file
|
||||
# Cleaned up how protected file updates are returned
|
||||
#
|
||||
# @author: jelkins
|
||||
#
|
||||
##
|
||||
__version__ = "1.0"
|
||||
|
||||
import errno
|
||||
import os
|
||||
import JUtil
|
||||
from os.path import basename
|
||||
from os.path import join
|
||||
from os.path import dirname
|
||||
|
@ -64,7 +69,6 @@ from sys import path
|
|||
path.append(join(LIBRARY_DIR,"../"))
|
||||
path.append(join(PREFERENCE_DIR,"../"))
|
||||
|
||||
from library.SiteInfo import SiteInfo as SITE_INFO
|
||||
from preferences.configureTextProducts import NWSProducts as NWS_PRODUCTS
|
||||
|
||||
from os.path import basename
|
||||
|
@ -73,12 +77,21 @@ from os.path import abspath
|
|||
from os.path import join
|
||||
|
||||
# ---- Setup Logging ----------------------------------------------------------
|
||||
LOG_CONF = join(SCRIPT_DIR,"preferences","logging.conf")
|
||||
import logging
|
||||
from time import strftime, gmtime
|
||||
timeStamp = strftime("%Y%m%d", gmtime())
|
||||
logFile = '/awips2/edex/logs/configureTextProducts-'+timeStamp+'.log'
|
||||
|
||||
import logging.config
|
||||
logging.config.fileConfig(LOG_CONF)
|
||||
LOG = logging.getLogger("configureTextProducts")
|
||||
LOG.setLevel(logging.DEBUG)
|
||||
handler = logging.FileHandler(logFile)
|
||||
handler.setLevel(logging.DEBUG)
|
||||
formatter = logging.Formatter("%(levelname)-5s %(asctime)s [%(process)d:%(thread)d] %(filename)s: %(message)s")
|
||||
handler.setFormatter(formatter)
|
||||
for h in LOG.handlers:
|
||||
LOG.removeHandler(h)
|
||||
LOG.addHandler(handler)
|
||||
|
||||
LOG = logging.getLogger("Generator")
|
||||
|
||||
# List of protected files
|
||||
fileList = []
|
||||
|
@ -96,6 +109,17 @@ ProcessDirectories = [
|
|||
},
|
||||
]
|
||||
|
||||
# This will "load" SiteInfo in a more complicated way
|
||||
# than 'from SiteCFG import SiteInfo'.
|
||||
from LockingFile import File
|
||||
|
||||
pathManager = PathManagerFactory.getPathManager()
|
||||
lf = pathManager.getStaticLocalizationFile(LocalizationType.COMMON_STATIC, "python/gfe/SiteCFG.py")
|
||||
with File(lf.getFile(), lf.getName(), 'r') as file:
|
||||
fileContents = file.read()
|
||||
|
||||
exec fileContents
|
||||
|
||||
|
||||
class Generator():
|
||||
"""Generates site specific text products from base template files.
|
||||
|
@ -118,7 +142,7 @@ class Generator():
|
|||
|
||||
@raise LookupError: when the site ID is invalid
|
||||
"""
|
||||
if siteId in SITE_INFO.keys():
|
||||
if siteId in SiteInfo.keys():
|
||||
self.__siteId = siteId
|
||||
else:
|
||||
raise LookupError, ' unknown WFO: ' + siteId
|
||||
|
@ -179,6 +203,8 @@ class Generator():
|
|||
created += self.__create(dirInfo['src'], dirInfo['dest'])
|
||||
LOG.info("%d text products created" % created)
|
||||
LOG.debug("Configuration of Text Products Finish")
|
||||
|
||||
return JUtil.pylistToJavaStringList(self.getProtectedFiles())
|
||||
|
||||
def delete(self):
|
||||
"""Delete text products"""
|
||||
|
@ -216,11 +242,11 @@ class Generator():
|
|||
|
||||
LOG.debug("PIL Information for all sites Begin.......")
|
||||
|
||||
for site in SITE_INFO.keys():
|
||||
for site in SiteInfo.keys():
|
||||
LOG.info("--------------------------------------------")
|
||||
LOG.info("%s %s %s" % (site,
|
||||
SITE_INFO[site]['fullStationID'],
|
||||
SITE_INFO[site]['wfoCityState']))
|
||||
SiteInfo[site]['fullStationID'],
|
||||
SiteInfo[site]['wfoCityState']))
|
||||
pils = self.__createPilDictionary(site)
|
||||
self.__printPilDictionary(pils)
|
||||
found += len(pils)
|
||||
|
@ -303,11 +329,11 @@ class Generator():
|
|||
|
||||
subDict = {}
|
||||
subDict['<site>'] = siteid.strip()
|
||||
subDict['<region>'] = SITE_INFO[siteid]['region'].strip()
|
||||
subDict['<wfoCityState>'] = SITE_INFO[siteid]['wfoCityState'].strip()
|
||||
subDict['<wfoCity>'] = SITE_INFO[siteid]['wfoCity'].strip()
|
||||
subDict['<fullStationID>'] = SITE_INFO[siteid]['fullStationID'].strip()
|
||||
subDict['<state>'] = SITE_INFO[siteid]['state'].strip()
|
||||
subDict['<region>'] = SiteInfo[siteid]['region'].strip()
|
||||
subDict['<wfoCityState>'] = SiteInfo[siteid]['wfoCityState'].strip()
|
||||
subDict['<wfoCity>'] = SiteInfo[siteid]['wfoCity'].strip()
|
||||
subDict['<fullStationID>'] = SiteInfo[siteid]['fullStationID'].strip()
|
||||
subDict['<state>'] = SiteInfo[siteid]['state'].strip()
|
||||
if product is not None:
|
||||
subDict['<product>'] = product.strip()
|
||||
if ProductToStandardMapping.has_key(product):
|
||||
|
@ -342,7 +368,7 @@ class Generator():
|
|||
|
||||
subDict = {}
|
||||
subDict['Site'] = siteid.strip()
|
||||
subDict['Region'] = SITE_INFO[siteid]['region'].strip()
|
||||
subDict['Region'] = SiteInfo[siteid]['region'].strip()
|
||||
if product is not None:
|
||||
subDict['Product'] = product.strip()
|
||||
if pilInfo is not None and pilInfo.has_key("pil") and multiPilFlag:
|
||||
|
@ -378,10 +404,10 @@ class Generator():
|
|||
LOG.info("%s %s" % (p,pillist[p]))
|
||||
|
||||
def __createPilDictionary(self, siteid):
|
||||
"""Update the SITE_INFO with a PIL dictionary
|
||||
"""Update the SiteInfo with a PIL dictionary
|
||||
|
||||
Read the a2a data from the database, create PIL information, and add the information
|
||||
to the SITE_INFO dictionary.
|
||||
to the SiteInfo dictionary.
|
||||
|
||||
@param site: the site for which PIL information is created
|
||||
@type site: string
|
||||
|
@ -390,7 +416,7 @@ class Generator():
|
|||
@rtype: dictionary
|
||||
"""
|
||||
|
||||
siteD = SITE_INFO[siteid]
|
||||
siteD = SiteInfo[siteid]
|
||||
stationID4 = siteD['fullStationID']
|
||||
|
||||
from com.raytheon.uf.edex.plugin.text.dao import AfosToAwipsDao
|
||||
|
@ -435,7 +461,7 @@ class Generator():
|
|||
e['textdbPil'] = pil
|
||||
e['awipsWANPil'] = site4 + pil[3:]
|
||||
d.append(e)
|
||||
siteD[nnn] = d #store the pil dictionary back into the SITE_INFO
|
||||
siteD[nnn] = d #store the pil dictionary back into the SiteInfo
|
||||
|
||||
return pillist
|
||||
|
||||
|
@ -572,8 +598,8 @@ class Generator():
|
|||
continue
|
||||
|
||||
# extract out the pil information from the dictionary
|
||||
if SITE_INFO[siteid].has_key(pilNames[0]):
|
||||
pils = SITE_INFO[siteid][pilNames[0]]
|
||||
if SiteInfo[siteid].has_key(pilNames[0]):
|
||||
pils = SiteInfo[siteid][pilNames[0]]
|
||||
else:
|
||||
#set pils to empty list if none defined
|
||||
pils = [{'awipsWANPil': 'kssscccnnn',
|
||||
|
@ -728,4 +754,7 @@ class Generator():
|
|||
LOG.debug(" Deleting Existing Baseline Templates Finished........")
|
||||
|
||||
return productsRemoved
|
||||
|
||||
|
||||
def runFromJava(siteId, destinationDir):
|
||||
generator = Generator()
|
||||
return generator.create(siteId, destinationDir)
|
|
@ -1,922 +0,0 @@
|
|||
##
|
||||
# This software was developed and / or modified by Raytheon Company,
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# This software product contains export-restricted data whose
|
||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
# to non-U.S. persons whether in the United States or abroad requires
|
||||
# an export license or other authorization.
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
#Contains information about products, regions, etc. for each site
|
||||
#in the country.
|
||||
|
||||
#region= two-letter regional identifier, mainly used for installation of
|
||||
# text product templates
|
||||
SiteInfo= {
|
||||
'ABQ': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KABQ',
|
||||
'wfoCityState': 'ALBUQUERQUE NM',
|
||||
'wfoCity': 'ALBUQUERQUE',
|
||||
'state': 'NEW MEXICO',
|
||||
},
|
||||
'ABR': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KABR',
|
||||
'wfoCityState': 'ABERDEEN SD',
|
||||
'wfoCity': 'ABERDEEN',
|
||||
'state': 'SOUTH DAKOTA',
|
||||
},
|
||||
'AER': {
|
||||
'region': 'AR',
|
||||
'fullStationID': 'PAFC',
|
||||
'wfoCityState': 'ANCHORAGE AK',
|
||||
'wfoCity': 'ANCHORAGE',
|
||||
'state': 'ALASKA',
|
||||
},
|
||||
'AFC': {
|
||||
'region': 'AR',
|
||||
'fullStationID': 'PAFC',
|
||||
'wfoCityState': 'ANCHORAGE AK',
|
||||
'wfoCity': 'ANCHORAGE',
|
||||
'state': 'ALASKA',
|
||||
},
|
||||
'AFG': {
|
||||
'region': 'AR',
|
||||
'fullStationID': 'PAFG',
|
||||
'wfoCityState': 'FAIRBANKS AK',
|
||||
'wfoCity': 'FAIRBANKS',
|
||||
'state': 'ALASKA',
|
||||
},
|
||||
'AJK': {
|
||||
'region': 'AR',
|
||||
'fullStationID': 'PAJK',
|
||||
'wfoCityState': 'JUNEAU AK',
|
||||
'wfoCity': 'JUNEAU',
|
||||
'state': 'ALASKA',
|
||||
},
|
||||
'AKQ': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KAKQ',
|
||||
'wfoCityState': 'WAKEFIELD VA',
|
||||
'wfoCity': 'WAKEFIELD',
|
||||
'state': 'VIRGINIA',
|
||||
},
|
||||
'ALU': {
|
||||
'region': 'AR',
|
||||
'fullStationID': 'PAFC',
|
||||
'wfoCityState': 'ANCHORAGE AK',
|
||||
'wfoCity': 'ANCHORAGE',
|
||||
'state': 'ALASKA',
|
||||
},
|
||||
'ALY': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KALY',
|
||||
'wfoCityState': 'ALBANY NY',
|
||||
'wfoCity': 'ALBANY',
|
||||
'state': 'NEW YORK',
|
||||
},
|
||||
'AMA': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KAMA',
|
||||
'wfoCityState': 'AMARILLO TX',
|
||||
'wfoCity': 'AMARILLO',
|
||||
'state': 'TEXAS',
|
||||
},
|
||||
'APX': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KAPX',
|
||||
'wfoCityState': 'GAYLORD MI',
|
||||
'wfoCity': 'GAYLORD',
|
||||
'state': 'MICHIGAN',
|
||||
},
|
||||
'ARX': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KARX',
|
||||
'wfoCityState': 'LA CROSSE WI',
|
||||
'wfoCity': 'LA CROSSE',
|
||||
'state': 'WISCONSIN',
|
||||
},
|
||||
'BGM': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KBGM',
|
||||
'wfoCityState': 'BINGHAMTON NY',
|
||||
'wfoCity': 'BINGHAMTON',
|
||||
'state': 'NEW YORK',
|
||||
},
|
||||
'BIS': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KBIS',
|
||||
'wfoCityState': 'BISMARCK ND',
|
||||
'wfoCity': 'BISMARCK',
|
||||
'state': 'NORTH DAKOTA',
|
||||
},
|
||||
'BMX': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KBMX',
|
||||
'wfoCityState': 'BIRMINGHAM AL',
|
||||
'wfoCity': 'BIRMINGHAM',
|
||||
'state': 'ALABAMA',
|
||||
},
|
||||
'BOI': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KBOI',
|
||||
'wfoCityState': 'BOISE ID',
|
||||
'wfoCity': 'BOISE',
|
||||
'state': 'IDAHO',
|
||||
},
|
||||
'BOU': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KBOU',
|
||||
'wfoCityState': 'DENVER CO',
|
||||
'wfoCity': 'DENVER',
|
||||
'state': 'COLORADO',
|
||||
},
|
||||
'BOX': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KBOX',
|
||||
'wfoCityState': 'TAUNTON MA',
|
||||
'wfoCity': 'TAUNTON',
|
||||
'state': 'MASSACHUSETTS',
|
||||
},
|
||||
'BRO': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KBRO',
|
||||
'wfoCityState': 'BROWNSVILLE TX',
|
||||
'wfoCity': 'BROWNSVILLE',
|
||||
'state': 'TEXAS',
|
||||
},
|
||||
'BTV': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KBTV',
|
||||
'wfoCityState': 'BURLINGTON VT',
|
||||
'wfoCity': 'BURLINGTON',
|
||||
'state': 'VERMONT',
|
||||
},
|
||||
'BUF': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KBUF',
|
||||
'wfoCityState': 'BUFFALO NY',
|
||||
'wfoCity': 'BUFFALO',
|
||||
'state': 'NEW YORK',
|
||||
},
|
||||
'BYZ': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KBYZ',
|
||||
'wfoCityState': 'BILLINGS MT',
|
||||
'wfoCity': 'BILLINGS',
|
||||
'state': 'MONTANA',
|
||||
},
|
||||
'CAE': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KCAE',
|
||||
'wfoCityState': 'COLUMBIA SC',
|
||||
'wfoCity': 'COLUMBIA',
|
||||
'state': 'SOUTH CAROLINA',
|
||||
},
|
||||
'CAR': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KCAR',
|
||||
'wfoCityState': 'CARIBOU ME',
|
||||
'wfoCity': 'CARIBOU',
|
||||
'state': 'MAINE',
|
||||
},
|
||||
'CHS': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KCHS',
|
||||
'wfoCityState': 'CHARLESTON SC',
|
||||
'wfoCity': 'CHARLESTON',
|
||||
'state': 'SOUTH CAROLINA',
|
||||
},
|
||||
'CLE': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KCLE',
|
||||
'wfoCityState': 'CLEVELAND OH',
|
||||
'wfoCity': 'CLEVELAND',
|
||||
'state': 'OHIO',
|
||||
},
|
||||
'CRP': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KCRP',
|
||||
'wfoCityState': 'CORPUS CHRISTI TX',
|
||||
'wfoCity': 'CORPUS CHRISTI',
|
||||
'state': 'TEXAS',
|
||||
},
|
||||
'CTP': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KCTP',
|
||||
'wfoCityState': 'STATE COLLEGE PA',
|
||||
'wfoCity': 'STATE COLLEGE',
|
||||
'state': 'PENNSYLVANIA',
|
||||
},
|
||||
'CYS': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KCYS',
|
||||
'wfoCityState': 'CHEYENNE WY',
|
||||
'wfoCity': 'CHEYENNE',
|
||||
'state': 'WYOMING',
|
||||
},
|
||||
'DDC': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KDDC',
|
||||
'wfoCityState': 'DODGE CITY KS',
|
||||
'wfoCity': 'DODGE CITY',
|
||||
'state': 'KANSAS',
|
||||
},
|
||||
'DLH': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KDLH',
|
||||
'wfoCityState': 'DULUTH MN',
|
||||
'wfoCity': 'DULUTH',
|
||||
'state': 'MINNESOTA',
|
||||
},
|
||||
'DMX': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KDMX',
|
||||
'wfoCityState': 'DES MOINES IA',
|
||||
'wfoCity': 'DES MOINES',
|
||||
'state': 'IOWA',
|
||||
},
|
||||
'DTX': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KDTX',
|
||||
'wfoCityState': 'DETROIT/PONTIAC MI',
|
||||
'wfoCity': 'DETROIT/PONTIAC',
|
||||
'state': 'MICHIGAN',
|
||||
},
|
||||
'DVN': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KDVN',
|
||||
'wfoCityState': 'QUAD CITIES IA IL',
|
||||
'wfoCity': 'QUAD CITIES',
|
||||
'state': 'ILLINOIS',
|
||||
},
|
||||
'EAX': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KEAX',
|
||||
'wfoCityState': 'KANSAS CITY/PLEASANT HILL MO',
|
||||
'wfoCity': 'KANSAS CITY/PLEASANT HILL',
|
||||
'state': 'MISSOURI',
|
||||
},
|
||||
'EKA': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KEKA',
|
||||
'wfoCityState': 'EUREKA CA',
|
||||
'wfoCity': 'EUREKA',
|
||||
'state': 'CALIFORNIA',
|
||||
},
|
||||
'EPZ': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KEPZ',
|
||||
'wfoCityState': 'EL PASO TX/SANTA TERESA NM',
|
||||
'wfoCity': 'EL PASO TX/SANTA TERESA',
|
||||
'state': 'NEW MEXICO',
|
||||
},
|
||||
'EWX': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KEWX',
|
||||
'wfoCityState': 'AUSTIN/SAN ANTONIO TX',
|
||||
'wfoCity': 'AUSTIN/SAN ANTONIO',
|
||||
'state': 'TEXAS',
|
||||
},
|
||||
'FFC': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KFFC',
|
||||
'wfoCityState': 'PEACHTREE CITY GA',
|
||||
'wfoCity': 'PEACHTREE CITY',
|
||||
'state': 'GEORGIA',
|
||||
},
|
||||
'FGF': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KFGF',
|
||||
'wfoCityState': 'GRAND FORKS ND',
|
||||
'wfoCity': 'GRAND FORKS',
|
||||
'state': 'NORTH DAKOTA',
|
||||
},
|
||||
'FGZ': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KFGZ',
|
||||
'wfoCityState': 'FLAGSTAFF AZ',
|
||||
'wfoCity': 'FLAGSTAFF',
|
||||
'state': 'ARIZONA',
|
||||
},
|
||||
'FSD': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KFSD',
|
||||
'wfoCityState': 'SIOUX FALLS SD',
|
||||
'wfoCity': 'SIOUX FALLS',
|
||||
'state': 'SOUTH DAKOTA',
|
||||
},
|
||||
'FWD': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KFWD',
|
||||
'wfoCityState': 'FORT WORTH TX',
|
||||
'wfoCity': 'FORT WORTH',
|
||||
'state': 'TEXAS',
|
||||
},
|
||||
'GGW': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KGGW',
|
||||
'wfoCityState': 'GLASGOW MT',
|
||||
'wfoCity': 'GLASGOW',
|
||||
'state': 'MONTANA',
|
||||
},
|
||||
'GID': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KGID',
|
||||
'wfoCityState': 'HASTINGS NE',
|
||||
'wfoCity': 'HASTINGS',
|
||||
'state': 'NEBRASKA',
|
||||
},
|
||||
'GJT': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KGJT',
|
||||
'wfoCityState': 'GRAND JUNCTION CO',
|
||||
'wfoCity': 'GRAND JUNCTION',
|
||||
'state': 'COLORADO',
|
||||
},
|
||||
'GLD': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KGLD',
|
||||
'wfoCityState': 'GOODLAND KS',
|
||||
'wfoCity': 'GOODLAND',
|
||||
'state': 'KANSAS',
|
||||
},
|
||||
'GRB': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KGRB',
|
||||
'wfoCityState': 'GREEN BAY WI',
|
||||
'wfoCity': 'GREEN BAY',
|
||||
'state': 'WISCONSIN',
|
||||
},
|
||||
'GRR': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KGRR',
|
||||
'wfoCityState': 'GRAND RAPIDS MI',
|
||||
'wfoCity': 'GRAND RAPIDS',
|
||||
'state': 'MICHIGAN',
|
||||
},
|
||||
'GSP': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KGSP',
|
||||
'wfoCityState': 'GREENVILLE-SPARTANBURG SC',
|
||||
'wfoCity': 'GREENVILLE-SPARTANBURG',
|
||||
'state': 'SOUTH CAROLINA',
|
||||
},
|
||||
'GUM': {
|
||||
'region': 'PR',
|
||||
'fullStationID': 'PGUM',
|
||||
'wfoCityState': 'TIYAN GU',
|
||||
'wfoCity': 'TIYAN',
|
||||
'state': 'GUAM',
|
||||
},
|
||||
'GYX': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KGYX',
|
||||
'wfoCityState': 'GRAY ME',
|
||||
'wfoCity': 'GRAY',
|
||||
'state': 'MAINE',
|
||||
},
|
||||
'HFO': {
|
||||
'region': 'PR',
|
||||
'fullStationID': 'PHFO',
|
||||
'wfoCityState': 'HONOLULU HI',
|
||||
'wfoCity': 'HONOLULU',
|
||||
'state': 'HAWAII',
|
||||
},
|
||||
'HGX': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KHGX',
|
||||
'wfoCityState': 'HOUSTON/GALVESTON TX',
|
||||
'wfoCity': 'HOUSTON/GALVESTON',
|
||||
'state': 'TEXAS',
|
||||
},
|
||||
'HNX': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KHNX',
|
||||
'wfoCityState': 'HANFORD CA',
|
||||
'wfoCity': 'HANFORD',
|
||||
'state': 'CALIFORNIA',
|
||||
},
|
||||
'HUN': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KHUN',
|
||||
'wfoCityState': 'HUNTSVILLE AL',
|
||||
'wfoCity': 'HUNTSVILLE',
|
||||
'state': 'ALABAMA',
|
||||
},
|
||||
'ICT': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KICT',
|
||||
'wfoCityState': 'WICHITA KS',
|
||||
'wfoCity': 'WICHITA',
|
||||
'state': 'KANSAS',
|
||||
},
|
||||
'ILM': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KILM',
|
||||
'wfoCityState': 'WILMINGTON NC',
|
||||
'wfoCity': 'WILMINGTON',
|
||||
'state': 'NORTH CAROLINA',
|
||||
},
|
||||
'ILN': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KILN',
|
||||
'wfoCityState': 'WILMINGTON OH',
|
||||
'wfoCity': 'WILMINGTON',
|
||||
'state': 'OHIO',
|
||||
},
|
||||
'ILX': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KILX',
|
||||
'wfoCityState': 'LINCOLN IL',
|
||||
'wfoCity': 'LINCOLN',
|
||||
'state': 'ILLINOIS',
|
||||
},
|
||||
'IND': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KIND',
|
||||
'wfoCityState': 'INDIANAPOLIS IN',
|
||||
'wfoCity': 'INDIANAPOLIS',
|
||||
'state': 'INDIANA',
|
||||
},
|
||||
'IWX': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KIWX',
|
||||
'wfoCityState': 'NORTHERN INDIANA',
|
||||
'wfoCity': 'NORTHERN INDIANA',
|
||||
'state': 'INDIANA',
|
||||
},
|
||||
'JAN': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KJAN',
|
||||
'wfoCityState': 'JACKSON MS',
|
||||
'wfoCity': 'JACKSON',
|
||||
'state': 'MISSISSIPPI',
|
||||
},
|
||||
'JAX': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KJAX',
|
||||
'wfoCityState': 'JACKSONVILLE FL',
|
||||
'wfoCity': 'JACKSONVILLE',
|
||||
'state': 'FLORIDA',
|
||||
},
|
||||
'JKL': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KJKL',
|
||||
'wfoCityState': 'JACKSON KY',
|
||||
'wfoCity': 'JACKSON',
|
||||
'state': 'KENTUCKY',
|
||||
},
|
||||
'KEY': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KKEY',
|
||||
'wfoCityState': 'KEY WEST FL',
|
||||
'wfoCity': 'KEY WEST',
|
||||
'state': 'FLORIDA',
|
||||
},
|
||||
'LBF': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KLBF',
|
||||
'wfoCityState': 'NORTH PLATTE NE',
|
||||
'wfoCity': 'NORTH PLATTE',
|
||||
'state': 'NEBRASKA',
|
||||
},
|
||||
'LCH': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KLCH',
|
||||
'wfoCityState': 'LAKE CHARLES LA',
|
||||
'wfoCity': 'LAKE CHARLES',
|
||||
'state': 'LOUISIANA',
|
||||
},
|
||||
'LIX': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KLIX',
|
||||
'wfoCityState': 'NEW ORLEANS LA',
|
||||
'wfoCity': 'NEW ORLEANS',
|
||||
'state': 'LOUISIANA',
|
||||
},
|
||||
'LKN': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KLKN',
|
||||
'wfoCityState': 'ELKO NV',
|
||||
'wfoCity': 'ELKO',
|
||||
'state': 'NEVADA',
|
||||
},
|
||||
'LMK': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KLMK',
|
||||
'wfoCityState': 'LOUISVILLE KY',
|
||||
'wfoCity': 'LOUISVILLE',
|
||||
'state': 'KENTUCKY',
|
||||
},
|
||||
'LOT': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KLOT',
|
||||
'wfoCityState': 'CHICAGO IL',
|
||||
'wfoCity': 'CHICAGO',
|
||||
'state': 'ILLINOIS',
|
||||
},
|
||||
'LOX': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KLOX',
|
||||
'wfoCityState': 'LOS ANGELES/OXNARD CA',
|
||||
'wfoCity': 'LOS ANGELES/OXNARD',
|
||||
'state': 'CALIFORNIA',
|
||||
},
|
||||
'LSX': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KLSX',
|
||||
'wfoCityState': 'ST LOUIS MO',
|
||||
'wfoCity': 'ST LOUIS',
|
||||
'state': 'MISSOURI',
|
||||
},
|
||||
'LUB': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KLUB',
|
||||
'wfoCityState': 'LUBBOCK TX',
|
||||
'wfoCity': 'LUBBOCK',
|
||||
'state': 'TEXAS',
|
||||
},
|
||||
'LWX': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KLWX',
|
||||
'wfoCityState': 'BALTIMORE MD/WASHINGTON DC',
|
||||
'wfoCity': 'BALTIMORE MD/WASHINGTON',
|
||||
'state': 'WASHINGTON DC',
|
||||
},
|
||||
'LZK': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KLZK',
|
||||
'wfoCityState': 'LITTLE ROCK AR',
|
||||
'wfoCity': 'LITTLE ROCK',
|
||||
'state': 'ARKANSAS',
|
||||
},
|
||||
'MAF': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KMAF',
|
||||
'wfoCityState': 'MIDLAND/ODESSA TX',
|
||||
'wfoCity': 'MIDLAND/ODESSA',
|
||||
'state': 'TEXAS',
|
||||
},
|
||||
'MEG': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KMEG',
|
||||
'wfoCityState': 'MEMPHIS TN',
|
||||
'wfoCity': 'MEMPHIS',
|
||||
'state': 'TENNESSEE',
|
||||
},
|
||||
'MFL': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KMFL',
|
||||
'wfoCityState': 'MIAMI FL',
|
||||
'wfoCity': 'MIAMI',
|
||||
'state': 'FLORIDA',
|
||||
},
|
||||
'MFR': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KMFR',
|
||||
'wfoCityState': 'MEDFORD OR',
|
||||
'wfoCity': 'MEDFORD',
|
||||
'state': 'OREGON',
|
||||
},
|
||||
'MHX': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KMHX',
|
||||
'wfoCityState': 'NEWPORT/MOREHEAD CITY NC',
|
||||
'wfoCity': 'NEWPORT/MOREHEAD CITY',
|
||||
'state': 'NORTH CAROLINA',
|
||||
},
|
||||
'MKX': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KMKX',
|
||||
'wfoCityState': 'MILWAUKEE/SULLIVAN WI',
|
||||
'wfoCity': 'MILWAUKEE/SULLIVAN',
|
||||
'state': 'WISCONSIN',
|
||||
},
|
||||
'MLB': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KMLB',
|
||||
'wfoCityState': 'MELBOURNE FL',
|
||||
'wfoCity': 'MELBOURNE',
|
||||
'state': 'FLORIDA',
|
||||
},
|
||||
'MOB': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KMOB',
|
||||
'wfoCityState': 'MOBILE AL',
|
||||
'wfoCity': 'MOBILE',
|
||||
'state': 'ALABAMA',
|
||||
},
|
||||
'MPX': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KMPX',
|
||||
'wfoCityState': 'TWIN CITIES/CHANHASSEN MN',
|
||||
'wfoCity': 'TWIN CITIES/CHANHASSEN',
|
||||
'state': 'MINNESOTA',
|
||||
},
|
||||
'MQT': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KMQT',
|
||||
'wfoCityState': 'MARQUETTE MI',
|
||||
'wfoCity': 'MARQUETTE',
|
||||
'state': 'MICHIGAN',
|
||||
},
|
||||
'MRX': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KMRX',
|
||||
'wfoCityState': 'MORRISTOWN TN',
|
||||
'wfoCity': 'MORRISTOWN',
|
||||
'state': 'TENNESSEE',
|
||||
},
|
||||
'MSO': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KMSO',
|
||||
'wfoCityState': 'MISSOULA MT',
|
||||
'wfoCity': 'MISSOULA',
|
||||
'state': 'MONTANA',
|
||||
},
|
||||
'MTR': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KMTR',
|
||||
'wfoCityState': 'SAN FRANCISCO CA',
|
||||
'wfoCity': 'SAN FRANCISCO',
|
||||
'state': 'CALIFORNIA',
|
||||
},
|
||||
'NH1': {
|
||||
'region': 'NC',
|
||||
'fullStationID': 'KNHC',
|
||||
'wfoCityState': 'NATIONAL HURRICANE CENTER MIAMI FL',
|
||||
'wfoCity': 'MIAMI',
|
||||
'state': '',
|
||||
},
|
||||
'NH2': {
|
||||
'region': 'NC',
|
||||
'fullStationID': 'KNHC',
|
||||
'wfoCityState': 'NATIONAL HURRICANE CENTER MIAMI FL',
|
||||
'wfoCity': 'MIAMI',
|
||||
'state': '',
|
||||
},
|
||||
'OAX': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KOAX',
|
||||
'wfoCityState': 'OMAHA/VALLEY NE',
|
||||
'wfoCity': 'OMAHA/VALLEY',
|
||||
'state': 'NEBRASKA',
|
||||
},
|
||||
'OHX': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KOHX',
|
||||
'wfoCityState': 'NASHVILLE TN',
|
||||
'wfoCity': 'NASHVILLE',
|
||||
'state': 'TENNESSEE',
|
||||
},
|
||||
'OKX': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KOKX',
|
||||
'wfoCityState': 'UPTON NY',
|
||||
'wfoCity': 'UPTON',
|
||||
'state': 'NEW YORK',
|
||||
},
|
||||
'ONA': {
|
||||
'region': 'NC',
|
||||
'fullStationID': 'KWBC',
|
||||
'wfoCityState': 'OCEAN PREDICTION CENTER WASHINGTON DC',
|
||||
'wfoCity': 'WASHINGTON DC',
|
||||
'state': '',
|
||||
},
|
||||
'ONP': {
|
||||
'region': 'NC',
|
||||
'fullStationID': 'KWBC',
|
||||
'wfoCityState': 'OCEAN PREDICTION CENTER WASHINGTON DC',
|
||||
'wfoCity': 'WASHINGTON DC',
|
||||
'state': '',
|
||||
},
|
||||
'OTX': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KOTX',
|
||||
'wfoCityState': 'SPOKANE WA',
|
||||
'wfoCity': 'SPOKANE',
|
||||
'state': 'WASHINGTON',
|
||||
},
|
||||
'OUN': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KOUN',
|
||||
'wfoCityState': 'NORMAN OK',
|
||||
'wfoCity': 'NORMAN',
|
||||
'state': 'OKLAHOMA',
|
||||
},
|
||||
'PAH': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KPAH',
|
||||
'wfoCityState': 'PADUCAH KY',
|
||||
'wfoCity': 'PADUCAH',
|
||||
'state': 'KENTUCKY',
|
||||
},
|
||||
'PBZ': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KPBZ',
|
||||
'wfoCityState': 'PITTSBURGH PA',
|
||||
'wfoCity': 'PITTSBURGH',
|
||||
'state': 'PENNSYLVANIA',
|
||||
},
|
||||
'PDT': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KPDT',
|
||||
'wfoCityState': 'PENDLETON OR',
|
||||
'wfoCity': 'PENDLETON',
|
||||
'state': 'OREGON',
|
||||
},
|
||||
'PHI': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KPHI',
|
||||
'wfoCityState': 'MOUNT HOLLY NJ',
|
||||
'wfoCity': 'MOUNT HOLLY',
|
||||
'state': 'NEW JERSEY',
|
||||
},
|
||||
'PIH': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KPIH',
|
||||
'wfoCityState': 'POCATELLO ID',
|
||||
'wfoCity': 'POCATELLO',
|
||||
'state': 'IDAHO',
|
||||
},
|
||||
'PQR': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KPQR',
|
||||
'wfoCityState': 'PORTLAND OR',
|
||||
'wfoCity': 'PORTLAND',
|
||||
'state': 'OREGON',
|
||||
},
|
||||
'PSR': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KPSR',
|
||||
'wfoCityState': 'PHOENIX AZ',
|
||||
'wfoCity': 'PHOENIX',
|
||||
'state': 'ARIZONA',
|
||||
},
|
||||
'PUB': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KPUB',
|
||||
'wfoCityState': 'PUEBLO CO',
|
||||
'wfoCity': 'PUEBLO',
|
||||
'state': 'COLORADO',
|
||||
},
|
||||
'RAH': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KRAH',
|
||||
'wfoCityState': 'RALEIGH NC',
|
||||
'wfoCity': 'RALEIGH',
|
||||
'state': 'NORTH CAROLINA',
|
||||
},
|
||||
'REV': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KREV',
|
||||
'wfoCityState': 'RENO NV',
|
||||
'wfoCity': 'RENO',
|
||||
'state': 'NEVADA',
|
||||
},
|
||||
'RIW': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KRIW',
|
||||
'wfoCityState': 'RIVERTON WY',
|
||||
'wfoCity': 'RIVERTON',
|
||||
'state': 'WYOMING',
|
||||
},
|
||||
'RLX': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KRLX',
|
||||
'wfoCityState': 'CHARLESTON WV',
|
||||
'wfoCity': 'CHARLESTON',
|
||||
'state': 'WEST VIRGINIA',
|
||||
},
|
||||
'RNK': {
|
||||
'region': 'ER',
|
||||
'fullStationID': 'KRNK',
|
||||
'wfoCityState': 'BLACKSBURG VA',
|
||||
'wfoCity': 'BLACKSBURG',
|
||||
'state': 'VIRGINIA',
|
||||
},
|
||||
'SEW': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KSEW',
|
||||
'wfoCityState': 'SEATTLE WA',
|
||||
'wfoCity': 'SEATTLE',
|
||||
'state': 'WASHINGTON',
|
||||
},
|
||||
'SGF': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KSGF',
|
||||
'wfoCityState': 'SPRINGFIELD MO',
|
||||
'wfoCity': 'SPRINGFIELD',
|
||||
'state': 'MISSOURI',
|
||||
},
|
||||
'SGX': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KSGX',
|
||||
'wfoCityState': 'SAN DIEGO CA',
|
||||
'wfoCity': 'SAN DIEGO',
|
||||
'state': 'CALIFORNIA',
|
||||
},
|
||||
'SHV': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KSHV',
|
||||
'wfoCityState': 'SHREVEPORT LA',
|
||||
'wfoCity': 'SHREVEPORT',
|
||||
'state': 'LOUISIANA',
|
||||
},
|
||||
'SJT': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KSJT',
|
||||
'wfoCityState': 'SAN ANGELO TX',
|
||||
'wfoCity': 'SAN ANGELO',
|
||||
'state': 'TEXAS',
|
||||
},
|
||||
'SJU': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'TJSJ',
|
||||
'wfoCityState': 'SAN JUAN PR',
|
||||
'wfoCity': 'SAN JUAN',
|
||||
'state': 'PUERTO RICO',
|
||||
},
|
||||
'SLC': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KSLC',
|
||||
'wfoCityState': 'SALT LAKE CITY UT',
|
||||
'wfoCity': 'SALT LAKE CITY',
|
||||
'state': 'UTAH',
|
||||
},
|
||||
'STO': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KSTO',
|
||||
'wfoCityState': 'SACRAMENTO CA',
|
||||
'wfoCity': 'SACRAMENTO',
|
||||
'state': 'CALIFORNIA',
|
||||
},
|
||||
'TAE': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KTAE',
|
||||
'wfoCityState': 'TALLAHASSEE FL',
|
||||
'wfoCity': 'TALLAHASSEE',
|
||||
'state': 'FLORIDA',
|
||||
},
|
||||
'TBW': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KTBW',
|
||||
'wfoCityState': 'TAMPA BAY RUSKIN FL',
|
||||
'wfoCity': 'TAMPA BAY RUSKIN',
|
||||
'state': 'FLORIDA',
|
||||
},
|
||||
'TFX': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KTFX',
|
||||
'wfoCityState': 'GREAT FALLS MT',
|
||||
'wfoCity': 'GREAT FALLS',
|
||||
'state': 'MONTANA',
|
||||
},
|
||||
'TOP': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KTOP',
|
||||
'wfoCityState': 'TOPEKA KS',
|
||||
'wfoCity': 'TOPEKA',
|
||||
'state': 'KANSAS',
|
||||
},
|
||||
'TSA': {
|
||||
'region': 'SR',
|
||||
'fullStationID': 'KTSA',
|
||||
'wfoCityState': 'TULSA OK',
|
||||
'wfoCity': 'TULSA',
|
||||
'state': 'OKLAHOMA',
|
||||
},
|
||||
'TWC': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KTWC',
|
||||
'wfoCityState': 'TUCSON AZ',
|
||||
'wfoCity': 'TUCSON',
|
||||
'state': 'ARIZONA',
|
||||
},
|
||||
'UNR': {
|
||||
'region': 'CR',
|
||||
'fullStationID': 'KUNR',
|
||||
'wfoCityState': 'RAPID CITY SD',
|
||||
'wfoCity': 'RAPID CITY',
|
||||
'state': 'SOUTH DAKOTA',
|
||||
},
|
||||
'VEF': {
|
||||
'region': 'WR',
|
||||
'fullStationID': 'KVEF',
|
||||
'wfoCityState': 'LAS VEGAS NV',
|
||||
'wfoCity': 'LAS VEGAS',
|
||||
'state': 'NEVADA',
|
||||
},
|
||||
}
|
|
@ -1,90 +0,0 @@
|
|||
; Logging Configuration
|
||||
|
||||
; To enable file logging and modify the log format see the appropriate sections
|
||||
; below.
|
||||
;
|
||||
; For a more detailed description of this configuration format see the logging
|
||||
; module documentation in the Python Library Reference 14.5.10.2
|
||||
|
||||
; ---- Section Declarations ---------------------------------------------------
|
||||
|
||||
[loggers]
|
||||
keys=root
|
||||
|
||||
[handlers]
|
||||
keys=console,file
|
||||
|
||||
[formatters]
|
||||
keys=console,file
|
||||
|
||||
; ---- Loggers ----------------------------------------------------------------
|
||||
|
||||
[logger_root]
|
||||
level=DEBUG
|
||||
handlers=console,file
|
||||
|
||||
; ---- Handlers ---------------------------------------------------------------
|
||||
|
||||
[handler_console]
|
||||
class=StreamHandler
|
||||
level=INFO
|
||||
formatter=console
|
||||
args=(sys.stdout,)
|
||||
|
||||
[handler_file]
|
||||
class=StreamHandler
|
||||
formatter=console
|
||||
level=CRITICAL
|
||||
args=(sys.stderr,)
|
||||
|
||||
; ---- Enable File Logging ----------------------------------------------------
|
||||
;
|
||||
; Uncomment the following lines to enable file logging. The previous lines can
|
||||
; remain uncommented as the following will simply override the values.
|
||||
;
|
||||
; args replace 'program.log' with desired filename
|
||||
; replace 'w' with 'a' to append to the log file
|
||||
|
||||
;class=FileHandler
|
||||
;level=DEBUG
|
||||
;formatter=file
|
||||
;args=('program.log','a')
|
||||
|
||||
; ---- Formatters -------------------------------------------------------------
|
||||
|
||||
; Configure the format of the console and file log
|
||||
;
|
||||
; %(name)s Name of the logger (logging channel).
|
||||
; %(levelno)s Numeric logging level for the message
|
||||
; (DEBUG, INFO, WARNING, ERROR, CRITICAL).
|
||||
; %(levelname)s Text logging level for the message
|
||||
; ('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL').
|
||||
; %(pathname)s Full pathname of the source file where the logging call was
|
||||
; issued (if available).
|
||||
; %(filename)s Filename portion of pathname.
|
||||
; %(module)s Module (name portion of filename).
|
||||
; %(funcName)s Name of function containing the logging call.
|
||||
; %(lineno)d Source line number where the logging call was issued
|
||||
; (if available).
|
||||
; %(created)f Time when the LogRecord was created
|
||||
; (as returned by time.time()).
|
||||
; %(relativeCreated)d
|
||||
; Time in milliseconds when the LogRecord was created,
|
||||
; relative to the time the logging module was loaded.
|
||||
; %(asctime)s Human-readable time when the LogRecord was created. By default
|
||||
; this is of the form ``2003-07-08 16:49:45,896'' (the numbers
|
||||
; after the comma are millisecond portion of the time).
|
||||
; %(msecs)d Millisecond portion of the time when the LogRecord was created.
|
||||
; %(thread)d Thread ID (if available).
|
||||
; %(threadName)s
|
||||
; Thread name (if available).
|
||||
; %(process)d Process ID (if available).
|
||||
; %(message)s The logged message, computed as msg % args.
|
||||
|
||||
[formatter_file]
|
||||
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
|
||||
datefmt=
|
||||
|
||||
[formatter_console]
|
||||
format=%(name)s - %(levelname)s - %(message)s
|
||||
datefmt=
|
|
@ -17,6 +17,14 @@
|
|||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# Oct 20, 2014 #3685 randerso Changed to support mixed case
|
||||
#
|
||||
##
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# File Name: AFD.py
|
||||
# Description: This product creates a Area Forecast Discussion product.
|
||||
|
@ -245,7 +253,7 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
|
|||
],
|
||||
|
||||
"popStartZ_AM": 12, #hour UTC
|
||||
"WWA_Nil" : "NONE.",
|
||||
"WWA_Nil" : "None.",
|
||||
|
||||
"hazardSamplingThreshold": (10, None), #(%cov, #points)
|
||||
}
|
||||
|
@ -621,12 +629,13 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
|
|||
|
||||
productName = self.checkTestMode(argDict, self._productName)
|
||||
|
||||
fcst = fcst + self._pil + "\n\n"
|
||||
fcst = fcst + productName + "\n"
|
||||
fcst = fcst + "NATIONAL WEATHER SERVICE "
|
||||
fcst = fcst + self._wfoCityState +"\n"
|
||||
fcst = fcst + issuedByString
|
||||
fcst = fcst + self._timeLabel + "\n\n"
|
||||
s = self._pil + "\n\n" + \
|
||||
productName + "\n" + \
|
||||
"NATIONAL WEATHER SERVICE " + \
|
||||
self._wfoCityState +"\n" + \
|
||||
issuedByString + \
|
||||
self._timeLabel + "\n\n"
|
||||
fcst = fcst + s.upper()
|
||||
return fcst
|
||||
|
||||
####################################################################
|
||||
|
@ -776,7 +785,7 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
|
|||
# If no hazards are found, append the null phrase
|
||||
|
||||
if len(stateHazardList) == 0:
|
||||
fcst = fcst + "NONE.\n"
|
||||
fcst = fcst + self._WWA_Nil + "\n"
|
||||
continue
|
||||
|
||||
# If hazards are found, then build the hazard phrases
|
||||
|
@ -822,7 +831,7 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
|
|||
idString = self.makeUGCString(ids)
|
||||
|
||||
# hazard phrase
|
||||
phrase = hazName + ' ' + timing + ' FOR ' + idString + '.'
|
||||
phrase = hazName + ' ' + timing + ' for ' + idString + '.'
|
||||
|
||||
# Indent if there is a state list associated
|
||||
if len(self._state_IDs) > 1:
|
||||
|
|
|
@ -27,6 +27,15 @@
|
|||
#
|
||||
# Author: davis
|
||||
# ----------------------------------------------------------------------------
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# Oct 20, 2014 #3685 randerso Changed to support mixed case
|
||||
#
|
||||
##
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# Example Output:
|
||||
# Refer to the NWS 10-518 Directive for further information.
|
||||
|
@ -111,7 +120,6 @@ class TextProduct(CivilEmerg.TextProduct):
|
|||
return fcst
|
||||
|
||||
def _postProcessProduct(self, fcst, argDict):
|
||||
fcst = string.upper(fcst)
|
||||
fcst = self.endline(fcst, linelength=self._lineLength, breakStr=[" ", "...", "-"])
|
||||
self.setProgressPercentage(100)
|
||||
self.progressMessage(0, 100, self._displayName + " Complete")
|
||||
|
|
|
@ -27,6 +27,15 @@
|
|||
#
|
||||
# Author: Matt Davis
|
||||
# ----------------------------------------------------------------------------
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# Oct 20, 2014 #3685 randerso Changed to support mixed case
|
||||
#
|
||||
##
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# Example Output:
|
||||
# Refer to the NWS 10-922 Directive for further information.
|
||||
|
@ -119,10 +128,10 @@ class TextProduct(GenericReport.TextProduct):
|
|||
|
||||
issuedByString = self.getIssuedByString()
|
||||
productName = self.checkTestMode(argDict, self._productName)
|
||||
fcst = fcst + productName + "\n" + \
|
||||
s = productName + "\n" + \
|
||||
"NATIONAL WEATHER SERVICE " + self._wfoCityState + \
|
||||
"\n" + issuedByString + self._timeLabel + "\n\n"
|
||||
fcst = string.upper(fcst)
|
||||
fcst = fcst + s.upper()
|
||||
return fcst
|
||||
|
||||
def _makeProduct(self, fcst, editArea, areaLabel, argDict):
|
||||
|
@ -132,8 +141,6 @@ class TextProduct(GenericReport.TextProduct):
|
|||
return fcst
|
||||
|
||||
def _postProcessProduct(self, fcst, argDict):
|
||||
fcst = string.upper(fcst)
|
||||
|
||||
#
|
||||
# Clean up multiple line feeds
|
||||
#
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
##
|
||||
# This software was developed and / or modified by Raytheon Company,
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
#
|
||||
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
# This software product contains export-restricted data whose
|
||||
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
# to non-U.S. persons whether in the United States or abroad requires
|
||||
# an export license or other authorization.
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# Contractor Name: Raytheon Company
|
||||
# Contractor Address: 6825 Pine Street, Suite 340
|
||||
# Mail Stop B8
|
||||
# Omaha, NE 68106
|
||||
# 402.291.0100
|
||||
#
|
||||
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
# further licensing information.
|
||||
##
|
||||
|
@ -505,7 +505,8 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis,
|
|||
hazNameA = self.hazardName(eachHazard['hdln'], argDict, True)
|
||||
hazName = self.hazardName(eachHazard['hdln'], argDict, False)
|
||||
|
||||
if hazName == "WINTER WEATHER ADVISORY" or hazName == "WINTER STORM WARNING":
|
||||
# if hazName == "WINTER WEATHER ADVISORY" or hazName == "WINTER STORM WARNING":
|
||||
if hazName in ["WINTER WEATHER ADVISORY", "WINTER STORM WARNING", "BEACH HAZARDS STATEMENT"]:
|
||||
forPhrase = " FOR |* ENTER HAZARD TYPE *|"
|
||||
else:
|
||||
forPhrase =""
|
||||
|
@ -735,8 +736,12 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis,
|
|||
segmentTextSplit[1] = PRECAUTION + segmentTextSplit2[1]
|
||||
segmentText = string.join(segmentTextSplit,"")
|
||||
|
||||
if removeBulletList != []:
|
||||
if keepBulletList == []:
|
||||
segmentText = "\n\n|* WRAP-UP TEXT GOES HERE *|.\n"
|
||||
elif removeBulletList != []:
|
||||
segmentText = "|*\n" + segmentText + "*|"
|
||||
else:
|
||||
segmentText = segmentText
|
||||
|
||||
#
|
||||
# If segment passes the above checks, add the text
|
||||
|
|
|
@ -105,6 +105,13 @@
|
|||
# Example Output:
|
||||
# Refer to the NWS C11 and 10-503 Directives for Public Weather Services.
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# Oct 20, 2014 #3685 randerso Removed upper case conversions
|
||||
#
|
||||
##
|
||||
|
||||
import TextRules
|
||||
import SampleAnalysis
|
||||
|
@ -200,7 +207,6 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
|
|||
fcst = self._postProcessArea(fcst, editArea, areaLabel, argDict)
|
||||
fraction = fractionOne
|
||||
fcst = self._postProcessProduct(fcst, argDict)
|
||||
fcst = string.upper(fcst)
|
||||
return fcst
|
||||
|
||||
def _getVariables(self, argDict):
|
||||
|
@ -252,13 +258,13 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
|
|||
issuedByString = self.getIssuedByString()
|
||||
productName = self.checkTestMode(argDict, productName)
|
||||
|
||||
fcst = fcst + self._wmoID + " " + self._fullStationID + " " + \
|
||||
s = self._wmoID + " " + self._fullStationID + " " + \
|
||||
self._ddhhmmTime + "\n" + self._pil + "\n\n" +\
|
||||
productName + "\n" +\
|
||||
"NATIONAL WEATHER SERVICE " + self._wfoCityState + \
|
||||
"\n" + issuedByString + self._timeLabel + "\n\n"
|
||||
|
||||
fcst = string.upper(fcst)
|
||||
fcst = fcst + s.upper()
|
||||
return fcst
|
||||
|
||||
def _preProcessArea(self, fcst, editArea, areaLabel, argDict):
|
||||
|
@ -278,7 +284,6 @@ class TextProduct(TextRules.TextRules, SampleAnalysis.SampleAnalysis):
|
|||
return fcst + "\n\n$$\n"
|
||||
|
||||
def _postProcessProduct(self, fcst, argDict):
|
||||
fcst = string.upper(fcst)
|
||||
self.setProgressPercentage(100)
|
||||
self.progressMessage(0, 100, self._displayName + " Complete")
|
||||
return fcst
|
||||
|
|
|
@ -20,8 +20,13 @@
|
|||
########################################################################
|
||||
# Hazard_AQA.py
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# Oct 20, 2014 #3685 randerso Changed to support mixed case
|
||||
#
|
||||
##
|
||||
##########################################################################
|
||||
|
||||
import GenericHazards
|
||||
import string, time, re, os, types, copy
|
||||
import ProcessVariableList
|
||||
|
@ -157,10 +162,10 @@ class TextProduct(GenericHazards.TextProduct):
|
|||
|
||||
# Placeholder for Agency Names to be filled in in _postProcessProduct
|
||||
#fcst = fcst + "@AGENCYNAMES" + "\n"
|
||||
fcst = fcst + "RELAYED BY NATIONAL WEATHER SERVICE " + self._wfoCityState + "\n" +\
|
||||
s = "RELAYED BY NATIONAL WEATHER SERVICE " + self._wfoCityState + "\n" +\
|
||||
issuedByString + self._timeLabel + "\n\n"
|
||||
|
||||
fcst = string.upper(fcst)
|
||||
fcst = fcst + s.upper()
|
||||
return fcst
|
||||
|
||||
def headlinesTiming(self, tree, node, key, timeRange, areaLabel, issuanceTime):
|
||||
|
@ -301,8 +306,6 @@ class TextProduct(GenericHazards.TextProduct):
|
|||
|
||||
fixMultiLF = re.compile(r'(\n\n)\n*', re.DOTALL)
|
||||
fcst = fixMultiLF.sub(r'\1', fcst)
|
||||
## # Keep body in lower case, if desired
|
||||
## fcst = string.upper(fcst)
|
||||
self.setProgressPercentage(100)
|
||||
self.progressMessage(0, 100, self._displayName + " Complete")
|
||||
return fcst
|
||||
|
|
|
@ -22,6 +22,15 @@
|
|||
#
|
||||
##
|
||||
##########################################################################
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# Oct 20, 2014 #3685 randerso Changed to support mixed case
|
||||
#
|
||||
##
|
||||
|
||||
import GenericHazards
|
||||
import string, time, re, os, types, copy, sets
|
||||
import ModuleAccessor, LogStream
|
||||
|
@ -108,12 +117,12 @@ class TextProduct(GenericHazards.TextProduct):
|
|||
productName = self.checkTestMode(argDict,
|
||||
self._productName + watchPhrase)
|
||||
|
||||
fcst = fcst + self._wmoID + " " + self._fullStationID + " " + \
|
||||
s = self._wmoID + " " + self._fullStationID + " " + \
|
||||
self._ddhhmmTime + "\n" + self._pil + "\n\n" +\
|
||||
productName + "\n" +\
|
||||
"NATIONAL WEATHER SERVICE " + self._wfoCityState + \
|
||||
"\n" + issuedByString + self._timeLabel + "\n" + self._easPhrase + "\n"
|
||||
fcst = string.upper(fcst)
|
||||
fcst = fcst + s.upper()
|
||||
return fcst
|
||||
|
||||
|
||||
|
|
|
@ -27,6 +27,14 @@
|
|||
#
|
||||
# Author: Matt Davis
|
||||
# ----------------------------------------------------------------------------
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# Oct 20, 2014 #3685 randerso Changed to support mixed case
|
||||
#
|
||||
##
|
||||
|
||||
|
||||
import GenericReport
|
||||
|
@ -67,7 +75,7 @@ class TextProduct(GenericReport.TextProduct):
|
|||
"language": "english",
|
||||
"lineLength": 66, #Maximum line length
|
||||
"includeCities" : 0, # Cities included in area header
|
||||
"cityDescriptor" : "INCLUDING THE CITIES OF",
|
||||
"cityDescriptor" : "Including the cities of",
|
||||
"includeZoneNames" : 0, # Zone names will be included in the area header
|
||||
"includeIssueTime" : 0, # This should be set to zero
|
||||
"singleComboOnly" : 1, # Used for non-segmented products
|
||||
|
@ -108,20 +116,18 @@ class TextProduct(GenericReport.TextProduct):
|
|||
|
||||
issuedByString = self.getIssuedByString()
|
||||
productName = self.checkTestMode(argDict, self._productName)
|
||||
fcst = fcst + productName + "\n" + \
|
||||
s = productName + "\n" + \
|
||||
"NATIONAL WEATHER SERVICE " + self._wfoCityState + \
|
||||
"\n" + issuedByString + self._timeLabel + "\n\n"
|
||||
fcst = string.upper(fcst)
|
||||
fcst = fcst + s.upper()
|
||||
return fcst
|
||||
|
||||
def _makeProduct(self, fcst, editArea, areaLabel, argDict):
|
||||
fcst = fcst + "...PUBLIC INFORMATION STATEMENT...\n\n"
|
||||
fcst = fcst + "|* INFORMATION GOES HERE *|\n\n"
|
||||
fcst = fcst + "|* Information goes here *|\n\n"
|
||||
return fcst
|
||||
|
||||
def _postProcessProduct(self, fcst, argDict):
|
||||
fcst = string.upper(fcst)
|
||||
|
||||
#
|
||||
# Clean up multiple line feeds
|
||||
#
|
||||
|
|
|
@ -27,6 +27,15 @@
|
|||
#
|
||||
# Author: Matt Davis
|
||||
# ----------------------------------------------------------------------------
|
||||
##
|
||||
#
|
||||
# SOFTWARE HISTORY
|
||||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# Oct 20, 2014 #3685 randerso Changed to support mixed case
|
||||
#
|
||||
##
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# Example Output:
|
||||
# Refer to the NWS 10-518 Directive for further information.
|
||||
|
@ -111,10 +120,10 @@ class TextProduct(GenericReport.TextProduct):
|
|||
|
||||
issuedByString = self.getIssuedByString()
|
||||
productName = self.checkTestMode(argDict, self._productName)
|
||||
fcst = fcst + productName + "\n" + \
|
||||
s = productName + "\n" + \
|
||||
"NATIONAL WEATHER SERVICE " + self._wfoCityState + \
|
||||
"\n" + issuedByString + self._timeLabel + "\n\n"
|
||||
fcst = string.upper(fcst)
|
||||
fcst = fcst + s.upper()
|
||||
return fcst
|
||||
|
||||
def _makeProduct(self, fcst, editArea, areaLabel, argDict):
|
||||
|
@ -123,8 +132,6 @@ class TextProduct(GenericReport.TextProduct):
|
|||
return fcst
|
||||
|
||||
def _postProcessProduct(self, fcst, argDict):
|
||||
fcst = string.upper(fcst)
|
||||
|
||||
#
|
||||
# Clean up multiple line feeds
|
||||
#
|
||||
|
|
|
@ -47,6 +47,7 @@ import com.vividsolutions.jts.geom.Coordinate;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* 7/24/07 353 bphillip Initial Check in
|
||||
* 10/16/2014 3454 bphillip Upgrading to Hibernate 4
|
||||
* 10/28/2014 3454 bphillip Fix usage of getSession()
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -170,7 +171,13 @@ public class RadarStationDao extends CoreDao {
|
|||
}
|
||||
crit.add(stationEq);
|
||||
Session session = getSession();
|
||||
return crit.getExecutableCriteria(session).list();
|
||||
try {
|
||||
return crit.getExecutableCriteria(session).list();
|
||||
} finally {
|
||||
if (session != null){
|
||||
session.close();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
logger.warn("Cannot execute spatial query with less than 3 points");
|
||||
return new ArrayList<RadarStation>();
|
||||
|
|
|
@ -69,6 +69,8 @@ import com.raytheon.uf.common.time.DataTime;
|
|||
* Mar 13, 2014 2907 njensen split edex.redbook plugin into common and
|
||||
* edex redbook plugins
|
||||
* Oct 10, 2014 3720 mapeters Removed dataURI column.
|
||||
* Oct 28, 2014 3720 mapeters Added refTime and forecastTime to unique
|
||||
* constraints.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -78,8 +80,8 @@ import com.raytheon.uf.common.time.DataTime;
|
|||
@Entity
|
||||
@SequenceGenerator(initialValue = 1, name = PluginDataObject.ID_GEN, sequenceName = "redbookseq")
|
||||
@Table(name = "redbook", uniqueConstraints = { @UniqueConstraint(columnNames = {
|
||||
"wmoTTAAii", "corIndicator", "fcstHours", "productId", "fileId",
|
||||
"originatorId" }) })
|
||||
"refTime", "forecastTime", "wmoTTAAii", "corIndicator", "fcstHours",
|
||||
"productId", "fileId", "originatorId" }) })
|
||||
/*
|
||||
* Both refTime and forecastTime are included in the refTimeIndex since
|
||||
* forecastTime is unlikely to be used.
|
||||
|
|
|
@ -0,0 +1,154 @@
|
|||
/**
|
||||
* This software was developed and / or modified by Raytheon Company,
|
||||
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||
*
|
||||
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||
* This software product contains export-restricted data whose
|
||||
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||
* to non-U.S. persons whether in the United States or abroad requires
|
||||
* an export license or other authorization.
|
||||
*
|
||||
* Contractor Name: Raytheon Company
|
||||
* Contractor Address: 6825 Pine Street, Suite 340
|
||||
* Mail Stop B8
|
||||
* Omaha, NE 68106
|
||||
* 402.291.0100
|
||||
*
|
||||
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||
* further licensing information.
|
||||
**/
|
||||
package com.raytheon.uf.common.dataplugin.text.db;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.raytheon.uf.common.localization.FileUpdatedMessage;
|
||||
import com.raytheon.uf.common.localization.ILocalizationFileObserver;
|
||||
import com.raytheon.uf.common.localization.IPathManager;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
|
||||
import com.raytheon.uf.common.localization.LocalizationFile;
|
||||
import com.raytheon.uf.common.localization.PathManagerFactory;
|
||||
import com.raytheon.uf.common.localization.exception.LocalizationException;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.common.util.FileUtil;
|
||||
|
||||
/**
|
||||
* Utilities to support mixed case product generation on a per Product ID (nnn)
|
||||
* basis
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Oct 1, 2014 #3685 randerso Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author randerso
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class MixedCaseProductSupport {
|
||||
private static final IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(MixedCaseProductSupport.class);
|
||||
|
||||
private static final String MIXED_CASE_DIR = "mixedCase";
|
||||
|
||||
private static final String MIXED_CASE_PIDS_FILE = FileUtil.join(
|
||||
MIXED_CASE_DIR, "mixedCaseProductIds.txt");
|
||||
|
||||
private static final char COMMENT_DELIMITER = '#';
|
||||
|
||||
private static Set<String> mixedCasePids;
|
||||
|
||||
private static IPathManager pm = PathManagerFactory.getPathManager();
|
||||
|
||||
private static LocalizationFile baseDir;
|
||||
|
||||
public static Set<String> getMixedCasePids() {
|
||||
// setup up the file updated observer
|
||||
synchronized (MixedCaseProductSupport.class) {
|
||||
if (baseDir == null) {
|
||||
baseDir = pm.getLocalizationFile(
|
||||
pm.getContext(LocalizationType.COMMON_STATIC,
|
||||
LocalizationLevel.BASE), MIXED_CASE_DIR);
|
||||
baseDir.addFileUpdatedObserver(new ILocalizationFileObserver() {
|
||||
|
||||
@Override
|
||||
public void fileUpdated(FileUpdatedMessage message) {
|
||||
mixedCasePids = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
synchronized (MixedCaseProductSupport.class) {
|
||||
if (mixedCasePids == null) {
|
||||
|
||||
// get all localization files in the hierarchy and merge them.
|
||||
Map<LocalizationLevel, LocalizationFile> fileHierarchy = pm
|
||||
.getTieredLocalizationFile(
|
||||
LocalizationType.COMMON_STATIC,
|
||||
MIXED_CASE_PIDS_FILE);
|
||||
|
||||
Set<String> newPids = new HashSet<String>();
|
||||
for (LocalizationFile lf : fileHierarchy.values()) {
|
||||
String filePath = lf.getFile().getAbsolutePath();
|
||||
try (BufferedReader in = new BufferedReader(
|
||||
new InputStreamReader(lf.openInputStream()))) {
|
||||
|
||||
String line;
|
||||
while ((line = in.readLine()) != null) {
|
||||
int pos = line.indexOf(COMMENT_DELIMITER);
|
||||
if (pos >= 0) {
|
||||
line = line.substring(0, pos);
|
||||
}
|
||||
line = line.trim().toUpperCase();
|
||||
String[] pids = line.split("[\\s,]+");
|
||||
for (String pid : pids) {
|
||||
if (pid.length() == 3) {
|
||||
newPids.add(pid);
|
||||
} else if (pid.isEmpty()) {
|
||||
continue;
|
||||
} else {
|
||||
statusHandler.warn("Invalid Product ID \""
|
||||
+ pid + "\" found in " + filePath
|
||||
+ ", ignored.");
|
||||
}
|
||||
}
|
||||
}
|
||||
mixedCasePids = newPids;
|
||||
} catch (IOException e) {
|
||||
statusHandler.error("Error reading " + filePath, e);
|
||||
} catch (LocalizationException e) {
|
||||
statusHandler.error("Error retrieving " + filePath, e);
|
||||
}
|
||||
}
|
||||
|
||||
mixedCasePids = newPids;
|
||||
}
|
||||
}
|
||||
|
||||
return mixedCasePids;
|
||||
}
|
||||
|
||||
public static boolean isMixedCase(String pid) {
|
||||
return getMixedCasePids().contains(pid.toUpperCase());
|
||||
}
|
||||
|
||||
public static String conditionalToUpper(String pid, String text) {
|
||||
if (!isMixedCase(pid)) {
|
||||
text = text.toUpperCase();
|
||||
}
|
||||
|
||||
return text;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
# This file contains the product IDs (nnn) that should be sent in mixed case.
|
||||
# Product IDs should be 3 characters long and delimited by commas or white space.
|
||||
# Overrides to the base file will add to the list of mixed case products
|
||||
|
||||
AFD PNS RWS PWO TCD TWD TWO WRK # Phase 1 Products
|
|
@ -27,6 +27,7 @@ import com.vividsolutions.jts.io.WKTWriter;
|
|||
* Apr 29, 2011 DR#8986 zhao Read in "counties", not "forecast zones",
|
||||
* Feb 22, 2012 14413 zhao modified getAdjacentZones to add "C" or "Z"
|
||||
* Apr 30, 2014 3086 skorolev Replaced MonitorConfigurationManager with FSSObsMonitorConfigurationManager
|
||||
* Oct 17, 2014 2757 skorolev Corrected SQL in the getAdjacentZones to avoid duplicates.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -397,13 +398,13 @@ public class MonitorAreaUtils {
|
|||
public static List<String> getAdjacentZones(String[] cwaList) {
|
||||
List<String> zones = new ArrayList<String>();
|
||||
|
||||
String sqlCounty = "select state, fips from "
|
||||
String sqlCounty = "select distinct state, fips from "
|
||||
+ FSSObsMonitorConfigurationManager.COUNTY_TABLE
|
||||
+ " where cwa in (''";
|
||||
String sqlForecastZone = "select state, zone from "
|
||||
String sqlForecastZone = "select distinct state, zone from "
|
||||
+ FSSObsMonitorConfigurationManager.FORECAST_ZONE_TABLE
|
||||
+ " where cwa in (''";
|
||||
String sqlMaritimeZone = "select id from "
|
||||
String sqlMaritimeZone = "select distinct id from "
|
||||
+ FSSObsMonitorConfigurationManager.MARINE_ZONE_TABLE
|
||||
+ " where wfo in (''";
|
||||
for (int i = 0; i < cwaList.length; i++) {
|
||||
|
|
|
@ -47,6 +47,7 @@ import com.raytheon.uf.edex.pointdata.PointDataPluginDao;
|
|||
* Aug 30, 2013 2298 rjpeter Make getPluginName abstract
|
||||
* Mar 27, 2014 2811 skorolev Updated logger.
|
||||
* Jun 06, 2014 2061 bsteffen Extend PointDataPluginDao
|
||||
* 10/28/2014 3454 bphillip Fix usage of getSession()
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -122,13 +123,14 @@ public class ACARSDao extends PointDataPluginDao<ACARSRecord> {
|
|||
* The HQL query string
|
||||
* @return The list of objects returned by the query
|
||||
*/
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public List<?> executeACARSQuery(final String hqlQuery) {
|
||||
|
||||
List<?> result = (List<?>) txTemplate
|
||||
.execute(new TransactionCallback() {
|
||||
@Override
|
||||
public List<?> doInTransaction(TransactionStatus status) {
|
||||
Query hibQuery = getSession(false)
|
||||
Query hibQuery = getCurrentSession()
|
||||
.createQuery(hqlQuery);
|
||||
// hibQuery.setCacheMode(CacheMode.NORMAL);
|
||||
// hibQuery.setCacheRegion(QUERY_CACHE_REGION);
|
||||
|
|
|
@ -43,6 +43,7 @@ import com.raytheon.uf.edex.plugin.acarssounding.tools.ACARSSoundingTools;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* Jan 21, 2009 1939 jkorman Initial creation
|
||||
* Aug 18, 2014 3530 bclement removed warning from executeSoundingQuery()
|
||||
* 10/28/2014 3454 bphillip Fix usage of getSession()
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -107,7 +108,7 @@ public class ACARSSoundingDao extends DefaultPluginDao {
|
|||
List<?> result = (List<?>) txTemplate
|
||||
.execute(new TransactionCallback<Object>() {
|
||||
public List<?> doInTransaction(TransactionStatus status) {
|
||||
Query hibQuery = getSession(false)
|
||||
Query hibQuery = getCurrentSession()
|
||||
.createQuery(hqlQuery);
|
||||
return hibQuery.list();
|
||||
}
|
||||
|
|
|
@ -94,6 +94,8 @@
|
|||
<permission id="com.raytheon.localization.site/common_static/archiver/purger"/>
|
||||
<permission id="com.raytheon.localization.site/common_static/archiver/purger/retention"/>
|
||||
<permission id="com.raytheon.localization.site/common_static/archiver/purger/case"/>
|
||||
|
||||
<permission id="com.raytheon.localization.site/common_static/mixedCase"/>
|
||||
|
||||
<user userId="ALL">
|
||||
<userPermission>com.raytheon.localization.site/common_static/purge</userPermission>
|
||||
|
|
|
@ -36,6 +36,7 @@ import com.raytheon.uf.common.time.util.ITimer;
|
|||
import com.raytheon.uf.common.time.util.TimeUtil;
|
||||
import com.raytheon.uf.common.wmo.WMOHeader;
|
||||
import com.raytheon.uf.edex.database.plugin.PluginFactory;
|
||||
import com.raytheon.uf.edex.database.query.DatabaseQuery;
|
||||
import com.raytheon.uf.edex.plugin.redbook.dao.RedbookDao;
|
||||
import com.raytheon.uf.edex.plugin.redbook.decoder.RedbookParser;
|
||||
|
||||
|
@ -61,6 +62,8 @@ import com.raytheon.uf.edex.plugin.redbook.decoder.RedbookParser;
|
|||
* Mar 13, 2014 2907 njensen split edex.redbook plugin into common and
|
||||
* edex redbook plugins
|
||||
* May 14, 2014 2536 bclement moved WMO Header to common
|
||||
* Oct 24, 2014 3720 mapeters Identify existing records using unique
|
||||
* constraints instead of dataURI.
|
||||
* </pre>
|
||||
*
|
||||
* @author jkorman
|
||||
|
@ -198,13 +201,26 @@ public class RedbookDecoder extends AbstractDecoder {
|
|||
|
||||
private RedbookRecord createdBackDatedVersionIfNeeded(RedbookRecord record) {
|
||||
RedbookDao dao;
|
||||
RedbookRecord existingRecord;
|
||||
RedbookRecord existingRecord = null;
|
||||
|
||||
try {
|
||||
dao = (RedbookDao) PluginFactory.getInstance().getPluginDao(
|
||||
PLUGIN_NAME);
|
||||
existingRecord = (RedbookRecord) dao.getMetadata(record
|
||||
.getDataURI());
|
||||
DatabaseQuery query = new DatabaseQuery(RedbookRecord.class);
|
||||
query.addQueryParam("wmoTTAAii", record.getWmoTTAAii());
|
||||
query.addQueryParam("corIndicator", record.getCorIndicator());
|
||||
query.addQueryParam("fcstHours", record.getFcstHours());
|
||||
query.addQueryParam("productId", record.getProductId());
|
||||
query.addQueryParam("fileId", record.getFileId());
|
||||
query.addQueryParam("originatorId", record.getOriginatorId());
|
||||
query.addQueryParam("dataTime", record.getDataTime());
|
||||
|
||||
PluginDataObject[] resultList = dao.getMetadata(query);
|
||||
|
||||
if (resultList != null && resultList.length > 0
|
||||
&& resultList[0] instanceof RedbookRecord) {
|
||||
existingRecord = (RedbookRecord) resultList[0];
|
||||
}
|
||||
} catch (PluginException e) {
|
||||
logger.error(traceId + "Could not create back-dated copy of "
|
||||
+ record.getDataURI(), e);
|
||||
|
|
|
@ -41,13 +41,13 @@ import org.hibernate.Criteria;
|
|||
import org.hibernate.HibernateException;
|
||||
import org.hibernate.Query;
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.StatelessSession;
|
||||
import org.hibernate.Transaction;
|
||||
import org.hibernate.criterion.Order;
|
||||
import org.hibernate.criterion.ProjectionList;
|
||||
import org.hibernate.criterion.Projections;
|
||||
import org.hibernate.criterion.Restrictions;
|
||||
import org.springframework.orm.hibernate4.SessionFactoryUtils;
|
||||
import org.springframework.transaction.TransactionStatus;
|
||||
import org.springframework.transaction.support.TransactionCallback;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.text.db.OperationalStdTextProduct;
|
||||
import com.raytheon.uf.common.dataplugin.text.db.PracticeStdTextProduct;
|
||||
|
@ -93,6 +93,7 @@ import com.raytheon.uf.edex.decodertools.time.TimeTools;
|
|||
* May 20, 2014 2536 bclement moved from edex.textdb to edex.plugin.text
|
||||
* Sep 18, 2014 3627 mapeters Updated deprecated {@link TimeTools} usage.
|
||||
* 10/16/2014 3454 bphillip Upgrading to Hibernate 4
|
||||
* 10/28/2014 3454 bphillip Fix usage of getSession()
|
||||
* </pre>
|
||||
*
|
||||
* @author garmendariz
|
||||
|
@ -191,47 +192,52 @@ public class StdTextProductDao extends CoreDao {
|
|||
prodId.setCccid(ccc);
|
||||
prodId.setNnnid(nnn);
|
||||
prodId.setXxxid(xxx);
|
||||
Session session = this.getSession();
|
||||
try {
|
||||
Query query = this.getSession().createQuery(
|
||||
"SELECT refTime from "
|
||||
+ textProduct.getClass().getSimpleName()
|
||||
+ " where prodId = :prodid");
|
||||
query.setParameter("prodid", prodId);
|
||||
List<?> results = query.list();
|
||||
|
||||
if (results == null || results.size() < 1) {
|
||||
// save
|
||||
create(textProduct);
|
||||
success = true;
|
||||
} else {
|
||||
// don't save
|
||||
success = false;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("Error storing text product", e);
|
||||
}
|
||||
|
||||
if (success) {
|
||||
try {
|
||||
String cccid = prodId.getCccid();
|
||||
String nnnid = prodId.getNnnid();
|
||||
String xxxid = prodId.getXxxid();
|
||||
Query query = this
|
||||
.getSession()
|
||||
.createQuery(
|
||||
"SELECT versionstokeep FROM TextProductInfo WHERE "
|
||||
+ "prodId.cccid = :cccid AND prodId.nnnid = :nnnid AND prodId.xxxid = :xxxid");
|
||||
query.setParameter("cccid", cccid);
|
||||
query.setParameter("nnnid", nnnid);
|
||||
query.setParameter("xxxid", xxxid);
|
||||
Query query = session.createQuery("SELECT refTime from "
|
||||
+ textProduct.getClass().getSimpleName()
|
||||
+ " where prodId = :prodid");
|
||||
query.setParameter("prodid", prodId);
|
||||
List<?> results = query.list();
|
||||
|
||||
if (results == null || results.size() < 1) {
|
||||
TextProductInfo tpi = new TextProductInfo(cccid, nnnid,
|
||||
xxxid);
|
||||
create(tpi);
|
||||
// save
|
||||
create(textProduct);
|
||||
success = true;
|
||||
} else {
|
||||
// don't save
|
||||
success = false;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("Error verify text product info", e);
|
||||
logger.error("Error storing text product", e);
|
||||
}
|
||||
|
||||
if (success) {
|
||||
try {
|
||||
String cccid = prodId.getCccid();
|
||||
String nnnid = prodId.getNnnid();
|
||||
String xxxid = prodId.getXxxid();
|
||||
Query query = session
|
||||
.createQuery(
|
||||
"SELECT versionstokeep FROM TextProductInfo WHERE "
|
||||
+ "prodId.cccid = :cccid AND prodId.nnnid = :nnnid AND prodId.xxxid = :xxxid");
|
||||
query.setParameter("cccid", cccid);
|
||||
query.setParameter("nnnid", nnnid);
|
||||
query.setParameter("xxxid", xxxid);
|
||||
List<?> results = query.list();
|
||||
if (results == null || results.size() < 1) {
|
||||
TextProductInfo tpi = new TextProductInfo(cccid, nnnid,
|
||||
xxxid);
|
||||
create(tpi);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("Error verify text product info", e);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
if (session != null) {
|
||||
session.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -255,118 +261,134 @@ public class StdTextProductDao extends CoreDao {
|
|||
* @param pastHours
|
||||
* @return
|
||||
*/
|
||||
public List<StdTextProduct> cccnnnxxxReadVersion(String ccc, String nnn,
|
||||
String xxx, int version) {
|
||||
public List<StdTextProduct> cccnnnxxxReadVersion(final String ccc, final String nnn,
|
||||
final String xxx, final int version) {
|
||||
List<StdTextProduct> products = null;
|
||||
ccc = StringUtils.rightPad(ccc, MAX_FIELD_LENGTH);
|
||||
nnn = StringUtils.rightPad(nnn, MAX_FIELD_LENGTH);
|
||||
xxx = StringUtils.rightPad(xxx, MAX_FIELD_LENGTH);
|
||||
boolean hasCCC = ((ccc != null) && (ccc.length() > 0) && (!ccc
|
||||
.equals("000")));
|
||||
boolean hasNNN = ((nnn != null) && (nnn.length() > 0) && (!nnn
|
||||
.equals("000")));
|
||||
boolean hasXXX = ((xxx != null) && (xxx.length() > 0) && (!xxx
|
||||
.equals("000")));
|
||||
boolean createInitialFilter = !(hasCCC && hasNNN && hasXXX);
|
||||
|
||||
AFOSProductId[] afosIds = null;
|
||||
StatelessSession session = null;
|
||||
Transaction tx = null;
|
||||
final boolean createInitialFilter = !(hasCCC && hasNNN && hasXXX);
|
||||
|
||||
try {
|
||||
session = getSessionFactory().openStatelessSession();
|
||||
tx = session.beginTransaction();
|
||||
StdTextProduct stdTextProduct = getStdTextProductInstance();
|
||||
final AFOSProductId[] afosIds = txTemplate
|
||||
.execute(new TransactionCallback<AFOSProductId[]>() {
|
||||
|
||||
if (createInitialFilter) {
|
||||
stdTextProduct.setCccid(ccc);
|
||||
stdTextProduct.setNnnid(nnn);
|
||||
stdTextProduct.setXxxid(xxx);
|
||||
@Override
|
||||
public AFOSProductId[] doInTransaction(
|
||||
TransactionStatus status) {
|
||||
String paddedccc = StringUtils.rightPad(ccc,
|
||||
MAX_FIELD_LENGTH);
|
||||
String paddednnn = StringUtils.rightPad(nnn,
|
||||
MAX_FIELD_LENGTH);
|
||||
String paddedxxx = StringUtils.rightPad(xxx,
|
||||
MAX_FIELD_LENGTH);
|
||||
Session session = getCurrentSession();
|
||||
AFOSProductId[] afosIds = null;
|
||||
StdTextProduct stdTextProduct = getStdTextProductInstance();
|
||||
|
||||
Map<String, String> map = buildCriterions(ProdCCC_ID, ccc,
|
||||
ProdNNN_ID, nnn, ProdXXX_ID, xxx);
|
||||
Criteria criteria = session.createCriteria(stdTextProduct
|
||||
.getClass());
|
||||
ProjectionList projList = Projections.projectionList();
|
||||
projList.add(Projections.property(ProdCCC_ID));
|
||||
projList.add(Projections.property(ProdNNN_ID));
|
||||
projList.add(Projections.property(ProdXXX_ID));
|
||||
criteria.setProjection(Projections.distinct(projList));
|
||||
criteria.add(Restrictions.allEq(map));
|
||||
criteria.addOrder(Order.asc(ProdCCC_ID));
|
||||
criteria.addOrder(Order.asc(ProdNNN_ID));
|
||||
criteria.addOrder(Order.asc(ProdXXX_ID));
|
||||
if (createInitialFilter) {
|
||||
stdTextProduct.setCccid(paddedccc);
|
||||
stdTextProduct.setNnnid(paddednnn);
|
||||
stdTextProduct.setXxxid(paddedxxx);
|
||||
|
||||
List<?> list = criteria.list();
|
||||
if (list != null && list.size() > 0) {
|
||||
afosIds = new AFOSProductId[list.size()];
|
||||
int i = 0;
|
||||
for (Object row : list) {
|
||||
Object[] cols = (Object[]) row;
|
||||
afosIds[i++] = new AFOSProductId((String) cols[0],
|
||||
(String) cols[1], (String) cols[2]);
|
||||
}
|
||||
} else {
|
||||
afosIds = new AFOSProductId[0];
|
||||
}
|
||||
tx.commit();
|
||||
} else {
|
||||
afosIds = new AFOSProductId[1];
|
||||
afosIds[0] = new AFOSProductId(ccc, nnn, xxx);
|
||||
}
|
||||
Map<String, String> map = buildCriterions(
|
||||
ProdCCC_ID, paddedccc, ProdNNN_ID,
|
||||
paddednnn, ProdXXX_ID, paddedxxx);
|
||||
Criteria criteria = session
|
||||
.createCriteria(stdTextProduct
|
||||
.getClass());
|
||||
ProjectionList projList = Projections
|
||||
.projectionList();
|
||||
projList.add(Projections.property(ProdCCC_ID));
|
||||
projList.add(Projections.property(ProdNNN_ID));
|
||||
projList.add(Projections.property(ProdXXX_ID));
|
||||
criteria.setProjection(Projections
|
||||
.distinct(projList));
|
||||
criteria.add(Restrictions.allEq(map));
|
||||
criteria.addOrder(Order.asc(ProdCCC_ID));
|
||||
criteria.addOrder(Order.asc(ProdNNN_ID));
|
||||
criteria.addOrder(Order.asc(ProdXXX_ID));
|
||||
|
||||
List<?> list = criteria.list();
|
||||
if (list != null && list.size() > 0) {
|
||||
afosIds = new AFOSProductId[list.size()];
|
||||
int i = 0;
|
||||
for (Object row : list) {
|
||||
Object[] cols = (Object[]) row;
|
||||
afosIds[i++] = new AFOSProductId(
|
||||
(String) cols[0],
|
||||
(String) cols[1],
|
||||
(String) cols[2]);
|
||||
}
|
||||
} else {
|
||||
afosIds = new AFOSProductId[0];
|
||||
}
|
||||
} else {
|
||||
afosIds = new AFOSProductId[1];
|
||||
afosIds[0] = new AFOSProductId(paddedccc,
|
||||
paddednnn, paddedxxx);
|
||||
}
|
||||
return afosIds;
|
||||
}
|
||||
});
|
||||
|
||||
products = txTemplate.execute(new TransactionCallback<List<StdTextProduct>>() {
|
||||
|
||||
@Override
|
||||
public List<StdTextProduct> doInTransaction(
|
||||
TransactionStatus status) {
|
||||
List<StdTextProduct> products = null;
|
||||
Session session = getCurrentSession();
|
||||
/*
|
||||
* DR15244 - Make sure that the query is performed on the appropriate
|
||||
* table based on what StdTextProduct is requested (ultimately on CAVE mode)
|
||||
*/
|
||||
Matcher m = Pattern.compile("StdTextProduct").matcher(AFOS_QUERY_STMT);
|
||||
String tableName = getStdTextProductInstance().getClass().getSimpleName();
|
||||
String tableQuery = m.replaceAll(tableName);
|
||||
Query query = session.createQuery(tableQuery);
|
||||
|
||||
|
||||
if (version >= 0) {
|
||||
query.setMaxResults(version + 1);
|
||||
}
|
||||
for (AFOSProductId afosId : afosIds) {
|
||||
query.setParameter(CCC_ID, afosId.getCcc());
|
||||
query.setParameter(NNN_ID, afosId.getNnn());
|
||||
query.setParameter(XXX_ID, afosId.getXxx());
|
||||
|
||||
List<?> results = query.list();
|
||||
if (results != null && results.size() > 0) {
|
||||
if (version == -1) {
|
||||
// want all versions
|
||||
if (products == null) {
|
||||
products = new ArrayList<StdTextProduct>(
|
||||
results.size() * afosIds.length);
|
||||
}
|
||||
for (Object row : results) {
|
||||
products.add((StdTextProduct) row);
|
||||
}
|
||||
} else if (results.size() > version) {
|
||||
// want specific version
|
||||
if (products == null) {
|
||||
products = new ArrayList<StdTextProduct>(
|
||||
afosIds.length);
|
||||
}
|
||||
products.add((StdTextProduct) results.get(version));
|
||||
}
|
||||
}
|
||||
}
|
||||
return products;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
tx = session.beginTransaction();
|
||||
/*
|
||||
* DR15244 - Make sure that the query is performed on the appropriate
|
||||
* table based on what StdTextProduct is requested (ultimately on CAVE mode)
|
||||
*/
|
||||
Matcher m = Pattern.compile("StdTextProduct").matcher(AFOS_QUERY_STMT);
|
||||
String tableName = stdTextProduct.getClass().getSimpleName();
|
||||
String tableQuery = m.replaceAll(tableName);
|
||||
Query query = session.createQuery(tableQuery);
|
||||
|
||||
|
||||
if (version >= 0) {
|
||||
query.setMaxResults(version + 1);
|
||||
}
|
||||
for (AFOSProductId afosId : afosIds) {
|
||||
query.setParameter(CCC_ID, afosId.getCcc());
|
||||
query.setParameter(NNN_ID, afosId.getNnn());
|
||||
query.setParameter(XXX_ID, afosId.getXxx());
|
||||
|
||||
List<?> results = query.list();
|
||||
if (results != null && results.size() > 0) {
|
||||
if (version == -1) {
|
||||
// want all versions
|
||||
if (products == null) {
|
||||
products = new ArrayList<StdTextProduct>(
|
||||
results.size() * afosIds.length);
|
||||
}
|
||||
for (Object row : results) {
|
||||
products.add((StdTextProduct) row);
|
||||
}
|
||||
} else if (results.size() > version) {
|
||||
// want specific version
|
||||
if (products == null) {
|
||||
products = new ArrayList<StdTextProduct>(
|
||||
afosIds.length);
|
||||
}
|
||||
products.add((StdTextProduct) results.get(version));
|
||||
}
|
||||
}
|
||||
}
|
||||
tx.commit();
|
||||
} catch (Exception e) {
|
||||
logger.error("Error occurred reading products", e);
|
||||
if (tx != null) {
|
||||
try {
|
||||
tx.rollback();
|
||||
} catch (Exception e1) {
|
||||
logger.error("Error occurred rolling back transaction", e1);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
closeSession(session);
|
||||
}
|
||||
|
||||
if (products == null) {
|
||||
|
@ -534,8 +556,10 @@ public class StdTextProductDao extends CoreDao {
|
|||
public long getLatestTime(AFOSProductId afosId) {
|
||||
long latestTime = 0L;
|
||||
|
||||
Session sess = null;
|
||||
|
||||
try {
|
||||
Session sess = getSession();
|
||||
sess = getSession();
|
||||
|
||||
Map<?, ?> tmp = buildCriterions(ProdCCC_ID, afosId.getCcc(),
|
||||
ProdNNN_ID, afosId.getNnn(), ProdXXX_ID, afosId.getXxx());
|
||||
|
@ -557,6 +581,10 @@ public class StdTextProductDao extends CoreDao {
|
|||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("Error occurred getting latest time", e);
|
||||
}finally{
|
||||
if(sess != null){
|
||||
sess.close();
|
||||
}
|
||||
}
|
||||
|
||||
return latestTime;
|
||||
|
@ -625,55 +653,41 @@ public class StdTextProductDao extends CoreDao {
|
|||
}
|
||||
|
||||
private AFOSProductId[] getDistinctAfosIds() throws HibernateException {
|
||||
return txTemplate.execute(new TransactionCallback<AFOSProductId[]>() {
|
||||
@Override
|
||||
public AFOSProductId[] doInTransaction(TransactionStatus status) {
|
||||
AFOSProductId[] products = null;
|
||||
Session sess = getCurrentSession();
|
||||
Criteria crit = sess
|
||||
.createCriteria((operationalMode ? OperationalStdTextProduct.class
|
||||
: PracticeStdTextProduct.class));
|
||||
ProjectionList fields = Projections.projectionList();
|
||||
fields.add(Projections.property(ProdCCC_ID));
|
||||
fields.add(Projections.property(ProdNNN_ID));
|
||||
fields.add(Projections.property(ProdXXX_ID));
|
||||
crit.setProjection(Projections.distinct(fields));
|
||||
crit.addOrder(Order.asc(ProdCCC_ID));
|
||||
crit.addOrder(Order.asc(ProdNNN_ID));
|
||||
crit.addOrder(Order.asc(ProdXXX_ID));
|
||||
List<?> results = crit.list();
|
||||
|
||||
AFOSProductId[] products = null;
|
||||
StatelessSession sess = null;
|
||||
Transaction tx = null;
|
||||
|
||||
try {
|
||||
sess = getSessionFactory().openStatelessSession();
|
||||
tx = sess.beginTransaction();
|
||||
Criteria crit = sess
|
||||
.createCriteria((this.operationalMode ? OperationalStdTextProduct.class
|
||||
: PracticeStdTextProduct.class));
|
||||
ProjectionList fields = Projections.projectionList();
|
||||
fields.add(Projections.property(ProdCCC_ID));
|
||||
fields.add(Projections.property(ProdNNN_ID));
|
||||
fields.add(Projections.property(ProdXXX_ID));
|
||||
crit.setProjection(Projections.distinct(fields));
|
||||
crit.addOrder(Order.asc(ProdCCC_ID));
|
||||
crit.addOrder(Order.asc(ProdNNN_ID));
|
||||
crit.addOrder(Order.asc(ProdXXX_ID));
|
||||
List<?> results = crit.list();
|
||||
|
||||
if (results != null && results.size() > 0) {
|
||||
products = new AFOSProductId[results.size()];
|
||||
String cccid = null;
|
||||
String nnnid = null;
|
||||
String xxxid = null;
|
||||
int i = 0;
|
||||
for (Object row : results) {
|
||||
Object[] cols = (Object[]) row;
|
||||
cccid = cols[0].toString();
|
||||
nnnid = cols[1].toString();
|
||||
xxxid = cols[2].toString();
|
||||
products[i++] = new AFOSProductId(cccid, nnnid, xxxid);
|
||||
if (results != null && results.size() > 0) {
|
||||
products = new AFOSProductId[results.size()];
|
||||
String cccid = null;
|
||||
String nnnid = null;
|
||||
String xxxid = null;
|
||||
int i = 0;
|
||||
for (Object row : results) {
|
||||
Object[] cols = (Object[]) row;
|
||||
cccid = cols[0].toString();
|
||||
nnnid = cols[1].toString();
|
||||
xxxid = cols[2].toString();
|
||||
products[i++] = new AFOSProductId(cccid, nnnid, xxxid);
|
||||
}
|
||||
}
|
||||
return products;
|
||||
}
|
||||
tx.commit();
|
||||
tx = null;
|
||||
} finally {
|
||||
if (tx != null) {
|
||||
try {
|
||||
tx.rollback();
|
||||
} catch (Exception e) {
|
||||
logger.error("Caught Exception rolling back transaction", e);
|
||||
}
|
||||
}
|
||||
closeSession(sess);
|
||||
}
|
||||
|
||||
return products;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -693,8 +707,6 @@ public class StdTextProductDao extends CoreDao {
|
|||
* @return
|
||||
*/
|
||||
public int versionPurge(String afosId) {
|
||||
StatelessSession session = null;
|
||||
Transaction tx = null;
|
||||
int rval = 0;
|
||||
if (PurgeLogger.isDebugEnabled()) {
|
||||
if (afosId == null) {
|
||||
|
@ -721,120 +733,103 @@ public class StdTextProductDao extends CoreDao {
|
|||
}
|
||||
|
||||
if (ids != null && ids.size() > 0) {
|
||||
String cccid = null;
|
||||
String nnnid = null;
|
||||
String xxxid = null;
|
||||
|
||||
String refTimeQueryString = null;
|
||||
{
|
||||
StringBuilder refTimeQueryBuilder = new StringBuilder(200);
|
||||
refTimeQueryBuilder.append("SELECT refTime FROM ");
|
||||
refTimeQueryBuilder.append(getStdTextProductInstance()
|
||||
.getClass().getSimpleName());
|
||||
refTimeQueryBuilder.append(" WHERE ");
|
||||
refTimeQueryBuilder.append(ProdCCC_ID).append(" = :cccid")
|
||||
.append(" AND ");
|
||||
refTimeQueryBuilder.append(ProdNNN_ID).append(" = :nnnid")
|
||||
.append(" AND ");
|
||||
refTimeQueryBuilder.append(ProdXXX_ID).append(" = :xxxid");
|
||||
refTimeQueryBuilder.append(" ORDER BY refTime DESC");
|
||||
refTimeQueryBuilder.append(", insertTime DESC");
|
||||
refTimeQueryString = refTimeQueryBuilder.toString();
|
||||
}
|
||||
StringBuilder refTimeQueryBuilder = new StringBuilder(200);
|
||||
refTimeQueryBuilder.append("SELECT refTime FROM ");
|
||||
refTimeQueryBuilder.append(getStdTextProductInstance()
|
||||
.getClass().getSimpleName());
|
||||
refTimeQueryBuilder.append(" WHERE ");
|
||||
refTimeQueryBuilder.append(ProdCCC_ID).append(" = :cccid")
|
||||
.append(" AND ");
|
||||
refTimeQueryBuilder.append(ProdNNN_ID).append(" = :nnnid")
|
||||
.append(" AND ");
|
||||
refTimeQueryBuilder.append(ProdXXX_ID).append(" = :xxxid");
|
||||
refTimeQueryBuilder.append(" ORDER BY refTime DESC");
|
||||
refTimeQueryBuilder.append(", insertTime DESC");
|
||||
final String refTimeQueryString = refTimeQueryBuilder.toString();
|
||||
|
||||
|
||||
StringBuilder delQueryBuilder = new StringBuilder(200);
|
||||
delQueryBuilder.append("DELETE FROM ");
|
||||
delQueryBuilder.append(getStdTextProductInstance()
|
||||
.getClass().getSimpleName());
|
||||
delQueryBuilder.append(" WHERE ");
|
||||
delQueryBuilder.append(ProdCCC_ID).append(" = :cccid")
|
||||
.append(" AND ");
|
||||
delQueryBuilder.append(ProdNNN_ID).append(" = :nnnid")
|
||||
.append(" AND ");
|
||||
delQueryBuilder.append(ProdXXX_ID).append(" = :xxxid")
|
||||
.append(" AND ");
|
||||
delQueryBuilder.append("refTime < :refTime");
|
||||
final String delQueryString = delQueryBuilder.toString();
|
||||
|
||||
|
||||
String delQueryString = null;
|
||||
{
|
||||
StringBuilder delQueryBuilder = new StringBuilder(200);
|
||||
delQueryBuilder.append("DELETE FROM ");
|
||||
delQueryBuilder.append(getStdTextProductInstance()
|
||||
.getClass().getSimpleName());
|
||||
delQueryBuilder.append(" WHERE ");
|
||||
delQueryBuilder.append(ProdCCC_ID).append(" = :cccid")
|
||||
.append(" AND ");
|
||||
delQueryBuilder.append(ProdNNN_ID).append(" = :nnnid")
|
||||
.append(" AND ");
|
||||
delQueryBuilder.append(ProdXXX_ID).append(" = :xxxid")
|
||||
.append(" AND ");
|
||||
delQueryBuilder.append("refTime < :refTime");
|
||||
delQueryString = delQueryBuilder.toString();
|
||||
}
|
||||
for (final TextProductInfo prodInfo : ids) {
|
||||
rval += txTemplate.execute(new TransactionCallback<Integer>() {
|
||||
|
||||
session = getSessionFactory().openStatelessSession();
|
||||
@Override
|
||||
public Integer doInTransaction(TransactionStatus status) {
|
||||
Session session = getCurrentSession();
|
||||
TextProductInfoPK pk = prodInfo.getProdId();
|
||||
String cccid = pk.getCccid();
|
||||
String nnnid = pk.getNnnid();
|
||||
String xxxid = pk.getXxxid();
|
||||
int rowsDeleted = 0;
|
||||
|
||||
for (TextProductInfo prodInfo : ids) {
|
||||
TextProductInfoPK pk = prodInfo.getProdId();
|
||||
cccid = pk.getCccid();
|
||||
nnnid = pk.getNnnid();
|
||||
xxxid = pk.getXxxid();
|
||||
|
||||
try {
|
||||
tx = session.beginTransaction();
|
||||
Query refTimeQuery = session
|
||||
.createQuery(refTimeQueryString);
|
||||
refTimeQuery.setString("cccid", cccid);
|
||||
refTimeQuery.setString("nnnid", nnnid);
|
||||
refTimeQuery.setString("xxxid", xxxid);
|
||||
refTimeQuery
|
||||
.setMaxResults(prodInfo.getVersionstokeep());
|
||||
List<?> refTimes = refTimeQuery.list();
|
||||
if (refTimes.size() >= prodInfo.getVersionstokeep()) {
|
||||
long refTime = ((Number) refTimes.get(prodInfo
|
||||
.getVersionstokeep() - 1)).longValue();
|
||||
Query delQuery = session
|
||||
.createQuery(delQueryString);
|
||||
delQuery.setString("cccid", cccid);
|
||||
delQuery.setString("nnnid", nnnid);
|
||||
delQuery.setString("xxxid", xxxid);
|
||||
delQuery.setLong("refTime", refTime);
|
||||
|
||||
if (PurgeLogger.isDebugEnabled()) {
|
||||
PurgeLogger.logDebug("Purging records for ["
|
||||
+ cccid + nnnid + xxxid
|
||||
+ "] before refTime [" + refTime + "]",
|
||||
PLUGIN_NAME);
|
||||
}
|
||||
|
||||
int rowsDeleted = delQuery.executeUpdate();
|
||||
|
||||
// commit every afos id purge
|
||||
tx.commit();
|
||||
tx = null;
|
||||
if (PurgeLogger.isDebugEnabled()) {
|
||||
PurgeLogger.logDebug("Purged [" + rowsDeleted
|
||||
+ "] records for [" + cccid + nnnid
|
||||
+ xxxid + "]", PLUGIN_NAME);
|
||||
}
|
||||
rval += rowsDeleted;
|
||||
} else if (PurgeLogger.isDebugEnabled()) {
|
||||
PurgeLogger.logDebug(
|
||||
"VersionPurge: Product [" + cccid + nnnid
|
||||
+ xxxid + "] has fewer than ["
|
||||
+ prodInfo.getVersionstokeep()
|
||||
+ "] versions", PLUGIN_NAME);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
PurgeLogger.logError(
|
||||
"Exception occurred purging text products ["
|
||||
+ cccid + nnnid + xxxid + "]",
|
||||
PLUGIN_NAME, e);
|
||||
if (tx != null) {
|
||||
try {
|
||||
tx.rollback();
|
||||
} catch (Exception e1) {
|
||||
PurgeLogger
|
||||
.logError(
|
||||
"Error occurred rolling back transaction",
|
||||
PLUGIN_NAME, e1);
|
||||
Query refTimeQuery = session
|
||||
.createQuery(refTimeQueryString);
|
||||
refTimeQuery.setString("cccid", cccid);
|
||||
refTimeQuery.setString("nnnid", nnnid);
|
||||
refTimeQuery.setString("xxxid", xxxid);
|
||||
refTimeQuery
|
||||
.setMaxResults(prodInfo.getVersionstokeep());
|
||||
List<?> refTimes = refTimeQuery.list();
|
||||
if (refTimes.size() >= prodInfo.getVersionstokeep()) {
|
||||
long refTime = ((Number) refTimes.get(prodInfo
|
||||
.getVersionstokeep() - 1)).longValue();
|
||||
Query delQuery = session
|
||||
.createQuery(delQueryString);
|
||||
delQuery.setString("cccid", cccid);
|
||||
delQuery.setString("nnnid", nnnid);
|
||||
delQuery.setString("xxxid", xxxid);
|
||||
delQuery.setLong("refTime", refTime);
|
||||
|
||||
if (PurgeLogger.isDebugEnabled()) {
|
||||
PurgeLogger.logDebug("Purging records for ["
|
||||
+ cccid + nnnid + xxxid
|
||||
+ "] before refTime [" + refTime + "]",
|
||||
PLUGIN_NAME);
|
||||
}
|
||||
|
||||
rowsDeleted = delQuery.executeUpdate();
|
||||
if (PurgeLogger.isDebugEnabled()) {
|
||||
PurgeLogger.logDebug("Purged [" + rowsDeleted
|
||||
+ "] records for [" + cccid + nnnid
|
||||
+ xxxid + "]", PLUGIN_NAME);
|
||||
}
|
||||
} else if (PurgeLogger.isDebugEnabled()) {
|
||||
PurgeLogger.logDebug(
|
||||
"VersionPurge: Product [" + cccid + nnnid
|
||||
+ xxxid + "] has fewer than ["
|
||||
+ prodInfo.getVersionstokeep()
|
||||
+ "] versions", PLUGIN_NAME);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
PurgeLogger.logError(
|
||||
"Exception occurred purging text products ["
|
||||
+ cccid + nnnid + xxxid + "]",
|
||||
PLUGIN_NAME, e);
|
||||
}
|
||||
return rowsDeleted;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// don't need to worry about rolling back transaction
|
||||
PurgeLogger.logError("Error purging text products", PLUGIN_NAME, e);
|
||||
} finally {
|
||||
closeSession(session);
|
||||
}
|
||||
return rval;
|
||||
}
|
||||
|
@ -2818,16 +2813,6 @@ public class StdTextProductDao extends CoreDao {
|
|||
}
|
||||
}
|
||||
|
||||
private void closeSession(StatelessSession s) {
|
||||
if (s != null) {
|
||||
try {
|
||||
s.close();
|
||||
} catch (Exception e) {
|
||||
logger.error("Error closing Session", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void closeConnection(Connection c) {
|
||||
if (c != null) {
|
||||
try {
|
||||
|
|
|
@ -27,6 +27,7 @@ import java.util.Map;
|
|||
|
||||
import org.hibernate.Criteria;
|
||||
import org.hibernate.Query;
|
||||
import org.hibernate.Session;
|
||||
import org.springframework.transaction.TransactionStatus;
|
||||
import org.springframework.transaction.support.TransactionCallback;
|
||||
|
||||
|
@ -57,6 +58,7 @@ import com.raytheon.uf.edex.database.query.DatabaseQuery;
|
|||
* Nov 08, 2013 2361 njensen Chaged method signature of saveOrUpdate(Object)
|
||||
* May 22, 2014 2536 bclement moved from autobldsrv to edex.plugin.text
|
||||
* 10/16/2014 3454 bphillip Upgrading to Hibernate 4
|
||||
* 10/28/2014 3454 bphillip Fix usage of getSession()
|
||||
* </pre>
|
||||
*
|
||||
* @author mfegan
|
||||
|
@ -110,25 +112,30 @@ public class SubscriptionDAO extends CoreDao {
|
|||
*/
|
||||
public boolean write(SubscriptionRecord record) {
|
||||
// query
|
||||
Query query = this
|
||||
.getSession()
|
||||
.createQuery(
|
||||
"from SubscriptionRecord where type = :type and trigger = :trigger and runner = :runner and script = :script and filepath = :filepath and arguments = :arguments");
|
||||
query.setParameter("type", record.getType());
|
||||
query.setParameter("trigger", record.getTrigger());
|
||||
query.setParameter("runner", record.getRunner());
|
||||
query.setParameter("script", record.getScript());
|
||||
query.setParameter("filepath", record.getFilepath());
|
||||
query.setParameter("arguments", record.getArguments());
|
||||
List<?> results = query.list();
|
||||
Session session = this.getSession();
|
||||
try {
|
||||
Query query = session
|
||||
.createQuery("from SubscriptionRecord where type = :type and trigger = :trigger and runner = :runner and script = :script and filepath = :filepath and arguments = :arguments");
|
||||
query.setParameter("type", record.getType());
|
||||
query.setParameter("trigger", record.getTrigger());
|
||||
query.setParameter("runner", record.getRunner());
|
||||
query.setParameter("script", record.getScript());
|
||||
query.setParameter("filepath", record.getFilepath());
|
||||
query.setParameter("arguments", record.getArguments());
|
||||
List<?> results = query.list();
|
||||
|
||||
if (results.size() > 0) {
|
||||
return false;
|
||||
} else {
|
||||
create(record);
|
||||
sendSubscriptionNotifyMessage(String
|
||||
.valueOf(record.getIdentifier()));
|
||||
return true;
|
||||
if (results.size() > 0) {
|
||||
return false;
|
||||
} else {
|
||||
create(record);
|
||||
sendSubscriptionNotifyMessage(String.valueOf(record
|
||||
.getIdentifier()));
|
||||
return true;
|
||||
}
|
||||
} finally {
|
||||
if (session != null) {
|
||||
session.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -172,7 +179,7 @@ public class SubscriptionDAO extends CoreDao {
|
|||
@Override
|
||||
public List<SubscriptionRecord> doInTransaction(
|
||||
TransactionStatus status) {
|
||||
Criteria criteria = getSession().createCriteria(
|
||||
Criteria criteria = getCurrentSession().createCriteria(
|
||||
daoClass);
|
||||
return criteria.list();
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import org.hibernate.Criteria;
|
||||
import org.hibernate.Session;
|
||||
|
||||
import com.raytheon.uf.common.dataplugin.text.db.WatchWarn;
|
||||
import com.raytheon.uf.edex.database.DataAccessLayerException;
|
||||
|
@ -44,6 +45,7 @@ import com.raytheon.uf.edex.database.dao.DaoConfig;
|
|||
* Oct 1, 2008 1538 jkorman Added additional functionality.
|
||||
* Aug 9, 2010 3944 cjeanbap Added method, queryAllWatchWarn.
|
||||
* May 20, 2014 2536 bclement moved from edex.textdb to edex.plugin.text
|
||||
* 10/28/2014 3454 bphillip Fix usage of getSession()
|
||||
* </pre>
|
||||
*
|
||||
* @author garmendariz
|
||||
|
@ -109,8 +111,15 @@ public class WatchWarnDao extends CoreDao {
|
|||
@SuppressWarnings("unchecked")
|
||||
public List<WatchWarn> queryAllWatchWarn() {
|
||||
|
||||
Criteria criteria = getSession().createCriteria(WatchWarn.class);
|
||||
Session session = getSession();
|
||||
try{
|
||||
Criteria criteria = session.createCriteria(WatchWarn.class);
|
||||
|
||||
return criteria.list();
|
||||
} finally {
|
||||
if(session != null){
|
||||
session.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -102,13 +102,8 @@ script_="%{_baseline_workspace}/build/static/linux/cave/awips2VisualizeUtility.s
|
|||
|
||||
# add the license information.
|
||||
license_dir="%{_baseline_workspace}/rpms/legal"
|
||||
cp "${license_dir}/license.txt" \
|
||||
%{_build_root}/awips2/alertviz
|
||||
if [ $? -ne 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp "${license_dir}/Master Rights File.pdf" \
|
||||
cp "${license_dir}/Master_Rights_File.pdf" \
|
||||
%{_build_root}/awips2/alertviz
|
||||
if [ $? -ne 0 ]; then
|
||||
exit 1
|
||||
|
@ -157,7 +152,6 @@ rm -rf ${RPM_BUILD_ROOT}
|
|||
%dir /awips2/alertviz/features
|
||||
/awips2/alertviz/features/*
|
||||
%doc /awips2/alertviz/*.pdf
|
||||
%doc /awips2/alertviz/license.txt
|
||||
%dir /awips2/alertviz/plugins
|
||||
/awips2/alertviz/plugins/*
|
||||
|
||||
|
|
|
@ -51,9 +51,7 @@ function copyLegal()
|
|||
tar -cjf %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
%{_baseline_workspace}/rpms/legal/FOSS_licenses/
|
||||
|
||||
cp %{_baseline_workspace}/rpms/legal/license.txt \
|
||||
%{_build_root}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master Rights File.pdf" \
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master_Rights_File.pdf" \
|
||||
%{_build_root}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
%{_build_root}/${COMPONENT_BUILD_DIR}/licenses
|
||||
|
|
|
@ -56,9 +56,7 @@ function copyLegal()
|
|||
tar -cjf %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
%{_baseline_workspace}/rpms/legal/FOSS_licenses/
|
||||
|
||||
cp %{_baseline_workspace}/rpms/legal/license.txt \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master Rights File.pdf" \
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master_Rights_File.pdf" \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
|
|
|
@ -52,16 +52,12 @@ function copyLegal()
|
|||
tar -cjf %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
%{_baseline_workspace}/rpms/legal/FOSS_licenses/
|
||||
|
||||
cp %{_baseline_workspace}/rpms/legal/license.txt \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master Rights File.pdf" \
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master_Rights_File.pdf" \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
|
||||
echo "\"/${COMPONENT_BUILD_DIR}/licenses/license.txt\"" \
|
||||
>> %{_topdir}/BUILD/component-files.txt
|
||||
echo "\"/${COMPONENT_BUILD_DIR}/licenses/Master Rights File.pdf\"" \
|
||||
echo "\"/${COMPONENT_BUILD_DIR}/licenses/Master_Rights_File.pdf\"" \
|
||||
>> %{_topdir}/BUILD/component-files.txt
|
||||
echo "\"/${COMPONENT_BUILD_DIR}/licenses/FOSS_licenses.tar\"" \
|
||||
>> %{_topdir}/BUILD/component-files.txt
|
||||
|
@ -129,4 +125,4 @@ echo -e "\e[1;34m\| The AWIPS II IRT Installation Has Been Successfully Removed\
|
|||
echo -e "\e[1;34m--------------------------------------------------------------------------------\e[m"
|
||||
echo ""
|
||||
|
||||
%files -f component-files.txt
|
||||
%files -f component-files.txt
|
||||
|
|
|
@ -74,9 +74,7 @@ function copyLegal()
|
|||
tar -cjf %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
%{_baseline_workspace}/rpms/legal/FOSS_licenses/
|
||||
|
||||
cp %{_baseline_workspace}/rpms/legal/license.txt \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master Rights File.pdf" \
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master_Rights_File.pdf" \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
|
|
|
@ -100,9 +100,7 @@ function copyLegal()
|
|||
tar -cjf %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
%{_baseline_workspace}/rpms/legal/FOSS_licenses/
|
||||
|
||||
cp %{_baseline_workspace}/rpms/legal/license.txt \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master Rights File.pdf" \
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master_Rights_File.pdf" \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
|
|
|
@ -104,9 +104,7 @@ function copyLegal()
|
|||
tar -cjf %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
%{_baseline_workspace}/rpms/legal/FOSS_licenses/
|
||||
|
||||
cp %{_baseline_workspace}/rpms/legal/license.txt \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master Rights File.pdf" \
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master_Rights_File.pdf" \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
|
|
|
@ -99,9 +99,7 @@ function copyLegal()
|
|||
|
||||
mkdir -p %{_build_root}/${COMPONENT_BUILD_DIR}/licenses
|
||||
|
||||
cp %{_baseline_workspace}/rpms/legal/license.txt \
|
||||
%{_build_root}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master Rights File.pdf" \
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master_Rights_File.pdf" \
|
||||
%{_build_root}/${COMPONENT_BUILD_DIR}/licenses
|
||||
}
|
||||
pushd . > /dev/null
|
||||
|
|
|
@ -101,9 +101,7 @@ function copyLegal()
|
|||
|
||||
mkdir -p %{_build_root}/${COMPONENT_BUILD_DIR}/licenses
|
||||
|
||||
cp %{_baseline_workspace}/rpms/legal/license.txt \
|
||||
%{_build_root}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master Rights File.pdf" \
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master_Rights_File.pdf" \
|
||||
%{_build_root}/${COMPONENT_BUILD_DIR}/licenses
|
||||
}
|
||||
pushd . > /dev/null
|
||||
|
|
|
@ -64,9 +64,7 @@ function copyLegal()
|
|||
tar -cjf %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
%{_baseline_workspace}/rpms/legal/FOSS_licenses/
|
||||
|
||||
cp %{_baseline_workspace}/rpms/legal/license.txt \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master Rights File.pdf" \
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master_Rights_File.pdf" \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
|
|
|
@ -139,9 +139,7 @@ function copyLegal()
|
|||
tar -cjf %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
%{_baseline_workspace}/rpms/legal/FOSS_licenses/
|
||||
|
||||
cp %{_baseline_workspace}/rpms/legal/license.txt \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master Rights File.pdf" \
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master_Rights_File.pdf" \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
|
|
|
@ -52,9 +52,7 @@ function copyLegal()
|
|||
tar -cjf %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
%{_baseline_workspace}/rpms/legal/FOSS_licenses/
|
||||
|
||||
cp %{_baseline_workspace}/rpms/legal/license.txt \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master Rights File.pdf" \
|
||||
cp "%{_baseline_workspace}/rpms/legal/Master_Rights_File.pdf" \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
cp %{_baseline_workspace}/rpms/legal/FOSS_licenses.tar \
|
||||
${RPM_BUILD_ROOT}/${COMPONENT_BUILD_DIR}/licenses
|
||||
|
|
|
@ -49,6 +49,22 @@ function buildQPID()
|
|||
|
||||
pushd . > /dev/null 2>&1
|
||||
|
||||
# ensure that the destination rpm directories exist
|
||||
if [ ! -d ${AWIPSII_TOP_DIR}/RPMS/noarch ]; then
|
||||
mkdir -p ${AWIPSII_TOP_DIR}/RPMS/noarch
|
||||
if [ $? -ne 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# ensure that the destination rpm directories exist
|
||||
if [ ! -d ${AWIPSII_TOP_DIR}/RPMS/x86_64 ]; then
|
||||
mkdir -p ${AWIPSII_TOP_DIR}/RPMS/x86_64
|
||||
if [ $? -ne 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
cd ${WORKSPACE}/rpms/awips2.qpid/0.18/deploy.builder
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "ERROR: Failed to build the qpid rpms."
|
||||
|
@ -61,14 +77,6 @@ function buildQPID()
|
|||
return 1
|
||||
fi
|
||||
|
||||
# ensure that the destination rpm directories exist
|
||||
if [ ! -d ${AWIPSII_TOP_DIR}/RPMS/noarch ]; then
|
||||
mkdir -p ${AWIPSII_TOP_DIR}/RPMS/noarch
|
||||
if [ $? -ne 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Copy the 0.18 qpid rpms
|
||||
cd ${WORKSPACE}/rpms/awips2.qpid/0.18/RPMS/noarch
|
||||
if [ $? -ne 0 ]; then
|
||||
|
@ -90,6 +98,11 @@ function buildQPID()
|
|||
return 1
|
||||
fi
|
||||
|
||||
#build 0.28
|
||||
export AWIPS_II_TOP_DIR
|
||||
cd ${WORKSPACE}/installers/RPMs/qpid-java-broker-0.28
|
||||
/bin/bash build.sh
|
||||
|
||||
popd > /dev/null 2>&1
|
||||
|
||||
return 0
|
||||
|
|
48
rpms/legal/FOSS_licenses/Academic_Free_License_2.1.txt
Normal file
48
rpms/legal/FOSS_licenses/Academic_Free_License_2.1.txt
Normal file
|
@ -0,0 +1,48 @@
|
|||
The Academic Free License
|
||||
v. 2.1
|
||||
|
||||
This Academic Free License (the "License") applies to any original work of authorship (the "Original Work") whose owner (the "Licensor") has placed the following notice immediately following the copyright notice for the Original Work:
|
||||
|
||||
Licensed under the Academic Free License version 2.1
|
||||
|
||||
1) Grant of Copyright License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license to do the following:
|
||||
|
||||
a) to reproduce the Original Work in copies;
|
||||
|
||||
b) to prepare derivative works ("Derivative Works") based upon the Original Work;
|
||||
|
||||
c) to distribute copies of the Original Work and Derivative Works to the public;
|
||||
|
||||
d) to perform the Original Work publicly; and
|
||||
|
||||
e) to display the Original Work publicly.
|
||||
|
||||
2) Grant of Patent License. Licensor hereby grants You a world-wide, royalty-free, non-exclusive, perpetual, sublicenseable license, under patent claims owned or controlled by the Licensor that are embodied in the Original Work as furnished by the Licensor, to make, use, sell and offer for sale the Original Work and Derivative Works.
|
||||
|
||||
3) Grant of Source Code License. The term "Source Code" means the preferred form of the Original Work for making modifications to it and all available documentation describing how to modify the Original Work. Licensor hereby agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work, and by publishing the address of that information repository in a notice immediately following the copyright notice that applies to the Original Work.
|
||||
|
||||
4) Exclusions From License Grant. Neither the names of Licensor, nor the names of any contributors to the Original Work, nor any of their trademarks or service marks, may be used to endorse or promote products derived from this Original Work without express prior written permission of the Licensor. Nothing in this License shall be deemed to grant any rights to trademarks, copyrights, patents, trade secrets or any other intellectual property of Licensor except as expressly stated herein. No patent license is granted to make, use, sell or offer to sell embodiments of any patent claims other than the licensed claims defined in Section 2. No right is granted to the trademarks of Licensor even if such marks are included in the Original Work. Nothing in this License shall be interpreted to prohibit Licensor from licensing under different terms from this License any Original Work that Licensor otherwise would have a right to license.
|
||||
|
||||
5) This section intentionally omitted.
|
||||
|
||||
6) Attribution Rights. You must retain, in the Source Code of any Derivative Works that You create, all copyright, patent or trademark notices from the Source Code of the Original Work, as well as any notices of licensing and any descriptive text identified therein as an "Attribution Notice." You must cause the Source Code for any Derivative Works that You create to carry a prominent Attribution Notice reasonably calculated to inform recipients that You have modified the Original Work.
|
||||
|
||||
7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that the copyright in and to the Original Work and the patent rights granted herein by Licensor are owned by the Licensor or are sublicensed to You under the terms of this License with the permission of the contributor(s) of those copyrights and patent rights. Except as expressly stated in the immediately proceeding sentence, the Original Work is provided under this License on an "AS IS" BASIS and WITHOUT WARRANTY, either express or implied, including, without limitation, the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU. This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No license to Original Work is granted hereunder except under this disclaimer.
|
||||
|
||||
8) Limitation of Liability. Under no circumstances and under no legal theory, whether in tort (including negligence), contract, or otherwise, shall the Licensor be liable to any person for any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or the use of the Original Work including, without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses. This limitation of liability shall not apply to liability for death or personal injury resulting from Licensor's negligence to the extent applicable law prohibits such limitation. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so this exclusion and limitation may not apply to You.
|
||||
|
||||
9) Acceptance and Termination. If You distribute copies of the Original Work or a Derivative Work, You must make a reasonable effort under the circumstances to obtain the express assent of recipients to the terms of this License. Nothing else but this License (or another written agreement between Licensor and You) grants You permission to create Derivative Works based upon the Original Work or to exercise any of the rights granted in Section 1 herein, and any attempt to do so except under the terms of this License (or another written agreement between Licensor and You) is expressly prohibited by U.S. copyright law, the equivalent laws of other countries, and by international treaty. Therefore, by exercising any of the rights granted to You in Section 1 herein, You indicate Your acceptance of this License and all of its terms and conditions.
|
||||
|
||||
10) Termination for Patent Action. This License shall terminate automatically and You may no longer exercise any of the rights granted to You by this License as of the date You commence an action, including a cross-claim or counterclaim, against Licensor or any licensee alleging that the Original Work infringes a patent. This termination provision shall not apply for an action alleging patent infringement by combinations of the Original Work with other software or hardware.
|
||||
|
||||
11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this License may be brought only in the courts of a jurisdiction wherein the Licensor resides or in which Licensor conducts its primary business, and under the laws of that jurisdiction excluding its conflict-of-law provisions. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any use of the Original Work outside the scope of this License or after its termination shall be subject to the requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et seq., the equivalent laws of other countries, and international treaty. This section shall survive the termination of this License.
|
||||
|
||||
12) Attorneys Fees. In any action to enforce the terms of this License or seeking damages relating thereto, the prevailing party shall be entitled to recover its costs and expenses, including, without limitation, reasonable attorneys' fees and costs incurred in connection with such action, including any appeal of such action. This section shall survive the termination of this License.
|
||||
|
||||
13) Miscellaneous. This License represents the complete agreement concerning the subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable.
|
||||
|
||||
14) Definition of "You" in This License. "You" throughout this License, whether in upper or lower case, means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity that controls, is controlled by, or is under common control with you. For purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
15) Right to Use. You may use the Original Work in all ways not otherwise restricted or conditioned by this License or by law, and Licensor promises not to interfere with or be responsible for such uses by You.
|
||||
|
||||
This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved. Permission is hereby granted to copy and distribute this license without modification. This license may not be modified without the express written permission of its copyright owner.
|
8
rpms/legal/FOSS_licenses/Aleksei_Valikov_c_2006-2009.txt
Normal file
8
rpms/legal/FOSS_licenses/Aleksei_Valikov_c_2006-2009.txt
Normal file
|
@ -0,0 +1,8 @@
|
|||
Copyright (c) 2006-2009, Aleksei Valikov
|
||||
All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
• Redistributions of source code must retain the abov e copyright notice, this list of conditions and the following disclaimer.
|
||||
• Redistributions in binary form must reproduce the a bove copyright notice, this list of conditions and the following disclaimer in the docu mentation and/or other materials provided with the distribution.
|
||||
• Neither the name of Alexey Valikov nor the name of Highsource nor the names of its contributors may be used to endorse or promote prod ucts derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WAR RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTI ES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOS E ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, IN CIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERV ICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HO WEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT , STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWI SE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF AD VISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
17
rpms/legal/FOSS_licenses/h5py/LICENSE.txt → rpms/legal/FOSS_licenses/Andrew_Collette_c_2008.txt
Executable file → Normal file
17
rpms/legal/FOSS_licenses/h5py/LICENSE.txt → rpms/legal/FOSS_licenses/Andrew_Collette_c_2008.txt
Executable file → Normal file
|
@ -4,21 +4,26 @@ Copyright (c) 2008 Andrew Collette
|
|||
http://h5py.alfven.org
|
||||
All rights reserved.
|
||||
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
|
||||
a. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
|
||||
b. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the
|
||||
distribution.
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
|
||||
c. Neither the name of the author nor the names of contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
13
rpms/legal/FOSS_licenses/Antler_3_License.txt
Normal file
13
rpms/legal/FOSS_licenses/Antler_3_License.txt
Normal file
|
@ -0,0 +1,13 @@
|
|||
ANTLR 3 License
|
||||
|
||||
[The BSD License]
|
||||
Copyright (c) 2010 Terence Parr
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
0
rpms/legal/FOSS_licenses/apache/Apache1.1.txt → rpms/legal/FOSS_licenses/Apache_1.1.txt
Executable file → Normal file
0
rpms/legal/FOSS_licenses/apache/Apache1.1.txt → rpms/legal/FOSS_licenses/Apache_1.1.txt
Executable file → Normal file
18
rpms/legal/FOSS_licenses/Boost_Software_License_1.0.txt
Normal file
18
rpms/legal/FOSS_licenses/Boost_Software_License_1.0.txt
Normal file
|
@ -0,0 +1,18 @@
|
|||
Boost Software License - Version 1.0 - August 17th, 2003
|
||||
|
||||
Permission is hereby granted, free of charge, to any person or organization
|
||||
obtaining a copy of the software and accompanying documentation covered by
|
||||
this license (the "Software") to use, reproduce, display, distribute,
|
||||
execute, and transmit the Software, and to prepare derivative works of the
|
||||
Software, and to permit third-parties to whom the Software is furnished to
|
||||
do so, all subject to the following:
|
||||
|
||||
The copyright notices in the Software and this entire statement, including
|
||||
the above license grant, this restriction and the following disclaimer,
|
||||
must be included in all copies of the Software, in whole or in part, and
|
||||
all derivative works of the Software, unless such copies or derivative
|
||||
works are solely in the form of machine-executable object code generated by
|
||||
a source language processor.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
70
rpms/legal/FOSS_licenses/CDDL_1.0.txt
Normal file
70
rpms/legal/FOSS_licenses/CDDL_1.0.txt
Normal file
|
@ -0,0 +1,70 @@
|
|||
COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
|
||||
Version 1.0
|
||||
1. Definitions.
|
||||
1.1. “Contributor” means each individual or entity that creates or contributes to the creation of Modifications.
|
||||
1.2. “Contributor Version” means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor.
|
||||
1.3. “Covered Software” means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof.
|
||||
1.4. “Executable” means the Covered Software in any form other than Source Code.
|
||||
1.5. “Initial Developer” means the individual or entity that first makes Original Software available under this License.
|
||||
1.6. “Larger Work” means a work which combines Covered Software or portions thereof with code not governed by the terms of this License.
|
||||
1.7. “License” means this document.
|
||||
1.8. “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.
|
||||
1.9. “Modifications” means the Source Code and Executable form of any of the following:
|
||||
A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications;
|
||||
B. Any new file that contains any part of the Original Software or previous Modification; or
|
||||
C. Any new file that is contributed or otherwise made available under the terms of this License.
|
||||
1.10. “Original Software” means the Source Code and Executable form of computer software code that is originally released under this License.
|
||||
1.11. “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.
|
||||
1.12. “Source Code” means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code.
|
||||
1.13. “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.
|
||||
2. License Grants.
|
||||
2.1. The Initial Developer Grant.
|
||||
Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license:
|
||||
(a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and
|
||||
(b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof).
|
||||
(c) The licenses granted in Sections 2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License.
|
||||
(d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for code that You delete from the Original Software, or (2) for infringements caused by: (i) the modification of the Original Software, or (ii) the combination of the Original Software with other software or devices.
|
||||
2.2. Contributor Grant.
|
||||
Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:
|
||||
(a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and
|
||||
(b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1) Modifications made by that Contributor (or portions thereof); and (2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).
|
||||
(c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party.
|
||||
(d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1) for any code that Contributor has deleted from the Contributor Version; (2) for infringements caused by: (i) third party modifications of Contributor Version, or (ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or (3) under Patent Claims infringed by Covered Software in the absence of Modifications made by that Contributor.
|
||||
3. Distribution Obligations.
|
||||
3.1. Availability of Source Code.
|
||||
Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable manner on or through a medium customarily used for software exchange.
|
||||
3.2. Modifications.
|
||||
The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License.
|
||||
3.3. Required Notices.
|
||||
You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer.
|
||||
3.4. Application of Additional Terms.
|
||||
You may not offer or impose any terms on any Covered Software in Source Code form that alters or restricts the applicable version of this License or the recipients' rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear that any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer.
|
||||
3.5. Distribution of Executable Versions.
|
||||
You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipient's rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.
|
||||
3.6. Larger Works.
|
||||
You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software.
|
||||
4. Versions of the License.
|
||||
4.1. New Versions.
|
||||
Sun Microsystems, Inc. is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License.
|
||||
4.2. Effect of New Versions.
|
||||
You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward.
|
||||
4.3. Modified Versions.
|
||||
When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a) rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b) otherwise make it clear that the license contains terms which differ from this License.
|
||||
5. DISCLAIMER OF WARRANTY.
|
||||
COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
|
||||
6. TERMINATION.
|
||||
6.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.
|
||||
6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as “Participant”) alleging that the Participant Software (meaning the Contributor Version where the Participant is a Contributor or the Original Software where the Participant is the Initial Developer) directly or indirectly infringes any patent, then any and all rights granted directly or indirectly to You by such Participant, the Initial Developer (if the Initial Developer is not the Participant) and all Contributors under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively and automatically at the expiration of such 60 day notice period, unless if within such 60 day period You withdraw Your claim with respect to the Participant Software against such Participant either unilaterally or pursuant to a written agreement with Participant.
|
||||
6.3. If You assert a patent infringement claim against Participant alleging that the Participant Software directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license.
|
||||
6.4. In the event of termination under Sections 6.1 or 6.2 above, all end user licenses that have been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to You by any distributor) shall survive termination.
|
||||
7. LIMITATION OF LIABILITY.
|
||||
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
|
||||
8. U.S. GOVERNMENT END USERS.
|
||||
The Covered Software is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” (as that term is defined at 48 C.F.R. § 252.227-7014(a)(1)) and “commercial computer software documentation” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. This U.S. Government Rights clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision that addresses Government rights in computer software under this License.
|
||||
9. MISCELLANEOUS.
|
||||
This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by the law of the jurisdiction specified in a notice contained within the Original Software (except to the extent applicable law, if any, provides otherwise), excluding such jurisdiction's conflict-of-law provisions. Any litigation relating to this License shall be subject to the jurisdiction of the courts located in the jurisdiction and venue specified in a notice contained within the Original Software, with the losing party responsible for costs, including, without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. You agree that You alone are responsible for compliance with the United States export administration regulations (and the export control laws and regulation of any other countries) when You use, distribute or otherwise make available any Covered Software.
|
||||
10. RESPONSIBILITY FOR CLAIMS.
|
||||
As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.
|
||||
|
||||
NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
|
||||
The NetBeans code released under the CDDL shall be governed by the laws of the State of California (excluding conflict-of-law provisions). Any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California and the state courts of the State of California, with venue lying in Santa Clara County, California.
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
CeCILL-C FREE SOFTWARE LICENSE AGREEMENT
|
||||
|
||||
|
||||
|
@ -19,7 +18,7 @@ the two main principles guiding its drafting:
|
|||
The authors of the CeCILL-C (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre])
|
||||
license are:
|
||||
|
||||
Commissariat à l'Energie Atomique - CEA, a public scientific, technical
|
||||
Commissariat à l'Energie Atomique - CEA, a public scientific, technical
|
||||
and industrial research establishment, having its principal place of
|
||||
business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France.
|
||||
|
||||
|
@ -338,7 +337,7 @@ The Licensee expressly undertakes:
|
|||
|
||||
The Licensee undertakes not to directly or indirectly infringe the
|
||||
intellectual property rights of the Holder and/or Contributors on the
|
||||
Software and to take, where applicable, vis-à-vis its staff, any and all
|
||||
Software and to take, where applicable, vis-à-vis its staff, any and all
|
||||
measures required to ensure respect of said intellectual property rights
|
||||
of the Holder and/or Contributors.
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
Copyright (c) 2004-2009, CherryPy Team (team@cherrypy.org)
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of the CherryPy Team nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
89
rpms/legal/FOSS_licenses/Eclipse_Public_License_1.0.txt
Normal file
89
rpms/legal/FOSS_licenses/Eclipse_Public_License_1.0.txt
Normal file
|
@ -0,0 +1,89 @@
|
|||
|
||||
Eclipse Public License - v 1.0
|
||||
|
||||
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
|
||||
|
||||
1. DEFINITIONS
|
||||
|
||||
"Contribution" means:
|
||||
|
||||
a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
|
||||
|
||||
b) in the case of each subsequent Contributor:
|
||||
|
||||
i) changes to the Program, and
|
||||
|
||||
ii) additions to the Program;
|
||||
|
||||
where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
|
||||
|
||||
"Contributor" means any person or entity that distributes the Program.
|
||||
|
||||
"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
|
||||
|
||||
"Program" means the Contributions distributed in accordance with this Agreement.
|
||||
|
||||
"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
|
||||
|
||||
2. GRANT OF RIGHTS
|
||||
|
||||
a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
|
||||
|
||||
b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
|
||||
|
||||
c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
|
||||
|
||||
d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
|
||||
|
||||
3. REQUIREMENTS
|
||||
|
||||
A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
|
||||
|
||||
a) it complies with the terms and conditions of this Agreement; and
|
||||
|
||||
b) its license agreement:
|
||||
|
||||
i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
|
||||
|
||||
ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
|
||||
|
||||
iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
|
||||
|
||||
iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
|
||||
|
||||
When the Program is made available in source code form:
|
||||
|
||||
a) it must be made available under this Agreement; and
|
||||
|
||||
b) a copy of this Agreement must be included with each copy of the Program.
|
||||
|
||||
Contributors may not remove or alter any copyright notices contained within the Program.
|
||||
|
||||
Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
|
||||
|
||||
4. COMMERCIAL DISTRIBUTION
|
||||
|
||||
Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
|
||||
|
||||
For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
|
||||
|
||||
5. NO WARRANTY
|
||||
|
||||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
|
||||
|
||||
6. DISCLAIMER OF LIABILITY
|
||||
|
||||
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
7. GENERAL
|
||||
|
||||
If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
|
||||
|
||||
If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
|
||||
|
||||
All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
|
||||
|
||||
Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
|
||||
|
||||
This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
|
||||
|
20
rpms/legal/FOSS_licenses/Eugene_Kuleshov_Copyright_2004.txt
Normal file
20
rpms/legal/FOSS_licenses/Eugene_Kuleshov_Copyright_2004.txt
Normal file
|
@ -0,0 +1,20 @@
|
|||
ASM XML Adapter examples.
|
||||
|
||||
Copyright (c) 2004, Eugene Kuleshov
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holders nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT lIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Copy source document into target without changes.
|
||||
|
18
rpms/legal/FOSS_licenses/Francesc_Alted_Carabos_Coop.txt
Normal file
18
rpms/legal/FOSS_licenses/Francesc_Alted_Carabos_Coop.txt
Normal file
|
@ -0,0 +1,18 @@
|
|||
Copyright Notice and Statement for PyTables Software Library and Utilities:
|
||||
|
||||
Copyright (c) 2002-2004 by Francesc Alted
|
||||
Copyright (c) 2005-2007 by Carabos Coop. V.
|
||||
Copyright (c) 2008-2010 by Francesc Alted
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
a. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
|
||||
b. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
c. Neither the name of Francesc Alted nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
7
rpms/legal/FOSS_licenses/Frank_Warmerdam_c_2000.txt
Normal file
7
rpms/legal/FOSS_licenses/Frank_Warmerdam_c_2000.txt
Normal file
|
@ -0,0 +1,7 @@
|
|||
Copyright (c) 2000, Frank Warmerdam
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -1,504 +0,0 @@
|
|||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
159
rpms/legal/FOSS_licenses/GPL_2.0_with_Classpath_Exception.txt
Normal file
159
rpms/legal/FOSS_licenses/GPL_2.0_with_Classpath_Exception.txt
Normal file
|
@ -0,0 +1,159 @@
|
|||
GNU General Public License, version 2,
|
||||
with the Classpath Exception
|
||||
The GNU General Public License (GPL)
|
||||
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change
|
||||
the software or use pieces of it in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the
|
||||
software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and (2)offer you this license which gives you legal permission to copy, distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced
|
||||
by others will not reflect on the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and modification follow.
|
||||
|
||||
|
||||
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any
|
||||
derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by
|
||||
running the Program). Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the
|
||||
Program a copy of this License along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of
|
||||
these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and
|
||||
its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms
|
||||
of this License, whose permissions for other licensees extend to the entire
|
||||
whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation
|
||||
of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on)of the operating system on which the executable runs, unless that component itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to
|
||||
do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many
|
||||
people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to
|
||||
distribute software through any other system and a licensee cannot impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In
|
||||
such case, this License incorporates the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this.
|
||||
Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
|
||||
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
One line to give the program's name and a brief idea of what it does.
|
||||
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option)any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free software, and you are welcome to redistribute it under certain conditions; type 'show c' for details.
|
||||
|
||||
The hypothetical commands 'show w' and 'show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than 'show w' and 'show c'; they could even be mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program 'Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
signature of Ty Coon, 1 April 1989
|
||||
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.
|
||||
|
||||
|
||||
"CLASSPATH" EXCEPTION TO THE GPL
|
||||
|
||||
Certain source files distributed by Sun Microsystems, Inc. are subject to the following clarification and special exception to the GPL, but only where Sun has expressly included in the particular source file's header the words "Sun designates this particular file as subject to the "Classpath" exception
|
||||
as provided by Sun in the LICENSE file that accompanied this code."
|
||||
|
||||
Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.
|
114
rpms/legal/FOSS_licenses/GPL_2.0_with_Libtool_Exception.txt
Normal file
114
rpms/legal/FOSS_licenses/GPL_2.0_with_Libtool_Exception.txt
Normal file
|
@ -0,0 +1,114 @@
|
|||
GNU General Public License
|
||||
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and modification follow.
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The 'Program', below, refers to any such program or work, and a 'work based on the Program' means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term 'modification'.) Each licensee is addressed as 'you'.
|
||||
|
||||
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what theProgram does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
|
||||
|
||||
You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
|
||||
You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
|
||||
If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
|
||||
Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
|
||||
Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and 'any later version', you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
|
||||
NO WARRANTY
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM 'AS IS' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
END OF TERMS AND CONDITIONS
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the 'copyright' line and a pointer to where the full notice is found.
|
||||
|
||||
one line to give the program's name and a brief idea of what it does. Copyright (C)
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your school, if any, to sign a 'copyright disclaimer' for the program, if necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.
|
||||
END OF TERMS AND CONDITIONS
|
||||
Libtool exception
|
||||
|
||||
As a special exception to the GNU General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program.
|
235
rpms/legal/FOSS_licenses/GPL_3.0.txt
Normal file
235
rpms/legal/FOSS_licenses/GPL_3.0.txt
Normal file
|
@ -0,0 +1,235 @@
|
|||
GNU General Public License Version 3
|
||||
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. http://fsf.org/
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and modification follow.
|
||||
TERMS AND CONDITIONS
|
||||
0. Definitions.
|
||||
|
||||
'This License' refers to version 3 of the GNU General Public License.
|
||||
|
||||
'Copyright' also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.
|
||||
|
||||
'The Program' refers to any copyrightable work licensed under this License. Each licensee is addressed as 'you'. 'Licensees' and 'recipients' may be individuals or organizations.
|
||||
|
||||
To 'modify' a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a 'modified version' of the earlier work or a work 'based on' the earlier work.
|
||||
|
||||
A 'covered work' means either the unmodified Program or a work based on the Program.
|
||||
|
||||
To 'propagate' a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.
|
||||
|
||||
To 'convey' a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays 'Appropriate Legal Notices' to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.
|
||||
1. Source Code.
|
||||
|
||||
The 'source code' for a work means the preferred form of the work for making modifications to it. 'Object code' means any non-source form of a work.
|
||||
|
||||
A 'Standard Interface' means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.
|
||||
|
||||
The 'System Libraries' of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A 'Major Component', in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The 'Corresponding Source' for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that same work.
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
The work must carry prominent notices stating that you modified it, and giving a relevant date.
|
||||
The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to 'keep intact all notices'.
|
||||
You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
|
||||
If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an 'aggregate' if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
|
||||
|
||||
Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
|
||||
Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
|
||||
Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
|
||||
Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
|
||||
e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.
|
||||
|
||||
A 'User Product' is either (1) a 'consumer product', which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, 'normally used' refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
|
||||
|
||||
'Installation Information' for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
|
||||
7. Additional Terms.
|
||||
|
||||
'Additional permissions' are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
|
||||
|
||||
Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
|
||||
Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
|
||||
Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
|
||||
Limiting the use for publicity purposes of names of licensors or authors of the material; or
|
||||
Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
|
||||
Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered 'further restrictions' within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.
|
||||
|
||||
An 'entity transaction' is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
|
||||
11. Patents.
|
||||
|
||||
A 'contributor' is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's 'contributor version'.
|
||||
|
||||
A contributor's 'essential patent claims' are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, 'control' includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a 'patent license' is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To 'grant' such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. 'Knowingly relying' means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.
|
||||
|
||||
A patent license is 'discriminatory' if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License 'or any later version' applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM 'AS IS' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
|
||||
END OF TERMS AND CONDITIONS
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the 'copyright' line and a pointer to where the full notice is found.
|
||||
|
||||
[one line to give the program's name and a brief idea of what it does.]
|
||||
|
||||
Copyright (C) [year] [name of author]
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
|
||||
along with this program. If not, see http://www.gnu.org/licenses/.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:
|
||||
|
||||
[program] Copyright (C) [year] [name of author]
|
||||
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type 'show w'.
|
||||
|
||||
This is free software, and you are welcome to redistribute it
|
||||
|
||||
under certain conditions; type 'show c' for details.
|
||||
|
||||
The hypothetical commands 'show w' and 'show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an 'about box'.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school, if any, to sign a 'copyright disclaimer' for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see http://www.gnu.org/licenses/.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read http://www.gnu.org/philosophy/why-not-lgpl.html.
|
|
@ -1,32 +0,0 @@
|
|||
/*
|
||||
* Copyright 1998-2009 University Corporation for Atmospheric Research/Unidata
|
||||
*
|
||||
* Portions of this software were developed by the Unidata Program at the
|
||||
* University Corporation for Atmospheric Research.
|
||||
*
|
||||
* Access and use of this software shall impose the following obligations
|
||||
* and understandings on the user. The user is granted the right, without
|
||||
* any fee or cost, to use, copy, modify, alter, enhance and distribute
|
||||
* this software, and any derivative works thereof, and its supporting
|
||||
* documentation for any purpose whatsoever, provided that this entire
|
||||
* notice appears in all copies of the software, derivative works and
|
||||
* supporting documentation. Further, UCAR requests that the user credit
|
||||
* UCAR/Unidata in any publications that result from the use of this
|
||||
* software or in any product that includes this software. The names UCAR
|
||||
* and/or Unidata, however, may not be used in any advertising or publicity
|
||||
* to endorse or promote any products or commercial entity unless specific
|
||||
* written permission is obtained from UCAR/Unidata. The user also
|
||||
* understands that UCAR/Unidata is not obligated to provide the user with
|
||||
* any support, consulting, training or assistance of any kind with regard
|
||||
* to the use, operation and performance of this software nor to provide
|
||||
* the user with any updates, revisions, new versions or "bug fixes."
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY UCAR/UNIDATA "AS IS" AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL UCAR/UNIDATA BE LIABLE FOR ANY SPECIAL,
|
||||
* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
|
||||
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
* WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
|
@ -1,504 +0,0 @@
|
|||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
262
rpms/legal/FOSS_licenses/Gdal_License.txt
Normal file
262
rpms/legal/FOSS_licenses/Gdal_License.txt
Normal file
|
@ -0,0 +1,262 @@
|
|||
GDAL/OGR Licensing
|
||||
==================
|
||||
|
||||
This file attempts to include all licenses that apply within the GDAL/OGR
|
||||
source tree, in particular any that are supposed to be exposed to the end user
|
||||
for credit requirements for instance. The contents of this file can be
|
||||
displayed from GDAL commandline utilities using the --license commandline
|
||||
switch.
|
||||
|
||||
|
||||
GDAL/OGR General
|
||||
----------------
|
||||
|
||||
In general GDAL/OGR is licensed under an MIT/X style license with the
|
||||
following terms:
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
gdal/frmts/gtiff/tif_float.c
|
||||
----------------------------
|
||||
|
||||
Copyright (c) 2002, Industrial Light & Magic, a division of Lucas
|
||||
Digital Ltd. LLC
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following disclaimer
|
||||
in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of Industrial Light & Magic nor the names of
|
||||
its contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
gdal/frmts/hdf4/hdf-eos/*
|
||||
------------------------
|
||||
|
||||
Copyright (C) 1996 Hughes and Applied Research Corporation
|
||||
|
||||
Permission to use, modify, and distribute this software and its documentation
|
||||
for any purpose without fee is hereby granted, provided that the above
|
||||
copyright notice appear in all copies and that both that copyright notice and
|
||||
this permission notice appear in supporting documentation.
|
||||
|
||||
|
||||
gdal/frmts/pcraster/libcsf
|
||||
--------------------------
|
||||
|
||||
Copyright (c) 1997-2003, Utrecht University
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
|
||||
* Neither the name of Utrecht University nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
gdal/frmts/grib/degrib/*
|
||||
------------------------
|
||||
|
||||
The degrib and g2clib source code are modified versions of code produced
|
||||
by NOAA NWS and are in the public domain subject to the following
|
||||
restrictions:
|
||||
|
||||
http://www.weather.gov/im/softa.htm
|
||||
|
||||
DISCLAIMER The United States Government makes no warranty, expressed or
|
||||
implied, as to the usefulness of the software and documentation for any
|
||||
purpose. The U.S. Government, its instrumentalities, officers, employees,
|
||||
and agents assumes no responsibility (1) for the use of the software and
|
||||
documentation listed below, or (2) to provide technical support to users.
|
||||
|
||||
http://www.weather.gov/disclaimer.php
|
||||
|
||||
The information on government servers are in the public domain, unless
|
||||
specifically annotated otherwise, and may be used freely by the public so
|
||||
long as you do not 1) claim it is your own (e.g. by claiming copyright for
|
||||
NWS information -- see below), 2) use it in a manner that implies an
|
||||
endorsement or affiliation with NOAA/NWS, or 3) modify it in content and
|
||||
then present it as official government material. You also cannot present
|
||||
information of your own in a way that makes it appear to be official
|
||||
government information..
|
||||
|
||||
The user assumes the entire risk related to its use of this data. NWS is
|
||||
providing this data "as is," and NWS disclaims any and all warranties,
|
||||
whether express or implied, including (without limitation) any implied
|
||||
warranties of merchantability or fitness for a particular purpose. In no
|
||||
event will NWS be liable to you or to any third party for any direct,
|
||||
indirect, incidental, consequential, special or exemplary damages or lost
|
||||
profit resulting from any use or misuse of this data.
|
||||
|
||||
As required by 17 U.S.C. 403, third parties producing copyrighted works
|
||||
consisting predominantly of the material appearing in NWS Web pages must
|
||||
provide notice with such work(s) identifying the NWS material incorporated
|
||||
and stating that such material is not subject to copyright protection.
|
||||
|
||||
port/cpl_minizip*
|
||||
-----------------
|
||||
|
||||
This is version 2005-Feb-10 of the Info-ZIP copyright and license.
|
||||
The definitive version of this document should be available at
|
||||
ftp://ftp.info-zip.org/pub/infozip/license.html indefinitely.
|
||||
|
||||
|
||||
Copyright (c) 1990-2005 Info-ZIP. All rights reserved.
|
||||
|
||||
For the purposes of this copyright and license, "Info-ZIP" is defined as
|
||||
the following set of individuals:
|
||||
|
||||
Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois,
|
||||
Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth,
|
||||
Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz,
|
||||
David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko,
|
||||
Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs,
|
||||
Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda,
|
||||
Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren,
|
||||
Rich Wales, Mike White
|
||||
|
||||
This software is provided "as is," without warranty of any kind, express
|
||||
or implied. In no event shall Info-ZIP or its contributors be held liable
|
||||
for any direct, indirect, incidental, special or consequential damages
|
||||
arising out of the use of or inability to use this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
definition, disclaimer, and this list of conditions.
|
||||
|
||||
2. Redistributions in binary form (compiled executables) must reproduce
|
||||
the above copyright notice, definition, disclaimer, and this list of
|
||||
conditions in documentation and/or other materials provided with the
|
||||
distribution. The sole exception to this condition is redistribution
|
||||
of a standard UnZipSFX binary (including SFXWiz) as part of a
|
||||
self-extracting archive; that is permitted without inclusion of this
|
||||
license, as long as the normal SFX banner has not been removed from
|
||||
the binary or disabled.
|
||||
|
||||
3. Altered versions--including, but not limited to, ports to new operating
|
||||
systems, existing ports with new graphical interfaces, and dynamic,
|
||||
shared, or static library versions--must be plainly marked as such
|
||||
and must not be misrepresented as being the original source. Such
|
||||
altered versions also must not be misrepresented as being Info-ZIP
|
||||
releases--including, but not limited to, labeling of the altered
|
||||
versions with the names "Info-ZIP" (or any variation thereof, including,
|
||||
but not limited to, different capitalizations), "Pocket UnZip," "WiZ"
|
||||
or "MacZip" without the explicit permission of Info-ZIP. Such altered
|
||||
versions are further prohibited from misrepresentative use of the
|
||||
Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s).
|
||||
|
||||
4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip,"
|
||||
"UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its
|
||||
own source and binary releases.
|
||||
|
||||
|
||||
gdal/ogr/ogrsf_frmts/dxf/intronurbs.cpp
|
||||
---------------------------------------
|
||||
|
||||
This code is derived from the code associated with the book "An Introduction
|
||||
to NURBS" by David F. Rogers. More information on the book and the code is
|
||||
available at:
|
||||
|
||||
http://www.nar-associates.com/nurbs/
|
||||
|
||||
|
||||
Copyright (c) 2009, David F. Rogers
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of the David F. Rogers nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
gdal/alg/thinplatespline.cpp
|
||||
----------------------------
|
||||
|
||||
IEEE754 log() code derived from:
|
||||
@(#)e_log.c 1.3 95/01/18
|
||||
|
||||
Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
||||
|
||||
Developed at SunSoft, a Sun Microsystems, Inc. business.
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software is freely granted, provided that this notice
|
||||
is preserved.
|
|
@ -1,132 +0,0 @@
|
|||
1 The GlueGen source code is mostly licensed under the New BSD 2-clause license,
|
||||
3 however it contains other licensed material as well.
|
||||
4
|
||||
5 Below you find a detailed list of licenses used in this project.
|
||||
6
|
||||
7 +++
|
||||
8
|
||||
9 The content of folder 'make/lib' contains build-time only
|
||||
10 Java binaries (JAR) to ease the build setup.
|
||||
11 Each JAR file has it's corresponding LICENSE file containing the
|
||||
12 source location and license text. None of these binaries are contained in any way
|
||||
13 by the generated and deployed GlueGen binaries.
|
||||
14
|
||||
15 +++
|
||||
16
|
||||
17 L.1) The GlueGen source tree contains code from the JogAmp Community
|
||||
18 which is covered by the Simplified BSD 2-clause license:
|
||||
19
|
||||
20 Copyright 2010 JogAmp Community. All rights reserved.
|
||||
21
|
||||
22 Redistribution and use in source and binary forms, with or without modification, are
|
||||
23 permitted provided that the following conditions are met:
|
||||
24
|
||||
25 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
26 conditions and the following disclaimer.
|
||||
27
|
||||
28 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
29 of conditions and the following disclaimer in the documentation and/or other materials
|
||||
30 provided with the distribution.
|
||||
31
|
||||
32 THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
33 WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
34 FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
|
||||
35 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
36 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
37 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
38 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
39 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
40 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
41
|
||||
42 The views and conclusions contained in the software and documentation are those of the
|
||||
43 authors and should not be interpreted as representing official policies, either expressed
|
||||
44 or implied, of JogAmp Community.
|
||||
45
|
||||
46 You can address the JogAmp Community via:
|
||||
47 Web http://jogamp.org/
|
||||
48 Forum/Mailinglist http://jogamp.762907.n3.nabble.com/
|
||||
49 Chatrooms
|
||||
50 IRC irc.freenode.net #jogamp
|
||||
51 Jabber conference.jabber.org room: jogamp (deprecated!)
|
||||
52 Repository http://jogamp.org/git/
|
||||
53 Email mediastream _at_ jogamp _dot_ org
|
||||
54
|
||||
55
|
||||
56 L.2) The GlueGen source tree contains code from Sun Microsystems, Inc.
|
||||
57 which is covered by the New BSD 3-clause license:
|
||||
58
|
||||
59 Copyright (c) 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
|
||||
60
|
||||
61 Redistribution and use in source and binary forms, with or without
|
||||
62 modification, are permitted provided that the following conditions are
|
||||
63 met:
|
||||
64
|
||||
65 - Redistribution of source code must retain the above copyright
|
||||
66 notice, this list of conditions and the following disclaimer.
|
||||
67
|
||||
68 - Redistribution in binary form must reproduce the above copyright
|
||||
69 notice, this list of conditions and the following disclaimer in the
|
||||
70 documentation and/or other materials provided with the distribution.
|
||||
71
|
||||
72 Neither the name of Sun Microsystems, Inc. or the names of
|
||||
73 contributors may be used to endorse or promote products derived from
|
||||
74 this software without specific prior written permission.
|
||||
75
|
||||
76 This software is provided "AS IS," without a warranty of any kind. ALL
|
||||
77 EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
|
||||
78 INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
|
||||
79 PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
|
||||
80 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
|
||||
81 ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
|
||||
82 DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
|
||||
83 ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
|
||||
84 DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
|
||||
85 DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
|
||||
86 ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
|
||||
87 SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
88
|
||||
89 You acknowledge that this software is not designed or intended for use
|
||||
90 in the design, construction, operation or maintenance of any nuclear
|
||||
91 facility.
|
||||
92
|
||||
93 L.3) The GlueGen source tree contains CGRAM http://www.antlr.org/grammar/cgram/,
|
||||
94 a ANSI-C parser implementation using ANTLR, which is being used
|
||||
95 in the compile time part only.
|
||||
96 It is covered by the Original BSD 4-clause license:
|
||||
97
|
||||
98 Copyright (c) 1998-2000, Non, Inc.
|
||||
99 All rights reserved.
|
||||
100
|
||||
101 Redistribution and use in source and binary forms, with or without
|
||||
102 modification, are permitted provided that the following conditions are met:
|
||||
103
|
||||
104 Redistributions of source code must retain the above copyright
|
||||
105 notice, this list of conditions, and the following disclaimer.
|
||||
106
|
||||
107 Redistributions in binary form must reproduce the above copyright
|
||||
108 notice, this list of conditions, and the following disclaimer in
|
||||
109 the documentation and/or other materials provided with the
|
||||
110 distribution.
|
||||
111
|
||||
112 All advertising materials mentioning features or use of this
|
||||
113 software must display the following acknowledgement:
|
||||
114
|
||||
115 This product includes software developed by Non, Inc. and
|
||||
116 its contributors.
|
||||
117
|
||||
118 Neither name of the company nor the names of its contributors
|
||||
119 may be used to endorse or promote products derived from this
|
||||
120 software without specific prior written permission.
|
||||
121
|
||||
122 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
|
||||
123 IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
124 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
125 PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COMPANY OR CONTRIBUTORS BE
|
||||
126 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
127 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
128 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
129 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
130 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
131 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
132 POSSIBILITY OF SUCH DAMAGE.
|
||||
133
|
|
@ -1,35 +0,0 @@
|
|||
1 JOAL is released under the BSD license. The full license terms follow:
|
||||
2
|
||||
3 Copyright (c) 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
|
||||
4
|
||||
5 Redistribution and use in source and binary forms, with or without
|
||||
6 modification, are permitted provided that the following conditions are
|
||||
7 met:
|
||||
8
|
||||
9 - Redistribution of source code must retain the above copyright
|
||||
10 notice, this list of conditions and the following disclaimer.
|
||||
11
|
||||
12 - Redistribution in binary form must reproduce the above copyright
|
||||
13 notice, this list of conditions and the following disclaimer in the
|
||||
14 documentation and/or other materials provided with the distribution.
|
||||
15
|
||||
16 Neither the name of Sun Microsystems, Inc. or the names of
|
||||
17 contributors may be used to endorse or promote products derived from
|
||||
18 this software without specific prior written permission.
|
||||
19
|
||||
20 This software is provided "AS IS," without a warranty of any kind. ALL
|
||||
21 EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
|
||||
22 INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
|
||||
23 PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
|
||||
24 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
|
||||
25 ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
|
||||
26 DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
|
||||
27 ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
|
||||
28 DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
|
||||
29 DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
|
||||
30 ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
|
||||
31 SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
32
|
||||
33 You acknowledge that this software is not designed or intended for use
|
||||
34 in the design, construction, operation or maintenance of any nuclear
|
||||
35 facility.
|
|
@ -1,64 +0,0 @@
|
|||
1
|
||||
2 JOCL is licensed under the simplified BSD license.
|
||||
3
|
||||
4 Copyright 2009 - 2010 JogAmp Community. All rights reserved.
|
||||
5
|
||||
6 Redistribution and use in source and binary forms, with or without modification, are
|
||||
7 permitted provided that the following conditions are met:
|
||||
8
|
||||
9 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
10 conditions and the following disclaimer.
|
||||
11
|
||||
12 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
13 of conditions and the following disclaimer in the documentation and/or other materials
|
||||
14 provided with the distribution.
|
||||
15
|
||||
16 THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
17 WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
18 FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
|
||||
19 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
20 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
21 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
22 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
23 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
24 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
25
|
||||
26 The views and conclusions contained in the software and documentation are those of the
|
||||
27 authors and should not be interpreted as representing official policies, either expressed
|
||||
28 or implied, of JogAmp Community.
|
||||
29
|
||||
30 You can address the JogAmp Community via:
|
||||
31 Web http://jogamp.org/
|
||||
32 Forum/Mailinglist http://jogamp.762907.n3.nabble.com/
|
||||
33 Chatrooms
|
||||
34 IRC irc.freenode.net #jogamp
|
||||
35 Jabber conference.jabber.org room: jogamp (deprecated!)
|
||||
36 Repository http://github.com/mbien/jocl
|
||||
37 Email mediastream _at_ jogamp _dot_ org
|
||||
38 JOCL project lead Michael Bien, michael-bien.com, mbien _at_ fh-landshut _dot_ de
|
||||
39
|
||||
40
|
||||
41 JOCL uses header files from Khronos, reflecting OpenCL and OpenGL, for code generation with GlueGen.
|
||||
42
|
||||
43 http://www.khronos.org/legal/license/
|
||||
44
|
||||
45 Copyright (c) 2007-2010 The Khronos Group Inc.
|
||||
46
|
||||
47 Permission is hereby granted, free of charge, to any person obtaining a
|
||||
48 copy of this software and/or associated documentation files (the
|
||||
49 "Materials"), to deal in the Materials without restriction, including
|
||||
50 without limitation the rights to use, copy, modify, merge, publish,
|
||||
51 distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
52 permit persons to whom the Materials are furnished to do so, subject to
|
||||
53 the following conditions:
|
||||
54
|
||||
55 The above copyright notice and this permission notice shall be included
|
||||
56 in all copies or substantial portions of the Materials.
|
||||
57
|
||||
58 THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
59 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
60 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
61 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
62 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
63 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
64 MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
|
@ -1,365 +0,0 @@
|
|||
1 The JOGL source code is mostly licensed under the New BSD 2-clause license,
|
||||
2 however it contains other licensed material as well.
|
||||
3
|
||||
4 Below you find a detailed list of licenses used in this project.
|
||||
5
|
||||
6 +++
|
||||
7
|
||||
8 The content of folder 'make/lib' contains build- and test-time only
|
||||
9 Java binaries (JAR) to ease the build setup.
|
||||
10 Each JAR file has it's corresponding LICENSE file containing the
|
||||
11 source location and license text. None of these binaries are contained in any way
|
||||
12 by the generated and deployed JOGL binaries.
|
||||
13
|
||||
14 +++
|
||||
15
|
||||
16 L.1) The JOGL source tree contains code from the JogAmp Community
|
||||
17 which is covered by the Simplified BSD 2-clause license:
|
||||
18
|
||||
19 Copyright 2010 JogAmp Community. All rights reserved.
|
||||
20
|
||||
21 Redistribution and use in source and binary forms, with or without modification, are
|
||||
22 permitted provided that the following conditions are met:
|
||||
23
|
||||
24 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
25 conditions and the following disclaimer.
|
||||
26
|
||||
27 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
28 of conditions and the following disclaimer in the documentation and/or other materials
|
||||
29 provided with the distribution.
|
||||
30
|
||||
31 THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
32 WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
33 FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
|
||||
34 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
35 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
36 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
37 ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
38 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
39 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
40
|
||||
41 The views and conclusions contained in the software and documentation are those of the
|
||||
42 authors and should not be interpreted as representing official policies, either expressed
|
||||
43 or implied, of JogAmp Community.
|
||||
44
|
||||
45 You can address the JogAmp Community via:
|
||||
46 Web http://jogamp.org/
|
||||
47 Forum/Mailinglist http://forum.jogamp.org
|
||||
48 Chatrooms
|
||||
49 IRC irc.freenode.net #jogamp
|
||||
50 Jabber conference.jabber.org room: jogamp (deprecated!)
|
||||
51 Repository http://jogamp.org/git/
|
||||
52 Email mediastream _at_ jogamp _dot_ org
|
||||
53
|
||||
54
|
||||
55 L.2) The JOGL source tree contains code from Sun Microsystems, Inc.
|
||||
56 which is covered by the New BSD 3-clause license:
|
||||
57
|
||||
58 Copyright (c) 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
|
||||
59
|
||||
60 Redistribution and use in source and binary forms, with or without
|
||||
61 modification, are permitted provided that the following conditions are
|
||||
62 met:
|
||||
63
|
||||
64 - Redistribution of source code must retain the above copyright
|
||||
65 notice, this list of conditions and the following disclaimer.
|
||||
66
|
||||
67 - Redistribution in binary form must reproduce the above copyright
|
||||
68 notice, this list of conditions and the following disclaimer in the
|
||||
69 documentation and/or other materials provided with the distribution.
|
||||
70
|
||||
71 Neither the name of Sun Microsystems, Inc. or the names of
|
||||
72 contributors may be used to endorse or promote products derived from
|
||||
73 this software without specific prior written permission.
|
||||
74
|
||||
75 This software is provided "AS IS," without a warranty of any kind. ALL
|
||||
76 EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
|
||||
77 INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
|
||||
78 PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
|
||||
79 MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
|
||||
80 ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
|
||||
81 DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
|
||||
82 ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
|
||||
83 DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
|
||||
84 DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
|
||||
85 ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
|
||||
86 SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
87
|
||||
88 You acknowledge that this software is not designed or intended for use
|
||||
89 in the design, construction, operation or maintenance of any nuclear
|
||||
90 facility.
|
||||
91
|
||||
92 L.3) The JOGL source tree contains code ported from the OpenGL sample
|
||||
93 implementation by Silicon Graphics, Inc. This code is licensed under
|
||||
94 the SGI Free Software License B, Version 2.0
|
||||
95
|
||||
96 License Applicability. Except to the extent portions of this file are
|
||||
97 made subject to an alternative license as permitted in the SGI Free
|
||||
98 Software License B, Version 2.0 (the "License"), the contents of this
|
||||
99 file are subject only to the provisions of the License. You may not use
|
||||
100 this file except in compliance with the License. You may obtain a copy
|
||||
101 of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
|
||||
102 Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
|
||||
103
|
||||
104 http://oss.sgi.com/projects/FreeB
|
||||
105 http://oss.sgi.com/projects/FreeB/SGIFreeSWLicB.2.0.pdf
|
||||
106 Or within this repository: doc/licenses/SGIFreeSWLicB.2.0.pdf
|
||||
107
|
||||
108 Note that, as provided in the License, the Software is distributed on an
|
||||
109 "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
|
||||
110 DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
|
||||
111 CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
|
||||
112 PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
|
||||
113
|
||||
114 L.4) The JOGL source tree contains code from the LWJGL project which is
|
||||
115 similarly covered by the New BSD 3-clause license:
|
||||
116
|
||||
117 Copyright (c) 2002-2004 LWJGL Project
|
||||
118 All rights reserved.
|
||||
119
|
||||
120 Redistribution and use in source and binary forms, with or without
|
||||
121 modification, are permitted provided that the following conditions are
|
||||
122 met:
|
||||
123
|
||||
124 * Redistributions of source code must retain the above copyright
|
||||
125 notice, this list of conditions and the following disclaimer.
|
||||
126
|
||||
127 * Redistributions in binary form must reproduce the above copyright
|
||||
128 notice, this list of conditions and the following disclaimer in the
|
||||
129 documentation and/or other materials provided with the distribution.
|
||||
130
|
||||
131 * Neither the name of 'LWJGL' nor the names of
|
||||
132 its contributors may be used to endorse or promote products derived
|
||||
133 from this software without specific prior written permission.
|
||||
134
|
||||
135 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
136 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
137 TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
138 PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||
139 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
140 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
141 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
142 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
143 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
144 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
145 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
146
|
||||
147 L.5) The JOGL source tree also contains a Java port of Brian Paul's Tile
|
||||
148 Rendering library, used with permission of the author under the
|
||||
149 New BSD 3-clause license instead of the original LGPL:
|
||||
150
|
||||
151 Copyright (c) 1997-2005 Brian Paul. All Rights Reserved.
|
||||
152
|
||||
153 Redistribution and use in source and binary forms, with or without
|
||||
154 modification, are permitted provided that the following conditions are
|
||||
155 met:
|
||||
156
|
||||
157 - Redistribution of source code must retain the above copyright
|
||||
158 notice, this list of conditions and the following disclaimer.
|
||||
159
|
||||
160 - Redistribution in binary form must reproduce the above copyright
|
||||
161 notice, this list of conditions and the following disclaimer in the
|
||||
162 documentation and/or other materials provided with the distribution.
|
||||
163
|
||||
164 Neither the name of Brian Paul or the names of contributors may be
|
||||
165 used to endorse or promote products derived from this software
|
||||
166 without specific prior written permission.
|
||||
167
|
||||
168 This software is provided "AS IS," without a warranty of any
|
||||
169 kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
|
||||
170 WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
|
||||
171 FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
|
||||
172 EXCLUDED. THE COPYRIGHT HOLDERS AND CONTRIBUTORS SHALL NOT BE
|
||||
173 LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
|
||||
174 MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO
|
||||
175 EVENT WILL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
176 LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL,
|
||||
177 CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND
|
||||
178 REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR
|
||||
179 INABILITY TO USE THIS SOFTWARE, EVEN IF THE COPYRIGHT HOLDERS OR
|
||||
180 CONTRIBUTORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
181
|
||||
182 A.1) The JOGL source tree also contains header files from Khronos,
|
||||
183 reflecting OpenKODE, EGL, OpenGL ES1, OpenGL ES2 and OpenGL.
|
||||
184
|
||||
185 http://www.khronos.org/legal/license/
|
||||
186
|
||||
187 Files:
|
||||
188 make/stub_includes/opengl/**
|
||||
189 make/stub_includes/egl/**
|
||||
190 make/stub_includes/khr/**
|
||||
191 make/stub_includes/openmax/**
|
||||
192
|
||||
193 Copyright (c) 2007-2010 The Khronos Group Inc.
|
||||
194
|
||||
195 Permission is hereby granted, free of charge, to any person obtaining a
|
||||
196 copy of this software and/or associated documentation files (the
|
||||
197 "Materials"), to deal in the Materials without restriction, including
|
||||
198 without limitation the rights to use, copy, modify, merge, publish,
|
||||
199 distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
200 permit persons to whom the Materials are furnished to do so, subject to
|
||||
201 the following conditions:
|
||||
202
|
||||
203 The above copyright notice and this permission notice shall be included
|
||||
204 in all copies or substantial portions of the Materials.
|
||||
205
|
||||
206 THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
207 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
208 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
209 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
210 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
211 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
212 MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
213
|
||||
214
|
||||
215 A.2) The JOGL source tree contains code from The Apache Software Foundation
|
||||
216 which is covered by the Apache License Version 2.0
|
||||
217
|
||||
218 Apache Harmony - Open Source Java SE
|
||||
219 =====================================
|
||||
220
|
||||
221 <http://harmony.apache.org/>
|
||||
222
|
||||
223 Author: The Apache Software Foundation (http://www.apache.org/).
|
||||
224
|
||||
225 Copyright 2006, 2010 The Apache Software Foundation.
|
||||
226
|
||||
227 Apache License Version 2.0, January 2004
|
||||
228 http://www.apache.org/licenses/LICENSE-2.0
|
||||
229 Or within this repository: doc/licenses/Apache.LICENSE-2.0
|
||||
230
|
||||
231 Files:
|
||||
232 src/jogamp/graph/geom/plane/AffineTransform.java
|
||||
233 src/jogamp/graph/geom/plane/IllegalPathStateException.java
|
||||
234 src/jogamp/graph/geom/plane/NoninvertibleTransformException.java
|
||||
235 src/jogamp/graph/geom/plane/PathIterator.java
|
||||
236 src/jogamp/graph/geom/plane/Path2D.java
|
||||
237 src/jogamp/graph/math/plane/Crossing.java
|
||||
238 src/org/apache/harmony/misc/HashCode.java
|
||||
239
|
||||
240
|
||||
241 A.3) The JOGL source tree contains code from David Schweinsberg
|
||||
242 which is covered by the Apache License Version 1.1 and Version 2.0
|
||||
243
|
||||
244 Typecast
|
||||
245 ========
|
||||
246
|
||||
247 Typecast is a font development environment for OpenType font technology.
|
||||
248
|
||||
249 <http://typecast.dev.java.net/>
|
||||
250
|
||||
251 Author: David Schweinsberg
|
||||
252
|
||||
253 Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
|
||||
254
|
||||
255 Apache Licenses
|
||||
256 http://www.apache.org/licenses/
|
||||
257
|
||||
258 Apache License Version 1.1
|
||||
259 http://www.apache.org/licenses/LICENSE-1.1
|
||||
260 Or within this repository: doc/licenses/Apache.LICENSE-1.1
|
||||
261 Files:
|
||||
262 src/jogl/classes/jogamp/graph/font/typecast/ot/*
|
||||
263 src/jogl/classes/jogamp/graph/font/typecast/ot/table/*
|
||||
264
|
||||
265 Apache License Version 2.0
|
||||
266 http://www.apache.org/licenses/LICENSE-2.0
|
||||
267 Or within this repository: doc/licenses/Apache.LICENSE-2.0
|
||||
268 src/jogl/classes/jogamp/graph/font/typecast/ot/*
|
||||
269 src/jogl/classes/jogamp/graph/font/typecast/ot/mac/*
|
||||
270 src/jogl/classes/jogamp/graph/font/typecast/ot/table/*
|
||||
271 src/jogl/classes/jogamp/graph/font/typecast/tt/engine/*
|
||||
272
|
||||
273 A.4) The JOGL source tree contains fonts from Ubuntu
|
||||
274 which is covered by the UBUNTU FONT LICENCE Version 1.0
|
||||
275
|
||||
276 Ubuntu Font Family
|
||||
277 ==================
|
||||
278
|
||||
279 The Ubuntu Font Family are libre fonts funded by Canonical Ltd on behalf of the Ubuntu project.
|
||||
280
|
||||
281 <http://font.ubuntu.com/>
|
||||
282
|
||||
283 Copyright 2010 Canonical Ltd.
|
||||
284 Licensed under the Ubuntu Font Licence 1.0
|
||||
285
|
||||
286 Author: Canonical Ltd., Dalton Maag
|
||||
287
|
||||
288 UBUNTU FONT LICENCE
|
||||
289 Version 1.0
|
||||
290 http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt
|
||||
291 Or within this repository: doc/licenses/ubuntu-font-licence-1.0.txt
|
||||
292
|
||||
293 Files:
|
||||
294 src/jogamp/graph/font/fonts/ubuntu/*
|
||||
295
|
||||
296 A.5) The JOGL source tree also contains header files from NVIDIA,
|
||||
297 reflecting Cg.
|
||||
298
|
||||
299 Files:
|
||||
300 make/stub_includes/cg/CG/**
|
||||
301
|
||||
302 Copyright (c) 2002, NVIDIA Corporation
|
||||
303
|
||||
304 NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
|
||||
305 of your agreement to the following terms, and your use, installation,
|
||||
306 modification or redistribution of this NVIDIA software constitutes
|
||||
307 acceptance of these terms. If you do not agree with these terms, please do
|
||||
308 not use, install, modify or redistribute this NVIDIA software.
|
||||
309
|
||||
310 In consideration of your agreement to abide by the following terms, and
|
||||
311 subject to these terms, NVIDIA grants you a personal, non-exclusive license,
|
||||
312 under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
|
||||
313 Software"), to use, reproduce, modify and redistribute the NVIDIA
|
||||
314 Software, with or without modifications, in source and/or binary forms;
|
||||
315 provided that if you redistribute the NVIDIA Software, you must retain the
|
||||
316 copyright notice of NVIDIA, this notice and the following text and
|
||||
317 disclaimers in all such redistributions of the NVIDIA Software. Neither the
|
||||
318 name, trademarks, service marks nor logos of NVIDIA Corporation may be used
|
||||
319 to endorse or promote products derived from the NVIDIA Software without
|
||||
320 specific prior written permission from NVIDIA. Except as expressly stated
|
||||
321 in this notice, no other rights or licenses express or implied, are granted
|
||||
322 by NVIDIA herein, including but not limited to any patent rights that may be
|
||||
323 infringed by your derivative works or by other works in which the NVIDIA
|
||||
324 Software may be incorporated. No hardware is licensed hereunder.
|
||||
325
|
||||
326 THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
|
||||
327 WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
|
||||
328 WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
|
||||
329 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
|
||||
330 EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
|
||||
331
|
||||
332 IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
|
||||
333 EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
|
||||
334 PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
335 PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
|
||||
336 REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
|
||||
337 HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
|
||||
338 NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
|
||||
339 OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
340
|
||||
341 A.6) The JOGL source tree contains code from Hernan J. Gonzalez and Shawn Hartsock
|
||||
342 which is covered by the Apache License Version 2.0
|
||||
343
|
||||
344 PNGJ
|
||||
345 ====
|
||||
346
|
||||
347 PNGJ: Java library for reading and writing PNG images.
|
||||
348
|
||||
349 Version 1.12 (3 Dec 2012)
|
||||
350
|
||||
351 <http://code.google.com/p/pngj/>
|
||||
352
|
||||
353 Author: Hernan J. Gonzalez and Shawn Hartsock
|
||||
354
|
||||
355 Copyright (C) 2004 The Apache Software Foundation. All rights reserved.
|
||||
356
|
||||
357 Apache Licenses
|
||||
358 http://www.apache.org/licenses/
|
||||
359
|
||||
360 Apache License Version 2.0
|
||||
361 http://www.apache.org/licenses/LICENSE-2.0
|
||||
362 Or within this repository: doc/licenses/Apache.LICENSE-2.0
|
||||
363 src/jogl/classes/jogamp/opengl/util/pngj/**
|
||||
364
|
||||
365
|
7
rpms/legal/FOSS_licenses/Gregory_McWhirter_c_2013.txt
Normal file
7
rpms/legal/FOSS_licenses/Gregory_McWhirter_c_2013.txt
Normal file
|
@ -0,0 +1,7 @@
|
|||
Copyright (c) 2013 Gregory McWhirter
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,92 @@
|
|||
Copyright Notice and License Terms for
|
||||
HDF5 (Hierarchical Data Format 5) Software Library and Utilities
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
HDF5 (Hierarchical Data Format 5) Software Library and Utilities
|
||||
Copyright 2006-2014 by The HDF Group.
|
||||
|
||||
NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities
|
||||
Copyright 1998-2006 by the Board of Trustees of the University of Illinois.
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted for any purpose (including commercial purposes)
|
||||
provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions, and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions, and the following disclaimer in the documentation
|
||||
and/or materials provided with the distribution.
|
||||
|
||||
3. In addition, redistributions of modified forms of the source or binary
|
||||
code must carry prominent notices stating that the original code was
|
||||
changed and the date of the change.
|
||||
|
||||
4. All publications or advertising materials mentioning features or use of
|
||||
this software are asked, but not required, to acknowledge that it was
|
||||
developed by The HDF Group and by the National Center for Supercomputing
|
||||
Applications at the University of Illinois at Urbana-Champaign and
|
||||
credit the contributors.
|
||||
|
||||
5. Neither the name of The HDF Group, the name of the University, nor the
|
||||
name of any Contributor may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission from
|
||||
The HDF Group, the University, or the Contributor, respectively.
|
||||
|
||||
DISCLAIMER:
|
||||
THIS SOFTWARE IS PROVIDED BY THE HDF GROUP AND THE CONTRIBUTORS
|
||||
"AS IS" WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. In no
|
||||
event shall The HDF Group or the Contributors be liable for any damages
|
||||
suffered by the users arising out of the use of this software, even if
|
||||
advised of the possibility of such damage.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Contributors: National Center for Supercomputing Applications (NCSA) at
|
||||
the University of Illinois, Fortner Software, Unidata Program Center (netCDF),
|
||||
The Independent JPEG Group (JPEG), Jean-loup Gailly and Mark Adler (gzip),
|
||||
and Digital Equipment Corporation (DEC).
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Portions of HDF5 were developed with support from the Lawrence Berkeley
|
||||
National Laboratory (LBNL) and the United States Department of Energy
|
||||
under Prime Contract No. DE-AC02-05CH11231.
|
||||
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Portions of HDF5 were developed with support from the University of
|
||||
California, Lawrence Livermore National Laboratory (UC LLNL).
|
||||
The following statement applies to those portions of the product and must
|
||||
be retained in any redistribution of source code, binaries, documentation,
|
||||
and/or accompanying materials:
|
||||
|
||||
This work was partially produced at the University of California,
|
||||
Lawrence Livermore National Laboratory (UC LLNL) under contract
|
||||
no. W-7405-ENG-48 (Contract 48) between the U.S. Department of Energy
|
||||
(DOE) and The Regents of the University of California (University)
|
||||
for the operation of UC LLNL.
|
||||
|
||||
DISCLAIMER:
|
||||
This work was prepared as an account of work sponsored by an agency of
|
||||
the United States Government. Neither the United States Government nor
|
||||
the University of California nor any of their employees, makes any
|
||||
warranty, express or implied, or assumes any liability or responsibility
|
||||
for the accuracy, completeness, or usefulness of any information,
|
||||
apparatus, product, or process disclosed, or represents that its use
|
||||
would not infringe privately- owned rights. Reference herein to any
|
||||
specific commercial products, process, or service by trade name,
|
||||
trademark, manufacturer, or otherwise, does not necessarily constitute
|
||||
or imply its endorsement, recommendation, or favoring by the United
|
||||
States Government or the University of California. The views and
|
||||
opinions of authors expressed herein do not necessarily state or reflect
|
||||
those of the United States Government or the University of California,
|
||||
and shall not be used for advertising or product endorsement purposes.
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
BSD License
|
||||
|
||||
jMock Project License
|
||||
|
||||
Copyright (c) 2000-2007, jMock.org
|
||||
Copyright (c) 2000-2006, www.hamcrest.org
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
|
@ -12,7 +11,7 @@ conditions and the following disclaimer. Redistributions in binary form must rep
|
|||
the above copyright notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the distribution.
|
||||
|
||||
Neither the name of jMock nor the names of its contributors may be used to endorse
|
||||
Neither the name of Hamcrest nor the names of its contributors may be used to endorse
|
||||
or promote products derived from this software without specific prior written
|
||||
permission.
|
||||
|
||||
|
@ -26,4 +25,3 @@ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
||||
WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGE.
|
||||
|
8
rpms/legal/FOSS_licenses/ICU_License_c_1995-2012.txt
Normal file
8
rpms/legal/FOSS_licenses/ICU_License_c_1995-2012.txt
Normal file
|
@ -0,0 +1,8 @@
|
|||
ICU License - ICU 1.8.1 and later
|
||||
COPYRIGHT AND PERMISSION NOTICE
|
||||
Copyright (c) 1995-2012 International Business Machines Corporation and others
|
||||
All rights reserved.
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, provided that the above copyright notice(s) and this permission notice appear in all copies of the Software and that both the above copyright notice(s) and this permission notice appear in supporting documentation.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder.
|
||||
|
14
rpms/legal/FOSS_licenses/InfoEther_Inc_c_2002-2005.txt
Normal file
14
rpms/legal/FOSS_licenses/InfoEther_Inc_c_2002-2005.txt
Normal file
|
@ -0,0 +1,14 @@
|
|||
PMD is licensed under a "BSD-style" license:
|
||||
Copyright (c) 2002-2005, InfoEther, Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
* The end-user documentation included with the redistribution, if any, must include the following acknowledgement: "This product includes software developed in part by support from
|
||||
the Defense Advanced Research Project Agency (DARPA)"
|
||||
* Neither the name of InfoEther, LLC nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@ -0,0 +1,16 @@
|
|||
Copyright (c) 2000-2005 INRIA, France Telecom
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@ -1,504 +0,0 @@
|
|||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue