X-Original-To: alpine-aports@mail.alpinelinux.org Delivered-To: alpine-aports@mail.alpinelinux.org Received: from mail.alpinelinux.org (dallas-a1.alpinelinux.org [127.0.0.1]) by mail.alpinelinux.org (Postfix) with ESMTP id 93607DC05D7 for ; Sun, 3 Apr 2016 05:21:24 +0000 (UTC) Received: from mail-pa0-f47.google.com (mail-pa0-f47.google.com [209.85.220.47]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mail.alpinelinux.org (Postfix) with ESMTPS id 4CB8BDC0501 for ; Sun, 3 Apr 2016 05:21:24 +0000 (UTC) Received: by mail-pa0-f47.google.com with SMTP id zm5so120735991pac.0 for ; Sat, 02 Apr 2016 22:21:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:subject:message-id:mime-version:content-disposition :user-agent; bh=/iBboNFBL79TjRN1Q7I5kHag22E7sGeIjkVpMebngos=; b=DVt/tjdconNxEhHFwsTde4v6yP03jCKNEq7OeYmq6gKj5RaXqf8d5zC1wi4Q0E6/H3 6CFtwLi8XvAb5DRr5O0uII5bIuiy0XOr5fvTC1HWil3XR6zsAujin/RGM0M1/usspniR +TPPQaSXPX3fd2fhUOIcmuowH13QjS8B9xgGp/AjiplX7n0C+LjM8Hx0wcNef5VmvGx5 R/LuInxLKYldBMEwLmrJneEa/gi2SWiR+iqxtU4TR9Zh559uLhde0gUwudEcT8kVx7FP /fLC14qHNyxfytMHb6M7nIAoLPJ8L7U92oHEo9yTfGDeXjPfrv7cAMJbh1YKSYSVE3Ju wfbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-disposition:user-agent; bh=/iBboNFBL79TjRN1Q7I5kHag22E7sGeIjkVpMebngos=; b=IggFjbFcY/Uebg6jUhFMhgYw7awgwZp5BA8y61OOw9wru2T/nPqJO/bna6tw+6GHnf uFhiWNSRMZcwYC+g+beaRScmrRoXGkHQWdAm7OTbHdHftr+TOa0tfz3OrsX3KPUmOBUk SHZQepKCYT7wnx92Qy+1XvMog75ZbnVh1lgkHiz3qO3+wYNrb4shjItgU7m8rB460+U2 P0zfoke4RfoTlARL2iXY5034lhh6xaz45aePKbaR3u2Wx00nP+6B+O5r3DsrQCDLEQL4 l3UN+GXZkCSPDwN67+TLydm8Nm6YrN/uzDJ+YAb0Ux9iEmeCy5v4PY9co6RUA5T/rBje bq6g== X-Gm-Message-State: AD7BkJLv2xZf5dinQLpmgvIyUBs/Dxffedib5TKFMNmzfZLxL3SLHmFTVvtz7JB4yXKlEg== X-Received: by 10.66.231.100 with SMTP id tf4mr43445675pac.44.1459660883408; Sat, 02 Apr 2016 22:21:23 -0700 (PDT) Received: from newbook ([50.0.225.136]) by smtp.gmail.com with ESMTPSA id wh9sm32476179pab.8.2016.04.02.22.21.22 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 02 Apr 2016 22:21:22 -0700 (PDT) Date: Sat, 2 Apr 2016 22:21:18 -0700 From: Isaac Dunham To: alpine-aports@lists.alpinelinux.org Subject: [alpine-aports] [RFC] Splitting linux-firmware Message-ID: <20160403052116.GA22996@newbook> X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="7AUc2qLy4jB3hD7Z" Content-Disposition: inline User-Agent: Mutt/1.5.24 (2015-08-30) X-Virus-Scanned: ClamAV using ClamSMTP --7AUc2qLy4jB3hD7Z Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hello, I recently checked the size of installed packages on my system, and found that linux-firmware was the largest (~120 megabytes). I need the Realtek firmware, and perhaps could use the i915 firmware. So I figured it would be a significant cutdown in installed size, as well as a major reduction in downloads, if it were possible to just select firmware from a couple of manufacturers. While I was in the process of doing this, I noticed a few smaller issues: -the non-firmware files that the APKBUILD tries to delete are actually located in /lib/firmware, not /usr/lib/firmware -the source for carl9170 firmware is included in the final package Here's a tentative patch that fixes those issues and tries to split things up. Does this look like a good idea? Should any further splitting be done? For example: -splitting iwlwifi firmware off because it's the bulk of the intel firmware, but not the bulk of the users; -splitting qlogic, 3com, and chelsio firmware from -misc Thanks, Isaac Dunham --7AUc2qLy4jB3hD7Z Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="0001-main-linux-firmware-split-package.patch" >From 0059b36e8677ca5a0567d68a2c7790566a099843 Mon Sep 17 00:00:00 2001 From: Isaac Dunham Date: Sat, 2 Apr 2016 21:51:48 -0700 Subject: [PATCH] main/linux-firmware: split package linux-firmware is about 120 megabytes, close to twice the size of the kernel; most users only need about 1-5 files (gpu, wireless, ethernet, bluetooth, cpu). By splitting this package into smaller parts, it's possible to cut the footprint down significantly; I would end up needing linux-firmware-realtek and perhaps linux-firmware-intel, for ~40 megabytes. There is a case to be made for splitting -iwl from -intel: iwl is roughly 23 megabytes, the bulk of -intel. Smaller manfacturers didn't get split out, and form -misc. --- main/linux-firmware/APKBUILD | 87 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 4 deletions(-) diff --git a/main/linux-firmware/APKBUILD b/main/linux-firmware/APKBUILD index 0a9bb49..a9b68fb 100644 --- a/main/linux-firmware/APKBUILD +++ b/main/linux-firmware/APKBUILD @@ -2,17 +2,19 @@ # Maintainer: Natanael Copa pkgname=linux-firmware pkgver=20151021 -pkgrel=0 +pkgrel=1 pkgdesc="firmware files for linux" #url="http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=summary" url="http://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git;a=summary" arch="noarch" license="GPL" -depends= +subpackages="${pkgname}-intel ${pkgname}-amd ${pkgname}-atheros + ${pkgname}-broadcom ${pkgname}-nvidia ${pkgname}-marvell + ${pkgname}-realtek ${pkgname}-ti ${pkgname}-misc" +depends="${subpackages}" makedepends= install="" -subpackages= replaces="linux-grsec linux-vserver" source="http://dev.alpinelinux.org/archive/$pkgname/$pkgname-${pkgver}.tar.gz" @@ -49,7 +51,84 @@ build() { package() { cd "${_builddir}" make DESTDIR="${pkgdir}" FIRMWAREDIR="/lib/firmware" install || return 1 - rm -f "${pkgdir}/usr/lib/firmware/{Makefile,README,configure,GPL-3}" + rm -f "${pkgdir}/lib/firmware/{Makefile,README,configure,GPL-3}" || return 1 + # carl9170 firmware is included as prebuilt and source + # this is the source code. + rm -rf "${pkgdir}/lib/firmware/carl9170fw/" || return 1 +} + +intel() { + pkgdesc="firmware for Intel hardware" + mkdir -p "$subpkgdir/lib/firmware" || return 1 + mv "$pkgdir"/lib/firmware/iwlwifi* "$subpkgdir/lib/firmware/" || return 1 + for S in e100 intel i915; do + mv "$pkgdir"/lib/firmware/"$S" "$subpkgdir/lib/firmware/" || return 1 + done +} + +amd() { + pkgdesc="firmware for AMD/ATI hardware" + mkdir -p "$subpkgdir/lib/firmware" || return 1 + for S in amd-ucode amdgpu radeon r128; do + mv "$pkgdir"/lib/firmware/"$S" "$subpkgdir"/lib/firmware || return 1 + done +} + +atheros() { + pkgdesc="firmware for Atheros and Qualcomm/Atheros hardware" + mkdir -p "$subpkgdir/lib/firmware" || return 1 + for S in ar3k ath10k ath9k_htc ath6k qca; do + mv "$pkgdir"/lib/firmware/"$S" "$subpkgdir"/lib/firmware || return 1 + done + for F in "$pkgdir"/lib/firmware/ath*.* \ + "$pkgdir"/lib/firmware/ar*.* \ + "$pkgdir"/lib/firmware/carl9170*.* + do mv "$F" "$subpkgdir"/lib/firmware/ || return 1 + done +} + +broadcom() { + pkgdesc="firmware for Broadcom hardware" + mkdir -p "$subpkgdir/lib/firmware" || return 1 + cd "$pkgdir"/lib/firmware + for S in brcm bnx2* tigon; do + mv $S "$subpkgdir"/lib/firmware/ || return 1 + done +} + +nvidia() { + pkgdesc="firmware for NVIDIA hardware" + mkdir -p "$subpkgdir"/lib/firmware || return 1 + mv "$pkgdir"/lib/firmware/nvidia "$subpkgdir"/lib/firmware || return 1 +} + +marvell() { + pkgdesc="firmware for Marvell hardware (including Libertas wireless cards)" + mkdir -p "$subpkgdir"/lib/firmware || return 1 + cd "$pkgdir"/lib/firmware || return 1 + mv mwl8k mwlwifi mrvl libertas "$subpkgdir"/lib/firmware/ || return 1 +} + +realtek() { + pkgdesc="firmware for Realtek hardware (networking and bluetooth)" + mkdir -p "$subpkgdir/lib/firmware" || return 1 + cd "$pkgdir"/lib/firmware || return 1 + for S in RTL8192E rtl_bt rtl_nic rtlwifi; do + mv $S "$subpkgdir"/lib/firmware/ || return 1 + done +} + +ti() { + pkgdesc="firmware for TI hardware (usb-serial adapters, wireless, SoCs)" + mkdir -p "$subpkgdir"/lib/firmware || return 1 + cd "$pkgdir"/lib/firmware || return 1 + mv ti-* ti_*.fw "$subpkgdir"/lib/firmware || return 1 +} + +misc() { + pkgdesc="firmware for hardware from assorted manufacturers" + mkdir -p "$subpkgdir"/lib || return 1 + mv "$pkgdir"/lib/firmware "$subpkgdir"/lib/ } md5sums="2960b7241de622362f1ef93592ab16d4 linux-firmware-20151021.tar.gz" -- 2.7.4 --7AUc2qLy4jB3hD7Z-- --- Unsubscribe: alpine-aports+unsubscribe@lists.alpinelinux.org Help: alpine-aports+help@lists.alpinelinux.org ---