openbsd-ports/devel/tklib/patches/patch-installer_tcl
stu e81b7f5a62 Update to 0.6pl2.
Install improvements.
Patches went upstream.
2015-06-05 20:36:46 +00:00

169 lines
5.4 KiB
Plaintext

$OpenBSD: patch-installer_tcl,v 1.6 2015/06/05 20:36:46 stu Exp $
Install everything nicely.
Generate tcllib.n.
--- installer.tcl.orig Wed Apr 22 06:49:59 2015
+++ installer.tcl Thu Jun 4 01:43:54 2015
@@ -84,16 +84,24 @@ if {![package vsatisfies [package provide Tcl] 8.0]} {
proc xcopyfile {src dest} {
# dest can be dir or file
+ if {[file isdirectory $dest]} {
+ set dest [file join $dest [file tail $src]]
+ }
+ log "Installing $src to $dest"
run file copy -force $src $dest
+ file attributes $dest -permissions 0o444
return
}
proc xcopy {src dest recurse {pattern *}} {
+ log "Making directory $dest"
run file mkdir $dest
+ file attributes $dest -permissions 0o755
if {[string equal $pattern *] || !$recurse} {
foreach file [glob [file join $src $pattern]] {
set base [file tail $file]
+ if {$base eq "ChangeLog" || [file extension $base] in {.orig .beforesubst}} { continue }
set sub [file join $dest $base]
if {0 == [string compare CVS $base]} {continue}
@@ -144,6 +152,7 @@ proc write_out {f text} {
catch {file delete -force $f}
puts -nonewline [set of [open $f w]] $text
close $of
+ file attributes $f -permissions 0o444
}
@@ -184,7 +193,6 @@ proc run {args} {
return -code error "Install error:\n $msg"
}
}
- log* .
return
}
@@ -209,18 +217,23 @@ proc ainstall {} {
set aexe [file join $distribution apps $a]
set adst [file join $config(app,path) ${a}$ext]
- log "\nGenerating $adst"
- if {!$config(dry)} {
- file mkdir [file dirname $adst]
- catch {file delete -force $adst}
- file copy -force $aexe $adst
+ if {![file exists $config(app,path)]} {
+ log "Making directory $config(app,path)"
+ run file mkdir $config(app,path)
+ file attributes $config(app,path) -permissions 0o755
}
+ _exafile $aexe $adst
+ if {[file exists $aexe.man]} {
+ set fn [file tail $aexe].n
+ _manfile [file join $distribution embedded man files apps $fn] [file join $config(doc,nroff,path) $fn]
+ }
}
return
}
proc doinstall {} {
global config package_version distribution package_name modules excluded
+ global pkgs
if {!$config(no-exclude)} {
foreach p $excluded {
@@ -230,26 +243,35 @@ proc doinstall {} {
}
}
+ array set pkgs [exec [info nameofexecutable] [file join $distribution sak.tcl] provided]
+
if {$config(doc,nroff)} {
set config(man.macros) [string trim [get_input \
[file join $distribution support installation man.macros]]]
}
if {$config(pkg)} {
xinstall pkg $config(pkg,path)
- gen_main_index $config(pkg,path) $package_name $package_version
}
- if {$config(doc,nroff)} {
+ if 0 {
foreach dir [glob -directory $distribution/embedded/man/files/modules *] {
xcopy $dir $config(doc,nroff,path) 1
}
xcopy $distribution/embedded/man/files/apps $config(doc,nroff,path) 1
}
+ xinstall doc [file join $distribution embedded man files modules] $config(doc,nroff,path)
+ foreach module {mentry tablelist wcb} {
+ set srcdir [file join $distribution modules $module]
+ set dstdir [file join $config(csb) $module]
+ xcopy $srcdir $dstdir 0 *.txt
+ xcopy [file join $srcdir doc] $dstdir 0 *
+ }
if {$config(doc,html)} {
#xinstall doc html html $config(doc,html,path)
xcopy $distribution/embedded/www $config(doc,html,path) 1
}
- if {$config(exa)} {xinstall exa $config(exa,path)}
+ if {$config(exa)} {xinstall exa [file join $distribution examples] $config(exa,path)}
if {$config(app)} {ainstall}
+ mkindex
log ""
return
}
@@ -511,6 +533,10 @@ proc processargs {} {
set config(exa,path) [lindex $argv 1]
set argv [lrange $argv 1 end]
}
+ -csb - -descr - -mp - -tclsh - -wish {
+ set config([string range [lindex $argv 0] 1 end]) [lindex $argv 1]
+ set argv [lrange $argv 1 end]
+ }
-help -
default {
puts stderr "usage: $argv0 ?-dry-run/-simulate? ?-no-wait? ?-no-gui? ?-html|-no-html? ?-nroff|-no-nroff? ?-examples|-no-examples? ?-pkgs|-no-pkgs? ?-pkg-path path? ?-apps|-no-apps? ?-app-path path? ?-nroff-path path? ?-html-path path? ?-example-path path?"
@@ -566,6 +592,40 @@ proc wait {} {
exit 0
}
return
+}
+
+proc mkindex {} {
+ global config package_name package_version modinfos
+ package require doctools
+
+ set modinfos [lsort -dictionary -index 0 $modinfos]
+
+ set title [expr {[string index $package_name 1] eq "k" ? "Tk" : "Tcl"}]
+ append title " Standard Library"
+
+ set mp ""
+ append mp {[comment {-*- tcl -*- doctools manpage}]}
+ append mp "\[manpage_begin $package_name n $package_version\]"
+ append mp "\[titledesc {$title}\]"
+ append mp "\[moddesc {$title}\]"
+
+ append mp {[description]} \n $config(descr)
+
+ append mp {[section MODULES] [list_begin options]}
+ foreach mi $modinfos {
+ set s "\[opt_def {[lindex $mi 0]} [string map {& ""} [lindex $mi 1]]\]"
+ append mp $s [string map {\\& "" [ [lb] ] [rb] \\fI "" \\fR ""} " [lindex $mi 2] - [lindex $mi 3]"]
+ }
+ append mp {[list_end]}
+
+ append mp {[manpage_end]}
+
+ set fn [file join $config(doc,nroff,path) $package_name.n]
+ log "Installing $package_name.n to $fn"
+ set f [open $fn w]
+ puts -nonewline $f [[::doctools::new mp -format nroff] format $mp]
+ close $f
+ file attributes $fn -permissions 0o444
}
# --------------------------------------------------------------