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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
91ba515e
Commit
91ba515e
authored
Feb 07, 2005
by
mwagner@here.mwagner.org
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Do-solaris-pkg:
Perl script to create Solaris installation packages.
parent
b97a519d
Changes
1
Show 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 @
91ba515e
#!/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