<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to HpOpenSourceClusterInfo</title><link>https://sourceforge.net/p/vms-ports/wiki/HpOpenSourceClusterInfo/</link><description>Recent changes to HpOpenSourceClusterInfo</description><atom:link href="https://sourceforge.net/p/vms-ports/wiki/HpOpenSourceClusterInfo/feed" rel="self"/><language>en</language><lastBuildDate>Fri, 25 May 2012 04:47:54 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/vms-ports/wiki/HpOpenSourceClusterInfo/feed" rel="self" type="application/rss+xml"/><item><title>WikiPage HpOpenSourceClusterInfo modified by John Malmberg</title><link>https://sourceforge.net/p/vms-ports/wiki/HpOpenSourceClusterInfo/</link><description>&lt;pre&gt;--- v5
+++ v6
@@ -204,7 +204,7 @@
 $bug_gnu = f$trnlnm("GNU")
 $if (save_gnu .eqs. "") .and. (bug_gnu .eqs. "")
 $then
-$   bug_gnu = "PTAC$DKA0:[PSX$ROOT.]"
+$   bug_gnu = "SYS$SYSDEVICE:[PSX$ROOT.]"
 $endif
 $if (save_gnu .eqs. "") .and. (bug_gnu .nes. "")
 $then
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Malmberg</dc:creator><pubDate>Fri, 25 May 2012 04:47:54 -0000</pubDate><guid>https://sourceforge.netd78cdfa586bbe99c647837bb2381a2f661808cb8</guid></item><item><title>WikiPage HpOpenSourceClusterInfo modified by John Malmberg</title><link>https://sourceforge.net/p/vms-ports/wiki/HpOpenSourceClusterInfo/</link><description>&lt;pre&gt;--- v4
+++ v5
@@ -202,6 +202,10 @@
 $! probably present.
 $!-------------------------------------------------------------------
 $bug_gnu = f$trnlnm("GNU")
+$if (save_gnu .eqs. "") .and. (bug_gnu .eqs. "")
+$then
+$   bug_gnu = "PTAC$DKA0:[PSX$ROOT.]"
+$endif
 $if (save_gnu .eqs. "") .and. (bug_gnu .nes. "")
 $then
 $   save_gnu = bug_gnu
@@ -223,6 +227,9 @@
 $   define gnv$gnu new_gnu:,'jem_gnu'/job
 $   define sys$posix_root new_gnu:'jem_gnu'/job
 $endif
+$!   Bug work around, GNU should not be needed, just GNV$GNU:
+$define GNU gnv$gnu:/job
+$!
 $!
 $! Create the base of the directory tree
 $!--------------------------------------
@@ -241,7 +248,6 @@
 $then
 $   define/job VI_SECTION GNV$GNU:[LIB]VI_SECTION.TPU$SECTION
 $endif
-
 ~~~~~~~~~~~~~~~~
 
 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Malmberg</dc:creator><pubDate>Fri, 25 May 2012 04:45:06 -0000</pubDate><guid>https://sourceforge.net7dc494e6feba595ea98e3941a64ff77bff0c5670</guid></item><item><title>WikiPage HpOpenSourceClusterInfo modified by John Malmberg</title><link>https://sourceforge.net/p/vms-ports/wiki/HpOpenSourceClusterInfo/</link><description>&lt;pre&gt;--- v3
+++ v4
@@ -16,7 +16,7 @@
 
 * **IA64_ROOT:** Location for binaries and build products for the IA64 node.
 
-On the HP Open Source cluster, this file can be run from my login directory as with the sample LOGIN.COM file that follows:
+On the HP Open Source cluster, this file can be run from the [johnm] home directory as with the sample LOGIN.COM file later in this article.
 
 ~~~~~~~~~~~~~~~~~~~
 :::DCL
@@ -102,6 +102,149 @@
 $endsubroutine
 ~~~~~~~~~~~~~~~~
 
+This next procedure reworks the simulated "/" for GNV to include local
+directories so that a non-privileged user can modify the files in "/".
+
+It has an option to include the gnv environment [johnm] as an example of people sharing binaries that are under development.
+
+~~~~~~~~~~~~~~~~
+:::DCL
+$! File: SETUP_LOCAL_GNV.COM
+$!
+$! This file sets up a GNV environment on a logical name search list
+$! with user writable directories at the beginning.
+$!
+$! This variant is for the HP Open Source cluster.
+$!
+$! This procedure expects that a logical name that is one of
+$! VAX_ROOT:, ALPHA_ROOT:, IA64_ROOT: base on the architecture of
+$! the sysetm running the procedure.
+$!
+$! If P1 is set to "JEM_GNV_ROOT" then instead of a search list of two
+$! directories, a search list of three directories is done, with
+$! gnv$gnu: = new_gju:, jem_gnv_root:,
+$!
+$!
+$! 24-May-2012  J. Malmberg
+$!
+$!=========================================================================
+$!
+$! Set default protection
+$!----------------------------
+$set protection=(s:rwed,o:rwed,g:re,w:re)/default
+$!
+$!
+$! Do we have what we need?
+$!-------------------------
+$ready = 1
+$bytlm = f$getjpi("","bytlm")
+$if bytlm .le. 290000
+$then
+$   ready = 0
+$   write sys$output "Bytlm of ''bytlm' too low, 300000 recommended"
+$endif
+$if ready .eq. 0 then goto all_exit
+$!
+$! Need to know what are model is to find the architecture specific
+$! binary root
+$!--------------------------------------------------------------------
+$hw_model = f$getsyi("HW_MODEL")
+$if hw_model .lt. 1024
+$then
+$   arch_name = "vax"
+$else
+$   set process/parse=extended
+$   arch_type = f$getsyi("ARCH_TYPE")
+$   if arch_type .eq. 2
+$   then
+$       arch_name = "alpha"
+$   else
+$       if arch_type .eq. 3
+$       then
+$           arch_name = "ia64"
+$       else
+$           arch_name = "Unknown"
+$           write sys$output "Something other than VAX, AXP or IA64 found."
+$       endif
+$   endif
+$endif
+$GNV_REPLACE = "''arch_name'_root:[new_gnv]"
+$!
+$jem_gnu = ""
+$if p1 .eqs. "JEM_GNV_ROOT"
+$then
+$   if f$trnlnm("JEM_GNV_ROOT") .eqs. ""
+$   then
+$!      Assume it is on the same device.
+$       arch_root = f$trnlnm("''arch_name'_root")
+$       arch_dev = f$parse(arch_root,,,"DEVICE")
+$       define/job/trans=conc JEM_GNV_ROOT -
+                'arch_dev'[johnm.'arch_name'_root.new_gnv.]
+$   endif
+$   jem_gnu = ",JEM_GNV_ROOT:"
+$endif
+$!
+$!
+$! Hack so make install will work for non privileged users
+$!---------------------------------------------------------
+$create/dir 'gnv_replace'
+$new_gnv = f$parse(GNV_REPLACE,,,,"NO_CONCEAL") - "][" - "&gt;&lt;" - ".;" - ".."
+$new_gnv_len = f$length(new_gnv) - 1
+$delim = f$extract(new_gnv_len, 1, new_gnv)
+$new_gnv = f$extract(0, new_gnv_len, new_gnv) + "." + delim
+$define new_gnu 'new_gnv'/job/trans=conc
+$!
+$! Get the existing GNV root.  Should be using GNV$GNU logical name.
+$!-------------------------------------------------------------------
+$save_gnu = f$trnlnm("GNV$GNU","LNM$SYSTEM_TABLE")
+$!
+$! If GNV$GNU is not defined, then the bug where GNU: is defined  is
+$! probably present.
+$!-------------------------------------------------------------------
+$bug_gnu = f$trnlnm("GNU")
+$if (save_gnu .eqs. "") .and. (bug_gnu .nes. "")
+$then
+$   save_gnu = bug_gnu
+$endif
+$!
+$!
+$! Set up local writeable root
+$!----------------------------
+$if save_gnu .nes. ""
+$then
+$!  Set up s search list of old and new
+$!----------------------------------------
+$   define old_gnu 'save_gnu'/job/trans=conc
+$   define gnv$gnu new_gnu:'jem_gnu',old_gnu:/job
+$   define sys$posix_root new_gnu:'jem_gnu',old_gnu:/job
+$else
+$!  No old GNU found, just set up a local directory.
+$!--------------------------------------------------
+$   define gnv$gnu new_gnu:,'jem_gnu'/job
+$   define sys$posix_root new_gnu:'jem_gnu'/job
+$endif
+$!
+$! Create the base of the directory tree
+$!--------------------------------------
+$create/dir new_gnu:[bin]/prot=o:rwed
+$create/dir new_gnu:[usr.bin]/prot=o:rwed
+$create/dir new_gnu:[usr.include]/prot=o:rwed
+$create/dir new_gnu:[usr.lib]/prot=o:rwed
+$create/dir new_gnu:[usr.local]/prot=o:rwed
+$create/dir new_gnu:[usr.share]/prot=o:rwed
+$!
+$! Do the stuff that should be in gnv$gnu:[lib]gnv_setup.com
+$!------------------------------------------------------------
+$bash :== $gnv$gnu:[bin]bash
+$!
+$if f$trnlnm("VI_SECTION") .eqs. ""
+$then
+$   define/job VI_SECTION GNV$GNU:[LIB]VI_SECTION.TPU$SECTION
+$endif
+
+~~~~~~~~~~~~~~~~
+
+
 This is a minimal LOGIN.COM file.  It is what I am using at the time that the this article is written.  I will likely be adding more to this file.
 
 This runs the above command file to set the rooted logical names like I have on other systems, and also fixes Perl to work on the cluster.
@@ -122,6 +265,15 @@
 $file :== "''sys_login_dev'[johnm]fixup_cluster_env.com"
 $if f$search(file) .nes. "" then @'file'
 $!
+$sys_login_dir = f$parse(sys_login,,,"DIRECTORY")
+$jem_gnv_root = ""
+$if sys_login_dir .nes. "[JOHNM]"
+$then
+$   jem_gnv_root = "JEM_GNV_ROOT"
+$endif
+$file :== "''sys_login_dev'[johnm]setup_local_gnv.com"
+$if f$search(file) .nes. "" then @'file' 'jem_gnv_root'
+$!
 $! Fix PERL to work
 $!-----------------
 $if f$trnlnm("PERL_ROOT") .eqs. ""
@@ -133,6 +285,7 @@
 $    define/job perlshr perl_root:[000000]perlshr.exe
 $endif
 $perl :== $perl_root:[000000]perl.exe
+$!
 $!
 $!
 $! Set up EVE to look like an enhanced TPU
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Malmberg</dc:creator><pubDate>Fri, 25 May 2012 03:59:17 -0000</pubDate><guid>https://sourceforge.neta4236b1977c72058d7e36f63be92f1548549864a</guid></item><item><title>WikiPage HpOpenSourceClusterInfo modified by John Malmberg</title><link>https://sourceforge.net/p/vms-ports/wiki/HpOpenSourceClusterInfo/</link><description>&lt;pre&gt;--- v2
+++ v3
@@ -1,5 +1,3 @@
-[Under construction]
-
 HP Open Source Cluster
 ======================
 
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Malmberg</dc:creator><pubDate>Thu, 24 May 2012 03:46:10 -0000</pubDate><guid>https://sourceforge.net1077842a832978286e738e31b6d4031e25d12187</guid></item><item><title>WikiPage HpOpenSourceClusterInfo modified by John Malmberg</title><link>https://sourceforge.net/p/vms-ports/wiki/HpOpenSourceClusterInfo/</link><description>&lt;pre&gt;--- v1
+++ v2
@@ -7,6 +7,18 @@
 
 This procedure can be run to set up logical names in the Job table to create
 the logical disks: **USER_ROOT:**, **SOURCE_ROOT:**, **WORK_ROOT:**, **ALPHA_ROOT**, and **IA64_ROOT**.
+
+* **USER_ROOT:** The location of the home directories for users.
+
+* **SOURCE_ROOT:** Location of reference source code.
+
+* **WORK_ROOT:** Location for projects that are being worked on.
+
+* **ALPHA_ROOT:** Location for binaries and build products for the Alpha node.
+
+* **IA64_ROOT:** Location for binaries and build products for the IA64 node.
+
+On the HP Open Source cluster, this file can be run from my login directory as with the sample LOGIN.COM file that follows:
 
 ~~~~~~~~~~~~~~~~~~~
 :::DCL
@@ -91,3 +103,47 @@
 $exit
 $endsubroutine
 ~~~~~~~~~~~~~~~~
+
+This is a minimal LOGIN.COM file.  It is what I am using at the time that the this article is written.  I will likely be adding more to this file.
+
+This runs the above command file to set the rooted logical names like I have on other systems, and also fixes Perl to work on the cluster.
+
+The last thing that it does is sets up the EVE editor to work with an EDT keyboard and extended with a number of functions.
+
+~~~~~~~~~~~~~~~~
+:::DCL
+$! Minimal login.com
+$!
+$! Special for the HP open source cluster.
+$!
+$!
+$! Make the cluster look like a typical VMS development environment
+$!--------------------------------------------------------------------
+$sys_login = f$trnlnm("SYS$LOGIN")
+$sys_login_dev = f$parse(sys_login,,,"DEVICE")
+$file :== "''sys_login_dev'[johnm]fixup_cluster_env.com"
+$if f$search(file) .nes. "" then @'file'
+$!
+$! Fix PERL to work
+$!-----------------
+$if f$trnlnm("PERL_ROOT") .eqs. ""
+$then
+$    define/job/trans=concealed perl_root sys$sysdevice:[vms$common.perl5_8_6.]
+$endif
+$if f$trnlnm("PERLSHR") .eqs. ""
+$then
+$    define/job perlshr perl_root:[000000]perlshr.exe
+$endif
+$perl :== $perl_root:[000000]perl.exe
+$!
+$!
+$! Set up EVE to look like an enhanced TPU
+$!-------------------------------------------
+$file = "user_root:[johnm.tpu]malmberg.tpu$section"
+$if f$search(file) .nes. "" then define/job tpu$section 'file'
+$!
+$if f$mode() .eqs. "INTERACTIVE"
+$then
+$   eve :== edit/tpu
+$endif
+~~~~~~~~~~~~~~~~
&lt;/pre&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Malmberg</dc:creator><pubDate>Thu, 24 May 2012 03:45:42 -0000</pubDate><guid>https://sourceforge.neta31072596725bb33253a9785b7a422b0c6b25bfe</guid></item><item><title>WikiPage HpOpenSourceClusterInfo modified by John Malmberg</title><link>https://sourceforge.net/p/vms-ports/wiki/HpOpenSourceClusterInfo/</link><description>[Under construction]

HP Open Source Cluster
======================

HP has set up an [Open Source VMS Cluster](http://www.openvms.org/stories.php?story=10/06/02/1513268) for development.  This cluster has basically just been set up with the software installed, but has not been set up with the concealed rooted logical names for the disk space, so developers need to set up an environment to match their needs.

This procedure can be run to set up logical names in the Job table to create
the logical disks: **USER_ROOT:**, **SOURCE_ROOT:**, **WORK_ROOT:**, **ALPHA_ROOT**, and **IA64_ROOT**.

~~~~~~~~~~~~~~~~~~~
:::DCL
$! File: FIXUP_CLUSTER_ENV.COM
$!
$! Fix up the open source cluster for development.
$!
$! Example code that can be freely distributed.
$!
$! 23-May-2012  J. Malmberg
$!=============================================================================
$!
$! Get the home directory.
$!--------------------------------
$sys_login = f$trnlnm("SYS$LOGIN")
$sys_login_dev = f$parse(sys_login,,,"DEVICE")
$sys_login_dir = f$parse(sys_login,,,"DIRECTORY")
$fulldevnam = f$getdvi("SYS$LOGIN:", "FULLDEVNAM") - "_"
$!
$!write sys$output "fulldevnam = ''fulldevnam' sys_login_dev = ''sys_login_dev'"
$if fulldevnam .eqs. sys_login_dev
$then
$!  default is a physical device name?
$!  Replace it.
$!-------------
$   if f$trnlnm("user_root") .eqs. ""
$   then
$       define/job/trans=(concealed,terminal) user_root 'fulldevnam'
$   endif
$   define/job sys$login user_root:'sys_login_dir'
$endif
$!
$! Find out what our default directory is.
$!-------------------------------------------
$default = f$environment("default")
$default_dev = f$parse(default,,,"DEVICE")
$default_dir = f$parse(default,,,"DIRECTORY")
$!write sys$output "fulldevnam = ''fulldevnam' default_dev = ''default_dev'"
$if default_dev .eqs. fulldevnam
$then
$!   Need it to be a logical name
$!-------------------------------
$    set default sys$login:
$endif
$!
$!
$! Now set up the work roots
$!---------------------------
$set default sys$login:
$delim = f$extract(f$length(sys_login_dir) - 1, 1, sys_login_dir)
$dir_root = sys_login_dir - delim
$!
$! Reference Source
$!---------------------
$call mkroot "source_root"
$!
$! VMS common files
$!------------------
$call mkroot "work_root"
$!
$! Node specific files
$!-------------------------
$call mkroot "alpha_root"
$call mkroot "ia64_root"
$!
$!
$exit
$!
$!
$! Subroutine to make sure that a root directory and logical name
$! exists.
$mkroot: subroutine
$name = p1
$if f$search("''name'.dir") .eqs. ""
$then
$   create/dir [.'name']
$endif
$if f$trnlnm(name) .eqs. ""
$then
$   define/job/trans=conc 'name' 'fulldevnam''dir_root'.'name'.'delim'
$endif
$exit
$endsubroutine
~~~~~~~~~~~~~~~~</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Malmberg</dc:creator><pubDate>Wed, 23 May 2012 23:58:25 -0000</pubDate><guid>https://sourceforge.net6223c57a899a9bb360eeb8c3e36db160219dc522</guid></item></channel></rss>