Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
b19ff40d
Commit
b19ff40d
authored
Feb 07, 2005
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Do-solaris-pkg:
Perl script to create Solaris installation packages.
parent
18dcc5dd
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
180 additions
and
0 deletions
+180
-0
Build-tools/Do-solaris-pkg
Build-tools/Do-solaris-pkg
+180
-0
No files found.
Build-tools/Do-solaris-pkg
0 → 100644
View file @
b19ff40d
#!/usr/bin/perl
#
# Script to create Solaris packages
#
$INTERACTIVE
=
0
;
$find
=
"
/usr/bin/find
";
$pkgproto
=
"
/usr/bin/pkgproto
";
$pkgmk
=
"
/usr/bin/pkgmk -o
";
$pkgtrans
=
"
/usr/bin/pkgtrans
";
$temp
=
"
/tmp/prototype$$
";
$prototype
=
"
prototype
";
$pkginfo
=
"
pkginfo
";
(
$gid
,
$pkg
,
$uid
,
$userInfo
,
$email
,
$quota
,
$group
,
$passwd
,
$category
,
$userHome
,
$vendor
,
$loginShell
,
$pstamp
,
$basedir
)
=
();
$fullname
=
shift
@ARGV
;
$fullname
or
die
"
No package name was specified
";
-
d
$fullname
or
die
"
That directory is not present!
";
$fullname
=~
s,/+$,,
;
# Remove ending slash if any
$pkgdir
=
`
cd ../pkgs; pwd
`;
$pwd
=
`
pwd
`;
if
(
$pwd
=~
'
\
/usr
\
/local
')
{
$pwd
=
$`
;
}
die
"
Wrong location, please cd to <PKGBASE>/usr/local/ and run again.
\n
"
if
(
$pwd
eq
"");
system
("
$find
. -print |
$pkgproto
>
$temp
");
open
(
PREPROTO
,"
<
$temp
")
or
die
"
Unable to read prototype information ($!)
\n
";
open
(
PROTO
,"
>
$prototype
")
or
die
"
Unable to write file prototype ($!)
\n
";
print
PROTO
"
i pkginfo=./
$pkginfo
\n
";
while
(
<
PREPROTO
>
)
{
# Read the prototype information from /tmp/prototype$$
chomp
;
$thisline
=
$_
;
if
(
$thisline
=~
"
prototype
"
or
$thisline
=~
"
pkginfo
")
{
# We don't need that line
}
elsif
(
$thisline
=~
"
^[fd]
")
{
# Change the ownership for files and directories
(
$dir
,
$none
,
$file
,
$mode
,
$user
,
$group
)
=
split
/ /
,
$thisline
;
print
PROTO
"
$dir
$none
$file
$mode
bin bin
\n
";
}
else
{
# Symlinks and other stuff should be printed as well ofcourse
print
PROTO
"
$thisline
\n
";
}
}
close
PROTO
;
close
PREPROTO
;
# Clean up
unlink
$temp
or
warn
"
Unable to remove tempfile ($!)
\n
";
# Now we can start building the package
#
# First get some info
$fullname
=~
/^((mysql)-.+)-([\d\.]+)-.+$/
or
die
"
This name is not what I expected -
\"
$fullname
\"
";
$default
{"
name
"}
=
$2
;
$default
{"
version
"}
=
$3
;
$default
{"
pkg
"}
=
$1
;
$default
{"
arch
"}
=
`
uname -m
`;
chomp
$default
{"
arch
"};
$default
{"
category
"}
=
"
application
";
$default
{"
vendor
"}
=
"
MySQL AB
";
$default
{"
email
"}
=
"
build
\
@mysql
.com
";
$default
{"
pstamp
"}
=
"
MySQL AB Build Engineers
";
$os
=
`
uname -r
`;
$os
=~
'
\
.
';
$os
=
"
sol$'
";
chomp
$os
;
$default
{"
basedir
"}
=
"
/usr/local
";
$default
{"
packagename
"}
=
$fullname
;
# Check for correctness of guessed values by userinput
%
questions
=
(
pkg
=>
"
Please give the name for this package
",
name
=>
"
Now enter the real name for this package
",
arch
=>
"
What architecture did you build the package on?
",
version
=>
"
Enter the version number of the package
",
category
=>
"
What category does this package belong to?
",
vendor
=>
"
Who is the vendor of this package?
",
email
=>
"
Enter the email adress for contact
",
pstamp
=>
"
Enter your own name
",
basedir
=>
"
What is the basedir this package will install into?
",
packagename
=>
"
How should I call the packagefile?
",
);
@vars
=
qw(pkg name arch version category vendor email pstamp basedir
packagename)
;
foreach
$varname
(
@vars
)
{
getvar_noq
(
$varname
);
}
if
(
$INTERACTIVE
)
{
while
(
!&
chkvar
())
{
print
"
\n
";
foreach
$varname
(
@vars
)
{
getvar
(
$varname
);
}
@vars
=
qw(pkg name arch version category vendor email pstamp basedir
packagename)
;
}
}
$classes
=
"
none
";
# Create the pkginfo file
print
"
\n
Now creating
$pkginfo
file
\n
";
open
(
PKGINFO
,"
>
$pkginfo
")
||
die
"
Unable to open
$pkginfo
for writing ($!)
\n
";
print
PKGINFO
"
PKG=
\"
$pkg
\"\n
";
print
PKGINFO
"
NAME=
\"
$name
\"\n
";
print
PKGINFO
"
ARCH=
\"
$arch
\"\n
";
print
PKGINFO
"
VERSION=
\"
$version
\"\n
";
print
PKGINFO
"
CATEGORY=
\"
$category
\"\n
";
print
PKGINFO
"
VENDOR=
\"
$vendor
\"\n
";
print
PKGINFO
"
EMAIL=
\"
$email
\"\n
";
print
PKGINFO
"
PSTAMP=
\"
$pstamp
\"\n
";
print
PKGINFO
"
BASEDIR=
\"
$basedir
\"\n
";
print
PKGINFO
"
CLASSES=
\"
$classes
\"\n
";
close
PKGINFO
;
print
"
Done.
\n
";
# Build and zip the package
print
"
Building package
\n
";
system
("
$pkgmk
-r `pwd`
");
system
("
(cd /var/spool/pkg;
$pkgtrans
-s -o `pwd` /tmp/
$packagename
$pkg
)
");
system
("
gzip /tmp/
$packagename
");
# Clean-up the spool area
system
("
(cd /var/spool/pkg; rm -rf
$pkg
)
");
unlink
$pkginfo
;
unlink
$prototype
;
system
("
mv /tmp/
${packagename}
.gz
$pkgdir
");
print
"
Done. (~/packaging/pkgs/
$packagename
.gz)
\n
";
# The subroutines
sub
chkvar
{
print
"
\n
";
print
"
PKG=
$pkg
\n
";
print
"
NAME=
$name
\n
";
print
"
ARCH=
$arch
\n
";
print
"
VERSION=
$version
\n
";
print
"
CATEGORY=
$category
\n
";
print
"
VENDOR=
$vendor
\n
";
print
"
EMAIL=
$email
\n
";
print
"
PSTAMP=
$pstamp
\n
";
print
"
BASEDIR=
$basedir
\n
";
print
"
PACKAGENAME=
$packagename
\n
";
print
"
\n
Is this information correct? [Y/n]:
";
my
$answer
=
<
STDIN
>
;
chomp
$answer
;
$answer
=
'
Y
'
if
(
$answer
eq
"");
$answer
=
uc
$answer
;
my
$res
=
(
$answer
eq
'
Y
')?
1
:
0
;
return
(
$res
);
}
sub
getvar_noq
{
my
$questionname
=
"
@_
";
$$questionname
=
$default
{
$questionname
};
}
sub
getvar
{
my
$questionname
=
"
@_
";
my
$ucquestionname
=
uc
$questionname
;
print
"
$ucquestionname
:
$questions
{
$questionname
} [
$default
{
\"
$questionname
\"
}]:
";
my
$answer
=
<
STDIN
>
;
chomp
$answer
;
$$questionname
=
$answer
;
$$questionname
=
$default
{
$questionname
}
if
(
$$questionname
eq
"");
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment