Sunday, December 13, 2015

Which OpenWRT version to use?

If you want a relief from the never-ending stories about flaws in router firmware and the incompetence of vendors to deliver fixes, OpenWRT is about the only relatively sane option and I've been using it for almost a decade, since the White Russian release.

OpenWRT has a development branch or trunk which may be a bit experimental and a Stable branch. A Stable branch is released about once a year. Their documentation says that basically anything beyond the current stable release is unmaintained. Is it really so? Well, it's open source, so it should be easy to find out.

Attitude Adjustment, or OpenWRT 12.09, has seen its last commit in September 2014, so it's dead indeed.
Barrier Breaker, or OpenWRT 14.07, on the other hand has seen an update five days ago, so it's certainly moving. But is it still fresh and safe to use? I did a quick and simple check to find out.

There were twelve security vulnerabilities (possibly more, but these were easy to filter) fixed in Chaos Calmer (OpenWRT 15.05, the current stable release) during its lifetime. I grepped for them in the Barrier Breaker sources and here's the result:



Fixed in
Chaos Calmer
Fixed in
Barrier Breaker
CVE-2015-3193 12/03/15 12/07/15
CVE-2015-3194 12/03/15 12/07/15
CVE-2015-3195 12/03/15 12/07/15
CVE-2015-5291 10/18/15 Still vulnerable!
CVE-2015-3143 07/12/15 Still vulnerable!
CVE-2015-3144 07/12/15 Still vulnerable!
CVE-2015-3145 07/12/15 Still vulnerable!
CVE-2015-3148 07/12/15 Still vulnerable!
CVE-2015-3153 07/12/15 Still vulnerable!
CVE-2015-3236 07/12/15 Wasn't vulnerable
CVE-2015-3237 07/12/15 Wasn't vulnerable
CVE-2015-1793 07/09/15 07/09/15

There's a bunch of security issues lurking in the code unfixed.
It looks like an older release may still get some support in the first few months after it's been replaced, but it's not really wise to delay the update.

Thursday, November 26, 2015

Arduino development in Solaris Studio

The unbeatable advantage of the Arduino IDE is that it just works, together with the large library of examples. However it really sucks as a source code editor.
Fortunately there's an Arduino plugin for Netbeans (and therefore for Solaris Studio, which is just thinly veiled Netbeans bundled with the Oracle compilers).

The trouble is the Netbeans plugin URL download button gets you the Windows version, but do not despair. The author apparently plays with Linux too, and there's a tmp/linux folder in the repository, containing a functional Linux version of the plugin.

I only had to alter the default Makefile slightly to adjust for Debian's packaging of the Arduino software and my version of the chip:

8,9c8,9

8,9c8,9
< COM_PORT = /dev/ttyACM0
< BAUD_RATE = 115200
---
> COM_PORT = /dev/ttyUSB0
> BAUD_RATE = 19200
11,12c11,12
< ARDUINO_BASE_DIR = /home/jaques/opt/arduino-1.6.5-r5
< ARDUINO_CORE_DIR = ${ARDUINO_BASE_DIR}/hardware/arduino/avr/cores/arduino
---
> ARDUINO_BASE_DIR = /usr/share/arduino
> ARDUINO_CORE_DIR = ${ARDUINO_BASE_DIR}/hardware/arduino/cores/arduino
20c20
< ARDUINO_MODEL = atmega328p
---
> ARDUINO_MODEL = atmega168
22c22
< ARDUINO_PINS_DIR = ${ARDUINO_BASE_DIR}/hardware/arduino/avr/variants/standard
---
> ARDUINO_PINS_DIR = ${ARDUINO_BASE_DIR}/hardware/arduino/variants/standard
38c38
< AVR_DUDE = ${ARDUINO_BASE_DIR}/hardware/tools/avr/bin/avrdude -C ${ARDUINO_BASE_DIR}/hardware/tools/avr/etc/avrdude.conf
---
> AVR_DUDE = ${ARDUINO_BASE_DIR}/hardware/tools/avrdude -C ${ARDUINO_BASE_DIR}/hardware/tools/avrdude.conf

Monday, November 16, 2015

What can go wrong with Debian upgrade

When I moved from testing to stable I thought it'd be enough to just stop updating testing a while before the release, modify the apt sources and dist-upgrade.
And indeed all seemed to be working well.

Until now.

I wanted to install wine32, but there were all sorts of errors popping up.
I narrowed it down to libxml2 - it wasn't possible to install the 32-bit part:

# apt-get install libxml2:i386
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 apache2-bin : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libabw-0.1-1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libaugeas0 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libe-book-0.1-1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libepub0 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libetonyek-0.1-1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libfontforge1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libgdraw4 : Depends: libxml2 (>= 2.6.27) but it is not going to be installed
 libgeoclue0 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libgtk2.0-0 : Depends: shared-mime-info
               Recommends: libgtk2.0-bin
 libgupnp-dlna-2.0-3 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libmate-window-settings1 : Depends: libxml2 (>= 2.6.27) but it is not going to be installed
 libopenconnect3 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libplist1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libstoken1 : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 libxml-libxml-perl : Depends: libxml2 (>= 2.7.4) but it is not going to be installed
 marco : Depends: libmarco-private0 (= 1.8.2+dfsg1-6) but it is not going to be installed
         Depends: zenity
 mate-media : Depends: mate-media-pulse (>= 1.8.0+dfsg1-3) but it is not going to be installed or
                       mate-media-gstreamer (>= 1.8.0+dfsg1-3) but it is not going to be installed
 mate-settings-daemon : Depends: mate-settings-daemon-pulse (>= 1.8.2-4) but it is not going to be installed or
                                 mate-settings-daemon-gstreamer (>= 1.8.2-4) but it is not going to be installed
 python-libxml2 : Depends: libxml2 (>= 2.9.1) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

It took me a while to realize that my libxml2 was actually of higher version than the one in Jessie! As soon as I downgraded it, the installation of wine32 went well...

# dpkg -l |grep libxml2
ii  libxml2:amd64                         2.9.2+dfsg1-1+b1
# apt-get install libxml2=2.9.1+dfsg1-5
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be DOWNGRADED:
  libxml2
0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.
Need to get 800 kB of archives.
After this operation, 413 kB disk space will be freed.
Do you want to continue? [Y/n]
Get:1 http://ftp.cz.debian.org/debian/ jessie/main libxml2 amd64 2.9.1+dfsg1-5 [800 kB]
Fetched 800 kB in 0s (2,198 kB/s)
dpkg: warning: downgrading libxml2:amd64 from 2.9.2+dfsg1-1+b1 to 2.9.1+dfsg1-5
(Reading database ... 285067 files and directories currently installed.)
Preparing to unpack .../libxml2_2.9.1+dfsg1-5_amd64.deb ...
Unpacking libxml2:amd64 (2.9.1+dfsg1-5) over (2.9.2+dfsg1-1+b1) ...
Setting up libxml2:amd64 (2.9.1+dfsg1-5) ...
Processing triggers for libc-bin (2.19-18+deb8u1) ...


# apt-get install libxml2:i386
Reading package lists... Done
Building dependency tree      
Reading state information... Done
Recommended packages:
  xml-core:i386
The following NEW packages will be installed:
  libxml2:i386
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 833 kB of archives.
After this operation, 1,910 kB of additional disk space will be used.
Get:1 http://ftp.cz.debian.org/debian/ jessie/main libxml2 i386 2.9.1+dfsg1-5 [833 kB]
Fetched 833 kB in 4s (168 kB/s)      
Selecting previously unselected package libxml2:i386.
(Reading database ... 285066 files and directories currently installed.)
Preparing to unpack .../libxml2_2.9.1+dfsg1-5_i386.deb ...
Unpacking libxml2:i386 (2.9.1+dfsg1-5) ...
Setting up libxml2:i386 (2.9.1+dfsg1-5) ...
Processing triggers for libc-bin (2.19-18+deb8u1) ...
#

http://blog.hajma.cz/2015/04/fixating-testing-to-jessie.html

Sunday, October 25, 2015

Současná umělecká díla v krajině - mapped

As much as I like the book,it's got one major flaw - there's no map with the location of the objects, so it's a poor choice for trip planning.
So I created a custom map with mapy.cz using their custom point feature.
Initially I included names of the authors, but I quickly ran into length limitations (they store all the info in the URL and impose their own limits; a sign of poor QA, the limit to save the map is somewhat longer than the limit to load it), so there're just the names of the objects.
Here's the map.


Sunday, October 11, 2015

Disable MMS auto-retrieve in the source

Okay, so this is no rocket science, but here's how to set the default to something sane, in the sources:
~/android/system-ics/packages/apps/Mms$ git diff res/xml/preferences.xml
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index bdae567..92bae55 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -64,7 +64,7 @@
                       android:key="pref_key_mms_read_reports"
                       android:summary="@string/pref_summary_mms_read_reports"
                       android:title="@string/pref_title_mms_read_reports" />
-    +                           android:key="pref_key_mms_auto_retrieval"
                       android:title="@string/pref_title_mms_auto_retrieval"
                       android:summary="@string/pref_summary_mms_auto_retrieval" />

Monday, August 10, 2015

Fix for Stagefright in Cyanogenmod 9.1 for Xperia Ray

Having recently gone from the stock Sony ROM to CM 9.1 I found the Stagefright stuff a good excuse to start hacking Cyanogenmod.
Long story short - I've backported the fixes for the Stagefright vulnerabilities to the cm9.1 branch and built a private ROM for my Ray out of that.

It works acceptably well on my device and while I'm quite sure the CM9.1 libstagefright code contains many horrors that might have been fixed along the long way from Android 4.0.4, at least now I should be relatively safe should a massive exploit be unleashed:
I'll try to push the changes upstream. In the meantime, here's the ROM (sha1sum: 54ae08ffb080767336faa430d7ad0a14558d6ad5).

Wednesday, August 5, 2015

More breakage:
hajma@c:~/android/system-ics$ brunch urushi
host C++: libdvm <= dalvik/vm/native/dalvik_system_Zygote.cpp
host C++: libdvm <= dalvik/vm/native/java_lang_Class.cpp
host C++: libdvm <= dalvik/vm/native/java_lang_Double.cpp
host C++: libdvm <= dalvik/vm/native/java_lang_Float.cpp
dalvik/vm/native/dalvik_system_Zygote.cpp: In function ‘int setrlimitsFromArray(ArrayObject*)’:
dalvik/vm/native/dalvik_system_Zygote.cpp:199:19: error: aggregate ‘setrlimitsFromArray(ArrayObject*)::rlimit rlim’ has incomplete type and cannot be defined
     struct rlimit rlim;
                   ^
dalvik/vm/native/dalvik_system_Zygote.cpp:222:43: error: ‘setrlimit’ was not declared in this scope
         err = setrlimit(contents[0], &rlim);
                                           ^
build/core/binary.mk:347: recipe for target 'out/host/linux-x86/obj/SHARED_LIBRARIES/libdvm_intermediates/native/dalvik_system_Zygote.o' failed
make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libdvm_intermediates/native/dalvik_system_Zygote.o] Error 1
make: *** Waiting for unfinished jobs....
hajma@c:~/android/system-ics$
and a fix:
diff --git a/vm/native/dalvik_system_Zygote.cpp b/vm/native/dalvik_system_Zygote.cpp
index 8224656..648bd58 100644
--- a/vm/native/dalvik_system_Zygote.cpp
+++ b/vm/native/dalvik_system_Zygote.cpp
@@ -21,7 +21,7 @@
 #include "native/InternalNativePriv.h"
 
 #include 
-#if (__GNUC__ == 4 && __GNUC_MINOR__ == 7)
+#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)
 #include 
 #endif
 #include 

Tuesday, August 4, 2015

my next breakage is due to Debian Jessie having fresher and pickier version of make:

hajma@chrastavec:~/android/system-ics$ brunch urushi
including vendor/cm/vendorsetup.sh
Looking for dependencies

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.4
TARGET_PRODUCT=cm_urushi
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=IMM76L
============================================

build/core/main.mk:43: ********************************************************************************
build/core/main.mk:44: *  You are using version 4.0 of make.
build/core/main.mk:45: *  Android can only be built by versions 3.81 and 3.82.
build/core/main.mk:46: *  see http://source.android.com/source/download.html
build/core/main.mk:47: ********************************************************************************
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.4
TARGET_PRODUCT=cm_urushi
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=IMM76L
============================================
Checking build tools versions...
build/core/prebuilt.mk:143: *** recipe commences before first target.  Stop. 

Fortunately, the Firefox OS folks hit it too and have a patch.
The next step is to get the closed binaries. The script device/semc/urushi/extract-files.sh does that by downloading them from the phone via adb. I no longer have Sony firmware in my phone so there's no need to connect the phone when the Cyanogenmod zip I used to flash it has the same contents, right? The below patch changes the source to the zip:
hajma@c:~/android/system-ics/device/semc/urushi$ git diff ./extract-files.sh 
diff --git a/extract-files.sh b/extract-files.sh
index f3aaa2c..192ea96 100755
--- a/extract-files.sh
+++ b/extract-files.sh
@@ -5,10 +5,11 @@ DEVICE=urushi
 
 BASE=../../../vendor/$VENDOR/$DEVICE/proprietary
 
-while getopts ":nh" options
+while getopts ":nzh" options
 do
   case $options in
     n ) NC=1 ;;
+    z ) FROMZIP=1;;
     h ) echo "Usage: `basename $0` [OPTIONS] "
         echo "  -n  No clenup"
         echo "  -h  Show this help"
@@ -27,7 +28,11 @@ for FILE in `cat proprietary-files.txt | grep -v ^# | grep -v ^$`; do
     if [ ! -d $BASE/$DIR ]; then
         mkdir -p $BASE/$DIR
     fi
-    adb pull /system/$FILE $BASE/$FILE
+    if [ "$FROMZIP" = "1" ]; then
+        unzip $2 system/$FILE -d $BASE
+    else
+        adb pull /system/$FILE $BASE/$FILE
+    fi
 done
 
 ./setup-makefiles.sh
... and more breakage:
hajma@c:~/android/system-ics$ brunch urushi
...
make: *** No rule to make target 'vendor/cm/proprietary/lib/armeabi/libjackpal-androidterm4.so', needed by 'out/target/product/urushi/system/lib/libjackpal-androidterm4.so'.  Stop.
make: *** Waiting for unfinished jobs....
target thumb C: calibrator <= hardware/ti/wlan/mac80211/ti-utils/ini.c
hajma@c:~/android/system-ics$ 
The file was supposed to be delivered with get-prebuilts:
hajma@c:~/android/system-ics/vendor/cm$ ./get-prebuilts 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 3347k  100 3347k    0     0   175k      0  0:00:19  0:00:19 --:--:--  205k
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   178  100   178    0     0    296      0 --:--:-- --:--:-- --:--:--   295
100  551k  100  551k    0     0   373k      0  0:00:01  0:00:01 --:--:-- 1375k
Archive:  ./proprietary/Term.apk
caution: filename not matched:  lib/armeabi/libjackpal-androidterm4.so
but the Term.apk now has a newer version:
hajma@c:~/android/system-ics/vendor/cm$ unzip -l proprietary/Term.apk |grep libjackpal-androidterm
    13532  2015-04-15 08:09   lib/armeabi/libjackpal-androidterm5.so
     5648  2015-04-15 08:09   lib/mips/libjackpal-androidterm5.so
     5240  2015-04-15 08:09   lib/x86/libjackpal-androidterm5.so
I'll have a look at updating the term later, for now I'll use the zip one:
hajma@c:~/android/system-ics/vendor/cm$ mkdir -p proprietary/lib/armeabi/
hajma@c:~/android/system-ics/vendor/cm$ unzip -j ~/Downloads/cm-9.1.0-urushi.zip -d proprietary/lib/armeabi system/lib/libjackpal-androidterm4.so
external/llvm/include/llvm/ADT/PointerUnion.h:64:39: error: comparison between ‘enum llvm::PointerLikeTypeTraits::’ and ‘enum llvm::PointerLikeTypeTraits::’ [-Werror=enum-compare]
       NumLowBitsAvailable = PT1BitsAv < PT2BitsAv ? PT1BitsAv : PT2BitsAv
while everybody on the Internet just removes -Wall from the makefile, it can be fixed in a simpler manner, as it has been workarounded before apparently:
hajma@c:~/android/system-ics/external/llvm$ git diff include/llvm/ADT/PointerUnion.h 
diff --git a/include/llvm/ADT/PointerUnion.h b/include/llvm/ADT/PointerUnion.h
index 3e3f214..6450bdb 100644
--- a/include/llvm/ADT/PointerUnion.h
+++ b/include/llvm/ADT/PointerUnion.h
@@ -54,7 +54,7 @@ namespace llvm {
     static inline void *getAsVoidPointer(void *P) { return P; }
     static inline void *getFromVoidPointer(void *P) { return P; }
     enum {
-#if (__GNUC__ == 4 && __GNUC_MINOR__ == 7)
+#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)
       PT1BitsAv = static_cast< int >(PointerLikeTypeTraits<PT1>::NumLowBitsAvailable),
       PT2BitsAv = static_cast< int >(PointerLikeTypeTraits<PT2>::NumLowBitsAvailable),
 #else
... and more:
In file included from system/extras/ext4_utils/output_file.c:30:0:
/usr/include/zlib.h:34:19: fatal error: zconf.h: No such file or directory
 #include "zconf.h"
                   ^
compilation terminated.
The cause is ugly and the solution is uglier.
getting closer...
Boot image: out/target/product/urushi/boot.img
error: unsupported page size 131072
device/semc/msm7x30-common/custombootimg.mk:5: recipe for target 'out/target/product/urushi/boot.img' failed
make: *** [out/target/product/urushi/boot.img] Error 255
Now this is caused by a second part of a changeset missing in the cm9.1 branch ... this changeset has to be applied.

aaaand here it is:
Package complete: /home/hajma/android/system-ics/out/target/product/urushi/cm-9-20150804-UNOFFICIAL-urushi.zip
41ef84db95dc7b24f78c8d0788fc1bcd  cm-9-20150804-UNOFFICIAL-urushi.zip
I don't dare to flash this yet though ;-)
While following Cyanogenmod's steps to build CM for my Ray, the repo sync command froze. 'ps -ef --forest', the Linux' take on ptree, told me it was stuck doing 'git-remote-https github https://github.com/CyanogenMod/android_external_svox' and a quick google search took me to http://forum.cyanogenmod.org/topic/103527-cannot-repo-source-code-as-android-external-svox-repository-meets-dmca-issue/
ugh...

So, here's the first workaround:

   <project path="external/srtp" name="platform/external/srtp" remote="aosp" revision="refs/tags/android-4.0.4_r2.1" />
   <project path="external/stlport" name="CyanogenMod/android_external_stlport" />
   <project path="external/strace" name="CyanogenMod/android_external_strace" />
-  <project path="external/svox" name="CyanogenMod/android_external_svox" />
+  <project path="external/svox" name="platform/external/svox" remote="aosp" revision="refs/tags/android-4.0.4_r2.1" />
   <project path="external/tagsoup" name="CyanogenMod/android_external_tagsoup" />
   <project path="external/tcpdump" name="CyanogenMod/android_external_tcpdump" />
   <project path="external/tinyalsa" name="platform/external/tinyalsa" remote="aosp" revision="refs/tags/android-4.0.4_r2.1" />
and I also had to issue
rm external/svox/
before running sync again

Friday, May 1, 2015

Heroes of Might and Magic II

The latest Humble Bundle comes with HOMM2 Gold in the pay-what-you-want group. While it's for Windows only, the installer works in Wine flawlessly.
When it's started I noticed the game actually runs in DosBox, which sounds somewhat silly - to run a game inside a DOS emulator which runs in a Windows emulator :-)
The natural instinct lead me to try to remove the unnecessary levels.
I used lnk-parser to find out what the HOMM2 Desktop link was actually doing:
$ lnk-parse-1.0/lnk-parse-1.0.pl  /home/hajma/.wine/dosdevices/c\:/users/Public/Desktop/Heroes\ of\ Might\ and\ Magic\ 2\ Gold.lnk 

Link File:  /home/hajma/.wine/dosdevices/c:/users/Public/Desktop/Heroes of Might and Magic 2 Gold.lnk
Link Flags:  HAS SHELLIDLIST | POINTS TO FILE/DIR | NO DESCRIPTION | NO RELATIVE PATH STRING | HAS WORKING DIRECTORY | HAS CMD LINE ARGS | HAS CUSTOM ICON |
File Attributes: 
Create Time: Mon Jan 01 1601 00:57:44
Last Accessed time: Mon Jan 01 1601 00:57:44
Last Modified Time: Mon Jan 01 1601 00:57:44
Target Length: 0
Icon Index: 0
ShowWnd: 1 SW_NORMAL
HotKey: 0
Target is on local volume
Volume Type: Fixed (Hard Disk)
Volume Serial: 00000000
Vol Label: 
Base Path: C:\Program Files\Ubisoft\Heroes of Might and Magic 2 Gold\dosbox.exe
(App Path:) Remaining Path: 
Working Dir: C:\Program Files\Ubisoft\Heroes of Might and Magic 2 Gold\
Command Line: -conf dosboxhomm2.conf -noconsole
Icon filename: C:\Program Files\Ubisoft\Heroes of Might and Magic 2 Gold\Icon.ico

but when I run
dosbox -conf ./dosboxhomm2.conf -noconsole
the game doe not run in full version, complaining about missing CD in the drive.
Here's the necessary change to the config file:

$ diff -u dosboxhomm2.conf.orig dosboxhomm2.conf
--- dosboxhomm2.conf.orig 2015-05-01 00:38:24.937021111 +0200
+++ dosboxhomm2.conf 2015-05-01 01:05:30.530285702 +0200
@@ -193,8 +193,8 @@
 
 @ECHO OFF
 mount C "."
-imgmount d ".\homm2.inst" -t iso -fs iso
 c:
+imgmount d "./homm2.inst" -t iso -fs iso
 cls
 heroes2.exe
-exit
\ No newline at end of file
+exit

Monday, April 27, 2015

Fixating testing to Jessie

So, Jessie is released, and I'd like to keep it on my laptop for some time.
It turns out it's reather trivial to do, just make sure all entries in one's sources.list point to jessie instead of testing:

--- /etc/apt/sources.list.bak    2015-04-27 22:23:17.664326851 +0200
+++ /etc/apt/sources.list    2015-04-27 22:27:33.559723639 +0200
@@ -1,10 +1,5 @@
-deb http://ftp.cz.debian.org/debian/ testing main  non-free
-deb-src http://ftp.cz.debian.org/debian/ testing main non-free
-
-deb http://security.debian.org/ testing/updates main non-free
-deb-src http://security.debian.org/ testing/updates main non-free
-
-# testing-updates, previously known as 'volatile'
-deb http://ftp.cz.debian.org/debian/ testing-updates main non-free
-deb-src http://ftp.cz.debian.org/debian/ testing-updates main non-free
+deb http://ftp.cz.debian.org/debian/ jessie main  non-free
+deb-src http://ftp.cz.debian.org/debian/ jessie main non-free

+deb http://security.debian.org/ jessie/updates main non-free
+deb-src http://security.debian.org/ jessie/updates main non-free

and run the usual

apt-get update

apt-get dist-upgrade