Package not compiling
I am trying to compile a package, it takes long time to compile how can I check the session that is blocking it ?
user650888 wrote:
I am trying to compile a package, it takes long time to compile how can I check the session that is blocking it ?It is probably you that is blocking it.
If procedure does DML, package can not be changed while uncommitted DML exists.
One way to clear the log jam is to terminate all sessions & then start a new session that compiles the code.
Similar Messages
-
I am trying to INSERT into a table that is called LMR_TENANTS. When I try to INSERT via Oracle APEX I get the following error:
>
ORA-04063: package body "LILLEYMAN.CG$LMR_TENANTS" has errors ORA-06508: PL/SQL: could not find program unit being called: "LILLEYMAN.CG$LMR_TENANTS" ORA-06512: at "LILLEYMAN.CG$BIS_LMR_TENANTS", line 1 ORA-04088: error during execution of trigger 'LILLEYMAN.CG$BIS_LMR_TENANTS'
I assume this is because the package it is referring to is not compiled properly.
If I got to the actual package it is referring to, I see it has the following errors:
>
Line Position Text
19 8 PLS-00201: identifier 'LMR_TENANTS' must be declared
19 8 PL/SQL: Declaration ignored
23 16 PLS-00320: the declaration of the type of this expression is incomplete or malformed
22 1 PL/SQL: Declaration ignored
51 16 PLS-00320: the declaration of the type of this expression is incomplete or malformed
50 1 PL/SQL: Declaration ignored
56 32 PLS-00201: identifier 'LMR_TENANTS' must be declared
56 1 PL/SQL: Declaration ignored
Here is a link to a pastebin of the package, since it is rather large. This is something that has been generated by Oracle APEX.
I am unable to understand why I am getting this error at all.
http://pastebin.com/m58df134a
Any ideas as to what the problem may be? What I should try to do to fix it?
Edited by: apexdev88 on 10-Aug-2009 03:33I figured out that apparrently LMR_TENANTS was not owned by the schema.
Now I am getting the following error in relation to the package body:
22 20 PLS-00201: identifier 'CG$ERRORS.MSGGETTEXT' must be declared
22 5 PL/SQL: Statement ignored
27 20 PLS-00201: identifier 'CG$ERRORS.RAISE_FAILURE' must be declared
27 20 PL/SQL: Statement ignored
40 20 PLS-00201: identifier 'CG$ERRORS.MSGGETTEXT' must be declared
40 5 PL/SQL: Statement ignored
45 5 PLS-00201: identifier 'CG$ERRORS.RAISE_FAILURE' must be declared
45 5 PL/SQL: Statement ignored
74 7 PLS-00201: identifier 'CG$ERRORS.PUSH' must be declared
74 7 PL/SQL: Statement ignored
76 7 PLS-00201: identifier 'CG$ERRORS.RAISE_FAILURE' must be declared
76 7 PL/SQL: Statement ignored
90 5 PLS-00201: identifier 'CG$ERRORS.PUSH' must be declared
90 5 PL/SQL: Statement ignored
92 5 PLS-00201: identifier 'CG$ERRORS.RAISE_FAILURE' must be declared
92 5 PL/SQL: Statement ignored
110 24 PLS-00201: identifier 'CG$ERRORS.MSGGETTEXT' must be declared
110 9 PL/SQL: Statement ignored
117 24 PLS-00201: identifier 'CG$ERRORS.MSGGETTEXT' must be declared
117 9 PL/SQL: Statement ignored
22 20 PLS-00201: identifier 'CG$ERRORS.MSGGETTEXT' must be declared
22 5 PL/SQL: Statement ignored
27 20 PLS-00201: identifier 'CG$ERRORS.RAISE_FAILURE' must be declared
27 20 PL/SQL: Statement ignored
40 20 PLS-00201: identifier 'CG$ERRORS.MSGGETTEXT' must be declared
40 5 PL/SQL: Statement ignored
45 5 PLS-00201: identifier 'CG$ERRORS.RAISE_FAILURE' must be declared
45 5 PL/SQL: Statement ignored
74 7 PLS-00201: identifier 'CG$ERRORS.PUSH' must be declared
74 7 PL/SQL: Statement ignored
76 7 PLS-00201: identifier 'CG$ERRORS.RAISE_FAILURE' must be declared
76 7 PL/SQL: Statement ignored
90 5 PLS-00201: identifier 'CG$ERRORS.PUSH' must be declared
90 5 PL/SQL: Statement ignored
92 5 PLS-00201: identifier 'CG$ERRORS.RAISE_FAILURE' must be declared
92 5 PL/SQL: Statement ignored
110 24 PLS-00201: identifier 'CG$ERRORS.MSGGETTEXT' must be declared
110 9 PL/SQL: Statement ignored
117 24 PLS-00201: identifier 'CG$ERRORS.MSGGETTEXT' must be declared
117 9 PL/SQL: Statement ignored -
Arch KDE packages not compiled using -fpic ?
this week-end i gave prelink a shot. then i realized that actually most (if not all) kde apps could not be prelinked.
it looks like they're not compiled with -fpic option, and prelink cannot "link against non-pic libraries".
it's not that i absolutely want to prelink my whole system, it's just that i thought this -fpic option was a good thing so i'm surprised it's not used in arch kde packages.
any plans to enable -fpic for kde in the near future ?brazzmonkey wrote:a few months ago, i had a gentoo box compiled with USE="pic" and didn't encounter any problems. but this use flag is not used by every ebuild.
i didn't know -fpic could slow things... and never noticed it.
I don't notice the slowdown on my Athlon64, but on my old (socket A) Sempron 2500+ and my even older (socket A) Duron 1.2GHz, you can really feel it. Probably because the Athlon64 has enough grunt to cover the slowdown though -
Most packages not compiling properly
Hello Arch users!
For some time now, I have been experiencing a weird issue. When trying to compile packages (mostly AUR packages), I receive contradictory messages from the make command. Let me show you:
checking if gcc accepts -dumpversion option... yes
checking gcc version... 4.7.0
checking if g++ accepts -dumpversion option... yes
checking g++ version... 4.7.0
configure: Excellent, the C, C++ and Fortran compilers are all GCC 4.7.0
configure: GCC 4.0.0 is very buggy and can not build Sage.
configure: Please use a gcc of at least 4.0.1.
configure: error: Exiting due to the use of a version of GCC that is too buggy
ERROR: You do not have all of the prerequisites needed
to build Sage from source. See the errors above.
make[1]: *** [installed/prereq-0.9] Error 1
And I have GCC 4.7 installed. I use multilib. Tell me if you need anything else.Yes, I do have multilib-devel installed.
I noticed that another symptom has arised: Maple 13 keeps complaining that it does not have kernel connection. Related?
Most packages I try to build complain that either gcc, intltool or some dev package is out-of-date. This is really weird... -
Package body greater than 2160 bytes does not compile in Object Browser
Hi there,
I initially created a package in Apex 2.1.0.0.39 using the Object Browser and it compiled OK. The message in the box above the source code says "PL/SQL code successfully compiled (17:51:08)". I then added more code and eventually when I clicked the "Compile" button" the message to say successfull compilation or any error message was not displayed. The box above the source code remains blank. After much trial and error I found that by adding just one more letter to the end of a comment that it would not compile, but by removing the letter then it would compile most of the time. I downloaded the package and found that the size of the download .PLB file was 2160 bytes. Editing the PLB file using a text editor to increase the size and executing it in SQL*PLUS does work.
Is this a fundamental limit on the size of packages that can be compiled using the Object Browser, or is there an Apex configuration parameter that can be modified to allow larger packages? If this is a limit then why isn't an informational message displayed? Or is this in fact an installation issue or an issues with Apex Object Browser?
Further information:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
I installed this version back at the beginning of the year for training purposes and have not made any conifiguration changes that I am aware of, or installed any further upgrades/software since.
All help gratefully received by this "definitely a nubie".
Regards.
John.John,
If you are using, as you said, Application Express version 2.1.0.0.39, be aware that this is a very old (and not a supported) version. If you have trouble with the latest version (currently 3.2), feel free to report them here.
Scott -
SQL*Developer 3EA1 - Not Compiling package Body
Don't know if this is best place to post this, if not tell me where.
In some packages i'm getting: Error: ORA-06550: linha 1, coluna 64:PLS-00172: literal de cadeia de caracteres demasiado extenso; Sorry about the portuguese error message but it's cpopy paste from compiler log.
The strange about this is that the package is compiling with no errors on Version 2.1.1.64 and also on others editors. In both packages i had this was after formatting the code.
So far is the only bug i got, keep on the good work.
António CunhaJust tried from pl/sql node. The package body does not compile from there either. The issue seems to be the size of the package. The package size is 35,000 characters and spaces. I can remove any combination of source lines to get it down to 32,000 characters and spaces and it will compile.
Edited by: dagtech on Oct 21, 2010 9:34 AM -
Revision: 8417
Author: [email protected]
Date: 2009-07-07 04:50:21 -0700 (Tue, 07 Jul 2009)
Log Message:
Remove themes from the package that are not compiling cleanly
bug: https://bugs.adobe.com/jira/browse/SDK-21144
qa: yes
doc:
checkintests: pass
Ticket Links:
http://bugs.adobe.com/jira/browse/SDK-21144
Modified Paths:
flex/sdk/trunk/build.xml -
Package not working like it should! :(
Ok I created a package, It compiles fine but returns no results.
My package contains a function that calculates my instructors bonus depending on how many lessons he has taught in the last 7 days.
I then have a procedure to check that the bonus is not over 400, 400 is the max bonus that can be earned in any 1 week.
I belive the source of the problem is the data being fed to the procedure is wrong or mixed up,. The function calculates the correct bonus, so that is working fine.
I am struggling to pass the results of the function into the procedure for checking!
I have spent the last couple of hours trying to see where I am going wrong but i think my brain has packed in!
here is the package.
CREATE OR REPLACE PACKAGE wage_calc IS
full_wage NUMBER(8);
FUNCTION instructor_bonus
(ins_grade in NUMBER , ins_id in VARCHAR2)
RETURN NUMBER;
PROCEDURE bonus_checker
(ins_grade IN NUMBER,
ins_bonus IN NUMBER,
ins_id_in IN VARCHAR2,
bonus OUT VARCHAR2);
END;
CREATE OR REPLACE PACKAGE BODY wage_calc IS
FUNCTION instructor_bonus
(ins_grade in NUMBER , ins_id in VARCHAR2)
RETURN NUMBER
IS
less_taught NUMBER(8);
ins_bonus NUMBER(8);
BEGIN
SELECT count(fk_ins_id)
INTO less_taught
FROM class_schedule
WHERE fk_ins_id = ins_id
AND date_of BETWEEN SYSDATE-7 AND SYSDATE;
IF ins_grade = '1' THEN ins_bonus := less_taught * 15.00;
ELSIF ins_grade = '2' THEN ins_bonus := less_taught * 25.00;
ELSIF ins_grade = '3' THEN ins_bonus := less_taught * 35.00;
END IF;
IF less_taught >= 5 THEN ins_bonus := ins_bonus * 1.1;
END IF;
RETURN ins_bonus;
END instructor_bonus;
PROCEDURE bonus_checker
(ins_grade IN NUMBER,
ins_bonus IN NUMBER,
ins_id_in IN VARCHAR2,
bonus OUT VARCHAR2)
IS
ins_bonus_res NUMBER(8);
BEGIN
SELECT instructor_bonus(ins_bonus,ins_id)
INTO ins_bonus_res
FROM instructor
WHERE ins_id = ins_id_in;
IF ins_grade = 1 AND ins_bonus_res > 250
THEN ins_bonus_res := 250;
DBMS_OUTPUT.PUT_LINE(ins_id_in|| 'Has reached full bonus for grade '||ins_grade||' it will be capped, bonus = '||ins_bonus_res);
ELSIF ins_grade = 2 AND ins_bonus_res > 350
THEN ins_bonus_res := 350;
DBMS_OUTPUT.PUT_LINE(ins_id_in|| 'Has reached full bonus for grade '||ins_grade||' it will be capped, bonus = '||ins_bonus_res);
ELSIF ins_grade = 3 AND ins_bonus_res > 500
THEN ins_bonus_res := 500;
DBMS_OUTPUT.PUT_LINE(ins_id_in|| 'Has reached full bonus for grade '||ins_grade||' it will be capped, bonus = '||ins_bonus_res);
ELSE ins_bonus_res := ins_bonus_res;
DBMS_OUTPUT.PUT_LINE('Instructor bonus = '||ins_bonus_res);
END IF;
END bonus_checker;
END;
/When i attempt to test it with this data.
VARIABLE ins_bonus_res NUMBER
EXECUTE wage_calc.bonus_checker (1, 1, 1, :ins_bonus_res);I get this....
PL/SQL procedure successfully completed.
SQL> print :ins_bonus_res
INS_BONUS_RES
-------------So I am stuck! If anyone coudl help me it would be appriciated! Thanks.
Message was edited by:
stevenmac
Message was edited by:
stevenmacOk that works now thanks!
Is there any way to improve this paackage? At the moment i have to input the ins_id and the ins_bonus.
VARIABLE ins_bonus_res NUMBER
EXECUTE wage_calc.bonus_checker (1,1, :ins_bonus_res);Is there any way to change it so that I just need to input the ins_id??
Here is my code so far.
SET SERVEROUTPUT ON
CREATE OR REPLACE PACKAGE wage_calc IS
full_wage NUMBER(8);
FUNCTION instructor_bonus
(ins_grade in NUMBER , ins_id in VARCHAR2)
RETURN NUMBER;
PROCEDURE bonus_checker
(ins_id_in IN VARCHAR2,
ins_bonus IN NUMBER,
bonus OUT VARCHAR2);
END;
CREATE OR REPLACE PACKAGE BODY wage_calc IS
FUNCTION instructor_bonus
(ins_grade in NUMBER , ins_id in VARCHAR2)
RETURN NUMBER
IS
less_taught NUMBER(8);
ins_bonus NUMBER(8);
BEGIN
SELECT count(fk_ins_id)
INTO less_taught
FROM class_schedule
WHERE fk_ins_id = ins_id
AND date_of BETWEEN SYSDATE-7 AND SYSDATE;
IF ins_grade = '1' THEN ins_bonus := less_taught * 15.00;
ELSIF ins_grade = '2' THEN ins_bonus := less_taught * 25.00;
ELSIF ins_grade = '3' THEN ins_bonus := less_taught * 35.00;
END IF;
IF less_taught >= 5 THEN ins_bonus := ins_bonus * 1.1;
END IF;
RETURN ins_bonus;
END instructor_bonus;
PROCEDURE bonus_checker
(ins_id_in IN VARCHAR2,
ins_bonus IN NUMBER,
bonus OUT VARCHAR2)
IS
ins_bonus_res NUMBER(8);
ins_grade_t NUMBER(8);
ins_name_t VARCHAR2(12);
BEGIN
SELECT instructor_bonus(ins_bonus, ins_id), ins_grade, ins_name
INTO ins_bonus_res, ins_grade_t, ins_name_t
FROM instructor
WHERE ins_id = ins_id_in;
IF ins_grade_t = 1 AND ins_bonus_res > 250
THEN ins_bonus_res := 250;
DBMS_OUTPUT.PUT_LINE(ins_name_t|| 'Has reached full bonus for grade '||ins_grade_t||' it will be capped, bonus = '||ins_bonus_res);
ELSIF ins_grade_t = 2 AND ins_bonus_res > 350
THEN ins_bonus_res := 350;
DBMS_OUTPUT.PUT_LINE(ins_name_t|| 'Has reached full bonus for grade '||ins_grade_t||' it will be capped, bonus = '||ins_bonus_res);
ELSIF ins_grade_t = 3 AND ins_bonus_res > 500
THEN ins_bonus_res := 500;
DBMS_OUTPUT.PUT_LINE(ins_name_t|| 'Has reached full bonus for grade '||ins_grade_t||' it will be capped, bonus = '||ins_bonus_res);
ELSE ins_bonus_res := ins_bonus_res;
DBMS_OUTPUT.PUT_LINE('Bonus for '||ins_name_t||' = '||ins_bonus_res);
END IF;
bonus := ins_bonus_res;
END bonus_checker;
END;
/Thanks in advance -
Package NOT accessible outside parent/root directory - NoClassDefFoundError
I can't seem to import a package I created, EXCEPT UNDER THE TOP LEVEL
PARENT DIRECTORY. The following chronicles what I attempted. I read, and
tried related postings in this newsgroup, but they have not totally
solved my problems.
/* d:\java\zsamples\zswingpackage1\swing-optgrp-eg1.java
/* Following package stmts. causing run-time error "Exception in thread
"main" java.lang.NoClassDefFoundError: zswingpackage1/Swing
OptGroup1a [(wrong name: java/zsamples/zswingpackage1/SwingOptGroup1a)]".
Solution: as suggested in newsgroup posting, changed package stmt. to
include ONLY the SUBDIRECTORIES UNDERNEATH the top level 'java'
directory (EXCLUDE 'java.' qualifier from package stmt.). Compiled from
the parent directory of the package path, and also ran from that path
i.e.
package zsamples.zswingpackage1; // omits the top level 'java' directory
public class swing_optgrp_eg1 extends JFrame {
Here's how I compiled:
cd java
d:\java>javac zsamples\zswingpackage1\swing_optgrp_eg1.java
Here's how I executed:
Following WORKED. Uses '.' aot backslash qualifier.
D:\java>java zsamples.zswingpackage1.swing_optgrp_eg1
Above package defn. solution allowed a calling program (residing under
the top level 'java' directory) to successfully import the package
(refer \java\test-package2.java)!! But having difficulties in importing
this package when referenced in a calling program RESIDING IN A DEEPER
LEVEL DIRECTORY, such as d:\java\zsamples (refer package-test1.java).
Calling program1 (resides under d:\java\package-test2.java): WORKED
/* This source purposely placed in the 1st level directory to test the
theory/scenario: is it necessary to store the calling program (that
accesses my package) in the top level directory (d:\java)? */
import zsamples.zswingpackage1.swing_optgrp_eg1; // resides under d:\java
Calling program2 (resides under d:\java\zsamples\package-test1.java): DID NOT WORK
/* Following import causing "package zsamples.zswingpackage1 does not exist"
COMPILE ERROR. But worked in package-test2.java.
Solution (wasn't necessary in package-test2.java):
- specified 'java' in classpath i.e.
d:\java\zsamples>javac package-test1.java -classpath .;d:\java
But subsequently, when RUNNING using D:\java\zsamples>java Package_Test1,
caused RUN-TIME error "Exception in thread "main" java.lang.NoClassDefFoundError:
zsamples/zswingpackag e1/swing_optgrp_eg1".
import zsamples.zswingpackage1.swing_optgrp_eg1; // resides under d:\java
/* Unsuccessful remedies:
1) use -classpath with compiler i.e.
d:\java\zsamples>javac package-test1.java -classpath .;d:\java\zsamples\zswingpackage1
2) removed top level 'zsamples' qualifier in package name, compiled
with, and without -classpath parm. i.e.
import zswingpackage1.swing_optgrp_eg1; // resides under d:\java\zsamples
This caused "cannot access zswingpackage1.swing_optgrp_eg1 bad class
file: .\zswingpackage1\swing_optgrp_eg1.class class file contains wrong
class: zsamples.zswingpackage1.swing_optgrp_eg1 Please remove or make
sure it appears in the correct subdirectory of the classpath."
3) added top level 'java.' qualifier in package name, compiled with, and
without -classpath parm. i.e.
import java.zsamples.zswingpackage1.swing_optgrp_eg1;
This caused "package java.zsamples.zswingpackage1 does not exist".
4) when running, specified '.;d:\java\zsamples\zswingpackage1', or
'.;d:\java\zsamples' in -classpath i.e.
D:\java\zsamples>java Package_Test1 -classpath .;d:\java\zsamples\zswingpackage1
D:\java\zsamples>java Package_Test1 -classpath .;d:\java\zsamples
// Following import caused same errors as above import stmt.
//import zsamples.zswingpackage1.*;
class Package_Test1 {
My PC configuration:
java version "1.4.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_01-b03)
Java HotSpot(TM) Client VM (build 1.4.0_01-b03, mixed mode)
JRun 4 (Build 47304)
WinNT 4.0 SP5
IE 5.50
CLASSPATH=.;D:\jakarta-tomcat-3.3.1\lib\common\servlet.jar;
C:\JRun4\servers\default\default-ear\default-war\WEB-INF\classes
JAVA_HOME=C:\j2sdk1.4.0_01
Path=C:\j2sdk1.4.0_01\bin;C:\WINNT\system32;C:\WINNT;
C:\Program Files\Network Associates\PGPNT;C:\Program Files\MTS;d:\MSSQL7\BINNIt's hard for me to follow everything you posted. Perhaps this link will help.
http://java.sun.com/docs/books/tutorial/java/interpack/packages.html
Some things to keep in mind. Packages are not directories - they just use the path structure of directories to manage namespaces. No matter where a class is, if your Classpath is d:\java, then the root of any class in a package must be in a directory structure that exists inside d:\java. Also, compilers and the JVM utilize the fully qualified name of a class, meaning the package name plus the class name. -
Jar not running is sarge and apache-ant shows error of package not found
Hello,
First of all I am not a java programmer. I work in C/C++/C#.
Currently I am dealing a game written in java (1.5) using netbeans 5.5.0 under windows xp. My target is to compile in my development machine and run in the clients machine. everything works fine in windows xp. I open the netbeans ide, load the necessary class libraries, build the project and run it. it runs without any problem.
The problem begins when I run the same project from linux (fedora). it doest not run. It shows some error.
<error platform="fedora 7">
Exception in thread "AWT-EventQueue-0" java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
at java.awt.Window.<init>(Window.java:406)
at java.awt.Frame.<init>(Frame.java:402)
at java.awt.Frame.<init>(Frame.java:367)
at javax.swing.JFrame.<init>(JFrame.java:163)
at netbeansapplication.nbApplication.<init>(nbApplication.java:52)
at netbeansapplication.nbApplication$14.run(nbApplication.java:453)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
</error>
Some of these error were resolved when I set the DISPLAY variable (export DISPLAY="127.0.0.1:0") but the other errors were still there.
But when I open this same project in netbeans and resolve the dependencies with class libraries it works ok after compiling.
I can run it from console (java -jar ...)
And again the same source tree shows the following error when I am in windows !!! (by java -jar ... command)
<error platform="WinXPSP2">
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:468)
at java.lang.Integer.parseInt(Integer.java:497)
at cherrygame.global.readConfigForStickProtection(global.java:2060)
at cherrygame.nbCherryGame.<init>(nbCherryGame.java:243)
at netbeansapplication.nbApplication.<init>(nbApplication.java:46)
at netbeansapplication.nbApplication$14.run(nbApplication.java:453)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
</error>
I see that netbeans uses ant to compile project in the background.
then I tried using ant to compile.
doing only `#ant compile` where build.xml resides does the compilation.
after that I try to run it (by java -jar ...). again the above error shows up.
What would I do?
If I compile it with netbeans in machine A then it runs well in A but not in machine B.
If I compile it with ANT in machine A then it doesn't run in A, no chance for machine B.
the contents of my build xml is here
<code file="build.xml">
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
<project name="NetBeansApplication" default="default" basedir=".">
<description>Builds, tests, and runs the project NetBeansApplication.</description>
<import file="nbproject/build-impl.xml"/>
<!--
There exist several targets which are by default empty and which can be
used for execution of your tasks. These targets are usually executed
before and after some main targets. They are:
-pre-init: called before initialization of project properties
-post-init: called after initialization of project properties
-pre-compile: called before javac compilation
-post-compile: called after javac compilation
-pre-compile-single: called before javac compilation of single file
-post-compile-single: called after javac compilation of single file
-pre-compile-test: called before javac compilation of JUnit tests
-post-compile-test: called after javac compilation of JUnit tests
-pre-compile-test-single: called before javac compilation of single JUnit test
-post-compile-test-single: called after javac compilation of single JUunit test
-pre-jar: called before JAR building
-post-jar: called after JAR building
-post-clean: called after cleaning build products
(Targets beginning with '-' are not intended to be called on their own.)
Example of inserting an obfuscator after compilation could look like this:
<target name="-post-compile">
<obfuscate>
<fileset dir="${build.classes.dir}"/>
</obfuscate>
</target>
For list of available properties check the imported
nbproject/build-impl.xml file.
Another way to customize the build is by overriding existing main targets.
The targets of interest are:
-init-macrodef-javac: defines macro for javac compilation
-init-macrodef-junit: defines macro for junit execution
-init-macrodef-debug: defines macro for class debugging
-init-macrodef-java: defines macro for class execution
-do-jar-with-manifest: JAR building (if you are using a manifest)
-do-jar-without-manifest: JAR building (if you are not using a manifest)
run: execution of project
-javadoc-build: Javadoc generation
test-report: JUnit report generation
An example of overriding the target for project execution could look like this:
<target name="run" depends="NetBeansApplication-impl.jar">
<exec dir="bin" executable="launcher.exe">
<arg file="${dist.jar}"/>
</exec>
</target>
Notice that the overridden target depends on the jar target and not only on
the compile target as the regular run target does. Again, for a list of available
properties which you can use, check the target you are overriding in the
nbproject/build-impl.xml file.
-->
<target name="-post-jar">
<jar update="true" destfile="${dist.jar}">
<zipfileset src="${libs.swing-layout.classpath}"/>
<zipfileset src="${libs.addMoney.classpath}"/>
<zipfileset src="${libs.NormalWindow.classpath}"/>
</jar>
</target>
</project>
]]>
</code>
my directory contents is here. note. I have 2 packages "cgwindow2" and "NormalWindow" for class libraries and my main application is "CherryGame". The game is "game.jar" in the CherryGame folder.
<listing foldername="CherryGame">
D:\src\java\CherryGame\build.xml
D:\src\java\CherryGame\BW.txt
D:\src\java\CherryGame\config.txt
D:\src\java\CherryGame\config.txt.lin
D:\src\java\CherryGame\flopsfile.txt
D:\src\java\CherryGame\game.jar
D:\src\java\CherryGame\LWMoneyfile.txt
D:\src\java\CherryGame\mfile.txt
D:\src\java\CherryGame\mfile2.txt
D:\src\java\CherryGame\mfile3.txt
D:\src\java\CherryGame\TotalRollsTillBigWin.txt
D:\src\java\CherryGame\UserFile.txt
D:\src\java\CherryGame\build\classes\cherrygame\addMoneyFrame.class
D:\src\java\CherryGame\build\classes\cherrygame\addMoneyPanel.class
D:\src\java\CherryGame\build\classes\cherrygame\cardsPanel.class
D:\src\java\CherryGame\build\classes\cherrygame\cardsWindow$1.class
D:\src\java\CherryGame\build\classes\cherrygame\cardsWindow.class
D:\src\java\CherryGame\build\classes\cherrygame\cherryGameBackPanel.class
D:\src\java\CherryGame\build\classes\cherrygame\cherryWindow.class
D:\src\java\CherryGame\build\classes\cherrygame\customBorderCherryGame.class
D:\src\java\CherryGame\build\classes\cherrygame\FixedGlassPane.class
D:\src\java\CherryGame\build\classes\cherrygame\global.class
D:\src\java\CherryGame\build\classes\cherrygame\helpPanelOne.class
D:\src\java\CherryGame\build\classes\cherrygame\imagesPanel.class
D:\src\java\CherryGame\build\classes\cherrygame\messageWindow.class
D:\src\java\CherryGame\build\classes\cherrygame\messageWindow2.class
D:\src\java\CherryGame\build\classes\cherrygame\messageWindow3.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$1.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$10.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$11.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$12.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$13.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$14.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$15.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$16.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$17.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$18.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$19.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$2.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$20.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$21.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$22.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$23.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$24.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$25.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$26.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$27.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$28$1.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$28$2.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$28.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$29.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$3.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$30.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$31.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$32.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$33.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$34.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$35.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$36.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$37.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$38.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$39.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$4.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$40.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$41.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$42.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$43.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$44.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$45.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$46.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$5.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$6.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$7.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$8.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$9.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame$MyTask.class
D:\src\java\CherryGame\build\classes\cherrygame\nbCherryGame.class
D:\src\java\CherryGame\build\classes\cherrygame\panelMessage.class
D:\src\java\CherryGame\build\classes\cherrygame\panelMessage2.class
D:\src\java\CherryGame\build\classes\cherrygame\panelMessage3.class
D:\src\java\CherryGame\build\classes\lpt\LPT.class
D:\src\java\CherryGame\build\classes\lpt\events\Events.class
D:\src\java\CherryGame\build\classes\lpt\events\LPTEvent.class
D:\src\java\CherryGame\build\classes\lpt\events\LPTEventListener.class
D:\src\java\CherryGame\build\classes\lpt\ieee1284\PPParallelPort.class
D:\src\java\CherryGame\build\classes\netbeansapplication\customBorder.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication$1.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication$10.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication$11.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication$12.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication$13.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication$14.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication$2.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication$3.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication$4.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication$5.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication$6.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication$7.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication$8.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication$9.class
D:\src\java\CherryGame\build\classes\netbeansapplication\nbApplication.class
D:\src\java\CherryGame\dist\NetBeansApplication.jar
D:\src\java\CherryGame\dist\javadoc\package-list
D:\src\java\CherryGame\dist\javadoc\stylesheet.css
D:\src\java\CherryGame\dist\javadoc\resources\inherit.gif
D:\src\java\CherryGame\nbproject\build-impl.xml
D:\src\java\CherryGame\nbproject\genfiles.properties
D:\src\java\CherryGame\nbproject\project.properties
D:\src\java\CherryGame\nbproject\project.xml
D:\src\java\CherryGame\nbproject\private\private.properties
D:\src\java\CherryGame\nbproject\private\private.xml
D:\src\java\CherryGame\src\customBorder.java
D:\src\java\CherryGame\src\nbApplication.form
D:\src\java\CherryGame\src\nbApplication.java
D:\src\java\CherryGame\src\cherrygame\addMoneyFrame.form
D:\src\java\CherryGame\src\cherrygame\addMoneyFrame.java
D:\src\java\CherryGame\src\cherrygame\addMoneyPanel.form
D:\src\java\CherryGame\src\cherrygame\addMoneyPanel.java
D:\src\java\CherryGame\src\cherrygame\cardsPanel.java
D:\src\java\CherryGame\src\cherrygame\cardsWindow.form
D:\src\java\CherryGame\src\cherrygame\cardsWindow.java
D:\src\java\CherryGame\src\cherrygame\cherryGameBackPanel.form
D:\src\java\CherryGame\src\cherrygame\cherryGameBackPanel.java
D:\src\java\CherryGame\src\cherrygame\cherryWindow.java
D:\src\java\CherryGame\src\cherrygame\customBorderCherryGame.java
D:\src\java\CherryGame\src\cherrygame\global.java
D:\src\java\CherryGame\src\cherrygame\helpPanelOne.form
D:\src\java\CherryGame\src\cherrygame\helpPanelOne.java
D:\src\java\CherryGame\src\cherrygame\imagesPanel.java
D:\src\java\CherryGame\src\cherrygame\messageWindow.form
D:\src\java\CherryGame\src\cherrygame\messageWindow.java
D:\src\java\CherryGame\src\cherrygame\messageWindow2.form
D:\src\java\CherryGame\src\cherrygame\messageWindow2.java
D:\src\java\CherryGame\src\cherrygame\messageWindow3.form
D:\src\java\CherryGame\src\cherrygame\messageWindow3.java
D:\src\java\CherryGame\src\cherrygame\nbCherryGame.form
D:\src\java\CherryGame\src\cherrygame\nbCherryGame.java
D:\src\java\CherryGame\src\cherrygame\panelMessage.form
D:\src\java\CherryGame\src\cherrygame\panelMessage.java
D:\src\java\CherryGame\src\cherrygame\panelMessage2.form
D:\src\java\CherryGame\src\cherrygame\panelMessage2.java
D:\src\java\CherryGame\src\cherrygame\panelMessage3.form
D:\src\java\CherryGame\src\cherrygame\panelMessage3.java
D:\src\java\CherryGame\src\lpt\LPT.java
D:\src\java\CherryGame\src\lpt\events\Events.java
D:\src\java\CherryGame\src\lpt\events\LPTEvent.java
D:\src\java\CherryGame\src\lpt\events\LPTEventListener.java
D:\src\java\CherryGame\src\lpt\ieee1284\PPParallelPort.java
</listing>
<listing foldername="NormalWindow">
D:\src\java\NormalWindow\build.xml
D:\src\java\NormalWindow\manifest.mf
D:\src\java\NormalWindow\build\classes\normalwindow\global.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$1.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$10.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$11.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$12.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$13.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$14.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$15.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$16.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$17.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$2.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$3.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$4.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$5.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$6.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$7.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$8.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow$9.class
D:\src\java\NormalWindow\build\classes\normalwindow\NormalWindow.class
D:\src\java\NormalWindow\build\classes\normalwindow\PasswordDialog$1.class
D:\src\java\NormalWindow\build\classes\normalwindow\PasswordDialog$2.class
D:\src\java\NormalWindow\build\classes\normalwindow\PasswordDialog$3.class
D:\src\java\NormalWindow\build\classes\normalwindow\PasswordDialog$4.class
D:\src\java\NormalWindow\build\classes\normalwindow\PasswordDialog$5.class
D:\src\java\NormalWindow\build\classes\normalwindow\PasswordDialog.class
D:\src\java\NormalWindow\dist\NormalWindow.jar
D:\src\java\NormalWindow\dist\README.TXT
D:\src\java\NormalWindow\dist\_normalwindow.jar
D:\src\java\NormalWindow\dist\lib\swing-layout-1.0.jar
D:\src\java\NormalWindow\nbproject\build-impl.xml
D:\src\java\NormalWindow\nbproject\genfiles.properties
D:\src\java\NormalWindow\nbproject\project.properties
D:\src\java\NormalWindow\nbproject\project.xml
D:\src\java\NormalWindow\nbproject\private\private.properties
D:\src\java\NormalWindow\nbproject\private\private.xml
D:\src\java\NormalWindow\src\normalwindow\global.java
D:\src\java\NormalWindow\src\normalwindow\NormalWindow.form
D:\src\java\NormalWindow\src\normalwindow\NormalWindow.java
D:\src\java\NormalWindow\src\normalwindow\PasswordDialog.form
D:\src\java\NormalWindow\src\normalwindow\PasswordDialog.java
</listing>
<listing foldername="cgwindow2">
D:\src\java\cgwindow2\build.xml
D:\src\java\cgwindow2\manifest.mf
D:\src\java\cgwindow2\mfile.txt
D:\src\java\cgwindow2\UserFile.txt
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyPanel.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow$1.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow$10.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow$11.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow$12.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow$13.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow$14.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow$2.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow$3.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow$4.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow$5.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow$6.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow$7.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow$8.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow$9.class
D:\src\java\cgwindow2\build\classes\addmoney\addMoneyWindow.class
D:\src\java\cgwindow2\build\classes\addmoney\customBorderForAddMoneyWindow.class
D:\src\java\cgwindow2\build\classes\addmoney\global.class
D:\src\java\cgwindow2\dist\cgwindow2.jar
D:\src\java\cgwindow2\dist\README.TXT
D:\src\java\cgwindow2\dist\lib\swing-layout-1.0.jar
D:\src\java\cgwindow2\nbproject\build-impl.xml
D:\src\java\cgwindow2\nbproject\genfiles.properties
D:\src\java\cgwindow2\nbproject\jax-ws.xml
D:\src\java\cgwindow2\nbproject\project.properties
D:\src\java\cgwindow2\nbproject\project.xml
D:\src\java\cgwindow2\nbproject\private\private.properties
D:\src\java\cgwindow2\nbproject\private\private.xml
D:\src\java\cgwindow2\src\addmoney\addMoneyPanel.form
D:\src\java\cgwindow2\src\addmoney\addMoneyPanel.java
D:\src\java\cgwindow2\src\addmoney\addMoneyWindow.form
D:\src\java\cgwindow2\src\addmoney\addMoneyWindow.java
D:\src\java\cgwindow2\src\addmoney\customBorderForAddMoneyWindow.java
D:\src\java\cgwindow2\src\addmoney\global.java
</listing>
About my thread subject, my clients machine is a debian sarge 3.0 and when I compiled it there with ANT It says, "normalwindow" package not found. other 2 errors were due to "normalwindow".
Edited by: mokaddim on Sep 12, 2007 2:08 PMJulio.Faerman wrote:
Hello,
I am trying to run my annotation processor using ant.
I already built the processor, the javax.annotation.processor.Processor file is in the correct place with the correct content.
The jar with the processor is in the classpath (i can see it in ant -v), but it does not process my classes. in fact, i get the warning:
warning: Annotation processing without compilation requested but no processors were found.Do i have to specify -processor or -processorpath or can i just leave it to the default classpath scanning?When -processor is not given, a service loader is used to find the annotation processors (if any). In addition to the class files of the process, to allow your processor to be found as a service, make sure you've also provided the needed META-INF data in the jar file. The general service file format is described in
http://java.sun.com/javase/6/docs/api/java/util/ServiceLoader.html
That said, I'd recommend setting an explicit processor path separate from your general classpath. -
Hello, I�m trying to run a webapplication but I get an Error 500-message in the browser(IE 5): Package not found in import. It is an webapplication with JSPs and an controlling servlet. Does anyone know how to fix that problem?
Using: Windows 2000, Tomcat 3.2.1 as NT-service, JavaTM 2 SDK, Enterprise Edition, JavaTM 2 SDK, Standard Edition
Tomcat/webapps/projektverwaltung.war
Error: 500
Location: /projektverwaltung/projektverwaltung/JSP/Menue.jsp
Internal Servlet Error:
org.apache.jasper.JasperException: Unable to compile class for JSPC:\Tomcat\work\localhost_8080%2Fprojektverwaltung\_0002fprojektverwaltung_0002fJSP_0002fMenue_0002ejspMenue_jsp_0.java:15: Package de.zebulon.projektverwaltung.projekttool not found in import.
import de.zebulon.projektverwaltung.projekttool.*;
^
1 error
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:254)
at org.apache.jasper.servlet.JspServlet.doLoadJSP(JspServlet.java:462)
at org.apache.jasper.servlet.JasperLoader12.loadJSP(JasperLoader12.java:146)
at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:433)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:152)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:164)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:318)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:391)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:484)
CLASSPATH: .;C:\;C:\jesdkee1.3\lib\j2ee.jar;C:\jdk1.3.0_01\lib\tools.jar;C:\Tomcat\lib\servlet.jar;C:\de\zebulon\projektverwaltung\projekttool;
J2EE_CLASSPATH:
C:\mysql\JDBC_MySQL_mm\mm.mysql-2.0.4-bin.jar;C:\mysql\JDBC_MySQL_Resin\caucho-jdbc-mysql-0.2.2.jar;C:\mysql\JDBC_MySQL_twz\twz1\jdbc\mysql\htdocs\twz1jdbcForMysql.jar;
J2EE_HOME:
C:\j2sdkee1.3;
JAVA_HOME:
C:\jdk1.3.0_01;
TOMCAT_HOME:
C:\tomcat;
Path:
C:\PROGRA~1\Borland\Delphi5\Projects\Bpl;C:\PROGRA~1\Borland\Delphi5\Bin;C:\PROGRA~1\BORLAND\CBUILD~1\BIN;C:\PERL\BIN;"%PATH%";%SYSTEMROOT%;%SYSTEMROOT%\system32;%SYSTEMROOT%\system32\WBEM;C:\jdk1.3.0_01\bin;C:\j2sdkee1.3\bin;C:\j2sdkee1.3\lib\j2ee.jar;C:\mysql\bin;
Server.xml entry:
<Context path="/projektverwaltung"
docBase="webapps/projektverwaltung"
defaultSessionTimeOut="30"
debug="9">
</Context>
Web.xml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<display-name>Projektverwaltung Zebulon</display-name>
<description>Interne Projektverwaltung Fa. Zebulon</description>
<welcome-file-list>
<welcome-file>menue.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>ProjektServlet</servlet-name>
<display-name>ProjektServlet</display-name>
<description>Servlet das die Applikation kontrolliert</description>
<servlet-class>de.zebulon.projektverwaltung.projekttool.ProjektServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<url-pattern>/Projekttool</url-pattern>
<servlet-name>ProjektServlet</servlet-name>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
</web-app>Hello, I try copy C:\de\zebulon\projektverwaltung\projekttool\*.class in
location that contain file _002fprojektverwaltung_0002fJSP_0002fMenue_0002ejspMenue_sp_0.java. -
Import javax.servlet.* package not found
hai i am pradeep i am using java 1.5 and tomcat 5.5 version when i just include import javax.servlet.* in simple hellow word program and compile it shows error
import javax.servlet.* package not found
i set my class path to as
E:\set path="D:\Program Files\Java\jdk1.5.0_04\bin" and compile this it pops a message please help me i am using winxp os
by
pradeep sreedharanyou are not setting the classpath but the path, and they should both be written in capitals, PATH and CLASSPATH.
The classpath contains directories and jar files that contain the classes that need to be "visible" to your applications. The servlet classes are part of the file servlet-api.jar, which you can find in your tomcat directory, more specifically the common/lib sub directory.
I would expect your classpath to look something like this:
.;d:\program files\tomcat\common\lib\servlet-api.jar
You may also want to add the directory in which you are storing your projects, I don't know how you are building your applications.
You seem to be very new to this, so I would suggest you give this a read:
http://java.sun.com/docs/books/tutorial/getStarted/cupojava/index.html -
I migrated from JDK1.3 to JDK1.4. Paths are set to bin and even classpath is set to c:\jdk1.4\lib;. The program is compiling and running fine.
The problem I come across is that when I use Packages in my program the program would not compile showing that package so and so does not exist and cannot resolve symbol etc. Even the programs that I compiled when I had ver1.3 doesn't seem to compile in JDK1.4. My platform is win2000 Professional. Please help me regarding this.Thank you for your advice. It went wrong in setting the class path. I set it to c:\j2se1.4.0\lib; This created the problem. I removed this line in the Environment settings and package is working fine now. Thank you for your suggestion anyway.
Yours friendly,
Saravana Kumar. J -
The ANE library is compiled to MacOS, but does not compile on Windows.
ANE lbrary FPHockeyApp http://flashpress.ru/blog/contents/ane/hockeyapp/FPHockeyApp-6.1.ane
Application:
package
import flash.display.Sprite;
import ru.flashpress.hockeyapp.FPHockeyApp;
import ru.flashpress.hockeyapp.ns.haIOS;
public class TestHockeyApp extends Sprite
public function TestHockeyApp()
super();
use namespace haIOS;
var APP_ID:String = 'you app id';
FPHockeyApp.manager.configureWithIdentifier(APP_ID);
FPHockeyApp.manager.startManager();
FPHockeyApp.manager.authenticator.authenticateInstallation();
Compiled in MacOS, but does not compile on Windows:
Why so?Windows 64-bit.
On a single MacBookPro installed OSX and Windows(not virtual). -
Nfs4-utils-1.1.2 does not compile against heimdal-1.2.1
Hi,
ive changed (for testing purpose only of course) the gssapi_krb5.h from heimdal against: /opt/mit-krb5/include/gssapi/gssapi_krb5.h. nfs4-utils compile fine after this.
so one solution would be to change heimdal to provide kerberos and do the same with mit-krb5 from aur which would offer the user a choice and allow the usage of nfs4.
the heimdal mailing list seems to be dead anyway.
but for this solution to work some packages need to change their deps, for example on my system:
pacman -R heimdal
checking dependencies...
error: failed to prepare transaction (could not satisfy dependencies)
:: evolution-data-server: requires heimdal>=1.2
:: gnome-vfs: requires heimdal>=1.2
:: gtk2: requires heimdal>=1.2
:: imagemagick: requires heimdal>=1.2.1
:: libcups: requires heimdal>=1.2
:: neon: requires heimdal>=1.2.1
:: openssh: requires heimdal>=1.2-1
:: pam-krb5: requires heimdal>=1.2
:: smbclient: requires heimdal>=1.2-1
any other ideas?Hi metalfan,
i'm using a nfs4-utils ver. 1.1.4 build and modified by me and i'd like to share my solution to this problem in the hope that you can find it useful. About the impossibility to build nfs-utils (and the needed package 'librpcsecgss') against heimdal it's because the implemetation of gssapi in libgssglue conflicts with heimdal.
In gentoo Bryan Jacobs has produced a patch to nfs-utils/librpcsecgss that allow these packages to compile against heimdal without the gssapi intermediate library 'libgssglue' (in this way all that is needed for gssapi is provided by heimdal).
The nfs4-utils and librpcsecgss packages in AUR are orphans and I don't know how to load my librpcsecgss.tar.gz and nfs4-utils.tar.gz in order to share them so, following in this post, I attached all the code and any reference I have about this problem but if you want I can send to you my tar.gz arch packages.
Sorry for the long post...
bye
All you have to do is first build and install the package 'librpcsecgss' with dep on 'heimdal' instead of 'libgssglue' applying the patch that you can find in http://bugs.gentoo.org/show_bug.cgi?id=231395
patch: librpcsecgss-0.18-heimdal.patch
diff -NaurwB librpcsecgss-0.18.orig/configure.in librpcsecgss-0.18/configure.in
--- librpcsecgss-0.18.orig/configure.in 2008-04-09 00:05:40.000000000 +0200
+++ librpcsecgss-0.18/configure.in 2008-06-12 19:05:51.000000000 +0200
@@ -12,10 +12,15 @@
AC_PROG_RANLIB
# Checks for libraries.
-PKG_CHECK_MODULES([GSSGLUE], [libgssglue >= 0.1], [],
+PKG_CHECK_MODULES([GSSGLUE], [libgssglue >= 0.1],
+ [echo GSSGLUE found; GSSAPI_IMPLEMENTATION=libgssglue],
+ [PKG_CHECK_MODULES([GSSGLUE], [heimdal-gssapi],
+ [echo HEIMDAL found; GSSAPI_IMPLEMENTATION=heimdal-gssapi],
[AC_MSG_ERROR([Unable to locate information required to use libgssglue.
If you have pkgconfig installed, you might try setting environment
- variable PKG_CONFIG_PATH to /usr/local/lib/pkgconfig])])
+ variable PKG_CONFIG_PATH to /usr/local/lib/pkgconfig])])])
+
+AC_SUBST([GSSAPI_IMPLEMENTATION])
# Checks for header files.
AC_HEADER_STDC
diff -NaurwB librpcsecgss-0.18.orig/librpcsecgss.pc.in librpcsecgss-0.18/librpcsecgss.pc.in
--- librpcsecgss-0.18.orig/librpcsecgss.pc.in 2007-09-06 17:39:04.000000000 +0200
+++ librpcsecgss-0.18/librpcsecgss.pc.in 2008-06-12 19:06:40.000000000 +0200
@@ -5,7 +5,7 @@
Name: librpcsecgss
Description: Library that implements rpcsec_gss interface.
-Requires: libgssglue
+Requires: @GSSAPI_IMPLEMENTATION@
Version: @PACKAGE_VERSION@
Libs: -L@libdir@ -lrpcsecgss
Cflags: -I@includedir@/rpcsecgss
The PKGBUILD I used is:
# $Id: PKGBUILD,v 1.43 2007/09/23 07:37:00 tom Exp $
# Maintainer: Andrew Krawchyk <[email protected]>
# Contributor: Marco Lima <[email protected]>
pkgname=librpcsecgss
pkgver=0.18
pkgrel=2
pkgdesc="Library for RPCSECGSS support"
arch=('i686' 'x86_64')
url="http://www.citi.umich.edu/projects/nfsv4/linux/"
license=('GPL')
depends=('glibc' 'tcp_wrappers' 'libevent>=1.3d' 'heimdal>=1.2-1')
source=("http://www.citi.umich.edu/projects/nfsv4/linux/$pkgname/$pkgname-$pkgver.tar.gz"
"librpcsecgss-0.18-heimdal.patch")
md5sums=('f2c4a69c5a32f62b762a569b8d962156'
'0cfe088551d5776f5bc08c1741a34346')
build() {
cd "$srcdir/$pkgname-$pkgver"
# Patch from gentoo for heimdal compatibility Bug #231395
# http://bugs.gentoo.org/show_bug.cgi?id=231395
patch -Np1 -i ../librpcsecgss-0.18-heimdal.patch || return 1
rm -f config.guess config.sub ltmain.sh
autoreconf -i
GSSAPI_CFLAGS='-I/usr/include/gssapi' \
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info
make || return 1
make DESTDIR="$pkgdir/" install || return 1
Then you need to build the package 'nfs4-utils' with dep only on 'librpcsecgss' (remove 'libgssglue'... as said the gssapi is provided by heimdal); to build the package you need the patches that you can find in http://bugs.gentoo.org/show_bug.cgi?id=231396
patch: nfs-utils-1.1.2-kerberos-ac.patch
diff -NaurwB nfs-utils-1.1.2.orig/aclocal/kerberos5.m4 nfs-utils-1.1.2/aclocal/kerberos5.m4
--- nfs-utils-1.1.2.orig/aclocal/kerberos5.m4 2008-03-14 16:46:29.000000000 +0100
+++ nfs-utils-1.1.2/aclocal/kerberos5.m4 2008-06-12 17:13:51.000000000 +0200
@@ -1,112 +1,48 @@
-dnl Checks for Kerberos
-dnl NOTE: while we intend to do generic gss-api, currently we
-dnl have a requirement to get an initial Kerberos machine
-dnl credential. Thus, the requirement for Kerberos.
-dnl The Kerberos gssapi library will be dynamically loaded?
AC_DEFUN([AC_KERBEROS_V5],[
+ K5CONFIG="krb5-config"
AC_MSG_CHECKING(for Kerberos v5)
- AC_ARG_WITH(krb5,
- [AC_HELP_STRING([--with-krb5=DIR], [use Kerberos v5 installation in DIR])],
+ AC_ARG_WITH(krb5-config,
+ [AC_HELP_STRING([--with-krb5-config=PATH], [Full Path to krb5-config.])],
[ case "$withval" in
yes|no)
- krb5_with=""
+ K5CONFIG="krb5-config"
- krb5_with="$withval"
+ K5CONFIG="$withval"
esac ]
- for dir in $krb5_with /usr /usr/kerberos /usr/local /usr/local/krb5 \
- /usr/krb5 /usr/heimdal /usr/local/heimdal /usr/athena ; do
- dnl This ugly hack brought on by the split installation of
- dnl MIT Kerberos on Fedora Core 1
- K5CONFIG=""
- if test -f $dir/bin/krb5-config; then
- K5CONFIG=$dir/bin/krb5-config
- elif test -f "/usr/kerberos/bin/krb5-config"; then
- K5CONFIG="/usr/kerberos/bin/krb5-config"
- elif test -f "/usr/lib/mit/bin/krb5-config"; then
- K5CONFIG="/usr/lib/mit/bin/krb5-config"
- fi
if test "$K5CONFIG" != ""; then
KRBCFLAGS=`$K5CONFIG --cflags`
KRBLIBS=`$K5CONFIG --libs gssapi`
- K5VERS=`$K5CONFIG --version | head -n 1 | awk '{split($(4),v,"."); if (v@<:@"3"@:>@ == "") v@<:@"3"@:>@ = "0"; print v@<:@"1"@:>@v@<:@"2"@:>@v@<:@"3"@:>@ }'`
- AC_DEFINE_UNQUOTED(KRB5_VERSION, $K5VERS, [Define this as the Kerberos version number])
- if test -f $dir/include/gssapi/gssapi_krb5.h -a \
- \( -f $dir/lib/libgssapi_krb5.a -o \
- -f $dir/lib64/libgssapi_krb5.a -o \
- -f $dir/lib64/libgssapi_krb5.so -o \
- -f $dir/lib/libgssapi_krb5.so \) ; then
+ if $K5CONFIG --version | grep -q -e heimdal; then
+ K5VERS=`$K5CONFIG --version | head -n 1 | cut -f2 -d ' ' | tr -d '.'`
+ AC_DEFINE(HAVE_HEIMDAL, 1, [Define this if you have Heimdal Kerberos libraries])
+ gssapi_lib=gssapi
+ KRBIMPL="heimdal"
+ elif $K5CONFIG --version | grep -q -e mit; then
+ K5VERS=`$K5CONFIG --version | head -n 1 | cut -f4 -d ' ' | tr -d '.'`
AC_DEFINE(HAVE_KRB5, 1, [Define this if you have MIT Kerberos libraries])
- KRBDIR="$dir"
- dnl If we are using MIT K5 1.3.1 and before, we *MUST* use the
- dnl private function (gss_krb5_ccache_name) to get correct
- dnl behavior of changing the ccache used by gssapi.
- dnl Starting in 1.3.2, we *DO NOT* want to use
- dnl gss_krb5_ccache_name, instead we want to set KRB5CCNAME
- dnl to get gssapi to use a different ccache
if test $K5VERS -le 131; then
AC_DEFINE(USE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the private function, gss_krb5_cache_name, must be used to tell the Kerberos library which credentials cache to use. Otherwise, this is done by setting the KRB5CCNAME environment variable])
fi
gssapi_lib=gssapi_krb5
- break
- dnl The following ugly hack brought on by the split installation
- dnl of Heimdal Kerberos on SuSe
- elif test \( -f $dir/include/heim_err.h -o\
- -f $dir/include/heimdal/heim_err.h \) -a \
- -f $dir/lib/libroken.a; then
- AC_DEFINE(HAVE_HEIMDAL, 1, [Define this if you have Heimdal Kerberos libraries])
- KRBDIR="$dir"
- gssapi_lib=gssapi
- break
- fi
- fi
- done
- dnl We didn't find a usable Kerberos environment
- if test "x$KRBDIR" = "x"; then
- if test "x$krb5_with" = "x"; then
- AC_MSG_ERROR(Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=)
+ KRBIMPL="mit-krb5"
else
- AC_MSG_ERROR(Kerberos v5 with GSS support not found at $krb5_with)
- fi
+ AC_MSG_ERROR(Unknown Kerberos 5 Implementation. Is neither heimdal or mit-krb5.)
+ KRBIMPL="unknown"
fi
- AC_MSG_RESULT($KRBDIR)
- dnl Check if -rpath=$(KRBDIR)/lib is needed
- echo "The current KRBDIR is $KRBDIR"
- if test "$KRBDIR/lib" = "/lib" -o "$KRBDIR/lib" = "/usr/lib" \
- -o "$KRBDIR/lib" = "//lib" -o "$KRBDIR/lib" = "/usr//lib" ; then
- KRBLDFLAGS="";
- elif /sbin/ldconfig -p | grep > /dev/null "=> $KRBDIR/lib/"; then
- KRBLDFLAGS="";
- else
- KRBLDFLAGS="-Wl,-rpath=$KRBDIR/lib"
+ AC_DEFINE_UNQUOTED(KRB5_VERSION, $K5VERS, [Define this as the Kerberos version number])
fi
+ AC_MSG_RESULT($KRBIMPL)
- dnl Now check for functions within gssapi library
- AC_CHECK_LIB($gssapi_lib, gss_krb5_export_lucid_sec_context,
- AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT, 1, [Define this if the Kerberos GSS library supports gss_krb5_export_lucid_sec_context]), ,$KRBLIBS)
- AC_CHECK_LIB($gssapi_lib, gss_krb5_set_allowable_enctypes,
- AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES, 1, [Define this if the Kerberos GSS library supports gss_krb5_set_allowable_enctypes]), ,$KRBLIBS)
- AC_CHECK_LIB($gssapi_lib, gss_krb5_ccache_name,
- AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the Kerberos GSS library supports gss_krb5_ccache_name]), ,$KRBLIBS)
- dnl Check for newer error message facility
- AC_CHECK_LIB($gssapi_lib, krb5_get_error_message,
- AC_DEFINE(HAVE_KRB5_GET_ERROR_MESSAGE, 1, [Define this if the function krb5_get_error_message is available]), ,$KRBLIBS)
+ AC_CHECK_LIB($gssapi_lib, gss_krb5_export_lucid_sec_context, AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT, 1, [Define this if the Kerberos GSS library supports gss_krb5_export_lucid_sec_context]), ,$KRBLIBS)
+ AC_CHECK_LIB($gssapi_lib, gss_krb5_set_allowable_enctypes, AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES, 1, [Define this if the Kerberos GSS library supports gss_krb5_set_allowable_enctypes]), ,$KRBLIBS)
+ AC_CHECK_LIB($gssapi_lib, gss_krb5_ccache_name, AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the Kerberos GSS library supports gss_krb5_ccache_name]), ,$KRBLIBS)
+ AC_CHECK_LIB($gssapi_lib, krb5_get_error_message, AC_DEFINE(HAVE_KRB5_GET_ERROR_MESSAGE, 1, [Define this if the function krb5_get_error_message is available]), ,$KRBLIBS)
+ AC_CHECK_LIB($gssapi_lib, krb5_get_init_creds_opt_set_addressless, AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_SET_ADDRESSLESS, 1, [Define this if the function krb5_get_init_creds_opt_set_addressless is available]), ,$KRBLIBS)
- dnl Check for function to specify addressless tickets
- AC_CHECK_LIB($gssapi_lib, krb5_get_init_creds_opt_set_addressless,
- AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_SET_ADDRESSLESS, 1, [Define this if the function krb5_get_init_creds_opt_set_addressless is available]), ,$KRBLIBS)
- dnl If they specified a directory and it didn't work, give them a warning
- if test "x$krb5_with" != "x" -a "$krb5_with" != "$KRBDIR"; then
- AC_MSG_WARN(Using $KRBDIR instead of requested value of $krb5_with for Kerberos!)
- fi
- AC_SUBST([KRBDIR])
AC_SUBST([KRBLIBS])
AC_SUBST([KRBCFLAGS])
AC_SUBST([KRBLDFLAGS])
patch: nfs-utils-1.1.2-no_libgssapi.patch
Index: nfs-utils-1.1.0/utils/gssd/context_lucid.c
===================================================================
--- nfs-utils-1.1.0.orig/utils/gssd/context_lucid.c
+++ nfs-utils-1.1.0/utils/gssd/context_lucid.c
@@ -48,8 +48,10 @@
#include <krb5.h>
#include <gssapi/gssapi.h>
#ifndef OM_uint64
+#ifndef GSSAPI_GSSAPI_H_
typedef uint64_t OM_uint64;
#endif
+#endif
#include <gssapi/gssapi_krb5.h>
static int
@@ -171,10 +173,10 @@ serialize_krb5_ctx(gss_ctx_id_t ctx, gss
int retcode = 0;
printerr(2, "DEBUG: serialize_krb5_ctx: lucid version!\n");
- maj_stat = gss_export_lucid_sec_context(&min_stat, &ctx,
+ maj_stat = gss_krb5_export_lucid_sec_context(&min_stat, &ctx,
1, &return_ctx);
if (maj_stat != GSS_S_COMPLETE) {
- pgsserr("gss_export_lucid_sec_context",
+ pgsserr("gss_krb5_export_lucid_sec_context",
maj_stat, min_stat, &krb5oid);
goto out_err;
@@ -198,9 +200,9 @@ serialize_krb5_ctx(gss_ctx_id_t ctx, gss
else
retcode = prepare_krb5_rfc_cfx_buffer(lctx, buf);
- maj_stat = gss_free_lucid_sec_context(&min_stat, ctx, return_ctx);
+ maj_stat = gss_krb5_free_lucid_sec_context(&min_stat, ctx);
if (maj_stat != GSS_S_COMPLETE) {
- pgsserr("gss_export_lucid_sec_context",
+ pgsserr("gss_krb5_export_lucid_sec_context",
maj_stat, min_stat, &krb5oid);
printerr(0, "WARN: failed to free lucid sec context\n");
Index: nfs-utils-1.1.0/utils/gssd/krb5_util.c
===================================================================
--- nfs-utils-1.1.0.orig/utils/gssd/krb5_util.c
+++ nfs-utils-1.1.0/utils/gssd/krb5_util.c
@@ -294,10 +294,10 @@ limit_krb5_enctypes(struct rpc_gss_sec *
return -1;
- maj_stat = gss_set_allowable_enctypes(&min_stat, credh, &krb5oid,
+ maj_stat = gss_krb5_set_allowable_enctypes(&min_stat, credh,
num_enctypes, &enctypes);
if (maj_stat != GSS_S_COMPLETE) {
- pgsserr("gss_set_allowable_enctypes",
+ pgsserr("gss_krb5_set_allowable_enctypes",
maj_stat, min_stat, &krb5oid);
gss_release_cred(&min_stat, &credh);
return -1;
patch: nfs-utils-1.1.2-pkgconfig_ac.patch
--- configure.ac 2008-03-14 15:46:29.000000000 +0000
+++ configure.ac 2008-05-03 10:30:21.000000000 +0000
@@ -185,7 +185,7 @@
[AC_MSG_ERROR([Unable to locate information required to use librpcsecgss. If you have pkgconfig installed, you might try setting environment variable PKG_CONFIG_PATH to /usr/local/lib/pkgconfig])
- PKG_CHECK_MODULES(GSSGLUE, libgssglue >= 0.1)
+ PKG_CHECK_MODULES(GSSGLUE, libgssglue >= 0.1, , [PKG_CHECK_MODULES(GSSGLUE, heimdal-gssapi)])
fi
fi
@@ -228,9 +228,9 @@
dnl This is not done until here because we need to have KRBLIBS set
dnl ("librpcsecgss=1" is so that it doesn't get added to LIBS)
- AC_CHECK_LIB(rpcsecgss, authgss_create_default, [librpcsecgss=1], AC_MSG_ERROR([librpcsecgss needed for nfsv4 support]), -lgssglue -ldl)
+ AC_CHECK_LIB(rpcsecgss, authgss_create_default, [librpcsecgss=1], AC_MSG_ERROR([librpcsecgss needed for nfsv4 support]), $GSSGLUE_CFLAGS)
AC_CHECK_LIB(rpcsecgss, authgss_set_debug_level,
- AC_DEFINE(HAVE_AUTHGSS_SET_DEBUG_LEVEL, 1, [Define this if the rpcsec_gss library has the function authgss_set_debug_level]),, -lgssglue -ldl)
+ AC_DEFINE(HAVE_AUTHGSS_SET_DEBUG_LEVEL, 1, [Define this if the rpcsec_gss library has the function authgss_set_debug_level]),, $GSSGLUE_CFLAGS)
fi
patch: nfs-utils-1.1.4-heimdal_functions.patch
diff -Naur nfs-utils-1.1.4/utils/gssd/krb5_util.c nfs-utils-1.1.4-r1/utils/gssd/krb5_util.c
--- utils/gssd/krb5_util.c 2008-10-17 14:20:09.000000000 +0000
+++ utils/gssd/krb5_util.c 2008-11-22 13:52:42.000000000 +0000
@@ -927,9 +927,37 @@
krb5_error_code ret;
krb5_creds creds;
- krb5_cc_cursor cur;
int found = 0;
+#ifdef HAVE_HEIMDAL
+ krb5_creds pattern;
+ krb5_realm *client_realm;
+
+ krb5_cc_clear_mcred(&pattern);
+
+ client_realm = krb5_princ_realm (context, principal);
+
+ ret = krb5_make_principal (context, &pattern.server,
+ *client_realm, KRB5_TGS_NAME, *client_realm,
+ NULL);
+ if (ret)
+ krb5_err (context, 1, ret, "krb5_make_principal");
+ pattern.client = principal;
+
+ ret = krb5_cc_retrieve_cred (context, ccache, 0, &pattern, &creds);
+ krb5_free_principal (context, pattern.server);
+ if (ret) {
+ if (ret == KRB5_CC_END)
+ return 1;
+ krb5_err (context, 1, ret, "krb5_cc_retrieve_cred");
+ }
+
+ found = creds.times.endtime > time(NULL);
+
+ krb5_free_cred_contents (context, &creds);
+#else
+ krb5_cc_cursor cur;
+
ret = krb5_cc_start_seq_get(context, ccache, &cur);
if (ret)
return 0;
@@ -949,6 +977,7 @@
krb5_free_cred_contents(context, &creds);
krb5_cc_end_seq_get(context, ccache, &cur);
+#endif
return found;
@@ -995,6 +1024,9 @@
krb5_free_principal(context, principal);
err_princ:
+#ifdef HAVE_HEIMDAL
+#define KRB5_TC_OPENCLOSE 0x00000001
+#endif
krb5_cc_set_flags(context, ccache, KRB5_TC_OPENCLOSE);
krb5_cc_close(context, ccache);
err_cache:
The PKGBUILD I used is the follow. As you can see I changed the rc.d scripts to have only two scripts to do the job (client side and server side) to start the nfsd and related/needed daemons and take care to load and mount modules and filesystems needed but you can watch only at the use of the patch and reconfiguration before the configure/make step and use for the rest of the package the usual arch scripts.
# Maintainer: abelstr <[email protected]>
# Contributor: Marco Lima <[email protected]>
pkgname=nfs4-utils
_realname=nfs-utils
pkgver=1.1.4
pkgrel=3
pkgdesc="Support programs for Network File Systems"
arch=('i686' 'x86_64')
url="http://nfs.sourceforge.net"
license=('GPL')
depends=('glibc' 'tcp_wrappers' 'e2fsprogs' 'portmap' 'nfsidmap' 'librpcsecgss')
replaces=('nfs-utils')
provides=('nfs-utils')
backup=(etc/{exports,gssapi_mech.conf,idmapd.conf} etc/conf.d/{nfs-common.conf,nfs-server.conf})
install="$_realname.install"
options=('docs')
source=("http://garr.dl.sourceforge.net/sourceforge/nfs/$_realname-$pkgver.tar.bz2"
nfs-common
nfs-common.conf
nfs-server
nfs-server.conf
exports
start-statd.patch
idmapd.conf
gssapi_mech.conf
nfs-utils-1.1.2-kerberos-ac.patch
nfs-utils-1.1.2-no_libgssapi.patch
nfs-utils-1.1.2-pkgconfig_ac.patch
nfs-utils-1.1.4-heimdal_functions.patch)
md5sums=('3ed5b9cb73fd1c9b358c7bfa7a6ae150'
'3fa8ad66f434e8277e7a82c7c699ce46'
'a05e6e91307af37e7bd612b356bd0b6a'
'1852b84523c74e02831b60dcc5739f7a'
'1c6c755fcfef4e5e19ee7414d3020269'
'ff585faf410a62c4333a027c50b56bae'
'11f6c229108c223dc5fe849d11aecaf3'
'64eaa20ea49e324e5a72858f104a61eb'
'234b9cca75a33af98eda3f1683756879'
'f3be115d392d9f9bb0f056e8d4341a14'
'de30683636eda26421e58937a784b123'
'd07c449358eeb254850975add54bcff2'
'959a81d86da677d42e76b597656171a2')
build() {
cd "$srcdir/$_realname-$pkgver"
# Patches from gentoo for heimdal compatibility Bug 231396
# http://bugs.gentoo.org/show_bug.cgi?id=231396
patch -Np1 -i ../nfs-utils-1.1.2-kerberos-ac.patch || return 1
patch -Np0 -i ../nfs-utils-1.1.2-pkgconfig_ac.patch || return 1
patch -Np1 -i ../nfs-utils-1.1.2-no_libgssapi.patch || return 1
patch -Np0 -i ../nfs-utils-1.1.4-heimdal_functions.patch || return 1
rm -f config.guess config.sub ltmain.sh
autoreconf -i
export GSSAPI_CFLAGS='-I/usr/include/gssapi'
export GSSAPI_LIBS='-lgssapi -ldl'
patch -Np0 -i ../start-statd.patch || return 1
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--with-statedir=/var/lib/nfs \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--enable-nfsv3 \
--enable-nfsv4 \
--enable-gss \
--with-tcp-wrappers || return 1
make || return 1
make DESTDIR="$pkgdir/" install || return 1
# NFS & NFSv4 init scripts
install -D -m 755 ../nfs-common "$pkgdir/"etc/rc.d/nfs-common
install -D -m 755 ../nfs-server "$pkgdir/"etc/rc.d/nfs-server
# Configuration
install -D -m 644 ../exports "$pkgdir/"etc/exports
install -D -m 644 ../idmapd.conf "$pkgdir/"etc/idmapd.conf
install -D -m 644 ../gssapi_mech.conf "$pkgdir/"etc/gssapi_mech.conf
install -D -m 644 ../nfs-common.conf "$pkgdir/"etc/conf.d/nfs-common.conf
install -D -m 644 ../nfs-server.conf "$pkgdir/"etc/conf.d/nfs-server.conf
# directories
mkdir "$pkgdir/"var/lib/nfs/rpc_pipefs
mkdir "$pkgdir/"var/lib/nfs/v4recovery
# copy docs
install -m 755 -d "$pkgdir/"usr/share/doc/$pkgname || return 1
install -m 644 -t "$pkgdir/"usr/share/doc/$pkgname AUTHORS ChangeLog INSTALL \
NEWS README || return 1
idmapd.conf
[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
[Translation]
Method = nsswitch
gssapi_mech.conf
# Example /etc/gssapi_mech.conf file
# GSSAPI Mechanism Definitions
# This configuration file determines which GSS-API mechanisms
# the gssd code should use
# NOTE:
# The initiaiization function "mechglue_internal_krb5_init"
# is used for the MIT krb5 gssapi mechanism. This special
# function name indicates that an internal function should
# be used to determine the entry points for the MIT gssapi
# mechanism funtions.
# library initialization function
# ================================ ==========================
# The MIT K5 gssapi library, use special function for initialization.
#/usr/lib/libgssapi_krb5.so mechglue_internal_krb5_init
/usr/lib/libgssapi.so mechglue_internal_krb5_init
# The SPKM3 gssapi library function. Use the function spkm3_gss_initialize.
# /usr/local/gss_mechs/spkm/spkm3/libgssapi_spkm3.so spkm3_gss_initialize
exports
# /etc/exports
# List of directories exported to NFS clients. See exports(5).
# Use exportfs -arv to reread.
# Example for NFSv2 and NFSv3:
# /srv/home hostname1(rw,sync) hostname2(ro,sync)
# Example for NFSv4:
# /srv/nfs4 hostname1(rw,sync,fsid=0)
# /srv/nfs4/home hostname1(rw,sync,nohide)
# Using Kerberos and integrity checking:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/home gss/krb5i(rw,sync,nohide)
start-statd.patch
--- utils/statd/start-statd 2008-10-17 16:20:09.000000000 +0200
+++ utils/statd/start-statd.new 2008-12-06 11:43:12.000000000 +0100
@@ -1,9 +1,16 @@
#!/bin/sh
+
+# Original script provided by the NFS project
+# Modified for Arch Linux by Tom Killian
+
# nfsmount calls this script when mounting a filesystem with locking
# enabled, but when statd does not seem to be running (based on
# /var/run/rpc.statd.pid).
# It should run run statd with whatever flags are apropriate for this
# site.
-PATH=/sbin:/usr/sbin
-exec rpc.statd --no-notify
+
+# source application-specific settings
+[ -f /etc/conf.d/nfs-common.conf ] && . /etc/conf.d/nfs-common.conf
+
+exec /usr/sbin/rpc.statd $STATD_OPTS
nfs-utils.install
## arg 1: the new package version
post_install() {
cat << 'EOM'
==>
==> PLEASE NOTE:
==> Extended configuration options for NFS (clients & server) are available in
==> /etc/conf.d/nfs-common.conf and in /etc/conf.d/nfs-server.conf
==>
==> Please refer to http://wiki.archlinux.org/index.php/Nfs
==> for further information on NFS; for NFSv4, refer to
==> http://wiki.archlinux.org/index.php/NFSv4
==> Also, if you plan on using NFSv4, in /etc/conf.d/nfs-common.conf set:
==> 1) NEED_IDMAPD="yes" to start rpc.idmapd - on clients & server.
==> rpc.idmapd needs to be properly configured; edit at least the
==> daemon line in /etc/idmapd.conf.
==> 2) NEED_GSSD="yes" to start rpc.gssd (GSS authentication) - only on clients.
==> 3) Add "rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs 0 0" to /etc/fstab.
==> If not mounted when the init script nfs-common starts it tries to mount the
==> filesystem automatically (if rpc.idmapd or rpc.gssd is needed);
==> see /etc/conf.d/nfs-common.conf for extended configuration options.
==> in /etc/conf.d/nfs-server.conf (only server) set:
==> 1) add "nfsd /proc/fs/nfsd nfsd -o rw,nodev,noexec,nosuid 0 0" to /etc/fstab.
==> If not mounted when the init script nfs-server starts it tries to mount the
==> filesystem automatically; see /etc/conf.d/nfs-server.conf for extended
==> configuration options.
==> 2) NEED_SVCGSSD="yes" to start rpc.svcgssd (GSS authentication) - on server
EOM
## arg 1: the new package version
## arg 2: the old package version
post_upgrade() {
post_install $1
nfs-server.conf
# Parameters to be passed to nfs-server init script.
# Options to pass to rpc.nfsd.
NFSD_OPTS=
# Number of servers to start up; the default is 8 servers.
NFSD_COUNT=
# Where to mount nfsd filesystem; the default is "/proc/fs/nfsd".
PROCNFSD_MOUNTPOINT=
# Options used to mount nfsd filesystem; the default is "rw,nodev,noexec,nosuid".
PROCNFSD_MOUNTOPTS=
# Options for rpc.mountd.
# If you have a port-based firewall, you might want to set up
# a fixed port here using the --port option. For more information,
# see rpc.mountd(8)
MOUNTD_OPTS="--no-nfs-version 1 --no-nfs-version 2"
# Do you want to start the svcgssd daemon? It is only required for Kerberos
# exports. Valid alternatives are "yes" and "no"; the default is "no".
NEED_SVCGSSD=
# Options to pass to rpc.svcgssd.
SVCGSSD_OPTS=
nfs-server
#!/bin/bash
daemon_name=nfs-server
NFSD_COUNT=
NFSD_OPTS=
NEED_SVCGSSD=
SVCGSSD_OPTS=
MOUNTD_OPTS=
PROCNFSD_MOUNTPOINT=
PROCNFSD_MOUNTOPTS=
# rpc.nfsd daemon & binary location
NFSD_PROCESS_NAME=nfsd
NFSD_DAEMON_NAME=rpc.nfsd
NFSD="/usr/sbin/rpc.nfsd"
# rpc.svcgssd daemon & binary location
SVCGSSD_DAEMON_NAME=rpc.svcgssd
SVCGSSD="/usr/sbin/rpc.svcgssd"
# rpc.idmapd daemon & binary location
IDMAPD_DAEMON_NAME=rpc.idmapd
IDMAPD="/usr/sbin/rpc.idmapd"
# rpc.mountd daemon & binary location
MOUNTD_DAEMON_NAME=rpc.mountd
MOUNTD="/usr/sbin/rpc.mountd"
# exortfs binary location
EXPORTFS="/usr/sbin/exportfs"
. /etc/rc.conf
. /etc/rc.d/functions
. /etc/conf.d/$daemon_name.conf
# Default number of nfsd servers
[ -z "$NFSD_COUNT" ] && NFSD_COUNT=8
# Default mountpoint and options for nfsd filesystem
[ -z "$PROCNFSD_MOUNTPOINT" ] && PROCNFSD_MOUNTPOINT="/proc/fs/nfsd"
[ -z "$PROCNFSD_MOUNTOPTS" ] && PROCNFSD_MOUNTOPTS="rw,nodev,noexec,nosuid"
case "$NEED_SVCGSSD" in
yes|no)
NEED_SVCGSSD=no
esac
do_modprobe() {
if [ -x /sbin/modprobe -a -f /proc/modules ]; then
modprobe -q "$1" || true
fi
do_mount() {
if ! grep -E "$1\$" /proc/filesystems &> /dev/null ; then
return 1
fi
if grep -vw "$1" /proc/mounts &> /dev/null ; then
if ! mountpoint -q "$2" ; then
mount -t "$1" "$1" "$2" -o "$3"
return
fi
fi
return 0
do_umount() {
if mountpoint -q "$1" ; then
umount "$1"
fi
return 0
get_pid() {
pidof -o %PPID "$1"
case "$1" in
start)
rc=0
stat_busy "Mounting nfsd filesystem"
do_modprobe nfsd
do_mount nfsd "$PROCNFSD_MOUNTPOINT" "$PROCNFSD_MOUNTOPTS"
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
stat_done
fi
stat_busy "Exporting all directories"
$EXPORTFS -r
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
stat_done
fi
stat_busy "Starting $NFSD_DAEMON_NAME daemon"
PID=$(get_pid $NFSD_PROCESS_NAME)
if [ -z "$PID" ]; then
[ -f /var/run/$NFSD_DAEMON_NAME.pid ] && rm -f /var/run/$NFSD_DAEMON_NAME.pid
# RUN
$NFSD $NFSD_OPTS $NFSD_COUNT
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
echo $(get_pid $NFSD_PROCESS_NAME) > /var/run/$NFSD_DAEMON_NAME.pid
stat_done
fi
else
stat_fail
exit 1
fi
if [ "$NEED_SVCGSSD" = yes ]; then
stat_busy "Starting $SVCGSSD_DAEMON_NAME daemon"
PID=$(get_pid $SVCGSSD)
if [ -z "$PID" ]; then
[ -f /var/run/$SVCGSSD_DAEMON_NAME.pid ] && rm -f /var/run/$SVCGSSD_DAEMON_NAME.pid
# RUN
$SVCGSSD $SVCGSSD_OPTS
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
echo $(get_pid $SVCGSSD) > /var/run/$SVCGSSD_DAEMON_NAME.pid
stat_done
fi
else
stat_fail
exit 1
fi
fi
PID=$(get_pid $IDMAPD)
[ ! -z "$PID" ] && kill -SIGHUP $IDMAPD_DAEMON_NAME &> /dev/null
stat_busy "Starting $MOUNTD_DAEMON_NAME daemon"
PID=$(get_pid $MOUNTD)
if [ -z "$PID" ]; then
[ -f /var/run/$MOUNTD_DAEMON_NAME.pid ] && rm -f /var/run/$MOUNTD_DAEMON_NAME.pid
# RUN
$MOUNTD $MOUNTD_OPTS
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
echo $(get_pid $MOUNTD) > /var/run/$MOUNTD_DAEMON_NAME.pid
stat_done
fi
else
stat_fail
exit 1
fi
add_daemon $daemon_name
stop)
rc=0
stat_busy "Stopping $MOUNTD_DAEMON_NAME daemon"
PID=$(get_pid $MOUNTD)
# KILL
[ ! -z "$PID" ] && kill $PID &> /dev/null
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
rm -f /var/run/$MOUNTD_DAEMON_NAME.pid &> /dev/null
stat_done
fi
if [ "$NEED_SVCGSSD" = yes ]; then
stat_busy "Stopping $SVCGSSD_DAEMON_NAME daemon"
PID=$(get_pid $SVCGSSD)
# KILL
[ ! -z "$PID" ] && kill $PID &> /dev/null
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
rm -f /var/run/$SVCGSSD_DAEMON_NAME.pid &> /dev/null
stat_done
fi
fi
stat_busy "Stopping $NFSD_DAEMON_NAME daemon"
PID=$(get_pid $NFSD_PROCESS_NAME)
# KILL (SIGINT)
[ ! -z "$PID" ] && kill -2 $PID &> /dev/null
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
sleep 1
PID=$(get_pid $NFSD_PROCESS_NAME)
# KILL (KILL) - just to be sure
[ ! -z "$PID" ] && kill -9 $PID &> /dev/null
rm -f /var/run/$NFSD_DAEMON_NAME.pid &> /dev/null
stat_done
fi
stat_busy "Unexporting all directories"
$EXPORTFS -au
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
stat_done
fi
# flush everything out of the kernels export table
if mountpoint -q "$PROCNFSD_MOUNTPOINT" ; then
$EXPORTFS -f
fi
rm_daemon $daemon_name
status)
stat_busy "$daemon_name running"
if ck_daemon $daemon_name; then
stat_fail
else
stat_done
fi
stat_busy "Daemon $NFSD_DAEMON_NAME running"
PID=$(get_pid $NFSD_PROCESS_NAME)
if [ -z "$PID" ]; then
stat_fail
else
stat_done
fi
stat_busy "Daemon $MOUNTD_DAEMON_NAME running"
PID=$(get_pid $MOUNTD)
if [ -z "$PID" ]; then
stat_fail
else
stat_done
fi
if [ "$NEED_SVCGSSD" = yes ]; then
stat_busy "Daemon $SVCGSSD_DAEMON_NAME running"
PID=$(get_pid $SVCGSSD)
if [ -z "$PID" ]; then
stat_fail
else
stat_done
fi
fi
echo
reload)
rc=0
stat_busy "Re-exporting all directories"
$EXPORTFS -r
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
stat_done
fi
restart)
$0 stop
sleep 3
$0 start
echo "usage: $0 {start|stop|status|reload|restart}"
esac
exit 0
nfs-common.conf
# Parameters to be passed to nfs-common (nfs clients & server) init script.
# If you do not set values for the NEED_ options, they will be attempted
# autodetected; this should be sufficient for most people. Valid alternatives
# for the NEED_ options are "yes" and "no".
# Do you want to start the statd daemon? It is not needed for NFSv4.
NEED_STATD=
# Options to pass to rpc.statd.
# N.B. statd normally runs on both client and server, and run-time
# options should be specified accordingly. Specifically, the Arch
# NFS init scripts require the --no-notify flag on the server,
# but not on the client e.g.
# STATD_OPTS="--no-notify -p 32765 -o 32766" -> server
# STATD_OPTS="-p 32765 -o 32766" -> client
STATD_OPTS=
# Do you want to start the idmapd daemon? It is only needed for NFSv4.
NEED_IDMAPD=
# Options to pass to rpc.idmapd.
IDMAPD_OPTS=
# Do you want to start the gssd daemon? It is required for Kerberos mounts.
NEED_GSSD=
# Options to pass to rpc.gssd.
GSSD_OPTS=
# Where to mount rpc_pipefs filesystem; the default is "/var/lib/nfs/rpc_pipefs".
PIPEFS_MOUNTPOINT=
# Options used to mount rpc_pipefs filesystem; the default is "defaults".
PIPEFS_MOUNTOPTS=
nfs-common
#!/bin/bash
daemon_name=nfs-common
NEED_STATD=
STATD_OPTS=
NEED_IDMAPD=
IDMAPD_OPTS=
NEED_GSSD=
GSSD_OPTS=
PIPEFS_MOUNTPOINT=
PIPEFS_MOUNTOPTS=
# rpc.statd daemon & binary location
STATD_DAEMON_NAME=rpc.statd
STATD="/usr/sbin/rpc.statd"
# rpc.idmapd daemon & binary location
IDMAPD_DAEMON_NAME=rpc.idmapd
IDMAPD="/usr/sbin/rpc.idmapd"
# rpc.gssd daemon & binary location
GSSD_DAEMON_NAME=rpc.gssd
GSSD="/usr/sbin/rpc.gssd"
. /etc/rc.conf
. /etc/rc.d/functions
. /etc/conf.d/$daemon_name.conf
# Default mountpoint and options for rpc_pipefs filesystem
[ -z "$PIPEFS_MOUNTPOINT" ] && PIPEFS_MOUNTPOINT="/var/lib/nfs/rpc_pipefs"
[ -z "$PIPEFS_MOUNTOPTS" ] && PIPEFS_MOUNTOPTS="defaults"
# Parse the fstab file, and determine whether we need idmapd and gssd. (The
# /etc/defaults settings, if any, will override our autodetection.) This code
# is partially adapted from the mountnfs.sh script in the sysvinit package.
AUTO_NEED_IDMAPD=no
AUTO_NEED_GSSD=no
if [ -f /etc/fstab ]; then
exec 9<&0 </etc/fstab
while read DEV MTPT FSTYPE OPTS REST; do
if [ "$FSTYPE" = "nfs4" ]; then
AUTO_NEED_IDMAPD=yes
fi
case "$OPTS" in
sec=krb5|*,sec=krb5|sec=krb5,*|*,sec=krb5i,*|sec=krb5i|*,sec=krb5i|sec=krb5i,*|*,sec=krb5i,*|sec=krb5p|*,sec=krb5p|sec=krb5p,*|*,sec=krb5p,*)
AUTO_NEED_GSSD=yes
esac
done
exec 0<&9 9<&-
fi
# We also need idmapd if we run an NFSv4 server. It's fairly difficult
# to autodetect whether there are NFSv4 exports or not, and idmapd is not a
# particularily heavy daemon, so we auto-enable it if we find an /etc/exports
# file. This does not mean that there are NFSv4 or other mounts active (or
# even that nfs-kernel-server is installed), but it matches what the "start"
# condition in nfs-kernel-server's init script does, which has a value in
# itself.
if [ -f /etc/exports ] && grep -q '^[[:space:]]*[^#]*/' /etc/exports; then
AUTO_NEED_IDMAPD=yes
fi
case "$NEED_STATD" in
yes|no)
NEED_STATD=yes
esac
case "$NEED_IDMAPD" in
yes|no)
NEED_IDMAPD=$AUTO_NEED_IDMAPD
esac
case "$NEED_GSSD" in
yes|no)
NEED_GSSD=$AUTO_NEED_GSSD
esac
do_modprobe() {
if [ -x /sbin/modprobe -a -f /proc/modules ]; then
modprobe -q "$1" || true
fi
do_mount() {
if ! grep -E "$1\$" /proc/filesystems &> /dev/null ; then
return 1
fi
if grep -vw "$1" /proc/mounts &> /dev/null ; then
if ! mountpoint -q "$2" ; then
mount -t "$1" "$1" "$2" -o "$3"
return
fi
fi
return 0
do_umount() {
if mountpoint -q "$1" ; then
umount "$1"
fi
return 0
get_pid() {
pidof -o %PPID "$1"
case "$1" in
start)
rc=0
if [ "$NEED_STATD" = yes ]; then
stat_busy "Starting $STATD_DAEMON_NAME daemon"
PID=$(get_pid $STATD)
if [ -z "$PID" ]; then
[ -f /var/run/$STATD_DAEMON_NAME.pid ] && rm -f /var/run/$STATD_DAEMON_NAME.pid
# RUN
$STATD $STATD_OPTS
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
echo $(get_pid $STATD) > /var/run/$STATD_DAEMON_NAME.pid
stat_done
fi
else
stat_fail
exit 1
fi
fi
if [ "$NEED_IDMAPD" = yes ] || [ "$NEED_GSSD" = yes ]; then
do_modprobe sunrpc
do_modprobe nfs
do_mount rpc_pipefs "$PIPEFS_MOUNTPOINT" "$PIPEFS_MOUNTOPTS"
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
fi
if [ "$NEED_IDMAPD" = yes ]; then
stat_busy "Starting $IDMAPD_DAEMON_NAME daemon"
PID=$(get_pid $IDMAPD)
if [ -z "$PID" ]; then
[ -f /var/run/$IDMAPD_DAEMON_NAME.pid ] && rm -f /var/run/$IDMAPD_DAEMON_NAME.pid
# RUN
$IDMAPD $IDMAPD_OPTS
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
echo $(get_pid $IDMAPD) > /var/run/$IDMAPD_DAEMON_NAME.pid
stat_done
fi
else
stat_fail
exit 1
fi
fi
if [ "$NEED_GSSD" = yes ]; then
do_modprobe rpcsec_gss_krb5
stat_busy "Starting $GSSD_DAEMON_NAME daemon"
PID=$(get_pid $GSSD)
if [ -z "$PID" ]; then
[ -f /var/run/$GSSD_DAEMON_NAME.pid ] && rm -f /var/run/$GSSD_DAEMON_NAME.pid
# RUN
$GSSD $GSSD_OPTS
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
echo $(get_pid $GSSD) > /var/run/$GSSD_DAEMON_NAME.pid
stat_done
fi
else
stat_fail
exit 1
fi
fi
fi
add_daemon $daemon_name
stop)
rc=0
if [ "$NEED_IDMAPD" = yes ] || [ "$NEED_GSSD" = yes ]; then
if [ "$NEED_GSSD" = yes ]; then
stat_busy "Stopping $GSSD_DAEMON_NAME daemon"
PID=$(get_pid $GSSD)
# KILL
[ ! -z "$PID" ] && kill $PID &> /dev/null
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
rm -f /var/run/$GSSD_DAEMON_NAME.pid &> /dev/null
stat_done
fi
fi
if [ "$NEED_IDMAPD" = yes ]; then
stat_busy "Stopping $IDMAPD_DAEMON_NAME daemon"
PID=$(get_pid $IDMAPD)
# KILL
[ ! -z "$PID" ] && kill $PID &> /dev/null
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
rm -f /var/run/$IDMAPD_DAEMON_NAME.pid &> /dev/null
stat_done
fi
fi
do_umount "$PIPEFS_MOUNTPOINT" 2>/dev/null || true
fi
if [ "$NEED_STATD" = yes ]; then
stat_busy "Stopping $STATD_DAEMON_NAME daemon"
PID=$(get_pid $STATD)
# KILL
[ ! -z "$PID" ] && kill $PID &> /dev/null
rc=$(($rc+$?))
if [ $rc -gt 0 ]; then
stat_fail
exit $rc
else
rm -f /var/run/$STATD_DAEMON_NAME.pid &> /dev/null
stat_done
fi
fi
rm_daemon $daemon_name
status)
stat_busy "$daemon_name running"
if ck_daemon $daemon_name; then
stat_fail
else
stat_done
fi
if [ "$NEED_STATD" = yes ]; then
stat_busy "Daemon $STATD_DAEMON_NAME running"
PID=$(get_pid $STATD)
if [ -z "$PID" ]; then
stat_fail
else
stat_done
fi
fi
if [ "$NEED_GSSD" = yes ]; then
stat_busy "Daemon $GSSD_DAEMON_NAME running"
PID=$(get_pid $GSSD)
if [ -z "$PID" ]; then
stat_fail
else
stat_done
fi
fi
if [ "$NEED_IDMAPD" = yes ]; then
stat_busy "Daemon $IDMAPD_DAEMON_NAME running"
PID=$(get_pid $IDMAPD)
if [ -z "$PID" ]; then
stat_fail
else
stat_done
fi
fi
echo
restart)
$0 stop
sleep 3
$0 start
echo "usage: $0 {start|stop|status|restart}"
esac
exit 0
Maybe you are looking for
-
How to recover OS X Mavericks 10.91 without waiting 40 ours?
Hi. I tried to recover my OS X 10.91 on my Macbook Pro Retina late 2013,because normal download from MAS does not work for that Model. But everytime when i start the recovery the download will need between 35 and 50 ours. I wait 2h and still 5% only
-
Query for finding data during special holidays
Hi, i have a table for special holidays that looks like this: PROFILE_DAY VAR_DATE REGULAR_HOLIDAY 1/1/2013 H_WEEK_THURSDAY 3/28/2013 H_WEEK_FRIDAY 3/29/2013 REGULAR_HOLIDAY 12/24/2013 REGULAR_HOLIDAY 12/25/2013 REGULAR_HOLIDAY 12/31/2013 And another
-
Per-user minor upgrades broken in Windows Installer after KB2918614
Hi. We use the msiexec /fvomus procedure as detailed in http://msdn.microsoft.com/en-us/library/aa367575(v=vs.85).aspx for updating our product. We recently started getting feedback from clients that our application wasn't updating properly. After in
-
3 log entries per cfhttp or cffile request?
Hi People, We are running CF9 or Windows 2008 server. While troubleshooting a server load issue we found in the IIS logs that there are 3 entries for each CFFILE or CFHTTP request. We are not sure if that is normal or if it represents some mis-confi
-
Last download on top in download folder
Hi All, Does anyone know how to make the last downloaded file be on top of the Download Folder list? Right now it is in alphabetical order. Please advise. Thanks, Paul