50a4cda60c
They can be either compiled in or modular. If our case is the latter we want them packaged as well.
178 lines
4.1 KiB
Bash
Executable file
178 lines
4.1 KiB
Bash
Executable file
#! /bin/sh
|
|
|
|
# Copyright (C) 2010-2011 Peter de Ridder <peter@xfce.org>
|
|
# Copyright (C) 2012 Paweł Forysiuk <tuxator@o2.pl>
|
|
#
|
|
# This library is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2.1 of the License, or (at your option) any later version.
|
|
#
|
|
# See the file COPYING for the full license text.
|
|
|
|
# script: makedist.midori [version tag]
|
|
#
|
|
# This script creates an archive containing all required files for
|
|
# midori on windows. The midori version is inserted in the name of
|
|
# the archive and appended to the name of the root directory in the
|
|
# archive.
|
|
# The name of the archive is contructed as follows:
|
|
# midori<version tag>-<timestamp>.extension
|
|
# The archive contains a root directory named:
|
|
# midori<version tag>
|
|
|
|
# a bit of configuration
|
|
root_dir=$MINGW_PREFIX
|
|
|
|
if [ "$MINGW_PREFIX" == "" ]; then
|
|
echo "Warning! MINGW_PREFIX variable is empty!"
|
|
sleep 5s
|
|
fi
|
|
|
|
# create temporary working directory
|
|
temp_dir=`mktemp -d`
|
|
|
|
# check if we can use 7zip
|
|
have_7zip=`which 7za`
|
|
|
|
if [ "$1" != "" ]; then
|
|
version_tag=$1
|
|
fi
|
|
|
|
# generate unique filename
|
|
if [ "$have_7zip" != "" ]; then
|
|
ARCHIVE=midori$version_tag-`date +%Y%m%d%H%M`.7z
|
|
else
|
|
ARCHIVE=midori$version_tag-`date +%Y%m%d%H%M`.zip
|
|
fi
|
|
|
|
# function: dll-recursive <list of exe and dll files ...>
|
|
#
|
|
# recursively search all dll dependencies of the input files.
|
|
# The resulting list of dll files including the input files is
|
|
# printed to stdout.
|
|
dll_recursive ()
|
|
{
|
|
temp_file_new=`mktemp`
|
|
temp_file_old=`mktemp`
|
|
|
|
while [ "$1" ]
|
|
do
|
|
echo $1 >> $temp_file_new
|
|
shift
|
|
done
|
|
|
|
while [ "x`sha1sum - < $temp_file_new`" != "x`sha1sum - < $temp_file_old`" ]
|
|
do
|
|
files=`cat $temp_file_new $temp_file_old | sort | uniq -u`
|
|
cp $temp_file_new $temp_file_old
|
|
strings $files 2> /dev/null | grep \\.dll | cat - $temp_file_old | sort | uniq > $temp_file_new
|
|
done
|
|
|
|
cat $temp_file_new
|
|
|
|
rm $temp_file_new $temp_file_old
|
|
}
|
|
|
|
grab_files ()
|
|
{
|
|
local dir="$1"
|
|
pushd $root_dir > /dev/null
|
|
shift
|
|
while [ "$1" ]; do
|
|
find $dir "(" -name "$1" ")" -prune -exec mkdir -p $workdir/{} ";" -exec rmdir --ignore-fail-on-non-empty $workdir/{} ";" -exec cp -r {} $workdir/{} ";"
|
|
shift
|
|
done
|
|
popd > /dev/null
|
|
}
|
|
|
|
echo -n "Creating $ARCHIVE ."
|
|
|
|
# create destination folder
|
|
workdir=$temp_dir/midori$version_tag
|
|
mkdir $workdir
|
|
|
|
echo -n .
|
|
|
|
# auto generate dll list, only of existing files
|
|
pushd $root_dir/bin > /dev/null
|
|
dll_recursive midori*.exe gspawn-*-helper*.exe libhunspell*.dll > $temp_dir/midori.exe.lst
|
|
dll_recursive ../lib/gio/modules/*.dll >> $temp_dir/midori.exe.lst
|
|
files=`ls | cat - $temp_dir/midori.exe.lst | sort | uniq -d`
|
|
rm $temp_dir/midori.exe.lst
|
|
popd > /dev/null
|
|
|
|
echo -n .
|
|
|
|
# copy auto generate dll list
|
|
pushd $root_dir/bin > /dev/null
|
|
mkdir $workdir/bin
|
|
cp $files $workdir/bin
|
|
popd > /dev/null
|
|
|
|
echo -n .
|
|
|
|
# copy etc
|
|
grab_files etc midori
|
|
grab_files etc gtkrc
|
|
|
|
echo -n .
|
|
|
|
# copy lib
|
|
grab_files lib midori
|
|
grab_files lib gtk-2.0
|
|
grab_files lib engines
|
|
|
|
grab_files lib enchant
|
|
grab_files lib gio
|
|
|
|
# Fedora ships on-demand pango modules, check just in case
|
|
grab_files lib pango
|
|
|
|
echo -n .
|
|
|
|
# copy share
|
|
grab_files share midori
|
|
grab_files share icons
|
|
grab_files share MS-Windows
|
|
grab_files share mime
|
|
|
|
grab_files share webkitgtk-1.0
|
|
|
|
# copy locales for gtk
|
|
# so we have translated stock items, file dialogs
|
|
|
|
find share "(" -name "midori.mo" ")" > $temp_dir/locale.list
|
|
mkdir -p $workdir/share/locale/
|
|
for LOCALE in $(cat locale.list); do
|
|
LOCALE=$(echo $LOCALE|awk -F/ '{print $3}')
|
|
cp /usr/share/locale/$LOCALE/LC_MESSAGES/gtk20.mo $workdir/share/locale/$LOCALE/LC_MESSAGES/
|
|
done
|
|
rm $temp_dir/locale.list
|
|
popd > /dev/null
|
|
|
|
echo -n .
|
|
|
|
# copy doc files to root
|
|
cp $workdir/share/doc/midori/{COPYING,AUTHORS} $workdir
|
|
|
|
echo -n .
|
|
|
|
ARCHIVE=`pwd`/$ARCHIVE
|
|
|
|
# store as zip/7z file
|
|
pushd $temp_dir > /dev/null
|
|
if [ "$have_7zip" != "" ]; then
|
|
7za a -m0=lzma $ARCHIVE midori$version_tag
|
|
else
|
|
zip -rq $ARCHIVE midori$version_tag
|
|
fi
|
|
popd > /dev/null
|
|
|
|
echo -n .
|
|
|
|
# remove working directory
|
|
rm -r $temp_dir
|
|
|
|
echo " ready"
|
|
|