1#!/usr/bin/perl 2 3# This perl script generates the samba.spec file based on the version 4# information in the version.h file in the source tree 5 6open (VER,'../../source/include/version.h') || die "Unable to open version.h\n"; 7while ( <VER> ) { 8 chomp; 9 if ( /SAMBA_VERSION_OFFICIAL_STRING/ ) { 10 s/^.*SAMBA_VERSION_OFFICIAL_STRING "//; 11 s/".*$//; 12 $SambaVersion = $_; 13 } 14} 15close (VER); 16 17# create the package name 18$vername = " id \"Samba Version ".$SambaVersion."\"\n"; 19 20$_ = $SambaVersion; 21s/^.* //; 22$patch = 0; 23#create the subsystem version numbers 24if (/alpha/) { 25 $_ =~ s/alpha/.00./; 26} 27elsif (/-HEAD/) { 28 $_ =~ s/-HEAD/.01/; 29 $_ .= '.99'; 30} 31elsif (/pre-/) { 32 $_ =~ s/pre-//; 33 $_ .= '.00'; 34} 35elsif (/p/) { 36 $_ =~ s/p/./; 37 $_ .= '.00'; 38 $patch = 1; 39} 40else { 41 $_ .='.01.00'; 42} 43 44($v1,$v2,$v3,$v4,$v5) = split('\.'); 45$v4 = $v4 + $patch; 46$vernum = sprintf(" version %02d%02d%02d%02d%02d\n",$v1,$v2,$v3,$v4,$v5); 47 48# generate the samba.spec file 49open(SPEC,">samba.spec") || die "Unable to open samba.spec for output\n"; 50print SPEC "product samba\n"; 51print SPEC $vername; 52print SPEC " image sw\n"; 53print SPEC " id \"Samba Execution Environment\"\n"; 54print SPEC $vernum; 55print SPEC " order 0\n"; 56print SPEC " subsys base default\n"; 57print SPEC " id \"Samba Execution Environment\"\n"; 58print SPEC " replaces fw_samba.sw.base 0 9999999999\n"; 59print SPEC " replaces fw_samba.sw.samba 0 9999999999\n"; 60print SPEC " exp samba.sw.base\n"; 61print SPEC " endsubsys\n"; 62print SPEC " endimage\n"; 63print SPEC " image man\n"; 64print SPEC " id \"Samba Online Documentation\"\n"; 65print SPEC $vernum; 66print SPEC " order 1\n"; 67print SPEC " subsys manpages default\n"; 68print SPEC " id \"Samba Man Page\"\n"; 69print SPEC " replaces fw_samba.man.manpages 0 9999999999\n"; 70print SPEC " replaces fw_samba.man.samba 0 9999999999\n"; 71print SPEC " exp samba.man.manpages\n"; 72print SPEC " endsubsys\n"; 73print SPEC " subsys doc default\n"; 74print SPEC " id \"Samba Documentation\"\n"; 75print SPEC " replaces fw_samba.man.doc 0 9999999999\n"; 76print SPEC " exp samba.man.doc\n"; 77print SPEC " endsubsys\n"; 78print SPEC " subsys relnotes default\n"; 79print SPEC " id \"Samba Release Notes\"\n"; 80print SPEC " replaces fw_samba.man.relnotes 0 9999999999\n"; 81print SPEC " exp samba.man.relnotes\n"; 82print SPEC " endsubsys\n"; 83print SPEC " endimage\n"; 84print SPEC " image src\n"; 85print SPEC " id \"Samba Source Code\"\n"; 86print SPEC $vernum; 87print SPEC " order 2\n"; 88print SPEC " subsys samba\n"; 89print SPEC " id \"Samba Source Code\"\n"; 90print SPEC " replaces fw_samba.src.samba 0 9999999999\n"; 91print SPEC " exp samba.src.samba\n"; 92print SPEC " endsubsys\n"; 93print SPEC " endimage\n"; 94print SPEC "endproduct\n"; 95close SPEC || die "Error on close of samba.spec\n"; 96 97print "\nsamba.spec file has been created\n\n"; 98