From 075ca45bd873af9ace49b53b85f298b75e9a3151 Mon Sep 17 00:00:00 2001 From: overweight <5324761+overweight@user.noreply.gitee.com> Date: Mon, 30 Sep 2019 10:53:02 -0400 Subject: [PATCH] Package init --- ...ses-Avoid-buffer-overflows-in-sysfs-.patch | 66 +++++++ ...-the-correct-license-in-source-files.patch | 104 +++++++++++ ...s-Check-the-return-value-of-snprintf.patch | 87 +++++++++ ...bus-Fix-FSF-address-in-smbusmodule.c.patch | 34 ++++ i2c-tools-4.0.tar.xz | Bin 0 -> 79972 bytes i2c-tools.spec | 170 ++++++++++++++++++ 6 files changed, 461 insertions(+) create mode 100644 0001-i2c-tools-i2cbusses-Avoid-buffer-overflows-in-sysfs-.patch create mode 100644 0001-libi2c-Mention-the-correct-license-in-source-files.patch create mode 100644 0002-tools-i2cbusses-Check-the-return-value-of-snprintf.patch create mode 100644 0003-py-smbus-Fix-FSF-address-in-smbusmodule.c.patch create mode 100644 i2c-tools-4.0.tar.xz create mode 100644 i2c-tools.spec diff --git a/0001-i2c-tools-i2cbusses-Avoid-buffer-overflows-in-sysfs-.patch b/0001-i2c-tools-i2cbusses-Avoid-buffer-overflows-in-sysfs-.patch new file mode 100644 index 0000000..043177e --- /dev/null +++ b/0001-i2c-tools-i2cbusses-Avoid-buffer-overflows-in-sysfs-.patch @@ -0,0 +1,66 @@ +From def2845efacab3a3973fb0218ac5077a162f8f1e Mon Sep 17 00:00:00 2001 +From: Jean Delvare +Date: Thu, 2 Nov 2017 16:17:50 +0100 +Subject: [PATCH 1/3] i2c-tools: i2cbusses: Avoid buffer overflows in sysfs + paths + +sprintf isn't safe, use snprintf instead. +--- + CHANGES | 3 +++ + tools/i2cbusses.c | 10 +++++----- + 2 files changed, 8 insertions(+), 5 deletions(-) + +diff --git a/CHANGES b/CHANGES +index 15ff761..539adb0 100644 +--- a/CHANGES ++++ b/CHANGES +@@ -1,6 +1,9 @@ + i2c-tools CHANGES + ----------------- + ++master ++ tools: Fix potential buffer overflows in i2cbusses ++ + 4.0 (2017-10-30) + tools: Fix build with recent compilers (gcc 4.6+) + Add examples to the manual pages +diff --git a/tools/i2cbusses.c b/tools/i2cbusses.c +index dad22ea..cb78cc7 100644 +--- a/tools/i2cbusses.c ++++ b/tools/i2cbusses.c +@@ -220,18 +220,18 @@ struct i2c_adap *gather_i2c_busses(void) + + /* this should work for kernels 2.6.5 or higher and */ + /* is preferred because is unambiguous */ +- sprintf(n, "%s/%s/name", sysfs, de->d_name); ++ snprintf(n, NAME_MAX, "%s/%s/name", sysfs, de->d_name); + f = fopen(n, "r"); + /* this seems to work for ISA */ + if(f == NULL) { +- sprintf(n, "%s/%s/device/name", sysfs, de->d_name); ++ snprintf(n, NAME_MAX, "%s/%s/device/name", sysfs, de->d_name); + f = fopen(n, "r"); + } + /* non-ISA is much harder */ + /* and this won't find the correct bus name if a driver + has more than one bus */ + if(f == NULL) { +- sprintf(n, "%s/%s/device", sysfs, de->d_name); ++ snprintf(n, NAME_MAX, "%s/%s/device", sysfs, de->d_name); + if(!(ddir = opendir(n))) + continue; + while ((dde = readdir(ddir)) != NULL) { +@@ -240,8 +240,8 @@ struct i2c_adap *gather_i2c_busses(void) + if (!strcmp(dde->d_name, "..")) + continue; + if ((!strncmp(dde->d_name, "i2c-", 4))) { +- sprintf(n, "%s/%s/device/%s/name", +- sysfs, de->d_name, dde->d_name); ++ snprintf(n, NAME_MAX, "%s/%s/device/%s/name", ++ sysfs, de->d_name, dde->d_name); + if((f = fopen(n, "r"))) + goto found; + } +-- +2.14.3 + diff --git a/0001-libi2c-Mention-the-correct-license-in-source-files.patch b/0001-libi2c-Mention-the-correct-license-in-source-files.patch new file mode 100644 index 0000000..967e789 --- /dev/null +++ b/0001-libi2c-Mention-the-correct-license-in-source-files.patch @@ -0,0 +1,104 @@ +From fbd988b4fa3d008c5fd210a66834d1305de41f6c Mon Sep 17 00:00:00 2001 +From: Jean Delvare +Date: Fri, 3 Aug 2018 13:54:26 +0200 +Subject: [PATCH] libi2c: Mention the correct license in source files + +The libi2c library is released under the LGPL, not GPL, as explained +in the README file and documented in lib/Module.mk. Thanks to +Aurelien Jarno for pointing out the inconsistency. + +A little bit of history: + +The code started its life two decades ago as part of the lm-sensors +project, which was released as a whole under the GPL originally, +including the library part (libsensors). + +In 2007, I decided to split the i2c tools, which are not specific +to sensor devices, to a separate package. + +In 2009, as I was working on lm-sensors v3, I contacted all the +original authors to get their approval to release the upcoming and all +future versions of libsensors as LGPL instead, to allow wider +adoption. The proposal was accepted by all original authors. + +In 2012, I decided to turn the inlined i2c_smbus_* helper functions +into a proper library, with the intent to release it under the LGPL, +as is the common practice for libraries. As the authors of this code +is a subset of the authors of libsensors, I assumed their agreement +for libsensors could be extended to libi2c as well. This is the +reason why LGPL is mentioned in README and lib/Module.mk. + +Unfortunately, when working on the library code itself, I forgot to +update the comments in the source files. Let's fix them now. + +Signed-off-by: Jean Delvare +--- + include/i2c/smbus.h | 21 ++++++--------------- + lib/smbus.c | 16 +++------------- + 2 files changed, 9 insertions(+), 28 deletions(-) + +diff --git a/include/i2c/smbus.h b/include/i2c/smbus.h +index 18a5305..3003ed7 100644 +--- a/include/i2c/smbus.h ++++ b/include/i2c/smbus.h +@@ -1,23 +1,14 @@ + /* + smbus.h - SMBus level access helper functions + +- Copyright (C) 1995-97 Simon G. Vogl +- Copyright (C) 1998-99 Frodo Looijaard ++ Copyright (C) 1995-1997 Simon G. Vogl ++ Copyright (C) 1998-1999 Frodo Looijaard ++ Copyright (C) 2012-2017 Jean Delvare + +- 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 ++ 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. +- +- 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, write to the Free Software +- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +- MA 02110-1301 USA. + */ + + #ifndef LIB_I2C_SMBUS_H +diff --git a/lib/smbus.c b/lib/smbus.c +index 3a2c45a..df5a5ad 100644 +--- a/lib/smbus.c ++++ b/lib/smbus.c +@@ -5,20 +5,10 @@ + Copyright (C) 1998-1999 Frodo Looijaard + Copyright (C) 2012-2013 Jean Delvare + +- 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 ++ 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. +- +- 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, write to the Free Software +- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +- MA 02110-1301 USA. + */ + + #include +-- +2.14.4 + diff --git a/0002-tools-i2cbusses-Check-the-return-value-of-snprintf.patch b/0002-tools-i2cbusses-Check-the-return-value-of-snprintf.patch new file mode 100644 index 0000000..b0c88de --- /dev/null +++ b/0002-tools-i2cbusses-Check-the-return-value-of-snprintf.patch @@ -0,0 +1,87 @@ +From d062793e7aebde3ffee796dfd4180716632ae444 Mon Sep 17 00:00:00 2001 +From: Jean Delvare +Date: Wed, 8 Nov 2017 22:17:43 +0100 +Subject: [PATCH 2/3] tools: i2cbusses: Check the return value of snprintf +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It's very unlikely that these paths will ever be truncated, but +better safe than sorry. + +Suggested by Uwe Kleine-König. +--- + tools/i2cbusses.c | 34 ++++++++++++++++++++++++++++------ + 1 file changed, 28 insertions(+), 6 deletions(-) + +diff --git a/tools/i2cbusses.c b/tools/i2cbusses.c +index cb78cc7..41f5b6b 100644 +--- a/tools/i2cbusses.c ++++ b/tools/i2cbusses.c +@@ -137,7 +137,7 @@ struct i2c_adap *gather_i2c_busses(void) + FILE *f; + char fstype[NAME_MAX], sysfs[NAME_MAX], n[NAME_MAX]; + int foundsysfs = 0; +- int count=0; ++ int len, count = 0; + struct i2c_adap *adapters; + + adapters = calloc(BUNCH, sizeof(struct i2c_adap)); +@@ -220,18 +220,32 @@ struct i2c_adap *gather_i2c_busses(void) + + /* this should work for kernels 2.6.5 or higher and */ + /* is preferred because is unambiguous */ +- snprintf(n, NAME_MAX, "%s/%s/name", sysfs, de->d_name); ++ len = snprintf(n, NAME_MAX, "%s/%s/name", sysfs, de->d_name); ++ if (len >= NAME_MAX) { ++ fprintf(stderr, "%s: path truncated\n", n); ++ continue; ++ } + f = fopen(n, "r"); + /* this seems to work for ISA */ + if(f == NULL) { +- snprintf(n, NAME_MAX, "%s/%s/device/name", sysfs, de->d_name); ++ len = snprintf(n, NAME_MAX, "%s/%s/device/name", sysfs, ++ de->d_name); ++ if (len >= NAME_MAX) { ++ fprintf(stderr, "%s: path truncated\n", n); ++ continue; ++ } + f = fopen(n, "r"); + } + /* non-ISA is much harder */ + /* and this won't find the correct bus name if a driver + has more than one bus */ + if(f == NULL) { +- snprintf(n, NAME_MAX, "%s/%s/device", sysfs, de->d_name); ++ len = snprintf(n, NAME_MAX, "%s/%s/device", sysfs, ++ de->d_name); ++ if (len >= NAME_MAX) { ++ fprintf(stderr, "%s: path truncated\n", n); ++ continue; ++ } + if(!(ddir = opendir(n))) + continue; + while ((dde = readdir(ddir)) != NULL) { +@@ -240,8 +254,16 @@ struct i2c_adap *gather_i2c_busses(void) + if (!strcmp(dde->d_name, "..")) + continue; + if ((!strncmp(dde->d_name, "i2c-", 4))) { +- snprintf(n, NAME_MAX, "%s/%s/device/%s/name", +- sysfs, de->d_name, dde->d_name); ++ len = snprintf(n, NAME_MAX, ++ "%s/%s/device/%s/name", ++ sysfs, de->d_name, ++ dde->d_name); ++ if (len >= NAME_MAX) { ++ fprintf(stderr, ++ "%s: path truncated\n", ++ n); ++ continue; ++ } + if((f = fopen(n, "r"))) + goto found; + } +-- +2.14.3 + diff --git a/0003-py-smbus-Fix-FSF-address-in-smbusmodule.c.patch b/0003-py-smbus-Fix-FSF-address-in-smbusmodule.c.patch new file mode 100644 index 0000000..0dabed3 --- /dev/null +++ b/0003-py-smbus-Fix-FSF-address-in-smbusmodule.c.patch @@ -0,0 +1,34 @@ +From 066cc543547c7675a67f24b1281954619d300652 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= +Date: Fri, 24 Nov 2017 10:40:01 +0100 +Subject: [PATCH 3/3] py-smbus: Fix FSF address in smbusmodule.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The Free Software Foundation address was outdated. Discovered by +Fedora's rpmlint. The current address can be found at: +https://www.gnu.org/licenses/old-licenses/gpl-2.0.html#SEC4 + +Signed-off-by: Ondřej Lysoněk +--- + py-smbus/smbusmodule.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/py-smbus/smbusmodule.c b/py-smbus/smbusmodule.c +index 48a408b..b189106 100644 +--- a/py-smbus/smbusmodule.c ++++ b/py-smbus/smbusmodule.c +@@ -13,7 +13,8 @@ + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software +- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, ++ * MA 02110-1301, USA. + */ + + #include +-- +2.14.3 + diff --git a/i2c-tools-4.0.tar.xz b/i2c-tools-4.0.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..8348a96410ee12a7aadae36b8c35d13182d26848 GIT binary patch literal 79972 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 a0ln}9fPfiyIEoxTFb#_W000000a;ppkdW~J literal 0 HcmV?d00001 diff --git a/i2c-tools.spec b/i2c-tools.spec new file mode 100644 index 0000000..f96f336 --- /dev/null +++ b/i2c-tools.spec @@ -0,0 +1,170 @@ +Name: i2c-tools +Version: 4.0 +Release: 12 +Summary: A heterogeneous set of I2C tools for Linux +License: GPLv2+ LGPLv2+ +URL: https://i2c.wiki.kernel.org/index.php/I2C_Tools +Source0: https://www.kernel.org/pub/software/utils/i2c-tools/%{name}-%{version}.tar.xz + +Patch0: 0001-i2c-tools-i2cbusses-Avoid-buffer-overflows-in-sysfs-.patch +Patch1: 0002-tools-i2cbusses-Check-the-return-value-of-snprintf.patch +Patch2: 0003-py-smbus-Fix-FSF-address-in-smbusmodule.c.patch +Patch3: 0001-libi2c-Mention-the-correct-license-in-source-files.patch + +BuildRequires: perl-generators +BuildRequires: python3-devel +BuildRequires: gcc + +Requires: systemd-udev kmod +Provides: libi2c%{?_isa} = %{version}-%{release} +Obsoletes: libi2c +Obsoletes: python2-i2c-tools + +%description +This package contains a heterogeneous set of I2C tools for Linux: a bus +probing tool, a chip dumper, register-level access helpers, EEPROM +decoding scripts, and more. + +%package devel +Summary: Development files for the I2C library +License: LGPLv2+ +Requires: libi2c%{?_isa} = %{version}-%{release} + +%description devel +%{summary}. + +%package help +Summary: i2c-tools help + +%description help +%{summary}. + +%package eepromer +Summary: Programs for reading / writing i2c / smbus eeproms +# /usr/sbin/eeprom is Public Domain, the rest is GPLv2+ +License: GPLv2+ and Public Domain +# For the device nodes +Requires: %{name} = %{version}-%{release} + +%description eepromer +Programs for reading / writing i2c / smbus eeproms. Notice that writing the +eeproms in your system is very dangerous and is likely to render your system +unusable. Do not install, let alone use this, unless you really, _really_ know +what you are doing. + +%package -n python3-i2c-tools +Summary: Python 3 bindings for Linux SMBus access through i2c-dev +License: GPLv2 +%{?python_provide:%python_provide python3-i2c-tools} +Requires: libi2c%{?_isa} = %{version}-%{release} + +%description -n python3-i2c-tools +Python 3 bindings for Linux SMBus access through i2c-dev + +%package perl +Summary: i2c tools written in Perl +License: GPLv2+ +Requires: libi2c%{?_isa} = %{version}-%{release} + +%description perl +A collection of tools written in perl for use with i2c devices. + +#Build sections +%prep +%autosetup -n %{name}-%{version} -p1 + +%build +make CFLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_LD_FLAGS" BUILD_STATIC_LIB=0 EXTRA=eeprog +pushd eepromer +make CFLAGS="$RPM_OPT_FLAGS -I../include" LDFLAGS="$RPM_LD_FLAGS" +popd +pushd py-smbus +CFLAGS="$RPM_OPT_FLAGS -I../include" LDFLAGS="$RPM_LD_FLAGS" \ + %{__python3} setup.py build -b build-py3 +popd + + +%install +%make_install prefix=%{_prefix} BUILD_STATIC_LIB=0 \ + EXTRA=eeprog libdir=%{_libdir} +install -m 755 eepromer/{eepromer,eeprom} \ + $RPM_BUILD_ROOT%{_sbindir} +install -m 644 eepromer/{eepromer,eeprom}.8 \ + $RPM_BUILD_ROOT%{_mandir}/man8 +# Rename README file +mv eepromer/README eepromer/README.programs +mv py-smbus/README py-smbus/README.py +mv eeprom/README eeprom/README.perl + +pushd py-smbus +%{__python3} setup.py build -b build-py3 install --skip-build --root=$RPM_BUILD_ROOT +popd + +# cleanup +rm -f $RPM_BUILD_ROOT%{_bindir}/decode-edid.pl +# Remove unpleasant DDC tools. KMS already exposes the EDID block in sysfs, +# and edid-decode is a more complete tool than decode-edid. +rm -f $RPM_BUILD_ROOT%{_bindir}/{ddcmon,decode-edid} + +# for i2c-dev ondemand loading through kmod +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d +echo "alias char-major-89-* i2c-dev" > \ + $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/i2c-dev.conf +# for /dev/i2c-# creation (which are needed for kmod i2c-dev autoloading) +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/udev/makedev.d +for (( i = 0 ; i < 8 ; i++ )) do + echo "i2c-$i" >> $RPM_BUILD_ROOT%{_sysconfdir}/udev/makedev.d/99-i2c-dev.nodes +done + +# auto-load i2c-dev after reboot +mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/modules-load.d +echo 'i2c-dev' > $RPM_BUILD_ROOT%{_prefix}/lib/modules-load.d/%{name}.conf + +#Install and uninstall scripts +%post +# load i2c-dev after the first install +if [ "$1" = 1 ] ; then + /usr/sbin/modprobe i2c-dev +fi +exit 0 + +%ldconfig_post -n libi2c +%ldconfig_postun -n libi2c + +%files +%license COPYING COPYING.LGPL +%config(noreplace) %{_sysconfdir}/modprobe.d/i2c-dev.conf +%config(noreplace) %{_sysconfdir}/udev/makedev.d/99-i2c-dev.nodes +%{_prefix}/lib/modules-load.d/%{name}.conf +%{_sbindir}/i2c* +%exclude %{_sbindir}/i2c-stub* +%{_libdir}/libi2c.so.0* + +%files devel +%dir %{_includedir}/i2c +%{_includedir}/i2c/smbus.h +%{_libdir}/libi2c.so + +%files help +%{_mandir}/man8/i2c*.8.gz +%{_mandir}/man8/eepro*.8.gz +%{_mandir}/man1/decode-*.1.gz +%doc CHANGES README +%doc eepromer/README* +%doc eeprog/README.eeprog +%doc py-smbus/README.py +%doc eeprom/README.perl + +%files eepromer +%{_sbindir}/eepro* + +%files -n python3-i2c-tools +%{python3_sitearch}/* + +%files perl +%{_bindir}/decode-* +%{_sbindir}/i2c-stub* + +%changelog +* Wed Sep 19 2018 openEuler Buildteam - 4.0-12 +- Package init