forked from pool/b43-fwcutter
- Provide fallback in case %_firmwaredir is not defined
OBS-URL: https://build.opensuse.org/package/show/hardware/b43-fwcutter?expand=0&rev=32
This commit is contained in:
commit
7449a8e180
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
3
b43-fwcutter-019.tar.bz2
Normal file
3
b43-fwcutter-019.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d6ea85310df6ae08e7f7e46d8b975e17fc867145ee249307413cfbe15d7121ce
|
||||
size 46769
|
122
b43-fwcutter.changes
Normal file
122
b43-fwcutter.changes
Normal file
@ -0,0 +1,122 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 20 19:29:54 UTC 2024 - Arjen de Korte <suse+build@de-korte.org>
|
||||
|
||||
- Provide fallback in case %_firmwaredir is not defined
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Apr 18 01:46:07 UTC 2021 - Ferdinand Thiessen <rpm@fthiessen.de>
|
||||
|
||||
- Fixed SPEC file: Replace broken URL with current upstream
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 19 13:04:29 UTC 2020 - Ludwig Nussel <lnussel@suse.de>
|
||||
|
||||
- use %_firmwaredir
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 6 20:20:08 UTC 2016 - Larry.Finger@lwfinger.net
|
||||
|
||||
- Update downloaded firmware from version 666.2 to version 784.2. This
|
||||
release adds firmware for a number of newer devices. Not all of these
|
||||
are supported by b43, but with this change, the firmware will be
|
||||
available when any are supported. As Broadcom does not release details
|
||||
of the changes in their firmware, it is not known what enhancements have
|
||||
been made to the firmware for older devices.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 16 18:43:00 UTC 2014 - Led <ledest@gmail.com>
|
||||
|
||||
- fix bashism in install_bcm43xx_firmware script
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 11 19:00:19 UTC 2014 - p.drouand@gmail.com
|
||||
|
||||
- Update to version 019
|
||||
+ No changelog available
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 24 18:30:14 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- Update to version 018 (no changelog)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 6 20:43:03 UTC 2013 - crrodriguez@opensuse.org
|
||||
|
||||
- add Supplements for the rest of devices supported by the b43
|
||||
and b43legacy drivers.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 17 02:39:36 UTC 2013 - jeffm@suse.com
|
||||
|
||||
- Update to v017 (bnc#815700)
|
||||
- Update source URL for firmware
|
||||
- removed b43-fwcutter.diff
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 23 07:13:02 UTC 2012 - cfarrell@suse.com
|
||||
|
||||
- license update: BSD-2-Clause
|
||||
Only BSD-2-Clause license found in the package
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 17 16:26:49 UTC 2011 - jengelh@medozas.de
|
||||
|
||||
- Remove redundant tags/sections from specfile
|
||||
- Use %_smp_mflags for parallel build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Aug 21 14:38:00 CST 2011 - Larry.Finger@lwfinger.net
|
||||
|
||||
- Remove 2 files that require 300+ MB downloads
|
||||
- Add 5 new files with newest firmware (508.X, 644.1001, and 666.2)
|
||||
* 802.11 cores through rev 22 are supported
|
||||
- the install_bcm43xx_firmware script now unloads and
|
||||
reloads the driver so that it will work immediately
|
||||
- Removed firmware-IDs from fwcutter - they are not maintained in kernel
|
||||
- Updated Email address for Michael Buesch
|
||||
- Updated to Revision 15
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 12 14:38:00 CST 2010 - Larry.Finger@lwfinger.net
|
||||
|
||||
- Add 2 new files with 478.104 firmware
|
||||
* 802.11 cores with rev 16 are msupported
|
||||
- Use ARRAY_SIZE instead of local FILES macro
|
||||
- Add sparse support, Add quiet build, Add autodependencies
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 3 11:56:39 UTC 2009 - cstender@novell.com
|
||||
|
||||
- updated to version 012
|
||||
* don't extract core 4 firmware from V4 drivers
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 9 13:54:25 CET 2009 - cstender@suse.de
|
||||
|
||||
- %ghost b43 and b43legacy firmware (bnc#466113)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 11 14:04:45 CEST 2008 - cstender@suse.de
|
||||
|
||||
- added curl to requires
|
||||
- improved install_bcm43xx_firmware script
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 10 14:34:00 CEST 2008 - cstender@suse.de
|
||||
|
||||
- updated to version 011
|
||||
- added supplement tag so package gets installed when a bcm43xx
|
||||
card is detected
|
||||
- added install_bcm43xx_firmware script which downloads and
|
||||
extracts firmware files
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Mar 16 07:31:01 CET 2008 - coolo@suse.de
|
||||
|
||||
- correctly replace the old name
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 10 16:51:20 CET 2008 - cstender@suse.de
|
||||
|
||||
- initial package (version 009)
|
||||
|
168
b43-fwcutter.spec
Normal file
168
b43-fwcutter.spec
Normal file
@ -0,0 +1,168 @@
|
||||
#
|
||||
# spec file for package b43-fwcutter
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%{!?_firmwaredir: %global _firmwaredir /lib/firmware}
|
||||
|
||||
Name: b43-fwcutter
|
||||
Version: 019
|
||||
Release: 0
|
||||
Summary: Tool for extracting firmware from newer Broadcom WLAN drivers
|
||||
License: BSD-2-Clause
|
||||
Group: Hardware/Wifi
|
||||
URL: https://bues.ch/cms/hacking/misc.html#linux_b43_driver_firmware_tools
|
||||
Source: http://bues.ch/b43/fwcutter/%{name}-%{version}.tar.bz2
|
||||
Source1: install_bcm43xx_firmware
|
||||
Requires: curl
|
||||
Supplements: modalias(pci:v000014E4d000043*sv*sd*bc*sc*i*)
|
||||
#b43legacy
|
||||
Supplements: modalias(ssb:v4243id0812rev04*)
|
||||
Supplements: modalias(ssb:v4243id0812rev02*)
|
||||
#b43
|
||||
Supplements: modalias(pcmcia:m02D0c0476f*fn*pfn*pa*pb*pc*pd*)
|
||||
Supplements: modalias(pcmcia:m02D0c0448f*fn*pfn*pa*pb*pc*pd*)
|
||||
Supplements: modalias(bcma:m04BFid0812rev1Dcl*)
|
||||
Supplements: modalias(bcma:m04BFid0812rev18cl*)
|
||||
Supplements: modalias(bcma:m04BFid0812rev17cl*)
|
||||
Supplements: modalias(bcma:m04BFid0812rev11cl*)
|
||||
Supplements: modalias(ssb:v4243id0812rev10*)
|
||||
Supplements: modalias(ssb:v4243id0812rev0F*)
|
||||
Supplements: modalias(ssb:v4243id0812rev0D*)
|
||||
Supplements: modalias(ssb:v4243id0812rev0C*)
|
||||
Supplements: modalias(ssb:v4243id0812rev0B*)
|
||||
Supplements: modalias(ssb:v4243id0812rev0A*)
|
||||
Supplements: modalias(ssb:v4243id0812rev09*)
|
||||
Supplements: modalias(ssb:v4243id0812rev07*)
|
||||
Supplements: modalias(ssb:v4243id0812rev06*)
|
||||
Supplements: modalias(ssb:v4243id0812rev05*)
|
||||
|
||||
Obsoletes: bcm43xx-fwcutter < %{version}
|
||||
Provides: bcm43xx-fwcutter = %{version}
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%description
|
||||
b43-fwcutter can be used to extract firmware from Windows WLAN drivers
|
||||
for Broadcom bcm43xx devices. The firmware is necessary to run such a
|
||||
card under Linux using the b43 or b43legacy driver.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
make CFLAGS="%{optflags}" %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
#make PREFIX=%%{buildroot}/usr \
|
||||
# MANDIR=%%{buildroot}/%%{_mandir} install
|
||||
mkdir -p %{buildroot}%{_bindir}/
|
||||
mkdir -p %{buildroot}%{_sbindir}/
|
||||
install -m 755 b43-fwcutter %{buildroot}%{_bindir}/
|
||||
install -m 755 %{SOURCE1} %{buildroot}%{_sbindir}/
|
||||
sed -i -e 's,/lib/firmware,%{_firmwaredir},' %{buildroot}%{_sbindir}/install_bcm43xx_firmware
|
||||
mkdir -p %{buildroot}%{_firmwaredir}/b43/
|
||||
mkdir -p %{buildroot}%{_firmwaredir}/b43legacy/
|
||||
for i in a0g0bsinitvals5.fw a0g0bsinitvals9.fw a0g0initvals5.fw a0g0initvals9.fw a0g1bsinitvals13.fw a0g1bsinitvals5.fw a0g1bsinitvals9.fw a0g1initvals13.fw a0g1initvals5.fw a0g1initvals9.fw b0g0bsinitvals13.fw b0g0bsinitvals5.fw b0g0bsinitvals9.fw b0g0initvals13.fw b0g0initvals5.fw b0g0initvals9.fw lp0bsinitvals13.fw lp0bsinitvals14.fw lp0bsinitvals15.fw lp0bsinitvals16.fw lp0initvals13.fw lp0initvals14.fw lp0initvals15.fw lp0initvals16.fw n0absinitvals11.fw n0bsinitvals11.fw n0bsinitvals16.fw n0initvals11.fw n0initvals16.fw pcm5.fw sslpn0bsinitvals16.fw sslpn0initvals16.fw sslpn1bsinitvals20.fw sslpn1initvals20.fw sslpn2bsinitvals17.fw sslpn2bsinitvals19.fw sslpn2initvals17.fw sslpn2initvals19.fw sslpn4bsinitvals22.fw sslpn4initvals22.fw ucode11.fw ucode13.fw ucode14.fw ucode15.fw ucode16_lp.fw ucode16_mimo.fw ucode16_sslpn.fw ucode16_sslpn_nobt.fw ucode17.fw ucode19.fw ucode20.fw ucode22_sslpn.fw ucode5.fw ucode9.fw
|
||||
do
|
||||
touch %{buildroot}%{_firmwaredir}/b43/$i
|
||||
done
|
||||
for j in a0g0bsinitvals2.fw a0g0bsinitvals5.fw a0g0initvals2.fw a0g0initvals5.fw a0g1bsinitvals5.fw a0g1initvals5.fw b0g0bsinitvals2.fw b0g0bsinitvals5.fw b0g0initvals2.fw b0g0initvals5.fw pcm4.fw pcm5.fw ucode11.fw ucode2.fw ucode4.fw ucode5.fw
|
||||
do
|
||||
touch %{buildroot}%{_firmwaredir}/b43legacy/$j
|
||||
done
|
||||
|
||||
%files
|
||||
%defattr(-, root, root)
|
||||
%doc README
|
||||
%{_bindir}/b43-fwcutter
|
||||
%{_sbindir}/install_bcm43xx_firmware
|
||||
#%%{_mandir}/man1/b43-fwcutter.1.gz
|
||||
%dir %{_firmwaredir}/b43
|
||||
%dir %{_firmwaredir}/b43legacy
|
||||
# ghost b43 firmware
|
||||
%ghost %{_firmwaredir}/b43/a0g0bsinitvals5.fw
|
||||
%ghost %{_firmwaredir}/b43/a0g0bsinitvals9.fw
|
||||
%ghost %{_firmwaredir}/b43/a0g0initvals5.fw
|
||||
%ghost %{_firmwaredir}/b43/a0g0initvals9.fw
|
||||
%ghost %{_firmwaredir}/b43/a0g1bsinitvals13.fw
|
||||
%ghost %{_firmwaredir}/b43/a0g1bsinitvals5.fw
|
||||
%ghost %{_firmwaredir}/b43/a0g1bsinitvals9.fw
|
||||
%ghost %{_firmwaredir}/b43/a0g1initvals13.fw
|
||||
%ghost %{_firmwaredir}/b43/a0g1initvals5.fw
|
||||
%ghost %{_firmwaredir}/b43/a0g1initvals9.fw
|
||||
%ghost %{_firmwaredir}/b43/b0g0bsinitvals13.fw
|
||||
%ghost %{_firmwaredir}/b43/b0g0bsinitvals5.fw
|
||||
%ghost %{_firmwaredir}/b43/b0g0bsinitvals9.fw
|
||||
%ghost %{_firmwaredir}/b43/b0g0initvals13.fw
|
||||
%ghost %{_firmwaredir}/b43/b0g0initvals5.fw
|
||||
%ghost %{_firmwaredir}/b43/b0g0initvals9.fw
|
||||
%ghost %{_firmwaredir}/b43/lp0bsinitvals13.fw
|
||||
%ghost %{_firmwaredir}/b43/lp0bsinitvals14.fw
|
||||
%ghost %{_firmwaredir}/b43/lp0bsinitvals15.fw
|
||||
%ghost %{_firmwaredir}/b43/lp0bsinitvals16.fw
|
||||
%ghost %{_firmwaredir}/b43/lp0initvals13.fw
|
||||
%ghost %{_firmwaredir}/b43/lp0initvals14.fw
|
||||
%ghost %{_firmwaredir}/b43/lp0initvals15.fw
|
||||
%ghost %{_firmwaredir}/b43/lp0initvals16.fw
|
||||
%ghost %{_firmwaredir}/b43/n0absinitvals11.fw
|
||||
%ghost %{_firmwaredir}/b43/n0bsinitvals11.fw
|
||||
%ghost %{_firmwaredir}/b43/n0bsinitvals16.fw
|
||||
%ghost %{_firmwaredir}/b43/n0initvals11.fw
|
||||
%ghost %{_firmwaredir}/b43/n0initvals16.fw
|
||||
%ghost %{_firmwaredir}/b43/pcm5.fw
|
||||
%ghost %{_firmwaredir}/b43/sslpn0bsinitvals16.fw
|
||||
%ghost %{_firmwaredir}/b43/sslpn0initvals16.fw
|
||||
%ghost %{_firmwaredir}/b43/sslpn1bsinitvals20.fw
|
||||
%ghost %{_firmwaredir}/b43/sslpn1initvals20.fw
|
||||
%ghost %{_firmwaredir}/b43/sslpn2bsinitvals17.fw
|
||||
%ghost %{_firmwaredir}/b43/sslpn2bsinitvals19.fw
|
||||
%ghost %{_firmwaredir}/b43/sslpn2initvals17.fw
|
||||
%ghost %{_firmwaredir}/b43/sslpn2initvals19.fw
|
||||
%ghost %{_firmwaredir}/b43/sslpn4bsinitvals22.fw
|
||||
%ghost %{_firmwaredir}/b43/sslpn4initvals22.fw
|
||||
%ghost %{_firmwaredir}/b43/ucode11.fw
|
||||
%ghost %{_firmwaredir}/b43/ucode13.fw
|
||||
%ghost %{_firmwaredir}/b43/ucode14.fw
|
||||
%ghost %{_firmwaredir}/b43/ucode15.fw
|
||||
%ghost %{_firmwaredir}/b43/ucode16_lp.fw
|
||||
%ghost %{_firmwaredir}/b43/ucode16_mimo.fw
|
||||
%ghost %{_firmwaredir}/b43/ucode16_sslpn.fw
|
||||
%ghost %{_firmwaredir}/b43/ucode16_sslpn_nobt.fw
|
||||
%ghost %{_firmwaredir}/b43/ucode17.fw
|
||||
%ghost %{_firmwaredir}/b43/ucode19.fw
|
||||
%ghost %{_firmwaredir}/b43/ucode20.fw
|
||||
%ghost %{_firmwaredir}/b43/ucode22_sslpn.fw
|
||||
%ghost %{_firmwaredir}/b43/ucode5.fw
|
||||
%ghost %{_firmwaredir}/b43/ucode9.fw
|
||||
# ghost b43legacy firmware
|
||||
%ghost %{_firmwaredir}/b43legacy/a0g0bsinitvals2.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/a0g0bsinitvals5.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/a0g0initvals2.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/a0g0initvals5.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/a0g1bsinitvals5.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/a0g1initvals5.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/b0g0bsinitvals2.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/b0g0bsinitvals5.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/b0g0initvals2.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/b0g0initvals5.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/pcm4.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/pcm5.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/ucode11.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/ucode2.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/ucode4.fw
|
||||
%ghost %{_firmwaredir}/b43legacy/ucode5.fw
|
||||
|
||||
%changelog
|
64
install_bcm43xx_firmware
Normal file
64
install_bcm43xx_firmware
Normal file
@ -0,0 +1,64 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# install_bcm43xx_firmware
|
||||
#
|
||||
# This script tries to download and install the firmware needed to run
|
||||
# WLAN cards using Broadcom's bcm43xx chips.
|
||||
|
||||
# firmware for b43
|
||||
URL1=http://www.lwfinger.com/b43-firmware
|
||||
FILE1=broadcom-wl-6.30.163.46.tar.bz2
|
||||
FIRMWARE1=broadcom-wl-6.30.163.46.wl_apsta.o
|
||||
|
||||
# firmware for b43legacy
|
||||
URL2=http://downloads.openwrt.org/sources
|
||||
FILE2=wl_apsta-3.130.20.0.o
|
||||
|
||||
test -z "$( type -p curl)" && { echo "'curl' is not installed, aborting. Please install 'curl' and try again."; exit 1; }
|
||||
test -z "$( type -p b43-fwcutter)" && { echo "'b43-fwcutter' is not installed, aborting. Please install 'b43-fwcutter' and try again."; exit 1; }
|
||||
test -d /lib/firmware || mkdir -p /lib/firmware
|
||||
|
||||
TMPDIR=$(mktemp -d /var/tmp/bcm.XXXXXX) || exit 1
|
||||
|
||||
cd $TMPDIR
|
||||
|
||||
echo "Downloading b43 firmware"
|
||||
curl -# -f -o $FILE1 $URL1/$FILE1
|
||||
if [ $? -eq 0 ];then
|
||||
echo "Extracting b43 firmware"
|
||||
tar xjf $FILE1
|
||||
b43-fwcutter -w /lib/firmware $FIRMWARE1
|
||||
else
|
||||
echo "Could not download b43 firmware. Please look at /usr/share/doc/packages/b43-fwcutter/README."
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "Downloading b43legacy firmware"
|
||||
curl -# -f -o $FILE2 $URL2/$FILE2
|
||||
if [ $? -eq 0 ];then
|
||||
echo "Extracting b43legacy firmware"
|
||||
b43-fwcutter -w /lib/firmware $FILE2
|
||||
else
|
||||
echo "Could not download b43legacy firmware. Please look at /usr/share/doc/packages/b43-fwcutter/README."
|
||||
fi
|
||||
|
||||
echo
|
||||
if [ -d /lib/firmware/b43 ] ; then
|
||||
echo "b43 firmware successfully installed."
|
||||
/sbin/modprobe -r b43
|
||||
/sbin/modprobe b43
|
||||
else
|
||||
echo "b43 firmware installation failed."
|
||||
fi
|
||||
if [ -d /lib/firmware/b43legacy ] ; then
|
||||
echo "b43legacy firmware successfully installed."
|
||||
/sbin/modprobe -r b43legacy
|
||||
/sbin/modprobe b43legacy
|
||||
else
|
||||
echo "b43legacy firmware installation failed."
|
||||
fi
|
||||
|
||||
cd - >/dev/null
|
||||
rm -rf $TMPDIR
|
||||
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user