-
Notifications
You must be signed in to change notification settings - Fork 2
Home
- A git client
- An XML editor (preferably one that can validate against Relax NG schemas)
- Optional (but highly recommended)
- The make utility
- An XSL Engine
- The hunspell spellchecker
Creating the right environment on a UNIX-derivative platform, such as macOS, Solaris, or Linux-based, is relatively straight-forward---you just need to install the packages that correspond to the requirements listed above. For example, on a yum-based distribution, you would simply enter the following command: sudo yum install git make emacs hunspell xsltproc
There are a couple of options for installing the necessary requirements on a Windows 10 platform, but the easiest is probably using the Linux subsystem. Installation instructions are described here. Once this is successfully installed you need to follow the instructions listed above in the UNIX-derivative distribution section.
To edit an existing product, you must first clone the project locally.
Click the green clone button on the desired project's page, as illustrated in the picture below.

- And start editing. The template project contains some boilerplate text. Besides adding the content, several values that are project specific are called out with the QQQQ character sequence.
- empty : Builds all HTML documents
- clean : Deletes all HTML documents
- spellcheck : Runs hunspell spellchecker
- git-safe-push : Pulls changes from the master copy (github). Builds document and if successful pushes your changes to master.
-
To make a new protection profile create a new repo on the git server (i.e. github.com), probably through the web interface. Note the value of its git URL which is displayed when you click the Clone or Download button on the upper left. We refer to this value as $NEW_REPO_GIT_URL.
-
Run the following script (with the appropriate value for $NEW_REPO_GIT_URL).
git clone --bare https://github.com/commoncriteria/pp-template.git
# Make a bare clone of the repository
cd pp-template.git
git push --mirror $NEW_REPO_GIT_URL
# Mirror-push to the new repository
cd ..
rm -rf pp-template.git
# Remove our temporary local repository
-
Do a full clone of your new project
-
Rename the input file, currently named, input/pp-template.xml to the name of the project with xml added to it; for example, operatingsystem and application have operatingsystem.xml and application.xml input files respectively. If something was the project name it would be,
git mv input/pp-template.xml input/something.xml
If you get into trouble, it might be helpful to view other examples such as:
- RelaxNG Homepage - It's a little dated, but lists lots of good Relax NG resources.
- Protection Profile XML Structure Description - This is a Javadoc style documentation for all the CommonCriteria XML elements that we defined.
- Protection Profile Automatic Builds - This server continuously builds known github projects. To get yours on the list please notify our team.