@@ -72,3 +72,170 @@ and the name as (depending on your mood):
7272[ Documentation/SubmittingPatches ] : Documentation/SubmittingPatches
7373[ Documentation/CodingGuidelines ] : Documentation/CodingGuidelines
7474[ po/README.md ] : po/README.md
75+
76+ # VSI Git Build and Installation Guide
77+
78+ ### Overview
79+ The ** IA64** system is used to build the VSI Git project for both ** IA64** and ** X86** architectures.
80+ For the ** X86** build, a ** cross-compiler** is used, and the build process is managed with ** GNU/GNV make** .
81+
82+ ---
83+
84+ ### Build Preconditions
85+ To verify that the correct versions of ** GNV** and ** SSL** are installed, execute the following commands:
86+ ``` bash
87+ $ PROD SHOW PROD * GNV*
88+ $ PROD SHOW PROD * SSL3*
89+ ```
90+ Ensure the following versions (or higher) are installed:
91+
92+ - ** GNV** * V3.0-2*
93+ - ** SSL** * V3.0-15 or later*
94+
95+ ### X86 Requirements
96+ To verify that ` SYS$LIBRARY:NATTABLES.EXE ` is correctly set on your system, execute
97+ the following commands:
98+ ``` bash
99+ $ MCR AUTHORIZE MODIFY < USERNAME> /CLITABLES=SYS$LIBRARY :NATTABLES.EXE
100+ $ Re-Login
101+ ```
102+
103+ ### Initialization
104+ To properly initialize the build environment, the following command should be executed
105+ before running the make command:
106+ ``` bash
107+ $ SET PROCESS/PARSE_STYLE=EXTENDED
108+ $ DEFINE DECC$FILENAME_UNIX_NO_VERSION ENABLE
109+ $ DEFINE DECC$ARGV_PARSE_STYLE ENABLE
110+ $ DEFINE DECC$EFS_CHARSET ENABLE
111+ $ DEFINE OPENSSL " SSL3$INCLUDE :"
112+ $ DEFINE DECC$TEXT_LIBRARY SYS$LIBRARY :SYS$LIB_C .TLB
113+ $ @GNU:[LIB]GNV_SETUP.COM
114+ ```
115+
116+ ### Additional Initialization for * Cross-Build X86*
117+ ``` bash
118+ $ DEFINE DECC$TEXT_LIBRARY " X86$LIBRARY :SYS$LIB_C .TLB"
119+ $ DEFINE X86$LIBRARY_ADD < This should refer to appropriate libs like: LIBEXPAT.OLB, LIBZ64.OLB, SSL3$LIBCRYPTO_SHR .EXE, SSL3$LIBSSL_SHR .EXE>
120+ $ @SYS$STARTUP :X86_XTOOLS$SYLOGIN .COM
121+ ```
122+
123+ ### Build Steps
124+ To run the build procedure and create the installation ** kit** , follow these steps:
125+ #### 1. Navigate to Your Git Project Directory
126+ ``` bash
127+ $ SET DEFAULT < GIT_PROJECT_DIRECTORY>
128+ ```
129+ #### 2. Navigate to the VMS Subdirectory
130+ ``` bash
131+ $ SET DEFAULT [.VMS]
132+ ```
133+ #### 3. Run the Build Script
134+ Execute the build script to build the project and create the ** kit** .
135+ For the first build, you ** must** use the ** -C** flag to perform a clean build.
136+ ``` bash
137+ @BUILDALL.COM < ARCHITECTURE_NAME> < FLAG>
138+ ```
139+
140+ ---
141+
142+ ### Alternative Build Method
143+
144+ You can also build and create the installation ** kit** manually ** without using** the * BUILDALL.COM* script.
145+ Here are the steps for doing it manually:
146+
147+ #### 1. X86 Systems Specific
148+ For X86 systems, you must change ` /CLITABLES ` to ` SYS$LIBRARY:NATTABLES.EXE ` .
149+ ``` bash
150+ $ MCR AUTHORIZE MODIFY < USER_NAME> /CLITABLES=SYS$LIBRARY :NATTABLES.EXE
151+ $ Re-Login
152+ ```
153+ #### 2. Initialization
154+ Before starting the build, make sure you have completed all environment setup commands from the ** Initialization** section above.
155+ For ** X86 cross-builds** , also perform the steps in ** Additional Initialization for * Cross-Build X86*** .
156+
157+ #### 3. Navigate to Your Git Project Directory
158+ ``` bash
159+ $ SET DEFAULT < GIT_PROJECT_DIRECTORY>
160+ ```
161+ #### 4. Switch to Bash
162+ ``` bash
163+ $ @SYS$STARTUP :GNV$SETUP
164+ $ BASH
165+ ```
166+ Within Bash:
167+ ``` bash
168+ BASH-4.3$ vms/config.sh < platform architecture, native by default>
169+ ```
170+ #### 5. Navigate to Build Folder Depending on the architecture, the build folder will vary (* e.g., IA64_build for IA64* ):
171+ ``` bash
172+ BASH-4.3$ cd < build_folder>
173+ ```
174+ #### 6. Run the Make Command
175+ ``` bash
176+ BASH-4.3$ make
177+ ```
178+ Exit Bash:
179+ ``` bash
180+ BASH-4.3$ exit
181+ ```
182+
183+ ### Restore /CLITABLES After Build X86
184+ To restore the ` /CLITABLES ` , you can use the following commands:
185+ ``` bash
186+ $ MCR AUTHORIZE MODIFY < USERNAME> /CLITABLES=DCLTABLES
187+ $ Re-Login
188+ ```
189+
190+ ### Creating An Installation Kit
191+ - Copy Executables
192+ ``` bash
193+ $ COPY [.< BUILD_PLATFORM> ]* .EXE; [-.VMS.KIT.< BUILD_PLATFORM> ]
194+ ```
195+ - To Create the Installation Kit for ** IA64**
196+ ``` bash
197+ $ PRODUCT PACKAGE GIT/SOURCE=[-.VMS.KIT.IA64]VSI-I64VMS-GIT-V0244-1B-1.PCSI$DESC /DESTINATION=< PATH_TO_KIT> /OPT=NOCONFIRM /FORMAT=SEQUENTIAL /MATERIAL=< DESTINATION_FOR_FILES...>
198+ ```
199+ - To Create the Installation Kit for ** X86**
200+ ``` bash
201+ $ PRODUCT PACKAGE /BASE=X86VMS GIT/SOURCE=[-.VMS.KIT.X86_64]VSI-X86VMS-GIT-V0244-1B-1.PCSI$DESC /DESTINATION=< PATH_TO_KIT> /OPT=NOCONFIRM /FORMAT=SEQUENTIAL /MATERIAL=< DESTINATION_FOR_FILES...>
202+ ```
203+
204+ ---
205+
206+ ### Installation
207+ ``` bash
208+ $ PRODUCT INSTALL GIT /SOURCE=< PATH WITH KIT>
209+ ```
210+
211+ ### Remove Product
212+ ``` bash
213+ $ PRODUCT REMOVE GIT
214+ ```
215+
216+ ---
217+
218+ ### Pre-Requisites for Using VSI Git
219+ Before starting with VSI Git, please complete the following steps:
220+ #### 1. If the CA Certificate is Invalid:
221+ ``` bash
222+ $ DEFINE GIT_SSL_NO_VERIFY 1
223+ ```
224+ #### 2. Set Process Parsing Style to Extended:
225+ ``` bash
226+ $ SET PROCESS/PARSE_STYLE=EXTENDED
227+ ```
228+ #### 3. Set Terminal Inquiry:
229+ ``` bash
230+ $ SET TERMINAL/INQUIRE
231+ ```
232+
233+ ### Restrictions
234+ - Repositories and your login directory must be on an ** ODS-5** file system.
235+ - If multiple versions of the same file are within the Git directory, it is necessary to purge the directory before using Git commands such as ` stash ` , ` checkout ` , ` merge ` , etc. This helps avoid conflicts or errors during these operations.
236+ - VSI Git currently supports only ** Unix-like** paths.
237+
238+ ### Performance Notes
239+
240+ For better performance when working with large repositories containing many files, it is recommended to adjust the ` core.packedGitWindowSize ` configuration value.
241+ Setting this value to ** 1 MiB** (or ** 32 MiB** ) significantly improves performance.
0 commit comments