mirror of
https://gitdl.cn/https://github.com/chakralinux/lib32.git
synced 2025-02-14 12:19:04 +08:00
lib32-qt: clean up old patches
- remove scripts from package directory
This commit is contained in:
parent
dc813d4f1a
commit
b8dc6cdb32
@ -9,7 +9,7 @@ license=('GPL3' 'LGPL')
|
||||
depends=(lib32-{fontconfig,sqlite3,alsa-lib,glib2,dbus-core,openssl,gstreamer,gst-plugins-base}
|
||||
lib32-lib{png,tiff,mng,gl,sm,xrandr,xv,xi,xinerama,xcursor,xfixes,ffi,xml2}
|
||||
"${_pkgbasename}=${pkgver}")
|
||||
makedepends=('cups' lib32-{mesa,libcups,libxfixes,icu,clang} )
|
||||
makedepends=('cups' lib32-{mesa,libcups,libxfixes,icu} )
|
||||
_pkgfqn="${_pkgbasename}-everywhere-opensource-src-${pkgver}"
|
||||
source=("http://download.qt.io/official_releases/qt/4.8/${pkgver}/${_pkgfqn}.tar.gz"
|
||||
"kubuntu_14_systemtrayicon.diff")
|
||||
|
@ -1,124 +0,0 @@
|
||||
_pkgbasename=qt
|
||||
pkgname="lib32-${_pkgbasename}"
|
||||
pkgver=4.8.7
|
||||
pkgrel=6
|
||||
pkgdesc='A cross-platform application and UI framework. (ELF32)'
|
||||
arch=('x86_64')
|
||||
url='http://www.qt.io'
|
||||
license=('GPL3' 'LGPL')
|
||||
depends=(lib32-{fontconfig,sqlite3,alsa-lib,glib2,dbus-core,openssl,gst-plugins-base}
|
||||
lib32-lib{png,tiff,mng,gl,sm,xrandr,xv,xi,xinerama,xcursor,xfixes,ffi,xml2}
|
||||
"${_pkgbasename}=${pkgver}")
|
||||
makedepends=('cups' lib32-{mesa,libcups,libxfixes,icu,clang} 'gperf' 'python2' 'ruby' 'git' 'mesa' 'gst-plugins-base-libs')
|
||||
_pkgfqn="${_pkgbasename}-everywhere-opensource-src-${pkgver}"
|
||||
source=("http://download.qt.io/official_releases/qt/4.8/${pkgver}/${_pkgfqn}.tar.gz"
|
||||
'http://download.kde.org/stable/qtwebkit-2.3/2.3.4/src/qtwebkit-2.3.4.tar.gz'
|
||||
"kubuntu_14_systemtrayicon.diff"
|
||||
'disable-sslv3.patch'
|
||||
'qtwebkit-2.3.4-gcc5-1.patch'
|
||||
'qtwebkit-2.3-debuginfo.patch'
|
||||
'qtwebkit-2.3-save_memory.patch')
|
||||
md5sums=('d990ee66bf7ab0c785589776f35ba6ad'
|
||||
'42ef76d0cf7d0c611ef83418e9f297ff'
|
||||
'a523644faa8f98a73f55c4aa23c114a6'
|
||||
'1803ab6313df762d807678e58fc85f53'
|
||||
'b12602b7460914994354a5c2cae83df2'
|
||||
'ab784b24965ef9bbe42f875e98e43ac0'
|
||||
'e588c0c49b72951c68358970db75b4fd')
|
||||
|
||||
prepare() {
|
||||
cd "${srcdir}/${_pkgfqn}"
|
||||
patch -Np1 -i ../kubuntu_14_systemtrayicon.diff
|
||||
|
||||
# disable SSLv3
|
||||
patch -p1 -i "${srcdir}"/disable-sslv3.patch
|
||||
|
||||
sed -i "/^QMAKE_LINK\s/s|g++|g++ -m32|g" mkspecs/common/g++-base.conf
|
||||
sed -i "s|-O2|${CXXFLAGS} -m32|" mkspecs/common/g++-base.conf
|
||||
sed -i "s|-O2|${CXXFLAGS} -m32|" mkspecs/common/gcc-base.conf
|
||||
sed -i "/^QMAKE_LFLAGS_RPATH/s| -Wl,-rpath,||g" mkspecs/common/gcc-base-unix.conf
|
||||
sed -i "/^QMAKE_LFLAGS\s/s|+=|+= ${LDFLAGS} -m32|g" mkspecs/common/gcc-base.conf
|
||||
sed -i "s|-Wl,-O1|-m32 -Wl,-O1|" mkspecs/common/g++-unix.conf
|
||||
sed -e "s|-O2|$CXXFLAGS -m32|" \
|
||||
-e "/^QMAKE_RPATH/s| -Wl,-rpath,||g" \
|
||||
-e "/^QMAKE_LINK\s/s|g++|g++ -m32|g" \
|
||||
-e "/^QMAKE_LFLAGS\s/s|+=|+= $LDFLAGS|g" \
|
||||
-i mkspecs/common/g++.conf
|
||||
|
||||
cd $srcdir/
|
||||
|
||||
# reduce debug info, to avoid the error "ar: libWebCore.a: File truncated" of 4GB file max exceed
|
||||
patch -p1 -i "${srcdir}"/qtwebkit-2.3-debuginfo.patch
|
||||
patch -p1 -i "${srcdir}"/qtwebkit-2.3-save_memory.patch
|
||||
|
||||
# Fix build with GCC 5 (LFS)
|
||||
patch -p1 -i "$srcdir"/qtwebkit-2.3.4-gcc5-1.patch
|
||||
}
|
||||
|
||||
build() {
|
||||
export CC='clang -m32'
|
||||
export CXX='clang++ -m32'
|
||||
export QT4DIR=$srcdir/$_pkgfqn
|
||||
export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
|
||||
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
|
||||
|
||||
# The bundled QtWebkit of Qt-4.8.7 requires legacy gstreamer support, but we know that qtwebkit-2.3.4 supports gst1.x
|
||||
cd "${srcdir}/${_pkgfqn}"
|
||||
./configure -confirm-license -opensource -v -platform linux-g++-32 \
|
||||
-prefix /usr \
|
||||
-libdir /usr/lib32 \
|
||||
-plugindir /usr/lib32/qt/plugins \
|
||||
-importdir /usr/lib32/qt/imports \
|
||||
-datadir /usr/share/qt \
|
||||
-translationdir /usr/share/qt/translations \
|
||||
-sysconfdir /etc \
|
||||
-system-sqlite \
|
||||
-no-phonon \
|
||||
-no-phonon-backend \
|
||||
-no-webkit \
|
||||
-graphicssystem raster \
|
||||
-openssl-linked \
|
||||
-nomake demos \
|
||||
-nomake examples \
|
||||
-nomake docs \
|
||||
-nomake tools \
|
||||
-optimized-qmake \
|
||||
-no-rpath \
|
||||
-dbus-linked \
|
||||
-reduce-relocations \
|
||||
-no-openvg \
|
||||
-xcursor
|
||||
|
||||
make
|
||||
#
|
||||
cd $srcdir
|
||||
export QTDIR=/usr
|
||||
export PATH=$QT4DIR/bin:$PATH
|
||||
Tools/Scripts/build-webkit --qt \
|
||||
--no-webkit2 \
|
||||
--prefix=/usr --install-libs=/usr/lib32 \
|
||||
--makeargs="$MAKEFLAGS" \
|
||||
--release \
|
||||
--qmakearg="CONFIG+=production_build" \
|
||||
--system-malloc
|
||||
}
|
||||
|
||||
package() {
|
||||
# install QtWebkit
|
||||
make -C WebKitBuild/Release INSTALL_ROOT="${pkgdir}" install
|
||||
|
||||
# Qt4 part
|
||||
cd "${srcdir}/${_pkgfqn}"
|
||||
make install INSTALL_ROOT="${pkgdir}"
|
||||
|
||||
# Fix wrong path in pkgconfig files
|
||||
find "${pkgdir}/usr/lib32/pkgconfig" -type f -name '*.pc' \
|
||||
-exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \;
|
||||
# Fix wrong path in prl files
|
||||
find "${pkgdir}/usr/lib32" -type f -name '*.prl' \
|
||||
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
|
||||
|
||||
rm -rf "${pkgdir}/usr"/{include,share,bin}
|
||||
mkdir -p "${pkgdir}/usr/share/licenses"
|
||||
ln -s "${_pkgbasename}" "${pkgdir}/usr/share/licenses/${pkgname}"
|
||||
}
|
@ -1,54 +0,0 @@
|
||||
diff -u -r qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp 2015-05-07 16:14:44.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl.cpp 2016-03-04 11:29:17.119300898 +0100
|
||||
@@ -267,7 +267,11 @@
|
||||
#endif
|
||||
break;
|
||||
case QSsl::SslV3:
|
||||
+#ifndef OPENSSL_NO_SSL3
|
||||
ctx = q_SSL_CTX_new(client ? q_SSLv3_client_method() : q_SSLv3_server_method());
|
||||
+#else
|
||||
+ ctx = 0; // SSL 3 not supported by the system, but chosen deliberately -> error
|
||||
+#endif
|
||||
break;
|
||||
case QSsl::SecureProtocols: // SslV2 will be disabled below
|
||||
case QSsl::TlsV1SslV3: // SslV2 will be disabled below
|
||||
diff -u -r qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl_symbols.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp 2015-05-07 16:14:44.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-4.8.7-nossl3/src/network/ssl/qsslsocket_openssl_symbols.cpp 2016-03-04 11:28:52.806050135 +0100
|
||||
@@ -228,13 +228,17 @@
|
||||
#ifndef OPENSSL_NO_SSL2
|
||||
DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
|
||||
#endif
|
||||
+#ifndef OPENSSL_NO_SSL3
|
||||
DEFINEFUNC(const SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return)
|
||||
+#endif
|
||||
DEFINEFUNC(const SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return)
|
||||
DEFINEFUNC(const SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return)
|
||||
#ifndef OPENSSL_NO_SSL2
|
||||
DEFINEFUNC(const SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return)
|
||||
#endif
|
||||
+#ifndef OPENSSL_NO_SSL3
|
||||
DEFINEFUNC(const SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return)
|
||||
+#endif
|
||||
DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return)
|
||||
DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return)
|
||||
#else
|
||||
@@ -822,13 +826,17 @@
|
||||
#ifndef OPENSSL_NO_SSL2
|
||||
RESOLVEFUNC(SSLv2_client_method)
|
||||
#endif
|
||||
+#ifndef OPENSSL_NO_SSL3
|
||||
RESOLVEFUNC(SSLv3_client_method)
|
||||
+#endif
|
||||
RESOLVEFUNC(SSLv23_client_method)
|
||||
RESOLVEFUNC(TLSv1_client_method)
|
||||
#ifndef OPENSSL_NO_SSL2
|
||||
RESOLVEFUNC(SSLv2_server_method)
|
||||
#endif
|
||||
+#ifndef OPENSSL_NO_SSL3
|
||||
RESOLVEFUNC(SSLv3_server_method)
|
||||
+#endif
|
||||
RESOLVEFUNC(SSLv23_server_method)
|
||||
RESOLVEFUNC(TLSv1_server_method)
|
||||
RESOLVEFUNC(X509_NAME_entry_count)
|
@ -1,16 +0,0 @@
|
||||
diff -up webkit-qtwebkit-23/Source/WebCore/WebCore.pri.debuginfo webkit-qtwebkit-23/Source/WebCore/WebCore.pri
|
||||
--- webkit-qtwebkit-23/Source/WebCore/WebCore.pri.debuginfo 2013-02-21 22:28:57.791764043 -0600
|
||||
+++ webkit-qtwebkit-23/Source/WebCore/WebCore.pri 2013-02-21 22:31:02.994198797 -0600
|
||||
@@ -7,6 +7,12 @@
|
||||
|
||||
SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/WebCore
|
||||
|
||||
+#equals(QT_ARCH, s390)|equals(QT_ARCH, arm)|equals(QT_ARCH, mips)|equals(QT_ARCH, i386)|equals(QT_ARCH, i686)|equals(QT_ARCH, x86_64)|equals(QT_ARCH, powerpc64)|equals(QT_ARCH, powerpc) {
|
||||
+ message("WebCore workaround for QtWebkit: do not build with -g, but with -g1")
|
||||
+ QMAKE_CXXFLAGS_RELEASE -= -g
|
||||
+ QMAKE_CXXFLAGS_RELEASE += -g1
|
||||
+#}
|
||||
+
|
||||
QT *= network
|
||||
haveQt(5): QT *= core-private gui-private
|
||||
|
@ -1,12 +0,0 @@
|
||||
diff -up webkit-qtwebkit-23/Source/WebCore/WebCore.pri.save_memory webkit-qtwebkit-23/Source/WebCore/WebCore.pri
|
||||
--- webkit-qtwebkit-23/Source/WebCore/WebCore.pri.save_memory 2013-02-15 09:46:12.000000000 -0600
|
||||
+++ webkit-qtwebkit-23/Source/WebCore/WebCore.pri 2013-02-21 16:42:30.996634743 -0600
|
||||
@@ -336,6 +336,8 @@ mac {
|
||||
}
|
||||
unix:!mac:*-g++*:QMAKE_CXXFLAGS += -fdata-sections
|
||||
unix:!mac:*-g++*:QMAKE_LFLAGS += -Wl,--gc-sections
|
||||
+unix:!mac:*-g++*:!equals(QT_ARCH, powerpc):!equals(QT_ARCH, s390):!equals(QT_ARCH, mips):!equals(QT_ARCH, arm):QMAKE_LFLAGS += -Wl,--no-keep-memory
|
||||
+unix:!mac:*-g++*:!equals(QT_ARCH, powerpc):!equals(QT_ARCH, s390):!equals(QT_ARCH, mips):!equals(QT_ARCH, arm):QMAKE_LFLAGS += -Wl,--reduce-memory-overheads
|
||||
linux*-g++*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
|
||||
|
||||
unix|win32-g++* {
|
@ -1,81 +0,0 @@
|
||||
Submitted By: Bruce Dubbs <bdubbs_AT_linuxfromscratch_DOT_org>
|
||||
Date: 2015-07-07
|
||||
Origin: https://bugreports.qt.io/browse/QTBUG-44829
|
||||
Initial Package Version: 2.3.4
|
||||
Description: Allow qtwebkit to build with gcc-5.
|
||||
Upstream Status: In repository
|
||||
|
||||
--- a/Source/JavaScriptCore/runtime/JSObject.cpp 2014-09-24 13:42:05.000000000 +0200
|
||||
+++ b/Source/JavaScriptCore/runtime/JSObject.cpp 2015-05-26 21:01:40.708178176 +0200
|
||||
@@ -1922,6 +1922,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
+template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<ContiguousShape>(ExecState* exec, unsigned i, JSValue value);
|
||||
+template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<DoubleShape>(ExecState* exec, unsigned i, JSValue value);
|
||||
+template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<Int32Shape>(ExecState* exec, unsigned i, JSValue value);
|
||||
+
|
||||
void JSObject::putByIndexBeyondVectorLengthWithArrayStorage(ExecState* exec, unsigned i, JSValue value, bool shouldThrow, ArrayStorage* storage)
|
||||
{
|
||||
JSGlobalData& globalData = exec->globalData();
|
||||
--- a/Source/WebCore/loader/icon/IconController.cpp 2014-09-24 13:42:05.000000000 +0200
|
||||
+++ b/Source/WebCore/loader/icon/IconController.cpp 2015-05-26 21:01:51.583361817 +0200
|
||||
@@ -163,6 +163,10 @@
|
||||
}
|
||||
|
||||
if (iconDatabase().supportsAsynchronousMode()) {
|
||||
+ // FIXME (<rdar://problem/9168605>) - We should support in-memory-only private browsing icons in asynchronous icon database mode.
|
||||
+ if (m_frame->page()->settings()->privateBrowsingEnabled())
|
||||
+ return;
|
||||
+
|
||||
m_frame->loader()->documentLoader()->getIconLoadDecisionForIconURL(urlString);
|
||||
// Commit the icon url mapping to the database just in case we don't end up loading later.
|
||||
commitToDatabase(iconURL);
|
||||
@@ -206,10 +210,6 @@
|
||||
{
|
||||
ASSERT(iconLoadDecision != IconLoadUnknown);
|
||||
|
||||
- // FIXME (<rdar://problem/9168605>) - We should support in-memory-only private browsing icons in asynchronous icon database mode.
|
||||
- if (iconDatabase().supportsAsynchronousMode() && m_frame->page()->settings()->privateBrowsingEnabled())
|
||||
- return;
|
||||
-
|
||||
if (iconLoadDecision == IconLoadNo) {
|
||||
KURL iconURL(url());
|
||||
String urlString(iconURL.string());
|
||||
--- a/Source/WebKit/qt/declarative/experimental/experimental.pri 2014-09-24 13:42:05.000000000 +0200
|
||||
+++ b/Source/WebKit/qt/declarative/experimental/experimental.pri 2015-05-26 21:01:14.413735319 +0200
|
||||
@@ -29,8 +29,8 @@
|
||||
|
||||
DESTDIR = $${ROOT_BUILD_DIR}/imports/$${TARGET.module_name}
|
||||
|
||||
-CONFIG += rpath
|
||||
-RPATHDIR_RELATIVE_TO_DESTDIR = ../../lib
|
||||
+#CONFIG += rpath
|
||||
+#RPATHDIR_RELATIVE_TO_DESTDIR = ../../lib
|
||||
|
||||
SOURCES += plugin.cpp
|
||||
|
||||
--- a/Source/WebKit/qt/declarative/public.pri 2014-09-24 13:42:05.000000000 +0200
|
||||
+++ b/Source/WebKit/qt/declarative/public.pri 2015-05-26 21:01:14.413735319 +0200
|
||||
@@ -36,8 +36,8 @@
|
||||
|
||||
DESTDIR = $${ROOT_BUILD_DIR}/imports/$${TARGET.module_name}
|
||||
|
||||
-CONFIG += rpath
|
||||
-RPATHDIR_RELATIVE_TO_DESTDIR = ../../lib
|
||||
+#CONFIG += rpath
|
||||
+#RPATHDIR_RELATIVE_TO_DESTDIR = ../../lib
|
||||
|
||||
SOURCES += plugin.cpp
|
||||
|
||||
--- a/Tools/qmake/mkspecs/features/rpath.prf 2014-09-24 13:42:05.000000000 +0200
|
||||
+++ b/Tools/qmake/mkspecs/features/rpath.prf 2015-05-26 21:01:14.414735336 +0200
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
equals(ROOT_BUILD_DIR, $$dirname(DESTDIR)): RPATHDIR_RELATIVE_TO_DESTDIR = ../lib
|
||||
|
||||
-linux-*:!isEmpty(RPATHDIR_RELATIVE_TO_DESTDIR) {
|
||||
+linux-rpath_me_harder_no_no_no:!isEmpty(RPATHDIR_RELATIVE_TO_DESTDIR) {
|
||||
# Do the rpath by hand since it's not possible to use ORIGIN in QMAKE_RPATHDIR
|
||||
# this expands to $ORIGIN (after qmake and make), it does NOT read a qmake var.
|
||||
QMAKE_RPATHDIR = \$\$ORIGIN/$${RPATHDIR_RELATIVE_TO_DESTDIR} $${QMAKE_RPATHDIR}
|
221
rmpkg.sh
221
rmpkg.sh
@ -1,221 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
#
|
||||
# (c) 2010 - Manuel Tortosa <manutortosa[at]chakra-project[dot]org>
|
||||
|
||||
#
|
||||
# global vars
|
||||
#
|
||||
_script_name="Remove Package(s)"
|
||||
_cur_repo=$(pwd | awk -F '/' '{print $NF}')
|
||||
_needed_functions="config_handling helpers messages"
|
||||
_build_arch="$_arch"
|
||||
_sarch="x32"
|
||||
_args=`echo $1`
|
||||
[[ ${_arch} = *x*64* ]] && _sarch="x64"
|
||||
|
||||
# helper functions
|
||||
for subroutine in ${_needed_functions} ; do
|
||||
source _buildscripts/functions/${subroutine}
|
||||
done
|
||||
|
||||
# Determine the sync folder
|
||||
if [[ ${_cur_repo} = *-testing ]] && [[ ${_cur_repo} != lib32-testing ]] ; then
|
||||
_sync_folder="_testing-${_sarch}/"
|
||||
elif [[ ${_cur_repo} = *-unstable ]] ; then
|
||||
_sync_folder="_unstable-${_sarch}/"
|
||||
else
|
||||
_sync_folder="_repo/remote/"
|
||||
fi
|
||||
|
||||
|
||||
#
|
||||
# main
|
||||
#
|
||||
|
||||
sync_down()
|
||||
{
|
||||
msg "syncing down"
|
||||
export RSYNC_PASSWORD=$(echo ${_rsync_pass})
|
||||
if [ "${_sync_folder}" = "_testing-${_sarch}/" ] ; then
|
||||
rsync -avh --progress ${_rsync_user}@${_rsync_server}::dev/testing/$_build_arch/* ${_sync_folder}
|
||||
elif [ "${_sync_folder}" = "_unstable-${_sarch}/" ] ; then
|
||||
rsync -avh --progress ${_rsync_user}@${_rsync_server}::dev/unstable/$_build_arch/* ${_sync_folder}
|
||||
else
|
||||
rsync -avh --progress ${_rsync_user}@${_rsync_server}::${_rsync_dir}/* ${_sync_folder}
|
||||
fi
|
||||
}
|
||||
|
||||
check_files()
|
||||
{
|
||||
# Get the file list in the server
|
||||
export RSYNC_PASSWORD=$(echo ${_rsync_pass})
|
||||
if [ "${_sync_folder}" = "_testing-${_sarch}/" ] ; then
|
||||
repo_files=$(rsync -avh --list-only ${_rsync_user}@${_rsync_server}::dev/testing/$_arch/* | awk -F ' ' '{print $NF}')
|
||||
elif [ "${_sync_folder}" = "_unstable-${_sarch}/" ] ; then
|
||||
repo_files=$(rsync -avh --list-only ${_rsync_user}@${_rsync_server}::dev/unstable/$_arch/* | awk -F ' ' '{print $NF}')
|
||||
else
|
||||
repo_files=$(rsync -avh --list-only ${_rsync_user}@${_rsync_server}::${_rsync_dir}/* | awk -F ' ' '{print $NF}')
|
||||
fi
|
||||
|
||||
# Get the file list in the sync folder
|
||||
local_files=$(ls -a ${_sync_folder}* | awk -F '/' '{print $NF}')
|
||||
remove_list=""
|
||||
|
||||
for parse_file in ${local_files} ; do
|
||||
file_exist="false"
|
||||
for compare_file in ${repo_files} ; do
|
||||
if [ "${parse_file}" = "${compare_file}" ] ; then
|
||||
file_exist="true"
|
||||
fi
|
||||
done
|
||||
if [ "${file_exist}" = "false" ] ; then
|
||||
remove_list="${remove_list} ${parse_file}"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$remove_list" != "" ] ; then
|
||||
msg "The following packages in ${_sync_folder} don't exist in the sever:"
|
||||
newline
|
||||
echo "${remove_list}"
|
||||
newline
|
||||
question "Do you want to remove the package(s)? (y/n)"
|
||||
while true ; do
|
||||
read yn
|
||||
case ${yn} in
|
||||
[yY]* )
|
||||
newline ;
|
||||
remove_packages;
|
||||
break
|
||||
;;
|
||||
[nN]* )
|
||||
newline ;
|
||||
title "The files will be keeped..." ;
|
||||
newline ;
|
||||
break
|
||||
;;
|
||||
* )
|
||||
echo "Enter (y)es or (n)o"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
remove_packages()
|
||||
{
|
||||
# remove the package(s) from sync folder
|
||||
msg "removing the packages(s) from ${_sync_folder}"
|
||||
pushd $_sync_folder &>/dev/null
|
||||
rm -rf ${_pkgz_to_remove}
|
||||
popd &>/dev/null
|
||||
}
|
||||
|
||||
sync_up()
|
||||
{
|
||||
# create new pacman database
|
||||
msg "creating pacman database"
|
||||
rm -rf ${_sync_folder}*.db.tar.*
|
||||
pushd ${_sync_folder} &>/dev/null
|
||||
if [ "${_sync_folder}" = "_testing-${_sarch}/" ] ; then
|
||||
repo-add testing.db.tar.gz *.pkg.*
|
||||
elif [ "${_sync_folder}" = "_unstable-${_sarch}/" ] ; then
|
||||
repo-add unstable.db.tar.gz *.pkg.*
|
||||
else
|
||||
repo-add ${_cur_repo}.db.tar.gz *.pkg.*
|
||||
fi
|
||||
popd &>/dev/null
|
||||
|
||||
# sync local -> server, removing the packages
|
||||
msg "sync local -> server"
|
||||
if [ "${_sync_folder}" = "_testing-${_sarch}/" ] ; then
|
||||
rsync -avh --progress --delay-updates --delete-after ${_sync_folder} ${_rsync_user}@${_rsync_server}::dev/testing/$_arch/
|
||||
elif [ "${_sync_folder}" = "_unstable-${_sarch}/" ] ; then
|
||||
rsync -avh --progress --delay-updates --delete-after ${_sync_folder} ${_rsync_user}@${_rsync_server}::dev/unstable/$_arch/
|
||||
else
|
||||
rsync -avh --progress --delay-updates --delete-after ${_sync_folder} ${_rsync_user}@${_rsync_server}::${_rsync_dir}
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# startup
|
||||
#
|
||||
|
||||
clear
|
||||
title "${_script_name} - $_cur_repo-$_build_arch"
|
||||
|
||||
if [ "${_args}" = "" ] ; then
|
||||
error " !! You need to specify a target to remove,"
|
||||
error " single names like \"attica\" or wildcards (*) are allowed."
|
||||
newline
|
||||
exit 1
|
||||
fi
|
||||
|
||||
check_configs
|
||||
load_configs
|
||||
|
||||
check_rsync
|
||||
check_accounts
|
||||
|
||||
# First get the actual packages from the repo
|
||||
sync_down
|
||||
|
||||
# Check if there's any outdated file
|
||||
msg "Searching removed files"
|
||||
check_files
|
||||
|
||||
# Generate the list of packages to remove
|
||||
newline
|
||||
_args=${_args}*
|
||||
_pkgz_to_remove=$(ls ${_sync_folder}${_args} | awk -F '/' '{print $NF}')
|
||||
|
||||
if [ "${_pkgz_to_remove}" = "" ] ; then
|
||||
exit
|
||||
fi
|
||||
|
||||
warning "The following packages will be removed:"
|
||||
newline
|
||||
echo "${_pkgz_to_remove}"
|
||||
|
||||
newline
|
||||
question "Do you really want to remove the package(s)? (y/n) "
|
||||
|
||||
while true ; do
|
||||
read yn
|
||||
case $yn in
|
||||
[yY]* )
|
||||
newline ;
|
||||
remove_packages ;
|
||||
sync_up ;
|
||||
newline ;
|
||||
title "All done" ;
|
||||
newline ;
|
||||
break
|
||||
;;
|
||||
|
||||
[nN]* )
|
||||
exit
|
||||
;;
|
||||
|
||||
q* )
|
||||
exit
|
||||
;;
|
||||
|
||||
* )
|
||||
echo "Enter (y)es or (n)o"
|
||||
;;
|
||||
esac
|
||||
done
|
Loading…
Reference in New Issue
Block a user