digabi / digabi-os Goto Github PK
View Code? Open in Web Editor NEWAbitti Disk Image is a collection of Linux distributions maintained by the Finnish Matriculation Examination Board.
Abitti Disk Image is a collection of Linux distributions maintained by the Finnish Matriculation Examination Board.
Update doc/INSTALL.md
, currently out-of-date. digabi-dev
has up-to-date list of required packages, build process goes ~
git clone https://github.com/digabi/digabi-live $CHECKOUT_DIR
cd $CHECKOUT_DIR
make dist
Building kernel
cd $YOUR_LINUX_BUILD_DIR
digabi prepare-linux-source # or: $CHECKOUT_DIR/custom-packages/digabi-dev/prepare-linux-source
cd $LINUX_SOURCE_DIR # linux-3.2.50 currently
make menuconfig # if making changes
digabi build-kernel # or: $CHECKOUT_DIR/custom-packages/digabi-dev/build-kernel
Currently we have repository at http://digabi.fi/debian/, managed with reprepro
(config: see digabi-repository
git repo). We build custom packages (except kernel) with equivs-build
(from equivs
package).
Building custom package:
cd $CHECKOUT_DIR/custom-packages/$PACKAGE_NAME
digabi build-package # or: equivs-build debian/control
Adding to repository
reprepro includedeb wheezy $DEBFILE
Currently DOS is based on Debian jessie, which is in testing state = lots of packages get lots of changes currently, and lots of packages are dropped from testing temporarily, which might cause build to fail.
Write daemon for watching required packages (see live-image-*.packages
), and alerting user if required package has been dropped.
Version 4.4 includes much better CAS features.
http://blog.geogebra.org/2013/12/geogebra-4-4/
Currently Debian Jessie has 4.0, perhaps we should offer help. At least, add debian/watch
for that package...
https://packages.debian.org/jessie/geogebra
http://packages.qa.debian.org/g/geogebra.html
Edit: Debian is using 4.0 because of licensing problems in 4.2+, see #27 (comment)
I'm trying to build live image under Ubuntu (docs say this could be possible)
I have these installed: live-build kernel-package apt-cacher-ng
Building ends with error:
E: Unable to locate package linux-image-ytl
Control files for it also seems broken (and seems there are files missing for actually create package):
diff --git a/custom-packages/linux-image-ytl/debian/control b/custom-packages/linux-image-ytl/debian/control
index 64ac540..939b248 100644
--- a/custom-packages/linux-image-ytl/debian/control
+++ b/custom-packages/linux-image-ytl/debian/control
@@ -1,3 +1,4 @@
+Source: linux-image-ytl
Section: kernel
Priority: optional
Homepage: http://digabi.fi/
@@ -7,10 +8,10 @@ Package: linux-image-ytl
Maintainer: Ville Korhonen <[email protected]>
Depends: linux-headers-3.2.50-grsec-ytl, linux-image-3.2.50-grsec-ytl
Suggests: linux-source-3.2.50-grsec-ytl
-Architectures: i386
+Architecture: i386
Changelog: debian/changelog
Description: Digabi Linux kernel for 32-bit PCs (meta-package)
This package depends on the latest Digabi Linux kernel and modules for use on PCs
with 32-bit AMD or Intel processors.
-
+ .
Only for Digabi Live systems.
System wide crontab (in /etc/crontab) should be cleared.
Also, I don't think there is any need for any scheduled tasks in this kind of system, so removing the "anacron" and "cron" packages wouldn't be a bad idea.
Add support for building images from Debian Snapshots (http://snapshot.debian.org/). Helps troubleshooting problems w/ custom builds.
New command, something like
digabi build-snapshot 2014-04-15
which configures lb
to use snapshot from given date.
Create customized Plymouth theme, using Digabi bird, or MEB logo.
Rename this project from digabi-live
to digabi-os
(Digabi Live to Digabi OS, DOS).
Add support for controlling display brightness (& backlight). If already exists, add shortcut / instructions how to do it.
Add our custom packages (w/ own repositories) as Git submodules.
When booting on device that has Intel Graphics:
[drm:intel_dsm_platform_mux_info] *ERROR* MUX INFO call failed
.
See also
Currently booting latest image (digabi-livecd-v0.8.5-6-gc9f5130_1374489356.iso
) fails on Oracle VirtualBox 4.2.16 - system gets stuck after syslinux.
Check if is caused by conflict in VirtualBox drivers.
Should have support for EFI booting (for systems which have no BIOS/BIOS-emulation).
Currently package how-can-i-help has been added to DOS. We should parse build.log after building the image, probably in *.post-build hook, and warn user about packages that do have problems.
Alternative use debbugs API to fetch same information.
Debian packages w/ problems & we depend on...
Orphaned
Update PAX flags for Firefox, has been segfaulting and/or killed after adding grsecurity.
Rebooting in VirtualBox causes error "FATAL: Could not read from the boot medium! System halted." to appear.
System should have SecureBoot enabled bootloader, ie. bootloader signed with Microsoft signing key.
Currently our changelog is added as-is, which means UNIX-style line breaks (\n). Probably most of the users will have Windows PC's, so perhaps we should provide changelog in format, that is supported by Windows Notepad.
Ie. update config/hooks/0061-collect-changelog.pre-build
to run unix2dos or similar command.
Should have much better way to configure local mirror, ie. to modify auto/config
and config/archives/*.list
.
Add local/config
or something similar to override? And add details about that configuration inside the image (filenames, checksums).
We need digabi-backgrounds
package for unofficial builds. Should not use logo of The Matriculation Examination Board. In future this package can provide hooks to use user-provider background.
Currently using testing key (GPG), switch to real one before publishing first public demo.
We should collect little more metadata about build.
/var/lib/digabi/version
(this will replace /etc/digabi-version)/var/lib/digabi/builder
(architecture, uuid (generate on first build, save as /var/lib/digabi/builder
on the build host), timestamp, other?)/changelog.txt
(see #39)Should we allow building "dirty" images (ie. w/ uncommitted changes), and just adding .dirty
to version number?
Eräissä koulussa verkon konfiguraatio estää internetin käyttämisen ilman proxy-palvelimen määrittämistä. Digabi OS:ssa ei ole tällä hetkellä helppoa tapaa järjestelmän laajuisen proxyn asettamiseen.
Iceweasel mahdollistaa proxyn asettamisen asetusten kautta, Chromiumissa mahdollisuutta ei välttämättä ole. Lisäksi muutkin sovellukset saattavat tarvita verkkoyhteyttä, joten asetus olisi pystyttävä asettamaan järjestelmätasolla. Koska käyttäjien osaamistaso vaihtelee, toteutuksen on oltava riittävän yksinkertainen. Esimerkiksi komento
digabi config set proxy http://proxy.koulu.fi:8080/
(Mikä vaatisi asetustenhallintatyökaluun "aktivoi tämä nyt" -featuren.)
Vaikuttaa myös digabi-buildbox
toiminnallisuusvaatimuksiin: koulun on pystyttävä määrittämään mukautettavan ISO:n oletusproxy.
Create toolset, than can automatically test compiled ISO images for known issues. Should be compatible with Debian Live images (ie. should be able to check them as well).
For debian-cd project, there was GSOC project, see https://wiki.debian.org/DebianCDTester and http://pancutan.alioth.debian.org/
However this tool would be set of Bash scripts OR Python code.
Rufus writes to FAT32/VFAT partitions, currently not supported by OS => non-bootable media. Using dd
works fine.
We should merge digabi-buildbox
repository to this (digabi-live) after creating toolset for building distributable VirtualBox images for buildboxes.
Remove useless icons, use larger icons, disable context menus.
xfconf-query -n -c xfce4-desktop -p /desktop-icons/file-icons/show-filesystem -s 0
xfconf-query -n -c xfce4-desktop -p /desktop-icons/file-icons/show-home -s 0
xfconf-query -n -c xfce4-desktop -p /desktop-icons/file-icons/show-removable -s 0
xfconf-query -n -c xfce4-desktop -p /desktop-icons/file-icons/show-trash -s 0
xfconf-query -n -c xfce4-desktop -p /desktop-icons/file-icons/icon-size -s 64
xfconf-query -n -c xfce4-desktop -p /desktop-menu/show -s 0
xfconf-query -n -c xfce4-desktop -p /windowlist-menu/show -s 0
Currently MS Type Cover 3 doesn't work out-of-the-box. Add missing support to kernel.
References:
--- a/drivers/hid/hid-ids.h 2014-01-19 21:40:07.000000000 -0500
+++ b/drivers/hid/hid-ids.h 2014-04-20 23:29:35.000000000 -0400
@@ -631,6 +631,7 @@
#define USB_DEVICE_ID_MS_NE4K 0x00db
#define USB_DEVICE_ID_MS_NE4K_JP 0x00dc
#define USB_DEVICE_ID_MS_LK6K 0x00f9
+#define USB_DEVICE_ID_MS_TYPE_COVER_3 0x07dc
#define USB_DEVICE_ID_MS_PRESENTER_8K_BT 0x0701
#define USB_DEVICE_ID_MS_PRESENTER_8K_USB 0x0713
#define USB_DEVICE_ID_MS_DIGITAL_MEDIA_3K 0x0730
--- a/drivers/hid/hid-core.c 2014-01-19 21:40:07.000000000 -0500
+++ b/drivers/hid/hid-core.c 2014-04-21 03:13:54.000000000 -0400
@@ -702,6 +702,11 @@ static void hid_scan_collection(struct h
if (((parser->global.usage_page << 16) == HID_UP_SENSOR) &&
type == HID_COLLECTION_PHYSICAL)
hid->group = HID_GROUP_SENSOR_HUB;
+
+ if (hid->vendor == USB_VENDOR_ID_MICROSOFT &&
+ hid->product == USB_DEVICE_ID_MS_TYPE_COVER_3 &&
+ hid->group == HID_GROUP_MULTITOUCH)
+ hid->group = HID_GROUP_GENERIC;
}
static int hid_scan_main(struct hid_parser *parser, struct hid_item *item)
--- a/drivers/hid/usbhid/hid-quirks.c 2014-01-19 21:40:07.000000000 -0500
+++ b/drivers/hid/usbhid/hid-quirks.c 2014-04-20 23:29:35.000000000 -0400
@@ -73,6 +73,7 @@ static const struct hid_blacklist {
{ USB_VENDOR_ID_FORMOSA, USB_DEVICE_ID_FORMOSA_IR_RECEIVER, HID_QUIRK_NO_INIT_REPORTS },
{ USB_VENDOR_ID_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28, HID_QUIRK_NOGET },
{ USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_NOGET },
+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3, HID_QUIRK_NO_INIT_REPORTS },
{ USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GX680R_LED_PANEL, HID_QUIRK_NO_INIT_REPORTS },
{ USB_VENDOR_ID_NOVATEK, USB_DEVICE_ID_NOVATEK_MOUSE, HID_QUIRK_NO_INIT_REPORTS },
{ USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN, HID_QUIRK_NO_INIT_REPORTS },
Check that WiFi/WLAN support really works.
Configure firewall for first public demo + Hackabi hacking contest:
Configure background (centered, bg color, no gradient).
xfconf-query -n -c xfce4-desktop -p /backdrop/screen0/monitor0/color-style -s 0
xfconf-query -n -c xfce4-desktop -p /backdrop/screen0/monitor0/color1 -s 9509,17733,29298,65535
xfconf-query -n -c xfce4-desktop -p /backdrop/screen0/monitor0/image-style -s 1
Currently the configured timezone in DOS is UTC. Our users are (always) in Finland, so we should use Europe/Helsinki as defalt timezone.
We should move to live-build 4.x as soon as possible - currently using 3.x, which forces us to build on wheezy (or at least depend on wheezy packages).
We should create buildbox using the Vagrantfile
included in repository. (Currently using another VirtualBox installation = we have two similar, but different, boxes. Not good.)
After initializing vagrant:
digabi-buildbox
, which should install other dependencies (eg. d-bb-app
) & configure the environment (users, sudo etc.)/var/lib/digabi/buildbox
This should be done in Makefile
, using make buildbox
or similar command.
Buildbox package should include easy tools for upgrading the box.
We should sign everything we release. With GPG. (And with FinEID?) ... And we should do this yesterday.
Currently we have key
pub 4096R/9D3D06EE 2013-05-23 [expires: 2016-01-20]
Key fingerprint = 91AE C10B CEF8 EF27 41CB B886 20F1 4706 9D3D 06EE
uid Ylioppilastutkintolautakunta / Digabi (Signing key for Digabi repository) <[email protected]>
sub 4096R/3578D7AF 2013-05-23 [expires: 2014-05-23]
as signing key for our repository.
Add new command to Makefile, for building our custom packages. After building packages, those should be added to config/packages.chroot/
, so we don't need external repository anymore. Makes it easier to build fully customized images, with customized packages.
make custom-packages
doc/INSTALL.md
# Fetch Digabi GPG key from keyserver:
apt-key add --keyserver hkp://keyserver.ubuntu.com:80 0xFFFFFFFF
must be wrong. It looks wrong. Error message is:
gpg: Missing argument for option "--keyserver"
Current digabi-os boots up using a bit too tiny font on Retina Macbooks. Current workaround of increasing font size in browsers is not feasible as we most like need to disable it in the final system.
Include feedback client again (digabi-feedback
).
config/package-lists/digabi.list
Currently DOS uses jessie
as main suite (specified in auto/config
). However, some packages are installed from other suites (wheezy
, sid
, experimental
).
We should examine live-image-*.packages
(or another package list), and tell users, where each package has been installed from. Especially, if some package has been installed from somewhere else than then main suite.
Build new customized kernel, with Grsecurity support. Previous, proof-of-concept kernel from June 2013 is outdated, and doesn't match our quality requirements.
Currently Grsecurity patch exists for 3.2.* and 3.12.* (testing). Latter is probably the one we should use.
Configuration must begin with make allnoconfig
.
We moved digabi.fi to HTTPS only (HTTP redirects to HTTPS, and HTTPS is served with HSTS header.) Therefore our APT repository works only via HTTPS.
Include package apt-transport-https
to our build environment, do necessary updates to our live-config.
Desktop button "Salli pääsy verkkoon" is not working, because it is executing:
/usr/bin/sudo /usr/bin/digabi webaccess toggle
Which is then asking password. It should be (according to /etc/sudoers.d/digabi-webaccess)
/usr/bin/sudo /usr/bin/digabi webaccess allow
Add autorun.inf
to the ISO image, and open README.html or something similar when USB stick is plugged / CD inserted to PC.
Example:
[autorun]
icon = digabi.ico
label = Digabi OS v14.05a1
shellexecute = README.html
[Content]
MusicFiles=0
PictureFiles=0
VideoFiles=0
User-submitted report: ~3200x1800 resolution => text is too small to read. We should do better scaling automatically.
Repository management:
-f --force
)DOS repository should include instructions for setting up new local Debian mirror using ftpsync
. Local mirror allows us to use specific versions of the packages & speeds up the build process.
We should probably add new command to digabi-dev
package for syncing the mirror. Eg. digabi mirror sync
, or similar.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.