├── images
├── packages
├── .gitignore
├── gpdpocket-gnome-config
│ ├── files
│ │ ├── gnome
│ │ │ ├── profile
│ │ │ ├── 02subpixel
│ │ │ ├── 01scale
│ │ │ └── 00touchscreen
│ │ ├── DEBIAN
│ │ │ ├── control
│ │ │ └── postinst
│ │ └── monitors.xml
│ └── make.py
├── gpdpocket-power
│ ├── files
│ │ ├── DEBIAN
│ │ │ ├── prerm
│ │ │ ├── postinst
│ │ │ ├── control
│ │ │ ├── preinst
│ │ │ └── postrm
│ │ ├── gpd-fan.sh
│ │ ├── gpd-fan.conf
│ │ ├── gpd-fan.service
│ │ ├── gpd-fan.py
│ │ └── tlp
│ └── make.py
├── gpdpocket-audio
│ ├── files
│ │ ├── chtrt5645.conf
│ │ ├── DEBIAN
│ │ │ ├── prerm
│ │ │ ├── control
│ │ │ ├── preinst
│ │ │ ├── postrm
│ │ │ └── postinst
│ │ ├── daemon.conf
│ │ ├── default.pa
│ │ └── HiFi.conf
│ └── make.py
├── gpdpocket-xorg
│ ├── files
│ │ ├── config
│ │ │ ├── 40-monitor.conf
│ │ │ ├── 99-touchscreen.conf
│ │ │ └── 20-intel.conf
│ │ └── DEBIAN
│ │ │ └── control
│ └── make.py
├── gpdpocket-touchegg-config
│ ├── files
│ │ ├── DEBIAN
│ │ │ ├── control
│ │ │ ├── postrm
│ │ │ └── preinst
│ │ ├── 01_touchegg
│ │ └── touchegg.conf
│ └── make.py
├── linux-firmware
│ ├── files
│ │ ├── DEBIAN
│ │ │ ├── postinst
│ │ │ └── control
│ │ └── brcmfmac4356-pcie.txt
│ └── make.py
├── gpdpocket-xfce4-config
│ ├── files
│ │ ├── DEBIAN
│ │ │ └── control
│ │ └── xfce4
│ │ │ ├── xfconf
│ │ │ └── xfce-perchannel-xml
│ │ │ │ ├── xfce4-appfinder.xml
│ │ │ │ ├── xfce4-settings-editor.xml
│ │ │ │ ├── displays.xml
│ │ │ │ ├── xsettings.xml
│ │ │ │ ├── xfce4-panel.xml
│ │ │ │ └── xfwm4.xml
│ │ │ └── panel
│ │ │ └── whiskermenu-1.rc
│ └── make.py
├── linux-headers-generic
│ ├── files
│ │ └── DEBIAN
│ │ │ └── control
│ └── make.py
├── gpdpocket
│ ├── files
│ │ └── DEBIAN
│ │ │ └── control
│ └── make.py
└── linux-image-generic
│ ├── files
│ └── DEBIAN
│ │ └── control
│ └── make.py
├── .gitignore
├── .gitmodules
├── README.md
├── respin
├── files
│ └── iso.hashes.sha256sum
├── Makefile
└── respin.py
├── Makefile
├── common
├── keyFile
└── kernel-patches
│ └── 0002-debian-changelog.patch
└── LICENSE
/images:
--------------------------------------------------------------------------------
1 | respin/output
--------------------------------------------------------------------------------
/packages/.gitignore:
--------------------------------------------------------------------------------
1 | */build/
2 | */output/
3 | */tmp/
4 |
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /respin/output/
2 | /respin/images/
3 | /respin/tmp/
4 | /repo
5 |
6 |
--------------------------------------------------------------------------------
/packages/gpdpocket-gnome-config/files/gnome/profile:
--------------------------------------------------------------------------------
1 | user-db:user
2 | system-db:local
--------------------------------------------------------------------------------
/packages/gpdpocket-gnome-config/files/gnome/02subpixel:
--------------------------------------------------------------------------------
1 | [org/gnome/settings-daemon/plugins/xsettings]
2 | rgba-order='vrbg'
--------------------------------------------------------------------------------
/packages/gpdpocket-gnome-config/files/gnome/01scale:
--------------------------------------------------------------------------------
1 | [org/gnome/desktop/interface]
2 | scaling-factor=uint32 0
3 | text-scaling-factor=uint32 1
4 |
--------------------------------------------------------------------------------
/packages/gpdpocket-power/files/DEBIAN/prerm:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # postinst script for gpdpocket-power
3 |
4 | set -e
5 |
6 | TLP_CONFIG=/etc/default/tlp
7 |
--------------------------------------------------------------------------------
/packages/gpdpocket-audio/files/chtrt5645.conf:
--------------------------------------------------------------------------------
1 | Comment "Intel SoC Audio Device"
2 | SectionUseCase."HiFi" {
3 | File "HiFi.conf"
4 | Comment "Default"
5 | }
--------------------------------------------------------------------------------
/packages/gpdpocket-power/files/DEBIAN/postinst:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # postinst script for gpdpocket-power
3 |
4 | set -e
5 |
6 | TLP_CONFIG=/etc/default/tlp
7 |
--------------------------------------------------------------------------------
/packages/gpdpocket-gnome-config/files/gnome/00touchscreen:
--------------------------------------------------------------------------------
1 | [org/gnome/desktop/peripherals/touchscreens/0416:038f]
2 | display=['unknown', 'unknown', 'unknown']
3 |
--------------------------------------------------------------------------------
/packages/gpdpocket-xorg/files/config/40-monitor.conf:
--------------------------------------------------------------------------------
1 | Section "Monitor"
2 | Identifier "DSI1"
3 | Option "Rotate" "right"
4 | EndSection
5 |
6 |
--------------------------------------------------------------------------------
/packages/gpdpocket-audio/files/DEBIAN/prerm:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # postinst script for gpdpocket-power
3 |
4 | set -e
5 |
6 | DEFAULT_PA="/etc/pulse/default.pa"
7 | DAEMON_CONF="/etc/pulse/daemon.conf"
8 |
--------------------------------------------------------------------------------
/packages/gpdpocket-xorg/files/config/99-touchscreen.conf:
--------------------------------------------------------------------------------
1 | Section "InputClass"
2 | Identifier "calibration"
3 | MatchProduct "Goodix Capacitive TouchScreen"
4 | Option "TransformationMatrix" "0 1 0 -1 0 1 0 0 1"
5 | EndSection
6 |
7 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "external/kernel"]
2 | path = external/kernel
3 | url = https://github.com/nexus511/linux-sunxi.git
4 | [submodule "external/linux-firmware"]
5 | path = external/linux-firmware
6 | url = https://github.com/nexus511/linux-firmware.git
7 |
--------------------------------------------------------------------------------
/packages/gpdpocket-xorg/files/config/20-intel.conf:
--------------------------------------------------------------------------------
1 | Section "Device"
2 | Identifier "Intel Graphics"
3 | Driver "intel"
4 | Option "AccelMethod" "sna"
5 | Option "TearFree" "true"
6 | Option "DRI" "3"
7 | EndSection
--------------------------------------------------------------------------------
/packages/gpdpocket-gnome-config/files/DEBIAN/control:
--------------------------------------------------------------------------------
1 | Package: {name}
2 | Source: {name}
3 | Version: {version}
4 | Architecture: {architecture}
5 | Maintainer: {maintainer}
6 | Section: gnome
7 | Priority: optional
8 | Description: gnome Configuration for GPD Pocket.
9 |
--------------------------------------------------------------------------------
/packages/gpdpocket-power/files/gpd-fan.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | case $1 in
4 | pre)
5 | # stop fan control script
6 | systemctl stop gpd-fan.service
7 | ;;
8 | post)
9 | # start fan control script
10 | systemctl start gpd-fan.service
11 | ;;
12 | esac
13 |
--------------------------------------------------------------------------------
/packages/gpdpocket-power/files/DEBIAN/control:
--------------------------------------------------------------------------------
1 | Package: {name}
2 | Source: {name}
3 | Version: {version}
4 | Architecture: {architecture}
5 | Maintainer: {maintainer}
6 | Depends: lm-sensors, thermald, tlp
7 | Section: admin
8 | Priority: optional
9 | Description: Power daemon for GPD Pocket.
10 |
--------------------------------------------------------------------------------
/packages/gpdpocket-power/files/DEBIAN/preinst:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # postinst script for gpdpocket-power
3 |
4 | set -e
5 |
6 | TLP_CONFIG=/etc/default/tlp
7 |
8 | if test "$1" = install; then
9 | echo "adding diversion for ${TLP_CONFIG}"
10 | dpkg-divert --add --rename "${TLP_CONFIG}"
11 | fi
12 |
--------------------------------------------------------------------------------
/packages/gpdpocket-audio/files/DEBIAN/control:
--------------------------------------------------------------------------------
1 | Package: {name}
2 | Source: {name}
3 | Version: {version}
4 | Architecture: {architecture}
5 | Maintainer: {maintainer}
6 | Depends: gstreamer1.0-vaapi, pulseaudio
7 | Section: admin
8 | Priority: optional
9 | Description: Audio configuration for GPD Pocket.
10 |
--------------------------------------------------------------------------------
/packages/gpdpocket-touchegg-config/files/DEBIAN/control:
--------------------------------------------------------------------------------
1 | Package: {name}
2 | Source: {name}
3 | Version: {version}
4 | Architecture: {architecture}
5 | Maintainer: {maintainer}
6 | Depends: touchegg
7 | Section: xfce
8 | Priority: optional
9 | Description: Package containing configuration defaults for touchegg.
10 |
--------------------------------------------------------------------------------
/packages/gpdpocket-power/files/DEBIAN/postrm:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # postinst script for gpdpocket-power
3 |
4 | set -e
5 |
6 | TLP_CONFIG=/etc/default/tlp
7 |
8 | case "$1" in
9 | remove|abort-install|disappear)
10 | echo "remove diversion for ${TLP_CONFIG}"
11 | dpkg-divert --remove --rename "${TLP_CONFIG}"
12 | ;;
13 | esac
14 |
--------------------------------------------------------------------------------
/packages/gpdpocket-xorg/files/DEBIAN/control:
--------------------------------------------------------------------------------
1 | Package: {name}
2 | Source: {name}
3 | Version: {version}
4 | Architecture: {architecture}
5 | Maintainer: {maintainer}
6 | Depends: i965-va-driver, mesa-utils, va-driver-all, vainfo, x11-xserver-utils, xinput
7 | Section: x11
8 | Priority: optional
9 | Description: X configuration package for GPD Pocket.
10 |
--------------------------------------------------------------------------------
/packages/gpdpocket-power/files/gpd-fan.conf:
--------------------------------------------------------------------------------
1 | # Time between temperature checks (in seconds)
2 | TIME=10
3 |
4 | # Maximum temperature before turbo boost is disabled
5 | TURBO=60
6 |
7 | # Temperature to set fans to minimum speed
8 | MIN=40
9 |
10 | # Temperature to set fans to medium speed
11 | MED=50
12 |
13 | # Temperature to set fans to maximum speed
14 | MAX=60
--------------------------------------------------------------------------------
/packages/linux-firmware/files/DEBIAN/postinst:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | set -e
4 |
5 | for line in btusb loop overlay pwm-lpss pwm-lpss-platform squashfs; do
6 | grep -q "^$line\$" /etc/initramfs-tools/modules || echo $line >>/etc/initramfs-tools/modules
7 | done
8 |
9 | if [ -x /usr/sbin/update-initramfs ]; then
10 | /usr/sbin/update-initramfs -u -k all
11 | fi
12 |
13 |
--------------------------------------------------------------------------------
/packages/gpdpocket-touchegg-config/files/DEBIAN/postrm:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # if apt has removed the touchegg configuration, fix it
4 | if [ -f /usr/share/touchegg/touchegg.conf.distrib.gpd-pocket -a ! -e /usr/share/touchegg/touchegg.conf ]; then
5 | echo "reset original touchegg configuration"
6 | mv -v /usr/share/touchegg/touchegg.conf.distrib.gpd-pocket /usr/share/touchegg/touchegg.conf
7 | fi
8 |
9 |
--------------------------------------------------------------------------------
/packages/gpdpocket-power/files/gpd-fan.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=GPD Fan Daemon
3 | DefaultDependencies=no
4 | After=sysinit.target local-fs.target
5 | Before=basic.target
6 |
7 | [Service]
8 | Type=simple
9 | EnvironmentFile=/etc/gpd/fan.conf
10 | ExecStart=/usr/local/sbin/gpd-fan --time=${TIME} --turbo=${TURBO} --min=${MIN} --med=${MED} --max=${MAX}
11 |
12 | [Install]
13 | WantedBy=basic.target
--------------------------------------------------------------------------------
/packages/gpdpocket-xfce4-config/files/DEBIAN/control:
--------------------------------------------------------------------------------
1 | Package: {name}
2 | Source: {name}
3 | Version: {version}
4 | Architecture: {architecture}
5 | Maintainer: {maintainer}
6 | Section: xfce
7 | Priority: optional
8 | Description: XFCE4 Configuration for GPD Pocket.
9 | This package actually places some defaults into the user skeleton directory.
10 | It does not change any settings for existing users.
11 |
--------------------------------------------------------------------------------
/packages/linux-headers-generic/files/DEBIAN/control:
--------------------------------------------------------------------------------
1 | Package: {name}
2 | Version: {version}
3 | Architecture: {architecture}
4 | Priority: optional
5 | Section: devel
6 | Source: linux-meta
7 | Origin: Ubuntu
8 | Maintainer: {maintainer}
9 | Installed-Size: 13,3 kB
10 | Depends: {linux-headers-package}
11 | Description: Generic Linux kernel headers
12 | This package will always depend on the latest generic kernel headers
13 | available.
14 |
--------------------------------------------------------------------------------
/packages/gpdpocket-touchegg-config/files/DEBIAN/preinst:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # backup original configuration, if installed for the first time
4 | if [ ! -f /usr/share/touchegg/touchegg.conf.gpd-pocket ]; then
5 | echo "preparing initial configuration"
6 | mv -v /usr/share/touchegg/touchegg.conf /usr/share/touchegg/touchegg.conf.distrib.gpd-pocket || true
7 | ln -sf /usr/share/touchegg/touchegg.conf.gpd-pocket /usr/share/touchegg/touchegg.conf
8 | fi
9 |
--------------------------------------------------------------------------------
/packages/gpdpocket-xfce4-config/files/xfce4/xfconf/xfce-perchannel-xml/xfce4-appfinder.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/packages/gpdpocket-xfce4-config/files/xfce4/xfconf/xfce-perchannel-xml/xfce4-settings-editor.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/packages/linux-firmware/files/DEBIAN/control:
--------------------------------------------------------------------------------
1 | Package: {name}
2 | Version: {version}
3 | Architecture: {architecture}
4 | Priority: optional
5 | Section: misc
6 | Origin: Ubuntu
7 | Maintainer: {maintainer}
8 | Installed-Size: 202 MB
9 | Provides: atmel-firmware
10 | Conflicts: atmel-firmware
11 | Replaces: atmel-firmware, linux-restricted-common
12 | Description: Firmware for Linux kernel drivers
13 | This package provides firmware used by Linux kernel drivers.
14 |
--------------------------------------------------------------------------------
/packages/gpdpocket-touchegg-config/files/01_touchegg:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # starts touchegg application
4 | PREFIX="$HOME/.config/touchegg/.run"
5 | mkdir -p "$PREFIX"
6 | PIDFILE="$PREFIX/touchegg.$USER$DISPLAY.pid"
7 | LOCK="$PREFIX/touchegg.$USER$DISPLAY.lock"
8 |
9 | start_touchegg() {
10 | (
11 | flock -n 9 || exit 1
12 | touchegg 2>/dev/null >/dev/null &
13 | PID=$!
14 | echo "$!" >"$PIDFILE"
15 | wait $PID
16 | ) 9>"$LOCK"
17 | }
18 |
19 | start_touchegg &
20 |
--------------------------------------------------------------------------------
/packages/gpdpocket/files/DEBIAN/control:
--------------------------------------------------------------------------------
1 | Package: {name}
2 | Source: {name}
3 | Version: {version}
4 | Architecture: {architecture}
5 | Maintainer: {maintainer}
6 | Depends: gpdpocket-xorg, linux-image-generic (>= 4.13.0 ), gpdpocket-power, gpdpocket-audio, linux-firmware (>= 1.999.0-gpdpocket ), gpdpocket-touchegg-config
7 | Recommends: linux-headers-generic (>= 4.13.0 )
8 | Section: admin
9 | Priority: optional
10 | Description: Meta package that pulls most of the other gpdpocket packages.
11 |
--------------------------------------------------------------------------------
/packages/linux-image-generic/files/DEBIAN/control:
--------------------------------------------------------------------------------
1 | Package: {name}
2 | Version: {version}
3 | Architecture: {architecture}
4 | Priority: optional
5 | Section: kernel
6 | Source: linux-meta
7 | Origin: Ubuntu
8 | Maintainer: {maintainer}
9 | Installed-Size: 13,3 kB
10 | Depends: {linux-image-package}, {linux-extra-package}, linux-firmware (>= 1.999.0-gpdpocket), thermald
11 | Description: Generic Linux kernel image
12 | This package will always depend on the latest generic kernel image
13 | available.
14 |
--------------------------------------------------------------------------------
/packages/gpdpocket-audio/files/DEBIAN/preinst:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # postinst script for gpdpocket-power
3 |
4 | set -e
5 |
6 | DEFAULT_PA="/etc/pulse/default.pa"
7 | DAEMON_CONF="/etc/pulse/daemon.conf"
8 | CHTRT5645_CONF="/usr/share/alsa/ucm/chtrt5645/chtrt5645.conf"
9 | HIFI_CONF="usr/share/alsa/ucm/chtrt5645/HiFi.conf"
10 |
11 | if test "$1" = install; then
12 | echo "adding diversion for ${DEFAULT_PA}"
13 | dpkg-divert --add --rename "${DEFAULT_PA}"
14 | echo "adding diversion for ${DAEMON_CONF}"
15 | dpkg-divert --add --rename "${DAEMON_CONF}"
16 | fi
17 |
--------------------------------------------------------------------------------
/packages/gpdpocket-gnome-config/files/DEBIAN/postinst:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | echo "update dconf database"
4 | dconf update
5 |
6 | echo "provide monitors.xml to users that do not have one"
7 | for dn in /home/*; do
8 | echo "checking $dn..."
9 | user_directory=$dn
10 | user_name=$(sed -ne "s|\(^[^:]*\):.*:$dn:.*$|\1|gp;" /etc/passwd)
11 | destination="$dn/.config/monitors.xml"
12 | if [ "x$user_name" = "x" ]; then
13 | continue
14 | fi
15 |
16 | if [ -e "$destination" ]; then
17 | continue
18 | fi
19 |
20 | echo "try to set monitors.xml on $user_name"
21 | cp -v /etc/skel/.config/monitors.xml "$destination" || true
22 | chown $user_name "$destination"
23 | done
24 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # gpd-ubuntu-packages
2 | This repository shall provide the base for building ubuntu packages from most of the patches currently used to get linux on the gpd-pocket.
3 |
4 | This is still work in progress. For more information visit https://apt.nexus511.net/ .
5 |
6 | # Note
7 | This is work in process and will be basically be build on https://github.com/cawilliamson/ansible-gpdpocket .
8 |
9 | # Required packages
10 |
11 | To properly build the packages you need
12 |
13 | - dpkg-sig
14 | - dpkg-dev
15 | - syslinux-utils
16 | - isolinux
17 | - xorriso
18 | - libudev-dev
19 | - pciutils-dev
20 | - libelf-dev
21 | - build-essential
22 | - libssl-dev
23 |
24 | to be installed.
25 |
26 |
27 |
--------------------------------------------------------------------------------
/packages/gpdpocket-audio/files/DEBIAN/postrm:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # postinst script for gpdpocket-power
3 |
4 | set -e
5 |
6 | DEFAULT_PA="/etc/pulse/default.pa"
7 | DAEMON_CONF="/etc/pulse/daemon.conf"
8 | CHTRT5645_CONF="/usr/share/alsa/ucm/chtrt5645/chtrt5645.conf"
9 |
10 | case "$1" in
11 | remove|abort-install|disappear)
12 | echo "remove diversion for ${DEFAULT_PA}"
13 | dpkg-divert --remove --rename "${DEFAULT_PA}"
14 | echo "remove diversion for ${DAEMON_CONF}"
15 | dpkg-divert --remove --rename "${DAEMON_CONF}"
16 |
17 | if dpkg-divert --list | grep -F "${CHTRT5645_CONF}.distrib"; then
18 | echo "remove diversion for ${CHTRT5645_CONF}"
19 | dpkg-divert --remove --rename "${CHTRT5645_CONF}"
20 | fi
21 | ;;
22 | esac
23 |
24 |
--------------------------------------------------------------------------------
/packages/gpdpocket-xfce4-config/files/xfce4/xfconf/xfce-perchannel-xml/displays.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/packages/gpdpocket-audio/files/DEBIAN/postinst:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # postinst script for gpdpocket-power
3 |
4 | set -e
5 |
6 | # this is a dirty hack but as ubuntu is overwriting some of the files
7 | # in se future and we want our stuff in place for gpdpocket, this is
8 | # for now my best idea. diversions would get quite complex if we do not
9 | # want to break original packages updated later.
10 | mkdir -p /usr/share/alsa/ucm/chtrt5645
11 |
12 | CHTRT5645_CONF=/usr/share/alsa/ucm/chtrt5645/chtrt5645.conf
13 | HIFI_CONF=/usr/share/alsa/ucm/chtrt5645/HiFi.conf
14 |
15 | if [ ! -f ${CHTRT5645_CONF}.gpdpocket-audio ]; then
16 | mv ${CHTRT5645_CONF} ${CHTRT5645_CONF}.gpdpocket-audio || true
17 | fi
18 |
19 | if [ ! -f ${HIFI_CONF}.gpdpocket-audio ]; then
20 | mv ${HIFI_CONF} ${HIFI_CONF}.gpdpocket-audio || true
21 | fi
22 |
23 | mv /tmp/gpdpocket-audio/chtrt5645.conf ${CHTRT5645_CONF}
24 | mv /tmp/gpdpocket-audio/HiFi.conf ${HIFI_CONF}
25 | rm -rf /tmp/gpdpocket-audio
26 |
27 |
--------------------------------------------------------------------------------
/packages/gpdpocket-gnome-config/files/monitors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | no
4 |
18 |
19 |
20 | no
21 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/respin/files/iso.hashes.sha256sum:
--------------------------------------------------------------------------------
1 | 1384ac8f2c2a6479ba2a9cbe90a585618834560c477a699a4a7ebe7b5345ddc1 images/ubuntu-16.04.3-desktop-amd64.iso
2 | b718c7fb1066589af52f4ba191775b0fb514c5fb6fa7d91367043e1db06d8a0b images/ubuntu-17.04-desktop-amd64.iso
3 | 204c08075e8537000b4d38009fe3cad1210816269e314879918368312c74bce8 images/xubuntu-16.04.1-desktop-amd64.iso
4 | fcbc94735164755d6affe2ef037935bc6e229380fcbe599b54ea3542fc659b21 images/xubuntu-17.04-desktop-amd64.iso
5 | d50e69a3e6d6b9d4b9cbe56cd3736cef665b708a4a2e5d9024f8eef439a91bba images/linuxmint-18.2-cinnamon-64bit.iso
6 | 9173901fbead7d2ece2454f8f51dbb375e1dfdfc74cfaef450342a3144955fe1 images/linuxmint-18.2-kde-64bit.iso
7 | 1e5110d58794634ba935678825ce0d5279daa03d41c81226a871e8497e3cc35a images/linuxmint-18.2-mate-64bit.iso
8 | 2dcf4ccd76657d42c7e4f14e9e237da9ab0a07028b5ba63a95262a7052f96e9b images/linuxmint-18.2-xfce-64bit.iso
9 | ab1a9c2353180050daa2a481fb1941592bcd43f4b2c70e1fb68b442812497672 images/lubuntu-17.04-desktop-amd64.iso
10 | 47f1659a63f3add15ca7b55bd597ab11ab7d1cb8072c947967ab3f0e9f0a7e6c images/lubuntu-16.04.3-desktop-amd64.iso
11 | 4ab7a943089a800ab4d01adb1fc41c07dc81ccd8ba79ff57a243b73e72976862 images/xubuntu-16.04.3-desktop-amd64.iso
12 | 5224e9f5db84e8f0f09c8abbb3917d6ab0ee528ca34aecf742b67d608a17422e images/ubuntu-gnome-17.04-desktop-amd64.iso
13 | 5849c82e323a28f7774ac8fa21ad76d22cdcd8eb39dfae7b4245d9f9a39c04ff images/ubuntu-gnome-16.04.3-desktop-amd64.iso
14 |
--------------------------------------------------------------------------------
/packages/gpdpocket/make.py:
--------------------------------------------------------------------------------
1 | import shutil
2 | import subprocess
3 | import os
4 | import tarfile
5 |
6 | class Config(object):
7 | build = os.path.abspath("build")
8 | files = os.path.abspath("files")
9 | output = os.path.abspath("output")
10 | manifest = os.path.abspath("build/DEBIAN")
11 | temp = os.path.abspath("tmp")
12 | version = "0.1.4"
13 | variables = {
14 | "architecture": "all",
15 | "maintainer": "Falk Garbsch ",
16 | "name": "gpdpocket",
17 | }
18 |
19 | print "first we cleanup our stuff"
20 | config = Config()
21 | for rdir in [config.build, config.temp, config.output]:
22 | try:
23 | print ">> remove %s" % (rdir)
24 | shutil.rmtree(rdir)
25 | except:
26 | pass
27 |
28 | print "create directories"
29 | os.makedirs(config.temp)
30 | os.makedirs(config.output)
31 | os.makedirs(config.build)
32 | os.makedirs(config.manifest)
33 |
34 | print "write control"
35 | variables = config.variables
36 | variables["version"] = config.version
37 | control = open(config.files + "/DEBIAN/control", "rb").read()
38 | fp = open(config.manifest + "/control", "wb")
39 | fp.write(control.format(**variables))
40 | fp.flush()
41 | fp.close()
42 |
43 | print "building binary package"
44 | command = ["fakeroot", "dpkg-deb", "-b", config.build]
45 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"]))
46 | subprocess.call(command)
47 |
48 | print "done"
49 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | KEY_ID:=F00FA013
2 | MAKE_TARGETS:=$(addsuffix _build,$(shell ls */*/make.py))
3 | REPO_BASE:=repo
4 | REPO_DIR:=$(REPO_BASE)/dists/stable/main/binary
5 | KEYFILE:=common/keyFile
6 |
7 | all:
8 |
9 | packages: $(MAKE_TARGETS)
10 | make update_repo
11 |
12 |
13 | %/make.py_build:
14 | (cd "`dirname "$@"`"; python2 make.py)
15 |
16 | external/kernel/.kernel_patched: external/kernel
17 | (cd external/kernel && bash ./patch_kernel )
18 |
19 | build_kernel: external/kernel/.kernel_patched
20 | rm -rf external/*.deb packages/prebuilt
21 | (cd external/kernel && bash ./build_kernel )
22 | mkdir -p packages/prebuilt/output
23 | mv external/*.deb packages/prebuilt/output
24 |
25 | update_repo: repo
26 | cp -v packages/*/output/*.deb $(REPO_DIR)
27 | (cd $(REPO_DIR); dpkg-sig -k $(KEY_ID) *.deb)
28 | cp $(KEYFILE) $(REPO_BASE)
29 | (cd $(REPO_DIR); dpkg-scanpackages -m . >Packages)
30 | cat $(REPO_DIR)/Packages | gzip --fast >$(REPO_DIR)/Packages.gz
31 | cat $(REPO_DIR)/Packages | xz -z >$(REPO_DIR)/Packages.xz
32 | cat $(REPO_DIR)/Packages | lzma -z >$(REPO_DIR)/Packages.lz
33 | rm -f $(REPO_DIR)/InRelease $(REPO_DIR)/Release.gpg
34 | (cd $(REPO_DIR) ; apt-ftparchive release . > Release ; \
35 | gpg --clearsign --digest-algo SHA256 --default-key $(KEY_ID) -o InRelease Release; \
36 | gpg --digest-algo SHA256 --default-key $(KEY_ID) -abs -o Release.gpg Release )
37 |
38 | sync_repo: update_repo
39 | rsync -va --delete repo/. ssh-rsa nexus511.repo:htdocs/repo_testing
40 |
41 | images: update_repo
42 | (cd respin && make)
43 |
44 | repo:
45 | mkdir -p $(REPO_DIR)
46 |
47 |
--------------------------------------------------------------------------------
/packages/gpdpocket-xfce4-config/make.py:
--------------------------------------------------------------------------------
1 | import shutil
2 | import subprocess
3 | import os
4 | import tarfile
5 |
6 | class Config(object):
7 | build = os.path.abspath("build")
8 | files = os.path.abspath("files")
9 | output = os.path.abspath("output")
10 | manifest = os.path.abspath("build/DEBIAN")
11 | temp = os.path.abspath("tmp")
12 | templates = os.path.abspath("files/DEBIAN")
13 | version = "0.1.0"
14 | variables = {
15 | "architecture": "all",
16 | "maintainer": "Falk Garbsch ",
17 | "name": "gpdpocket-xfce-config",
18 | }
19 |
20 | print "first we cleanup our stuff"
21 | config = Config()
22 | for rdir in [config.build, config.temp, config.output]:
23 | try:
24 | print ">> remove %s" % (rdir)
25 | shutil.rmtree(rdir)
26 | except:
27 | pass
28 |
29 | print "create directories"
30 | os.makedirs(config.temp)
31 | os.makedirs(config.output)
32 | os.makedirs(config.build)
33 | os.makedirs(config.manifest)
34 |
35 | print "copy files"
36 | os.makedirs(config.build + "/etc/skel/.config")
37 | shutil.copytree(config.files + "/xfce4", config.build + "/etc/skel/.config/xfce4")
38 |
39 | print "write control"
40 | variables = config.variables
41 | variables["version"] = config.version
42 | control = open(config.files + "/DEBIAN/control", "rb").read()
43 | fp = open(config.manifest + "/control", "wb")
44 | fp.write(control.format(**variables))
45 | fp.flush()
46 | fp.close()
47 |
48 | print "building binary package"
49 | command = ["fakeroot", "dpkg-deb", "-b", config.build]
50 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"]))
51 | subprocess.call(command)
52 |
53 | print "done"
54 |
--------------------------------------------------------------------------------
/common/keyFile:
--------------------------------------------------------------------------------
1 | -----BEGIN PGP PUBLIC KEY BLOCK-----
2 | Version: GnuPG v1
3 |
4 | mQINBFmcKu8BEADR2SlO6qqSv09TmNi/lFyOEMlzRELSC27jFa51y5v5fI9WCiyF
5 | 6EHPmfx9gZWOSlKiGv9HvX4ZVjhBIoR6ChrSwRJR9/E2QHnoBd+gyPOS74kXkTzU
6 | Wqa2Ydk4VYEAD8FIQc+GHHE2Xc31DZXn5Q9Sug68gCqBdrYJjVoASME6vA3vlvEK
7 | SnPtbKUxPpH0ib4BeDIHpotljxJvnSnr7CJ5Gmlm2nFE1MOqw9Zam2Xwb9QEmm/Z
8 | ffhbInxytT8F6+U3aOddzWAEeqVTyIoH/iYazqXGfuq9iP8BCHGB/sFE+jU3zPSm
9 | ercij2FvLWaVKrKvtz/y5j3uhzUxmRiVIWKi+O4DwCpRortCuVay/gCy3sJKS5/I
10 | 4q2bGPHdjGGh1DJ0ZdVkx59P8wF1xUwNeO5xfjELq+RE3MuMukYJcMweHB14eLqV
11 | LL6eMTf4/cEeatwrGVd4PowSFDHiJnSMX8QPEqAmy6TK0ZNKk7ekTaMTaOXXwHT9
12 | TY+H8Fic88YL5tiyeO0hj4z/TegWAhru/HDpVtoYcvGc7jemCOI4L4UYfeJC8OBt
13 | Eo6xWRnXYEkh4Kmz50hnZsrpTmU6g2mnz2dxfqlLCmtodW8dvjzwSyfitRUbvALf
14 | XUUv8l0lOqCxorXrktBTabVpDDTvNYfLr99OJLtB12DUCxgF1xXYt3LZCQARAQAB
15 | tDhGYWxrIEdhcmJzY2ggKC5kZWIgc2lnbmluZykgPGdpdGh1Yi5jb21AY3liZXJz
16 | dGFsa2VyLmV1PokCOAQTAQIAIgUCWZwq7wIbAwYLCQgHAwIGFQgCCQoLBBYCAwEC
17 | HgECF4AACgkQR/9T3fAPoBOw7g//Ypa0OgHqkoQpFsWcHDUYzI94KLeeBpJEkb+z
18 | Uax75pf/XsRSBO+doiiMpLh6mKRGhlqWpBdTeY+IRkQA3k7qEwdNBCZL0OgKjonO
19 | yQr40MZTuCX+UQPp+6dCm3u7GGTsucePWAvPUUjYK1ERSTcMlnb16NXWQP3xeGqL
20 | DRM9NE+JjUs3VRRnoB/GRslQUlrsQi3t9e7wS8wdyBbexMn6hTrBAGvrSUW/cb7d
21 | IMHAFHQwecZSEh4VWXuj2GTIgJYppzrgSxjCj1YwWlVVE8vAo7Z8D2pgmGYE9VVN
22 | XMkmP1QUnYuFwGIgU9BQnlZ6WFRYsumGsEpSNmAAr5qykUmdz4e9AwcfbNZ7LHLO
23 | JQjjAtpFtAR1AmxVeG0nk0MsIYcJo9zuhObr1zNrtdWtFiU5dpvmuxQuLf23ZGD/
24 | Xoc+udY0Sj1vDOgPoFc30FsVxEBrslMu91dgHClrqGmaolRMEjNCJQmesp7CIfuU
25 | LZA0eQUba+GxWH/kY6qGVij1AOZNZpd9YGMX9HykDyrG/TPwEUGDqHGDbQWcs7u0
26 | 9Vcy3+vHdrsrTc1q8dLkvlcP8Q+4tWW3URX9Knw3Xw67GjdDN15tFiIj3OVYfo1R
27 | 3DTyvQMsE7td8TDt/+y8XA8AvpdBOsETnYRQ+/+cmU/2qUfavEPW+9JoeOwZ2Cb4
28 | WxzNHz0=
29 | =LVnN
30 | -----END PGP PUBLIC KEY BLOCK-----
31 |
--------------------------------------------------------------------------------
/packages/gpdpocket-xfce4-config/files/xfce4/panel/whiskermenu-1.rc:
--------------------------------------------------------------------------------
1 | favorites=exo-web-browser.desktop,exo-mail-reader.desktop,exo-file-manager.desktop,libreoffice-writer.desktop,libreoffice-calc.desktop,pidgin.desktop,org.gnome.Software.desktop,exo-terminal-emulator.desktop,xfhelp4.desktop
2 | recent=
3 | button-title=Applications Menu
4 | button-icon=xubuntu-logo-menu
5 | button-single-row=false
6 | show-button-title=false
7 | show-button-icon=true
8 | launcher-show-name=true
9 | launcher-show-description=false
10 | item-icon-size=1
11 | hover-switch-category=false
12 | category-icon-size=0
13 | load-hierarchy=true
14 | recent-items-max=10
15 | favorites-in-recent=true
16 | display-recent-default=false
17 | position-search-alternate=true
18 | position-commands-alternate=false
19 | position-categories-alternate=false
20 | menu-width=604
21 | menu-height=675
22 | menu-opacity=100
23 | command-settings=xfce4-settings-manager
24 | show-command-settings=true
25 | command-lockscreen=xflock4
26 | show-command-lockscreen=true
27 | command-switchuser=dm-tool switch-to-greeter
28 | show-command-switchuser=false
29 | command-logout=xfce4-session-logout
30 | show-command-logout=true
31 | command-menueditor=menulibre
32 | show-command-menueditor=true
33 | command-profile=mugshot
34 | show-command-profile=true
35 | search-actions=4
36 |
37 | [action0]
38 | name=Man Pages
39 | pattern=#
40 | command=exo-open --launch TerminalEmulator man %s
41 | regex=false
42 |
43 | [action1]
44 | name=Wikipedia
45 | pattern=!w
46 | command=exo-open --launch WebBrowser https://en.wikipedia.org/wiki/%u
47 | regex=false
48 |
49 | [action2]
50 | name=Run in Terminal
51 | pattern=!
52 | command=exo-open --launch TerminalEmulator %s
53 | regex=false
54 |
55 | [action3]
56 | name=Open URI
57 | pattern=^(file|http|https):\\/\\/(.*)$
58 | command=exo-open \\0
59 | regex=true
60 |
61 |
--------------------------------------------------------------------------------
/packages/gpdpocket-xfce4-config/files/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/packages/gpdpocket-xorg/make.py:
--------------------------------------------------------------------------------
1 | import shutil
2 | import subprocess
3 | import os
4 | import tarfile
5 |
6 | class Config(object):
7 | build = os.path.abspath("build")
8 | files = os.path.abspath("files")
9 | output = os.path.abspath("output")
10 | manifest = os.path.abspath("build/DEBIAN")
11 | temp = os.path.abspath("tmp")
12 | version = "0.1.0"
13 | variables = {
14 | "architecture": "all",
15 | "maintainer": "Falk Garbsch ",
16 | "name": "gpdpocket-xorg",
17 | }
18 |
19 | print "first we cleanup our stuff"
20 | config = Config()
21 | for rdir in [config.build, config.temp, config.output]:
22 | try:
23 | print ">> remove %s" % (rdir)
24 | shutil.rmtree(rdir)
25 | except:
26 | pass
27 |
28 | print "create directories"
29 | os.makedirs(config.temp)
30 | os.makedirs(config.output)
31 | os.makedirs(config.build)
32 | os.makedirs(config.manifest)
33 |
34 | print "setup xorg configuration"
35 | copylist = [
36 | ( 'files/config/20-intel.conf', '/etc/X11/xorg.conf.d/20-intel.conf', 0644 ),
37 | ( 'files/config/40-monitor.conf', '/etc/X11/xorg.conf.d/40-monitor.conf', 0644 ),
38 | ( 'files/config/99-touchscreen.conf', '/etc/X11/xorg.conf.d/99-touchscreen.conf', 0644 ),
39 | ]
40 | for src, dst, mode in copylist:
41 | print ">> copy (0%o) %s" % (mode, dst)
42 | src = os.path.abspath(src)
43 | dst = config.build + dst
44 | dn = os.path.dirname(dst)
45 | if not os.path.isdir(dn):
46 | os.makedirs(dn)
47 | shutil.copy(src, dst)
48 | os.chmod(dst, mode)
49 |
50 | print "write control"
51 | variables = config.variables
52 | variables["version"] = config.version
53 | control = open(config.files + "/DEBIAN/control", "rb").read()
54 | fp = open(config.manifest + "/control", "wb")
55 | fp.write(control.format(**variables))
56 | fp.flush()
57 | fp.close()
58 |
59 | print "building binary package"
60 | command = ["fakeroot", "dpkg-deb", "-b", config.build]
61 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"]))
62 | subprocess.call(command)
63 |
64 | print "done"
65 |
--------------------------------------------------------------------------------
/packages/linux-headers-generic/make.py:
--------------------------------------------------------------------------------
1 | import shutil
2 | import subprocess
3 | import os
4 | import tarfile
5 | import sys
6 |
7 | class Config(object):
8 | build = os.path.abspath("build")
9 | output = os.path.abspath("output")
10 | manifest = os.path.abspath("build/DEBIAN")
11 | temp = os.path.abspath("tmp")
12 | templates = os.path.abspath("files/DEBIAN")
13 | prebuilt = os.path.abspath("../prebuilt/output/")
14 | variables = {
15 | "architecture": "amd64",
16 | "maintainer": "Falk Garbsch ",
17 | "name": "linux-headers-generic",
18 | }
19 |
20 | print "first we cleanup our stuff"
21 | config = Config()
22 | for rdir in [config.build, config.temp, config.output]:
23 | try:
24 | print ">> remove %s" % (rdir)
25 | shutil.rmtree(rdir)
26 | except:
27 | pass
28 |
29 | print "create directories"
30 | os.makedirs(config.temp)
31 | os.makedirs(config.output)
32 | os.makedirs(config.build)
33 | os.makedirs(config.manifest)
34 |
35 | print "aquire packaghes from prebuilt"
36 | headers = filter(lambda x: x.startswith("linux-headers") and x.find("-generic") > 0, os.listdir(config.prebuilt))
37 | if len(headers) != 1:
38 | print "ERROR: need exactly one headers version. please cleanup and rebuild packages/prebuilt"
39 | sys.exit(1)
40 | headers = headers[0]
41 |
42 | print "found headers package %s:" % (headers)
43 | linux_headers_package, version, ext = headers.split("_")
44 |
45 | print " version: %s" % (version)
46 | print " package: %s" % (linux_headers_package)
47 |
48 |
49 | print "constructing control file"
50 | variables = config.variables
51 | variables["linux-headers-package"] = linux_headers_package
52 | variables["version"] = version
53 | control = open(config.templates + "/control", "rb").read()
54 |
55 | fp = open(config.manifest + "/control", "wb")
56 | fp.write(control.format(**variables))
57 | fp.flush()
58 | fp.close()
59 |
60 | print "building binary package"
61 | command = ["fakeroot", "dpkg-deb", "-b", config.build]
62 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"]))
63 | subprocess.call(command)
64 |
65 | print "done"
66 |
--------------------------------------------------------------------------------
/packages/gpdpocket-touchegg-config/make.py:
--------------------------------------------------------------------------------
1 | import shutil
2 | import subprocess
3 | import os
4 | import tarfile
5 |
6 | class Config(object):
7 | build = os.path.abspath("build")
8 | files = os.path.abspath("files")
9 | output = os.path.abspath("output")
10 | manifest = os.path.abspath("build/DEBIAN")
11 | temp = os.path.abspath("tmp")
12 | templates = os.path.abspath("files/DEBIAN")
13 | version = "0.1.0"
14 | variables = {
15 | "architecture": "all",
16 | "maintainer": "Falk Garbsch ",
17 | "name": "gpdpocket-touchegg-config",
18 | }
19 |
20 | print "first we cleanup our stuff"
21 | config = Config()
22 | for rdir in [config.build, config.temp, config.output]:
23 | try:
24 | print ">> remove %s" % (rdir)
25 | shutil.rmtree(rdir)
26 | except:
27 | pass
28 |
29 | print "create directories"
30 | os.makedirs(config.temp)
31 | os.makedirs(config.output)
32 | os.makedirs(config.build)
33 | os.makedirs(config.manifest)
34 |
35 | print "copy files"
36 | copylist = [
37 | ( 'files/touchegg.conf', '/usr/share/touchegg/touchegg.conf.gpd-pocket', 0644 ),
38 | ( 'files/01_touchegg', '/etc/X11/Xsession.d/01_touchegg', 0755 ),
39 | ( 'files/01_touchegg', '/etc/X11/xinit/xinitrc.d/01_touchegg', 0755 ),
40 | ]
41 | for src, dst, mode in copylist:
42 | print ">> copy (0%o) %s" % (mode, dst)
43 | src = os.path.abspath(src)
44 | dst = config.build + dst
45 | dn = os.path.dirname(dst)
46 | if not os.path.isdir(dn):
47 | os.makedirs(dn)
48 | shutil.copy(src, dst)
49 | os.chmod(dst, mode)
50 |
51 | print "write control"
52 | variables = config.variables
53 | variables["version"] = config.version
54 | control = open(config.files + "/DEBIAN/control", "rb").read()
55 | fp = open(config.manifest + "/control", "wb")
56 | fp.write(control.format(**variables))
57 | fp.flush()
58 | fp.close()
59 |
60 | print "constructing script files"
61 | for script in [ "/preinst", "/postrm" ]:
62 | print ">> write DEBIAN%s" % (script)
63 | filepath = config.manifest + script
64 | content = open(config.templates + script, "rb").read()
65 | fp = open(filepath, "wb")
66 | fp.write(content.replace("__VERSION_CODE__", variables["version"]))
67 | fp.flush()
68 | fp.close()
69 | os.chmod(filepath, 0555)
70 |
71 | print "building binary package"
72 | command = ["fakeroot", "dpkg-deb", "-b", config.build]
73 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"]))
74 | subprocess.call(command)
75 |
76 | print "done"
77 |
--------------------------------------------------------------------------------
/packages/linux-image-generic/make.py:
--------------------------------------------------------------------------------
1 | import shutil
2 | import subprocess
3 | import os
4 | import tarfile
5 | import sys
6 |
7 | class Config(object):
8 | build = os.path.abspath("build")
9 | output = os.path.abspath("output")
10 | manifest = os.path.abspath("build/DEBIAN")
11 | temp = os.path.abspath("tmp")
12 | templates = os.path.abspath("files/DEBIAN")
13 | prebuilt = os.path.abspath("../prebuilt/output/")
14 | variables = {
15 | "architecture": "amd64",
16 | "maintainer": "Falk Garbsch ",
17 | "name": "linux-image-generic",
18 | }
19 |
20 | print "first we cleanup our stuff"
21 | config = Config()
22 | for rdir in [config.build, config.temp, config.output]:
23 | try:
24 | print ">> remove %s" % (rdir)
25 | shutil.rmtree(rdir)
26 | except:
27 | pass
28 |
29 | print "create directories"
30 | os.makedirs(config.temp)
31 | os.makedirs(config.output)
32 | os.makedirs(config.build)
33 | os.makedirs(config.manifest)
34 |
35 | print "aquire packaghes from prebuilt"
36 | image = filter(lambda x: x.startswith("linux-image") and x.find("-extra-") < 0, os.listdir(config.prebuilt))
37 | if len(image) != 1:
38 | print "ERROR: need exactly one kernel version. please cleanup and rebuild packages/prebuilt"
39 | sys.exit(1)
40 | image = image[0]
41 |
42 | extra = filter(lambda x: x.startswith("linux-image") and x.find("-extra-") > 0, os.listdir(config.prebuilt))
43 | if len(extra) != 1:
44 | print "ERROR: need exactly one kernel extra version. please cleanup and rebuild packages/prebuilt"
45 | sys.exit(1)
46 | extra = extra[0]
47 |
48 | print "found kernel package %s:" % (image)
49 | linux_image_package, version, ext = image.split("_")
50 | linux_extra_package, _, _ = extra.split("_")
51 |
52 | print " version: %s" % (version)
53 | print " package: %s" % (linux_image_package)
54 | print " extra: %s" % (linux_extra_package)
55 |
56 |
57 | print "constructing control file"
58 | variables = config.variables
59 | variables["linux-image-package"] = linux_image_package
60 | variables["linux-extra-package"] = linux_extra_package
61 | variables["version"] = version
62 | control = open(config.templates + "/control", "rb").read()
63 |
64 | fp = open(config.manifest + "/control", "wb")
65 | fp.write(control.format(**variables))
66 | fp.flush()
67 | fp.close()
68 |
69 | print "building binary package"
70 | command = ["fakeroot", "dpkg-deb", "-b", config.build]
71 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"]))
72 | subprocess.call(command)
73 |
74 | print "done"
75 |
--------------------------------------------------------------------------------
/packages/gpdpocket-audio/files/daemon.conf:
--------------------------------------------------------------------------------
1 | # This file is part of PulseAudio.
2 | #
3 | # PulseAudio is free software; you can redistribute it and/or modify
4 | # it under the terms of the GNU Lesser General Public License as published by
5 | # the Free Software Foundation; either version 2 of the License, or
6 | # (at your option) any later version.
7 | #
8 | # PulseAudio is distributed in the hope that it will be useful, but
9 | # WITHOUT ANY WARRANTY; without even the implied warranty of
10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 | # General Public License for more details.
12 | #
13 | # You should have received a copy of the GNU Lesser General Public License
14 | # along with PulseAudio; if not, see .
15 |
16 | ## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
17 | ## more information. Default values are commented out. Use either ; or # for
18 | ## commenting.
19 |
20 | ; daemonize = no
21 | ; fail = yes
22 | ; allow-module-loading = yes
23 | ; allow-exit = yes
24 | ; use-pid-file = yes
25 | ; system-instance = no
26 | ; local-server-type = user
27 | ; enable-shm = yes
28 | ; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
29 | ; lock-memory = no
30 | ; cpu-limit = no
31 |
32 | ; high-priority = yes
33 | ; nice-level = -11
34 |
35 | realtime-scheduling = no
36 | ; realtime-priority = 5
37 |
38 | ; exit-idle-time = 20
39 | ; scache-idle-time = 20
40 |
41 | ; dl-search-path = (depends on architecture)
42 |
43 | ; load-default-script-file = yes
44 | ; default-script-file = /etc/pulse/default.pa
45 |
46 | ; log-target = auto
47 | ; log-level = notice
48 | ; log-meta = no
49 | ; log-time = no
50 | ; log-backtrace = 0
51 |
52 | ; resample-method = speex-float-1
53 | ; enable-remixing = yes
54 | ; enable-lfe-remixing = yes
55 | ; lfe-crossover-freq = 120
56 |
57 | flat-volumes = no
58 |
59 | ; rlimit-fsize = -1
60 | ; rlimit-data = -1
61 | ; rlimit-stack = -1
62 | ; rlimit-core = -1
63 | ; rlimit-as = -1
64 | ; rlimit-rss = -1
65 | ; rlimit-nproc = -1
66 | ; rlimit-nofile = 256
67 | ; rlimit-memlock = -1
68 | ; rlimit-locks = -1
69 | ; rlimit-sigpending = -1
70 | ; rlimit-msgqueue = -1
71 | ; rlimit-nice = 31
72 | ; rlimit-rtprio = 9
73 | ; rlimit-rttime = 200000
74 |
75 | ; default-sample-format = s16le
76 | ; default-sample-rate = 44100
77 | ; alternate-sample-rate = 48000
78 | ; default-sample-channels = 2
79 | ; default-channel-map = front-left,front-right
80 |
81 | ; default-fragments = 4
82 | ; default-fragment-size-msec = 25
83 |
84 | ; enable-deferred-volume = yes
85 | deferred-volume-safety-margin-usec = 1
86 | ; deferred-volume-extra-delay-usec = 0
87 |
--------------------------------------------------------------------------------
/packages/linux-firmware/make.py:
--------------------------------------------------------------------------------
1 | import shutil
2 | import subprocess
3 | import os
4 | import tarfile
5 |
6 | class Config(object):
7 | build = os.path.abspath("build")
8 | fwdir = os.path.abspath("%s/lib/firmware" % (build))
9 | files = os.path.abspath("files")
10 | output = os.path.abspath("output")
11 | manifest = os.path.abspath("build/DEBIAN")
12 | datasrc = os.path.abspath("../../external/linux-firmware")
13 | temp = os.path.abspath("tmp")
14 | templates = os.path.abspath("files/DEBIAN")
15 | version = "1.999.2-gpdpocket"
16 | variables = {
17 | "architecture": "all",
18 | "maintainer": "Falk Garbsch ",
19 | "name": "linux-firmware",
20 | }
21 |
22 | print "first we cleanup our stuff"
23 | config = Config()
24 | for rdir in [config.build, config.temp, config.output]:
25 | try:
26 | print ">> remove %s" % (rdir)
27 | shutil.rmtree(rdir)
28 | except:
29 | pass
30 |
31 | print "create directories"
32 | os.makedirs(config.temp)
33 | os.makedirs(config.output)
34 | os.makedirs(config.build)
35 | os.makedirs(config.manifest)
36 | os.makedirs(config.fwdir)
37 |
38 | print "copying firmware files"
39 | subprocess.call("(cd %s && git archive --format=tar HEAD) | tar -xvC %s" % (config.datasrc, config.fwdir), shell=True)
40 |
41 | print "copy brcmfmac4356 firmware"
42 | copylist = [
43 | ( 'files/brcmfmac4356-pcie.txt', '/lib/firmware/brcm/brcmfmac4356-pcie.txt', 0644 ),
44 | ]
45 |
46 | for src, dst, mode in copylist:
47 | print ">> copy (0%o) %s" % (mode, dst)
48 | src = os.path.abspath(src)
49 | dst = config.build + dst
50 | dn = os.path.dirname(dst)
51 | if not os.path.isdir(dn):
52 | os.makedirs(dn)
53 | shutil.copy(src, dst)
54 | os.chmod(dst, mode)
55 |
56 | print "constructing control file"
57 | variables = config.variables
58 | variables["version"] = config.version
59 | control = open(config.files + "/DEBIAN/control", "rb").read()
60 | fp = open(config.manifest + "/control", "wb")
61 | fp.write(control.format(**variables))
62 | fp.flush()
63 | fp.close()
64 |
65 | print "constructing script files"
66 | for script in ["/postinst"]:
67 | print ">> write DEBIAN%s" % (script)
68 | filepath = config.manifest + script
69 | content = open(config.templates + script, "rb").read()
70 | fp = open(filepath, "wb")
71 | fp.write(content.replace("__VERSION_CODE__", variables["version"]))
72 | fp.flush()
73 | fp.close()
74 | os.chmod(filepath, 0555)
75 |
76 | print "building binary package"
77 | command = ["fakeroot", "dpkg-deb", "-b", config.build]
78 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"]))
79 | subprocess.call(command)
80 |
81 | print "done"
82 |
--------------------------------------------------------------------------------
/packages/gpdpocket-audio/make.py:
--------------------------------------------------------------------------------
1 | import shutil
2 | import subprocess
3 | import os
4 | import tarfile
5 |
6 | class Config(object):
7 | build = os.path.abspath("build")
8 | files = os.path.abspath("files")
9 | output = os.path.abspath("output")
10 | manifest = os.path.abspath("build/DEBIAN")
11 | temp = os.path.abspath("tmp")
12 | templates = os.path.abspath("files/DEBIAN")
13 | version = "0.1.0"
14 | variables = {
15 | "architecture": "all",
16 | "maintainer": "Falk Garbsch ",
17 | "name": "gpdpocket-audio",
18 | }
19 |
20 | print "first we cleanup our stuff"
21 | config = Config()
22 | for rdir in [config.build, config.temp, config.output]:
23 | try:
24 | print ">> remove %s" % (rdir)
25 | shutil.rmtree(rdir)
26 | except:
27 | pass
28 |
29 | print "create directories"
30 | os.makedirs(config.temp)
31 | os.makedirs(config.output)
32 | os.makedirs(config.build)
33 | os.makedirs(config.manifest)
34 |
35 | print "copy files to target"
36 | copylist = [
37 | # ( 'files/chtrt5645.conf', '/usr/share/alsa/ucm/chtrt5645/chtrt5645.conf', 0644 ),
38 | # ( 'files/HiFi.conf', '/usr/share/alsa/ucm/chtrt5645/HiFi.conf', 0644 ),
39 | ( 'files/chtrt5645.conf', '/tmp/gpdpocket-audio/chtrt5645.conf', 0644 ),
40 | ( 'files/HiFi.conf', '/tmp/gpdpocket-audio/HiFi.conf', 0644 ),
41 | ( 'files/daemon.conf', '/etc/pulse/daemon.conf', 0644 ),
42 | ( 'files/default.pa', '/etc/pulse/default.pa', 0644 )
43 | ]
44 | for src, dst, mode in copylist:
45 | print ">> copy (0%o) %s" % (mode, dst)
46 | src = os.path.abspath(src)
47 | dst = config.build + dst
48 | dn = os.path.dirname(dst)
49 | if not os.path.isdir(dn):
50 | os.makedirs(dn)
51 | shutil.copy(src, dst)
52 | os.chmod(dst, mode)
53 |
54 | print "write control"
55 | variables = config.variables
56 | variables["version"] = config.version
57 | control = open(config.files + "/DEBIAN/control", "rb").read()
58 | fp = open(config.manifest + "/control", "wb")
59 | fp.write(control.format(**variables))
60 | fp.flush()
61 | fp.close()
62 |
63 | print "constructing script files"
64 | for script in ["/postinst", "/postrm", "/preinst", "/prerm"]:
65 | print ">> write DEBIAN%s" % (script)
66 | filepath = config.manifest + script
67 | content = open(config.templates + script, "rb").read()
68 | fp = open(filepath, "wb")
69 | fp.write(content.replace("__VERSION_CODE__", variables["version"]))
70 | fp.flush()
71 | fp.close()
72 | os.chmod(filepath, 0555)
73 |
74 | print "building binary package"
75 | command = ["fakeroot", "dpkg-deb", "-b", config.build]
76 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"]))
77 | subprocess.call(command)
78 |
79 | print "done"
80 |
--------------------------------------------------------------------------------
/packages/gpdpocket-gnome-config/make.py:
--------------------------------------------------------------------------------
1 | import shutil
2 | import subprocess
3 | import os
4 | import tarfile
5 |
6 | class Config(object):
7 | build = os.path.abspath("build")
8 | files = os.path.abspath("files")
9 | output = os.path.abspath("output")
10 | manifest = os.path.abspath("build/DEBIAN")
11 | temp = os.path.abspath("tmp")
12 | templates = os.path.abspath("files/DEBIAN")
13 | version = "0.1.2"
14 | variables = {
15 | "architecture": "all",
16 | "maintainer": "Falk Garbsch ",
17 | "name": "gpdpocket-gnome-config",
18 | }
19 |
20 | print "first we cleanup our stuff"
21 | config = Config()
22 | for rdir in [config.build, config.temp, config.output]:
23 | try:
24 | print ">> remove %s" % (rdir)
25 | shutil.rmtree(rdir)
26 | except:
27 | pass
28 |
29 | print "create directories"
30 | os.makedirs(config.temp)
31 | os.makedirs(config.output)
32 | os.makedirs(config.build)
33 | os.makedirs(config.manifest)
34 |
35 | print "copy files"
36 | copylist = [
37 | ('files/gnome/00touchscreen', '/etc/dconf/db/local.d/00touchscreen', 0644),
38 | ('files/gnome/01scale', '/etc/dconf/db/local.d/01scale', 0644 ),
39 | ('files/gnome/02subpixel', '/etc/dconf/db/local.d/02subpixel', 0644 ),
40 | ('files/gnome/profile', '/etc/dconf/profile/gdm', 0644 ),
41 | ('files/gnome/profile', '/etc/dconf/profile/user', 0644 ),
42 | ('files/monitors.xml', '/etc/skel/.config/monitors.xml', 0644),
43 | ('files/monitors.xml', '/var/lib/lightdm/.config/monitors.xml', 0644),
44 | ('files/monitors.xml', '/var/lib/gdm3/.config/monitors.xml', 0644),
45 | ]
46 | for src, dst, mode in copylist:
47 | print ">> copy (0%o) %s" % (mode, dst)
48 | src = os.path.abspath(src)
49 | dst = config.build + dst
50 | dn = os.path.dirname(dst)
51 | if not os.path.isdir(dn):
52 | os.makedirs(dn)
53 | shutil.copy(src, dst)
54 | os.chmod(dst, mode)
55 |
56 | print "write control"
57 | variables = config.variables
58 | variables["version"] = config.version
59 | control = open(config.files + "/DEBIAN/control", "rb").read()
60 | fp = open(config.manifest + "/control", "wb")
61 | fp.write(control.format(**variables))
62 | fp.flush()
63 | fp.close()
64 |
65 | print "constructing script files"
66 | for script in ["/postinst"]:
67 | print ">> write DEBIAN%s" % (script)
68 | filepath = config.manifest + script
69 | content = open(config.templates + script, "rb").read()
70 | fp = open(filepath, "wb")
71 | fp.write(content.replace("__VERSION_CODE__", variables["version"]))
72 | fp.flush()
73 | fp.close()
74 | os.chmod(filepath, 0555)
75 |
76 | print "building binary package"
77 | command = ["fakeroot", "dpkg-deb", "-b", config.build]
78 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"]))
79 | subprocess.call(command)
80 |
81 | print "done"
82 |
--------------------------------------------------------------------------------
/packages/gpdpocket-power/files/gpd-fan.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python2.7
2 | # -*- coding: utf-8 -*-
3 |
4 | # Full credit goes to efluffy at https://github.com/efluffy/gpdfand
5 | # This script is simply re-written in python to avoid perl dependencies
6 |
7 | from glob import glob
8 | from time import sleep
9 | import argparse
10 | import io
11 | import os.path
12 | import signal
13 | import sys
14 |
15 | # Parse command line arguments
16 | parser = argparse.ArgumentParser()
17 | parser.add_argument('--time', type=int, help='Time between temperature checks', default=10)
18 | parser.add_argument('--turbo', type=int, help='Maximum temperature before turbo boost is disabled', default=60)
19 | parser.add_argument('--min', type=int, help='Temperature required for minimum fan speed', default=45)
20 | parser.add_argument('--med', type=int, help='Temperature required for medium fan speed', default=55)
21 | parser.add_argument('--max', type=int, help='Temperature required for maximum fan speed', default=65)
22 | args = parser.parse_args()
23 |
24 | # Exit function
25 | def exit(*args):
26 | set_fans(0,0)
27 | set_no_turbo(0)
28 | sys.exit(0)
29 |
30 | # Get temperature function
31 | def get_temp():
32 | temps = []
33 | for hwmon in glob('/sys/devices/platform/coretemp.0/hwmon/hwmon*'):
34 | for temp_input_dev in glob(hwmon + '/temp*_input'):
35 | with io.open(temp_input_dev, 'r') as core_temp:
36 | temp = int(core_temp.read()) / 1000
37 | temps.append(temp)
38 | if(len(temps) > 0):
39 | return max(temps)
40 | else:
41 | return 0
42 |
43 | # Set fans function
44 | def set_fans(a,b):
45 | with io.open('/sys/class/gpio/gpio397/value', 'w') as gpio:
46 | gpio.write(unicode(a))
47 | with io.open('/sys/class/gpio/gpio398/value', 'w') as gpio:
48 | gpio.write(unicode(b))
49 |
50 | # Set no turbo boost function
51 | def set_no_turbo(state):
52 | with io.open('/sys/devices/system/cpu/intel_pstate/no_turbo', 'w') as no_turbo:
53 | no_turbo.write(unicode(state))
54 |
55 | # Initialization function
56 | def init():
57 | for id in [397,398]:
58 | if not os.path.isfile('/sys/class/gpio/gpio' + str(id) + '/value'):
59 | with io.open('/sys/class/gpio/export', 'w') as gpio_export:
60 | gpio_export.write(unicode(id))
61 |
62 | # Perform initialization
63 | init()
64 |
65 | # Setup exit handler
66 | signal.signal(signal.SIGTERM, exit)
67 |
68 | # Rinse, repeat.
69 | while True:
70 | temp = get_temp()
71 |
72 | # Set fan speed
73 | if temp >= args.max or temp == 0:
74 | set_fans(1,1)
75 | elif temp >= args.med:
76 | set_fans(0,1)
77 | elif temp >= args.min:
78 | set_fans(1,0)
79 | else:
80 | set_fans(0,0)
81 |
82 | # Set turbo boost state
83 | if temp >= args.turbo or temp == 0:
84 | set_no_turbo(1)
85 | else:
86 | set_no_turbo(0)
87 |
88 | sleep(args.time)
89 |
--------------------------------------------------------------------------------
/respin/Makefile:
--------------------------------------------------------------------------------
1 | UBUNTU_16_04_3:=http://releases.ubuntu.com/16.04/ubuntu-16.04.3-desktop-amd64.iso|gpdpocket-gnome-config
2 | UBUNTU_17_04:=http://releases.ubuntu.com/17.04/ubuntu-17.04-desktop-amd64.iso|gpdpocket-gnome-config
3 | XUBUNTU_16_04_3:=http://cdimage.ubuntu.com/xubuntu/releases/16.04/release/xubuntu-16.04.3-desktop-amd64.iso|gpdpocket-xfce-config
4 | XUBUNTU_17_04:=http://cdimage.ubuntu.com/xubuntu/releases/17.04/release/xubuntu-17.04-desktop-amd64.iso|gpdpocket-xfce-config
5 | MINT_18_2_XFCE:=http://mirror.netcologne.de/linuxmint/iso/stable/18.2/linuxmint-18.2-xfce-64bit.iso|
6 | MINT_18_2_CINNAMON:=http://mirror.netcologne.de/linuxmint/iso/stable/18.2/linuxmint-18.2-cinnamon-64bit.iso|
7 | LUBUNTU_17_04:=http://cdimage.ubuntu.com/lubuntu/releases/17.04/release/lubuntu-17.04-desktop-amd64.iso|
8 | LUBUNTU_16_04_3:=http://cdimage.ubuntu.com/lubuntu/releases/16.04.3/release/lubuntu-16.04.3-desktop-amd64.iso|
9 | UBUNTU_GNOME_16.04.3:=http://cdimage.ubuntu.com/ubuntu-gnome/releases/16.04/release/ubuntu-gnome-16.04.3-desktop-amd64.iso|gpdpocket-gnome-config
10 | UBUNTU_GNOME_17.04:=http://cdimage.ubuntu.com/ubuntu-gnome/releases/17.04/release/ubuntu-gnome-17.04-desktop-amd64.iso|gpdpocket-gnome-config
11 |
12 | remove_target_part = $(patsubst %.sync,%,$(patsubst %.target,%,$1))
13 | get_target_dist = $(word 1,$(subst -, ,$1))
14 |
15 | output_file_name = output/$(call remove_target_part,$1)_gpdpocket_$(TIMESTAMP).iso
16 | target_url = $(filter %/$(call remove_target_part,$1).iso,$(IMAGES))
17 | sync_directory = htdocs/iso/$(call get_target_dist,$1)/$(TIMESTAMP)/
18 | target_name = $(patsubst %.iso,%.target,$(notdir $1))
19 | get_image_part = $(word 1,$(subst |, ,$1))
20 | get_additions = $(subst ;, ,$(word 2,$(subst |, ,$(filter $(call remove_target_part,$1).iso|%,$(ADDITIONS)))))
21 |
22 | define lock_call
23 | touch $(1) ; flock $(1) -c "$(2)"
24 | endef
25 |
26 | ELEMENTS:=$(UBUNTU_16_04_3) $(UBUNTU_17_04) \
27 | $(XUBUNTU_16_04_3) $(XUBUNTU_17_04) \
28 | $(MINT_18_2_XFCE) $(MINT_18_2_CINNAMON) \
29 | $(LUBUNTU_17_04) $(LUBUNTU_16_04_3) \
30 | $(UBUNTU_GNOME_16.04.3) $(UBUNTU_GNOME_17.04)
31 |
32 | IMAGES:=$(foreach element,$(ELEMENTS),$(call get_image_part,$(element)))
33 | ADDITIONS:=$(foreach element,$(ELEMENTS),$(notdir $(element)))
34 | TARGETS:=$(foreach image,$(IMAGES),$(call target_name,$(image)))
35 | SYNC_TARGETS:=$(patsubst %.target,%.sync,$(TARGETS))
36 | TIMESTAMP:=$(shell TZ=UTC date --iso)
37 |
38 | list_targets:
39 | $(info supported targets:)
40 | $(foreach target,$(TARGETS),$(info : $(target)))
41 | $(info suported syncs:)
42 | $(foreach target,$(SYNC_TARGETS),$(info : $(target)))
43 |
44 | all: make_images
45 |
46 | sync_images: $(SYNC_TARGETS)
47 |
48 | make_images: $(TARGETS)
49 |
50 | %.target:
51 | $(call lock_call,build.lock,python2 respin.py $(call target_url,$@) $(call output_file_name,$@) $(call get_additions,$@))
52 |
53 | output/%_gpdpocket_$(TIMESTAMP).iso:
54 | make -j1 TIMESTAMP=$(TIMESTAMP) "$*.target"
55 |
56 | %.sync: $(call output_file_name,%)
57 | ssh nexus511.repo "mkdir -p $(call sync_directory,$@)"
58 | $(call lock_call,upload.lock,scp $(call output_file_name,$@) nexus511.repo:$(call sync_directory,$@))
59 | rm $(call output_file_name,$@)
60 |
--------------------------------------------------------------------------------
/packages/gpdpocket-touchegg-config/files/touchegg.conf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 0
5 |
6 |
7 |
8 |
9 |
10 |
11 | BUTTON=3
12 |
13 |
14 |
15 | BUTTON=2
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | SPEED=7:INVERTED=true
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | Super+W
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 | Alt+F1
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 | Control+KP_Add
68 |
69 |
70 |
71 | Control+KP_Subtract
72 |
73 |
74 |
75 | Control+L
76 |
77 |
78 |
79 | Control+R
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 | Alt+Left
89 |
90 |
91 |
92 | Alt+Right
93 |
94 |
95 |
96 |
97 |
98 |
99 |
--------------------------------------------------------------------------------
/packages/gpdpocket-power/make.py:
--------------------------------------------------------------------------------
1 | import shutil
2 | import subprocess
3 | import os
4 | import tarfile
5 |
6 | class Config(object):
7 | build = os.path.abspath("build")
8 | files = os.path.abspath("files")
9 | output = os.path.abspath("output")
10 | manifest = os.path.abspath("build/DEBIAN")
11 | temp = os.path.abspath("tmp")
12 | templates = os.path.abspath("files/DEBIAN")
13 | version = "0.1.0"
14 | variables = {
15 | "architecture": "all",
16 | "maintainer": "Falk Garbsch ",
17 | "name": "gpdpocket-power",
18 | }
19 |
20 | print "first we cleanup our stuff"
21 | config = Config()
22 | for rdir in [config.build, config.temp, config.output]:
23 | try:
24 | print ">> remove %s" % (rdir)
25 | shutil.rmtree(rdir)
26 | except:
27 | pass
28 |
29 | print "create directories"
30 | os.makedirs(config.temp)
31 | os.makedirs(config.output)
32 | os.makedirs(config.build)
33 | os.makedirs(config.manifest)
34 |
35 | print "copy files"
36 | copylist = [
37 | ( 'files/gpd-fan.conf', '/etc/gpd/fan.conf', 0644 ),
38 | ( 'files/gpd-fan.py', '/usr/local/sbin/gpd-fan', 0755 ),
39 | ( 'files/gpd-fan.service', '/etc/systemd/system/gpd-fan.service', 0644 ),
40 | ( 'files/gpd-fan.sh', '/lib/systemd/system-sleep/gpd-fan', 0755 ),
41 | ( 'files/tlp', '/etc/default/tlp', 0644 )
42 | ]
43 | for src, dst, mode in copylist:
44 | print ">> copy (0%o) %s" % (mode, dst)
45 | src = os.path.abspath(src)
46 | dst = config.build + dst
47 | dn = os.path.dirname(dst)
48 | if not os.path.isdir(dn):
49 | os.makedirs(dn)
50 | shutil.copy(src, dst)
51 | os.chmod(dst, mode)
52 |
53 | print "enable systemd service"
54 | src = "/etc/systemd/system/gpd-fan.service"
55 | dst = config.build + "/etc/systemd/system/basic.target.wants/gpd-fan.service"
56 | dn = os.path.dirname(dst)
57 | if not os.path.exists(dst):
58 | os.makedirs(dn)
59 | os.symlink(src, dst)
60 |
61 | print "create blacklist item"
62 | blacklist = config.build + "/etc/pm/config.d/brcmfmac"
63 | dn = os.path.dirname(blacklist)
64 | if not os.path.isdir(dn):
65 | os.makedirs(dn)
66 | fp = open(blacklist, "wb")
67 | fp.write("SUSPEND_MODULES=\"brcmfmac\"\n")
68 | fp.flush()
69 | fp.close()
70 |
71 | print "write control"
72 | variables = config.variables
73 | variables["version"] = config.version
74 | control = open(config.files + "/DEBIAN/control", "rb").read()
75 | fp = open(config.manifest + "/control", "wb")
76 | fp.write(control.format(**variables))
77 | fp.flush()
78 | fp.close()
79 |
80 | print "constructing script files"
81 | for script in ["/postinst", "/postrm", "/preinst", "/prerm"]:
82 | print ">> write DEBIAN%s" % (script)
83 | filepath = config.manifest + script
84 | content = open(config.templates + script, "rb").read()
85 | fp = open(filepath, "wb")
86 | fp.write(content.replace("__VERSION_CODE__", variables["version"]))
87 | fp.flush()
88 | fp.close()
89 | os.chmod(filepath, 0555)
90 |
91 | print "building binary package"
92 | command = ["fakeroot", "dpkg-deb", "-b", config.build]
93 | command.append("%s/%s-%s.deb" % (config.output, variables["name"], variables["version"]))
94 | subprocess.call(command)
95 |
96 | print "done"
97 |
--------------------------------------------------------------------------------
/packages/linux-firmware/files/brcmfmac4356-pcie.txt:
--------------------------------------------------------------------------------
1 | # Sample variables file for BCM94356Z NGFF 22x30mm iPA, iLNA board with PCIe for production package
2 | NVRAMRev=$Rev: 373428 $
3 | #4356 chip = 4354 A2 chip
4 | sromrev=11
5 | boardrev=0x1101
6 | boardtype=0x073e
7 | boardflags=0x02400201
8 | #0x2000 enable 2G spur WAR
9 | boardflags2=0x00802000
10 | boardflags3=0x0000000a
11 | #boardflags3 0x00000100 /* to read swctrlmap from nvram*/
12 | #define BFL3_5G_SPUR_WAR 0x00080000 /* enable spur WAR in 5G band */
13 | #define BFL3_AvVim 0x40000000 /* load AvVim from nvram */
14 | macaddr=00:90:4c:1a:10:01
15 | ccode=US
16 | regrev=1
17 | antswitch=0
18 | pdgain5g=4
19 | pdgain2g=4
20 | tworangetssi2g=0
21 | tworangetssi5g=0
22 | paprdis=0
23 | femctrl=10
24 | vendid=0x14e4
25 | devid=0x43a3
26 | manfid=0x2d0
27 | #prodid=0x052e
28 | nocrc=1
29 | otpimagesize=502
30 | xtalfreq=37400
31 | rxgains2gelnagaina0=0
32 | rxgains2gtrisoa0=7
33 | rxgains2gtrelnabypa0=0
34 | rxgains5gelnagaina0=0
35 | rxgains5gtrisoa0=11
36 | rxgains5gtrelnabypa0=0
37 | rxgains5gmelnagaina0=0
38 | rxgains5gmtrisoa0=13
39 | rxgains5gmtrelnabypa0=0
40 | rxgains5ghelnagaina0=0
41 | rxgains5ghtrisoa0=12
42 | rxgains5ghtrelnabypa0=0
43 | rxgains2gelnagaina1=0
44 | rxgains2gtrisoa1=7
45 | rxgains2gtrelnabypa1=0
46 | rxgains5gelnagaina1=0
47 | rxgains5gtrisoa1=10
48 | rxgains5gtrelnabypa1=0
49 | rxgains5gmelnagaina1=0
50 | rxgains5gmtrisoa1=11
51 | rxgains5gmtrelnabypa1=0
52 | rxgains5ghelnagaina1=0
53 | rxgains5ghtrisoa1=11
54 | rxgains5ghtrelnabypa1=0
55 | rxchain=3
56 | txchain=3
57 | aa2g=3
58 | aa5g=3
59 | agbg0=2
60 | agbg1=2
61 | aga0=2
62 | aga1=2
63 | tssipos2g=1
64 | extpagain2g=2
65 | tssipos5g=1
66 | extpagain5g=2
67 | tempthresh=255
68 | tempoffset=255
69 | rawtempsense=0x1ff
70 | pa2ga0=-147,6192,-705
71 | pa2ga1=-161,6041,-701
72 | pa5ga0=-194,6069,-739,-188,6137,-743,-185,5931,-725,-171,5898,-715
73 | pa5ga1=-190,6248,-757,-190,6275,-759,-190,6225,-757,-184,6131,-746
74 | subband5gver=0x4
75 | pdoffsetcckma0=0x4
76 | pdoffsetcckma1=0x4
77 | pdoffset40ma0=0x0000
78 | pdoffset80ma0=0x0000
79 | pdoffset40ma1=0x0000
80 | pdoffset80ma1=0x0000
81 | maxp2ga0=80
82 | maxp5ga0=78,78,78,78
83 | maxp2ga1=80
84 | maxp5ga1=78,78,78,78
85 | cckbw202gpo=0x0000
86 | cckbw20ul2gpo=0x0000
87 | mcsbw202gpo=0x99644422
88 | mcsbw402gpo=0x99644422
89 | dot11agofdmhrbw202gpo=0x6666
90 | ofdmlrbw202gpo=0x0022
91 | mcsbw205glpo=0x88766663
92 | mcsbw405glpo=0x88666663
93 | mcsbw805glpo=0xbb666665
94 | mcsbw205gmpo=0xd8666663
95 | mcsbw405gmpo=0x88666663
96 | mcsbw805gmpo=0xcc666665
97 | mcsbw205ghpo=0xdc666663
98 | mcsbw405ghpo=0xaa666663
99 | mcsbw805ghpo=0xdd666665
100 | mcslr5glpo=0x0000
101 | mcslr5gmpo=0x0000
102 | mcslr5ghpo=0x0000
103 | sb20in40hrpo=0x0
104 | sb20in80and160hr5glpo=0x0
105 | sb40and80hr5glpo=0x0
106 | sb20in80and160hr5gmpo=0x0
107 | sb40and80hr5gmpo=0x0
108 | sb20in80and160hr5ghpo=0x0
109 | sb40and80hr5ghpo=0x0
110 | sb20in40lrpo=0x0
111 | sb20in80and160lr5glpo=0x0
112 | sb40and80lr5glpo=0x0
113 | sb20in80and160lr5gmpo=0x0
114 | sb40and80lr5gmpo=0x0
115 | sb20in80and160lr5ghpo=0x0
116 | sb40and80lr5ghpo=0x0
117 | dot11agduphrpo=0x0
118 | dot11agduplrpo=0x0
119 | phycal_tempdelta=255
120 | temps_period=15
121 | temps_hysteresis=15
122 | rssicorrnorm_c0=4,4
123 | rssicorrnorm_c1=4,4
124 | rssicorrnorm5g_c0=1,2,3,1,2,3,6,6,8,6,6,8
125 | rssicorrnorm5g_c1=1,2,3,2,2,2,7,7,8,7,7,8
--------------------------------------------------------------------------------
/packages/gpdpocket-xfce4-config/files/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
--------------------------------------------------------------------------------
/packages/gpdpocket-xfce4-config/files/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
--------------------------------------------------------------------------------
/packages/gpdpocket-audio/files/default.pa:
--------------------------------------------------------------------------------
1 | #!/usr/bin/pulseaudio -nF
2 | #
3 | # This file is part of PulseAudio.
4 | #
5 | # PulseAudio is free software; you can redistribute it and/or modify it
6 | # under the terms of the GNU Lesser General Public License as published by
7 | # the Free Software Foundation; either version 2 of the License, or
8 | # (at your option) any later version.
9 | #
10 | # PulseAudio is distributed in the hope that it will be useful, but
11 | # WITHOUT ANY WARRANTY; without even the implied warranty of
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | # General Public License for more details.
14 | #
15 | # You should have received a copy of the GNU Lesser General Public License
16 | # along with PulseAudio; if not, see .
17 |
18 | # This startup script is used only if PulseAudio is started per-user
19 | # (i.e. not in system mode)
20 |
21 | .nofail
22 |
23 | ### Load something into the sample cache
24 | #load-sample-lazy x11-bell /usr/share/sounds/freedesktop/stereo/bell.oga
25 | #load-sample-lazy pulse-hotplug /usr/share/sounds/freedesktop/stereo/device-added.oga
26 | #load-sample-lazy pulse-coldplug /usr/share/sounds/freedesktop/stereo/device-added.oga
27 | #load-sample-lazy pulse-access /usr/share/sounds/freedesktop/stereo/message.oga
28 |
29 | .fail
30 |
31 | ### Automatically restore the volume of streams and devices
32 | load-module module-device-restore
33 | load-module module-stream-restore
34 | load-module module-card-restore
35 |
36 | ### Automatically augment property information from .desktop files
37 | ### stored in /usr/share/application
38 | load-module module-augment-properties
39 |
40 | ### Should be after module-*-restore but before module-*-detect
41 | load-module module-switch-on-port-available
42 |
43 | ### Load audio drivers statically
44 | ### (it's probably better to not load these drivers manually, but instead
45 | ### use module-udev-detect -- see below -- for doing this automatically)
46 | #load-module module-alsa-sink
47 | #load-module module-alsa-source device=hw:1,0
48 | #load-module module-oss device="/dev/dsp" sink_name=output source_name=input
49 | #load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
50 | #load-module module-null-sink
51 | #load-module module-pipe-sink
52 |
53 | ### Automatically load driver modules depending on the hardware available
54 | .ifexists module-udev-detect.so
55 | load-module module-udev-detect
56 | .else
57 | ### Use the static hardware detection module (for systems that lack udev support)
58 | load-module module-detect
59 | .endif
60 |
61 | ### Automatically connect sink and source if JACK server is present
62 | .ifexists module-jackdbus-detect.so
63 | .nofail
64 | load-module module-jackdbus-detect channels=2
65 | .fail
66 | .endif
67 |
68 | ### Automatically load driver modules for Bluetooth hardware
69 | .ifexists module-bluetooth-policy.so
70 | load-module module-bluetooth-policy
71 | .endif
72 |
73 | .ifexists module-bluetooth-discover.so
74 | load-module module-bluetooth-discover
75 | .endif
76 |
77 | ### Load several protocols
78 | .ifexists module-esound-protocol-unix.so
79 | load-module module-esound-protocol-unix
80 | .endif
81 | load-module module-native-protocol-unix
82 |
83 | ### Network access (may be configured with paprefs, so leave this commented
84 | ### here if you plan to use paprefs)
85 | #load-module module-esound-protocol-tcp
86 | #load-module module-native-protocol-tcp
87 | #load-module module-zeroconf-publish
88 |
89 | ### Load the RTP receiver module (also configured via paprefs, see above)
90 | #load-module module-rtp-recv
91 |
92 | ### Load the RTP sender module (also configured via paprefs, see above)
93 | #load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
94 | #load-module module-rtp-send source=rtp.monitor
95 |
96 | ### Load additional modules from GConf settings. This can be configured with the paprefs tool.
97 | ### Please keep in mind that the modules configured by paprefs might conflict with manually
98 | ### loaded modules.
99 | .ifexists module-gconf.so
100 | .nofail
101 | load-module module-gconf
102 | .fail
103 | .endif
104 |
105 | ### Automatically restore the default sink/source when changed by the user
106 | ### during runtime
107 | ### NOTE: This should be loaded as early as possible so that subsequent modules
108 | ### that look up the default sink/source get the right value
109 | load-module module-default-device-restore
110 |
111 | ### Automatically move streams to the default sink if the sink they are
112 | ### connected to dies, similar for sources
113 | load-module module-rescue-streams
114 |
115 | ### Make sure we always have a sink around, even if it is a null sink.
116 | load-module module-always-sink
117 |
118 | ### Honour intended role device property
119 | load-module module-intended-roles
120 |
121 | ### Automatically suspend sinks/sources that become idle for too long
122 | load-module module-suspend-on-idle
123 |
124 | ### If autoexit on idle is enabled we want to make sure we only quit
125 | ### when no local session needs us anymore.
126 | .ifexists module-console-kit.so
127 | load-module module-console-kit
128 | .endif
129 | .ifexists module-systemd-login.so
130 | load-module module-systemd-login
131 | .endif
132 |
133 | ### Enable positioned event sounds
134 | load-module module-position-event-sounds
135 |
136 | ### Cork music/video streams when a phone stream is active
137 | #load-module module-role-cork
138 |
139 | ### Modules to allow autoloading of filters (such as echo cancellation)
140 | ### on demand. module-filter-heuristics tries to determine what filters
141 | ### make sense, and module-filter-apply does the heavy-lifting of
142 | ### loading modules and rerouting streams.
143 | load-module module-filter-heuristics
144 | load-module module-filter-apply
145 |
146 | # X11 modules should not be started from default.pa so that one daemon
147 | # can be shared by multiple sessions.
148 |
149 | ### Load X11 bell module
150 | #load-module module-x11-bell sample=x11-bell
151 |
152 | ### Register ourselves in the X11 session manager
153 | #load-module module-x11-xsmp
154 |
155 | ### Publish connection data in the X11 root window
156 | #.ifexists module-x11-publish.so
157 | #.nofail
158 | #load-module module-x11-publish
159 | #.fail
160 | #.endif
161 |
162 | ### Make some devices default
163 | set-default-sink alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645__sink
164 | set-sink-port alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645__sink [Out] Speaker
165 | set-card-profile alsa_card.platform-cht-bsw-rt5645 HiFi
166 |
--------------------------------------------------------------------------------
/respin/respin.py:
--------------------------------------------------------------------------------
1 | import os
2 | import sys
3 | import shutil
4 | import subprocess
5 | import traceback
6 | from cStringIO import StringIO
7 |
8 | class Config(object):
9 | def __init__(self, args):
10 | if len(args) < 3:
11 | print "ERROR: needs at least input and output name"
12 | sys.exit(1)
13 | self.url = args[1]
14 | self.output = os.path.abspath(args[2])
15 | self.additional = []
16 | if len(args) > 3:
17 | self.additional += args[3:]
18 |
19 | self.image_dir = os.path.abspath("./images")
20 | self.tmp_dir = os.path.abspath("./tmp")
21 | self.output_dir = os.path.dirname(self.output)
22 | self.name = os.path.basename(self.url)
23 |
24 | self.image = self.image_dir + "/" + self.name
25 | self.tmp = self.tmp_dir + "/" + self.name
26 | self.mount_iso = self.tmp + "/mnt/iso"
27 | self.clone_iso = self.tmp + "/data/iso"
28 | self.mount_squashfs = self.tmp + "/mnt/squashfs"
29 | self.clone_squashfs = self.tmp + "/data/squashfs"
30 | self.squashfs_path = self.clone_iso + "/casper/filesystem.squashfs"
31 | self.squashfs_sig = self.squashfs_path + ".gpg"
32 | self.squashfs_manifest = self.squashfs_path + ".manifest"
33 |
34 | self.pseudo_fs = ["/dev", "/dev/pts", "/proc", "/sys"]
35 | self.repo_base = os.path.abspath("../repo")
36 | self.repo = self.repo_base + "/dists/stable/main/binary"
37 | self.keyfile = self.repo_base + "/keyFile"
38 | self.root = self.clone_squashfs
39 |
40 | self.packages = ["gpdpocket"]
41 | self.packages += self.additional
42 | self.hybridboot = "/usr/lib/ISOLINUX/isohdpfx.bin"
43 | self.volname = "gpdpocket"
44 | self.initramfs_modules = [ "btusb", "loop", "overlay", "pwm-lpss", "pwm-lpss-platform", "squashfs" ]
45 | self.respin_repos = [ "deb file:///tmp/repo /" ]
46 | self.system_repos = [ "deb https://apt.nexus511.net/repo/dists/stable/main/binary /"]
47 |
48 | self.vmlinuz = self.clone_iso + "/casper/vmlinuz"
49 | self.initrd = self.clone_iso + "/casper/initrd.lz"
50 |
51 | def cleanup():
52 | print "cleanup %s" % (config.tmp)
53 | try:
54 | shutil.rmtree(config.tmp)
55 | except:
56 | pass
57 |
58 | def clone_image(src, mnt, dst):
59 | print ">> mount %s -> %s" % (src, mnt)
60 | command = ["mount", "-o", "loop", src, mnt]
61 | assert(subprocess.call(command) == 0)
62 |
63 | print ">> rsync %s -> %s" % (mnt, dst)
64 | command = ["rsync", "-a", mnt + "/.", dst]
65 | assert(subprocess.call(command) == 0)
66 |
67 | print ">> umount %s" % (mnt)
68 | command = ["umount", mnt]
69 | assert(subprocess.call(command) == 0)
70 |
71 | os.environ["DEBIAN_FRONTEND"] = "noninteractive"
72 | config = Config(sys.argv)
73 |
74 | cleanup()
75 |
76 | if os.path.exists(config.output):
77 | print "remove %s" % (config.output)
78 | os.remove(config.output)
79 |
80 | print "make directories"
81 | for dn in [config.mount_iso, config.mount_squashfs, config.clone_iso, config.clone_squashfs, config.image_dir, config.output_dir]:
82 | print ">> mkdir %s" % (dn)
83 | if not os.path.isdir(dn):
84 | os.makedirs(dn)
85 |
86 | if not os.path.exists(config.image):
87 | print "download image from %s" % (config.url)
88 | command = [ "wget", "-O", config.image, config.url ]
89 | assert(subprocess.call(command) == 0)
90 |
91 | print "perform sha256 check on %s" % (config.image)
92 | command = "grep -F \"images/%s\" files/iso.hashes.sha256sum | sha256sum -c" % (config.name)
93 | assert(subprocess.call(command, shell = True) == 0)
94 |
95 | print "extract files from iso"
96 | clone_image(config.image, config.mount_iso, config.clone_iso)
97 |
98 | print "check for vmlinuz image"
99 | if not os.path.exists(config.vmlinuz):
100 | config.vmlinuz += ".efi"
101 | if not os.path.exists(config.vmlinuz):
102 | print "ERROR: no kernel image found"
103 | sys.exit(1)
104 |
105 | print "extract files from squashfs"
106 | clone_image(config.squashfs_path, config.mount_squashfs, config.clone_squashfs)
107 |
108 | print "remove original squashfs file and metadata"
109 | for fn in [config.squashfs_path, config.squashfs_manifest, config.squashfs_sig]:
110 | print ">> rm %s" % (fn)
111 | if os.path.exists(fn):
112 | os.remove(fn)
113 |
114 | print "mount pseudo filesystems"
115 | for fs in config.pseudo_fs:
116 | print ">> mount %s" % (fs)
117 | command = ["mount", "--bind", fs, config.root + fs]
118 | assert(subprocess.call(command) == 0)
119 |
120 | try:
121 | print "backup some files"
122 | shutil.move(config.root + "/etc/resolv.conf", config.root + "/etc/resolv.conf.distrib")
123 |
124 | print "find target release codename"
125 | command = [ "chroot", config.root, "lsb_release", "-sc" ]
126 | data = subprocess.check_output(command)
127 | codename = data.split("\n")[0]
128 | if not config.name.startswith("linuxmint"):
129 | config.respin_repos.append("deb http://de.archive.ubuntu.com/ubuntu/ %s universe\n" % codename)
130 | print ">> codename is %s" % (codename)
131 |
132 | print "update grub configuration"
133 | fp = open(config.root + "/etc/default/grub", "rb")
134 | out = StringIO()
135 | for line in fp.readlines():
136 | if not line.startswith("GRUB_CMDLINE_LINUX_DEFAULT"):
137 | out.write(line)
138 | continue
139 | out.write("GRUB_CMDLINE_LINUX_DEFAULT=\"i915.fastboot=1 fbcon=rotate:1\"\n")
140 | fp = open(config.root + "/etc/default/grub", "wb")
141 | fp.write(out.getvalue())
142 | fp.flush()
143 | fp.close()
144 |
145 | print "update target configuration"
146 | shutil.copy("/etc/resolv.conf", config.root + "/etc/resolv.conf")
147 | fp = open(config.root + "/etc/initramfs-tools/modules", "a")
148 | fp.write("\n".join(config.initramfs_modules) + "\n")
149 | fp.flush()
150 | fp.close()
151 |
152 | print "clone repository to target and activate it"
153 | command = ["rsync", "-va", config.repo + "/.", config.root + "/tmp/repo"]
154 | assert(subprocess.call(command) == 0)
155 | shutil.copy(config.keyfile, config.root + "/tmp/repo/keyFile")
156 |
157 | print "activate repository on target"
158 | command = ["chroot", config.root, "apt-key", "add", "/tmp/repo/keyFile"]
159 | assert(subprocess.call(command) == 0)
160 | fp = open(config.root + "/etc/apt/sources.list.d/gpdpocket.list", "wb")
161 | fp.write("%s\n" % ("\n".join(config.respin_repos)))
162 | fp.flush()
163 | fp.close()
164 | command = ["chroot", config.root, "apt", "update"]
165 | assert(subprocess.call(command) == 0)
166 |
167 | print "install the gpdpocket packages"
168 | command = ["chroot", config.root, "apt", "install", "-y", "--no-install-recommends"]
169 | command += config.packages
170 | assert(subprocess.call(command) == 0)
171 |
172 | print "ensure that gpdpocket repo is left behind"
173 | fp = open(config.root + "/etc/apt/sources.list.d/gpdpocket.list", "wb")
174 | fp.write("# gpdpocket packages\n")
175 | fp.write("%s\n" % ("\n".join(config.system_repos)))
176 | fp.flush()
177 | fp.close()
178 | command = [ "chroot", config.root, "apt", "update" ]
179 | assert(subprocess.call(command) == 0)
180 |
181 | print "restore target configuration"
182 | shutil.move(config.root + "/etc/resolv.conf.distrib", config.root + "/etc/resolv.conf")
183 |
184 | print "unmount pseudo filesystems"
185 | for fs in reversed(config.pseudo_fs):
186 | print ">> umount %s" % (fs)
187 | command = ["umount", config.root + fs]
188 | subprocess.call(command)
189 |
190 | print "write metadata to %s" % (config.squashfs_manifest)
191 | command = [ "chroot", config.root, "dpkg-query", "-W", "--showformat='${Package} ${Version}\n'" ]
192 | data = subprocess.check_output(command)
193 | fp = open(config.squashfs_manifest, "wb")
194 | fp.write(data)
195 | fp.flush()
196 | fp.close()
197 |
198 | except:
199 | traceback.print_exc()
200 | print "unmount pseudo filesystems"
201 | for fs in reversed(config.pseudo_fs):
202 | print ">> umount %s" % (fs)
203 | command = ["umount", config.root + fs]
204 | subprocess.call(command)
205 | sys.exit(1)
206 |
207 | print "clone updated kernel to iso"
208 | shutil.copy(config.root + "/vmlinuz", config.vmlinuz)
209 | shutil.copy(config.root + "/initrd.img", config.initrd)
210 |
211 | print "collect filesystem size"
212 | command = "du -sx --block-size=1 %s | cut -f1" % (config.root)
213 | data = subprocess.check_output(command, shell = True)
214 | fp = open(config.clone_iso + "/casper/filesystem.size", "wb")
215 | fp.write("%s\n" % data)
216 | fp.flush()
217 | fp.close()
218 |
219 | print "repack squashfs to %s" % (config.squashfs_path)
220 | command = [ "mksquashfs", config.root, config.squashfs_path, "-comp", "xz" ]
221 | assert(subprocess.call(command) == 0)
222 |
223 | print "collect md5 hashes"
224 | command = "cd %s ; find . -type f -print0 | xargs -0 md5sum" % (config.clone_iso)
225 | data = subprocess.check_output(command, shell = True)
226 | fp = open(config.root + "/md5sum.txt", "wb")
227 | fp.write(data)
228 | fp.flush()
229 | fp.close()
230 |
231 | print "create new iso image based on updated squashfs"
232 | pwd = os.path.abspath(".")
233 | os.chdir(config.clone_iso)
234 | command = [
235 | "xorriso",
236 | "-as", "mkisofs",
237 | "-iso-level", "3",
238 | "-full-iso9660-filenames",
239 | "-volid", config.volname,
240 | "-isohybrid-mbr", config.hybridboot,
241 | "-eltorito-boot", "isolinux/isolinux.bin",
242 | "-no-emul-boot",
243 | "-eltorito-catalog", "isolinux/boot.cat",
244 | "-no-emul-boot",
245 | "-boot-load-size", "4"
246 | "-boot-info-table",
247 | "-eltorito-alt-boot",
248 | "-e", "boot/grub/efi.img",
249 | "-no-emul-boot",
250 | "-isohybrid-gpt-basdat",
251 | "-o", config.output,
252 | "."
253 | ]
254 | assert(subprocess.call(command) == 0)
255 | os.chdir(pwd)
256 |
257 | cleanup()
258 |
--------------------------------------------------------------------------------
/packages/gpdpocket-power/files/tlp:
--------------------------------------------------------------------------------
1 | # ------------------------------------------------------------------------------
2 | # tlp - Parameters for power save
3 | # See full explanation: http://linrunner.de/en/tlp/docs/tlp-configuration.html
4 |
5 | # Hint: some features are disabled by default, remove the leading # to enable
6 | # them.
7 |
8 | # Set to 0 to disable, 1 to enable TLP.
9 | TLP_ENABLE=1
10 |
11 | # Operation mode when no power supply can be detected: AC, BAT
12 | # Concerns some desktop and embedded hardware only.
13 | TLP_DEFAULT_MODE=AC
14 |
15 | # Seconds laptop mode has to wait after the disk goes idle before doing a sync.
16 | # Non-zero value enables, zero disables laptop mode.
17 | DISK_IDLE_SECS_ON_AC=0
18 | DISK_IDLE_SECS_ON_BAT=2
19 |
20 | # Dirty page values (timeouts in secs).
21 | MAX_LOST_WORK_SECS_ON_AC=15
22 | MAX_LOST_WORK_SECS_ON_BAT=60
23 |
24 | # Hint: CPU parameters below are disabled by default, remove the leading #
25 | # to enable them, otherwise kernel default values are used.
26 |
27 | # Select a CPU frequency scaling governor:
28 | # ondemand, powersave, performance, conservative
29 | # Intel Core i processor with intel_pstate driver:
30 | # powersave, performance
31 | # Important:
32 | # You *must* disable your distribution's governor settings or conflicts will
33 | # occur. ondemand is sufficient for *almost all* workloads, you should know
34 | # what you're doing!
35 | #CPU_SCALING_GOVERNOR_ON_AC=ondemand
36 | #CPU_SCALING_GOVERNOR_ON_BAT=ondemand
37 |
38 | # Set the min/max frequency available for the scaling governor.
39 | # Possible values strongly depend on your CPU. For available frequencies see
40 | # tlp-stat output, Section "+++ Processor".
41 | #CPU_SCALING_MIN_FREQ_ON_AC=0
42 | #CPU_SCALING_MAX_FREQ_ON_AC=0
43 | #CPU_SCALING_MIN_FREQ_ON_BAT=0
44 | #CPU_SCALING_MAX_FREQ_ON_BAT=0
45 |
46 | # Set Intel P-state performance: 0..100 (%)
47 | # Limit the max/min P-state to control the power dissipation of the CPU.
48 | # Values are stated as a percentage of the available performance.
49 | # Requires an Intel Core i processor with intel_pstate driver.
50 | #CPU_MIN_PERF_ON_AC=0
51 | #CPU_MAX_PERF_ON_AC=100
52 | #CPU_MIN_PERF_ON_BAT=0
53 | #CPU_MAX_PERF_ON_BAT=30
54 |
55 | # Set the CPU "turbo boost" feature: 0=disable, 1=allow
56 | # Requires an Intel Core i processor.
57 | # Important:
58 | # - This may conflict with your distribution's governor settings
59 | # - A value of 1 does *not* activate boosting, it just allows it
60 | #CPU_BOOST_ON_AC=1
61 | #CPU_BOOST_ON_BAT=0
62 |
63 | # Minimize number of used CPU cores/hyper-threads under light load conditions
64 | SCHED_POWERSAVE_ON_AC=0
65 | SCHED_POWERSAVE_ON_BAT=1
66 |
67 | # Kernel NMI Watchdog:
68 | # 0=disable (default, saves power), 1=enable (for kernel debugging only)
69 | NMI_WATCHDOG=0
70 |
71 | # Change CPU voltages aka "undervolting" - Kernel with PHC patch required
72 | # Frequency voltage pairs are written to:
73 | # /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
74 | # CAUTION: only use this, if you thoroughly understand what you are doing!
75 | #PHC_CONTROLS="F:V F:V F:V F:V"
76 |
77 | # Set CPU performance versus energy savings policy:
78 | # performance, normal, powersave
79 | # Requires kernel module msr and x86_energy_perf_policy from linux-tools
80 | ENERGY_PERF_POLICY_ON_AC=performance
81 | ENERGY_PERF_POLICY_ON_BAT=powersave
82 |
83 | # Hard disk devices; separate multiple devices with spaces (default: sda).
84 | # Devices can be specified by disk ID also (lookup with: tlp diskid).
85 | DISK_DEVICES="mmcblk0"
86 |
87 | # Hard disk advanced power management level: 1..254, 255 (max saving, min, off)
88 | # Levels 1..127 may spin down the disk; 255 allowable on most drives.
89 | # Separate values for multiple devices with spaces.
90 | DISK_APM_LEVEL_ON_AC="254 254"
91 | DISK_APM_LEVEL_ON_BAT="128 128"
92 |
93 | # Hard disk spin down timeout:
94 | # 0: spin down disabled
95 | # 1..240: timeouts from 5s to 20min (in units of 5s)
96 | # 241..251: timeouts from 30min to 5.5 hours (in units of 30min)
97 | # See 'man hdparm' for details.
98 | #DISK_SPINDOWN_TIMEOUT_ON_AC="0 0"
99 | #DISK_SPINDOWN_TIMEOUT_ON_BAT="0 0"
100 |
101 | # Select IO scheduler for the disk devices: noop, deadline, cfq (Default: cfq);
102 | # Separate values for multiple devices with spaces.
103 | DISK_IOSCHED="deadline"
104 |
105 | # SATA aggressive link power management (ALPM):
106 | # min_power, medium_power, max_performance
107 | SATA_LINKPWR_ON_AC=max_performance
108 | SATA_LINKPWR_ON_BAT=min_power
109 |
110 | # PCI Express Active State Power Management (PCIe ASPM):
111 | # default, performance, powersave
112 | PCIE_ASPM_ON_AC=performance
113 | PCIE_ASPM_ON_BAT=powersave
114 |
115 | # Radeon graphics clock speed (profile method): low, mid, high, auto, default;
116 | # auto = mid on BAT, high on AC; default = use hardware defaults.
117 | # (Kernel >= 2.6.35 only, open-source radeon driver explicitly)
118 | RADEON_POWER_PROFILE_ON_AC=high
119 | RADEON_POWER_PROFILE_ON_BAT=low
120 |
121 | # Radeon dynamic power management method (DPM): battery, performance
122 | # (Kernel >= 3.11 only, requires boot option radeon.dpm=1)
123 | RADEON_DPM_STATE_ON_AC=performance
124 | RADEON_DPM_STATE_ON_BAT=battery
125 |
126 | # Radeon DPM performance level: auto, low, high; auto is recommended.
127 | RADEON_DPM_PERF_LEVEL_ON_AC=auto
128 | RADEON_DPM_PERF_LEVEL_ON_BAT=auto
129 |
130 | # WiFi power saving mode: 1=disable, 5=enable; not supported by all adapters.
131 | WIFI_PWR_ON_AC=1
132 | WIFI_PWR_ON_BAT=5
133 |
134 | # Disable wake on LAN: Y/N
135 | WOL_DISABLE=Y
136 |
137 | # Enable audio power saving for Intel HDA, AC97 devices (timeout in secs).
138 | # A value of 0 disables, >=1 enables power save.
139 | SOUND_POWER_SAVE_ON_AC=0
140 | SOUND_POWER_SAVE_ON_BAT=1
141 |
142 | # Disable controller too (HDA only): Y/N
143 | SOUND_POWER_SAVE_CONTROLLER=Y
144 |
145 | # Set to 1 to power off optical drive in UltraBay/MediaBay when running on
146 | # battery. A value of 0 disables this feature (Default).
147 | # Drive can be powered on again by releasing (and reinserting) the eject lever
148 | # or by pressing the disc eject button on newer models.
149 | # Note: an UltraBay/MediaBay hard disk is never powered off.
150 | BAY_POWEROFF_ON_BAT=0
151 | # Optical drive device to power off (default sr0).
152 | BAY_DEVICE="sr0"
153 |
154 | # Runtime Power Management for PCI(e) bus devices: on=disable, auto=enable
155 | RUNTIME_PM_ON_AC=on
156 | RUNTIME_PM_ON_BAT=auto
157 |
158 | # Runtime PM for *all* PCI(e) bus devices, except blacklisted ones:
159 | # 0=disable, 1=enable
160 | RUNTIME_PM_ALL=1
161 |
162 | # Exclude PCI(e) device adresses the following list from Runtime PM
163 | # (separate with spaces). Use lspci to get the adresses (1st column).
164 | #RUNTIME_PM_BLACKLIST="bb:dd.f 11:22.3 44:55.6"
165 |
166 | # Exclude PCI(e) devices assigned to the listed drivers from Runtime PM
167 | # (should prevent accidential power on of hybrid graphics' discrete part).
168 | # Default is "radeon nouveau"; use "" to disable the feature completely.
169 | # Separate multiple drivers with spaces.
170 | RUNTIME_PM_DRIVER_BLACKLIST="radeon nouveau"
171 |
172 | # Set to 0 to disable, 1 to enable USB autosuspend feature.
173 | USB_AUTOSUSPEND=1
174 |
175 | # Exclude listed devices from USB autosuspend (separate with spaces).
176 | # Use lsusb to get the ids.
177 | # Note: input devices (usbhid) are excluded automatically (see below)
178 | #USB_BLACKLIST="1111:2222 3333:4444"
179 |
180 | # WWAN devices are excluded from USB autosuspend:
181 | # 0=do not exclude / 1=exclude
182 | USB_BLACKLIST_WWAN=1
183 |
184 | # Include listed devices into USB autosuspend even if already excluded
185 | # by the driver or WWAN blacklists above (separate with spaces).
186 | # Use lsusb to get the ids.
187 | #USB_WHITELIST="1111:2222 3333:4444"
188 |
189 | # Set to 1 to disable autosuspend before shutdown, 0 to do nothing
190 | # (workaround for USB devices that cause shutdown problems).
191 | #USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN=1
192 |
193 | # Restore radio device state (Bluetooth, WiFi, WWAN) from previous shutdown
194 | # on system startup: 0=disable, 1=enable.
195 | # Hint: the parameters DEVICES_TO_DISABLE/ENABLE_ON_STARTUP/SHUTDOWN below
196 | # are ignored when this is enabled!
197 | RESTORE_DEVICE_STATE_ON_STARTUP=0
198 |
199 | # Radio devices to disable on startup: bluetooth, wifi, wwan.
200 | # Separate multiple devices with spaces.
201 | #DEVICES_TO_DISABLE_ON_STARTUP="bluetooth wifi wwan"
202 |
203 | # Radio devices to enable on startup: bluetooth, wifi, wwan.
204 | # Separate multiple devices with spaces.
205 | #DEVICES_TO_ENABLE_ON_STARTUP="wifi"
206 |
207 | # Radio devices to disable on shutdown: bluetooth, wifi, wwan
208 | # (workaround for devices that are blocking shutdown).
209 | #DEVICES_TO_DISABLE_ON_SHUTDOWN="bluetooth wifi wwan"
210 |
211 | # Radio devices to enable on shutdown: bluetooth, wifi, wwan
212 | # (to prevent other operating systems from missing radios).
213 | #DEVICES_TO_ENABLE_ON_SHUTDOWN="wwan"
214 |
215 | # Radio devices to enable on AC: bluetooth, wifi, wwan
216 | #DEVICES_TO_ENABLE_ON_AC="bluetooth wifi wwan"
217 |
218 | # Radio devices to disable on battery: bluetooth, wifi, wwan
219 | #DEVICES_TO_DISABLE_ON_BAT="bluetooth wifi wwan"
220 |
221 | # Radio devices to disable on battery when not in use (not connected):
222 | # bluetooth, wifi, wwan
223 | #DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE="bluetooth wifi wwan"
224 |
225 | # Battery charge thresholds (ThinkPad only, tp-smapi or acpi-call kernel module
226 | # required). Charging starts when the remaining capacity falls below the
227 | # START_CHARGE_TRESH value and stops when exceeding the STOP_CHARGE_TRESH value.
228 | # Main / Internal battery (values in %)
229 | #START_CHARGE_THRESH_BAT0=75
230 | #STOP_CHARGE_THRESH_BAT0=80
231 | # Ultrabay / Slice / Replaceable battery (values in %)
232 | #START_CHARGE_THRESH_BAT1=75
233 | #STOP_CHARGE_THRESH_BAT1=80
234 |
235 | # ------------------------------------------------------------------------------
236 | # tlp-rdw - Parameters for the radio device wizard
237 | # Possible devices: bluetooth, wifi, wwan
238 |
239 | # Hints:
240 | # - Parameters are disabled by default, remove the leading # to enable them.
241 | # - Separate multiple radio devices with spaces.
242 |
243 | # Radio devices to disable on connect.
244 | #DEVICES_TO_DISABLE_ON_LAN_CONNECT="wifi wwan"
245 | #DEVICES_TO_DISABLE_ON_WIFI_CONNECT="wwan"
246 | #DEVICES_TO_DISABLE_ON_WWAN_CONNECT="wifi"
247 |
248 | # Radio devices to enable on disconnect.
249 | #DEVICES_TO_ENABLE_ON_LAN_DISCONNECT="wifi wwan"
250 | #DEVICES_TO_ENABLE_ON_WIFI_DISCONNECT=""
251 | #DEVICES_TO_ENABLE_ON_WWAN_DISCONNECT=""
252 |
253 | # Radio devices to enable/disable when docked.
254 | #DEVICES_TO_ENABLE_ON_DOCK=""
255 | #DEVICES_TO_DISABLE_ON_DOCK=""
256 |
257 | # Radio devices to enable/disable when undocked.
258 | #DEVICES_TO_ENABLE_ON_UNDOCK="wifi"
259 | #DEVICES_TO_DISABLE_ON_UNDOCK=""
260 |
--------------------------------------------------------------------------------
/packages/gpdpocket-audio/files/HiFi.conf:
--------------------------------------------------------------------------------
1 | SectionVerb {
2 | # ALSA PCM
3 | Value {
4 | TQ "HiFi"
5 |
6 | # ALSA PCM device for HiFi
7 | PlaybackPCM "hw:chtrt5645"
8 | CapturePCM "hw:chtrt5645"
9 | }
10 |
11 | EnableSequence [
12 | cdev "hw:chtrt5645"
13 |
14 | # media mixer settings
15 | # compress
16 | cset "name='media0_in Gain 0 Switch' on"
17 | cset "name='media0_in Gain 0 Volume' 0"
18 |
19 | # normal
20 | cset "name='media1_in Gain 0 Switch' on"
21 | cset "name='media1_in Gain 0 Volume' 0"
22 | # swm loopback
23 | cset "name='media2_in Gain 0 Switch' off"
24 | cset "name='media2_in Gain 0 Volume' 0%"
25 | # deep buffer
26 | cset "name='media3_in Gain 0 Switch' on"
27 | cset "name='media3_in Gain 0 Volume' 0"
28 |
29 | cset "name='media0_out mix 0 media0_in Switch' on"
30 | cset "name='media0_out mix 0 media1_in Switch' on"
31 | cset "name='media0_out mix 0 media2_in Switch' off"
32 | cset "name='media0_out mix 0 media3_in Switch' on"
33 |
34 | cset "name='media1_out mix 0 media0_in Switch' off"
35 | cset "name='media1_out mix 0 media1_in Switch' off"
36 | cset "name='media1_out mix 0 media2_in Switch' off"
37 | cset "name='media1_out mix 0 media3_in Switch' off"
38 |
39 | cset "name='pcm0_in Gain 0 Switch' on"
40 | cset "name='pcm0_in Gain 0 Volume' 0"
41 |
42 | cset "name='pcm1_in Gain 0 Switch' off"
43 | cset "name='pcm1_in Gain 0 Volume' 0%"
44 |
45 | # codec0_out settings (used if ssp2 is connected to aif1)
46 | cset "name='codec_out0 mix 0 codec_in0 Switch' off"
47 | cset "name='codec_out0 mix 0 codec_in1 Switch' off"
48 | cset "name='codec_out0 mix 0 media_loop1_in Switch' off"
49 | cset "name='codec_out0 mix 0 media_loop2_in Switch' off"
50 | cset "name='codec_out0 mix 0 pcm0_in Switch' on"
51 | cset "name='codec_out0 mix 0 pcm1_in Switch' off"
52 | cset "name='codec_out0 mix 0 sprot_loop_in Switch' off"
53 | cset "name='codec_out0 Gain 0 Switch' on"
54 | cset "name='codec_out0 Gain 0 Volume' 0"
55 |
56 | # modem_out settings (used if ssp0 is connected to aif2)
57 | cset "name='modem_out mix 0 codec_in0 Switch' off"
58 | cset "name='modem_out mix 0 codec_in1 Switch' off"
59 | cset "name='modem_out mix 0 media_loop1_in Switch' off"
60 | cset "name='modem_out mix 0 media_loop2_in Switch' off"
61 | cset "name='modem_out mix 0 pcm0_in Switch' on"
62 | cset "name='modem_out mix 0 pcm1_in Switch' off"
63 | cset "name='modem_out mix 0 sprot_loop_in Switch' off"
64 | cset "name='modem_out Gain 0 Switch' on"
65 | cset "name='modem_out Gain 0 Volume' 0"
66 |
67 | # input settings
68 | # pcm1_out settings
69 |
70 | # input used when SSP2 is connected
71 | cset "name='codec_in0 Gain 0 Switch' on"
72 | cset "name='codec_in0 Gain 0 Volume' 0"
73 |
74 | # input used when SSP0 is connected
75 | cset "name='modem_in Gain 0 Switch' on"
76 | cset "name='modem_in Gain 0 Volume' 0"
77 |
78 | cset "name='pcm1_out mix 0 codec_in0 Switch' on"
79 | cset "name='pcm1_out mix 0 modem_in Switch' on"
80 | cset "name='pcm1_out mix 0 codec_in1 Switch' off"
81 | cset "name='pcm1_out mix 0 media_loop1_in Switch' off"
82 | cset "name='pcm1_out mix 0 media_loop2_in Switch' off"
83 | cset "name='pcm1_out mix 0 pcm0_in Switch' off"
84 | cset "name='pcm1_out mix 0 pcm1_in Switch' off"
85 | cset "name='pcm1_out mix 0 sprot_loop_in Switch' off"
86 |
87 | cset "name='pcm1_out Gain 0 Switch' on"
88 | cset "name='pcm1_out Gain 0 Volume' 0"
89 |
90 | # disable codec_out1
91 | cset "name='codec_out1 mix 0 codec_in0 Switch' off"
92 | cset "name='codec_out1 mix 0 codec_in1 Switch' off"
93 | cset "name='codec_out1 mix 0 media_loop1_in Switch' off"
94 | cset "name='codec_out1 mix 0 media_loop2_in Switch' off"
95 | cset "name='codec_out1 mix 0 pcm0_in Switch' off"
96 | cset "name='codec_out1 mix 0 pcm1_in Switch' off"
97 | cset "name='codec_out1 mix 0 sprot_loop_in Switch' off"
98 | cset "name='codec_out1 Gain 0 Switch' off"
99 | cset "name='codec_out1 Gain 0 Volume' 0%"
100 |
101 | # disable codec_in1
102 | cset "name='codec_in1 Gain 0 Switch' off"
103 | cset "name='codec_in1 Gain 0 Volume' 0%"
104 |
105 | # disable all loops
106 | cset "name='media_loop1_out mix 0 codec_in0 Switch' off"
107 | cset "name='media_loop1_out mix 0 codec_in1 Switch' off"
108 | cset "name='media_loop1_out mix 0 media_loop1_in Switch' off"
109 | cset "name='media_loop1_out mix 0 media_loop2_in Switch' off"
110 | cset "name='media_loop1_out mix 0 pcm0_in Switch' off"
111 | cset "name='media_loop1_out mix 0 pcm1_in Switch' off"
112 | cset "name='media_loop1_out mix 0 sprot_loop_in Switch' off"
113 |
114 | cset "name='media_loop2_out mix 0 codec_in0 Switch' off"
115 | cset "name='media_loop2_out mix 0 codec_in1 Switch' off"
116 | cset "name='media_loop2_out mix 0 media_loop1_in Switch' off"
117 | cset "name='media_loop2_out mix 0 media_loop2_in Switch' off"
118 | cset "name='media_loop2_out mix 0 pcm0_in Switch' off"
119 | cset "name='media_loop2_out mix 0 pcm1_in Switch' off"
120 | cset "name='media_loop2_out mix 0 sprot_loop_in Switch' off"
121 |
122 | cset "name='sprot_loop_out mix 0 codec_in0 Switch' off"
123 | cset "name='sprot_loop_out mix 0 codec_in1 Switch' off"
124 | cset "name='sprot_loop_out mix 0 media_loop1_in Switch' off"
125 | cset "name='sprot_loop_out mix 0 media_loop2_in Switch' off"
126 | cset "name='sprot_loop_out mix 0 pcm0_in Switch' off"
127 | cset "name='sprot_loop_out mix 0 pcm1_in Switch' off"
128 | cset "name='sprot_loop_out mix 0 sprot_loop_in Switch' off"
129 |
130 | # Output Configuration
131 | cset "name='DAC1 L Mux' IF1 DAC"
132 | cset "name='DAC1 R Mux' IF1 DAC"
133 | cset "name='DAC1 MIXL DAC1 Switch' 1"
134 | cset "name='DAC1 MIXR DAC1 Switch' 1"
135 | cset "name='Stereo DAC MIXL DAC L1 Switch' 1"
136 | cset "name='Stereo DAC MIXR DAC R1 Switch' 1"
137 |
138 | cset "name='DAC L2 Mux' IF2 DAC"
139 | cset "name='DAC R2 Mux' IF2 DAC"
140 | cset "name='Mono DAC MIXL DAC L2 Switch' on"
141 | cset "name='Mono DAC MIXR DAC R2 Switch' on"
142 | cset "name='DAC2 Playback Switch' on"
143 |
144 | cset "name='HPOVOL MIXL DAC1 Switch' on"
145 | cset "name='HPOVOL MIXR DAC1 Switch' on"
146 | cset "name='HPOVOL MIXL DAC2 Switch' on"
147 | cset "name='HPOVOL MIXR DAC2 Switch' on"
148 | cset "name='HPO MIX HPVOL Switch' on"
149 | cset "name='HPOVOL L Switch' on"
150 | cset "name='HPOVOL R Switch' on"
151 |
152 | cset "name='SPK MIXL DAC L1 Switch' on"
153 | cset "name='SPK MIXR DAC R1 Switch' on"
154 | cset "name='SPK MIXL DAC L2 Switch' on"
155 | cset "name='SPK MIXR DAC R2 Switch' on"
156 | cset "name='SPOL MIX SPKVOL L Switch' on"
157 | cset "name='SPOR MIX SPKVOL R Switch' on"
158 | cset "name='SPKVOL L Switch' on"
159 | cset "name='SPKVOL R Switch' on"
160 |
161 | # Input Configuration
162 | cset "name='Stereo1 DMIC Mux' 0"
163 | cset "name='Stereo1 ADC2 Mux' 1"
164 | cset "name='ADC Capture Switch' on"
165 | cset "name='ADC Capture Volume' 31"
166 | cset "name='ADC Boost Capture Volume' 3"
167 | cset "name='Mono ADC Capture Volume' 63"
168 | cset "name='Mono ADC Boost Capture Volume' 2"
169 | cset "name='IN Capture Volume' 63"
170 | cset "name='I2S2 Func Switch' on"
171 |
172 | ]
173 |
174 | DisableSequence [
175 | cdev "hw:chtrt5645"
176 |
177 | # Disable audio output path
178 | cset "name='codec_out1 mix 0 pcm0_in Switch' off"
179 | cset "name='media0_out mix 0 media1_in Switch' off"
180 |
181 | cset "name='media1_in Gain 0 Switch' off"
182 | cset "name='pcm0_in Gain 0 Switch' off"
183 | cset "name='codec_out1 Gain 0 Switch' off"
184 |
185 | # Disable audio input path
186 | cset "name='pcm1_out mix 0 media_loop2_in Switch' off"
187 | cset "name='media_loop2_out mix 0 codec_in0 Switch' off"
188 |
189 | cset "name='media_loop2_out Gain 0 Switch' off"
190 | cset "name='pcm1_out Gain 0 Switch' off"
191 | cset "name='codec_in0 Gain 0 Switch' off"
192 | ]
193 | }
194 |
195 | SectionDevice."Speaker" {
196 | Comment "Speaker"
197 |
198 | Value {
199 | PlaybackChannels "2"
200 | }
201 |
202 | ConflictingDevice [
203 | "Headphones"
204 | ]
205 |
206 | EnableSequence [
207 | cdev "hw:chtrt5645"
208 |
209 | cset "name='Headphone Switch' off"
210 | cset "name='Headphone Channel Switch' off"
211 |
212 | cset "name='Ext Spk Switch' on"
213 | cset "name='Speaker Channel Switch' on"
214 | cset "name='Speaker Playback Volume' 31"
215 | ]
216 |
217 | DisableSequence [
218 | cdev "hw:chtrt5645"
219 |
220 | cset "name='Ext Spk Switch' off"
221 | cset "name='Speaker Channel Switch' off"
222 | ]
223 | }
224 |
225 | SectionDevice."Headphones" {
226 | Comment "Headphones"
227 |
228 | Value {
229 | PlaybackChannels "2"
230 | JackControl "Headphone Jack"
231 | JackHWMute "Speaker"
232 | }
233 |
234 | ConflictingDevice [
235 | "Speaker"
236 | ]
237 |
238 | EnableSequence [
239 | cdev "hw:chtrt5645"
240 |
241 | cset "name='Ext Spk Switch' off"
242 | cset "name='Speaker Channel Switch' off"
243 |
244 | cset "name='Headphone Switch' on"
245 | cset "name='Headphone Channel Switch' on"
246 | cset "name='Headphone Playback Volume' 31"
247 | ]
248 |
249 | DisableSequence [
250 | cdev "hw:chtrt5645"
251 |
252 | cset "name='Headphone Switch' off"
253 | cset "name='Headphone Channel Switch' off"
254 | ]
255 | }
256 |
257 | SectionDevice."Mic".0 {
258 | Comment "Internal Analog Microphones"
259 |
260 | Value {
261 | CaptureChannels "2"
262 | CapturePriority "150"
263 | }
264 |
265 | EnableSequence [
266 | cdev "hw:chtrt5645"
267 |
268 | cset "name='Int Mic Switch' on"
269 |
270 | cset "name='Sto1 ADC MIXL ADC1 Switch' on"
271 | cset "name='Sto1 ADC MIXR ADC1 Switch' on"
272 | cset "name='Sto1 ADC MIXL ADC2 Switch' off"
273 | cset "name='Sto1 ADC MIXR ADC2 Switch' off"
274 |
275 | cset "name='Mono ADC MIXL ADC1 Switch' on"
276 | cset "name='Mono ADC MIXR ADC1 Switch' on"
277 | cset "name='Mono ADC MIXL ADC2 Switch' off"
278 | cset "name='Mono ADC MIXR ADC2 Switch' off"
279 |
280 | cset "name='RECMIXL BST1 Switch' on"
281 | cset "name='RECMIXR BST1 Switch' on"
282 |
283 | ]
284 |
285 | DisableSequence [
286 | cdev "hw:chtrt5645"
287 |
288 | cset "name='Sto1 ADC MIXL ADC1 Switch' off"
289 | cset "name='Sto1 ADC MIXR ADC1 Switch' off"
290 | cset "name='Mono ADC MIXL ADC1 Switch' off"
291 | cset "name='Mono ADC MIXR ADC1 Switch' off"
292 |
293 | cset "name='RECMIXL BST1 Switch' off"
294 | cset "name='RECMIXR BST1 Switch' off"
295 |
296 | cset "name='Int Mic Switch' off"
297 | ]
298 | }
299 |
300 |
301 | SectionDevice."DMic".0 {
302 | Comment "Internal Digital Microphones"
303 |
304 | Value {
305 | CaptureChannels "2"
306 |
307 | }
308 |
309 | EnableSequence [
310 | cdev "hw:chtrt5645"
311 |
312 | cset "name='Int Mic Switch' on"
313 |
314 | cset "name='Stereo1 DMIC Mux' DMIC1"
315 | cset "name='Stereo1 ADC2 Mux' DMIC"
316 | cset "name='Mono ADC L2 Mux' DMIC"
317 | cset "name='Mono ADC R2 Mux' DMIC"
318 |
319 | cset "name='Sto1 ADC MIXL ADC1 Switch' off"
320 | cset "name='Sto1 ADC MIXR ADC1 Switch' off"
321 | cset "name='Sto1 ADC MIXL ADC2 Switch' on"
322 | cset "name='Sto1 ADC MIXR ADC2 Switch' on"
323 | cset "name='Mono ADC MIXL ADC1 Switch' off"
324 | cset "name='Mono ADC MIXR ADC1 Switch' off"
325 | cset "name='Mono ADC MIXL ADC2 Switch' on"
326 | cset "name='Mono ADC MIXR ADC2 Switch' on"
327 |
328 | ]
329 |
330 | DisableSequence [
331 | cdev "hw:chtrt5645"
332 |
333 | cset "name='Sto1 ADC MIXL ADC2 Switch' off"
334 | cset "name='Sto1 ADC MIXR ADC2 Switch' off"
335 | cset "name='Mono ADC MIXL ADC2 Switch' off"
336 | cset "name='Mono ADC MIXR ADC2 Switch' off"
337 | cset "name='Int Mic Switch' off"
338 | ]
339 | }
340 |
341 | SectionDevice."HSMic".0 {
342 | Comment "Headset Microphone"
343 |
344 | Value {
345 | CaptureChannels "2"
346 | JackControl "Headset Mic Jack"
347 | JackHWMute "Mic"
348 | }
349 |
350 | EnableSequence [
351 | cdev "hw:chtrt5645"
352 |
353 | cset "name='Headset Mic Switch' on"
354 |
355 | cset "name='Sto1 ADC MIXL ADC1 Switch' on"
356 | cset "name='Sto1 ADC MIXR ADC1 Switch' on"
357 | cset "name='Sto1 ADC MIXL ADC2 Switch' off"
358 | cset "name='Sto1 ADC MIXR ADC2 Switch' off"
359 |
360 | cset "name='Mono ADC MIXL ADC1 Switch' on"
361 | cset "name='Mono ADC MIXR ADC1 Switch' on"
362 | cset "name='Mono ADC MIXL ADC2 Switch' off"
363 | cset "name='Mono ADC MIXR ADC2 Switch' off"
364 |
365 | cset "name='RECMIXL BST1 Switch' on"
366 | cset "name='RECMIXR BST1 Switch' on"
367 |
368 | ]
369 |
370 | DisableSequence [
371 | cdev "hw:chtrt5645"
372 |
373 | cset "name='Headset Mic Switch' off"
374 |
375 | cset "name='RECMIXL BST1 Switch' off"
376 | cset "name='RECMIXR BST1 Switch' off"
377 | cset "name='Sto1 ADC MIXL ADC1 Switch' off"
378 | cset "name='Sto1 ADC MIXR ADC1 Switch' off"
379 | cset "name='Mono ADC MIXL ADC1 Switch' on"
380 | cset "name='Mono ADC MIXR ADC1 Switch' on"
381 |
382 | ]
383 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 | Preamble
9 |
10 | The GNU General Public License is a free, copyleft license for
11 | software and other kinds of works.
12 |
13 | The licenses for most software and other practical works are designed
14 | to take away your freedom to share and change the works. By contrast,
15 | the GNU General Public License is intended to guarantee your freedom to
16 | share and change all versions of a program--to make sure it remains free
17 | software for all its users. We, the Free Software Foundation, use the
18 | GNU General Public License for most of our software; it applies also to
19 | any other work released this way by its authors. You can apply it to
20 | your programs, too.
21 |
22 | When we speak of free software, we are referring to freedom, not
23 | price. Our General Public Licenses are designed to make sure that you
24 | have the freedom to distribute copies of free software (and charge for
25 | them if you wish), that you receive source code or can get it if you
26 | want it, that you can change the software or use pieces of it in new
27 | free programs, and that you know you can do these things.
28 |
29 | To protect your rights, we need to prevent others from denying you
30 | these rights or asking you to surrender the rights. Therefore, you have
31 | certain responsibilities if you distribute copies of the software, or if
32 | you modify it: responsibilities to respect the freedom of others.
33 |
34 | For example, if you distribute copies of such a program, whether
35 | gratis or for a fee, you must pass on to the recipients the same
36 | freedoms that you received. You must make sure that they, too, receive
37 | or can get the source code. And you must show them these terms so they
38 | know their rights.
39 |
40 | Developers that use the GNU GPL protect your rights with two steps:
41 | (1) assert copyright on the software, and (2) offer you this License
42 | giving you legal permission to copy, distribute and/or modify it.
43 |
44 | For the developers' and authors' protection, the GPL clearly explains
45 | that there is no warranty for this free software. For both users' and
46 | authors' sake, the GPL requires that modified versions be marked as
47 | changed, so that their problems will not be attributed erroneously to
48 | authors of previous versions.
49 |
50 | Some devices are designed to deny users access to install or run
51 | modified versions of the software inside them, although the manufacturer
52 | can do so. This is fundamentally incompatible with the aim of
53 | protecting users' freedom to change the software. The systematic
54 | pattern of such abuse occurs in the area of products for individuals to
55 | use, which is precisely where it is most unacceptable. Therefore, we
56 | have designed this version of the GPL to prohibit the practice for those
57 | products. If such problems arise substantially in other domains, we
58 | stand ready to extend this provision to those domains in future versions
59 | of the GPL, as needed to protect the freedom of users.
60 |
61 | Finally, every program is threatened constantly by software patents.
62 | States should not allow patents to restrict development and use of
63 | software on general-purpose computers, but in those that do, we wish to
64 | avoid the special danger that patents applied to a free program could
65 | make it effectively proprietary. To prevent this, the GPL assures that
66 | patents cannot be used to render the program non-free.
67 |
68 | The precise terms and conditions for copying, distribution and
69 | modification follow.
70 |
71 | TERMS AND CONDITIONS
72 |
73 | 0. Definitions.
74 |
75 | "This License" refers to version 3 of the GNU General Public License.
76 |
77 | "Copyright" also means copyright-like laws that apply to other kinds of
78 | works, such as semiconductor masks.
79 |
80 | "The Program" refers to any copyrightable work licensed under this
81 | License. Each licensee is addressed as "you". "Licensees" and
82 | "recipients" may be individuals or organizations.
83 |
84 | To "modify" a work means to copy from or adapt all or part of the work
85 | in a fashion requiring copyright permission, other than the making of an
86 | exact copy. The resulting work is called a "modified version" of the
87 | earlier work or a work "based on" the earlier work.
88 |
89 | A "covered work" means either the unmodified Program or a work based
90 | on the Program.
91 |
92 | To "propagate" a work means to do anything with it that, without
93 | permission, would make you directly or secondarily liable for
94 | infringement under applicable copyright law, except executing it on a
95 | computer or modifying a private copy. Propagation includes copying,
96 | distribution (with or without modification), making available to the
97 | public, and in some countries other activities as well.
98 |
99 | To "convey" a work means any kind of propagation that enables other
100 | parties to make or receive copies. Mere interaction with a user through
101 | a computer network, with no transfer of a copy, is not conveying.
102 |
103 | An interactive user interface displays "Appropriate Legal Notices"
104 | to the extent that it includes a convenient and prominently visible
105 | feature that (1) displays an appropriate copyright notice, and (2)
106 | tells the user that there is no warranty for the work (except to the
107 | extent that warranties are provided), that licensees may convey the
108 | work under this License, and how to view a copy of this License. If
109 | the interface presents a list of user commands or options, such as a
110 | menu, a prominent item in the list meets this criterion.
111 |
112 | 1. Source Code.
113 |
114 | The "source code" for a work means the preferred form of the work
115 | for making modifications to it. "Object code" means any non-source
116 | form of a work.
117 |
118 | A "Standard Interface" means an interface that either is an official
119 | standard defined by a recognized standards body, or, in the case of
120 | interfaces specified for a particular programming language, one that
121 | is widely used among developers working in that language.
122 |
123 | The "System Libraries" of an executable work include anything, other
124 | than the work as a whole, that (a) is included in the normal form of
125 | packaging a Major Component, but which is not part of that Major
126 | Component, and (b) serves only to enable use of the work with that
127 | Major Component, or to implement a Standard Interface for which an
128 | implementation is available to the public in source code form. A
129 | "Major Component", in this context, means a major essential component
130 | (kernel, window system, and so on) of the specific operating system
131 | (if any) on which the executable work runs, or a compiler used to
132 | produce the work, or an object code interpreter used to run it.
133 |
134 | The "Corresponding Source" for a work in object code form means all
135 | the source code needed to generate, install, and (for an executable
136 | work) run the object code and to modify the work, including scripts to
137 | control those activities. However, it does not include the work's
138 | System Libraries, or general-purpose tools or generally available free
139 | programs which are used unmodified in performing those activities but
140 | which are not part of the work. For example, Corresponding Source
141 | includes interface definition files associated with source files for
142 | the work, and the source code for shared libraries and dynamically
143 | linked subprograms that the work is specifically designed to require,
144 | such as by intimate data communication or control flow between those
145 | subprograms and other parts of the work.
146 |
147 | The Corresponding Source need not include anything that users
148 | can regenerate automatically from other parts of the Corresponding
149 | Source.
150 |
151 | The Corresponding Source for a work in source code form is that
152 | same work.
153 |
154 | 2. Basic Permissions.
155 |
156 | All rights granted under this License are granted for the term of
157 | copyright on the Program, and are irrevocable provided the stated
158 | conditions are met. This License explicitly affirms your unlimited
159 | permission to run the unmodified Program. The output from running a
160 | covered work is covered by this License only if the output, given its
161 | content, constitutes a covered work. This License acknowledges your
162 | rights of fair use or other equivalent, as provided by copyright law.
163 |
164 | You may make, run and propagate covered works that you do not
165 | convey, without conditions so long as your license otherwise remains
166 | in force. You may convey covered works to others for the sole purpose
167 | of having them make modifications exclusively for you, or provide you
168 | with facilities for running those works, provided that you comply with
169 | the terms of this License in conveying all material for which you do
170 | not control copyright. Those thus making or running the covered works
171 | for you must do so exclusively on your behalf, under your direction
172 | and control, on terms that prohibit them from making any copies of
173 | your copyrighted material outside their relationship with you.
174 |
175 | Conveying under any other circumstances is permitted solely under
176 | the conditions stated below. Sublicensing is not allowed; section 10
177 | makes it unnecessary.
178 |
179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180 |
181 | No covered work shall be deemed part of an effective technological
182 | measure under any applicable law fulfilling obligations under article
183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or
184 | similar laws prohibiting or restricting circumvention of such
185 | measures.
186 |
187 | When you convey a covered work, you waive any legal power to forbid
188 | circumvention of technological measures to the extent such circumvention
189 | is effected by exercising rights under this License with respect to
190 | the covered work, and you disclaim any intention to limit operation or
191 | modification of the work as a means of enforcing, against the work's
192 | users, your or third parties' legal rights to forbid circumvention of
193 | technological measures.
194 |
195 | 4. Conveying Verbatim Copies.
196 |
197 | You may convey verbatim copies of the Program's source code as you
198 | receive it, in any medium, provided that you conspicuously and
199 | appropriately publish on each copy an appropriate copyright notice;
200 | keep intact all notices stating that this License and any
201 | non-permissive terms added in accord with section 7 apply to the code;
202 | keep intact all notices of the absence of any warranty; and give all
203 | recipients a copy of this License along with the Program.
204 |
205 | You may charge any price or no price for each copy that you convey,
206 | and you may offer support or warranty protection for a fee.
207 |
208 | 5. Conveying Modified Source Versions.
209 |
210 | You may convey a work based on the Program, or the modifications to
211 | produce it from the Program, in the form of source code under the
212 | terms of section 4, provided that you also meet all of these conditions:
213 |
214 | a) The work must carry prominent notices stating that you modified
215 | it, and giving a relevant date.
216 |
217 | b) The work must carry prominent notices stating that it is
218 | released under this License and any conditions added under section
219 | 7. This requirement modifies the requirement in section 4 to
220 | "keep intact all notices".
221 |
222 | c) You must license the entire work, as a whole, under this
223 | License to anyone who comes into possession of a copy. This
224 | License will therefore apply, along with any applicable section 7
225 | additional terms, to the whole of the work, and all its parts,
226 | regardless of how they are packaged. This License gives no
227 | permission to license the work in any other way, but it does not
228 | invalidate such permission if you have separately received it.
229 |
230 | d) If the work has interactive user interfaces, each must display
231 | Appropriate Legal Notices; however, if the Program has interactive
232 | interfaces that do not display Appropriate Legal Notices, your
233 | work need not make them do so.
234 |
235 | A compilation of a covered work with other separate and independent
236 | works, which are not by their nature extensions of the covered work,
237 | and which are not combined with it such as to form a larger program,
238 | in or on a volume of a storage or distribution medium, is called an
239 | "aggregate" if the compilation and its resulting copyright are not
240 | used to limit the access or legal rights of the compilation's users
241 | beyond what the individual works permit. Inclusion of a covered work
242 | in an aggregate does not cause this License to apply to the other
243 | parts of the aggregate.
244 |
245 | 6. Conveying Non-Source Forms.
246 |
247 | You may convey a covered work in object code form under the terms
248 | of sections 4 and 5, provided that you also convey the
249 | machine-readable Corresponding Source under the terms of this License,
250 | in one of these ways:
251 |
252 | a) Convey the object code in, or embodied in, a physical product
253 | (including a physical distribution medium), accompanied by the
254 | Corresponding Source fixed on a durable physical medium
255 | customarily used for software interchange.
256 |
257 | b) Convey the object code in, or embodied in, a physical product
258 | (including a physical distribution medium), accompanied by a
259 | written offer, valid for at least three years and valid for as
260 | long as you offer spare parts or customer support for that product
261 | model, to give anyone who possesses the object code either (1) a
262 | copy of the Corresponding Source for all the software in the
263 | product that is covered by this License, on a durable physical
264 | medium customarily used for software interchange, for a price no
265 | more than your reasonable cost of physically performing this
266 | conveying of source, or (2) access to copy the
267 | Corresponding Source from a network server at no charge.
268 |
269 | c) Convey individual copies of the object code with a copy of the
270 | written offer to provide the Corresponding Source. This
271 | alternative is allowed only occasionally and noncommercially, and
272 | only if you received the object code with such an offer, in accord
273 | with subsection 6b.
274 |
275 | d) Convey the object code by offering access from a designated
276 | place (gratis or for a charge), and offer equivalent access to the
277 | Corresponding Source in the same way through the same place at no
278 | further charge. You need not require recipients to copy the
279 | Corresponding Source along with the object code. If the place to
280 | copy the object code is a network server, the Corresponding Source
281 | may be on a different server (operated by you or a third party)
282 | that supports equivalent copying facilities, provided you maintain
283 | clear directions next to the object code saying where to find the
284 | Corresponding Source. Regardless of what server hosts the
285 | Corresponding Source, you remain obligated to ensure that it is
286 | available for as long as needed to satisfy these requirements.
287 |
288 | e) Convey the object code using peer-to-peer transmission, provided
289 | you inform other peers where the object code and Corresponding
290 | Source of the work are being offered to the general public at no
291 | charge under subsection 6d.
292 |
293 | A separable portion of the object code, whose source code is excluded
294 | from the Corresponding Source as a System Library, need not be
295 | included in conveying the object code work.
296 |
297 | A "User Product" is either (1) a "consumer product", which means any
298 | tangible personal property which is normally used for personal, family,
299 | or household purposes, or (2) anything designed or sold for incorporation
300 | into a dwelling. In determining whether a product is a consumer product,
301 | doubtful cases shall be resolved in favor of coverage. For a particular
302 | product received by a particular user, "normally used" refers to a
303 | typical or common use of that class of product, regardless of the status
304 | of the particular user or of the way in which the particular user
305 | actually uses, or expects or is expected to use, the product. A product
306 | is a consumer product regardless of whether the product has substantial
307 | commercial, industrial or non-consumer uses, unless such uses represent
308 | the only significant mode of use of the product.
309 |
310 | "Installation Information" for a User Product means any methods,
311 | procedures, authorization keys, or other information required to install
312 | and execute modified versions of a covered work in that User Product from
313 | a modified version of its Corresponding Source. The information must
314 | suffice to ensure that the continued functioning of the modified object
315 | code is in no case prevented or interfered with solely because
316 | modification has been made.
317 |
318 | If you convey an object code work under this section in, or with, or
319 | specifically for use in, a User Product, and the conveying occurs as
320 | part of a transaction in which the right of possession and use of the
321 | User Product is transferred to the recipient in perpetuity or for a
322 | fixed term (regardless of how the transaction is characterized), the
323 | Corresponding Source conveyed under this section must be accompanied
324 | by the Installation Information. But this requirement does not apply
325 | if neither you nor any third party retains the ability to install
326 | modified object code on the User Product (for example, the work has
327 | been installed in ROM).
328 |
329 | The requirement to provide Installation Information does not include a
330 | requirement to continue to provide support service, warranty, or updates
331 | for a work that has been modified or installed by the recipient, or for
332 | the User Product in which it has been modified or installed. Access to a
333 | network may be denied when the modification itself materially and
334 | adversely affects the operation of the network or violates the rules and
335 | protocols for communication across the network.
336 |
337 | Corresponding Source conveyed, and Installation Information provided,
338 | in accord with this section must be in a format that is publicly
339 | documented (and with an implementation available to the public in
340 | source code form), and must require no special password or key for
341 | unpacking, reading or copying.
342 |
343 | 7. Additional Terms.
344 |
345 | "Additional permissions" are terms that supplement the terms of this
346 | License by making exceptions from one or more of its conditions.
347 | Additional permissions that are applicable to the entire Program shall
348 | be treated as though they were included in this License, to the extent
349 | that they are valid under applicable law. If additional permissions
350 | apply only to part of the Program, that part may be used separately
351 | under those permissions, but the entire Program remains governed by
352 | this License without regard to the additional permissions.
353 |
354 | When you convey a copy of a covered work, you may at your option
355 | remove any additional permissions from that copy, or from any part of
356 | it. (Additional permissions may be written to require their own
357 | removal in certain cases when you modify the work.) You may place
358 | additional permissions on material, added by you to a covered work,
359 | for which you have or can give appropriate copyright permission.
360 |
361 | Notwithstanding any other provision of this License, for material you
362 | add to a covered work, you may (if authorized by the copyright holders of
363 | that material) supplement the terms of this License with terms:
364 |
365 | a) Disclaiming warranty or limiting liability differently from the
366 | terms of sections 15 and 16 of this License; or
367 |
368 | b) Requiring preservation of specified reasonable legal notices or
369 | author attributions in that material or in the Appropriate Legal
370 | Notices displayed by works containing it; or
371 |
372 | c) Prohibiting misrepresentation of the origin of that material, or
373 | requiring that modified versions of such material be marked in
374 | reasonable ways as different from the original version; or
375 |
376 | d) Limiting the use for publicity purposes of names of licensors or
377 | authors of the material; or
378 |
379 | e) Declining to grant rights under trademark law for use of some
380 | trade names, trademarks, or service marks; or
381 |
382 | f) Requiring indemnification of licensors and authors of that
383 | material by anyone who conveys the material (or modified versions of
384 | it) with contractual assumptions of liability to the recipient, for
385 | any liability that these contractual assumptions directly impose on
386 | those licensors and authors.
387 |
388 | All other non-permissive additional terms are considered "further
389 | restrictions" within the meaning of section 10. If the Program as you
390 | received it, or any part of it, contains a notice stating that it is
391 | governed by this License along with a term that is a further
392 | restriction, you may remove that term. If a license document contains
393 | a further restriction but permits relicensing or conveying under this
394 | License, you may add to a covered work material governed by the terms
395 | of that license document, provided that the further restriction does
396 | not survive such relicensing or conveying.
397 |
398 | If you add terms to a covered work in accord with this section, you
399 | must place, in the relevant source files, a statement of the
400 | additional terms that apply to those files, or a notice indicating
401 | where to find the applicable terms.
402 |
403 | Additional terms, permissive or non-permissive, may be stated in the
404 | form of a separately written license, or stated as exceptions;
405 | the above requirements apply either way.
406 |
407 | 8. Termination.
408 |
409 | You may not propagate or modify a covered work except as expressly
410 | provided under this License. Any attempt otherwise to propagate or
411 | modify it is void, and will automatically terminate your rights under
412 | this License (including any patent licenses granted under the third
413 | paragraph of section 11).
414 |
415 | However, if you cease all violation of this License, then your
416 | license from a particular copyright holder is reinstated (a)
417 | provisionally, unless and until the copyright holder explicitly and
418 | finally terminates your license, and (b) permanently, if the copyright
419 | holder fails to notify you of the violation by some reasonable means
420 | prior to 60 days after the cessation.
421 |
422 | Moreover, your license from a particular copyright holder is
423 | reinstated permanently if the copyright holder notifies you of the
424 | violation by some reasonable means, this is the first time you have
425 | received notice of violation of this License (for any work) from that
426 | copyright holder, and you cure the violation prior to 30 days after
427 | your receipt of the notice.
428 |
429 | Termination of your rights under this section does not terminate the
430 | licenses of parties who have received copies or rights from you under
431 | this License. If your rights have been terminated and not permanently
432 | reinstated, you do not qualify to receive new licenses for the same
433 | material under section 10.
434 |
435 | 9. Acceptance Not Required for Having Copies.
436 |
437 | You are not required to accept this License in order to receive or
438 | run a copy of the Program. Ancillary propagation of a covered work
439 | occurring solely as a consequence of using peer-to-peer transmission
440 | to receive a copy likewise does not require acceptance. However,
441 | nothing other than this License grants you permission to propagate or
442 | modify any covered work. These actions infringe copyright if you do
443 | not accept this License. Therefore, by modifying or propagating a
444 | covered work, you indicate your acceptance of this License to do so.
445 |
446 | 10. Automatic Licensing of Downstream Recipients.
447 |
448 | Each time you convey a covered work, the recipient automatically
449 | receives a license from the original licensors, to run, modify and
450 | propagate that work, subject to this License. You are not responsible
451 | for enforcing compliance by third parties with this License.
452 |
453 | An "entity transaction" is a transaction transferring control of an
454 | organization, or substantially all assets of one, or subdividing an
455 | organization, or merging organizations. If propagation of a covered
456 | work results from an entity transaction, each party to that
457 | transaction who receives a copy of the work also receives whatever
458 | licenses to the work the party's predecessor in interest had or could
459 | give under the previous paragraph, plus a right to possession of the
460 | Corresponding Source of the work from the predecessor in interest, if
461 | the predecessor has it or can get it with reasonable efforts.
462 |
463 | You may not impose any further restrictions on the exercise of the
464 | rights granted or affirmed under this License. For example, you may
465 | not impose a license fee, royalty, or other charge for exercise of
466 | rights granted under this License, and you may not initiate litigation
467 | (including a cross-claim or counterclaim in a lawsuit) alleging that
468 | any patent claim is infringed by making, using, selling, offering for
469 | sale, or importing the Program or any portion of it.
470 |
471 | 11. Patents.
472 |
473 | A "contributor" is a copyright holder who authorizes use under this
474 | License of the Program or a work on which the Program is based. The
475 | work thus licensed is called the contributor's "contributor version".
476 |
477 | A contributor's "essential patent claims" are all patent claims
478 | owned or controlled by the contributor, whether already acquired or
479 | hereafter acquired, that would be infringed by some manner, permitted
480 | by this License, of making, using, or selling its contributor version,
481 | but do not include claims that would be infringed only as a
482 | consequence of further modification of the contributor version. For
483 | purposes of this definition, "control" includes the right to grant
484 | patent sublicenses in a manner consistent with the requirements of
485 | this License.
486 |
487 | Each contributor grants you a non-exclusive, worldwide, royalty-free
488 | patent license under the contributor's essential patent claims, to
489 | make, use, sell, offer for sale, import and otherwise run, modify and
490 | propagate the contents of its contributor version.
491 |
492 | In the following three paragraphs, a "patent license" is any express
493 | agreement or commitment, however denominated, not to enforce a patent
494 | (such as an express permission to practice a patent or covenant not to
495 | sue for patent infringement). To "grant" such a patent license to a
496 | party means to make such an agreement or commitment not to enforce a
497 | patent against the party.
498 |
499 | If you convey a covered work, knowingly relying on a patent license,
500 | and the Corresponding Source of the work is not available for anyone
501 | to copy, free of charge and under the terms of this License, through a
502 | publicly available network server or other readily accessible means,
503 | then you must either (1) cause the Corresponding Source to be so
504 | available, or (2) arrange to deprive yourself of the benefit of the
505 | patent license for this particular work, or (3) arrange, in a manner
506 | consistent with the requirements of this License, to extend the patent
507 | license to downstream recipients. "Knowingly relying" means you have
508 | actual knowledge that, but for the patent license, your conveying the
509 | covered work in a country, or your recipient's use of the covered work
510 | in a country, would infringe one or more identifiable patents in that
511 | country that you have reason to believe are valid.
512 |
513 | If, pursuant to or in connection with a single transaction or
514 | arrangement, you convey, or propagate by procuring conveyance of, a
515 | covered work, and grant a patent license to some of the parties
516 | receiving the covered work authorizing them to use, propagate, modify
517 | or convey a specific copy of the covered work, then the patent license
518 | you grant is automatically extended to all recipients of the covered
519 | work and works based on it.
520 |
521 | A patent license is "discriminatory" if it does not include within
522 | the scope of its coverage, prohibits the exercise of, or is
523 | conditioned on the non-exercise of one or more of the rights that are
524 | specifically granted under this License. You may not convey a covered
525 | work if you are a party to an arrangement with a third party that is
526 | in the business of distributing software, under which you make payment
527 | to the third party based on the extent of your activity of conveying
528 | the work, and under which the third party grants, to any of the
529 | parties who would receive the covered work from you, a discriminatory
530 | patent license (a) in connection with copies of the covered work
531 | conveyed by you (or copies made from those copies), or (b) primarily
532 | for and in connection with specific products or compilations that
533 | contain the covered work, unless you entered into that arrangement,
534 | or that patent license was granted, prior to 28 March 2007.
535 |
536 | Nothing in this License shall be construed as excluding or limiting
537 | any implied license or other defenses to infringement that may
538 | otherwise be available to you under applicable patent law.
539 |
540 | 12. No Surrender of Others' Freedom.
541 |
542 | If conditions are imposed on you (whether by court order, agreement or
543 | otherwise) that contradict the conditions of this License, they do not
544 | excuse you from the conditions of this License. If you cannot convey a
545 | covered work so as to satisfy simultaneously your obligations under this
546 | License and any other pertinent obligations, then as a consequence you may
547 | not convey it at all. For example, if you agree to terms that obligate you
548 | to collect a royalty for further conveying from those to whom you convey
549 | the Program, the only way you could satisfy both those terms and this
550 | License would be to refrain entirely from conveying the Program.
551 |
552 | 13. Use with the GNU Affero General Public License.
553 |
554 | Notwithstanding any other provision of this License, you have
555 | permission to link or combine any covered work with a work licensed
556 | under version 3 of the GNU Affero General Public License into a single
557 | combined work, and to convey the resulting work. The terms of this
558 | License will continue to apply to the part which is the covered work,
559 | but the special requirements of the GNU Affero General Public License,
560 | section 13, concerning interaction through a network will apply to the
561 | combination as such.
562 |
563 | 14. Revised Versions of this License.
564 |
565 | The Free Software Foundation may publish revised and/or new versions of
566 | the GNU General Public License from time to time. Such new versions will
567 | be similar in spirit to the present version, but may differ in detail to
568 | address new problems or concerns.
569 |
570 | Each version is given a distinguishing version number. If the
571 | Program specifies that a certain numbered version of the GNU General
572 | Public License "or any later version" applies to it, you have the
573 | option of following the terms and conditions either of that numbered
574 | version or of any later version published by the Free Software
575 | Foundation. If the Program does not specify a version number of the
576 | GNU General Public License, you may choose any version ever published
577 | by the Free Software Foundation.
578 |
579 | If the Program specifies that a proxy can decide which future
580 | versions of the GNU General Public License can be used, that proxy's
581 | public statement of acceptance of a version permanently authorizes you
582 | to choose that version for the Program.
583 |
584 | Later license versions may give you additional or different
585 | permissions. However, no additional obligations are imposed on any
586 | author or copyright holder as a result of your choosing to follow a
587 | later version.
588 |
589 | 15. Disclaimer of Warranty.
590 |
591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599 |
600 | 16. Limitation of Liability.
601 |
602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610 | SUCH DAMAGES.
611 |
612 | 17. Interpretation of Sections 15 and 16.
613 |
614 | If the disclaimer of warranty and limitation of liability provided
615 | above cannot be given local legal effect according to their terms,
616 | reviewing courts shall apply local law that most closely approximates
617 | an absolute waiver of all civil liability in connection with the
618 | Program, unless a warranty or assumption of liability accompanies a
619 | copy of the Program in return for a fee.
620 |
621 | END OF TERMS AND CONDITIONS
622 |
623 | How to Apply These Terms to Your New Programs
624 |
625 | If you develop a new program, and you want it to be of the greatest
626 | possible use to the public, the best way to achieve this is to make it
627 | free software which everyone can redistribute and change under these terms.
628 |
629 | To do so, attach the following notices to the program. It is safest
630 | to attach them to the start of each source file to most effectively
631 | state the exclusion of warranty; and each file should have at least
632 | the "copyright" line and a pointer to where the full notice is found.
633 |
634 | {one line to give the program's name and a brief idea of what it does.}
635 | Copyright (C) {year} {name of author}
636 |
637 | This program is free software: you can redistribute it and/or modify
638 | it under the terms of the GNU General Public License as published by
639 | the Free Software Foundation, either version 3 of the License, or
640 | (at your option) any later version.
641 |
642 | This program is distributed in the hope that it will be useful,
643 | but WITHOUT ANY WARRANTY; without even the implied warranty of
644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645 | GNU General Public License for more details.
646 |
647 | You should have received a copy of the GNU General Public License
648 | along with this program. If not, see .
649 |
650 | Also add information on how to contact you by electronic and paper mail.
651 |
652 | If the program does terminal interaction, make it output a short
653 | notice like this when it starts in an interactive mode:
654 |
655 | {project} Copyright (C) {year} {fullname}
656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657 | This is free software, and you are welcome to redistribute it
658 | under certain conditions; type `show c' for details.
659 |
660 | The hypothetical commands `show w' and `show c' should show the appropriate
661 | parts of the General Public License. Of course, your program's commands
662 | might be different; for a GUI interface, you would use an "about box".
663 |
664 | You should also get your employer (if you work as a programmer) or school,
665 | if any, to sign a "copyright disclaimer" for the program, if necessary.
666 | For more information on this, and how to apply and follow the GNU GPL, see
667 | .
668 |
669 | The GNU General Public License does not permit incorporating your program
670 | into proprietary programs. If your program is a subroutine library, you
671 | may consider it more useful to permit linking proprietary applications with
672 | the library. If this is what you want to do, use the GNU Lesser General
673 | Public License instead of this License. But first, please read
674 | .
675 |
--------------------------------------------------------------------------------
/common/kernel-patches/0002-debian-changelog.patch:
--------------------------------------------------------------------------------
1 | From f408a55a5f010fede98f4cd94ec6ebb48ff12c2c Mon Sep 17 00:00:00 2001
2 | From: Kernel Mainline Builds
3 | Date: Sat, 16 Sep 2017 20:31:27 -0400
4 | Subject: [PATCH 2/3] debian changelog
5 |
6 | ---
7 | debian.master/changelog | 1010 +----------------------------------------------
8 | 1 file changed, 3 insertions(+), 1007 deletions(-)
9 |
10 | diff --git a/debian.master/changelog b/debian.master/changelog
11 | index 666559e..3f5cc11 100644
12 | --- a/debian.master/changelog
13 | +++ b/debian.master/changelog
14 | @@ -1,1010 +1,6 @@
15 | -linux (4.13.0-10.11) artful; urgency=low
16 | +linux (4.14.0-041400rc1.201709162031) unstable; urgency=low
17 |
18 | - * linux: 4.13.0-10.11 -proposed tracker (LP: #1716287)
19 | + Mainline build at commit: v4.14-rc1
20 |
21 | - * please add aufs-dkms to the Provides: for the kernel packages (LP: #1716093)
22 | - - [Packaging] Add aufs-dkms to the Provides: for kernel packages
23 | + -- Mainline Build Sat, 16 Sep 2017 20:31:27 -0400
24 |
25 | - * Artful update to v4.13.1 stable release (LP: #1716284)
26 | - - usb: quirks: add delay init quirk for Corsair Strafe RGB keyboard
27 | - - USB: serial: option: add support for D-Link DWM-157 C1
28 | - - usb: Add device quirk for Logitech HD Pro Webcam C920-C
29 | - - usb:xhci:Fix regression when ATI chipsets detected
30 | - - USB: musb: fix external abort on suspend
31 | - - ANDROID: binder: add padding to binder_fd_array_object.
32 | - - ANDROID: binder: add hwbinder,vndbinder to BINDER_DEVICES.
33 | - - USB: core: Avoid race of async_completed() w/ usbdev_release()
34 | - - staging/rts5208: fix incorrect shift to extract upper nybble
35 | - - staging: ccree: save ciphertext for CTS IV
36 | - - staging: fsl-dpaa2/eth: fix off-by-one FD ctrl bitmaks
37 | - - iio: adc: ti-ads1015: fix incorrect data rate setting update
38 | - - iio: adc: ti-ads1015: fix scale information for ADS1115
39 | - - iio: adc: ti-ads1015: enable conversion when CONFIG_PM is not set
40 | - - iio: adc: ti-ads1015: avoid getting stale result after runtime resume
41 | - - iio: adc: ti-ads1015: don't return invalid value from buffer setup callbacks
42 | - - iio: adc: ti-ads1015: add adequate wait time to get correct conversion
43 | - - driver core: bus: Fix a potential double free
44 | - - HID: wacom: Do not completely map WACOM_HID_WD_TOUCHRINGSTATUS usage
45 | - - binder: free memory on error
46 | - - crypto: caam/qi - fix compilation with CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y
47 | - - crypto: caam/qi - fix compilation with DEBUG enabled
48 | - - thunderbolt: Fix reset response_type
49 | - - fpga: altera-hps2fpga: fix multiple init of l3_remap_lock
50 | - - intel_th: pci: Add Cannon Lake PCH-H support
51 | - - intel_th: pci: Add Cannon Lake PCH-LP support
52 | - - ath10k: fix memory leak in rx ring buffer allocation
53 | - - drm/vgem: Pin our pages for dmabuf exports
54 | - - drm/ttm: Fix accounting error when fail to get pages for pool
55 | - - drm/dp/mst: Handle errors from drm_atomic_get_private_obj_state() correctly
56 | - - rtlwifi: rtl_pci_probe: Fix fail path of _rtl_pci_find_adapter
57 | - - Bluetooth: Add support of 13d3:3494 RTL8723BE device
58 | - - iwlwifi: pci: add new PCI ID for 7265D
59 | - - dlm: avoid double-free on error path in dlm_device_{register,unregister}
60 | - - mwifiex: correct channel stat buffer overflows
61 | - - MCB: add support for SC31 to mcb-lpc
62 | - - s390/mm: avoid empty zero pages for KVM guests to avoid postcopy hangs
63 | - - drm/nouveau/pci/msi: disable MSI on big-endian platforms by default
64 | - - drm/nouveau: Fix error handling in nv50_disp_atomic_commit
65 | - - workqueue: Fix flag collision
66 | - - ahci: don't use MSI for devices with the silly Intel NVMe remapping scheme
67 | - - cs5536: add support for IDE controller variant
68 | - - scsi: sg: protect against races between mmap() and SG_SET_RESERVED_SIZE
69 | - - scsi: sg: recheck MMAP_IO request length with lock held
70 | - - of/device: Prevent buffer overflow in of_device_modalias()
71 | - - rtlwifi: Fix memory leak when firmware request fails
72 | - - rtlwifi: Fix fallback firmware loading
73 | - - Linux 4.13.1
74 | -
75 | - * Kernel has trouble recognizing Corsair Strafe RGB keyboard (LP: #1678477)
76 | - - usb: quirks: add delay init quirk for Corsair Strafe RGB keyboard
77 | -
78 | - * SRIOV: warning if unload VFs (LP: #1715073)
79 | - - PCI: Disable VF decoding before pcibios_sriov_disable() updates resources
80 | -
81 | - * [Patch] network-i40e:NVM bug fixes (cherrypick from 4.14) (LP: #1715578)
82 | - - i40e: avoid NVM acquire deadlock during NVM update
83 | - - i40e: point wb_desc at the nvm_wb_desc during i40e_read_nvm_aq
84 | -
85 | - * [P9,POwer NV] Perf PMU event : pm_br_2path and pm_ld_miss_l1 is counted
86 | - twice when perf stat is done (perf:) (LP: #1714571)
87 | - - perf vendor events powerpc: Remove duplicate events
88 | -
89 | - * Unable to install Ubuntu on the NVMe disk under VMD PCI domain
90 | - (LP: #1703339)
91 | - - [Config] Include vmd in storage-core-modules udeb
92 | -
93 | - * 17.10 fails to boot on POWER9 DD2.0 with Deep stop states (LP: #1715064)
94 | - - powerpc/powernv: Save/Restore additional SPRs for stop4 cpuidle
95 | - - powerpc/powernv: Clear PECE1 in LPCR via stop-api only on Hotplug
96 | - - SAUCE: powerpc/powernv: Clear LPCR[PECE1] via stop-api only for deep state
97 | - offline
98 | -
99 | - * Miscellaneous Ubuntu changes
100 | - - SAUCE: selftests/seccomp: Support glibc 2.26 siginfo_t.h
101 | - - Revert "UBUNTU: SAUCE: Import aufs driver"
102 | - - SAUCE: Import aufs driver
103 | -
104 | - -- Seth Forshee Sun, 10 Sep 2017 17:48:59 -0500
105 | -
106 | -linux (4.13.0-9.10) artful; urgency=low
107 | -
108 | - * linux: 4.13.0-9.10 -proposed tracker (LP: #1715145)
109 | -
110 | - * EDAC sbridge: Failed to register device with error -22. (LP: #1714112)
111 | - - [Config] CONFIG_EDAC_GHES=n
112 | -
113 | - * Miscellaneous Ubuntu changes
114 | - - ubuntu: vbox -- update to 5.1.26-dfsg-2
115 | -
116 | - [ Upstream Kernel Changes ]
117 | -
118 | - * Rebase to v4.13
119 | -
120 | - -- Seth Forshee Tue, 05 Sep 2017 07:51:19 -0500
121 | -
122 | -linux (4.13.0-8.9) artful; urgency=low
123 | -
124 | - * snapd 2.27.3+17.10 ADT test failure with linux 4.13.0-6.7 (LP: #1713103)
125 | - - SAUCE: apparmor: fix apparmorfs DAC access, permissions
126 | -
127 | - * enable ARCH_SUNXI (and friends) in arm64 kernel .config (LP: #1701137)
128 | - - [Config] Enable CONFIG_ARCH_SUNXI and related options for arm64
129 | -
130 | - * [Bug] Harrisonville: pnd2_edac always fail to load on B1 stepping
131 | - Harrisonville SDP (LP: #1709257)
132 | - - EDAC, pnd2: Build in a minimal sideband driver for Apollo Lake
133 | - - EDAC, pnd2: Mask off the lower four bits of a BAR
134 | - - EDAC, pnd2: Conditionally unhide/hide the P2SB PCI device to read BAR
135 | - - EDAC, pnd2: Properly toggle hidden state for P2SB PCI device
136 | - - SAUCE: i2c: i801: Restore the presence state of P2SB PCI device after
137 | - reading BAR
138 | -
139 | - * Miscellaneous Ubuntu changes
140 | - - Revert "UBUNTU: SAUCE: Import aufs driver"
141 | - - SAUCE: Import aufs driver
142 | - - SAUCE: selftests/powerpc: Disable some ptrace selftests
143 | - - [Config] CONFIG_CRYPTO_DEV_NITROX_CNN55XX=n for s390x
144 | - - [Config] CONFIG_I2C_SLAVE=n for amd64, i386, ppc64el
145 | - - [Config] Disable CONFIG_MDIO_* options for s390x
146 | - - [Config] CONFIG_SCSI_MQ_DEFAULT=n for s390x
147 | - - [Config] Update annotations for 4.13
148 | -
149 | - -- Seth Forshee Thu, 31 Aug 2017 14:27:09 -0500
150 | -
151 | -linux (4.13.0-7.8) artful; urgency=low
152 | -
153 | - * linux 4.12.0-11.12 ADT test failure with linux 4.12.0-11.12 (LP: #1710904)
154 | - - SAUCE: selftests/powerpc: Use snprintf to construct DSCR sysfs interface
155 | - paths
156 | -
157 | - * Miscellaneous Ubuntu changes
158 | - - Revert "UBUNTU: SAUCE: seccomp: log actions even when audit is disabled"
159 | -
160 | - * Miscellaneous upstream changes
161 | - - seccomp: Provide matching filter for introspection
162 | - - seccomp: Sysctl to display available actions
163 | - - seccomp: Operation for checking if an action is available
164 | - - seccomp: Sysctl to configure actions that are allowed to be logged
165 | - - seccomp: Selftest for detection of filter flag support
166 | - - seccomp: Filter flag to log all actions except SECCOMP_RET_ALLOW
167 | - - seccomp: Action to log before allowing
168 | -
169 | - [ Upstream Kernel Changes ]
170 | -
171 | - * Rebase to v4.13-rc7
172 | -
173 | - -- Seth Forshee Mon, 28 Aug 2017 08:12:24 -0500
174 | -
175 | -linux (4.13.0-6.7) artful; urgency=low
176 | -
177 | - * HID: multitouch: Support ALPS PTP Stick and Touchpad devices (LP: #1712481)
178 | - - SAUCE: HID: multitouch: Support ALPS PTP stick with pid 0x120A
179 | -
180 | - * sort ABI files with C.UTF-8 locale (LP: #1712345)
181 | - - [Packaging] sort ABI files with C.UTF-8 locale
182 | -
183 | - * igb: Support using Broadcom 54616 as PHY (LP: #1712024)
184 | - - SAUCE: igb: add support for using Broadcom 54616 as PHY
185 | -
186 | - * RPT related fixes missing in Ubuntu 16.04.3 (LP: #1709220)
187 | - - powerpc/mm/radix: Improve _tlbiel_pid to be usable for PWC flushes
188 | - - powerpc/mm/radix: Improve TLB/PWC flushes
189 | - - powerpc/mm/radix: Avoid flushing the PWC on every flush_tlb_range
190 | -
191 | - * Linux 4.12 refuses to load self-signed modules under Secure Boot with
192 | - properly enrolled keys (LP: #1712168)
193 | - - SAUCE: (efi-lockdown) MODSIGN: Fix module signature verification
194 | -
195 | - * [17.10 FEAT] Enable NVMe driver - kernel (LP: #1708432)
196 | - - [Config] CONFIG_BLK_DEV_NVME=m for s390
197 | -
198 | - * Artful: 4.12.0-11.12: Boot panic in vlv2_plat_configure_clock+0x3b/0xa0
199 | - (LP: #1711298)
200 | - - [Config] CONFIG_INTEL_ATOMISP=n
201 | -
202 | - * Miscellaneous Ubuntu changes
203 | - - SAUCE: apparmor: af_unix mediation
204 | -
205 | - * Miscellaneous upstream changes
206 | - - apparmor: Fix shadowed local variable in unpack_trans_table()
207 | - - apparmor: Fix logical error in verify_header()
208 | - - apparmor: Fix an error code in aafs_create()
209 | - - apparmor: Redundant condition: prev_ns. in [label.c:1498]
210 | - - apparmor: add the ability to mediate signals
211 | - - apparmor: add mount mediation
212 | - - apparmor: cleanup conditional check for label in label_print
213 | - - apparmor: add support for absolute root view based labels
214 | - - apparmor: make policy_unpack able to audit different info messages
215 | - - apparmor: add more debug asserts to apparmorfs
216 | - - apparmor: add base infastructure for socket mediation
217 | - - apparmor: move new_null_profile to after profile lookup fns()
218 | - - apparmor: fix race condition in null profile creation
219 | - - apparmor: ensure unconfined profiles have dfas initialized
220 | - - apparmor: fix incorrect type assignment when freeing proxies
221 | -
222 | - [ Upstream Kernel Changes ]
223 | -
224 | - * Rebase to v4.13-rc6
225 | -
226 | - -- Seth Forshee Wed, 23 Aug 2017 08:10:38 -0500
227 | -
228 | -linux (4.13.0-5.6) artful; urgency=low
229 | -
230 | - * Ubuntu17.10 - perf: Update Power9 PMU event JSON files (LP: #1708630)
231 | - - perf pmu-events: Support additional POWER8+ PVR in mapfile
232 | - - perf vendor events: Add POWER9 PMU events
233 | - - perf vendor events: Add POWER9 PVRs to mapfile
234 | - - SAUCE: perf vendor events powerpc: remove suffix in mapfile
235 | - - SAUCE: perf vendor events powerpc: Update POWER9 events
236 | -
237 | - * Disable CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE (LP: #1709171)
238 | - - [Config] CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=n for ppc64el
239 | -
240 | - * Please only recommend or suggest initramfs-tools | linux-initramfs-tool for
241 | - kernels able to boot without initramfs (LP: #1700972)
242 | - - [Debian] Don't depend on initramfs-tools
243 | -
244 | - * Miscellaneous Ubuntu changes
245 | - - SAUCE: Import aufs driver
246 | - - SAUCE: aufs -- Add missing argument to loop_switch() call
247 | - - [Config] Enable aufs
248 | - - SAUCE: (noup) Update spl to 0.6.5.11-ubuntu1, zfs to 0.6.5.11-1ubuntu3
249 | - - Enable zfs build
250 | - - SAUCE: powerpc: Always initialize input array when calling epapr_hypercall()
251 | - - [Packaging] switch up to debhelper 9
252 | -
253 | - [ Upstream Kernel Changes ]
254 | -
255 | - * Rebase to v4.13-rc5
256 | -
257 | - -- Seth Forshee Tue, 15 Aug 2017 09:24:16 -0500
258 | -
259 | -linux (4.13.0-4.5) artful; urgency=low
260 | -
261 | - * Lenovo Yoga 910 Sensors (LP: #1708120)
262 | - - SAUCE: (no-up) HID: Add quirk for Lenovo Yoga 910 with ITE Chips
263 | -
264 | - * Unable to install Ubuntu on the NVMe disk under VMD PCI domain
265 | - (LP: #1703339)
266 | - - [Config] Add vmd driver to generic inclusion list
267 | -
268 | - * Set CONFIG_SATA_HIGHBANK=y on armhf (LP: #1703430)
269 | - - [Config] CONFIG_SATA_HIGHBANK=y
270 | -
271 | - * Miscellaneous Ubuntu changes
272 | - - ubuntu: vbox -- update to 5.1.26-dfsg-1
273 | - - SAUCE: hio: Build fixes for 4.13
274 | - - Enable hio build
275 | - - SAUCE: (noup) Update spl to 0.6.5.11-1, zfs to 0.6.5.11-1ubuntu1
276 | - - [debian] use all rather than amd64 dkms debs for sync
277 | -
278 | - [ Upstream Kernel Changes ]
279 | -
280 | - * Rebase to v4.13-rc4
281 | -
282 | - -- Seth Forshee Tue, 08 Aug 2017 11:31:48 -0500
283 | -
284 | -linux (4.13.0-3.4) artful; urgency=low
285 | -
286 | - * Adt tests of src:linux time out often on armhf lxc containers (LP: #1705495)
287 | - - [Packaging] tests -- reduce rebuild test to one flavour
288 | - - [Packaging] tests -- reduce rebuild test to one flavour -- use filter
289 | -
290 | - * snapd 2.26.8+17.10 ADT test failure with linux 4.12.0-6.7 (LP: #1704158)
291 | - - SAUCE: virtio_net: Revert mergeable buffer handling rework
292 | -
293 | - [ Upstream Kernel Changes ]
294 | -
295 | - * Rebase to v4.13-rc3
296 | -
297 | - -- Seth Forshee Mon, 31 Jul 2017 10:08:16 -0500
298 | -
299 | -linux (4.13.0-2.3) artful; urgency=low
300 | -
301 | - * Change CONFIG_IBMVETH to module (LP: #1704479)
302 | - - [Config] CONFIG_IBMVETH=m
303 | -
304 | - [ Upstream Kernel Changes ]
305 | -
306 | - * Rebase to v4.13-rc2
307 | -
308 | - -- Seth Forshee Mon, 24 Jul 2017 13:58:08 -0500
309 | -
310 | -linux (4.13.0-1.2) artful; urgency=low
311 | -
312 | - * Miscellaneous Ubuntu changes
313 | - - [Debian] Support sphinx-based kernel documentation
314 | -
315 | - -- Seth Forshee Thu, 20 Jul 2017 09:18:33 -0500
316 | -
317 | -linux (4.13.0-0.1) artful; urgency=low
318 | -
319 | - * Miscellaneous Ubuntu changes
320 | - - Disable hio
321 | - - Disable zfs build
322 | - - ubuntu: vbox -- update to 5.1.24-dfsg-1
323 | -
324 | - [ Upstream Kernel Changes ]
325 | -
326 | - * Rebase to v4.13-rc1
327 | -
328 | - -- Seth Forshee Wed, 19 Jul 2017 15:09:31 -0500
329 | -
330 | -linux (4.12.0-7.8) artful; urgency=low
331 | -
332 | - * ThunderX: soft lockup on 4.8+ kernels when running qemu-efi with vhost=on
333 | - (LP: #1673564)
334 | - - arm64: Add a facility to turn an ESR syndrome into a sysreg encoding
335 | - - KVM: arm/arm64: vgic-v3: Add accessors for the ICH_APxRn_EL2 registers
336 | - - KVM: arm64: Make kvm_condition_valid32() accessible from EL2
337 | - - KVM: arm64: vgic-v3: Add hook to handle guest GICv3 sysreg accesses at EL2
338 | - - KVM: arm64: vgic-v3: Add ICV_BPR1_EL1 handler
339 | - - KVM: arm64: vgic-v3: Add ICV_IGRPEN1_EL1 handler
340 | - - KVM: arm64: vgic-v3: Add ICV_IAR1_EL1 handler
341 | - - KVM: arm64: vgic-v3: Add ICV_EOIR1_EL1 handler
342 | - - KVM: arm64: vgic-v3: Add ICV_AP1Rn_EL1 handler
343 | - - KVM: arm64: vgic-v3: Add ICV_HPPIR1_EL1 handler
344 | - - KVM: arm64: vgic-v3: Enable trapping of Group-1 system registers
345 | - - KVM: arm64: Enable GICv3 Group-1 sysreg trapping via command-line
346 | - - KVM: arm64: vgic-v3: Add ICV_BPR0_EL1 handler
347 | - - KVM: arm64: vgic-v3: Add ICV_IGNREN0_EL1 handler
348 | - - KVM: arm64: vgic-v3: Add misc Group-0 handlers
349 | - - KVM: arm64: vgic-v3: Enable trapping of Group-0 system registers
350 | - - KVM: arm64: Enable GICv3 Group-0 sysreg trapping via command-line
351 | - - arm64: Add MIDR values for Cavium cn83XX SoCs
352 | - - arm64: Add workaround for Cavium Thunder erratum 30115
353 | - - KVM: arm64: vgic-v3: Add ICV_DIR_EL1 handler
354 | - - KVM: arm64: vgic-v3: Add ICV_RPR_EL1 handler
355 | - - KVM: arm64: vgic-v3: Add ICV_CTLR_EL1 handler
356 | - - KVM: arm64: vgic-v3: Add ICV_PMR_EL1 handler
357 | - - KVM: arm64: Enable GICv3 common sysreg trapping via command-line
358 | - - KVM: arm64: vgic-v3: Log which GICv3 system registers are trapped
359 | - - KVM: arm64: Log an error if trapping a read-from-write-only GICv3 access
360 | - - KVM: arm64: Log an error if trapping a write-to-read-only GICv3 access
361 | -
362 | - * hns: under heavy load, NIC may fail and require reboot (LP: #1704146)
363 | - - net: hns: Bugfix for Tx timeout handling in hns driver
364 | -
365 | - * New ACPI identifiers for ThunderX SMMU (LP: #1703437)
366 | - - iommu/arm-smmu: Plumb in new ACPI identifiers
367 | -
368 | - * Transparent hugepages should default to enabled=madvise (LP: #1703742)
369 | - - SAUCE: use CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y as default
370 | -
371 | - * Artful update to v4.12.1 stable release (LP: #1703858)
372 | - - driver core: platform: fix race condition with driver_override
373 | - - RDMA/uverbs: Check port number supplied by user verbs cmds
374 | - - usb: dwc3: replace %p with %pK
375 | - - USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick
376 | - - usb: usbip: set buffer pointers to NULL after free
377 | - - Add USB quirk for HVR-950q to avoid intermittent device resets
378 | - - usb: Fix typo in the definition of Endpoint[out]Request
379 | - - USB: core: fix device node leak
380 | - - USB: serial: option: add two Longcheer device ids
381 | - - USB: serial: qcserial: new Sierra Wireless EM7305 device ID
382 | - - xhci: Limit USB2 port wake support for AMD Promontory hosts
383 | - - gfs2: Fix glock rhashtable rcu bug
384 | - - Add "shutdown" to "struct class".
385 | - - tpm: Issue a TPM2_Shutdown for TPM2 devices.
386 | - - tpm: fix a kernel memory leak in tpm-sysfs.c
387 | - - powerpc/powernv: Fix CPU_HOTPLUG=n idle.c compile error
388 | - - x86/uaccess: Optimize copy_user_enhanced_fast_string() for short strings
389 | - - sched/fair, cpumask: Export for_each_cpu_wrap()
390 | - - sched/core: Implement new approach to scale select_idle_cpu()
391 | - - sched/numa: Use down_read_trylock() for the mmap_sem
392 | - - sched/numa: Override part of migrate_degrades_locality() when idle balancing
393 | - - sched/fair: Simplify wake_affine() for the single socket case
394 | - - sched/numa: Implement NUMA node level wake_affine()
395 | - - sched/fair: Remove effective_load()
396 | - - sched/numa: Hide numa_wake_affine() from UP build
397 | - - xen: avoid deadlock in xenbus driver
398 | - - crypto: drbg - Fixes panic in wait_for_completion call
399 | - - Linux 4.12.1
400 | -
401 | - * cxlflash update request in the Xenial SRU stream (LP: #1702521)
402 | - - scsi: cxlflash: Combine the send queue locks
403 | - - scsi: cxlflash: Update cxlflash_afu_sync() to return errno
404 | - - scsi: cxlflash: Reset hardware queue context via specified register
405 | - - scsi: cxlflash: Schedule asynchronous reset of the host
406 | - - scsi: cxlflash: Handle AFU sync failures
407 | - - scsi: cxlflash: Track pending scsi commands in each hardware queue
408 | - - scsi: cxlflash: Flush pending commands in cleanup path
409 | - - scsi: cxlflash: Add scsi command abort handler
410 | - - scsi: cxlflash: Create character device to provide host management interface
411 | - - scsi: cxlflash: Separate AFU internal command handling from AFU sync
412 | - specifics
413 | - - scsi: cxlflash: Introduce host ioctl support
414 | - - scsi: cxlflash: Refactor AFU capability checking
415 | - - scsi: cxlflash: Support LUN provisioning
416 | - - scsi: cxlflash: Support AFU debug
417 | - - scsi: cxlflash: Support WS16 unmap
418 | - - scsi: cxlflash: Remove zeroing of private command data
419 | - - scsi: cxlflash: Update TMF command processing
420 | - - scsi: cxlflash: Avoid double free of character device
421 | - - scsi: cxlflash: Update send_tmf() parameters
422 | - - scsi: cxlflash: Update debug prints in reset handlers
423 | -
424 | - * make snap-pkg support (LP: #1700747)
425 | - - make snap-pkg support
426 | -
427 | - * Quirk for non-compliant PCI bridge on HiSilicon D05 board (LP: #1698706)
428 | - - SAUCE: PCI: Support hibmc VGA cards behind a misbehaving HiSilicon bridge
429 | -
430 | - * arm64: fix crash reading /proc/kcore (LP: #1702749)
431 | - - fs/proc: kcore: use kcore_list type to check for vmalloc/module address
432 | - - arm64: mm: select CONFIG_ARCH_PROC_KCORE_TEXT
433 | -
434 | - * Opal and POWER9 DD2 (LP: #1702159)
435 | - - SAUCE: powerpc/powernv: Tell OPAL about our MMU mode on POWER9
436 | -
437 | - * Data corruption with hio driver (LP: #1701316)
438 | - - SAUCE: hio: Fix incorrect use of enum req_opf values
439 | -
440 | - * Miscellaneous Ubuntu changes
441 | - - SAUCE: (noup) Update spl to 0.6.5.10-1, zfs to 0.6.5.10-1ubuntu2
442 | - - snapcraft.yaml: Sync with xenial
443 | - - [Config] CONFIG_CAVIUM_ERRATUM_30115=y
444 | -
445 | - * Miscellaneous upstream changes
446 | - - Revert "UBUNTU: SAUCE: (efi-lockdown) efi: Add sysctls for secureboot and
447 | - MokSBState"
448 | -
449 | - -- Seth Forshee Fri, 14 Jul 2017 15:25:41 -0500
450 | -
451 | -linux (4.12.0-6.7) artful; urgency=low
452 | -
453 | - * update ENA driver to 1.2.0k from net-next (LP: #1701575)
454 | - - net: ena: change return value for unsupported features unsupported return
455 | - value
456 | - - net: ena: add hardware hints capability to the driver
457 | - - net: ena: change sizeof() argument to be the type pointer
458 | - - net: ena: add reset reason for each device FLR
459 | - - net: ena: add support for out of order rx buffers refill
460 | - - net: ena: allow the driver to work with small number of msix vectors
461 | - - net: ena: use napi_schedule_irqoff when possible
462 | - - net: ena: separate skb allocation to dedicated function
463 | - - net: ena: use lower_32_bits()/upper_32_bits() to split dma address
464 | - - net: ena: update driver's rx drop statistics
465 | - - net: ena: update ena driver to version 1.2.0
466 | -
467 | - * APST gets enabled against explicit kernel option (LP: #1699004)
468 | - - nvme: explicitly disable APST on quirked devices
469 | -
470 | - * Miscellaneous Ubuntu changes
471 | - - SAUCE: hio: Update to Huawei ES3000_V2 (2.1.0.40)
472 | - - SAUCE: hio updates for 4.12
473 | - - SAUCE: Enable hio build
474 | -
475 | - -- Seth Forshee Wed, 05 Jul 2017 14:23:20 -0500
476 | -
477 | -linux (4.12.0-5.6) artful; urgency=low
478 | -
479 | - * ERAT invalidate on context switch removal (LP: #1700819)
480 | - - powerpc: Only do ERAT invalidate on radix context switch on P9 DD1
481 | -
482 | - * powerpc: Invalidate ERAT on powersave wakeup for POWER9 (LP: #1700521)
483 | - - SAUCE: powerpc: Invalidate ERAT on powersave wakeup for POWER9
484 | -
485 | - * Miscellaneous Ubuntu changes
486 | - - d-i: Move qcom-emac from arm64 to shared nic-modules
487 | -
488 | - [ Upstream Kernel Changes ]
489 | -
490 | - * Rebase to v4.12
491 | -
492 | - -- Seth Forshee Mon, 03 Jul 2017 07:52:02 -0500
493 | -
494 | -linux (4.12.0-4.5) artful; urgency=low
495 | -
496 | - * aacraid driver may return uninitialized stack data to userspace
497 | - (LP: #1700077)
498 | - - SAUCE: scsi: aacraid: Don't copy uninitialized stack memory to userspace
499 | -
500 | - * KILLER1435-S[0489:e0a2] BT cannot search BT 4.0 device (LP: #1699651)
501 | - - Bluetooth: btusb: Add support for 0489:e0a2 QCA_ROME device
502 | -
503 | - * AACRAID for power9 platform (LP: #1689980)
504 | - - scsi: aacraid: Remove __GFP_DMA for raw srb memory
505 | - - scsi: aacraid: Fix DMAR issues with iommu=pt
506 | - - scsi: aacraid: Added 32 and 64 queue depth for arc natives
507 | - - scsi: aacraid: Set correct Queue Depth for HBA1000 RAW disks
508 | - - scsi: aacraid: Remove reset support from check_health
509 | - - scsi: aacraid: Change wait time for fib completion
510 | - - scsi: aacraid: Log count info of scsi cmds before reset
511 | - - scsi: aacraid: Print ctrl status before eh reset
512 | - - scsi: aacraid: Using single reset mask for IOP reset
513 | - - scsi: aacraid: Rework IOP reset
514 | - - scsi: aacraid: Add periodic checks to see IOP reset status
515 | - - scsi: aacraid: Rework SOFT reset code
516 | - - scsi: aacraid: Rework aac_src_restart
517 | - - scsi: aacraid: Use correct function to get ctrl health
518 | - - scsi: aacraid: Make sure ioctl returns on controller reset
519 | - - scsi: aacraid: Enable ctrl reset for both hba and arc
520 | - - scsi: aacraid: Add reset debugging statements
521 | - - scsi: aacraid: Remove reference to Series-9
522 | - - scsi: aacraid: Update driver version to 50834
523 | -
524 | - * hibmc driver does not include "pci:" prefix in bus ID (LP: #1698700)
525 | - - SAUCE: drm: hibmc: Use set_busid function from drm core
526 | -
527 | - * HiSilicon D05: installer doesn't appear on VGA (LP: #1698954)
528 | - - d-i: Add hibmc-drm to kernel-image udeb
529 | -
530 | - * Fix /proc/cpuinfo revision for POWER9 DD2 (LP: #1698844)
531 | - - SAUCE: powerpc: Fix /proc/cpuinfo revision for POWER9 DD2
532 | -
533 | - * Miscellaneous Ubuntu changes
534 | - - [Config] CONFIG_SATA_MV=n and CONFIG_GENERIC_PHY=n for s390x
535 | - - [Config] CONFIG_ATA=n for s390x
536 | - - [Config] Update annotations for 4.12
537 | -
538 | - [ Upstream Kernel Changes ]
539 | -
540 | - * Rebase to v4.12-rc7
541 | -
542 | - -- Seth Forshee Mon, 26 Jun 2017 11:27:29 -0500
543 | -
544 | -linux (4.12.0-3.4) artful; urgency=low
545 | -
546 | - * Miscellaneous upstream changes
547 | - - ufs: fix the logics for tail relocation
548 | -
549 | - [ Upstream Kernel Changes ]
550 | -
551 | - * Rebase to v4.12-rc6
552 | -
553 | - -- Seth Forshee Mon, 19 Jun 2017 14:50:39 -0500
554 | -
555 | -linux (4.12.0-2.3) artful; urgency=low
556 | -
557 | - * CVE-2014-9900
558 | - - SAUCE: (no-up) net: Zeroing the structure ethtool_wolinfo in
559 | - ethtool_get_wol()
560 | -
561 | - * System doesn't boot properly on Gigabyte AM4 motherboards (AMD Ryzen)
562 | - (LP: #1671360)
563 | - - pinctrl/amd: Use regular interrupt instead of chained
564 | -
565 | - * extend-diff-ignore should use exact matches (LP: #1693504)
566 | - - [Packaging] exact extend-diff-ignore matches
567 | -
568 | - * Miscellaneous Ubuntu changes
569 | - - SAUCE: efi: Don't print secure boot state from the efi stub
570 | - - ubuntu: vbox -- Update to 5.1.22-dfsg-1
571 | - - SAUCE: vbox fixes for 4.12
572 | - - Re-enable virtualbox build
573 | - - [Config] CONFIG_ORANGEFS_FS=m
574 | - - SAUCE: (noup) Update spl to 0.6.5.9-1ubuntu2, zfs to 0.6.5.9-5ubuntu7
575 | - - Enable zfs build
576 | -
577 | - [ Upstream Kernel Changes ]
578 | -
579 | - * Rebase to v4.12-rc4
580 | - * Rebase to v4.12-rc5
581 | -
582 | - -- Seth Forshee Sun, 11 Jun 2017 22:25:13 -0500
583 | -
584 | -linux (4.12.0-1.2) artful; urgency=low
585 | -
586 | - * Enable Matrox driver for Ubuntu 16.04.3 (LP: #1693337)
587 | - - [Config] Enable CONFIG_DRM_MGAG200 as module
588 | -
589 | - * Support low-pin-count devices on Hisilicon SoCs (LP: #1677319)
590 | - - [Config] CONFIG_LIBIO=y on arm64 only
591 | - - SAUCE: LIBIO: Introduce a generic PIO mapping method
592 | - - SAUCE: OF: Add missing I/O range exception for indirect-IO devices
593 | - - [Config] CONFIG_HISILICON_LPC=y
594 | - - SAUCE: LPC: Support the device-tree LPC host on Hip06/Hip07
595 | - - SAUCE: LIBIO: Support the dynamically logical PIO registration of ACPI host
596 | - I/O
597 | - - SAUCE: LPC: Add the ACPI LPC support
598 | - - SAUCE: PCI: Apply the new generic I/O management on PCI IO hosts
599 | - - SAUCE: PCI: Restore codepath for !CONFIG_LIBIO
600 | -
601 | - * POWER9: Additional patches for TTY and CPU_IDLE (LP: #1674325)
602 | - - SAUCE: tty: Fix ldisc crash on reopened tty
603 | -
604 | - * Miscellaneous Ubuntu changes
605 | - - [Debian] Add build-dep on libnuma-dev to enable 'perf bench numa'
606 | - - Rebase to v4.12-rc3
607 | -
608 | - [ Upstream Kernel Changes ]
609 | -
610 | - * Rebase to v4.12-rc3
611 | -
612 | - -- Seth Forshee Mon, 29 May 2017 20:56:29 -0500
613 | -
614 | -linux (4.12.0-0.1) artful; urgency=low
615 | -
616 | - * please enable CONFIG_ARM64_LSE_ATOMICS (LP: #1691614)
617 | - - [Config] CONFIG_ARM64_LSE_ATOMICS=y
618 | -
619 | - * [Regression] NUMA_BALANCING disabled on arm64 (LP: #1690914)
620 | - - [Config] CONFIG_NUMA_BALANCING{,_DEFAULT_ENABLED}=y on arm64
621 | -
622 | - * exec'ing a setuid binary from a threaded program sometimes fails to setuid
623 | - (LP: #1672819)
624 | - - SAUCE: exec: ensure file system accounting in check_unsafe_exec is correct
625 | -
626 | - * Miscellaneous Ubuntu changes
627 | - - Update find-missing-sauce.sh to compare to artful
628 | - - Update dropped.txt
629 | - - SAUCE: (efi-lockdown) efi: Add EFI_SECURE_BOOT bit
630 | - - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
631 | - kernel image
632 | - - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
633 | - mode
634 | - - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
635 | - - SAUCE: (efi-lockdown) Restrict /dev/mem and /dev/kmem when the kernel is
636 | - locked down
637 | - - SAUCE: (efi-lockdown) Add a sysrq option to exit secure boot mode
638 | - - SAUCE: (efi-lockdown) kexec: Disable at runtime if the kernel is locked down
639 | - - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
640 | - reboot
641 | - - SAUCE: (efi-lockdown) kexec_file: Disable at runtime if securelevel has been
642 | - set
643 | - - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
644 | - - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
645 | - - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
646 | - down
647 | - - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
648 | - locked down
649 | - - SAUCE: (efi-lockdown) x86: Restrict MSR access when the kernel is locked
650 | - down
651 | - - SAUCE: (efi-lockdown) asus-wmi: Restrict debugfs interface when the kernel
652 | - is locked down
653 | - - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
654 | - locked down
655 | - - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
656 | - has been locked down
657 | - - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
658 | - locked down
659 | - - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
660 | - locked down
661 | - - SAUCE: (efi-lockdown) Enable cold boot attack mitigation
662 | - - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the
663 | - kernel is locked down
664 | - - SAUCE: (efi-lockdown) scsi: Lock down the eata driver
665 | - - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
666 | - down
667 | - - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
668 | - - SAUCE: (efi-lockdown) KEYS: Allow unrestricted boot-time addition of keys to
669 | - secondary keyring
670 | - - SAUCE: (efi-lockdown) efi: Add EFI signature data types
671 | - - SAUCE: (efi-lockdown) efi: Add an EFI signature blob parser
672 | - - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot
673 | - - SAUCE: (efi-lockdown) MODSIGN: Allow the "db" UEFI variable to be suppressed
674 | - - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
675 | - - SAUCE: (efi-lockdown) efi: Add secure_boot state and status bit for
676 | - MokSBState
677 | - - SAUCE: (efi-lockdown) efi: Add sysctls for secureboot and MokSBState
678 | - - [Config] Set values for UEFI secure boot lockdown options
679 | - - Disable virtualbox build
680 | - - Disable hio build
681 | - - SAUCE: securityfs: Replace CURRENT_TIME with current_time()
682 | - - Disable zfs build
683 | - - [Debian] Work out upstream tag for use with gen-auto-reconstruct
684 | - - SAUCE: Import aufs driver
685 | - - SAUCE: aufs -- Include linux/mm.h in fs/aufs/file.h
686 | - - [Config] Enable aufs
687 | - - SAUCE: perf callchain: Include errno.h on x86 unconditinally
688 | -
689 | - [ Upstream Kernel Changes ]
690 | -
691 | - * Rebase to v4.12-rc2
692 | -
693 | - -- Seth Forshee Sun, 21 May 2017 23:44:44 -0500
694 | -
695 | -linux (4.11.0-3.8) artful; urgency=low
696 | -
697 | - [ Seth Forshee ]
698 | -
699 | - * Release Tracking Bug
700 | - - LP: #1690999
701 | -
702 | - * apparmor_parser hangs indefinitely when called by multiple threads
703 | - (LP: #1645037)
704 | - - SAUCE: apparmor: fix lock ordering for mkdir
705 | -
706 | - * apparmor leaking securityfs pin count (LP: #1660846)
707 | - - SAUCE: apparmor: fix leak on securityfs pin count
708 | -
709 | - * apparmor reference count leak when securityfs_setup_d_inode\ () fails
710 | - (LP: #1660845)
711 | - - SAUCE: apparmor: fix reference count leak when securityfs_setup_d_inode()
712 | - fails
713 | -
714 | - * apparmor not checking error if security_pin_fs() fails (LP: #1660842)
715 | - - SAUCE: apparmor: fix not handling error case when securityfs_pin_fs() fails
716 | -
717 | - * libvirt profile is blocking global setrlimit despite having no rlimit rule
718 | - (LP: #1679704)
719 | - - SAUCE: apparmor: fix complain mode failure for rlimit mediation
720 | - - apparmor: update auditing of rlimit check to provide capability information
721 | -
722 | - * apparmor: does not provide a way to detect policy updataes (LP: #1678032)
723 | - - SAUCE: apparmor: add policy revision file interface
724 | -
725 | - * apparmor does not make support of query data visible (LP: #1678023)
726 | - - SAUCE: apparmor: add label data availability to the feature set
727 | -
728 | - * apparmor query interface does not make supported query info available
729 | - (LP: #1678030)
730 | - - SAUCE: apparmor: add information about the query inteface to the feature set
731 | -
732 | - * change_profile incorrect when using namespaces with a compound stack
733 | - (LP: #1677959)
734 | - - SAUCE: apparmor: fix label parse for stacked labels
735 | -
736 | - * Regression in 4.4.0-65-generic causes very frequent system crashes
737 | - (LP: #1669611)
738 | - - apparmor: sync of apparmor 3.6+ (17.04)
739 | -
740 | - * Artful update to 4.11.1 stable release (LP: #1690814)
741 | - - dm ioctl: prevent stack leak in dm ioctl call
742 | - - drm/sti: fix GDP size to support up to UHD resolution
743 | - - power: supply: lp8788: prevent out of bounds array access
744 | - - brcmfmac: Ensure pointer correctly set if skb data location changes
745 | - - brcmfmac: Make skb header writable before use
746 | - - sparc64: fix fault handling in NGbzero.S and GENbzero.S
747 | - - refcount: change EXPORT_SYMBOL markings
748 | - - net: macb: fix phy interrupt parsing
749 | - - tcp: fix access to sk->sk_state in tcp_poll()
750 | - - geneve: fix incorrect setting of UDP checksum flag
751 | - - bpf: enhance verifier to understand stack pointer arithmetic
752 | - - bpf, arm64: fix jit branch offset related to ldimm64
753 | - - tcp: fix wraparound issue in tcp_lp
754 | - - net: ipv6: Do not duplicate DAD on link up
755 | - - net: usb: qmi_wwan: add Telit ME910 support
756 | - - tcp: do not inherit fastopen_req from parent
757 | - - ipv4, ipv6: ensure raw socket message is big enough to hold an IP header
758 | - - rtnetlink: NUL-terminate IFLA_PHYS_PORT_NAME string
759 | - - ipv6: initialize route null entry in addrconf_init()
760 | - - ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf
761 | - - tcp: randomize timestamps on syncookies
762 | - - bnxt_en: allocate enough space for ->ntp_fltr_bmap
763 | - - bpf: don't let ldimm64 leak map addresses on unprivileged
764 | - - net: mdio-mux: bcm-iproc: call mdiobus_free() in error path
765 | - - f2fs: sanity check segment count
766 | - - xen/arm,arm64: fix xen_dma_ops after 815dd18 "Consolidate get_dma_ops..."
767 | - - xen: Revert commits da72ff5bfcb0 and 72a9b186292d
768 | - - block: get rid of blk_integrity_revalidate()
769 | - - Linux 4.11.1
770 | -
771 | - * Module signing exclusion for staging drivers does not work properly
772 | - (LP: #1690908)
773 | - - SAUCE: Fix module signing exclusion in package builds
774 | -
775 | - * perf: qcom: Add L3 cache PMU driver (LP: #1689856)
776 | - - [Config] CONFIG_QCOM_L3_PMU=y
777 | - - perf: qcom: Add L3 cache PMU driver
778 | -
779 | - * No PMU support for ACPI-based arm64 systems (LP: #1689661)
780 | - - drivers/perf: arm_pmu: rework per-cpu allocation
781 | - - drivers/perf: arm_pmu: manage interrupts per-cpu
782 | - - drivers/perf: arm_pmu: split irq request from enable
783 | - - drivers/perf: arm_pmu: remove pointless PMU disabling
784 | - - drivers/perf: arm_pmu: define armpmu_init_fn
785 | - - drivers/perf: arm_pmu: fold init into alloc
786 | - - drivers/perf: arm_pmu: factor out pmu registration
787 | - - drivers/perf: arm_pmu: simplify cpu_pmu_request_irqs()
788 | - - drivers/perf: arm_pmu: handle no platform_device
789 | - - drivers/perf: arm_pmu: rename irq request/free functions
790 | - - drivers/perf: arm_pmu: split cpu-local irq request/free
791 | - - drivers/perf: arm_pmu: move irq request/free into probe
792 | - - drivers/perf: arm_pmu: split out platform device probe logic
793 | - - arm64: add function to get a cpu's MADT GICC table
794 | - - [Config] CONFIG_ARM_PMU_ACPI=y
795 | - - drivers/perf: arm_pmu: add ACPI framework
796 | - - arm64: pmuv3: handle !PMUv3 when probing
797 | - - arm64: pmuv3: use arm_pmu ACPI framework
798 | -
799 | - * Fix NVLINK2 TCE route (LP: #1690155)
800 | - - powerpc/powernv: Fix TCE kill on NVLink2
801 | -
802 | - * CVE-2017-0605
803 | - - tracing: Use strlcpy() instead of strcpy() in __trace_find_cmdline()
804 | -
805 | - * Miscellaneous Ubuntu changes
806 | - - [Config] Restore powerpc arch to annotations file
807 | - - [Config] Disable runtime testing modules
808 | - - [Config] Disable drivers not needed on s390x
809 | - - [Config] Update annotations for 4.11
810 | - - [Config] updateconfigs after apparmor updates
811 | -
812 | - * Miscellaneous upstream changes
813 | - - apparmor: use SHASH_DESC_ON_STACK
814 | - - apparmor: fix invalid reference to index variable of iterator line 836
815 | - - apparmor: fix parameters so that the permission test is bypassed at boot
816 | - - apparmor: Make path_max parameter readonly
817 | - - apparmorfs: Combine two function calls into one in aa_fs_seq_raw_abi_show()
818 | - - apparmorfs: Use seq_putc() in two functions
819 | - - apparmor: provide information about path buffer size at boot
820 | - - apparmor: add/use fns to print hash string hex value
821 | -
822 | - -- Seth Forshee Tue, 16 May 2017 00:39:13 -0500
823 | -
824 | -linux (4.11.0-2.7) artful; urgency=low
825 | -
826 | - * kernel-wedge fails in artful due to leftover squashfs-modules d-i files
827 | - (LP: #1688259)
828 | - - Remove squashfs-modules files from d-i
829 | - - [Config] as squashfs-modules is builtin kernel-image must Provides: it
830 | -
831 | - * [Zesty] d-i: replace msm_emac with qcom_emac (LP: #1677297)
832 | - - Revert "UBUNTU: d-i: initrd needs msm_emac on amberwing platform."
833 | - - d-i: initrd needs qcom_emac on amberwing platform.
834 | -
835 | - * update for V3 kernel bits and improved multiple fan slice support
836 | - (LP: #1470091)
837 | - - SAUCE: fan: tunnel multiple mapping mode (v3)
838 | -
839 | - * Miscellaneous Ubuntu changes
840 | - - SAUCE: (noup) Update spl to 0.6.5.9-1ubuntu1, zfs to 0.6.5.9-5ubuntu5
841 | - - Enable zfs
842 | - - SAUCE: fan: add VXLAN implementation
843 | - - SAUCE: (efi-lockdown) efi: Add EFI_SECURE_BOOT bit
844 | - - SAUCE: (efi-lockdown) Add the ability to lock down access to the running
845 | - kernel image
846 | - - SAUCE: (efi-lockdown) efi: Lock down the kernel if booted in secure boot
847 | - mode
848 | - - SAUCE: (efi-lockdown) Enforce module signatures if the kernel is locked down
849 | - - SAUCE: (efi-lockdown) Restrict /dev/mem and /dev/kmem when the kernel is
850 | - locked down
851 | - - SAUCE: (efi-lockdown) Add a sysrq option to exit secure boot mode
852 | - - SAUCE: (efi-lockdown) kexec: Disable at runtime if the kernel is locked down
853 | - - SAUCE: (efi-lockdown) Copy secure_boot flag in boot params across kexec
854 | - reboot
855 | - - SAUCE: (efi-lockdown) kexec_file: Disable at runtime if securelevel has been
856 | - set
857 | - - SAUCE: (efi-lockdown) hibernate: Disable when the kernel is locked down
858 | - - SAUCE: (efi-lockdown) uswsusp: Disable when the kernel is locked down
859 | - - SAUCE: (efi-lockdown) PCI: Lock down BAR access when the kernel is locked
860 | - down
861 | - - SAUCE: (efi-lockdown) x86: Lock down IO port access when the kernel is
862 | - locked down
863 | - - SAUCE: (efi-lockdown) x86: Restrict MSR access when the kernel is locked
864 | - down
865 | - - SAUCE: (efi-lockdown) asus-wmi: Restrict debugfs interface when the kernel
866 | - is locked down
867 | - - SAUCE: (efi-lockdown) ACPI: Limit access to custom_method when the kernel is
868 | - locked down
869 | - - SAUCE: (efi-lockdown) acpi: Ignore acpi_rsdp kernel param when the kernel
870 | - has been locked down
871 | - - SAUCE: (efi-lockdown) acpi: Disable ACPI table override if the kernel is
872 | - locked down
873 | - - SAUCE: (efi-lockdown) acpi: Disable APEI error injection if the kernel is
874 | - locked down
875 | - - SAUCE: (efi-lockdown) Enable cold boot attack mitigation
876 | - - SAUCE: (efi-lockdown) bpf: Restrict kernel image access functions when the
877 | - kernel is locked down
878 | - - SAUCE: (efi-lockdown) scsi: Lock down the eata driver
879 | - - SAUCE: (efi-lockdown) Prohibit PCMCIA CIS storage when the kernel is locked
880 | - down
881 | - - SAUCE: (efi-lockdown) Lock down TIOCSSERIAL
882 | - - SAUCE: (efi-lockdown) Add EFI signature data types
883 | - - SAUCE: (efi-lockdown) Add an EFI signature blob parser and key loader.
884 | - - SAUCE: (efi-lockdown) KEYS: Add a system blacklist keyring
885 | - - SAUCE: (efi-lockdown) MODSIGN: Import certificates from UEFI Secure Boot
886 | - - SAUCE: (efi-lockdown) MODSIGN: Support not importing certs from db
887 | - - SAUCE: (efi-lockdown) MODSIGN: Don't try secure boot if EFI runtime is
888 | - disabled
889 | - - SAUCE: (efi-lockdown) efi: Sanitize boot_params in efi stub
890 | - - SAUCE: (efi-lockdown) efi: Add secure_boot state and status bit for
891 | - MokSBState
892 | - - SAUCE: (efi-lockdown) efi: Add sysctls for secureboot and MokSBState
893 | - - [Config] Set values for UEFI secure boot lockdown options
894 | - - Update dropped.txt
895 | -
896 | - [ Upstream Kernel Changes ]
897 | -
898 | - * rebase to v4.11
899 | -
900 | - -- Seth Forshee Fri, 05 May 2017 07:43:14 -0500
901 | -
902 | -linux (4.11.0-1.6) artful; urgency=low
903 | -
904 | - * Miscellaneous Ubuntu changes
905 | - - [Debian] Use default compression for all packages
906 | - - SAUCE: (namespace) block_dev: Support checking inode permissions in
907 | - lookup_bdev()
908 | - - SAUCE: (namespace) block_dev: Check permissions towards block device inode
909 | - when mounting
910 | - - SAUCE: (namespace) mtd: Check permissions towards mtd block device inode
911 | - when mounting
912 | - - SAUCE: (namespace) fs: Allow superblock owner to change ownership of inodes
913 | - - SAUCE: (namespace) fs: Don't remove suid for CAP_FSETID for userns root
914 | - - SAUCE: (namespace) fs: Allow superblock owner to access do_remount_sb()
915 | - - SAUCE: (namespace) capabilities: Allow privileged user in s_user_ns to set
916 | - security.* xattrs
917 | - - SAUCE: (namespace) fs: Allow CAP_SYS_ADMIN in s_user_ns to freeze and thaw
918 | - filesystems
919 | - - SAUCE: (namespace) fuse: Add support for pid namespaces
920 | - - SAUCE: (namespace) fuse: Support fuse filesystems outside of init_user_ns
921 | - - SAUCE: (namespace) fuse: Restrict allow_other to the superblock's namespace
922 | - or a descendant
923 | - - SAUCE: (namespace) fuse: Allow user namespace mounts
924 | - - SAUCE: (namespace) ext4: Add support for unprivileged mounts from user
925 | - namespaces
926 | - - SAUCE: (namespace) evm: Don't update hmacs in user ns mounts
927 | - - SAUCE: (namespace) ext4: Add module parameter to enable user namespace
928 | - mounts
929 | - - SAUCE: (namespace) block_dev: Forbid unprivileged mounting when device is
930 | - opened for writing
931 | -
932 | - -- Seth Forshee Wed, 26 Apr 2017 10:08:29 -0500
933 | -
934 | -linux (4.11.0-0.5) artful; urgency=low
935 | -
936 | - * [Hyper-V][SAUCE] pci-hyperv: Use only 16 bit integer for PCI domain
937 | - (LP: #1684971)
938 | - - SAUCE: pci-hyperv: Use only 16 bit integer for PCI domain
939 | -
940 | - * [Hyper-V] Ubuntu 14.04.2 LTS Generation 2 SCSI Errors on VSS Based Backups
941 | - (LP: #1470250)
942 | - - SAUCE: Tools: hv: vss: Thaw the filesystem and continue after freeze fails
943 | -
944 | - * Enable virtual scsi server driver for Power (LP: #1615665)
945 | - - SAUCE: Return TCMU-generated sense data to fabric module
946 | -
947 | - * include/linux/security.h header syntax error with !CONFIG_SECURITYFS
948 | - (LP: #1630990)
949 | - - SAUCE: (no-up) include/linux/security.h -- fix syntax error with
950 | - CONFIG_SECURITYFS=n
951 | -
952 | - * Miscellaneous Ubuntu changes
953 | - - SAUCE: Import aufs driver
954 | - - [Config] Enable aufs
955 | - - [Debian] Add script to update virtualbox
956 | - - ubuntu: vbox -- Update to 5.1.20-dfsg-2
957 | - - Enable vbox
958 | - - SAUCE: aufs -- Include linux/mm.h in fs/aufs/file.h
959 | -
960 | - [ Upstream Kernel Changes ]
961 | -
962 | - * rebase to v4.11-rc8
963 | -
964 | - -- Seth Forshee Tue, 25 Apr 2017 13:42:54 -0500
965 | -
966 | -linux (4.11.0-0.4) zesty; urgency=low
967 | -
968 | - * POWER9: Improve performance on memory management (LP: #1681429)
969 | - - SAUCE: powerpc/mm/radix: Don't do page walk cache flush when doing full mm
970 | - flush
971 | - - SAUCE: powerpc/mm/radix: Remove unnecessary ptesync
972 | -
973 | - * Miscellaneous Ubuntu changes
974 | - - find-missing-sauce.sh
975 | -
976 | - [ Upstream Kernel Changes ]
977 | -
978 | - * rebase to v4.11-rc7
979 | -
980 | - -- Seth Forshee Tue, 18 Apr 2017 08:19:43 -0500
981 | -
982 | -linux (4.11.0-0.3) zesty; urgency=low
983 | -
984 | - * Disable CONFIG_HVC_UDBG on ppc64el (LP: #1680888)
985 | - - [Config] Disable CONFIG_HVC_UDBG on ppc64el
986 | -
987 | - * smartpqi driver needed in initram disk and installer (LP: #1680156)
988 | - - [Config] Add smartpqi to d-i
989 | -
990 | - * Disable CONFIG_SECURITY_SELINUX_DISABLE (LP: #1680315)
991 | - - [Config] CONFIG_SECURITY_SELINUX_DISABLE=n
992 | -
993 | - * Miscellaneous Ubuntu changes
994 | - - [Config] flash-kernel should be a Breaks
995 | - - [Config] drop the info directory
996 | - - [Config] drop NOTES as obsolete
997 | - - [Config] drop changelog.historical as obsolete
998 | - - rebase to v4.11-rc6
999 | -
1000 | - [ Upstream Kernel Changes ]
1001 | -
1002 | - * rebase to v4.11-rc6
1003 | -
1004 | - -- Tim Gardner Tue, 11 Apr 2017 07:16:52 -0600
1005 | -
1006 | -linux (4.11.0-0.2) zesty; urgency=low
1007 | -
1008 | - [ Upstream Kernel Changes ]
1009 | -
1010 | - * rebase to v4.11-rc5
1011 | -
1012 | - -- Tim Gardner Mon, 03 Apr 2017 08:26:07 +0100
1013 | -
1014 | -linux (4.11.0-0.1) zesty; urgency=low
1015 | -
1016 | - [ Upstream Kernel Changes ]
1017 | -
1018 | - * rebase to v4.11-rc4
1019 | - - LP: #1591053
1020 | -
1021 | - -- Tim Gardner Mon, 20 Mar 2017 05:15:32 -0600
1022 | -
1023 | -linux (4.11.0-0.0) zesty; urgency=low
1024 | -
1025 | - * dummy entry
1026 | -
1027 | - -- Tim Gardner Mon, 20 Mar 2017 05:15:32 -0600
1028 | --
1029 | 2.7.4
1030 |
1031 |
--------------------------------------------------------------------------------